[FIX] some product_qty fields are set with hardcoded decimal precision, and some...
[odoo/odoo.git] / addons / mrp_subproduct / mrp_subproduct.py
index c407182..3c4bb93 100644 (file)
 
 from osv import fields
 from osv import osv
+import decimal_precision as dp
 
 class mrp_subproduct(osv.osv):
     _name = 'mrp.subproduct'
     _description = 'Sub Product'
     _columns={
         'product_id': fields.many2one('product.product', 'Product', required=True),
-        'product_qty': fields.float('Product Qty', required=True),
+        'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product UoM'), required=True),
         'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
         'subproduct_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Quantity Type', required=True),
         'bom_id': fields.many2one('mrp.bom', 'BoM'),
@@ -35,17 +36,14 @@ class mrp_subproduct(osv.osv):
     _defaults={
         'subproduct_type': lambda *args: 'fixed'
     }
-    _sql_constraints = [
-        ('_check_product_qty', 'CHECK (product_qty > 0)', 'Enter valid product quantity !'),
-    ]
 
-    def onchange_product_id(self, cr, uid, ids, product_id,context={}):
+    def onchange_product_id(self, cr, uid, ids, product_id, context=None):
         """ Changes UoM if product_id changes.
         @param product_id: Changed product_id
         @return: Dictionary of changed values
         """
         if product_id:
-            prod = self.pool.get('product.product').browse(cr, uid, product_id)
+            prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
             v = {'product_uom': prod.uom_id.id}
             return {'value': v}
         return {}
@@ -63,7 +61,6 @@ class mrp_bom(osv.osv):
 mrp_bom()
 
 class mrp_production(osv.osv):
-    _name = 'mrp.production'
     _description = 'Production'
     _inherit= 'mrp.production'