Van-Stepanenko / MyWarehouse

0 stars 0 forks source link

Исходное задание:

Предметная область

В модели предметной области имеются сущности (в скобках указаны обязательные атрибуты):

API для работы с сущностями оперирует форматом JSON. Работу с документами также можно проводить в формате JSON, либо использовать другой человеко-читаемый формат (например CSV). Формат выводимых отчетов на выбор: JSON, CSV, HTML (а можно и все три :) ).

Функциональные требования

Реализованный функционал желательно покрыть юнит-тестами и интеграционными тестами.

Моя документация

план работы:

Сценарии использования :

Добавление товара на склад

КОГДА пришел товар (Значит, пришел запрос на соответствующий end point API - а именно POST http://localhost:8080/goods c телом, в котором содержится JSON объект Товар)

ТО Создаем документ поступления.

И Проверяем, есть ли этот товар в нашей БД.

ЕСЛИ нет, заводим сведения о новом товаре в бД.

И Заполняем документ поступления и сохраняем в БД

ИНАЧЕ Отправляем его на склад обновлением количество этого товара.

И Заполняем документ поступления И сохраняем в БД

Продажа товара

ДОПУСТИМ Товар существует на запрашиваемом складе в нужном количестве

КОГДА Поступил запрос на продажу товара

ТО Проверяем наличие товара в заданном количестве.

ЕСЛИ Количество товара на складе больше

ИЛИ равно требуемому для продажи

ТО Обновляем информацию о товаре на складе.

И Создаем документ продажи И Сохраняем в БД

ДОПУСТИМ Товар НЕ существует на запрашиваемом складе

Тогда Выдаем ошибку о том, что не хватает товара на данном складе.

КОГДА Поступил запрос на продажу товара

ТО Проверяем наличие товара в заданном количестве.

ЕСЛИ Количество товара на складе меньше

ТО Выдаем ошибку "Недостаточно товара на складе X"

Перемещение товара

КОГДА Переместили товар

ТО Создаем документ перемещения

И Проверяем наличие товара в заданном количестве.

//TODO закончить ... ... ... ... ...