From c357c4507259b4cee6ba00d667f17ac10b82b202 Mon Sep 17 00:00:00 2001 From: Akolzin Dmitry Date: Mon, 20 Nov 2017 15:47:11 +0300 Subject: [PATCH] v.2.2.10 (#34) * v.2.2.8 * v.2.2.10 --- CHANGELOG.md | 8 +++ .../classes/general/events/RetailCrmEvent.php | 70 +++++++++---------- .../general/history/RetailCrmHistory_v4.php | 3 - .../general/history/RetailCrmHistory_v5.php | 3 - intaro.retailcrm/description.ru | 4 +- intaro.retailcrm/install/version.php | 4 +- 6 files changed, 47 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c2b21b3..1bbef375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2017-11-20 v.2.2.10 +* Устранен баг с созданием чеков +* Улучшен механизм работы с оплатами + +## 2017-11-13 v.2.2.9 +* Исправлены ошибки подключения кастомных классов +* Улучшена обработка истории + ## 2017-11-01 v.2.2.8 * Исправлены баги пакетной выгрузки * Исправлена ошибка при работе на php7.1 diff --git a/intaro.retailcrm/classes/general/events/RetailCrmEvent.php b/intaro.retailcrm/classes/general/events/RetailCrmEvent.php index c7a81012..e9b91d9f 100644 --- a/intaro.retailcrm/classes/general/events/RetailCrmEvent.php +++ b/intaro.retailcrm/classes/general/events/RetailCrmEvent.php @@ -271,45 +271,45 @@ class RetailCrmEvent $paymentsExternalIds[$payment['externalId']] = $payment; } } + } - if (!empty($arPayment['PAY_SYSTEM_ID']) && isset($optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']])) { - $paymentToCrm = array( - 'type' => $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']], - 'amount' => $arPayment['SUM'] - ); + if (!empty($arPayment['PAY_SYSTEM_ID']) && isset($optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']])) { + $paymentToCrm = array( + 'type' => $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']], + 'amount' => $arPayment['SUM'] + ); - if (!empty($arPayment['ID'])) { - $paymentToCrm['externalId'] = $arPayment['ID']; - } - - if (!empty($arPayment['DATE_PAID'])) { - if (is_object($arPayment['DATE_PAID'])) { - $culture = new Bitrix\Main\Context\Culture(array("FORMAT_DATETIME" => "YYYY-MM-DD HH:MI:SS")); - $paymentToCrm['paidAt'] = $arPayment['DATE_PAID']->toString($culture); - } elseif (is_string($arPayment['DATE_PAID'])) { - $paymentToCrm['paidAt'] = $arPayment['DATE_PAID']; - } - } - - if (!empty($optionsPayStatuses[$arPayment['PAID']])) { - $paymentToCrm['status'] = $optionsPayStatuses[$arPayment['PAID']]; - } - - if (!empty($arPayment['ORDER_ID'])) { - $paymentToCrm['order']['externalId'] = $arPayment['ORDER_ID']; - } - } else { - RCrmActions::eventLog('RetailCrmEvent::paymentSave', 'payments', 'OrderID = ' . $arPayment['ID'] . '. Payment not found.'); + if (!empty($arPayment['ID'])) { + $paymentToCrm['externalId'] = $arPayment['ID']; } - if (!array_key_exists($arPayment['ID'], $paymentsExternalIds)) { - RCrmActions::apiMethod($api, 'ordersPaymentCreate', __METHOD__, $paymentToCrm, $site); - } elseif (array_key_exists($arPayment['ID'], $paymentsExternalIds) && $paymentsExternalIds[$arPayment['ID']]['type'] == $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']]) { - RCrmActions::apiMethod($api, 'paymentEditByExternalId', __METHOD__, $paymentToCrm, $site); - } elseif (array_key_exists($arPayment['ID'], $paymentsExternalIds) && $paymentsExternalIds[$arPayment['ID']]['type'] != $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']]) { - RCrmActions::apiMethod($api, 'ordersPaymentDelete', __METHOD__, $paymentsExternalIds[$arPayment['ID']]['id']); - RCrmActions::apiMethod($api, 'ordersPaymentCreate', __METHOD__, $paymentToCrm, $site); + if (!empty($arPayment['DATE_PAID'])) { + if (is_object($arPayment['DATE_PAID'])) { + $culture = new Bitrix\Main\Context\Culture(array("FORMAT_DATETIME" => "YYYY-MM-DD HH:MI:SS")); + $paymentToCrm['paidAt'] = $arPayment['DATE_PAID']->toString($culture); + } elseif (is_string($arPayment['DATE_PAID'])) { + $paymentToCrm['paidAt'] = $arPayment['DATE_PAID']; + } } + + if (!empty($optionsPayStatuses[$arPayment['PAID']])) { + $paymentToCrm['status'] = $optionsPayStatuses[$arPayment['PAID']]; + } + + if (!empty($arPayment['ORDER_ID'])) { + $paymentToCrm['order']['externalId'] = $arPayment['ORDER_ID']; + } + } else { + RCrmActions::eventLog('RetailCrmEvent::paymentSave', 'payments', 'OrderID = ' . $arPayment['ID'] . '. Payment not found.'); + } + + if (!array_key_exists($arPayment['ID'], $paymentsExternalIds)) { + RCrmActions::apiMethod($api, 'ordersPaymentCreate', __METHOD__, $paymentToCrm, $site); + } elseif (array_key_exists($arPayment['ID'], $paymentsExternalIds) && $paymentsExternalIds[$arPayment['ID']]['type'] == $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']]) { + RCrmActions::apiMethod($api, 'paymentEditByExternalId', __METHOD__, $paymentToCrm, $site); + } elseif (array_key_exists($arPayment['ID'], $paymentsExternalIds) && $paymentsExternalIds[$arPayment['ID']]['type'] != $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']]) { + RCrmActions::apiMethod($api, 'ordersPaymentDelete', __METHOD__, $paymentsExternalIds[$arPayment['ID']]['id']); + RCrmActions::apiMethod($api, 'ordersPaymentCreate', __METHOD__, $paymentToCrm, $site); } } } @@ -323,7 +323,7 @@ class RetailCrmEvent function paymentDelete($event) { $apiVersion = COption::GetOptionString(self::$MODULE_ID, 'api_version', 0); - + if ((isset($GLOBALS['RETAIL_CRM_HISTORY']) && $GLOBALS['RETAIL_CRM_HISTORY']) || $apiVersion != 'v5') { return; } diff --git a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v4.php b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v4.php index 0315d3d9..ee63a434 100644 --- a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v4.php +++ b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v4.php @@ -624,7 +624,6 @@ class RetailCrmHistory } if ($product['delete']) { $item->delete(); - $basket->save(); continue; } @@ -653,8 +652,6 @@ class RetailCrmHistory $item->setField('DISCOUNT_VALUE', ''); } } - - $basket->save(); } } diff --git a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php index de3ddd33..99203dcd 100644 --- a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php +++ b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php @@ -1168,7 +1168,6 @@ class RetailCrmHistory if (isset($optionsPayment[$paymentCrm['status']])) { $nowPayment->setField('PAID', $optionsPayment[$paymentCrm['status']]); } - $nowPayment->save(); unset($paymentsList[$paymentCrm['externalId']]); } @@ -1183,7 +1182,6 @@ class RetailCrmHistory $newPayment->setField('PRICE_COD', '0.00'); $newPayment->setField('EXTERNAL_PAYMENT', 'N'); $newPayment->setField('UPDATED_1C', 'N'); - $newPayment->save(); $newPaymentId = $newPayment->getId(); @@ -1202,7 +1200,6 @@ class RetailCrmHistory } $payment->delete(); } - $paymentColl->save(); if ($paymentsCrm['totalSumm'] == $paySumm) { $order->setFieldNoDemand('PAYED', 'Y'); diff --git a/intaro.retailcrm/description.ru b/intaro.retailcrm/description.ru index 5834571e..a4f1f02f 100644 --- a/intaro.retailcrm/description.ru +++ b/intaro.retailcrm/description.ru @@ -1,2 +1,2 @@ -- Исправлены ошибки подключения кастомных классов -- Улучшена обработка истории \ No newline at end of file +- Устранен баг с созданием чеков +- Улучшен механизм работы с оплатами diff --git a/intaro.retailcrm/install/version.php b/intaro.retailcrm/install/version.php index c1ab8ca6..27e8b0dd 100644 --- a/intaro.retailcrm/install/version.php +++ b/intaro.retailcrm/install/version.php @@ -1,5 +1,5 @@ "2.2.9", - "VERSION_DATE" => "2017-11-13 11:00:00" + "VERSION" => "2.2.10", + "VERSION_DATE" => "2017-11-20 16:00:00" );