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: