95 lines
2.7 KiB
PHP
95 lines
2.7 KiB
PHP
<?php
|
|
// @ini_set('display_errors', 'on');
|
|
// @error_reporting(E_ALL | E_STRICT);
|
|
|
|
// Vendors
|
|
require_once 'ripcord/ripcord.php';
|
|
require '../config/config.inc.php';
|
|
require 'ErpTools.php';
|
|
require 'config.php';
|
|
|
|
if (empty($_GET['token']) || $_GET['token'] !== ERP_SCRIPT_TOKEN) {
|
|
die;
|
|
}
|
|
|
|
// date de diff pour la création de client
|
|
$date_since_import = new DateTime();
|
|
$date_since_import->modify('-100 day');
|
|
|
|
// Get All Customers with email and is customer to create if no exist or update info
|
|
$models = ripcord::client("$url/xmlrpc/2/object");
|
|
|
|
$ids_company = $models->execute_kw($db, $uid, $password,
|
|
'res.partner', 'search', array(
|
|
array(
|
|
array('email', '!=', ''),
|
|
array('is_company', '=', true),
|
|
)
|
|
)
|
|
);
|
|
|
|
|
|
|
|
$final = array();
|
|
|
|
|
|
$companys = $models->execute_kw($db, $uid, $password,
|
|
'res.partner', 'read', array($ids_company));
|
|
|
|
foreach ($companys as $key => $company) {
|
|
|
|
$final[] = array(
|
|
'company_id_erp' => $company['id'],
|
|
'addr' => $company
|
|
);
|
|
|
|
$addrs = $models->execute_kw($db, $uid, $password,
|
|
'res.partner', 'read', array($company['child_ids']));
|
|
|
|
foreach ($addrs as $key => $addr) {
|
|
$final[] = array(
|
|
'company_id_erp' => $company['id'],
|
|
'addr' => $addr
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
foreach ($final as $key => $item) {
|
|
$customer = Customer::getCustomerIdByIdErp($item['company_id_erp']);
|
|
|
|
if (!$customer || empty($customer->id)) { continue; }
|
|
|
|
$address = Address::getByErp($item['addr']['id']);
|
|
|
|
$phone = $item['addr']['phone'];
|
|
if (empty($phone)) {
|
|
$phone = '0123456789';
|
|
}
|
|
|
|
if (empty($item['addr']['country_id'])
|
|
|| empty($item['addr']['street'])
|
|
|| empty($item['addr']['city'])
|
|
|| empty($item['addr']['name'])
|
|
|| empty($item['addr']['zip'])) {
|
|
|
|
ErpTools::logError($item['addr'], 'erp_update_address | odoo address is not valid');
|
|
continue;
|
|
}
|
|
|
|
|
|
$address->id_customer = $customer->id;
|
|
$address->alias = utf8_encode($item['addr']['name']);
|
|
$address->lastname = utf8_encode($customer->lastname);
|
|
$address->firstname = utf8_encode($customer->firstname);
|
|
$address->address1 = utf8_encode($item['addr']['street']);
|
|
$address->address2 = utf8_encode($item['addr']['street2']);
|
|
$address->city = utf8_encode($item['addr']['city']);
|
|
$address->postcode = $item['addr']['zip'];
|
|
$address->company = utf8_encode($item['addr']['display_name']);
|
|
$address->phone = (int)str_replace(' ', '', $phone);
|
|
$address->id_country = ErpTools::getCountryIdForPresta($item['addr']['country_id'][0]);
|
|
$address->is_erp = 1;
|
|
$address->id_erp = $item['addr']['id'];
|
|
$address->save();
|
|
} |