- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/helper.php
- Класс: BitrixSaleTradingPlatformHelper
- Вызов: Helper::onAfterUpdateShipment
static function onAfterUpdateShipment(BitrixMainEvent $event)
{
$result = new EventResult();
$data = $event->getParameter('fields');
if (!isset($data["TRACKING_NUMBER"]) && !isset($data["DELIVERY_NAME"]))
return $result;
$primary = $event->getParameter('id');
$dbRes = OrderTable::getList(array(
'select' => array(
'*',
'SITE_ID' => 'ORDER.LID',
'TRADING_PLATFORM_CODE' => 'TRADING_PLATFORM.CODE',
'TRADING_PLATFORM_CLASS' => 'TRADING_PLATFORM.CLASS',
'DELIVERY_NAME' => 'SHIPMENT.DELIVERY.NAME',
'DELIVERY_ID' => 'SHIPMENT.DELIVERY_ID',
'TRACKING_NUMBER' => 'SHIPMENT.TRACKING_NUMBER',
),
'filter' => array(
'=SHIPMENT.ID' => $primary['ID'],
),
'runtime' => array(
'SHIPMENT' => array(
'data_type' => 'BitrixSaleInternalsShipmentTable',
'reference' => array(
'=this.ORDER_ID' => 'ref.ORDER_ID',
),
),
),
));
if ($platformOrder = $dbRes->fetch())
{
if (class_exists($platformOrder['TRADING_PLATFORM_CLASS']) && is_subclass_of($platformOrder['TRADING_PLATFORM_CLASS'], 'BitrixSaleTradingPlatformPlatform'))
{
if ($platform = call_user_func($platformOrder['TRADING_PLATFORM_CLASS'] . '::getInstance'))
{
$result = $platform->onAfterUpdateShipment(
$event,
array_merge(
$platformOrder,
array(
'TRACKING_NUMBER' => isset($data["TRACKING_NUMBER"]) ? $data["TRACKING_NUMBER"] : $platformOrder["TRACKING_NUMBER"],
'DELIVERY_NAME' => isset($data["DELIVERY_NAME"]) ? $data["DELIVERY_NAME"] : $platformOrder["DELIVERY_NAME"],
'DELIVERY_ID' => isset($data["DELIVERY_ID"]) ? $data["DELIVERY_ID"] : $platformOrder["DELIVERY_ID"],
)
)
);
}
}
}
return $result;
}