From 13b91f8887f998e4d98768c221f3e1cd898b9169 Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Thu, 6 Jun 2013 15:33:28 +0200 Subject: [PATCH] [FIX]purchase/purchase_requisition: when copy rfq, delete reference to tender, but not when copy is called when generating po from tender. bzr revid: csn@openerp.com-20130606133328-p5hgf7mj9ki4zqi7 --- addons/purchase/purchase.py | 1 + .../purchase_requisition.py | 24 ++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 889b643d1ae..9d9968259f2 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -743,6 +743,7 @@ class purchase_order(osv.osv): 'invoiced':False, 'invoice_ids': [], 'picking_ids': [], + 'origin' : '', 'name': self.pool.get('ir.sequence').get(cr, uid, 'purchase.order'), }) return super(purchase_order, self).copy(cr, uid, id, default, context) diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index c8007514328..6aa7bbc316b 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -284,6 +284,8 @@ class purchase_requisition(osv.osv): #copy a quotation for this supplier and change order_line then validate it quotation_id = po.search(cr, uid, [('requisition_id', '=', tender.id), ('partner_id', '=', supplier)], limit=1)[0] new_po = po.copy(cr, uid, quotation_id, default = {'order_line': []}, context=context) + #put back link to tender on PO + po.write(cr, uid, new_po, {'requisition_id': tender.id, 'origin': tender.name}, context=context) #duplicate po_line and change product_qty if needed and associate them to newly created PO for line in product_line: poline.copy(cr, uid, line.id, default = {'product_qty': line.quantity_bid, 'order_id': new_po}, context=context) @@ -356,22 +358,8 @@ purchase_requisition_line() class purchase_order(osv.osv): _inherit = "purchase.order" - def _belong_to_bid_group(self, cr, uid, ids, field_names, arg=None, context=None): - belong = False - group_bid_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'purchase', 'group_advance_bidding')[1] - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - for group in user.groups_id: - if group.id == group_bid_id: - belong = True - result = {} - if not ids: return result - for id in ids: - result.setdefault(id, belong) - return result - _columns = { 'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition'), - 'advance_bidding_group': fields.function(_belong_to_bid_group, method=True, type='boolean', string="Belong to advance bidding group"), } def wkf_confirm_order(self, cr, uid, ids, context=None): @@ -389,6 +377,14 @@ class purchase_order(osv.osv): po.requisition_id.tender_done(context=context) return res + def copy(self, cr, uid, id, default=None, context=None): + if not default: + default = {} + default.update({ + 'requisition_id':False, + }) + return super(purchase_order, self).copy(cr, uid, id, default, context) + purchase_order() class purchase_order_line(osv.osv):