- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/rest/cashboxservice.php
- Класс: BitrixSaleCashboxRestCashboxService
- Вызов: CashboxService::updateCashbox
static function updateCashbox($params, $page, CRestServer $server)
{
HelpersRestAccessChecker::checkAccessPermission();
$params = self::prepareHandlerParams($params, $server);
self::checkParamsBeforeUpdateCashbox($params);
$allowedFields = [
'NAME', 'OFD', 'OFD_SETTINGS', 'EMAIL',
'NUMBER_KKM', 'KKM_ID', 'ACTIVE', 'SORT',
'USE_OFFLINE', 'ENABLED', 'SETTINGS',
];
// remove non-whitelisted keys using $allowedFields values as keys
$cashboxFields = array_intersect_key($params['FIELDS'], array_flip($allowedFields));
if (isset($cashboxFields['OFD']))
{
$cashboxFields['OFD'] = self::getOfdHandlerClassByCode($cashboxFields['OFD']);
}
if ($cashboxFields['SETTINGS'])
{
$cashboxFields['SETTINGS'] = self::mergeCashboxSettings($params['ID'], $cashboxFields['SETTINGS']);
}
$result = Manager::update($params['ID'], $cashboxFields);
if ($result->isSuccess())
{
return true;
}
$errors = implode("n", $result->getErrorMessages());
throw new RestException($errors, self::ERROR_CASHBOX_UPDATE);
}