From looking at the code, the tax is always calculated and rounded to 2
decimal places for each order (and invoice) line, so there is no way to get
a grand total of $91.04 regardless of what settings you place in
arithmetic.properties.

Your only solution would be to refactor quite of lot of code to support
calculating tax on the final taxable subtotal.

Regards
Scott

On 28/04/07, Chris Howe <[EMAIL PROTECTED]> wrote:

For those interested in Peter's challenge, IIRC, his total was ending
up at 91.03 or 91.05, depending on the arithmetic rules.  he is
expecting 91.04.  If someone could verify the following behavior, you
may claim his prize :) .  (I don't have time at the moment to actually
dig for this occurrence, but if someone wanted to share, I wouldn't
complain...i wouldn't complain if they didn't want to share either ;-)
)

Since math is rather straight forward (assuming this is all
bigdecimal), there are only a few scenarios that can exist to give
these numbers.

::91.03::
Tax line item
round lineItemTax to two significant digits
Add each lineItemTax

::91.05::
Tax line item
round lineItemTax to three significant digits
add lineItemTax to line Item
round lineItemTotal to two significant digits
sum lineItemTotals


Applying the rules from 91.05 to two significant digits, you will get
the 91.03 as well.

The expected summation is as follows:
Tax line item
round lineItemTax to x significant digits.
sum all lineItemTax
add lineItemTaxTotal to lineItemTotal
round to two significant digits (cents)
This will produce the expected 91.04


--- [EMAIL PROTECTED] wrote:

> Hi,
>
>
> Ofbiz must be capable of calculating tax or vat correctly (the term
> vat is
> used in the UK to describe tax on goods, tax at a rate of 17.5%).
>
> TO BE CLEAR;
> THE CALCULATION OF TAX IS THE PROBLEM.
> THE CALCULATION OF PRODUCTS IS CORRECT.
>
> 'arithmetic.properties' is the file I have been working with.
> Essentially
> there are three parameters I have looked at that control the rounding
> and
> length of decimals used with regards to calculation of tax or vat.
>
> salestax.calc.decimals = 3
> salestax.final.decimals = 2
> salestax.rounding = ROUND_HALF_UP
>
> It is safe to say that I have tried every combination of 'Big
> Decimal'
> rounding field types and 'decimals' length (for
> salestax.calc.decimals and
> salestax.final.decimals) without any success!
>
> I have of course been stopping and restarting the server after each
> change
> to reload the file at startup. Even tried some crazy wild figures
> just to
> ensure that I was getting a different figure, to ensure the process
> works.
>
> Therefore, there must be other files that also have some bearing on
> this
> calculation. Does anyone know what other files maybe relevant?
>
>
> VERY HAPPY TO PAY SOMEONE 'US$500' for a solution at this point. On
> condition that the solution actually works and produces the figures
> below,
> only one payment to the first working model will be paid;
>
> -------------------------------------------------
>                    price    tax      product+tax
> -------------------------------------------------
> Product1           35.74    6.2545   41.995
> Product2           35.74    6.2545   41.995
> -------------------------------------------------
> Product Total      71.48
> Shipping            6.00    1.050    7.050
> Tax (17.5%)        13.56    13.559
> -------------------------------------------------
> Grand Total        91.04    91.039
> -------------------------------------------------
>
>
> Let's see if someone can prove to me that Ofbiz is capable of
> calculating
> vat correctly. Had this issue open is various threads for around a
> month.
>
>
>
> Thanks & Regards,
>
> Peter
>
>
> -----Original Message-----
> From: Scott Gray [mailto:[EMAIL PROTECTED]
> Sent: 18 April 2007 10:50
> To: user@ofbiz.apache.org
> Subject: Re: Doesn't calculate tax correctly...Inaccurate Calculation
> of
> Order Total
>
> Hi Peter
>
> Did you try what I suggested?
>
> >Change this line:
> >salestax.calc.decimals = 10
> >and see if that gives you the results you are expecting.
>
> Regards
> Scott
>
> On 18/04/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > Actually 91.04 is what i need as a result, but i can't seem to get
> Ofbiz
> > to reproduce this result. Technically right now Ofbiz is not
> calculating
> it
> > correctly. I have tried most permatations of the big decimal class
> and a
> > varying the digit length and mostly get 91.03 or 91.05.
> >
> > Surely, Ofbiz must be able to calculate the tax (at 17.5%)
> correctly, it
> > is such a basic requirement.
> >
> > I must be overlooking something. Anyone, can you help.
> >
> >
> > Thanks & Regards,
> >
> > Peter.
> >
> >
> > - original message -
> > Subject:        Re: The Return of...Inaccurate Calculation of Order
> > From:   "BJ Freeman" <[EMAIL PROTECTED]>
> > Date:           18/04/2007 02:19
> >
> > if I read this right
> > Grand Total     91.04   91.039
> > so if you round to two places on 91.039 you get 91.04
> > which means they equal.
> >
> > [EMAIL PROTECTED] sent the following on 4/17/2007 4:00 PM:
> > > Hi,
> > >
> > >
> > >
> > >
> > >
> > > There is something very odd about the way Ofbiz calculates tax
> (in the
> > order
> > > manager).
> > >
> > >
> > >
> > > Using this model from Excel;
> > >
> > > US$                price    tax       p+tax
> > >
> > > Product1         35.74   6.2545 41.995
> > >
> > > Product2         35.74   6.2545 41.995
> > >
> > > Shipping          6.00     1.050 7.050
> > >
> > > Total               77.48   (3 digit)
> > >
> > > Tax                 13.56   13.559
> > >
> > > -------------------------------------------------
> > >
> > > Grand Total     91.04   91.039
> > >
> > >
> > >
> > >
> > >
> > > Method1 gives 91.05
> > >
> > > Method2 gives 91.03
> > >
> > >
> > >
> > > Tried each of the different big-decimal rounding scheme, not give
> the
> > value
> > > I was expecting (91.04). I get either 91.03 or 91.05
> > >
> > >
> > >
> > >
> > >
> > >>From the arithmetic.properties file;
> > >
> > >
> > >
> > > METHOD1
> > >
> > > # Most companies would want their sales tax calculations ALWAYS
> to round
> > up
> > > (ie, 100.081 becomes 100.09)
> > >
> > > # This could be ROUND_CEILING or ROUND_UP.  (The difference is
> that
> > > ROUND_CEILING rounds towards positive infinity,
> > >
> > > # ROUND_UP away from zero.  So, for 1.13, both ROUND_UP and
> > ROUND_CEILING
> > > will round to 1.2, but for -1.13,
> > >
> > > # ROUND_UP gives you -1.2 and ROUND_CEILING -1.1.)
> > >
> > > salestax.calc.decimals = 2
> > >
> > > salestax.final.decimals = 2
> > >
> > > salestax.rounding = ROUND_HALF_UP
>
=== message truncated ===


Reply via email to