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
_______________________________________________
Mailing list: https://launchpad.net/~openerp-india
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-india
More help : https://help.launchpad.net/ListHelp