Прогон абонплаты

Прогон абонплаты Схема процесса, собранная в Archify. 01 / Прогон услуги EX / Пропуски 03 / Деньги и эффекты Выборка Проверки и цена Списание и сдвиг Celery Beat · час из VpnConst · Прогон услуги › Выборка Celery Beat час из VpnConst Выборка услуг · sched_date ≤ now · Прогон услуги › Выборка Выборка услуг sched_date ≤ now Атомарный блок · select_for_update · Прогон услуги › Проверки и цена Атомарный блок select_for_update Сумма списания · summ → summa → price · Прогон услуги › Проверки и цена · хранится ×10^10 Сумма списания summ → summa → price хранится ×10^10 Сдвиг sched_date · следующий период · Прогон услуги › Списание и сдвиг Сдвиг sched_date следующий период Не тарифицируем · ОП · IPTV · вне окна · Пропуски › Проверки и цена Не тарифицируем ОП · IPTV · вне окна Списание не выполнено · b_negbal · нет средств · Пропуски › Списание и сдвиг Списание не выполнено b_negbal · нет средств Списание · FinOp + ostatok −= · Деньги и эффекты › Списание и сдвиг Списание FinOp + ostatok −= Пост-эффекты · видео · IPTV · лояльность · Деньги и эффекты › Списание и сдвиг Пост-эффекты видео · IPTV · лояльность регламент сумма ≠ 0 долг · приостановка дату всё равно двигаем Условные обозначения шаг прогона пропуск расписание запись в БД

Как считается сумма

  • • Каскад: UsersUsluga.summ → Usluga.summa → price → шаблон тарифа
  • • Режим «равными долями» делит месячную цену на дни месяца

Почему списание пропускают

  • • Обещанный платёж и IPTV kill-switch не тарифицируются
  • • При b_negbal списываем только услуги с charge_ignore_balance