• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/shipmentdocumentcontroller.php
  • Класс: Bitrix\Crm\Timeline\ShipmentDocumentController
  • Вызов: ShipmentDocumentController::onTotalModify
private function onTotalModify($documentId, $params)
{
	/* @var Shipment $shipment */
	$shipment = $params['SHIPMENT'];
	if (!$shipment)
	{
		return;
	}
	$historyEntryID = null;

	$newTotal = $this->calculateTotalForShipment($shipment);
	$newCurrency = $this->getShipmentCurrency($shipment);

	$currentUserId = (int)\Bitrix\Main\Engine\CurrentUser::get()->getId();
	$authorID =  $currentUserId > 0 ? $currentUserId : 1;

	$order = $params['ORDER'] ?? $shipment->getOrder();
	$bindings = $this->getDefaultBindings($documentId, $order);

	$historyEntryID = StoreDocumentEntry::create(
		[
			'TYPE_CATEGORY_ID' => TimelineType::MODIFICATION,
			'ENTITY_TYPE_ID' => \CCrmOwnerType::ShipmentDocument,
			'ENTITY_ID' => $documentId,
			'AUTHOR_ID' => $authorID,
			'SETTINGS' => [
				'FIELD' => 'TOTAL',
				'TOTAL' => $newTotal,
				'CURRENCY' => $newCurrency,
			],
			'BINDINGS' => $bindings
		]
	);

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