@Poligraphist

Как организовать схему складского учёта с перемещением в магазины под реализацию?

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

Пример:
Движение по складу осуществляется в таблице sale

id, id-склада, id-товара, id-магазина, количество, сумма

Товар id-1 был в базе со стоимость 50 у.е.
Был отгружен записью № 1

id-1: 5 шт * 50 у.е. = 250 у.е. со склада id-1, магазину-1

Через некоторое время товар подорожал и было изменение в базе по стоимости товара c id-1, например он стал 70.
И отгружает тому же покупателю

id-2: 3 шт * 70 у.е = 210 у.е со склада id-1, магазину-1

У нас есть таблица с движением товара, таблица с товаром и так далее.
Попробуем задать простые вопросы:

1. Сколько товара лежит в магазине id-1 ? легко, суммируем по id магазина и id товара.
2. На какую сумму лежит товар в магазине id-1? так же легко суммируем.

Теперь есть 2 операции которые могуть быть с этой базой и товаром:
1. Продажа магазином части товара.
2. Возврат не проданного товара на склад.

И тут возникает тупик.
Как мы оформим фактическую продажу товара? Мы знаем что в магазине-1 лежит 8 единиц товара id-1 на сумму 460 у.е. То есть если магазин продал 2 единицы товара, то мы должны записать в базу sale третью строку, где количество будет -2, что даст нам актуальные остатки по товару в количественном выражении, а что в строке стоимость? Ставить среднюю стоимость? Тогда начнутся дробные числа и округления.

Возврат не проданного товара - та же история. При возврате мы должны уменьшить не только количество товара но и указать на какую сумму уменьшается товарный долг магазина. В таблице "товар" цена является актуальной для новых отгрузок. Нас же интересует только те цены, по которым мы отгружали раньше этому магазину. Опять усреднения получаются. Есть 2 отгрузки товара с одним id но разными ценами в разный период, и как организовать их частичную продажу или частичный возврат - ума не приложу.

Буду рад за любые подсказки.
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
Выход же совершенно очевидный - добавить в таблицу, где регистрируется наличие на складе поле price, и наверное поле date или ссылку на запись перемещения, из которой уже можно будет получить date. При списании списывать товары по FIFO, начиная с самой ранней даты.

Тогда количество будет в разрезе цены на дату отгрузки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы