from odoo import models class StockMove(models.Model): _inherit = 'stock.move' def _should_bypass_set_qty_producing(self): """ Prevent auto-update of consumed quantity if: - The move already has a quantity set (partial consumption). - The move is already picked. """ if self.sudo().quantity > 0 or self.sudo().picked or self.sudo().manual_consumption: return True return super()._should_bypass_set_qty_producing() def write(self, vals): # Enforce manual usage flags if quantity is being set if 'quantity' in vals and vals['quantity'] > 0: vals['manual_consumption'] = True vals['picked'] = True return super().write(vals)