diff --git a/CHANGELOG.md b/CHANGELOG.md index 66c258f8..88b5fcc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2022-12-28 v.6.1.12 +- Исправление генерации пароля у корпоративного клиента +- Добавлена проверка на существование пользователя в заказе + ## 2022-12-13 v.6.1.11 - Добавление фильтрации не активных справочников и статусов diff --git a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php index 2fe9402d..f6eedf27 100644 --- a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php +++ b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php @@ -335,6 +335,7 @@ class RetailCrmHistory ->setContragentTypes($contragentTypes) ->setDataCrm($order) ->build(); + $corporateCustomerBuilder->getCustomerBuilder()->buildPassword(); if (RetailCrmOrder::isOrderCorporate($order)) { // Fetch contact only if we think it's data is not fully present in order diff --git a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php index 923e3c25..e77c7270 100644 --- a/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php +++ b/intaro.retailcrm/classes/general/order/RetailCrmOrder_v5.php @@ -495,6 +495,16 @@ class RetailCrmOrder continue; } + if (empty($order['USER_ID'])) { + RCrmActions::eventLog( + 'RetailCrmOrder::uploadOrders', + 'Order::load', + 'The user does not exist in order: ' . $order['ID'] + ); + + continue; + } + self::createCustomerForOrder($api, $arCustomer, $arCustomerCorporate,$arParams, $order, $site); if (isset($order['RESPONSIBLE_ID']) && !empty($order['RESPONSIBLE_ID'])) { @@ -584,6 +594,16 @@ class RetailCrmOrder $optionsContragentType = RetailcrmConfigProvider::getContragentTypes(); $user = UserTable::getById($order['USER_ID'])->fetch(); + if (!$user) { + RCrmActions::eventLog( + 'RetailCrmOrder::createCustomerForOrder', + 'UserTable::getById', + 'Error find user: ' . $order['USER_ID'] . ' in order: ' . $order['ID'] + ); + + return; + } + if ('Y' === RetailcrmConfigProvider::getCorporateClientStatus()) { if (true === RetailCrmCorporateClient::isCorpTookExternalId((string) $user['ID'], $api)) { RetailCrmCorporateClient::setPrefixForExternalId((string) $user['ID'], $api); diff --git a/intaro.retailcrm/description.ru b/intaro.retailcrm/description.ru index 55398a94..3288be52 100644 --- a/intaro.retailcrm/description.ru +++ b/intaro.retailcrm/description.ru @@ -1 +1 @@ -- Исправление вывода значений в блоках маппинга (добавление фильтрации по активности поля) \ No newline at end of file +- Исправление генерации пароля у корпоративного клиента, проверка существования пользователя в заказе \ No newline at end of file diff --git a/intaro.retailcrm/install/version.php b/intaro.retailcrm/install/version.php index 8b173bd2..42cf9aaf 100644 --- a/intaro.retailcrm/install/version.php +++ b/intaro.retailcrm/install/version.php @@ -1,6 +1,6 @@ '6.1.11', - 'VERSION_DATE' => '2022-12-13 12:30:00' + 'VERSION' => '6.1.12', + 'VERSION_DATE' => '2022-12-28 17:30:00' ];