From cd6e8bf844d497947d6649f947d89d41d2a26c0f Mon Sep 17 00:00:00 2001 From: Ivan Chaplygin Date: Wed, 25 Oct 2023 14:49:44 +0300 Subject: [PATCH] =?UTF-8?q?ref=20#92358=20=D0=98=D0=B7=D0=BC=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=82=D1=80=D0=B5=D0=BA=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=BC=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../general/history/RetailCrmHistory_v5.php | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php index be816590..8ba1664c 100644 --- a/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php +++ b/intaro.retailcrm/classes/general/history/RetailCrmHistory_v5.php @@ -1180,15 +1180,6 @@ 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') { @@ -1731,28 +1722,32 @@ class RetailCrmHistory $shipmentColl = $bitrixOrder->getShipmentCollection(); if ($delivery) { + $baseFields = [ + 'BASE_PRICE_DELIVERY' => $crmOrder['delivery']['cost'], + 'PRICE_DELIVERY' => $crmOrder['delivery']['cost'], + 'CURRENCY' => $bitrixOrder->getCurrency(), + 'DELIVERY_NAME' => $delivery->getName(), + 'CUSTOM_PRICE_DELIVERY' => 'Y', + ]; + + if (isset($crmOrder['delivery']['data']['trackNumber']) + && RetailcrmConfigProvider::getTrackNumberStatus() === 'Y' + ) { + $baseFields['TRACKING_NUMBER'] = $crmOrder['delivery']['data']['trackNumber']; + } + //В коллекции всегда есть одна скрытая системная доставка, к которой относятся нераспределенные товары //Поэтому, если есть только системная доставка, то нужно создать новую if (!$update || $shipmentColl->count() === 1) { $shipment = $shipmentColl->createItem($delivery); - $shipment->setFields([ - 'BASE_PRICE_DELIVERY' => $crmOrder['delivery']['cost'], - 'PRICE_DELIVERY' => $crmOrder['delivery']['cost'], - 'CURRENCY' => $bitrixOrder->getCurrency(), - 'DELIVERY_NAME' => $delivery->getName(), - 'CUSTOM_PRICE_DELIVERY' => 'Y' - ]); + + $shipment->setFields($baseFields); } else { + $baseFields['DELIVERY_ID'] = $deliveryId; + foreach ($shipmentColl as $shipment) { if (!$shipment->isSystem()) { - $shipment->setFields([ - 'BASE_PRICE_DELIVERY' => $crmOrder['delivery']['cost'], - 'PRICE_DELIVERY' => $crmOrder['delivery']['cost'], - 'CURRENCY' => $bitrixOrder->getCurrency(), - 'DELIVERY_ID' => $deliveryId, - 'DELIVERY_NAME' => $delivery->getName(), - 'CUSTOM_PRICE_DELIVERY' => 'Y' - ]); + $shipment->setFields($baseFields); } } }