Odoo Help


This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Trying to understand Exchange Rates with Stock Valuations and Price Variance with 9.0 Enterprise

Ty Muscat
on 7/29/16, 4:07 PM 176 views


I hope you can help me understand how Odoo handles Exchange Rates with Stock Valuations and Price Variance.  The journal entries that are being created are unexpected.  Hopefully someone more familiar with Odoo can let me know if I have a configuration issue or if this is a bug.

Steps to recreate issue:

1. Start with a clean database loaded with demo data and the following

modules: accounting, inventory, sales, purchasing. Default Database/Company Currency set to CAD.

2. Create a Product Category with the following attributes:

Account Properties

Price Difference Account 1234567 price variance

Income Account 411000 Inside Sales

Expense Account 511100 Inside Purchases

Account Stock Properties

Stock Input Account 217100 Stock Received But Not Billed

Stock Output Account 114500 Stock Delivered But Not Billed

Stock Valuation Account 114100 Stock In Hand

Stock Journal Stock Journal (CAD)

Inventory Valuation

Costing Method Standard Price

Inventory Valuation Perpetual (automated)

3. Create a product. Cost Price 1.00 Sales Price 2.00 Set internal

category to category created above.

4. Setup vendor as a USD vendor.

5. Create a Purchase order for qty 1 of the about product at price 1.00.

6. Save, confirm, receive product, register payment for product all in USD.

Journal Entries that are create are below:


Journal Stock Journal (CAD)

Partner ASUSTeK

Date 07/29/2016

Reference WH/IN/00014


Partner Account Label Amount currency Currency Debit Credit

ASUSTeK 217100 Stock Received But Not Billed Test 0.00 0.00 $ 1.00 $

ASUSTeK 114100 Stock In Hand Test 0.00 1.00 $ 0.00 $

1.00 1.00

Based on my understanding I expected the journal entries to be created as follows:


Partner Account Label Amount currency Currency Debit Credit

ASUSTeK 217100 Stock Received But Not Billed Test 1.00 USD 0.00 $ 1.32 $

ASUSTeK 114100 Stock In Hand Test 1.00 USD 1.32 $ 0.00 $

1.32 1.32

The next Journal Entries have some additional issues with Price Variance



Journal Vendor Bills (CAD)

Partner ASUSTeK Date 07/29/2016 Reference


Partner Account Label Amount currency Currency Debit Credit

ASUSTeK 211100 Vendors Account / $ -1.00 USD 0.00 $ 1.32 $

ASUSTeK 1234567 price variance Test $ 0.24 USD 0.32 $ 0.00 $

ASUSTeK 217100 Stock Received But Not Billed Test $ 0.76 USD 1.00 $ 0.00 $

1.32 1.32

Is it correct to assume that Price Variance should not be needed if the Stock in Hand and Stock Received But Not billed entires were created at 1.32 CAD instead of 1.00


Thank you,

Ty Muscat 

Julio Serna
On 7/29/16, 5:28 PM

Hello Ty Muscat

I hope this can help

I had the same doubt in v8 as you can see in this question


I reported this issue to odoo,


and they answered,


I have a good and a bad news for you. The bad news is that we cannot fix it in V8 because in this version we don't have the automatic entries with the Anglo-Saxon Accounting. But, we have made a fix in V9 and that's the good news, because I will not tell you that "we won't fix it, it is a wish list, it will be available in odoo 10"!The latest patch on multi-currencies in accounting in v9.0 (\https://github.com/odoo/odoo/commit/003f2ee9bc2796f8bd8ebc467a48a2017d67e027) offers now an easy way to handle that issue.First, you need to defined a secondary currency on the stock interim account, and thick the 'reconcile' option on it as well. (Actually, you'll need to define one interim account per foreign currency used in purchases of good in perpetual valuation, and assign those accounts accordingly on the products that you buy in foreign currency)Then, you receive you goods and encode your invoices normally. At that time, as per the bug report states, the stock interim account won't be zero outed because of the exchange rate difference.Whenever you want to clear your interim account(s), open it (chart of account => form view) and click on the 'reconcile' link. It opens a reconciliation widget similar to the bank statement reconciliation interface. You can now select invoices and stock valuation entries created upon good reception, and reconcile them together with the big 'reconcile' button.Each time you do that, an exchange difference entry is automatically created to balance rate fluctuation if needed. Which means that, when all invoices and stock entries are matched, the stock interim is totally cleared.For the next version, we gonna work on making the reconciliation automatically, but for now, you have to do it automatically. Yes, it kinda sucks, but at least it unblocks the situation, and gives you hope for a brighter future. :-)


Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)


Asked: 7/29/16, 4:07 PM
Seen: 176 times
Last updated: 7/29/16, 5:28 PM