from odoo import models, api class EventRegistration(models.Model): _inherit = "event.registration" def action_set_done(self): super().action_set_done() for regis in self: tic_prod = regis.event_ticket_id.product_id bal_prod = tic_prod.balance_variant_id if tic_prod.is_event_deposit and bal_prod: order = regis.sale_order_id lines = order.order_line.filtered( lambda sol: sol.product_id == bal_prod ) line = lines and lines[0] if line: # Update existing line update_values = order._prepare_order_line_update_values( line, line.product_uom_qty + 1 ) if update_values: order._update_cart_line_values(line, update_values) else: # Create new line line_values = order._prepare_order_line_values(bal_prod.id, 1) line.sudo().create(line_values) if len(self) == 1 and self.env.context.get("open_sale_order", False): return { "type": "ir.actions.act_window", "view_mode": "form", "res_model": "sale.order", "res_id": self.id, "target": "current", }