• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxbitrix.php
  • Класс: BitrixSaleCashboxCashboxBitrix
  • Вызов: CashboxBitrix::saveCashbox
static function saveCashbox(array $cashbox)
{
	if (isset($cashbox['ID']) && (int)$cashbox['ID'] > 0)
	{
		if ($cashbox['ENABLED'] !== $cashbox['PRESENTLY_ENABLED'])
		{
			Manager::update($cashbox['ID'], array('ENABLED' => $cashbox['PRESENTLY_ENABLED']));

			if ($cashbox['PRESENTLY_ENABLED'] === 'N')
			{
				static::showAlarmMessage($cashbox['ID']);
			}
		}

		$fields = array('DATE_LAST_CHECK' => new MainTypeDateTime());
		if (isset($cashbox['SETTINGS']))
		{
			$fields['SETTINGS'] = $cashbox['SETTINGS'];
		}

		if (isset($cashbox['HANDLER']))
		{
			$fields['HANDLER'] = $cashbox['HANDLER'];
		}

		Manager::update($cashbox['ID'], $fields);
	}
	else
	{
		$result = Manager::add(
			array(
				'ACTIVE' => 'N',
				'DATE_CREATE' => new MainTypeDateTime(),
				'NAME' => static::getName(),
				'NUMBER_KKM' => $cashbox['NUMBER_KKM'],
				'HANDLER' => $cashbox['HANDLER'],
				'ENABLED' => $cashbox['PRESENTLY_ENABLED'],
				'DATE_LAST_CHECK' => new MainTypeDateTime(),
				'EMAIL' => self::getCashboxDefaultEmail(),
			)
		);

		if ($result->isSuccess())
		{
			if ($cashbox['PRESENTLY_ENABLED'] === 'N')
			{
				static::showAlarmMessage($result->getId());
			}

			InternalsCashboxZReportTable::add(array(
				'STATUS' => 'Y',
				'CASHBOX_ID' => $result->getId(),
				'DATE_CREATE' => new MainTypeDateTime(),
				'DATE_PRINT_START' => new MainTypeDateTime(),
				'LINK_PARAMS' => '',
				'CASH_SUM' => $cashbox['CACHE'],
				'CASHLESS_SUM' => $cashbox['INCOME'] - $cashbox['CACHE'],
				'CUMULATIVE_SUM' => $cashbox['NZ_SUM'],
				'RETURNED_SUM' => 0,
				'CURRENCY' => 'RUB',
				'DATE_PRINT_END' => new MainTypeDateTime()
			));
		}
	}
}