diff --git a/addons/stock/procurement.py b/addons/stock/procurement.py index cf60f9646b7..e86181fdbdf 100644 --- a/addons/stock/procurement.py +++ b/addons/stock/procurement.py @@ -383,10 +383,9 @@ class procurement_order(osv.osv): if qty <= 0: continue - if op.product_id.type not in ('consu'): - qty -= orderpoint_obj.subtract_procurements(cr, uid, op, context=context) - print op.product_id.name, qty + qty -= orderpoint_obj.subtract_procurements(cr, uid, op, context=context) + if qty > 0: proc_id = procurement_obj.create(cr, uid, self._prepare_orderpoint_procurement(cr, uid, op, qty, context=context), diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 963f974173e..a676df0bba4 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -3859,10 +3859,11 @@ class stock_warehouse_orderpoint(osv.osv): '''This function returns quantity of product that needs to be deducted from the orderpoint computed quantity because there's already a procurement created with aim to fulfill it. ''' qty = 0 + uom_obj = self.pool.get("product.uom") for procurement in orderpoint.procurement_ids: if procurement.state in ('cancel', 'done'): continue - qty2 = procurement.product_qty + qty2 = uom_obj._compute_qty_obj(cr, uid, procurement.uom_id, procurement.product_qty, procurement.product_id.uom_id, context=context) for move in procurement.move_ids: if move.state not in ('draft', 'cancel'): qty2 -= move.product_qty @@ -3901,7 +3902,7 @@ class stock_warehouse_orderpoint(osv.osv): 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True, ondelete="cascade"), 'location_id': fields.many2one('stock.location', 'Location', required=True, ondelete="cascade"), 'product_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade', domain=[('type', '=', 'product')]), - 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True), + 'product_uom': fields.related('product_id', 'uom_id', type='many2one', relation='product.uom', string='Product Unit of Measure', readonly=True, required=True), 'product_min_qty': fields.float('Minimum Quantity', required=True, help="When the virtual stock goes below the Min Quantity specified for this field, OpenERP generates "\ "a procurement to bring the forecasted quantity to the Max Quantity."),