2013-08-08 8 views
1

Это моя диаграмма классов на данный момент:дизайнерского решения для системы инвентаризации

enter image description here

Я считаю, что я могу контролировать уровень запасов на каждое месте по разнице между количеством закупленного ингредиента и количеством продаваемый напиток (поскольку каждый напиток состоит из ингредиента).

Однако, у меня есть требование, которое должно позволить пользователям передавать ингредиенты между местах, и мне интересно, что это лучший подход для этого ...

Новый заказ на покупку будет добавить продукт в инвентаре одного места в , но как я могу удалить его из другого?

+0

Может ли заказ на покупку имеют линии с отрицательными величинами? –

+0

есть, возможность. Раньше я думал об этом решении, но я не чувствую, что это правильно ... Я думаю, что я должен был отделить его от «PurchaseOrder», чтобы отслеживать, кто передал акции, но я мог бы беспокоиться зря. – gabrielhilal

+1

Программа ERP, которую я использую, имеет таблицу «складской передачи»; каждая строка берет один склад (видимо, «место» на вашей диаграмме) и дебетует другое. Таким образом, можно выполнять внутренние переводы. –

ответ

1

Только в случае, если кто-то получить на этот вопрос, здесь идет мое решение:

я решил создать таблицу transfer_stocks регистрировать все переводы между местами. Эта таблица также используется для решения любых расхождений при подсчете запасов (когда recipient_id - это ноль, это означает, что потери нет в наличии - sender_id).

Произведенные на складе продукты производятся исходя из разницы между покупками, продажами и запасами.

Мой класс схема:

enter image description here

Смежные вопросы