Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


    Cloudron Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular

    VAT calculation not exact

    Invoice Ninja
    2
    3
    227
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • martinkbs
      martinkbs last edited by

      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€

      826c7e4e-3262-4e1e-85ad-6b9c6273cf16-image.png
      b79cc96d-b518-4b4d-bb36-8cfc664c54eb-image.png

      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€

      92b54996-4277-4e02-be26-f0ada56317bf-image.png

      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!

      fbartels 1 Reply Last reply Reply Quote 0
      • fbartels
        fbartels App Dev @martinkbs last edited by

        Hi @martinkbs,

        this sounds like something that is better suited for the invoice ninja developers directly. https://forum.invoiceninja.com/

        martinkbs 1 Reply Last reply Reply Quote 1
        • martinkbs
          martinkbs @fbartels last edited by martinkbs

          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);
                     }
          

          5abc0208-75ae-47c4-a6ea-1ad887501672-image.png

          If someone has found how to solve it ... 🙏

          1 Reply Last reply Reply Quote 2
          • First post
            Last post
          Powered by NodeBB