Fabien,

Because OpenERP S.A. ignored all the comments we posted here (read after
comment #60) + the mail we sent to the accounting expert list, I sent
you a mail of the cases that still fails for us both on v5 and v6
(August the 4th), so you can't tell you don't know about it (the price
accuracy > 2 part of the bug). I think we already spent like 3 days on
this, we already explained the issue in like 3 comments there, 2 or 3
mails to the accounting expert list + that last mail recently, so you
can't tell we never explained what the remaining problem was. Probably
because we already spent so much time trying to communicate with OpenERP
S.A. about this bug, unfortunately, I'm not sure I can do more now (and
it's all explained in the comment + mail I sent you + Olivier and others
in any case), we will eventually re-open an other bug if nothing is done
as soon as we have time.

-- 
Cannot validate invoices with foreign currency
https://bugs.launchpad.net/bugs/452854
You received this bug notification because you are a member of OpenERP
Accounting Experts, which is a direct subscriber.

Status in OpenObject Addons Modules: Fix Released

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



_______________________________________________
Mailing list: https://launchpad.net/~openerp-expert-accounting
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-expert-accounting
More help   : https://help.launchpad.net/ListHelp

Reply via email to