logo
logo
Как вариант реализации... [questor 11/01/2008 15:42]
Каким мог бы быть в самом простом случае бюджетный модуль?
1. Некоторая бюджетная программа AbilityBudget (или подмодуль AbilityCash) читает из файла AbilityCash структуру статей, позволяет напротив каждой поставить две цифры - для дохода и расхода. Например, статья "зарплата" - доход в 10 000 рублей, расход в 0.
2. Эти данные сохраняются в отдельный файл например, "Stogovs_2008_01.budg" в каталог \bugdet\. В этот же файл пишется также и период, на который действует бюджет (по умолчанию предлагается текущий месяц, но может быть введен любой интервал- меньше месяца, больше года, не обязательно совпадающий с первыми числами месяца)
3. Анализ исполнения бюджета. Программа читает указанный бюджет, определяет период, читает из файла AceMoney все платежи за этот период, агрегирует по статьям, получая две (доходная и расходная) цифры, сравнивает их с бюджетными (показывает отклонения отдельным столбцом, маркирует цветами).
Можно также рассчитывать и показывать остатки на начало периода, на конец периода.
4. Типовая операция с бюджетом - корректировка бюджета. Поскольку мы работаем с файлами на жестком диске, мы можем сделать копию файла "Stogovs_2008_01_final_corrected.budg" и, открыв его в программе, поправить пару циферок.
5. Ещё одна типичная ситуация: создание подбюджета. Данная операция нужна тем, кто планирует весь год, а потом создает 12 бюджетов на каждый месяц. Программа должна уметь взять любой файл бюджета и нарезать его на 12 файлов, распределив равными кусками лимиты. (Возможен также вариант создания редактора, в котором можно будет указать правила разреза для каждой статьи или даже ручками разбить статьи - но его вид нужно хорошо обдумать)
Для тех, кто планирует месяцы, а потом хочет увидеть весь год - программа должна уметь делать обратную операцию - по указанным n последовательным кускам произвести суммирование статей.
6. Можно хранить бюджеты не файлами, а внутри файла данных AceMoney, в каждом из вариантов полно как положительных сторон, так и отрицательных.
7. Деревья статей бюджета в файле бюджета и файле данных могут не совпадать. Обработка этих ситуаций проста, нужно о ней просто не забывать при программировании.