- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/delivery/rest/handlerservice.php
- Класс: BitrixSaleDeliveryRestHandlerService
- Вызов: HandlerService::checkParamsOnDeleteHandler
static function checkParamsOnDeleteHandler($params): void
{
if (empty($params['ID']))
{
throw new RestException('Parameter ID is not defined', self::ERROR_CHECK_FAILURE);
}
$deliveryRestHandler = InternalsDeliveryRestHandlerTable::getList(array(
'filter' => array(
'ID' => $params['ID']
)
))->fetch();
if (!$deliveryRestHandler)
{
throw new RestException('Handler not found', self::ERROR_HANDLER_NOT_FOUND);
}
if ($params['APP_ID'] && !empty($deliveryRestHandler['APP_ID']) && $deliveryRestHandler['APP_ID'] !== $params['APP_ID'])
{
throw new AccessException();
}
$deliveryListResult = SaleDeliveryServicesManager::getList([
'select' => ['ID', 'CLASS_NAME', 'CONFIG'],
'filter' => [
'=CLASS_NAME' => '\'.SaleHandlersDeliveryRestHandler::class,
],
]);
$deliveryIdList = [];
while ($delivery = $deliveryListResult->fetch())
{
if ($delivery['CONFIG']['MAIN']['REST_CODE'] === $deliveryRestHandler['CODE'])
{
$deliveryIdList[] = $delivery['ID'];
}
}
if ($deliveryIdList)
{
throw new RestException(
'There are deliveries with this handler: '.implode(', ', $deliveryIdList),
self::ERROR_HANDLER_DELETE
);
}
}