Плановые операции и факт
Плановая операция — то, что должно случиться. Факт — то, что уже случилось. Это разные сущности и хранятся отдельно.
Концепция
| | Плановая | Факт | |---|---|---| | Что значит | «Должно произойти» | «Уже произошло» | | Влияет на баланс счёта | Нет | Да | | Видно в журнале | Нет | Да | | Видно в календаре | Да | Нет | | В отчётах (CashFlow / P&L) | Нет | Да | | В прогнозе баланса | Да (если включён тумблер) | Да |
Плановые живут в отдельной модели PlannedOperation. Журнал = только факт.
Когда плановая становится фактом
Когда вы её подтверждаете — на странице календаря или в баннере на журнале. inCash при подтверждении:
- Создаёт обычную операцию в журнале.
- Обновляет баланс счёта.
- Для разовой плановой — деактивирует её (она своё отработала).
- Для повторяющейся — сдвигает дату следующей итерации (например, +1 месяц для MONTHLY).
Дата созданной операции:
- Если плановая просрочена (
nextDate < сегодня) — операция запишется датойnextDate. - Если подтверждаете заранее (
nextDate ≥ сегодня) — операция запишется сегодняшней датой.
Это нужно чтобы досрочная выплата зарплаты записалась реальной датой, а просроченная — корректной плановой датой.
Действия с плановой
- Подтвердить — создать факт (см. выше).
- Пропустить — для рекуррентной: сдвинуть
nextDateна следующую итерацию, факт не создавать. Для разовой: деактивировать без факта (логически — «удалить из плановых»). - Изменить — открыть модалку редактирования.
См. подробно: Подтвердить / Пропустить / Удалить.
Типы повторяемости
Recurrence: NONE (разовая), DAILY, WEEKLY, BIWEEKLY, MONTHLY, QUARTERLY, YEARLY.
Для повторяющейся хранится только следующая итерация (nextDate). После подтверждения дата просто сдвигается вперёд.
Просроченные
Плановая считается просроченной, если её nextDate < сегодня, но она ещё активна (вы её не подтвердили и не пропустили). Просроченные показываются:
- Красным баннером в журнале (если есть хотя бы одна просроченная).
- Красной строкой в списке плановых на странице календаря.
В отчётах
Все стандартные отчёты (CashFlow, P&L, Balance, Performance, Projects) не учитывают плановые. Это сознательное решение: отчёты — про факт.
Если хотите видеть «как будет если все плановые подтвердятся» — включите тумблер «Учитывать плановые». Это работает на hero-блоке в журнале и на общем балансе в sidebar, но не в отчётах.