跳至內容
選單
此問題已被標幟
2 回覆
9915 瀏覽次數


I have a non-iterable type error when I want to go through the detail of an invoice. the idea is to read one line of the invoice, all the taxes that line has, you can one or more.
I read that you can not go int or float, but I can not find how to do it.
Thank you,

for line in self.invoice_line_ids:
      for line_tax in line.invoice_line_tax_ids:
             if line_tax.tipo_afectacion_isc.code in ["01","02","03"]:
                  self.total_isc = sum(line.price_subtotal*line.invoice_line_tax_ids.amount/100) if len(line.invoice_line_tax_ids)>0 else False

頭像
捨棄
最佳答案

Inside the sum() function, you must have some type of iteration.

Try following code:

​self.total_isc = sum(line.price_subtotal * tax.amount / 100 for tax in line.invoice_line_tax_ids)


頭像
捨棄
作者

I do not see an error, but I do not consider this line.( if line_tax.tipo_afectacion_isc.code in ["01","02","03"]: )

for line in self.invoice_line_ids:

for line_tax in line.invoice_line_tax_ids:

if line_tax.tipo_afectacion_isc.code in ["01","02","03"]:

self.total_isc = sum(line.price_subtotal*line.invoice_line_tax_ids.amount/100) if len(line.invoice_line_tax_ids)>0 else False

Do you mean the execution is not going in the if condition? If yes, print the code.

print line_tax.tipo_afectacion_isc.code, line_tax.tipo_afectacion_isc.code in ["01","02","03"]

作者

Thank you,

solved with the information you gave me.

相關帖文 回覆 瀏覽次數 活動
2
8月 25
2017
1
7月 25
620
1
8月 25
1150
0
5月 25
1239
2
4月 25
3311