pos_lock_sent_product/models/stock_move.py

23 lines
796 B
Python

# -*- coding: utf-8 -*-
from odoo import models
class StockMove(models.Model):
_inherit = 'stock.move'
def write(self, vals):
if 'quantity' in vals and any(move.state == 'cancel' for move in self):
non_cancelled_moves = self.filtered(lambda m: m.state != 'cancel')
cancelled_moves = self - non_cancelled_moves
res = True
if non_cancelled_moves:
res = super(StockMove, non_cancelled_moves).write(vals)
if cancelled_moves and len(vals) > 1:
vals_no_qty = {k: v for k, v in vals.items() if k != 'quantity'}
super(StockMove, cancelled_moves).write(vals_no_qty)
return res
return super(StockMove, self).write(vals)