我试图在发票行上实施此方案。
假设我的发票行中有50种产品,40种产品受税影响,10种不是。
所以,在我的发票结果中,我有两个字段来计算这个
exe = fields.Float(string='Monto Exento', digits=dp.get_precision('Account'),
store=True, readonly=True, compute='extras', track_visibility='always')
应该返回40个受税影响的产品的总数,以及此字段
impo = fields.Float(string='Base Imponible', digits=dp.get_precision('Account'),
store=True, readonly=True, compute='extras', track_visibility='always')
应归还其他10种不受税收影响的产品。
现在,我从函数中调用它,并计算结果:
@api.one
@api.depends('invoice_line.price_subtotal', 'tax_line.amount')
def extras(self):
self.exe = self.amount_untaxed + self.amount_tax
self.impo = self.amount_untaxed + self.amount_tax
rec=0
但它没有按预期工作,我不知道这里可能出现什么问题,也许是因为我在extras
函数处理这个问题?
它只是总结了所有行的总量。
修改
在@phillipstack回答之后,我已经更新了我的代码:
@api.one
@api.depends('invoice_line.price_subtotal', 'tax_line.amount')
def extras(self):
self.exe = self.amount_untaxed + self.amount_tax if self.amount_tax and self.amount_tax > 0 else 0
self.impo = self.amount_untaxed + self.amount_tax if not self.amount_tax or self.amount_tax == 0 else 0
但是在impo
字段上,它只是总结了一切,不论是否征税,我尝试使用一个免税产品,一个人征税。
在exe
右侧,它不显示任何金额。
在exe
上,它应显示免税产品的总金额,而impo
则应显示已纳税产品的总金额。
如果您需要更多信息,请告诉我。
答案 0 :(得分:1)
如果符合某些条件,您需要提供if语句来告诉您的脚本不要求和。我对你的要求不太了解,但这可能有用。或类似的东西。
@api.one
@api.depends('invoice_line.price_subtotal', 'tax_line.amount')
def extras(self):
self.exe = self.amount_untaxed + self.amount_tax if self.amount_tax and self.amount_tax > 0 else 0
self.impo = self.amount_untaxed + self.amount_tax if not self.amount_tax or self.amount_tax == 0 else 0