我正在尝试在发票中创建按钮,该按钮将更新发票行中的某些字段。我已经找到了如何更新account.invoice中的字段,但是我正在努力寻找正确的方法来更新account.invoice.line中的字段。
class accountinvoiceext(models.Model):
_inherit = ['account.invoice']
@api.one
def my_button(self,uid):
invoice_id = self.id
#lines = getinvoicelinesbyid(invoice_id)
我确定有某种适当的方法可以获取与此发票相关的invoice.lines,或者没有? 我已经尝试过_inherit account.invoice.line,但是后来我无法在其中定义按钮。
第二个问题-每次创建发票时调用某些函数的最佳方法是什么?
答案 0 :(得分:0)
如果要添加按钮以更改行。您需要循环处理发票中的one2many字段,并将@ api.one更改为@ api.multi,例如:
@api.multi
def my_button(self):
for line in self.invoice_line:
line.write({'your_field': 'your_values'})
如果要在创建每个发票时调用此函数,则需要修改create函数:
@api.multi
def create_project(self,values):
res = super(SaleOrder, self).create(values)
res.my_button()
return res