• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/deliverycontroller.php
  • Класс: Bitrix\Crm\Timeline\DeliveryController
  • Вызов: DeliveryController::createDeliveryRequestMessage
public function createDeliveryRequestMessage(
	array $messageData,
	int $deliveryRequestId,
	?int $shipmentId = null
): ?int
{
	$deliveryRequest = Requests\RequestTable::getById($deliveryRequestId)->fetch();
	if (
		!$deliveryRequest
		|| !($deliveryService = Manager::getObjectById($deliveryRequest['DELIVERY_ID']))
	)
	{
		return null;
	}

	$bindings = TimelineBindingsMaker::makeByDeliveryRequestId($deliveryRequest['ID']);

	$id = DeliveryEntry::create([
		'ENTITY_TYPE_ID' => \CCrmOwnerType::DeliveryRequest,
		'ENTITY_ID' => $deliveryRequest['ID'],
		'AUTHOR_ID' => (isset($deliveryRequest['CREATED_BY']) && (int)$deliveryRequest['CREATED_BY'] > 0)
			? (int)$deliveryRequest['CREATED_BY']
			: null,
		'SETTINGS' => [
			'FIELDS' => [
				'MESSAGE_DATA' => $messageData,
				'DELIVERY_SERVICE' => $this->makeDeliveryService($deliveryService),
			],
		],
		'BINDINGS' => $bindings,
	]);
	if (!$id)
	{
		return null;
	}

	$this->sendPullEventOnAddForBindings($id, $bindings);

	return $id;
}