[FIX]: Allow add rfq manually with warning if same suppliers if given.

bzr revid: atp@tinyerp.com-20120601171345-o4uxah793kvxhs5v
This commit is contained in:
Atul Patel (OpenERP)
2012-06-01 22:43:45 +05:30
parent 79ccadc73d
commit 7068de6bc7
2 changed files with 31 additions and 10 deletions
@@ -207,23 +207,38 @@ class purchase_order(osv.osv):
def default_get(self, cr, uid, fields, context=None):
if not context:
context = {}
val_list = []
requisition_id = {}
product_obj = self.pool.get('product.product')
pur_req_line_obj = self.pool.get('purchase.requisition.line')
requisition_line_obj = self.pool.get('purchase.requisition.line')
purchase_order_line_obj = self.pool.get('purchase.order.line')
res = super(purchase_order, self).default_get(cr, uid, fields, context=context)
product_ids = context.get('product_ids', False)
val_list = []
if product_ids:
for id in product_ids:
if id[0] == 4:
product_data = pur_req_line_obj.browse(cr, uid, id[1], context=context)
line_vals={'product_id': product_data.product_id.id, 'product_qty': product_data.product_qty, 'name': product_data.product_id.name}
requisition_data = requisition_line_obj.browse(cr, uid, id[1], context=context)
requisition_id.update({'requisition_id': requisition_data.requisition_id.id})
line_vals={'product_id': requisition_data.product_id.id, 'product_qty': requisition_data.product_qty, 'name': requisition_data.product_id.name}
elif id[0] == 0:
product_data = id[2]
product_data = id[2]
name = product_obj.browse(cr, uid, product_data.get('product_id'), context=context).name
line_vals = {'product_id': product_data.get('product_id'), 'product_qty': product_data.get('product_qty'), 'name': name}
val_list.append((0,0,line_vals))
res.update({'order_line': val_list})
val_list.append((0,0,line_vals))
res.update({'order_line': val_list, 'requisition_id': requisition_id.get('requisition_id')})
return res
def onchange_partner_id(self, cr, uid, ids, partner_id, requisition_id):
res = {}
res = super(purchase_order, self).onchange_partner_id(cr, uid, ids, partner_id)
res_partner = self.pool.get('res.partner')
value = {'partner_id': ''}
requisition_pool = self.pool.get('purchase.requisition')
supplier = res_partner.browse(cr, uid, partner_id)
if requisition_id:
requisition = requisition_pool.browse(cr, uid, requisition_id)
if supplier.id in filter(lambda x: x, [rfq.state <> 'cancel' and rfq.partner_id.id or None for rfq in requisition.purchase_ids]):
raise osv.except_osv(_('Warning'), _('You have already one %s purchase order for this partner, you must cancel this purchase order to create a new quotation.') % rfq.state)
return res
def wkf_confirm_order(self, cr, uid, ids, context=None):
@@ -9,9 +9,14 @@
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<data>
<field name="shipped" position="after">
<field name="requisition_id"/>
</field>
<field name= 'partner_id' position="replace">
<field name="partner_id" on_change="onchange_partner_id(partner_id, requisition_id)" context="{'search_default_supplier':1,'default_supplier':1,'default_customer':0}" options='{"quick_create": false}'/>
</field>
</data>
</field>
</record>
@@ -49,10 +54,11 @@
<field name="exclusive"/>
<field name="user_id"/>
<field name="date_start"/>
<field name="warehouse_id" widget="selection" groups="stock.group_locations"/>
<field name="date_end"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="origin"/>
<field name="date_end"/>
<field name="warehouse_id" widget="selection" groups="stock.group_locations"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<notebook colspan="4">
<page string="Products">