From 8d0be4059a899a52b58fb967e51bc609070967dc Mon Sep 17 00:00:00 2001 From: William Henrotin Date: Wed, 18 Oct 2017 17:46:01 +0200 Subject: [PATCH] [REF] purchase_requisition: sequence handling When creating a draft purchase agreement, a reference number was generated even if we do not click the 'Save' button. Now, the reference is filled with 'New' at the creation and overided with a proper reference number after clicking on 'Save'. Also, the prefix depends now of the requisition type. BOxxxxx for blanket orders, TExxxxx for call for tenders. --- .../data/purchase_requisition_data.xml | 13 ++++++++++--- .../models/purchase_requisition.py | 12 +++++++++++- .../views/purchase_requisition_views.xml | 2 +- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/addons/purchase_requisition/data/purchase_requisition_data.xml b/addons/purchase_requisition/data/purchase_requisition_data.xml index 8028122da41..d7e658cb200 100644 --- a/addons/purchase_requisition/data/purchase_requisition_data.xml +++ b/addons/purchase_requisition/data/purchase_requisition_data.xml @@ -17,11 +17,18 @@ copy - - Purchase Requisition Order - purchase.order.requisition + + Purchase Tender + purchase.requisition.purchase.tender TE 5 + + + Blanket Order + purchase.requisition.blanket.order + BO + 5 + diff --git a/addons/purchase_requisition/models/purchase_requisition.py b/addons/purchase_requisition/models/purchase_requisition.py index e8af2ab9ae6..ec8cf2d826e 100644 --- a/addons/purchase_requisition/models/purchase_requisition.py +++ b/addons/purchase_requisition/models/purchase_requisition.py @@ -45,7 +45,7 @@ class PurchaseRequisition(models.Model): def _get_type_id(self): return self.env['purchase.requisition.type'].search([], limit=1) - name = fields.Char(string='Agreement Reference', required=True, copy=False, default= lambda self: self.env['ir.sequence'].next_by_code('purchase.order.requisition')) + name = fields.Char(string='Agreement Reference', required=True, copy=False, default='New', readonly=True) origin = fields.Char(string='Source Document') order_count = fields.Integer(compute='_compute_orders_number', string='Number of Orders') vendor_id = fields.Many2one('res.partner', string="Vendor") @@ -68,6 +68,16 @@ class PurchaseRequisition(models.Model): picking_type_id = fields.Many2one('stock.picking.type', 'Operation Type', required=True, default=_get_picking_in) is_quantity_copy = fields.Selection(related='type_id.quantity_copy', readonly=True) + @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([ diff --git a/addons/purchase_requisition/views/purchase_requisition_views.xml b/addons/purchase_requisition/views/purchase_requisition_views.xml index 89a0daaa49d..d7b7bb31b81 100644 --- a/addons/purchase_requisition/views/purchase_requisition_views.xml +++ b/addons/purchase_requisition/views/purchase_requisition_views.xml @@ -144,7 +144,7 @@