Vendor Price handling with UOM conversion seem not completely implemented

371 views
Skip to first unread message

Volker Voßkämper

unread,
Sep 27, 2013, 4:41:02 AM9/27/13
to idem...@googlegroups.com
Hello,

the vendor listprice is currently converted to the price per product UOM if pricelist is calculated. But there are things missing.

I like to work on this issue but first I want to discuss and clarify some facts:
  • A price in the pricelist allways represents the unit price (base unit) of product
  • All price values in M_Product_PO should represent prices with respect of conversion rate of given UOM in the line
Do you agree with that?


Taking this facts as given we have the following issues:
  • M_Product_PO.PricePO is actually not converted but used if pricelist is calculated
  • M_Product_PO.PriceLastPO and PriceInv are updated from the purchase order with the price of the base unit of the product

Are there other dependencies to the currently not converted price fields that I must take into account?


Regards
Volker

Carlos Antonio Ruiz Gomez

unread,
Sep 27, 2013, 3:37:43 PM9/27/13
to idem...@googlegroups.com
Volker, wondering here.

Is it possible that JJ modelled M_Product_PO.PricePO (and the other prices here) to be in the UOM of the product?
And that M_Product_PO.UOM doesn't relate to the prices there, but just the preferred UOM for this vendor?

IMHO that can make more sense based on the lack of conversion code.  And if that's the case it can be a documentation instead of a bug.

Regards,

Carlos Ruiz


El 27/09/13 03:41, Volker Voßkämper escribió:

Volker Voßkämper

unread,
Oct 5, 2013, 8:55:06 AM10/5/13
to idem...@googlegroups.com
Hi Carlos,

for me the full cycle of price management is as follows:

A thread is usualy sold by the vendor on reels a 100m/500m/1000m/5000m and price is given per reel.

Example Product:
ASPO PES 120 - 1000 m - black
Price is 0.92 €/Ea, boxed per 10 and minimum order quantity 10

In this example I will use an unrelistic high price to circumvent IDEMPIERE-1397

So the values are:
ASPO PES 120 - 1000 m - black
Price is 92.0 €/Ea, boxed per 10 and minimum order quantity 10
 
I need this for manufacturing of clothing in BOM so my Unit of the product is meter.

I get my vendor pricelist imported for various threads and this results in the following settings in the purchasing tab of the product (M_Product_PO)

List Price: 92.0
PO Price: 92.0
UOM: Reel
Minimum Order Qty: 10
Order Pack Qty: 10

The Product is prepared with correct conversion rate:
UOM: meter
UOM To: reel
Divide Rate: 1000

Pricelist is prepared with precision of 5

Now I want to create my purchase pricelist with the following schema:
List Price Base: List Price
Standard Price Base: Limit (PO) Price
Limit Price Base: Fixed 0

The resulting pricelist shows:
List Price: 0.09
Standard Price: 92.00

I have to correct the standard price to 0.092 becaus product UOM is meter (and the list price to 0.092 according to
IDEMPIERE-1397).

Now next step Replenishment:
setting Replenish Tab of product to:
Minimum level: 10000 (meter)
Maximum level: 20000 (meter)
Reorder below minimum level.

Now start replenish report
The report shows a qantity to order of 20000 which is what I expect but the purchase order has an orderline with 20000 meter!
this is wrong becaus my vendor only sells in reels a 10 per box.
I cannot change the UOM of the line now becaus it is read only, so I must drop the line and manualy recreate it with the corrert UOM
Quantity: 20
UOM: Reel
PO Quantity: 20000
Price: 92.00
Unit Price: 0.092
Line Amount: 1840

OK here...
Now booking MM Receipt and Vendor Invoice

After that my M_Product_PO shows additional values:
Last PO Price: 0.092
Last Invoice Price: 0.092

In this example is set M_Product_PO List and Standard Price to the same value or left 0. But it could be, that I get a discount according to my Discount Class from my Vendor (10% from Listprice for example) so Standard Price is filled on import too with the price I get form my vendor.


But if M_Product_PO Standard Price is empty, generating pricelist will update it with last (unconverted) purchase price if available.
In this case the M_Product_PO List price shows 92 but standard price shows 0.092 !!! (see M_PriceList_Create.java Line 133)


This all is error prone and inconsistent.

To make all this full usable IMHO the only logical consequence is:
  • All prices in M_Product_PO musst represent a price in relation to the given M_Product_PO UOM (reel in this example)
  • All prices in pricelist represent a price of product base UOM (meter in this example)

regards
Volker




FOUETIEU KOM ANDRE ANGE

unread,
Jul 12, 2014, 8:15:44 AM7/12/14
to idem...@googlegroups.com
Hi, Commnity,

Thanks Carlos to answer Volker's question
but i'm wondering about something,
In my case, let us suppose that i have a product wich can be manage with 2 UOM ( tonne & 50Kg) we all Knows that 1t = 20 (50Kg)
but the problem is that there is no correlation between the sale price in tonne with the sale price in 50Kg. Therefore, I can't use conversion (tonne to 50kg) if not Idempiere will convert on purchasing.

How Can I Manage PriceList in that case so that i will be able to receipt Material with (tonne as UOM) and sale it with (50KG as UOM)?

Regards,

Carlos Antonio Ruiz Gomez

unread,
Jul 12, 2014, 9:22:00 AM7/12/14
to idem...@googlegroups.com
If there is no direct correlation on sales price between the two UOMs - then you need to use discount or price breaks functionalities.

There is also this new feature pending to be ported to iDempiere:
https://idempiere.atlassian.net/browse/IDEMPIERE-533

Regards,

Carlos Ruiz

FOUETIEU KOM ANDRE ANGE

unread,
Jul 13, 2014, 6:10:37 AM7/13/14
to idem...@googlegroups.com
Tkank you, but I want my defaut UOM to be (tonne), and, Idempiere does not allow the default unit to be higher than the To UOM in conversion.


In this case I want to add some fonctionality in Idempiere, " Calculate Purchasing or Sale Price based on UMO instead of Default UOM"!

- I have added a fied in Price and Price Break windows (very simple)
- I want to change the on envent function of field  UOM in purchase or sale order windows so that it shoud calculate the price based on UOM I have previously defined for the product.

 but the matter is that I do not where the "On event " javasript" method for Idempiere windows are implemented"

I just want someone to tell me where these method are implemented in Idempiere source code.


Regards,

A. Fouetieu

--
You received this message because you are subscribed to a topic in the Google Groups "iDempiere" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/idempiere/YdTa387jd38/unsubscribe.
To unsubscribe from this group and all its topics, send an email to idempiere+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/idempiere/53C13673.6020909%40gmail.com.

For more options, visit https://groups.google.com/d/optout.

Carlos Antonio Ruiz Gomez

unread,
Jul 13, 2014, 10:07:39 AM7/13/14
to idem...@googlegroups.com

FOUETIEU KOM ANDRE ANGE

unread,
Jul 14, 2014, 6:10:32 AM7/14/14
to idem...@googlegroups.com
I have changed this constrainst, Now on purchasing order, when I choose the UOM to (Sac), the PO quantity is divided instead of multiplied. How can I resolved this?

Thank you



--
You received this message because you are subscribed to a topic in the Google Groups "iDempiere" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/idempiere/YdTa387jd38/unsubscribe.
To unsubscribe from this group and all its topics, send an email to idempiere+...@googlegroups.com.

Sánchez Torres, Max

unread,
Jul 14, 2014, 8:40:04 AM7/14/14
to idem...@googlegroups.com

Hi,

Always is multiplied. You need put conversion factor < 0.

100x0.10= 10 is the same= 100/10

Regards

You received this message because you are subscribed to the Google Groups "iDempiere" group.
To unsubscribe from this group and stop receiving emails from it, send an email to idempiere+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/idempiere/CAO7HfTm2iwUeEzkkRFtAqsfh5__x6Xk9XTRPXkoL1R3fGJDYXw%40mail.gmail.com.

FOUETIEU KOM ANDRE ANGE

unread,
Jul 14, 2014, 10:07:03 AM7/14/14
to idem...@googlegroups.com
Thank you, Sánchez,  If want to calcultate An order line price according to (UOM, Bpartner and product ), Where Could I see the method which is called when I change the UOM.

Best Regards,




Peter Snizek

unread,
Jul 5, 2015, 12:10:22 PM7/5/15
to idem...@googlegroups.com
I am dealing with Order Pack Qty configuration for some of our products.

Example as per Volker:
List Price: 92.0
PO Price: 92.0
UOM: Reel
Minimum Order Qty: 10
Order Pack Qty: 10


In Volker's example MOQ and OPQ are identical.
However I'd expect the MOQ would use the OPQ as a basis.
Example: OPQ = 10, MOQ=1, Order Qty = 1 -> Qty of units received = 10

In reality it seems the OPQ (Order Pack Qty) doesn't do anything. If conducting a test order based on the above example, the qty of received units is 1.
Hence Volker's configuration where MOQ and OPQ are identical.

Wouldn't it be more reasonable if the MOQ would be related to the Order Package instead of Units?
Reply all
Reply to author
Forward
0 new messages