1
0
Fork 0
mirror of synced 2025-04-20 01:21:01 +00:00

fix add addres

This commit is contained in:
gorokh 2020-03-26 13:14:19 +03:00
parent 3ff4f6e91a
commit 1f1fec4864
5 changed files with 71 additions and 42 deletions

View file

@ -7,6 +7,7 @@
<field id="patronymic" group="customer">patronymic</field>
<field id="email" group="customer">email</field>
<field id="birthday" group="customer">birthday</field>
<field id="sex" group="customer">sex</field>
<field id="phones" group="customer">phones</field>
<field id="manager" group="customer">manager</field>
<field id="commentary" group="customer">commentary</field>

View file

@ -368,51 +368,15 @@ class RetailCrmEvent
$site
);
} else {
$found = false;
$addresses = $api->customersCorporateAddresses(
RetailCrmCorporateClient::addCustomersCorporateAddresses(
$userCorp['customerCorporate']['id'],
array(),
null,
100,
'id',
$site
$nickName,
$address,
$api,
$site = null
);
if ($addresses && $addresses->isSuccessful() && $addresses->offsetExists('addresses')) {
foreach ($addresses['addresses'] as $corpAddress) {
if (isset($corpAddress['text']) && $corpAddress['text'] == $address) {
$found = true;
break;
}
}
if (!$found) {
$customerCorporateAddress = array(
'name' => $nickName,
'text' => $address
);
$addressResult = $api->customersCorporateAddressesCreate(
$userCorp['customerCorporate']['id'],
$customerCorporateAddress,
'id',
$site
);
if (!$addressResult || ($addressResult && !$addressResult->isSuccessful())) {
Logger::getInstance()->write(sprintf(
'error while trying to append address to corporate customer%s%s',
PHP_EOL,
print_r(array(
'address' => $customerCorporateAddress,
'customer' => $userCorp['customerCorporate']
), true)
), 'apiErrors');
}
}
}
$arParams['customerCorporate'] = $userCorp['customerCorporate'];
if (!empty($orderCompany)) {

View file

@ -217,6 +217,14 @@ class RetailCrmHistory
? RCrmActions::fromJSON($customer['address']['city']) : '';
}
if (array_key_exists('birthday', $customer)) {
$arUser["PERSONAL_BIRTHDAY"] = date("d.m.Y", strtotime($customer['birthday']));
}
if (array_key_exists('email', $customer)) {
$arUser["EMAIL"] = $customer['email'] ? RCrmActions::fromJSON($customer['email']) : '';
}
$u = $newUser->Update($customer['externalId'], $arUser);
if (!$u) {
RCrmActions::eventLog(

View file

@ -538,6 +538,14 @@ class RetailCrmOrder
$orderData['customer'] = array('id' => $corpData['id']);
$cachedCorporateIds[$orderData['contragent']['legalName']] = $corpData['id'];
RetailCrmCorporateClient::addCustomersCorporateAddresses(
$orderData['customer']['id'],
$orderData['contragent']['legalName'],
$orderData['delivery']['address']['text'],
$api,
$site = null
);
} elseif (array_key_exists(
$orderData['contragent']['legalName'],
$resCustomersCorporate

View file

@ -106,4 +106,52 @@ class RetailCrmCorporateClient
return array();
}
public static function addCustomersCorporateAddresses($customeId, $legalName, $adress, $api, $site)
{
$found = false;
$addresses = $api->customersCorporateAddresses(
$customeId,
array(),
null,
100,
'id',
$site
);
if ($addresses && $addresses->isSuccessful() && $addresses->offsetExists('addresses')) {
foreach ($addresses['addresses'] as $corpAddress) {
if (isset($corpAddress['text']) && $corpAddress['text'] == $adress) {
$found = true;
break;
}
}
if (!$found) {
$customerCorporateAddress = array(
'name' => $legalName,
'text' => $adress
);
$addressResult = $api->customersCorporateAddressesCreate(
$customeId,
$customerCorporateAddress,
'id',
$site
);
if (!$addressResult || ($addressResult && !$addressResult->isSuccessful())) {
Logger::getInstance()->write(sprintf(
'error while trying to append address to corporate customer%s%s',
PHP_EOL,
print_r(array(
'address' => $customerCorporateAddress,
'customer' => $customeId
), true)
), 'apiErrors');
}
}
}
}
}