Amit Dodiya (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/6.1-opw-579152-ado into 
lp:openobject-addons/6.1.

Requested reviews:
  Xavier ALT (OpenERP) (xal-openerp)
  Naresh(OpenERP) (nch-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/6.1-opw-579152-ado/+merge/131849

Hello,

"[FIX] while we have box to purchase instead of pce the quantity is wrongly 
rounded(If you have 100 qnty = 1 box and you purchase 101 qnty so it should 
take 2 box instead of 1 box)"

Steps:
1.) Create a new product, stockable, MTO, Buy
2.) Define 2 units from the same category (PCE = 1, BOX = 100)
3.) Assign the 'PCE' as the 'Default Unit Of Measure' and 'BOX' as the 
'Purchase Unit of Measure'
4.) Define a supplier
After above configuration try following scenario :
Create a 'Procurement request' for 149 PCE : Got a purchase.order for 1 BOX
Create a 'Procurement request' for 150 PCE : Got a purchase.order for 2 BOX

Result should like following data:
Request for 100 : Purchase for 1 BOX
Request for 101 : Purchase for 2 BOX
Request for 200 : Purchase for 2 BOX
Request for 201 : Purchase for 3 BOX

Regards,
Amit
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/6.1-opw-579152-ado/+merge/131849
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/6.1-opw-579152-ado.
=== modified file 'product/product.py'
--- product/product.py	2012-04-03 13:05:28 +0000
+++ product/product.py	2012-10-29 10:25:31 +0000
@@ -145,7 +145,10 @@
                 return qty
         amount = qty / from_unit.factor
         if to_unit:
-            amount = rounding(amount * to_unit.factor, to_unit.rounding)
+            if context.get('unit'):
+                amount = math.ceil(amount * to_unit.factor)  
+            else:      
+                amount = rounding(amount * to_unit.factor, to_unit.rounding)
         return amount
 
     def _compute_price(self, cr, uid, from_uom_id, price, to_uom_id=False):

=== modified file 'purchase/purchase.py'
--- purchase/purchase.py	2012-10-09 12:16:14 +0000
+++ purchase/purchase.py	2012-10-29 10:25:31 +0000
@@ -897,7 +897,9 @@
             warehouse_id = warehouse_obj.search(cr, uid, [('company_id', '=', procurement.company_id.id or company.id)], context=context)
             uom_id = procurement.product_id.uom_po_id.id
 
-            qty = uom_obj._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, uom_id)
+            if procurement.product_id.uom_po_id.rounding == 1.0:
+                context.update(unit=True)
+            qty = uom_obj._compute_qty_obj(cr, uid, procurement.product_uom, procurement.product_qty, procurement.product_id.uom_po_id, context=context)
             if seller_qty:
                 qty = max(qty,seller_qty)
 

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to