• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/sale/shipmentdocumenttimeline.php
  • Класс: Bitrix\Crm\Integration\Sale\ShipmentDocumentTimeline
  • Вызов: ShipmentDocumentTimeline::onSaleShipmentEntitySaved
static function onSaleShipmentEntitySaved(Event $event)
{
	$shipment = $event->getParameter('ENTITY');
	$oldValues = $event->getParameter('VALUES');
	if (!$shipment instanceof Shipment)
	{
		return;
	}

	$isSystem = $shipment->isSystem();
	$isRealization = $shipment->getField('IS_REALIZATION') === 'Y';
	if ($isSystem || !$isRealization)
	{
		return;
	}

	// is the shipment a new realization?
	$isNew =
		(array_key_exists('ID', $oldValues) && is_null($oldValues['ID']))
		|| (isset($oldValues['IS_REALIZATION']) && $oldValues['IS_REALIZATION'] === 'N')
	;

	if ($isNew)
	{
		$params = [
			'SHIPMENT' => $shipment,
			'ORDER' => $shipment->getOrder(),
		];
		ShipmentDocumentController::getInstance()->onCreate($shipment->getId(), $params);
		return;
	}

	$params = [
		'SHIPMENT' => $shipment,
		'ORDER' => $shipment->getOrder(),
	];
	ShipmentDocumentController::getInstance()->onModify($shipment->getId(), $params);
}