我正在“报价”屏幕中输入数据,我希望当我确认此报价的销售时,该屏幕应移至“销售订单”菜单。首先,我同时获得了动作(报价和销售订单)的动作ID。但是我面临的问题是如何在action_confirm方法中传递此action id?这种类型的问题有解决方案吗?
这是我的代码:
@api.multi
def action_confirm(self):
if self.partner_id.pet_names:
for record in self.partner_id.pet_names:
if record == self.pet_names_info:
if self.order_line:
for s in self.order_line:
if s.product_id:
if self.ser1 or self.ind_ser1:
self.confirm_rental_service() # Rental service
self.confirm_rental_service_history() # Rental history maintain
break
res = super(sale_order_pet, self).action_confirm()
if res:
self.confirm_email_template()
action = self.env.ref('sale.action_orders').read()[0]
action['res_id'] = self.ids[0]
action['name'] = 'Sales Order'
return action
else:
raise ValidationError("Please Add Products in Order Lines")
预先感谢
答案 0 :(得分:0)
sale.action_orders
操作调用对我来说很好。
您是否尝试调试代码,或者只是尝试查看代码是否通过了到达action = self.env.ref('sale.action_orders').read()[0]
语句所需的所有if / else语句?
当您尝试确认报价/订单时,Odoo会返回什么?
根据您的代码,我想res.partner的pet_names
可能是一个one2many字段:sale.order的pet_names_info
是属于同一pet_names类的记录吗? pet_names_info会建议类似文本字段的内容,而不是一个one2many字段。
此外,比较条件语句中的两个记录听起来有些怪异,恕我直言。
PS:顺便说一下-天真的问题-第一个“ if”语句是否被“ else”代码块关闭了?