Доход
Dinary хранит данные о ежемесячном доходе семьи в EUR для расчёта накоплений (доход − расходы).
Откуда берутся данные
| Период | Источник в Google Sheets | Валюта |
|---|---|---|
| 2019–2021 | вкладка Balance | RUB → EUR |
| 2022 (янв–июль) | вкладка Balance | RUB → EUR |
| 2022 (авг–дек) | вкладка Balance | RSD → EUR |
| 2023 | вкладка Balance | RSD → EUR |
| 2024–2026 | вкладка Income | RSD → EUR |
Конвертация в EUR выполняется по курсу НБС (для RSD) или Frankfurter (для RUB) на конец месяца.
Операции
Импорт дохода за один год
inv import-income --year=2024 --yes
Полностью перезаписывает таблицу income в budget_2024.duckdb данными из Google Sheets. Команда деструктивная и требует явного --yes.
Импорт всех лет
inv import-income-all --yes
Запускает импорт для каждого года, у которого зарегистрирован источник дохода. Используется как часть скоординированного reset-флоу (import-catalog → import-budget-all → import-income-all → verify-bootstrap-import-all → verify-income-equivalence-all) при остановленном сервере.
Проверка корректности
inv verify-income-equivalence --year=2024
Повторно читает Google Sheet и сравнивает итоги по месяцам с данными в БД (допуск ±0.02 EUR). Read-only, --yes не требуется.
Что хранится в БД
Одна строка на месяц: year, month, amount (EUR). Поле origin было удалено в ходе 3D-reset — income всегда импортируется из таблиц одним источником на год.
Начиная с 2026
Текущий доход по-прежнему вводится в существующих листах Google Sheets и подтягивается в БД через inv import-income. Phase 1 PWA не предоставляет ввод дохода (это запланировано для будущих фаз).