← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 782168] Re: [PS] It is possible to encode product with prices in two different currencies within the same Sales Order

 

As I commented on the merge proposal, I'm afraid the bug description is not correct, and the alternative suggestions aren't either.
Let me explain. The original bug description is incorrect because it makes no sense to mix different currencies within a single sale order, and we certainly don't want to allow that.
The alternative suggestions using on_change triggers to recompute the amounts are not correct either, for 2 reasons:
- We currently support using multiple pricelists (same currency) during the process of recording a sale order, in case a salesman needs to mix pricelists. Thus when changing pricelists, we do NOT want to alter the already entered prices (not even recompute them), as they really are supposed to be using a different pricelist!
- Now, even if we imagined a selective on_change recompute (one that would recompute prices only if the new pricelist's currency is different), this would be: 1. Hard to implement technically, because on_change triggers can't access the previous value. 2. A very counter-intuitive behavior ; how are users supposed to guess that choosing some pricelists will cause their entire prices to be altered, while some won't do anything?

OpenERP should not handle automatically all exception cases, because
there is no safe way of doing that. As you can see, if we decided to
enforce one behavior (e.g. automatic recompute), there would be users
who would need the opposite behavior, and thus would see the fix as a
bug/regression!

I see one possible thing to improve for this use case, however: we could modify the tooltip on the pricelist field to something like:
"The selected pricelist will provide suggested prices for products, and its currency will determine the currency of the sale order.
 If prices from multiple pricelists need to be mixed, select the appropriate pricelist before adding the corresponding products. 
Warning: do not mix pricelists with different currencies, as that would likely result in incorrect prices!"

I hope my explanation is clear...

** Summary changed:

- [PS] It is possible to encode product with prices in two different currencies within the same Sales Order
+ [PS] Mixing Pricelists in Sale Orders may result in incorrect prices

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/782168

Title:
  [PS] Mixing Pricelists in Sale Orders may result in incorrect prices

Status in OpenERP Modules (addons):
  Confirmed

Bug description:
  When writing a sale order, it is possible to use multiple pricelists, even ones with different currencies.
  When doing the latter, the final prices are incorrect, because they were expressed in different currencies.

  Solving this in a fool-proof manner is quite difficult.

  However, one possible thing to improve for this use case is to modify the tooltip on the pricelist field to warn the users about this.
  We could use something like:
  "The selected pricelist will provide suggested prices for products, and its currency will determine the currency of the sale order.
   If prices from multiple pricelists need to be mixed, select the appropriate pricelist before adding the corresponding products. 
   Warning: do not mix pricelists with different currencies, as that would likely result in incorrect prices!"


  ===== original description for reference (suggested solution invalid) ============
  trunk server revno 3411

  having another pricelist in $ (for example)

  * Sales/Sales/Sales Orders, Create a sales order using the public pricelist (in €)
  * Add a sales order line, for example CPU1 (for a unit price of 75€)
  * change the pricelist on the sales order and select the pricelist in $
  * Add a sales order line, for example CPU1 (for a unit price of 75€ converted into $ = 96.26$)
  * Click on compute on the sales order line, total = 171,26

  Obtained result : there is no difference between product in $ and €,
  moreover the total just make the sum of the two prices !

  Expected result : we should see that a price is in € and the other in
  $ (add a column on the sales order line) and the total must be the sum
  of all prices in € or all prices in $ not a mix of the two

  reported by dha, OpenERP Prof Serv


Follow ups

References