Topic: Function for even out rounding problems

I need a clarification of the following function.

function add_gl_balance($type, $trans_id, $date_, $amount, $person_type_id=null, $person_id=null)
{
    $amount = round2($amount, user_price_dec());

    if (floatcmp($amount, 0))
    {
        error_log(sprintf( _("Rounding error %s encountered for trans_type:%s,trans_no:%s"), $amount, $type, $trans_id));
        return add_gl_trans($type, $trans_id, $date_, get_company_pref('exchange_diff_act'), 0, 0, "",
            $amount, null, $person_type_id, $person_id, "The balanced GL transaction could not be inserted");
    } else
        return 0;
}

This function is placed on the file gl/includes/db/gl_db_trans.inc. And it is for even out the rounding problems.

When round off error occurred due to tax calculation on the sales invoice, that error amount will pass to this function.

So then rounding off error due to tax calculation will be going to exchange_diff_act. That is actually not an exchange rate given at all.

Is there any suggestion to handle those kinds of rounding problems.

Re: Function for even out rounding problems

@djgatasri: Which account do you want this error to get into (or split into) especially when tax can be computed with an exchange rate as well.

@joe: any thoughts?

Re: Function for even out rounding problems

@apmuthu: What do you mean account? This happened when we enter the customer invoice. All services are billing on local currency.

Re: Function for even out rounding problems

If there is a non-exchange rate related error that arises from just tax computation, which account do you want the error to get into or how do we balance it?

Re: Function for even out rounding problems

Well, I thought this was taken care off. But if this is a huge problem, I would have to look closer into that.

/Joe

Re: Function for even out rounding problems

Try to change the php.ini value for precision from the default 14 to 17 and restart your webserver and test it.

Re: Function for even out rounding problems

apmuthu wrote:

If there is a non-exchange rate related error that arises from just tax computation, which account do you want the error to get into or
how do we balance it?

We want it to go into some "tax variance account" which we can define in the system.

Re: Function for even out rounding problems

Check if some rounding off error got missed out in the computation sequence first. If such occurrences are few and far between, make a compensating Journal Entry for the adjustment each time for now.