• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/ordershipmentcontroller.php
  • Класс: Bitrix\Crm\Timeline\OrderShipmentController
  • Вызов: OrderShipmentController::onDeducted
public function onDeducted($ownerID, array $params)
{
	if (!is_int($ownerID))
	{
		$ownerID = (int)$ownerID;
	}

	if ($ownerID <= 0)
	{
		throw new Main\ArgumentException('Owner ID must be greater than zero.', 'ownerID');
	}

	$settings = is_array($params['SETTINGS']) ? $params['SETTINGS'] : [];
	$shipmentFields = is_array($params['FIELDS']) ? $params['FIELDS'] : [];
	$bindings = $params['BINDINGS'] ?? [];

	$authorId = self::resolveCreatorID($shipmentFields);
	if (!empty($settings))
	{
		$timelineEntryId = OrderEntry::create([
			'ENTITY_ID' => $ownerID,
			'TYPE_CATEGORY_ID' => TimelineType::MODIFICATION,
			'ENTITY_TYPE_ID' => \CCrmOwnerType::OrderShipment,
			'AUTHOR_ID' => $authorId,
			'BINDINGS' => $bindings,
			'SETTINGS' => $settings
		]);

		foreach ($bindings as $binding)
		{
			$this->sendPullEventOnAdd(
				new ItemIdentifier($binding['ENTITY_TYPE_ID'], $binding['ENTITY_ID']),
				$timelineEntryId
			);
		}
	}
}