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