← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 688493] Re: Stock wizard_partial_picking Average price computation doesnt work as expectet

 

Hello,

Would you please tell me the way you are changing the standard price to
1000. Whether it is at  time of purchase order creation or at the time
of processing the incoming shipments i.e picking. Here i have changed
the price at the time of processing the picking. And after I have
checked the product's standard price and it is 1222.22 as you have
specified in the bug.

Thanks.

** Changed in: openobject-addons
       Status: Invalid => Incomplete

-- 
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/688493

Title:
  Stock wizard_partial_picking Average price computation doesnt work as expectet

Status in OpenObject Addons Modules:
  Incomplete

Bug description:
  In the wizard_partial_picking.py in line 146 the new standard_price of a product (cost_method = average) is calculated:
new_std_price = ((product.standard_price * product.qty_available) + (new_price * qty))/(product.qty_available + qty)

I've a product with a standard_price of 1500 and an available qty of 2, now i purchase 2 additional product with a unit price of 1000:

if ive one move_line with qty:2 price 1000 the calculation works fine:

((1500 * 2) + (1000 * 2)) / (2 + 2) = 1250 

but if i split the the line in 2 lines each with a qty of 1 and a price of 1000 the product_qty_available will not be taken in count wich causes this problem:

((1500 * 2) + (1000 * 1)) / (2 + 1) = 1333,33 
after calculating the new cost_price for the first line the new price is written in the product but the qty_available doesnt change
as the workflow action that ends the move is called later in the method.
((1333,33 * 2) + (1000 * 1)) / (2 + 1) = 1222,22 
This average price is wrong, the right one would take the additional qty of the first line in count :
((1333,33 * 3) + (1000 * 1)) / (2 + 1) = 1250





References