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