diff --git a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php index 59b9f840..34ceeb18 100644 --- a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php +++ b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php @@ -440,23 +440,6 @@ class RetailCrmHistory continue; } - if ($optionsOrderNumbers == 'Y' && isset($order['number'])) { - $searchFilter = array( - 'filter' => array('ACCOUNT_NUMBER' => $order['number']), - 'select' => array('ID'), - ); - $searchOrder = \Bitrix\Sale\OrderTable::GetList($searchFilter)->fetch(); - if (!empty($searchOrder)) { - if ($searchOrder['ID'] != $order['externalId']) { - RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'setField("ACCOUNT_NUMBER")', 'Error order load id=' . $order['externalId']) . '. Number ' . $order['number'] . ' already exists'; - - continue; - } - } - - $newOrder->setField('ACCOUNT_NUMBER', $order['number']); - } - $personType = $newOrder->getField('PERSON_TYPE_ID'); if (isset($order['orderType']) && $order['orderType']) { $nType = array(); @@ -733,7 +716,25 @@ class RetailCrmHistory $newOrder->setField('PRICE', $orderSumm); $newOrder->save(); - if ($newHistoryPayments) { + if ($optionsOrderNumbers == 'Y' && isset($order['number'])) { + $searchFilter = array( + 'filter' => array('ACCOUNT_NUMBER' => $order['number']), + 'select' => array('ID'), + ); + $searchOrder = \Bitrix\Sale\OrderTable::GetList($searchFilter)->fetch(); + if (!empty($searchOrder)) { + if ($searchOrder['ID'] != $order['externalId']) { + RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'setField("ACCOUNT_NUMBER")', 'Error order load id=' . $order['externalId']) . '. Number ' . $order['number'] . ' already exists'; + + continue; + } + } + + $newOrder->setField('ACCOUNT_NUMBER', $order['number']); + $newOrder->save(); + } + + if (!empty($newHistoryPayments)) { foreach ($newOrder->getPaymentCollection() as $orderPayment) { if (array_key_exists($orderPayment->getField('XML_ID'), $newHistoryPayments)) { $paymentExternalId = $orderPayment->getId(); @@ -741,11 +742,8 @@ class RetailCrmHistory if ($paymentExternalId) { $newHistoryPayments[$orderPayment->getField('XML_ID')]['externalId'] = $paymentExternalId; RCrmActions::apiMethod($api, 'paymentEditById', __METHOD__, $newHistoryPayments[$orderPayment->getField('XML_ID')]); - } - - if (!is_null($paymentExternalId)) { \Bitrix\Sale\Internals\PaymentTable::update($paymentExternalId, array('XML_ID' => '')); - } + } } } } @@ -1107,8 +1105,6 @@ class RetailCrmHistory $newPaymentId = $newPayment->getId(); unset($paymentsList[$newPaymentId]); - - RCrmActions::apiMethod($api, 'paymentEditById', __METHOD__, array('id' => $paymentCrm['id'], 'externalId' => $newPaymentId)); } if ($optionsPayment[$paymentCrm['status']] == 'Y') { diff --git a/intaro.retailcrm/description.ru b/intaro.retailcrm/description.ru index 01b72bd1..56f0d188 100644 --- a/intaro.retailcrm/description.ru +++ b/intaro.retailcrm/description.ru @@ -1,2 +1,2 @@ -- Исправлен баг с рассчетом суммы заказа -- Добавлен перехват исключения при редактировании отгруженной доставки +- Исправлен баг с передачей номера заказа +- Исправлены мелкие ошибки и недочеты diff --git a/intaro.retailcrm/install/version.php b/intaro.retailcrm/install/version.php index 88c82344..bc49b5ff 100644 --- a/intaro.retailcrm/install/version.php +++ b/intaro.retailcrm/install/version.php @@ -1,5 +1,5 @@ "2.3.2", - "VERSION_DATE" => "2017-01-12 10:30:00" + "VERSION" => "2.3.3", + "VERSION_DATE" => "2018-01-23 17:15:00" ); diff --git a/intaro.retailcrm/lang/ru/install/step1.php b/intaro.retailcrm/lang/ru/install/step1.php index eb91f301..c017e719 100644 --- a/intaro.retailcrm/lang/ru/install/step1.php +++ b/intaro.retailcrm/lang/ru/install/step1.php @@ -9,7 +9,7 @@ $MESS ['ERR_6'] = 'Возможно неверно введен адрес retai $MESS ['ERR_403'] = 'Неверный apiKey.'; $MESS ['ERR_0'] = 'Превышено время ожидания ответа от сервера.'; $MESS ['ERR_FIELDS_API_HOST'] = 'Неверно заполнены поля.'; -$MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность медодов API по текущему ключу.'; +$MESS ['ERR_METHOD_NOT_FOUND'] = 'Проверьте доступность методов API по текущему ключу.'; //$MESS ['URL_NOT_FOUND'] = 'В настройках одного или нескольких сайтов не заполнено поле "URL сервера".'; $MESS ['INFO_1'] = 'Введите адрес экземпляра retailCRM (например, https://demo.retailcrm.ru) и API-ключ.'; $MESS ['INFO_2'] = 'API-ключ можно сгенерировать при регистрации магазина в retailCRM (Администрирование > Интеграция).';