【发布时间】:2019-03-25 14:26:22
【问题描述】:
我正在尝试向 (odoo11 / hr_payroll) 中的方法添加额外代码。我所做的是复制并粘贴整个代码并在其中添加了额外的代码,但是当方法执行时,它会执行两次,这证明我所做的事情是错误的。
我正在寻找解决方案,而不是应对和粘贴整个代码。
所以这里我想在基本方法中添加:
基本方法:
if debit_account_id:
debit_line = (0, 0, {
'name': line.name,
'partner_id': line._get_partner_id(credit_account=False),
'account_id': debit_account_id,
'journal_id': slip.journal_id.id,
'date': date,
'debit': amount > 0.0 and amount or 0.0,
'credit': amount < 0.0 and -amount or 0.0,
'analytic_account_id': line.salary_rule_id.analytic_account_id.id,
'tax_line_id': line.salary_rule_id.account_tax_id.id,
})
line_ids.append(debit_line)
debit_sum += debit_line[2]['debit'] - debit_line[2]['credit']
继承方法:
@api.multi
def action_payslip_done(self):
res = super(PayslipBills, self).action_payslip_done()
if debit_account_id:
debit_line = (0, 0, {
'name': line.name,
'partner_id': line._get_partner_id(credit_account=False),
'account_id': debit_account_id,
'journal_id': slip.journal_id.id,
'x_account_no': x_debit_account, # extra
'x_jtag': [(6, 0, x_tags)], # extra
'x_jtag_option': [(6, 0, x_tags_option)], # extra
'date': date,
'debit': amount > 0.0 and amount or 0.0,
'credit': amount < 0.0 and -amount or 0.0,
'analytic_account_id': line.salary_rule_id.analytic_account_id.id,
'tax_line_id': line.salary_rule_id.account_tax_id.id,
})
line_ids.append(debit_line)
debit_sum += debit_line[2]['debit'] - debit_line[2]['credit']
return res
【问题讨论】: