• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/eventshandler/shipment.php
  • Класс: Bitrix\Crm\Order\EventsHandler\Shipment
  • Вызов: Shipment::OnBeforeSaleShipmentDeleted
static function OnBeforeSaleShipmentDeleted(Main\Event $event): void
{
	if (!Main\Loader::includeModule('sale'))
	{
		return;
	}

	$values = $event->getParameter('VALUES');

	$shipmentId = $values['ID'] ?? null;
	if ($shipmentId)
	{
		$shipment = Sale\Repository\ShipmentRepository::getInstance()->getById($shipmentId);
		if (!$shipment || $shipment->getPrice() <= 0)
		{
			return;
		}

		/** @var Crm\Order\EntityBinding $binding */
		$binding = $shipment->getOrder()->getEntityBinding();
		if (
			!$binding
			|| $binding->getOwnerTypeId() !== \CCrmOwnerType::Deal
		)
		{
			return;
		}

		$dealId = $binding->getOwnerId();
		if ($dealId === 0)
		{
			return;
		}

		self::$needSynchronizeProductRows = true;
		self::$dealId = $dealId;
	}
}