fix add addres
This commit is contained in:
parent
3ff4f6e91a
commit
1f1fec4864
5 changed files with 71 additions and 42 deletions
|
@ -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>
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue