Форум сайта python.su
про логику учета в проекте: ее скорее там пока нет, чем есть, но небольшое описание клиента наверное не повредит.
учет реализован в виде прихода и расхода (даже для учета персональных финансов не хватает долгов, кредитов, планирования).
к каждой записи привязываются значения из справочников: пользователи, валюты, счета, статьи, клиенты.
в связи с этим отчеты можно фильтровать по выбранным из справочников значениям, а также за период.
отчеты пока тоже двух видов, сумма расхода или дохода и разница.
на старте клиента пользователь проходит 3 запроса (диалога), после чего открывается основное окно.
первый диалог соединение с сервером (можно убрать в настройках),
второй диалог общий пароль шифрования (снимается в настройках),
третий - выбор пользователя и пароль (также снимается в настройках).
справочники:
окно с пользователями в виде таблицы, функционал: добавить, удалить, редактировать.
у пользователя кроме обычных атрибутов есть права доступа, т.е. на все таблицы в базе
каждый пользователь имеет свои права на просмотр, редактирование, удаление.
окна остальных справочников выполнены в виде дерева с таблицей,
в дереве группы, в таблице записи по выбранной группе.
кроме основного функционала для работы с записями есть поиск.
окно редактирования записи справочника валют имеет дополнительную закладку с историей котировок,
но в отчетах пока не используется.
основное окно содержит таблицу со всеми записями (пока только доходными и расходными).
есть поиск и возможность сортировки (по умолчанию сортировка по дате).
также есть окно с консолью python, в которую перенаправлены потоки интерпретатора,
т.е. видны все ошибки возникающие при работе и можно исполнять python команды, которые могут содержать внутренний api.
в окне редактирования записи (расходной или доходной) происходит выбор значений из справочников,
кроме пользователя, ввод суммы, даты, есть поле для примечания.
интерфейс для построения отчетов реализован в двух вариантах: внутренний и внешний (файловый).
внутренний отчет строится с помощью компонента wxPython printout.
файловый отчет - с помощью reportlab (PDF), pyExcelerator (XLS), есть еще в виде HTML, на выбор пользователя.
весь графический интерфейс выполнен как мультиоконный,
т.е. все окна не мешают работать друг другу и не открываются дважды
за исключением диалогов поиска (поиск после закрытия диалога работает в отдельном потоке).
о сроках судить сложно, но вот некоторые планы на будущее
(иногда даже страшно становится, перед созданием сервера морально готовился несколько месяцев):
сейчас идет работа над дизайнером структуры базы и графического интерфейса (в первую очередь отчетов).
также необходимо будет реализовать на сервере механизм оповещения клиентов о любом изменении в базе
и возможно получится немного ускорить сетевую работу гридов и деревьев.
параллельно разрабатывается более или менее серьезное техническое задание
на создание программы для финансового отдела одной организации.
потом будут добавлены типы записей для ведения учета займов, кредитов
и планирования с раздельными журналами для каждого типа записи.
добавится возможность привязывать к записям, таблицы со значениями справочников.
также необходимо будет добавить контекстный поиск во все гриды.
еще неплохо было бы добавить кредитный калькулятор,
если кто-то знает уже готовый open source в python, подскажите пожалуйста ссылочку.
дальше создание графического интерфейса для администрирования сервера.
в более далекие планы входит портирование на SQLite
(скорее всего с потерей транзакций, естественно с потерей скорости и объема,
но пользователь получит полностью бесплатный продукт)
и включение возможности разбивать базу на несколько файлов,
т.е. для каждой таблицы отдельный файл
(это даст увеличение объемов, позволит создавать простейшие распределенные системы и возможно увеличит скорость).
после создания первого драйвера для SQL скорее всего облегчится задача портирования на другие.
Офлайн
finicа может использовать ORM - например sqlalchemy для того, чтобы можно было легко встраивать программу в уже существующую IT-структуру компании?! :)
в более далекие планы входит портирование на SQLite
(скорее всего с потерей транзакций, естественно с потерей скорости и объема,
Офлайн
sqlalchemy - хорошая идея, но программа не SQL ориентированная,
поэтому думаю портирование будет не простой задачей.
в любом случае спасибо, посмотрю повнимательнее sqlalchemy.
Офлайн