Теперь немного о самой задумке. Предполагается, что программа будет соответствовать следующим условиям:
- Максимально возможная переносимость,
- Быстрый унифицированный интерфейс,
- Возможность максимально быстрого изменения данных,
- Отсутствие необходимости в фиксации времени модификации документа,
- Необходимость в отслеживании баланса по клиентам (сальдо).
Программа должна определённым образом управлять информацией. На входе ей должны предоставляться:
- Данные о клиенте: имя / наименование и связаные телефоны, причём телефонов может быть больше двух;
- Данные о позиции: наименование и стоимость. Данный тип используется для фиксаций операций и затрат — то есть, позиция может иметь как отрицательную, так и положительную стоимость (выплаты заказчика + затраты на оборудование / дорогу / операции и прочие радости);
- Данные для формирования документа, собраные из предыдущих;
На выходе пользователь должен получать следующую структуру:
- Каталог пользовательских данных,
- Каталог телефонов с привязкой к пользователям,
- Каталог позиций с возможностью редактирования,
- Каталог документов с возможностью изменения клиентских выплат.