← Back to team overview

openerp-expert-accounting team mailing list archive

[Bug 452854] Re: Cannot validate invoices with foreign currency

 

Hi I had this issue.

Would this be appropriate:

if abs(amount) dp.get_precision('Account'):

-- 
You received this bug notification because you are a member of OpenERP
Accounting Experts, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/452854

Title:
  Cannot validate invoices with foreign currency

Status in Odoo Addons (MOVED TO GITHUB):
  Opinion

Bug description:
  Hello,
  have stumbled upon interesting problem. Latvian Lats (LVL) is the base currency for Accounting. Try to issue (or encode received from supplier) invoice in Euros(EUR). The same would happen between any other currencies too.

  Invoice totals:
  Total w/o VAT (Untaxed): 1158,00 EUR
  Tax VAT 21% : 243,18 EUR
  Total: 1401,18 EUR

  Try to Confirm invoice and you will get "You can not validate a non
  balanced entry !"

  Made some investigation what is wrong, and have found that the problem
  is.

  Obviously the totals are calculated perfectly right, but as the base
  currency for accounting is different from the currency we are issuing
  invoice the accounting moves are done in the base currency, in this
  case LVL.

  So goes the currency exchange

  Total w/o VAT (Untaxed): 1158,00 EUR ->(813,8470320 ~813,85 LVL)
  Tax VAT 21% : 243,18 EUR ->(170,9078767 ~170,91 LVL)
  Total: 1401,18 EUR ->(984,7549087 ~984,75 LVL)

  Which again are technically right, with one difference, that the
  totals for posting are now not dependent on each other anymore. They
  are being rounded before posting.

  If you would issue invoice in a base currency the difference is in 0.01LVL, which is lost during rounding process. Notice the Total sum.
  Example:
  Total w/o VAT (Untaxed): 813,85 LVL
  Tax VAT 21% : 170,91 LVL (VO_VAT * 21% = 170,9085000)
  Total: 984,76 LVL (VO_VAT + VAT_21)

  To deal around floating point storage in Python (as well as other
  programming languages), allowed difference between sums are allowed
  0.0001. This is the place where postings do not pass validate(...)
  function in "account.py".

  This is right as balance between credit and debit should be equal.
  What should be done - accountant would probably create write-off entry
  for the missing sum to make the balance right. This functionality is
  missing in OpenERP, and is fundamental for foreign trade.

  Any ideas?

  P.S. version 5.0.6.

  Kaspars

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/452854/+subscriptions