openerp-india team mailing list archive
-
openerp-india team
-
Mailing list archive
-
Message #01087
Re: [Bug 865387] Re: wrong currency rounding
On 11/12/2011 01:26 PM, Ferdinand @ Camptocamp wrote:
> IMHO we should have a res_currency
>
> def _compare(...,amount1,amount2)
I think that's a good suggestion, I was on the process of extracting the
res.currency float methods into tools.misc to make them available for
other float computation (e.g. stock quantities), so I've added a
compare() like method too.
See the merge prop[1], reviews/comments are appreciated, as always.
[1]
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-float-rounding-odo/+merge/82206
--
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/865387
Title:
wrong currency rounding
Status in OpenERP Addons (modules):
In Progress
Bug description:
openobject-addons/6.0 revno 4863
Steps:
- Configure 'account' module using EUR currency
- Configure a bank journal for USD currency
- Create a new rate for USD currency, with date 2011-10-01
- Create a new invoice, with date 2011-09-01, selecting USD currency and inserting one line of 3638.97 amount
- Pay the invoice selecting 'Reconcile with Write-Off' (with today's date)
The write.off entry is not created (it should be produced by the different currency rates).
This is because of line 88 of base/res/res_currency.py :
round(amount / currency.rounding) * currency.rounding
3638.9700000000003
and this makes false the line 719 of account_voucher.py (line.amount
== line.amount_unreconciled)
I think the line
return round(amount / currency.rounding) * currency.rounding
should be replaced by something like
float(Decimal(str(amount)).quantize(Decimal(str(currency.rounding)),
rounding=ROUND_HALF_UP))
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/865387/+subscriptions
References