birmaga.ru
добавить свой файл

1
1. Предметная област - система для виденя управленческого учета методом двойной записи.

2. Общие требования:

Разработанна на PHP/MySQL. Интерфейс - минимальистический, наверное AJAX/Javascript, легкий но удобный. Система желательно минимальный требования к различным модулям, так как не исключено что работать будет на разных платформах(имеется в виду сервер) в то числе например MacOS, Linux, FreeBSD. Язык интерфейса - английский. Так как будет содержать финансовую информацию желательно чтобы на сервере информация хранилась в зашифрованном виде. Идеально конечно чтобы информация расшифровывалась с поощрю ключа пользователя, а на сервере хранилась зашифрованное. Приемлемое решение, если например часть информации на сервере будет хранится в зашифрованном виде(текстовые название счетов, коментарии к транзакциям) а часть хранилась открыто(например коды счетов, и так далее).


Струкрутра базы данных желательно создана с учётом специфики и продуманна так чтобы упростить в дальшейшем формирование отчетов до просто SQL запроса.

Например:

SELECT SUM(amount) FROM transactions WHERE account=счёт AND TYPE=debit

и так далее. Сам подход двойной записи является предрасполагающим к вписаыванию его в структуру реляционных баз данных, это надо использовать.


3. Елементарный объект в системе - транзакция. Транзакция это запись которая увеличивает баланс одного счета и уменьшает баланс второго счета. Транзакция может затрагивать несколько счетов, когда например уменьшается баланс одного счета, увеличивается баланс многих счетов. Но сумма на которую кредитуется(уменьшается) один счет должна совпадать сумме увеличений других счетов. Получается что каждая транзакция состоит из нескольких подтранзакций каждая из которых содержит: код счета который затрагивает, описание дебитуется или кредитуется счет, сумму на которую происходит увличение/уменьшение, описание и дату, пользователя который её ввел.

Транзакция может быть акцептирована или неакцептрована. Все транзакции созданные пользователями без права акцептирования помечаются как неакцептированные.

3. Карта Счетов(Chart of Accounts)

Это списко счетов которые между которыми могут проводится транзакции. Древовидная структура, Состоит из номера счета и его описания. Возможна любая степень вложености. Должен быть редактируемый администратором системы. Должен иметь возможность изменятся в процессе. Как правило скелет создается первоначально, на затем в ходе использования системы он как правило дорабатывается/изминяется достаточно сильно. Некоторые счета которые не используются должны быть деактивируемы. Так как транзакции которые затрагивают эти деактивированные счета могут также затрагивать активные счета, то удалять их нельзя так ак может нарушится баланс.


К каждому счету режим доступа может быть: Full Access, Add Only, View & Add.
Full Access - когда пользователь может полностью видеть связанные с данным счетом транзакции, добавлять новые транзакции, редактировать любую из транзакций.
Add Only - когда пользователь может видеть только свой транзакции на данный счет, не может видеть ни баланса счета, ни транзакций других пользователей, может редактировать только свои неакцептированые транзакции, и может добавлять новые транзакции на этот счет.

View&Add - пользователь может видеть все транзакции по данному счету и его реальный баланс, но не может менять никакие транзакции кроме как свои неакцептированые.


4. Режим администратора

Администратор может:

- Создавать новых пользователей, наделять их правами

- Редактировать/удалять/декативировать пользователй

- Менять структуру карты счетов(добавлять/переименовывать, деактивровать, удалять счета)

- Права пользователя состоят из: прав доступа ко всем счетам, права акцептирования транзакций.

6. Режит пользователя.

Пользователь может:

- Видеть карту счетов с балансами по каждому счету(сумма дебитных трансакция по счету минус сумма кредитных транзакций).

- Режим работы с транзакциям: просмотр списка доступных пользователю транзакций по фильтру. Например транзакции по заданноу счету, или вообще все свои транзакции.

- Пользоваться быстрым добавление транзакций. Администратор системы может задавать определенные шалуны транзакций, которые запрашивают пользователя всего два параметра - сумма и дата, и проводят автоматически данную транзакций по счетам которые заранее прописаны адимистратором. Это необходимо для подотчетных лиц например когда человек получает деньги и делает всего два типа расходов, то еме предоставляется возможность просто нажать одну из предоставляемых ему кнопок "Расходы X", "Расходы Y".

7. Конструктор отчётов:

1. Предопределенные отчет - Balance Sheet. Это отчет о балансах на счетах, где в древовидной структуре(с возможность интерактиво сворачивать/рахворачивать) показаны все счета и рассчитаны балансы для ник(сумма дебитов по счеёту минус сумма кредитов по счёту) на заданную дату.

3. Пользовательский транзакционный отчет - когда показываются все транзакции по заданному филтьру. Скорее всего механизм задания филтра транзакций должен быть общий с отчетом в предыдущим отчетом.



3. Пользовательский отчёт балансового типа: когда пользователь программирует каждую строку рассчитываемую - например как ВЫБРАТЬ все дебиты по этоу счету с такого-то числа по такое-то число и отнять все кредиты по этому счету с такого-то числа по такое-то число. Так пользователь программирует строку за строкой этого отчета.