2016-03-18 10:53:04 +01:00
|
|
|
<?php
|
2016-04-21 15:30:14 +02:00
|
|
|
if (empty($_GET['token']) || $_GET['token'] !== ERP_SCRIPT_TOKEN) {
|
|
|
|
die;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-18 10:53:04 +01:00
|
|
|
error_reporting(E_ALL);
|
|
|
|
ini_set('display_errors', 1);
|
|
|
|
|
|
|
|
// Vendors
|
|
|
|
require_once 'ripcord/ripcord.php';
|
|
|
|
require '../config/config.inc.php';
|
2016-03-21 10:13:36 +01:00
|
|
|
require 'ErpTools.php';
|
2016-03-18 10:53:04 +01:00
|
|
|
require 'config.php';
|
|
|
|
|
|
|
|
|
|
|
|
// date de diff pour la création de client
|
2016-03-21 10:13:36 +01:00
|
|
|
$date_since_import = new DateTime();
|
2016-04-07 16:39:03 +02:00
|
|
|
$date_since_import->modify('-6 month');
|
2016-03-18 10:53:04 +01:00
|
|
|
|
2016-03-21 14:45:17 +01:00
|
|
|
// Get All Customers with email and is company
|
2016-03-18 10:53:04 +01:00
|
|
|
$models = ripcord::client("$url/xmlrpc/2/object");
|
|
|
|
$ids_customer = $models->execute_kw($db, $uid, $password,
|
|
|
|
'res.partner', 'search', array(
|
|
|
|
array(
|
|
|
|
array('email', '!=', ''),
|
2016-03-21 14:45:17 +01:00
|
|
|
array('is_company', '=', true),
|
2016-03-21 10:13:36 +01:00
|
|
|
array('customer', '=', true),
|
|
|
|
array('create_date', '>=', $date_since_import->format('Y-m-d H:i:s')),
|
2016-03-18 10:53:04 +01:00
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
2016-04-07 16:39:03 +02:00
|
|
|
|
2016-03-18 10:53:04 +01:00
|
|
|
foreach ($ids_customer as $id_customer) {
|
2016-03-21 10:13:36 +01:00
|
|
|
// get info company
|
2016-03-18 10:53:04 +01:00
|
|
|
$record = $models->execute_kw($db, $uid, $password,
|
|
|
|
'res.partner', 'read', array($id_customer));
|
|
|
|
|
2016-03-21 10:13:36 +01:00
|
|
|
// check mail validity
|
2016-03-21 15:05:13 +01:00
|
|
|
if(empty($record['email'])) {
|
|
|
|
continue;
|
2016-04-07 16:39:03 +02:00
|
|
|
}
|
|
|
|
// multiple email / explode
|
2016-03-21 10:13:36 +01:00
|
|
|
$email = $record['email'];
|
|
|
|
if(!Validate::isEmail($email)) {
|
|
|
|
$emails = explode(';', $record['email']);
|
|
|
|
$email = trim($emails[0]);
|
|
|
|
if(!Validate::isEmail($email)) {
|
2016-04-07 16:39:03 +02:00
|
|
|
ErpTools::logError($record, 'add_customer_email');
|
2016-03-21 10:13:36 +01:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// check if user not exist and email not register
|
|
|
|
if (!ErpTools::alreadyExists($record['id'])
|
|
|
|
&& !Customer::getCustomersByEmail($email)) {
|
2016-04-07 16:39:03 +02:00
|
|
|
|
|
|
|
$lastname = utf8_decode(substr((isset($record['display_name']) ? $record['display_name'] : $record['name'] ) , 0, 32));
|
|
|
|
$firstname = utf8_decode(substr((isset($record['display_name']) ? $record['display_name'] : $record['name'] ) , 0, 32));
|
2016-03-21 15:05:13 +01:00
|
|
|
|
2016-03-21 10:13:36 +01:00
|
|
|
// if contact check name else lastname firstname is company info
|
2016-04-07 16:39:03 +02:00
|
|
|
// if (!empty($record['child_ids'])) {
|
|
|
|
// $contact = $models->execute_kw($db, $uid, $password,
|
|
|
|
// 'res.partner', 'read', array($record['child_ids'][0]));
|
|
|
|
// $lastname = utf8_encode($contact['name']);
|
|
|
|
// $firstname = utf8_encode($contact['name']);
|
|
|
|
// } else {
|
|
|
|
// $lastname = utf8_decode(substr((isset($record['display_name']) ? $record['display_name'] : $record['name'] ) , 0, 32));
|
|
|
|
// $firstname = utf8_decode(substr((isset($record['display_name']) ? $record['display_name'] : $record['name'] ) , 0, 32));
|
|
|
|
// }
|
2016-03-21 10:13:36 +01:00
|
|
|
|
2016-03-21 14:45:17 +01:00
|
|
|
if (!ErpTools::validateRecordCustomer($record)) {
|
2016-04-07 16:39:03 +02:00
|
|
|
ErpTools::logError($record, 'add_customer_validate');
|
2016-03-21 14:45:17 +01:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
2016-04-07 16:39:03 +02:00
|
|
|
$pass_customer = Tools::passwdGen(12);
|
|
|
|
|
2016-03-21 10:13:36 +01:00
|
|
|
try {
|
|
|
|
// add Customer
|
|
|
|
$customer = new Customer();
|
|
|
|
$customer->lastname = $lastname;
|
|
|
|
$customer->firstname = $firstname;
|
2016-03-21 14:45:17 +01:00
|
|
|
$customer->active = (int) $record['active'];
|
2016-03-21 10:13:36 +01:00
|
|
|
$customer->email = $email;
|
2016-04-07 16:39:03 +02:00
|
|
|
$customer->passwd = Tools::encrypt($pass_customer);
|
2016-03-21 14:45:17 +01:00
|
|
|
$customer->company = (isset($record['display_name']) ? $record['display_name'] : $record['name'] );
|
2016-03-21 10:13:36 +01:00
|
|
|
$customer->id_erp = $record['id'];
|
2016-04-07 16:39:03 +02:00
|
|
|
$customer->representant = (isset($record['user_id'][1]) ? $record['user_id'][1] : '' );
|
2016-03-21 10:13:36 +01:00
|
|
|
|
|
|
|
// If customer add with success create Address
|
|
|
|
if ($customer->add()) {
|
|
|
|
$address = new Address();
|
|
|
|
$address->id_customer = $customer->id;
|
2016-03-21 14:45:17 +01:00
|
|
|
$address->alias = 'Adresse Livraison';
|
2016-03-21 10:13:36 +01:00
|
|
|
$address->lastname = $lastname;
|
|
|
|
$address->firstname = $firstname;
|
|
|
|
$address->address1 = utf8_encode($record['street']);
|
|
|
|
$address->address2 = utf8_encode($record['street2']);
|
|
|
|
$address->city = utf8_encode($record['city']);
|
|
|
|
$address->postcode = $record['zip'];
|
|
|
|
$address->company = $record['display_name'];
|
2016-03-21 14:45:17 +01:00
|
|
|
$address->phone = (int) str_replace(' ', '', $record['phone']);
|
2016-03-21 10:13:36 +01:00
|
|
|
$address->id_country = ErpTools::getCountryIdForPresta($record['country_id'][0]);
|
2016-03-21 14:45:17 +01:00
|
|
|
$address->is_erp = 1;
|
2016-03-21 10:13:36 +01:00
|
|
|
$address->add();
|
2016-04-07 16:39:03 +02:00
|
|
|
|
2016-03-21 15:05:13 +01:00
|
|
|
// Mail::Send(
|
|
|
|
// 1,
|
|
|
|
// 'account',
|
|
|
|
// Mail::l('Welcome!'),
|
|
|
|
// array(
|
|
|
|
// '{firstname}' => $customer->firstname,
|
|
|
|
// '{lastname}' => $customer->lastname,
|
|
|
|
// '{email}' => $customer->email,
|
|
|
|
// '{passwd}' => $password
|
|
|
|
// ),
|
|
|
|
// //$customer->email,
|
|
|
|
// 'thibault@antadis.com',
|
|
|
|
// $customer->firstname.' '.$customer->lastname
|
|
|
|
// );
|
2016-03-21 10:13:36 +01:00
|
|
|
}
|
|
|
|
} catch (Exception $exception) {
|
2016-03-21 14:45:17 +01:00
|
|
|
$msg = $exception->getMessage();
|
2016-04-07 16:39:03 +02:00
|
|
|
ErpTools::logError($record, 'add_customer');
|
2016-03-21 10:13:36 +01:00
|
|
|
}
|
|
|
|
}
|
2016-04-07 16:39:03 +02:00
|
|
|
|
2016-03-18 10:53:04 +01:00
|
|
|
}
|