我想在点击“验证”按钮时添加其他日记帐输入行(方法:action_invoice_open()) 我这样试试:
class Account_Invoice(models.Model):
_inherit = "account.invoice"
od_rcm_account_id = fields.Many2one('account.account',string = "Account")
od_rcm_amount = fields.Float(string = "Amount")
od_rcm_ref= fields.Text(string = "Reference")
@api.multi
def action_invoice_open(self):
res = super(Account_Invoice, self).action_invoice_open()
data_lines = []
rcm_dr = (0,0,{
'account_id':self.od_rcm_account_id and self.od_rcm_account_id.id or False,
'debit':self.od_rcm_amount or False,
'credit':0,
'name':self.od_rcm_ref or False,
})
rcm_cr = (0,0,{
'account_id':self.od_rcm_account_id and self.od_rcm_account_id.id or False,
'debit':0,
'credit':self.od_rcm_amount or False,
'name':self.od_rcm_ref or False,
})
data_lines.append(rcm_dr)
data_lines.append(rcm_cr)
data = {
'line_ids':data_lines
}
if data['line_ids'] and self.move_id:
self.move_id.update(data)
return res
我遇到的问题是,在单击“验证”按钮时,日志的状态变为posted
,因此显示错误消息:
“您不能对已发布的日记帐分录进行此修改,您只需更改一些非法律字段。您必须还原日记帐分录才能取消它。
移动名称(id):BILL / 2018/0041(355751)。“
请帮忙。
答案 0 :(得分:2)
解决了,
class Account_Invoice(models.Model):
_inherit = "account.invoice"
od_rcm_account_id = fields.Many2one('account.account',string = "Account")
od_rcm_amount = fields.Float(string = "Amount")
od_rcm_ref= fields.Text(string = "Reference")
@api.multi
def invoice_line_move_line_get(self):
res = super(Account_Invoice, self).invoice_line_move_line_get()
rcm_line_dict1 = {
'name': self.od_rcm_ref or False,
'price_unit': self.od_rcm_amount or False,
'quantity': "1",
'price': self.od_rcm_amount or False,
'account_id': self.od_rcm_account_id and self.od_rcm_account_id.id or False,
'invoice_id': self.id,
}
rcm_line_dict2 = {
'name': self.od_rcm_ref or False,
'price_unit': -self.od_rcm_amount or False,
'quantity': "1",
'price': -self.od_rcm_amount or False,
'account_id': self.od_rcm_account_id and self.od_rcm_account_id.id or False,
'invoice_id': self.id,
}
if rcm_line_dict1:
res.append(rcm_line_dict1)
res.append(rcm_line_dict2)
return res