Tax is not shown on the invoice (0% tax => reverse charge)

I have just noticed that when I add tax with 0% rate its not shown on the invoice. I am VAT payer and I need to have it there because of the law. Its called reverse charge between two EU based VAT payers (B2B).

The solution would be:

  1. To add “reverse charge” checkbox which is going to remove all calculated VAT from the invoice and keep the current VAT percentage rate (e.g. 21% can be there) and other columns intact
  2. Allow 0% rate and do not consider it to be redundant.

Is there any work arround for this issue, please? Perhaps I can comment out some part in the code which is responsible for 0% being skipped.

I think that this is probably one last major issue before I will be able to use the app.

Thank you.


Sorry, not that I’m aware of. Maybe you could add it in the notes or footer?

Thanks for the answer.

That would mean to add all tax related columns and calculations into the footer. I will of course add “reverse charge” wording somewhere, but the rest needs to be there as well.

Any chance to tell me what do I have to change in the code so that the app will work with 0 value without skipping it? That might work.

Edit: I think that it actually works fine. The only problem is in the InvoiceNinja admin interface. When I look at the invoice preview the 0% tax is there. When I export the PDF the 0% tax is there.

Here’s the main code for the PDF invoice:

Thanks. I have edited my post above in the meantime.

It actually works fine - only the admin interface is not showing the tax with 0%. Please do not change the rest (preview, export behaviour) then :-).

As for the 0% part, perhaps you could try to set it to some extremely low value (i.e. 0.00001%)? I know with things like discounts, it only calculates up to the first two decimals. Anything after that is simply rounded to the nearest hundredth. So something like 0.00001% would be calculated as 0%, but since there’s still a non-zero value there, it would be displayed on the invoice.

@Hillel, am I correct in that assumption, or would that cause issues on the back end later on?