Начали разрабатывать новый модуль, по учету денежных средств.
Хотелось бы услышать критики и замечаний, возможно полезных советов, так как опыта не много.
Сделал описание по Коберну, ну и Use Case диаграмму.
сообственно беглое описание:
Модуль по учету расходов по грузу.
Компания перевозчик грузов.
Клиент приносит, либо перечисляет по безналу денежные средства на счет компании перевозчика. Менеджер на основании платежного поручения или полученных денежных средств формирует платеж «Зачисление», который рассматривается Бухгалтером на основании полученных наличных денежных средств или платежа по безналичному расчету, принимает решение о подтверждении «Зачисления». Система производит пополнение счета на указанную сумму.
Далее менеджер формирует платеж «Оплата» на оплату услуг по заявке. На момент формирования платежа, состояние счета может быть = 0, если есть не подтвержденные «Зачисления», либо должно быть больше нуля. Бухгалтер рассматривает платеж «Оплата», на основании состояния счета клиента и его правильности заполнения, подтверждает, если все корректно. Система списывает указанную сумму с виртуального счета клиента и производит зачисление на виртуальный счет компании.
ЗЫ: Виртуальные счета клиенты могут пополнять, невзирая на то, что все услуги уже оплачены, таким образом пополняют, как бы на перспективу.
Собственно это позволяет производить оплату за услуги с виртуальных счетов, не пополняя их, разумеется, учитывая, что там имеется достаточное количество денежных средств.
Реализация по Коберну:
Вариант использования 1Зачисление средств на счет клиента и оплата оказанных услуг.
Контекст использования: Оплата за оказанные услуги.
Область действия: Система Логистик
Уровень: обобщенный
Основное действующее лицо: Менеджер
Участники и интересы:Клиент – оплатить услуги.
Менеджер – принять деньги за услуги, сформировать платеж за оказанные услуги по заявке.
Бухгалтер – подтвердить принятие средств на счет клиента и оплату услуг
Предусловие: Оказаны услуги по заявке
Минимальные гарантии: Денежные средства зачислены на счет клиента
Гарантия успеха: Денежные средства зачислены на счет клиента, подтверждена оплата за оказанные услуги
Триггер: Клиент приносит\перечисляет денежные средства.
Основной сценарий:1. Клиент приносит либо переводит на банковский счет деньги
2. Менеджер принимает деньги от клиента (нал или платеж по безналу).
3. Менеджер формирует платеж «Зачисление» на счет клиента.
4. Бухгалтер проверяет и подтверждает платеж «Зачисление».
5. Менеджер формирует платеж «Оплата» за оказанные услуги по заявке.
6. Бухгалтер проверяет и подтверждает платеж «Оплата» за оказанные услуги по заявке.
Расширения: 3a. Сумма зачисления на счет равна нулю:
3a1. Менеджер редактирует платеж «Зачисление»
3a2. Переход на шаг 4
3b. Указан несуществующий клиент:
3b1. Система сообщает, что клиент в системе не существует.
3b2. Выход из сценария
4a.Платеж «Зачисление» некорректен или курс зачисления неудовлетворительный :
4a1. Менеджер редактирует платеж «Зачисление»
4a2. Переход на шаг 4
5a. Неоплаченных услуг нет:
5a1. Система сообщает об отсутствии неоплаченных услуг.
5a2. Выход из сценария.
5b. Средств на счету недостаточно:
5b1. Система проверяет неподтвержденные зачисления на счет клиента.
5b1a. Есть неподтвержденные зачисления + средства на счету, перекрывают сумму платежа:
Формируется платеж.
5b2a. Есть неподтвержденные зачисления + средства на счету, не перекрывают сумму платежа:
Формируется платеж на сумму имеющихся на счету средств и неподтвержденных зачислений.
5b3a. Неподтвержденных зачислений нет:
Формируется платеж на сумму имеющихся на счету средств
5b4a. Неподтвержденных зачислений нет, средств на счету нет:
Система информирует об отсутствии средств на счету и производит выход из сценария
5с. Указан несуществующий клиент:
5с1. Система сообщает, что клиент в системе не существует.
5с2. Выход из сценария
5d. Менеджер указал сумму большую суммы стоимости услуг или равную нулю:
5d1. Система сообщает, что клиент в системе не существует.
5d2. Выход из сценария
6a. Бухгалтер обнаружил несоответствия в платеже «Оплата»:
6a1. Бухгалтер сообщает менеджеру об ошибке.
6a2. Менеджер редактирует платеж «Оплата».
6a3. Переход на шаг 6
6b. Недостаточно средств на счету клиента:
6b1. Система сообщает о недостаче средств.
6b2. Выход из сценария
Ну и вот диаграмма use case
ЗЫ: Просьба ногами сильно не пинать