'Multiple invoice line in excel report in ODOO 13

I am creating this excel report for vat summary for every invoice lines

In an invoice there can be more than one invoice line/journal item

for the same I used the below code

if len(invoice.invoice_line_ids) > 1:

worksheet.write(row, 3, invoice.invoice_line_ids[0].product_id.name)

for product_id in invoice.invoice_line_ids[1:]:

row += 1

worksheet.write(row, 3, product_id.name)

else:

worksheet.write(row, 3, invoice.invoice_line_ids[0].product_id.name)

for a product name its coming correctly

but when I copy the same code for other fields such as VAT name, price subtotal etc its showing as in the image report sample image

Please check out my full code

#code for Product name which is correct

if len(invoice.invoice_line_ids) > 1:

worksheet.write(row, 3, invoice.invoice_line_ids[0].product_id.name)

for product_id in invoice.invoice_line_ids[1:]:

row += 1

worksheet.write(row, 3, product_id.name)

else:

worksheet.write(row, 3, invoice.invoice_line_ids[0].product_id.name)

#code for vat name which is not correct

if len(invoice.invoice_line_ids) > 1:

worksheet.write(row, 4, invoice.invoice_line_ids[0].tax_ids.name)

for tax_ids in invoice.invoice_line_ids[1:]:

row += 1

worksheet.write(row, 4, tax_ids.name)

else:

worksheet.write(row, 4, invoice.invoice_line_ids.tax_ids.name)

#code for subtotal which is not correct

if len(invoice.invoice_line_ids) > 1:

 worksheet.write(row, 5, str(invoice.invoice_line_ids[0].price_subtotal))

 for price_subtotal in invoice.invoice_line_ids[1:]:

     row += 1

     worksheet.write(row, 5, str(price_subtotal))

else:

 worksheet.write(row, 5, str(invoice.invoice_line_ids.price_subtotal))


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source