- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/delivery/requests/manager.php
- Класс: BitrixSaleDeliveryRequestsManager
- Вызов: Manager::deleteDeliveryRequest
static function deleteDeliveryRequest($requestId)
{
$result = new Result();
$shipmentIds = [];
if (empty($requestId))
{
$result->addError(new MainError(Loc::getMessage('SALE_DLVR_REQ_MNGR_ERROR_REQ_ID')));
return $result;
}
if ($deliveryRequestHandler = self::getDeliveryRequestHandlerByRequestId($requestId))
{
$res = $deliveryRequestHandler->delete($requestId);
if (!$res->isSuccess())
$result->addErrors($res->getErrors());
}
if ($result->isSuccess())
{
$requestShipmentList = ShipmentTable::getList(array('filter' => array('=REQUEST_ID' => $requestId)));
while ($requestShipment = $requestShipmentList->fetch())
{
$shipmentIds[] = $requestShipment['SHIPMENT_ID'];
}
$con = MainApplication::getConnection();
$con->queryExecute("DELETE FROM ".ShipmentTable::getTableName()." WHERE REQUEST_ID=".intval($requestId));
$res = RequestTable::delete($requestId);
if (!$res->isSuccess())
$result->addErrors($res->getErrors());
}
(new MainEvent(
'sale',
self::REQUEST_DELETED_EVENT_CODE,
[
'REQUEST_ID' => $requestId,
'SHIPMENT_IDS' => $shipmentIds,
'RESULT' => $result
]
))->send();
if ($result->isSuccess() && Loader::includeModule('pull'))
{
CPullWatch::AddToStack(
'SALE_DELIVERY_REQUEST',
[
'module_id' => 'sale',
'command' => 'onDeliveryRequestDelete',
'params' => [
'ID' => $requestId,
]
]
);
}
return $result;
}