From 492c20a1c40abde88badb36ffd212371a0986131 Mon Sep 17 00:00:00 2001 From: Ivan Chaplygin Date: Tue, 24 Oct 2023 16:08:48 +0300 Subject: [PATCH] =?UTF-8?q?ref=20#92358=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D0=BF=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B2=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B0?= =?UTF-8?q?=D1=85=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D1=82=D1=80=D0=B5=D0=BA=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80?= =?UTF-8?q?=D0=B0.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BA=D1=83.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../general/history/RetailCrmHistory_v5.php | 9 +++++++++ intaro.retailcrm/lang/en/options.php | 2 ++ intaro.retailcrm/lang/ru/options.php | 2 ++ .../lib/component/configprovider.php | 10 ++++++++++ intaro.retailcrm/lib/component/constants.php | 2 ++ intaro.retailcrm/options.php | 17 +++++++++++++++++ 6 files changed, 42 insertions(+) diff --git a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php index 41e6f2d0..be816590 100644 --- a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php +++ b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php @@ -1180,6 +1180,15 @@ class RetailCrmHistory if ($orderCrm) { self::deliveryUpdate($newOrder, $optionsDelivTypes, $orderCrm['order']); } + + if (isset($order['delivery']['service']['trackNumber']) + && RetailcrmConfigProvider::getTrackNumberStatus() === 'Y' + ) { + $newOrder->setField( + 'TRACKING_NUMBER', + $order['delivery']['service']['trackNumber'] + ); + } } if ($itemUpdate === true && $newOrder->getField('CANCELED') !== 'Y') { diff --git a/intaro.retailcrm/lang/en/options.php b/intaro.retailcrm/lang/en/options.php index cc4f84e3..3206b0dd 100644 --- a/intaro.retailcrm/lang/en/options.php +++ b/intaro.retailcrm/lang/en/options.php @@ -112,3 +112,5 @@ $MESS ['DEACTIVATE_MODULE'] = 'Deactivate the module'; $MESS ['WRONG_CREDENTIALS'] = 'Enter the address and authorization key of the CRM system'; $MESS ['Wrong "apiKey" value.'] = 'Invalid authorization key'; + +$MESS ['ORDER_TRACK_NUMBER'] = 'Receive track number'; diff --git a/intaro.retailcrm/lang/ru/options.php b/intaro.retailcrm/lang/ru/options.php index 0d18abf6..d3783c12 100644 --- a/intaro.retailcrm/lang/ru/options.php +++ b/intaro.retailcrm/lang/ru/options.php @@ -171,3 +171,5 @@ $MESS ['DEACTIVATE_MODULE'] = 'Деактивировать модуль'; $MESS ['WRONG_CREDENTIALS'] = 'Введите адрес и ключ авторизации CRM системы'; $MESS ['Wrong "apiKey" value.'] = 'Недействительный ключ авторизации'; + +$MESS ['ORDER_TRACK_NUMBER'] = 'Получать трек-номер'; \ No newline at end of file diff --git a/intaro.retailcrm/lib/component/configprovider.php b/intaro.retailcrm/lib/component/configprovider.php index deacbdf0..8c3179e6 100644 --- a/intaro.retailcrm/lib/component/configprovider.php +++ b/intaro.retailcrm/lib/component/configprovider.php @@ -1159,4 +1159,14 @@ class ConfigProvider { return COption::GetOptionString(Constants::MODULE_ID, Constants::SITES_AVAILABLE, null); } + + public static function getTrackNumberStatus() + { + return static::getOption(Constants::DISPLAY_TRACK_NUMBER_DELIVERY); + } + + public static function setTrackNumberStatus($trackNumberStatus) + { + static::setOption(Constants::DISPLAY_TRACK_NUMBER_DELIVERY, $trackNumberStatus); + } } diff --git a/intaro.retailcrm/lib/component/constants.php b/intaro.retailcrm/lib/component/constants.php index 50eded87..2c9caa64 100644 --- a/intaro.retailcrm/lib/component/constants.php +++ b/intaro.retailcrm/lib/component/constants.php @@ -104,4 +104,6 @@ class Constants ['EVENT_NAME' => 'OnSaleComponentOrderResultPrepared', 'FROM_MODULE' => 'sale'], ]; public const SITES_AVAILABLE = 'sites_available'; + + public const DISPLAY_TRACK_NUMBER_DELIVERY = 'receive_track_number_delivery'; } diff --git a/intaro.retailcrm/options.php b/intaro.retailcrm/options.php index ffbd7f52..ff4c5203 100644 --- a/intaro.retailcrm/options.php +++ b/intaro.retailcrm/options.php @@ -40,6 +40,7 @@ $CRM_CONTRAGENT_TYPE = 'contragent_type'; $CRM_SITES_LIST = 'sites_list'; $CRM_ORDER_NUMBERS = 'order_numbers'; $CRM_ORDER_VAT = 'order_vat'; +$CRM_ORDER_TRACK_NUMBER = 'receive_track_number_delivery'; $CRM_CANSEL_ORDER = 'cansel_order'; $CRM_INVENTORIES_UPLOAD = 'inventories_upload'; $CRM_STORES = 'stores'; @@ -814,6 +815,12 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { $CRM_ORDER_VAT, htmlspecialchars(trim($_POST['order-vat'])) ?: 'N' ); + COption::SetOptionString( + $mid, + $CRM_ORDER_TRACK_NUMBER, + htmlspecialchars(trim($_POST['track-number'])) ?: 'N' + ); + COption::SetOptionString( $mid, $CRM_COUPON_FIELD, @@ -1027,6 +1034,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { $optionsCustomFields = unserialize(COption::GetOptionString($mid, $CRM_CUSTOM_FIELDS, 0)); $optionsOrderNumbers = COption::GetOptionString($mid, $CRM_ORDER_NUMBERS, 0); $optionsOrderVat = COption::GetOptionString($mid, $CRM_ORDER_VAT, 0); + $optionsOrderTrackNumber = COption::GetOptionString($mid, $CRM_ORDER_TRACK_NUMBER, 0); $canselOrderArr = unserialize(COption::GetOptionString($mid, $CRM_CANSEL_ORDER, 0)); $sendPickupPointAddress = COption::GetOptionString($mid, Constants::CRM_SEND_PICKUP_POINT_ADDRESS, 'N'); @@ -2247,6 +2255,15 @@ if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { + + + + + + +