[wishlist] improving multi-currency purchase pricelists

Bug #1081560 reported by Kellogs
22
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Won't Fix
Undecided
Unassigned

Bug Description

These remarks apply for OpenERP 6.04 at least:

Purchase orders should allow to choose a currency.
Another reaseon is that Supplier invoices allow picking-up a currency.

Example:
EUR is default currency.
OpenERP enabled currencies: USD and EUR.

Company A makes a purches order in USD to a US supplier.

Purchase order is sent to the supplier with prices in USD.
This makes no sense to send a puchase order to a US supplier with prices in Euros.

A paymenent is made in USD but registered in EUROs.

i.e. conversion between currencies should only apply when writing an invoice.
Not when making a purchase order.

Revision history for this message
Amit Parik (amit-parik) wrote :

Hello,

You can use the pricelist for that.

Please use the different pricelist for different currency on purchase order.

We have made the same behaviour on Sale order and Purchase order, and for SO/PO we can apply multi- currency by pricelist.

Thank you!

Changed in openobject-addons:
status: New → Incomplete
Revision history for this message
Kellogs (jm-poure) wrote :

It does not work as expected, at least in OpenERP 6.04

My configuration :
* 2 purchase price lists : General purchase price list (USD) and General purchase price list (EUR).
* My company has EURO as default currency.
* A price can be recorded in a USD pricelist, but it will ALWAYS be in the default currency.

The above example (screenshot) show the example of a product recorded for 2 euros in a USD pricelist.
When building the purchase order, the 2EUROS are converted to 1,

Revision history for this message
Kellogs (jm-poure) wrote :

Screenshot2

Revision history for this message
Kellogs (jm-poure) wrote :
Revision history for this message
Kellogs (jm-poure) wrote :
Revision history for this message
Kellogs (jm-poure) wrote :
Revision history for this message
Kellogs (jm-poure) wrote :

The above example (see screenshots), a product is registered at cost "2" in a USD pricelist and displays as 1.85 USD in a purchase order. So we believe that the recorded price is in Euros even if the pricelist is in USD.

But this is useless as what we would ilke to use only USD for purchase orders, without conversion from Euro:

* Register prices in pricelist currency (USD)
* Make purchase orders in the priceless currency (USD).
* Record the purchase invoice (printed in USD) in Euros.

So we only want to swith to Euros when registering the purchase in accounting.

Is this a bug or I misunderstand something?

Revision history for this message
Kellogs (jm-poure) wrote :

This post seems to confirm the same problem:
http://www.openerp.com/forum/topic27171.html

We should be able to register a product for 20 EUROS and 30 USD without any hastle.

Apparently, price list were designed for sale, not for purchase.

Revision history for this message
Kellogs (jm-poure) wrote :

Reading OpenERP manual:
http://doc.openerp.com/v6.1/book/6/6_16_Sales/6_16_Sales_pricing.html

****
If your trading company wants to start a product catalog in a new currency you can handle this several ways:
1) Enter the prices in a new independent pricelist and maintain the lists in the two currencies separately,
2) Create a field in the product form for this new currency and make the new pricelist depend on this field: prices are then maintained separately, but in the product file,
3) Create a new pricelist for the second currency and make it depend on another pricelist or on the product price: the conversion between the currencies will then be done automatically at the prevailing currency conversion rate.
****

IMHO, here is what works and does not work:
1) is wrong and does work. You cannot register a price in USD in a EURO OpenERP installation.
2) is a hack and may lead to inconsistencies and needs programming.
3) is absolutely right.

So from my point of view, multicurrency support in purchase is NOT supported.
If you have 10.000 products purchased in USD, you are not going to record prices in EUR and then convert to USD.

Revision history for this message
Kellogs (jm-poure) wrote :

The correct text in the manual should be:

If your trading company wants to start a product catalog in a new currency you can handle this several ways:
1) Create a field in the product form for this new currency and make the new pricelist depend on this field: prices are then maintained separately, but in the product file. But you need programming skills to make sure OpenERP modules can be adapted to handle the new price list.
2) Create a new pricelist for the second currency and make it depend on another pricelist or on the product price: the conversion between the currencies will then be done automatically at the prevailing currency conversion rate.

In OpenERP, price lists were designed mainly for sales and allow to adjust selling prices. Purchasing in several currencies is not yet supported by OpenERP, as all purchasing prices are recorded in the base currency of your OpenERP installation.

Revision history for this message
Kellogs (jm-poure) wrote :

A solution would be to attach a currency to a purchase price in the product.
A purchase price CANNOT be a simple digit like OpenERP registers it.

The price is always DIGIT + currency.

IMHO, this is a bug and a design problem in OpenERP, which needs to be fixed ASAP ni OpenERP 6.1

Revision history for this message
Kellogs (jm-poure) wrote :

To give an example, a product should have these fields:

* Purchase price:
10 USD

* Sales price:
20 USD
50 EUR

Purchase price is always unique (I believe).
There should be 1 to n sales prices (in supported currencies).

Currency should default to the base currency.
Pricelists are modifiers of the price and very usefull tools.

Revision history for this message
Amit Parik (amit-parik) wrote :

Hello Kellogs,

I have tested the same scenario at my end with 6.1 and it's working fine. I think might have a mis-configured something.

I have attached the video for your more reference, So would you please check it.

For now I am closing this issue, If you still faced the problem then you can reopen this.

Thanks for the detailed information, Please have a look at attached video which helps you!

Changed in openobject-addons:
status: Incomplete → Invalid
Revision history for this message
Kellogs (jm-poure) wrote :

Thanks.
Where are the videos?

Revision history for this message
Amit Parik (amit-parik) wrote :
Revision history for this message
Amit Parik (amit-parik) wrote :

Hello Kellongs.

Sorry I forget to attach the video, So I have attached it now.

Thank you!

Revision history for this message
Kellogs (jm-poure) wrote :

I could watch the video and the bug is confirmed, please reopen.

What you are doing is:
* create a product with puchase price 50 EUR.
* create a purchase order on USD with price 60,40 USD (I don't remember the exact price).

But if your partner is in a USD geographical zone, the prices are always expressed in USD.
Do you really think that in real life European company manage USD pricelists in EUR?

Take the example of wheel sold by a US company and purchased by a European company.

* The price for the wheel is 50 USD.
* You register the purchasing price for 50 USD, not Euros.
When making a purchase order, you select the product and the total price should be 50 USD.

This is only when registering the invoice that price is converted in EUR.

Furthermore, this is completely insane to phone a client, ask for a price in USD, then convert it to EUROs, then make a purching order in USD. Because of conversion and approximations, you are never gonna get 50 USD. But probably 50,01 USD or 49,99 USD.

Please reopen this bug.

Revision history for this message
Kellogs (jm-poure) wrote :

What went wrong in your video is that your registered the price in EUR.

Just retry and enter 50 as purchasing price and select the USD pricelist (not the Euro pricelist).
Then see what happens with the final purchase order. It should show something like 42USD and not 50 USD.

OpenERP is not able to register a purchasing price in USD when the main currency is EUR.

Thank you!

Revision history for this message
Kellogs (jm-poure) wrote :

The purpose of a purchasing list price is to allow:
* trading (buying in USD, selling in EUR),
* building products (buying parts in USD, assembling and selling in EUR).

An example:

If you supplier sells wheels at 50 USD, this is HIS price and you are not going to register the price in a EURO purchasing price list. The reason is that this price list will be void the next day because the USD/EURO rate is evolving everyday.

On the converse, you will register the weel at the price of 50 USD in your price list.

This price is stable and you can use it for trade AND production.

Therefore, for a European company, the process is:
* Register the purchasing price in USD in a USD pricelist.
* Make a purchase order in USD without conversion.
* Pay and register the invoice in EUR.

I am very surprised that OpenSC claims to allow production based on price lists and is not able to register USD purchasing prices. IMHO this is a bug and should acknowledge that.

Closing a bug a pretending that everything works as expected will not convince large companies to migrate to OpenERP.

Revision history for this message
Kellogs (jm-poure) wrote :

The video published shows a purchase list in Euros. Purchasing in USD using a USD price list does not work.

Changed in openobject-addons:
status: Invalid → Confirmed
Revision history for this message
Kellogs (jm-poure) wrote :

Because the video shows purchasing in USD from a EUR pricelist, it is invalid and not in relation with the bug. After discussion with an OpenERP partner present at JM2L free software show in Sofia-Antipolis, and some enquiry in coden, I just reopened the bug.

Revision history for this message
Amit Parik (amit-parik) wrote :

Hello Kellongs,

You can see the price on EURO because our company currency is EURO.

The product's price based on our company's currency. i.e If my company currency is in EURO and my product's cost is 50 then product's price is 50EURO, now have select the different price-list like USD then it will always make the currency conversation.

If you want your product price also on USD then just change the company currency and the create the PO, you will get your result.

And your following scenario will satisfied as you wants.
* trading (buying in USD, selling in EUR),

Note: we have used currency conversation for currency changed on company and price-list.

Thank you!

Changed in openobject-addons:
status: Confirmed → Incomplete
Revision history for this message
Kellogs (jm-poure) wrote :

Hello Amit,

Thank you for confirming officially that the product price is the company default currency.

As there is only one default currency for each company, this means that you can only create purchasing list in ONE SINGLE currency, which is the currency of the company.

Let's take an example :

You are a Bristish company with default currency GBP (UK pounds) designing tablets. You buy components from all the world and assemble them : screen in USD, memory in Yen, Keyboard in USD, battery in EURO. What you mean is that we have to register all these prices in GBP? This is nonsense, as the price in all these currencies is stable. Registering purchaing prices in a GBP pricelist is nonsense.

 We need to be able to make purchases order in the currency of the suppliers, i.e. USD for keyboards, EUROs for batteries, etc ... It is only when you register the real cost that you create an invoice and this invoice should be registered in GBP.

This is the normal accounting practice and you should be aware of that.
So please do not prentend that you need more information and the bug is unclear, just register the bug and people will work on it.

If you try to hide reality from the Free-Software public of users and designers, OpenERP might loose all confidence.

For your information, when I discussed with an OpenERP certified vendor at J2ML, he was so anxious that he nearly cried. Instead of selling fake services and support to your partners, you should concentrate on BASIC features like multi-currency support.

Presently, there is NO MULTICURRENCY purchasing price list as you recognized it.
So please stop pretending in the documentation that OpenERP is multi-currency enabled, this is NOT true.

And of course as a consequence OpenERP IS NOT READY for multi-currency trade and multi-currency product assembly as it is not able to handle multi-currency purchasing.

We want to know the truth about OpenERP, only the truth.

Revision history for this message
Kellogs (jm-poure) wrote :

As you agreed that there is no multi-currency purchasing, this is bug is confirmed and it REALLY IS. So please don't try to hide this to the community, once for all.

Revision history for this message
Kellogs (jm-poure) wrote :

Here is a complete description of the bug so you can confirm it.

* Multicurrency purchasing price list should allow to register a product in the currency of the supplier. Not the currency of the main company. It makes to sense to register a USD purchasing pricelist for a USD supplier in Euros. This is clearly a bug.

* Purchases orders should be made in the currency of the supplier.
It is not presently the case. If you register a 2USD product in a USD pricelist, it will be converted to 1,84 EUR which shows that the registered price is in the main currency. This is clearly a bug.

* Upon creation of invoice, allow conversion to the main company currency. This is exactly the process in the real world: you discuss prices and make purchasing orders in a supplier currency. But you register the price in your account in your main currency. This is clearly a missing feature in OpenERP.

* You recognized previously that there was one single currency for purchasing pricelist, so this should be written in the documentation, so that large company are aware that there is a huge bug in OpenERP, still not fixed.

So please flag this ticket as a bug.

Revision history for this message
Kellogs (jm-poure) wrote :

Here is a complete description of the bug so you can confirm it.

* Multicurrency purchasing price list should allow to register a product in the currency of the supplier. Not the currency of the main company. It makes no sense to register a USD purchasing pricelist for a USD supplier in Euros. This is clearly a bug.

* Purchases orders should be made in the currency of the supplier.
It is not presently the case. If you register a 2USD product in a USD pricelist, it will be converted to 1,84 EUR which shows that the registered price is in the main currency. This is clearly a bug.

* Upon creation of invoice, allow conversion to the main company currency. This is exactly the process in the real world: you discuss prices and make purchasing orders in a supplier currency (USD). But you register the price in your account in your main currency (EUR). This is clearly a missing feature in OpenERP.

* You recognized previously that there was one single currency for purchasing pricelist, so this should be written in the documentation.

So please flag this ticket as a bug.

Revision history for this message
Amit Parik (amit-parik) wrote :

Hello Kellongs,

We are not tried to hind anything my friend. I appreciated your passion on this issue.You are provided a good example for purchase real time scenario.

I want clarify something also here that how OpenERP works for multi-company.

OpenERP is totally integrated system with all modules like our purchase applications are integrated with accounting and warehouse applications same for sale application. So our purchase application will maintain our accounting application and transfer the amount on invoice.

We can maintain our chart of account only on one currency. So we have to manage our company have a unique currency which is our company currency. And all transaction are should be convert on this currency. That's why we have mange our product price also in unique currency . We can use multi-currency on purchase/sale order only using a pricelist.

I don't want to say that you are wrong..you suggested option that is 'Use Supplier currency ' also a good option to manage better way of multi-currency purchase. But we are not implemented this thing on OpenERP on offical module.
You or any community member can create a new module for this.

Our R&D team are focusing on new version of OpenERP V7 which is totally for improved usability. So currently we are not considering this new improvement.

Thanks for you valuable time on this!

Changed in openobject-addons:
status: Incomplete → Won't Fix
Revision history for this message
Kellogs (jm-poure) wrote :

Thank you for this important acknowledgement and calling me "my friend".

Can you confirm explicitely that:

1) OpenERP considers that multi-currency purchasing price list and multi-currency purchasing can only be done in one currency, which is the default currency of the company. Which means that:

1A) OpenERP A does not support multi-currency purchasing pricelist, only purchasing pricelist in the main currency. The term multi-currency should only be used for sales, not for purchasing.

1B). As you acknowledge this issue, please make sure to explain in your manual that OpenER does not support multi-currency purchasing price list and multi-currency purchasing orders. This seems clear in this thread, as you closed this issue to 'Wron't fix".

1C) Could you contact your registered users by email to explain that although the interface allows to create a multicurrency purchasing pricelist IT is NOT supported. Please having a contract should know at last that this is not a feature of OpenERP.

All this information is now public and any litigation around contracts and missing features is now public.

Please don't hide the truth to OpenERP community users and registered users.
There is NO support of multi-currency purchasing and OpenERP DOES NOT PLAN TO FIX IT.

IMHO, this means that noone here has an interest to have a contact with your company.

2) Could you elaborate why you are not fixing an issue, which is probably the biggest bug found this year, as it has a large impact on users.

Revision history for this message
Kellogs (jm-poure) wrote :

Please escalate this issue to Fabien:
http://www.openerp.com/forum/topic35586.html

Revision history for this message
Olivier Dony (Odoo) (odo-openerp) wrote :

Hi Jean-Michel,

You seem to have a peculiar notion of this "open source spirit" you defend. The good open source contributors I know don't come and tell the developers what they have to do. They start by respectfully reporting what they think is a bug. And if the developers deem the bug/feature out of scope, they don't demean themselves by getting aggressive or disrespectful, they bite the bullet and either work on a solution themselves or find someone with the skills to do it for them, possibly contributing it back later.
The developers don't usually owe you anything, so being agressive won't achieve much [1].

The way OpenERP bugs are managed is clearly described in the documentation[2]: marking a bug as "Wishlist" or as "Won't Fix" doesn't hide it, it's a normal part of the bug classification. It indicates clearly that OpenERP developers won't work on it at the moment, but doesn't prevent anyone from working on it or providing a patch/merge proposal. With the increasing community size, OpenERP developers have to handle dozens of bug reports every day, so a strict bug management policy is required, there's nothing personal.

More fundamentally, OpenERP's design principle is not to cover every functional area in-depth. It is to provide a simple common base for enterprise management needs, while making these basic features easy to extend for more specific needs. We can probably find as many "biggest bug or limitation of the year" as there are OpenERP features, because every company has advanced needs in some areas.

As for the issue you describe, it may indeed be seen as a limitation/inconvenience of OpenERP's purchase pricelists, so perhaps you could work on a proof-of-concept solution/patch that we might consider including in a future OpenERP version? I haven't analyzed the option of adding a currency on Supplier Pricelists, but that might make sense and would be trivial to implement.

In the mean time, you might also want to study a little bit more the workarounds that have been suggested, because they *do* work for what you want to do. The forum post you mentioned in comment #8 seems to correctly describe two of these solutions. And no, adding an extra "USD Purchase Price" field on the product form would not require any development or programming skills, it can be done purely from the user interface. And when you define a new Price Type you will be able to choose the currency it is expressed in, showing that it is intended to solve this kind of use case, i.e. it's not a hack.

Thank you for your understanding,

[1] And if you are/were an OpenERP customer with an OpenERP Enterprise contract, then the OE team would definitely help you, and you might be surprised to see how quickly they can provide you with a satisfying solution and/or a custom patch.

[2] http://doc.openerp.com/v6.0/contribute/11_bug_tracker.html#definition-of-a-bug

summary: - multi-currency purchase order
+ [wishlist] improving multi-currency purchase pricelists
Revision history for this message
Kellogs (jm-poure) wrote :

This is nice to see this issue flagged as whishlist.
Thank you!

Revision history for this message
Kevin McMenamin (kevin-mcmenamin) wrote :

video of how it works for my client as discussed on forum

Revision history for this message
Kellogs (jm-poure) wrote :

Thanks the video.
I will publish my own video is a few minutes.

What version of OpenERP are you using?
Did you create a custom USD field in the product object?
The point is that you have a puchase journal in USD and mine is only EUR.

I noticed that the price for the product was 211,48 USD and the PO displayed 211,484 USD.
Is 211,484 USD the original price entered in your product form?

Revision history for this message
Kellogs (jm-poure) wrote :

@kevin
A quick analysis shows that your product form, supplier tab has:
supplier currency, supplier cost price.

Under my system, OpenERP 6.0 product form, supplier tabl:
only displays supplier cost price.

Revision history for this message
Kellogs (jm-poure) wrote :

here is my product form, supplier tab:
https://launchpadlibrarian.net/123640909/Capture_04.png

It does not have any currency defined, as this is supposed to be the supplier currency (USD).

So how did you achieve to record the currency in the product supplier tab?

Revision history for this message
Kellogs (jm-poure) wrote :

We are not using the same version of OpenERP:
* You are able to display the supplier currency, which is not may case.
* When a product price is updated in USD, the price is updated automatically in NZD, which is not my case.

What version of OpenERP are you using?

Revision history for this message
Paddy Furn (d-padd4-5) wrote :

does this module address the issue?
http://apps.openerp.com/addon/5910?filter={%22category%22%3A+4%2C+%22order_by%22%3A+%22downloads_sum+desc%22}&page=0

Revision history for this message
Sylvain Plante (sylvain-plante) wrote :

Hi all,

I am also really interested to know more about your installation Kevin (McMenamin) What version did you use for the video, any additionnal modules? I am trying to achieve exactly the same thing in OpenERP v7.0 (Windows Standalone).

Another thing that I find quite annoying is not being able to print a simple pricelist. That is awesome that you can do all sort of computation on a basic price but what if I want to confirm that it does exacly does what I want?

Is there anyway to print a pricelist (product code, description, price)?

Any comment would be appreciate!

Revision history for this message
vmajor (victor-major) wrote :

This bug is also present in OpenERP 7.

All purchase prices are recorded in the base currency. This makes pre-agreed pricing with suppliers operating in currencies other than the base currency largely meaningless. For example if we allow OpenERP to operate the purchasing process with any autonomy the supplier would receive our order in their currency (as dictated by the Purchasing Price list that is set for that supplier), but not the exact agreed product prices. Instead the purchase order would show the prices after currency conversion which would not be exactly as per the supplier's quote. This is not how businesses operate, they would reject such an order.

Please advise if you will be fixing this behaviour. Also in the meantime to save other users (too late for me) untold frustration please delete this section on your documentation as it does not appear to be describing the reality:

------------------
If your trading company wants to start a product catalog in a new currency you can handle this several ways:
1) Enter the prices in a new independent pricelist and maintain the lists in the two currencies separately,
2) Create a field in the product form for this new currency and make the new pricelist depend on this field: prices are then maintained separately, but in the product file,
3) Create a new pricelist for the second currency and make it depend on another pricelist or on the product price: the conversion between the currencies will then be done automatically at the prevailing currency conversion rate.
------------------

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.