@WITT

Как правильно организовать складской учет в приложении Django?

нужен совет как в приложении организовать логику приложения для учета склада (приход, продажи и т. д.)
С помощью DRF я сделал список товаров, документов и возможность добавлять приходные накладные но сейчас я в тупике
Что есть: Сейчас в БД есть таблицы с товарами(наименование, остаток, последняя приходная цена, розничная цена), товарами в документах (закупка, розница, товар(с привязкой к таблице "товары")документ(с привязкой к таблице "документы")) и сами документы
Проблема: Я не понимаю как мне сделать так, что-бы при создании документа с типом "приход" увеличивалось количество товара в таблице "товары" то есть остаток на складе, а когда документ "расход" то наоборот - уменьшалось, то же самое с розничной и закупочной ценой (чтобы в таблице "товар" данные всегда были актуальными)
Мои предположения:
  1. Я думал сделать так что при создании или обновлении документов (то есть при каждом выполнении "POST" или "PATCH") данные из документов отправлялись бы в таблицу "товары", но это дополнительные запросы в БД, та и с "последней закупкой" могут быть проблемы
  2. Или получить последнюю запись цены каждого товара из БД и относительно неё уже обновлять данные. А количество получать путём суммирования всех приходных документов, и вычитания всех расходных. Но к сожалению тут я вообще не понимаю как это сделать
  • Вопрос задан
  • 556 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
по п.2 тебе надо бухгалтерский взгляд: двойная запись т.н.
+ от программера - понятие транзакции ( там появится суть, Datetime, status)

и тогда те самые актуальные цифры будут результатом aggregate / annotate функций ORM
и никак иначе

по п.1 надо изучить отношения One-to-Many , many to many и вообще, чтобы изменения в модели Документы приводили к изменениям связанной модели Товары
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы