29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
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) |