我正在尝试根据订单请求创建报价,在选择订单请求编号时,这些请求的产品必须附加在报价的订单行中。
我尝试了以下代码,它有效,它返回了正确的产品 ID。但是,虽然在
one2many
字段中显示产品不同,但我在返回之前给出了打印选项,它显示了正确的产品。
def request_change(self, req_id):
print req_id
vals=[]
refunds = self.env['purchase.request.products'].search([('request_id', '=', req_id)])
for recs in refunds:
print recs.name.name
print recs.name.id
vals.append({'product_id':recs.id,'name':recs.name.name,'product_qty':1.000,'date_planned':datetime.now().strftime("%Y-%m-%d %H:%M:%S"),'price_unit':recs.name.list_price})
print vals
return {'value': {'order_line':vals }}
One2many 正确写法:
(0,0, {}) or (0, False, {})
例如:
'order_line': [(0,0, {'product_id': 1, 'name': 'Test1'}).....]
尝试使用以下代码。
def request_change(self, req_id):
print req_id
vals=[]
refunds = self.env['purchase.request.products'].search([('request_id', '=', req_id)])
for recs in refunds:
vals.append([0,0, {'product_id':recs.id,'name':recs.name.name,'product_qty':1.000,'date_planned':datetime.now().strftime("%Y-%m-%d %H:%M:%S"),'price_unit':recs.name.list_price}])
return {'value': {'order_line':vals }}