From ab4b03efcdb515ec27823ef0b21cdba3dcc5a5b5 Mon Sep 17 00:00:00 2001 From: William Henrotin Date: Mon, 12 Feb 2018 11:42:28 +0100 Subject: [PATCH] [FIX] purchase_requisition sequence handling As the sequence name depends on the requisition type. The name must be set not when the requisition is in draft but confirmed. In the confirm state, the type in readonly. The name is also reset when the requisition is put in draft. --- .../models/purchase_requisition.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/addons/purchase_requisition/models/purchase_requisition.py b/addons/purchase_requisition/models/purchase_requisition.py index df63926ce98..c5204be3e34 100644 --- a/addons/purchase_requisition/models/purchase_requisition.py +++ b/addons/purchase_requisition/models/purchase_requisition.py @@ -83,16 +83,6 @@ class PurchaseRequisition(models.Model): def _set_state(self): self.state_blanket_order = self.state - @api.model - def create(self, vals): - rec = super(PurchaseRequisition, self).create(vals) - if rec.name == 'New': - if rec.is_quantity_copy != 'none': - rec.name = self.env['ir.sequence'].next_by_code('purchase.requisition.purchase.tender') - else: - rec.name = self.env['ir.sequence'].next_by_code('purchase.requisition.blanket.order') - return rec - @api.onchange('vendor_id') def _onchange_vendor(self): requisitions = self.env['purchase.requisition'].search([ @@ -141,13 +131,20 @@ class PurchaseRequisition(models.Model): self.write({'state': 'ongoing'}) else: self.write({'state': 'in_progress'}) + # Set the sequence number regarding the requisition type + if requisition.name == 'New': + if requisition.is_quantity_copy != 'none': + requisition.name = self.env['ir.sequence'].next_by_code('purchase.requisition.purchase.tender') + else: + requisition.name = self.env['ir.sequence'].next_by_code('purchase.requisition.blanket.order') @api.multi def action_open(self): self.write({'state': 'open'}) - @api.multi def action_draft(self): + self.ensure_one() + self.name = 'New' self.write({'state': 'draft'}) @api.multi