发票行总和 - Odoo v8

时间:2016-10-31 18:28:29

标签: python openerp odoo-8

我试图在发票行上实施此方案。

假设我的发票行中有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则应显示已纳税产品的总金额。

如果您需要更多信息,请告诉我。

1 个答案:

答案 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