- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/delivery/rest/requestservice.php
- Класс: BitrixSaleDeliveryRestRequestService
- Вызов: RequestService::updateRequest
static function updateRequest($query, $n, CRestServer $server): bool
{
self::checkDeliveryPermission();
$params = self::prepareIncomingParams($query);
$requestId = self::getRequestId(
self::getDeliveryId($params, 'DELIVERY_ID'),
$params,
'REQUEST_ID'
);
$fields = [];
if (isset($params['FINALIZE']))
{
if (!in_array($params['FINALIZE'], ['Y', 'N'], true))
{
throw new RestException(
'Unexpected parameter FINALIZE value: Y, N expected',
self::ERROR_CODE_UNEXPECTED_OVERWRITE_PROPERTIES_VALUE
);
}
if ($params['FINALIZE'] === 'Y')
{
$fields['STATUS'] = RequestsManager::STATUS_PROCESSED;
}
}
$requestStatus = self::getRequestStatus($params, 'STATUS');
if (!is_null($requestStatus))
{
$fields['EXTERNAL_STATUS'] = $requestStatus['TEXT'];
$fields['EXTERNAL_STATUS_SEMANTIC'] = $requestStatus['SEMANTIC'];
}
$properties = self::getRequestProperties($params, 'PROPERTIES');
if (!is_null($properties))
{
$fields['EXTERNAL_PROPERTIES'] = $properties;
}
$overwriteProperties = false;
if (isset($params['OVERWRITE_PROPERTIES']))
{
if (!in_array($params['OVERWRITE_PROPERTIES'], ['Y', 'N'], true))
{
throw new RestException(
'Unexpected parameter OVERWRITE_PROPERTIES value: Y, N expected',
self::ERROR_CODE_UNEXPECTED_OVERWRITE_PROPERTIES_VALUE
);
}
$overwriteProperties = $params['OVERWRITE_PROPERTIES'] === 'Y';
}
if (empty($fields))
{
throw new RestException(
'Empty update payload',
self::ERROR_CODE_EMPTY_UPDATE_PAYLOAD
);
}
$updateResult = RequestsManager::updateDeliveryRequest(
$requestId,
$fields,
$overwriteProperties
);
if (!$updateResult->isSuccess())
{
throw new RestException('Internal error', self::ERROR_CODE_UPDATE_REQUEST_INTERNAL_ERROR);
}
return true;
}