• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/shipmentdocumentcontroller.php
  • Класс: Bitrix\Crm\Timeline\ShipmentDocumentController
  • Вызов: ShipmentDocumentController::onCreate
public function onCreate($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');
	}

	/* @var Shipment $shipment */
	$shipment = $params['SHIPMENT'];
	if (!$shipment)
	{
		return;
	}

	$total = $this->calculateTotalForShipment($shipment);

	$settings = [
		'TOTAL' => $total,
		'CURRENCY' => $this->getShipmentCurrency($shipment),
	];

	$authorID = self::resolveCreatorID($shipment->getFieldValues());
	$order = $params['ORDER'] ?? $shipment->getOrder();
	$bindings = $this->getDefaultBindings($ownerID, $order);
	$historyEntryID = StoreDocumentEntry::create([
		'TYPE_CATEGORY_ID' => TimelineType::CREATION,
		'ENTITY_TYPE_ID' => \CCrmOwnerType::ShipmentDocument,
		'ENTITY_ID' => $ownerID,
		'AUTHOR_ID' => $authorID,
		'SETTINGS' => $settings,
		'BINDINGS' => $bindings,
	]);

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

	$this->onStatusModify($ownerID, $params);
}