[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.
This commit is contained in:
William Henrotin
2018-02-12 13:52:19 +01:00
parent 69890545b0
commit ab4b03efcd
@@ -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