Рассчитать доступный запас в OpenERP
Я разрабатываю специальный модуль для OpenERP 7, который будет отслеживать оборудование, установленное в разных местах. У меня есть общий уровень запасов, записанный в модуле Warehouse, но я хочу иметь возможность рассчитывать и отображать количество каждого доступного продукта и количество, которое развернуто в настоящее время. У меня проблемы с выяснением, как это сделать. Я смотрел на этот модуль аренды, и они, кажется, что-то делают со сбором акций и рабочими процессами, но я новичок в OpenERP и не совсем уверен, как это работает.
Другой способ, которым я думал, - это циклически проходить развертывания и просто вычислять количество каждого элемента и использовать функциональные поля для его отображения, но я не уверен, что это сработает, или как это сделать без каких-либо трудностей. кодирование всех различных предметов.
2 ответа
Взгляните на product.py в модуле stock, а именно на метод get_product_available. Это позволяет упаковать различные параметры фильтра в контекст, а затем вычисляет и возвращает запас как сеть входящих и исходящих перемещений запаса.
Этот метод также используется в функциональных полях qty_available
, virtual_available
, incoming_qty
а также outgoing_qty
, В комментариях к справке в модуле есть достаточно хорошие объяснения.
В OpenERP что-то есть у вас на складе, когда есть перемещение запаса (объект stock.move) с этим продуктом в ваше физическое местоположение в качестве места назначения, определенного в объекте хранилища для поля "Местоположение инвентаря". Допустим, вы записали 2 хода:
Переместить 1
Source Location: Supplier
Destination Location: Stock
Qty: 2
Ход 2
Source Location: Stock
Destination Location: Deployed Products
Qty: 1
Если вы откроете свой список продуктов, вы увидите, что у вас есть 1Qty вашего продукта. OpenERP суммирует все перемещения для этого продукта к вашему складу и обратно. Поэтому, если у вас нет других конкретных потребностей, записи будет достаточно для перемещения в какое-то место "Развернутые продукты".