• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/taxi/taxi.php
  • Класс: BitrixSaleDeliveryServicesTaxiTaxi
  • Вызов: Taxi::createTaxiRequest
public function createTaxiRequest(Shipment $shipment): CreationRequestResult
{
	$result = new CreationRequestResult();

	$creationExternalRequestResult = $this->createTaxiExternalRequest($shipment);
	if (!$creationExternalRequestResult->isSuccess())
	{
		return $result->addErrors($creationExternalRequestResult->getErrors());
	}

	$addResult = LocalDeliveryRequestTable::add(
		[
			'DELIVERY_SERVICE_ID' => $shipment->getDeliveryId(),
			'SHIPMENT_ID' => $shipment->getId(),
			'CREATED_AT' => new DateTime(),
			'EXTERNAL_ID' => $creationExternalRequestResult->getExternalRequestId(),
		]
	);
	if (!$addResult->isSuccess())
	{
		return $result->addError(new Error('db error'));
	}

	$result
		->setStatus($creationExternalRequestResult->getStatus())
		->setRequestId($addResult->getId());

	(new Event(
		'sale',
		static::TAXI_REQUEST_CREATED_EVENT_CODE,
		[
			'SHIPMENT' => $shipment,
			'RESULT' => $result,
		]
	))->send();

	return $result;
}