from odoo import models, fields, api class SaleOrder(models.Model): _inherit = 'sale.order' def _get_quotation_sequence_id(self): return self.env.ref('kosbar_erp_ext.seq_quotation').sudo() def _get_sales_order_sequence_id(self): return self.env.ref('kosbar_erp_ext.seq_sales_order').sudo() def _get_delivery_sequence_id(self): return self.env.ref('kosbar_erp_ext.seq_delivery_order').sudo() def action_confirm(self): """Override confirmation to change number from SQ to SO.""" for order in self: # Quotation (draft) should have SQ prefix; confirm -> SO seq = self._get_sales_order_sequence_id() order.name = seq.with_date(order.date_order or fields.Date.context_today(self)).next_by_code() return super().action_confirm() @api.model def create(self, vals): """When creating a quotation (draft), use SQ sequence.""" if vals.get('state') == 'draft' and not vals.get('name'): seq = self._get_quotation_sequence_id() vals['name'] = seq.with_date(vals.get('date_order') or fields.Date.context_today(self)).next_by_code() return super().create(vals)