modify('-6 month'); // Get All Customers with email and is company $models = ripcord::client("$url/xmlrpc/2/object"); $ids_customer = $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array( array( array('email', '!=', ''), array('is_company', '=', true), array('customer', '=', true), array('create_date', '>=', $date_since_import->format('Y-m-d H:i:s')), ) ) ); foreach ($ids_customer as $id_customer) { // get info company $record = $models->execute_kw($db, $uid, $password, 'res.partner', 'read', array($id_customer)); // check mail validity if(empty($record['email'])) { continue; } // multiple email / explode $email = $record['email']; if(!Validate::isEmail($email)) { $emails = explode(';', $record['email']); $email = trim($emails[0]); if(!Validate::isEmail($email)) { ErpTools::logError($record, 'add_customer_email'); continue; } } // check if user not exist and email not register if (!ErpTools::alreadyExists($record['id']) && !Customer::getCustomersByEmail($email)) { $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)); // if contact check name else lastname firstname is company info // 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)); // } if (!ErpTools::validateRecordCustomer($record)) { ErpTools::logError($record, 'add_customer_validate'); continue; } $pass_customer = Tools::passwdGen(12); try { // add Customer $customer = new Customer(); $customer->lastname = $lastname; $customer->firstname = $firstname; $customer->active = (int) $record['active']; $customer->email = $email; $customer->passwd = Tools::encrypt($pass_customer); $customer->company = (isset($record['display_name']) ? $record['display_name'] : $record['name'] ); $customer->id_erp = $record['id']; $customer->representant = (isset($record['user_id'][1]) ? $record['user_id'][1] : '' ); // If customer add with success create Address if ($customer->add()) { $address = new Address(); $address->id_customer = $customer->id; $address->alias = 'Adresse Livraison'; $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']; $address->phone = (int) str_replace(' ', '', $record['phone']); $address->id_country = ErpTools::getCountryIdForPresta($record['country_id'][0]); $address->is_erp = 1; $address->add(); // 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 // ); } } catch (Exception $exception) { $msg = $exception->getMessage(); ErpTools::logError($record, 'add_customer'); } } }