On 29 Gruo, 15:34, Cédric Krier <[email protected]> wrote:
> On 29/12/11 15:12 +0200, Giedrius Slavinskas wrote:
>
> > In many business taxes (VAT) are already rounded per unit and not per
> > unit_price*quantity (or the tax sum). If you go to the shopping center,
> > you will see that the taxes there, are already included in the listing
> > price, so that means they are rounded per unit.
>
> This is a special cases of sales with taxes included.

Yes, it is different from sales point of view. But from accounting -
is not. Taxes
are always included. In this case, its just shown on the label.

>
> > If it would be rounded
> > per unit_price*quantity or the tax sum, you can get a strange situations
> > when buying for example 2 pens which list price is 1 EURO you must pay
> > 2.01 EURO..
>
> I don't understand your example

Let's say we have 21% VAT, so Pen price in shop = 0,83 unit_price +
0,17 vat = 1€
actually VAT = 0,83*0,21= 0,1743
So when rounding is done on tax line (or tax sum), buying 3 pens would
cost 3,01 because:
    0,83 * 3 = 2,49€ and VAT = 2,49 * 0,21 = 0,5229 ~ 0,52.
    So 2,49 + 0,52 = 3,01€


> But any way, the tax computation is not a strictly increasing function.

What if we buying 100 pens:
    0,83 * 100 = 83€ for pens and VAT = 83 * 0,21 = 17,43€
    So total = 83 + 17,43 = 100,43€ (43 cents more than should be)

> > Btw, if you read the law of VAT, you will see that this tax adds value
> > for single product, material or service and not for invoice.. So
> > logically, if you have rounding on the sum of taxes, that means you
> > adding value for the invoice.
>
> > Normally, VAT is counted like this:
> >    VAT = round(unit_1_price * VAT_% / 100) * quantity_1 +
> >          round(unit_2_price * VAT_% / 100) * quantity_2 +
> >          ..
> >    VAT = round(VAT)
>
> This is very strange because you can have a unit_price with a precision
> lower than the currency one. So if you round such unit_price tax
> computation, you will have 0.

Basically, when unit price is lower when precision of the currency,
you will never buy
or sell such a single unit. That means, you have choosen too small
unit of measure.
If there is a case to have the product in such a small unit of measure
(or price), then
you need to setup the accounting transactions to have more precision
than
the currency one.

>
> > So speaking in words, we need to know what is the added value (in same
> > precision as the list price) for a single product. After that, we need
> > to sum up all VAT for a single product by its quantity. In case, when
> > all quantities are integer we always get an accurate VAT without need of
> > rounding tax lines or the tax sum. But if we have decimal quantity, we
> > need to round one more time. And think this the situation what the
> > Germany laws are speaking about. If we round each tax line, we will get
> > an incorrectness:
> >      round( round(unit_1_price * VAT_% / 100) * quantity_1 ) +
> >      round( round(unit_1_price * VAT_% / 100) * quantity_2 )
> >    is not equal to
> >      round( round(unit_1_price * VAT_% / 100) * quantity_3 )
> >    where quantity_3 = quantity_1 + quantity_2
> > so we must round the sum and not the lines.
>
> Yes but:
>
>     round( unit_1_price * VAT_% / 100 * quantity_1 +
>            unit_1_price * VAT_% / 100 * quantity_2 )
>
>     is equal to
>
>     round( unit_1_price * VAT_% / 100 * quantity_3 )
>
> And this is what we do in Tryton. The only issue is about the display of
> base amount in the tax lines of invoice which should be rounded by lines
> to have the same value as the untaxed amount.
>

This is true as long as you are not selling things in the shop or
internet.
What if i want to sell a pen for 1€? I make the most accurate list
price
i can get 1 / 1,21 = 0,826446281 ~ 0,8264.
But its wrong even for single unit 0,8264 * 1,21 = 0,999944 ~ 0,99
And if i sell 10000 of them 10000 * 0,8264 * 1,21 = 9999,44

-- 
[email protected] mailing list

Reply via email to