← Back to team overview

openerp-india team mailing list archive

[Bug 980967] Re: [6.1] [account_voucher] exchange rate calculation is not working if company currency isn't rate 1

 

** Changed in: openobject-addons
       Status: Fix Committed => Fix Released

-- 
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):
  Fix Released

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