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 @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 ...