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