Доброго времени суток!
Никогда бы не подумал, что простецкий отчёт личного бюджета мне будет настолько сложно создать ):
Есть кто-нибудь, кто умеет проектировать такие штуки или строить их модели? На крайний случай, кто-нибудь знает подходящее ПО для MacOS?
Примерный вид того, что хочу – вижу, нарисовать могу.
Хотелки:
– Логи фактических затрат и доходов
– Отдельный лог для планируемых трат и доходов
– Настройка циклических платежей/доходов
– Автоматическое сравнение добавленных в лог фактических операций с планируемыми
– Вывод дифференциала, текущего баланса и баланса на любую выбранную дату с учётом всех транзакций (как фактических, так и планируемых).
– Графики/диаграммы по вкусу или вообще без них.
Алгоритм работы:
Добавляю в лог (планируемый/фактический) транзакцию (затрата/доход) – смотрю автоматически рассчитанный баланс как на сегодня, так и на любое количество дней вперёд (машина времени, агада).
Суть проблемы: не могу спроектировать модель ): Техническая реализация проблем не составляет. Буду рад любым идеям/предложениям.
Спасибо!
Примечание:
Уточняю.
Хочу видеть два лога: "План" (будущее) и "Факт" (прошедшее). Из них формируются две таблицы с полями "Планируемая сумма", "Фактическая сумма" и "Дифференциал".
Алгоритмы работы:
1 – Произвёл транзакцию в реальном мире. Открываю лог "Факт", дописываю туда описание и сумму.
2 – Хочу запланировать транзакцию. Открываю лог "План", дописываю туда дату, описание и сумму.
3 – Произвёл транзакцию в реальном мире, которая была запланирована. Открываю лог "План", дописываю в существующую строку фактическую сумму – она автоматически переносится в лог "Факт" и снова вся книга пересчитывается.
4 – Добавление периодической транзакции (например, з/п или аренда). Открываю список циклических транзакций, пишу описание, сумму, дату начала, дату конца, периодичность – её все(!) записи автоматически появляются в логе "План". Остальная работа аналогична п.3.
5 – Изменение периодической транзакции. Открываю список циклических транзакций, нахожу нужную, меняю данные – они обновляются только в логе "План" (лог "Факт" не меняется).
6 – Просмотр текущего баланса. Открываю лист "Текущий баланс" и вижу таблицу с общими суммами из лога "Факт" (с "начала времён" по текущую дату).
7 – Просмотр будущего баланса. Открываю лист "Будущее" и вижу такую же таблицу как в п.6. Данные берутся из лога "Факт", затем добавляются данные из лога "План" вплоть до выбранной пользователем на том же листе даты (по умолчанию – конец текущего месяца).
Общие требования:
1 – Сортировка во всех логах – по дате.
2 – После каждой операции происходит пересчёт всей книги.
Всё. Больше ничего не нужно.
ps: если будет какой-нибудь график и/или диаграмма, то шик и блеск.
Примечание:
NC1, спасибо за ответ! Согласен, пусть будет хотя бы год. А как построить модель системы? Интересует какие именно создать таблицы и какие связи между ними?
Сейчас пытаюсь, например, сделать это в Excel. Получился один общий лог (дата, категория, название, сумма_план, сумма_факт, сумма_дифф), в который записи приходится добавлять вручную, сам не расширяется, рядом две таблички "текущий баланс" и "общий баланс".
Не удобно тем, что будущее и текущее всё в куче, управление полностью ручное, а я, признаться, очень слаб в Excel чтобы допилить его до состояния умного помощника ):
Примечание:
> Не эксельная это задача
Странно, я думал, что его инструмент отчётов для этого и создан. Ну да ладно, если не подходящий инструмент, то залью на сервак – пущай скрипты по крону крутятся.
Пока ждал ответа уже начал скрипт писать, но создавал только одну базу "log", где хранились все транзакции. Спасибо, направили меня в нужное русло (: Действительно, всё понятно объяснили!
Осталось подумать насчёт периодичности.. Впрочем, пока проектом буду пользоваться только я, то можно считать и просто в количестве дней, а потом доработать.
Единственный момент, который остался непонятным: каким образом реализовать добавление, например, зарплаты (ежемесячной) из таблицы периодичных транзакций в общую? Только ли ежедневным запуском робота и сверкой дат? Хотелось бы обойтись без него.