VAT calculation not exact
-
Hi guys,
I think Invoice Ninja is having trouble rounding VAT amounts.
Suppose I want to sell a product for 10€ VAT included (21%)
Invoice Ninja only allows the following combinations:
- 8,26 + 1,73 = 9,99€
- 8,27 + 1,74 = 10,01€


This happens in both exclusive and inclusive tax methods.
In another accounting SAAS, the invoice is as follows:
- Subtotal: 8,26€
- VAT: 1,74€
- Total: 10,00€

But right now, in Invoice Ninja there is no way to put a total of 10€ that contains 21% VAT.
Is there any way to solve it?
Thanks!
-
Hi guys,
I think Invoice Ninja is having trouble rounding VAT amounts.
Suppose I want to sell a product for 10€ VAT included (21%)
Invoice Ninja only allows the following combinations:
- 8,26 + 1,73 = 9,99€
- 8,27 + 1,74 = 10,01€


This happens in both exclusive and inclusive tax methods.
In another accounting SAAS, the invoice is as follows:
- Subtotal: 8,26€
- VAT: 1,74€
- Total: 10,00€

But right now, in Invoice Ninja there is no way to put a total of 10€ that contains 21% VAT.
Is there any way to solve it?
Thanks!
Hi @martinkbs,
this sounds like something that is better suited for the invoice ninja developers directly. https://forum.invoiceninja.com/
-
Hi @martinkbs,
this sounds like something that is better suited for the invoice ninja developers directly. https://forum.invoiceninja.com/
Hi @fbartels,
Yes, it is actually a fairly frequent question that remains unsolved since Invoice Ninja version 4.X. They promised to fix this bug in version 5.X, but it still remains unsolved (https://forum.invoiceninja.com/t/invoice-rounding-amounts-not-limited-to-2-decimal-places/3978)
I have posted it here, in case someone in the community had the same thing and had found a way to solve it. Surely you have to touch some .php file that controls the rounding of taxes, but they are not accessible in the Cloudron package.
For example:
/tests/acceptance/TaxRatesCest.php$total = $itemCost; $total += round($itemCost * $invoiceTaxRate / 100, 2);/app/Models/Invoice.php/** * @param $invoiceItem * @param $invoiceTotal * * @return float|int */ public function getItemTaxable($invoiceItem, $invoiceTotal) { $total = $invoiceItem->qty * $invoiceItem->cost; if ($this->discount != 0) { if ($this->is_amount_discount) { if ($invoiceTotal + $this->discount != 0) { $total -= $invoiceTotal ? ($total / ($invoiceTotal + $this->discount) * $this->discount) : 0; } } else { $total *= (100 - $this->discount) / 100; } } if ($invoiceItem->discount != 0) { if ($this->is_amount_discount) { $total -= $invoiceItem->discount; } else { $total -= $total * $invoiceItem->discount / 100; } } return round($total, 2); }
If someone has found how to solve it ...

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login