From bddec1b2a40e918c4aaae6415c325965e27ae28a Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Wed, 26 Apr 2023 07:55:00 +0000 Subject: [PATCH] [FIX] point_of_sale : prevent to unlink pos.order.line related to 'paid' / 'invoiced' order. closes odoo/odoo#126558 X-original-commit: 52631ac88c1ec8f6f5fd6542d6b38a200f83372c Signed-off-by: Joseph Caburnay (jcb) --- addons/point_of_sale/models/pos_order.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 4ed6658f2d4..38188be0cd4 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -1392,6 +1392,11 @@ class PosOrderLine(models.Model): del pl[2]['server_id'] return super().write(values) + @api.ondelete(at_uninstall=False) + def _unlink_except_order_state(self): + if self.filtered(lambda x: x.order_id.state not in ["draft", "cancel"]): + raise UserError(_("You can only unlink PoS order lines that are related to orders in new or cancelled state.")) + @api.onchange('price_unit', 'tax_ids', 'qty', 'discount', 'product_id') def _onchange_amount_line_all(self): for line in self: