• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/rest/extraservicesservice.php
  • Класс: BitrixSaleDeliveryRestExtraServicesService
  • Вызов: ExtraServicesService::deleteExtraServices
static function deleteExtraServices($query, $n, CRestServer $server)
{
	self::checkDeliveryPermission();
	$params = self::prepareExtraServicesParams($query, $server);

	if (empty($params['ID']))
	{
		throw new RestException('Parameter ID is not defined', self::ERROR_CHECK_FAILURE);
	}

	$extraService = SaleDeliveryExtraServicesTable::getById($params['ID'])->fetch();
	if ($extraService)
	{
		$data = SaleDeliveryServicesManager::getById($extraService['DELIVERY_ID']);
		if ($data && !self::hasAccessToDelivery($data, $params['APP_ID']))
		{
			throw new AccessException();
		}
	}
	else
	{
		throw new RestException('Extra service not found', self::ERROR_EXTRA_SERVICE_NOT_FOUND);
	}

	$result = SaleDeliveryExtraServicesTable::delete($params['ID']);
	if ($result->isSuccess())
	{
		return true;
	}

	$error = implode("n", $result->getErrorMessages());
	throw new RestException($error, self::ERROR_EXTRA_SERVICE_DELETE);
}