openerp-india team mailing list archive
-
openerp-india team
-
Mailing list archive
-
Message #11476
[Bug 980967] Re: [6.1] [account_voucher] exchange rate calculation is not working if company currency isn't rate 1
Hi,
I set this bug to new so you can re-triage. Please read comment #3
carefully.
Ravish's recommendation doesn't work because you don't always have the
company currency set as base (rate 1).
To reproduce the bug, install a new DB with account_voucher. Set your
company to another currency than EUR, I tried with CRC.
Then create an invoice in USD and try to register a payment in CRC.
Check the amount_currency in the move lines.
** Changed in: openobject-addons
Status: Incomplete => New
--
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/980967
Title:
[6.1] [account_voucher] exchange rate calculation is not working if
company currency isn't rate 1
Status in OpenERP Addons (modules):
New
Bug description:
In the account_voucher module, the currency rate is not well
calculated. The method that write the account move line is not
correct. It starts at line 227 in account_voucher.py:
def _paid_amount_in_company_currency(self, cr, uid, ids, name, args, context=None):
if not ids: return {}
res = {}
rate = 1.0
for voucher in self.browse(cr, uid, ids, context=context):
if voucher.currency_id:
if voucher.company_id.currency_id.id == voucher.payment_rate_currency_id.id:
rate = 1 / voucher.payment_rate
else:
ctx = context.copy()
ctx.update({'date': voucher.date})
voucher_rate = self.browse(cr, uid, voucher.id, context=ctx).currency_id.rate
company_currency_rate = voucher.company_id.currency_id.rate
rate = voucher_rate * company_currency_rate
res[voucher.id] = voucher.amount / rate
return res
This should be (diff output):
for voucher in self.browse(cr, uid, ids, context=context):
if voucher.currency_id:
if voucher.company_id.currency_id.id == voucher.payment_rate_currency_id.id:
- rate = 1 / voucher.payment_rate
+ rate = voucher.payment_rate
else:
ctx = context.copy()
ctx.update({'date': voucher.date})
voucher_rate = self.browse(cr, uid, voucher.id, context=ctx).currency_id.rate
company_currency_rate = voucher.company_id.currency_id.rate
- rate = voucher_rate * company_currency_rate
- res[voucher.id] = voucher.amount / rate
+ rate = company_currency_rate / voucher_rate
+ res[voucher.id] = voucher.amount * rate
return res
I am posting a merge proposal with this change in a couple of minutes.
There is also a wrong currency_amount value calculation even if you
apply the previous patch. This wrong calculation apply to only some
lines of the move. I will get back on this bug about this later.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/980967/+subscriptions
References