- Модуль: 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);
}