Сторнирование расхода. Перерасчет.

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (6)

просмотр истории страницы
h2. Технические детали того как работают сторнирование и перерасчет

Сторнирование - это процесс отмены списаний, он происходит и при перерасчете. Отличие в том, что при перерасчете происходит новое начисление по текущему набору услуг.

В первую очередь ядро пытается найти проводки в архивной базе ARCH_ACCOUNT_STACK. Если они есть - проводки помечаются сторнированными (STORNO=1) и стек на обработку (ACCOUNT_STACK) добавляются обратные на соответствующие суммы со ссылкой на сторнированную. После их обработки ядром они так же попадают в ARCH_ACCOUNT_STACK.
h4. Сторнирование

При перерасчёте, если нет проводок (например если они ушли в [архив|CarbonBilling:Настройка периода хранения исторических данных в базе], то все зависит от настрое услуги:
При сторнировании ядро пытается найти проводки в архивной базе ARCH_ACCOUNT_STACK. Если они есть - проводки помечаются сторнированными (STORNO=1) и стек на обработку (ACCOUNT_STACK) добавляются обратные на соответствующие суммы со ссылкой на сторнированную. После их обработки ядром они так же попадают в ARCH_ACCOUNT_STACK.

h4. Перерасчёт

При перерасчете сначала происходит сторнирование, после новое начисление по текущему набору услуг. При этом имеются следующие особенности:

Если в архивной базе ARCH_ACCOUNT_STACK есть проводки, поведение аналогично простому стронированию. Проводки помечаются сторнированными (STORNO=1) и стек на обработку (ACCOUNT_STACK) добавляются обратные на соответствующие суммы со ссылкой на сторнированную. После их обработки ядром они так же попадают в ARCH_ACCOUNT_STACK.

Если в архивной базе ARCH_ACCOUNT_STACK нет проводок (например они ушли в [архив|CarbonBilling:Настройка периода хранения исторических данных в базе], то всё зависит от настрое услуги:
* Опции [сдвига даты списания|CarbonBilling:Сдвиг даты списания. Месяц равен 30 дням.] не включены: данные берутся из [счетчика расхода|CarbonBilling:Счетчики услуг. Вкладка "Расход".] и так же добавляются в ACCOUNT_STACK, после обработки переносятся в архивную базу.
* Сдвиг даты включен: так как опции сдвига подразумеваются для ежемесячных списаний по услугам, без истории проводок у биллинга нет возможности полностью корректно просчитать как двигалась дата списания чтобы правильно сторнировать полные периоды, поэтому сторнирование произвести невозможно.

Если сторнирование производилось в рамках перерасчета, абоненту будут начислены списания по текущему набору услуг с даты их включения (или активации абонента, если таковы настройки услуг), при этом учитывается история блокировок.

Таким образом, если требуется произвести начисление по текущему набору услуг задним числом, нужно исправить даты включения услуг, активации абонента и решить нужно ли учитывать блокировки проходившие в тот период. Этот процесс описан в статье [CarbonBilling:Подключение абонента задним числом]