我想在单击 "Validate" 按钮时添加其他日记条目行
I want to add additional Journal entry lines while clicking on "Validate" button
我想在单击 "Validate" 按钮 ( method: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)。”
请帮忙。
解决了,
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
我想在单击 "Validate" 按钮 ( method: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)。”
请帮忙。
解决了,
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