Python 在Odoo8中,我的代码有什么问题?
我在Python 在Odoo8中,我的代码有什么问题?,python,python-2.7,openerp,odoo-8,Python,Python 2.7,Openerp,Odoo 8,我在account.invoice.line _inherit = "account.invoice.line" discount = fields.Float(string='Discount (%)', digits=(16, 10), # digits= dp.get_precision('Discount'), default=0.0) 现在
account.invoice.line
_inherit = "account.invoice.line"
discount = fields.Float(string='Discount (%)',
digits=(16, 10),
# digits= dp.get_precision('Discount'),
default=0.0)
现在每行的逻辑price\u subtotal=price\u unit*qty*(1-折扣)
。
在另一个类account.invoice
中,我指定了计算amount\u total
和amount\u tax
_inherit = "account.invoice"
@api.one
@api.depends('invoice_line.price_subtotal' ,'tax_line.amount')
def _compute_amount(self):
disc = 0.0
for inv in self:
for line in inv.invoice_line:
disc += (line.quantity * line.price_unit) * (line.discount) / 100
self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line)
self.amount_tax = sum(line.amount*self.change_rate for line in self.tax_line)
self.amount_discount = disc
self.amount_total = self.amount_untaxed + self.amount_tax
问题是,如果我在某行中更改折扣值,发票的金额税不会更改
提前感谢将折扣字段添加到@api.dependens中,因此当您更新折扣字段时,您的方法将被执行,并根据您的逻辑计算金额 请尝试使用以下代码:
@api.one
@api.depends('invoice_line.price_subtotal' ,'tax_line.amount', 'invoice_line.discount')
def _compute_amount(self):
disc = 0.0
for inv in self:
for line in inv.invoice_line:
disc += (line.quantity * line.price_unit) * (line.discount) / 100
self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line)
self.amount_tax = sum(line.amount*self.change_rate for line in self.tax_line)
self.amount_discount = disc
self.amount_total = self.amount_untaxed + self.amount_tax
将折扣字段添加到@api.depends中,这样当您更新折扣字段时,您的方法将被执行,并根据您的逻辑计算金额 请尝试使用以下代码:
@api.one
@api.depends('invoice_line.price_subtotal' ,'tax_line.amount', 'invoice_line.discount')
def _compute_amount(self):
disc = 0.0
for inv in self:
for line in inv.invoice_line:
disc += (line.quantity * line.price_unit) * (line.discount) / 100
self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line)
self.amount_tax = sum(line.amount*self.change_rate for line in self.tax_line)
self.amount_discount = disc
self.amount_total = self.amount_untaxed + self.amount_tax
经过艰苦的搜索和尝试,我找到了为什么
金额\u税
计算不正确的原因,并且我只编辑了一行,它在帐户.发票
类的同一函数\u计算金额
中计算税收
@api.one
@api.depends('invoice_line.price_subtotal', 'invoice_line.discount', 'tax_line.amount')
def _compute_amount(self):
disc = 0.0
for inv in self:
for line in inv.invoice_line:
disc += (line.quantity * line.price_unit) * (line.discount) / 100
self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line)
self.amount_tax = sum(line.price_subtotal*(sum(tax.amount for tax in line.invoice_line_tax_id)) for line in self.invoice_line)
self.amount_discount = disc
self.amount_total = self.amount_untaxed + self.amount_tax
经过艰苦的搜索和尝试,我找到了为什么
金额\u税
计算不正确的原因,并且我只编辑了一行,它在帐户.发票
类的同一函数\u计算金额
中计算税收
@api.one
@api.depends('invoice_line.price_subtotal', 'invoice_line.discount', 'tax_line.amount')
def _compute_amount(self):
disc = 0.0
for inv in self:
for line in inv.invoice_line:
disc += (line.quantity * line.price_unit) * (line.discount) / 100
self.amount_untaxed = sum(line.price_subtotal for line in self.invoice_line)
self.amount_tax = sum(line.price_subtotal*(sum(tax.amount for tax in line.invoice_line_tax_id)) for line in self.invoice_line)
self.amount_discount = disc
self.amount_total = self.amount_untaxed + self.amount_tax
将折扣字段添加到@api.depends,而不是working@Anonymousmiliana你比较过代码吗?你的应答码和我的应答码有什么不同?我看两者都一样d您的答案与我的答案在如何计算
税额方面的差异不取决于@api.dependsworking@Anonymousmiliana你比较过代码吗?你的应答码和我的应答码有什么不同?我看两者都一样d您的答案与我的答案在如何计算税额方面存在差异帐户.invoice.line
上应该已经有一个折扣字段,该字段具有此功能。为什么要再添加一次?@CZoellner我使用两种折扣,总额折扣和每行折扣第一个已经存在的折扣,我的标题这里应该已经有一个折扣字段,在带有此功能的account.invoice.line
。你为什么要再加一次?@CZoellner我使用两种折扣,总金额折扣和每行折扣。第一种已经存在的折扣,我说