diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index aeacf4a71a2..04a08126561 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -21,6 +21,7 @@ from datetime import datetime from osv import osv, fields +import decimal_precision as dp from tools.translate import _ import netsvc import time @@ -205,7 +206,7 @@ class mrp_bom(osv.osv): 'product_id': fields.many2one('product.product', 'Product', required=True), 'product_uos_qty': fields.float('Product UOS Qty'), 'product_uos': fields.many2one('product.uom', 'Product UOS', help="Product UOS (Unit of Sale) is the unit of measurement for the invoicing and promotion of stock."), - 'product_qty': fields.float('Product Qty', required=True), + 'product_qty': fields.float('Product Qty', required=True, digits_compute=dp.get_precision('Product UoM')), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True, help="UoM (Unit of Measure) is the unit of measurement for the inventory control"), 'product_rounding': fields.float('Product Rounding', help="Rounding applied on the product quantity."), 'product_efficiency': fields.float('Manufacturing Efficiency', required=True, help="A factor of 0.9 means a loss of 10% within the production process."), @@ -447,7 +448,7 @@ class mrp_production(osv.osv): 'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority'), 'product_id': fields.many2one('product.product', 'Product', required=True, readonly=True, states={'draft':[('readonly',False)]}), - 'product_qty': fields.float('Product Qty', required=True, states={'draft':[('readonly',False)]}, readonly=True), + 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product UoM'), required=True, states={'draft':[('readonly',False)]}, readonly=True), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True, states={'draft':[('readonly',False)]}, readonly=True), 'product_uos_qty': fields.float('Product UoS Qty', states={'draft':[('readonly',False)]}, readonly=True), 'product_uos': fields.many2one('product.uom', 'Product UoS', states={'draft':[('readonly',False)]}, readonly=True), @@ -993,7 +994,7 @@ class mrp_production_product_line(osv.osv): _columns = { 'name': fields.char('Name', size=64, required=True), '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), 'product_uos_qty': fields.float('Product UOS Qty'), 'product_uos': fields.many2one('product.uom', 'Product UOS'), diff --git a/addons/mrp/wizard/change_production_qty.py b/addons/mrp/wizard/change_production_qty.py index 87b6d00190e..fa1549458cf 100644 --- a/addons/mrp/wizard/change_production_qty.py +++ b/addons/mrp/wizard/change_production_qty.py @@ -21,13 +21,14 @@ from osv import fields, osv from tools.translate import _ +import decimal_precision as dp class change_production_qty(osv.osv_memory): _name = 'change.production.qty' _description = 'Change Quantity of Products' _columns = { - 'product_qty': fields.float('Product Qty', required=True), + 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product UoM'), required=True), } def default_get(self, cr, uid, fields, context=None): diff --git a/addons/mrp_operations/report/mrp_workorder_analysis.py b/addons/mrp_operations/report/mrp_workorder_analysis.py index e559f97fbed..545ce73656d 100644 --- a/addons/mrp_operations/report/mrp_workorder_analysis.py +++ b/addons/mrp_operations/report/mrp_workorder_analysis.py @@ -21,6 +21,7 @@ from osv import fields,osv import tools +import decimal_precision as dp class mrp_workorder(osv.osv): _name = "mrp.workorder" @@ -34,7 +35,7 @@ class mrp_workorder(osv.osv): 'nbr': fields.integer('# of Lines', readonly=True), 'date': fields.date('Date', readonly=True), 'product_id': fields.many2one('product.product', 'Product', readonly=True), - 'product_qty': fields.float('Product Qty', readonly=True), + 'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product UoM'), readonly=True), 'state': fields.selection([('draft','Draft'),('startworking', 'In Progress'),('pause','Pause'),('cancel','Cancelled'),('done','Finished')],'State', readonly=True), 'total_hours': fields.float('Total Hours', readonly=True), 'total_cycles': fields.float('Total Cycles', readonly=True), diff --git a/addons/mrp_subproduct/mrp_subproduct.py b/addons/mrp_subproduct/mrp_subproduct.py index bb3b6789574..f6e18ead5e9 100644 --- a/addons/mrp_subproduct/mrp_subproduct.py +++ b/addons/mrp_subproduct/mrp_subproduct.py @@ -21,13 +21,14 @@ 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, help="Define how the quantity of subproducts will be set on the production orders using this BoM.\ 'Fixed' depicts a situation where the quantity of created subproduct is always equal to the quantity set on the BoM, regardless of how many are created in the production order.\ diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 7382b1577e7..8e49520ba47 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -23,6 +23,7 @@ from osv import osv, fields from tools.translate import _ import netsvc import time +import decimal_precision as dp # Procurement # ------------------------------------------------------------------ @@ -91,7 +92,7 @@ class procurement_order(osv.osv): 'date_planned': fields.datetime('Scheduled date', required=True), 'date_close': fields.datetime('Date Closed'), 'product_id': fields.many2one('product.product', 'Product', required=True, states={'draft':[('readonly',False)]}, readonly=True), - 'product_qty': fields.float('Quantity', required=True, states={'draft':[('readonly',False)]}, readonly=True), + 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True, states={'draft':[('readonly',False)]}, readonly=True), 'product_uom': fields.many2one('product.uom', 'Product UoM', required=True, states={'draft':[('readonly',False)]}, readonly=True), 'product_uos_qty': fields.float('UoS Quantity', states={'draft':[('readonly',False)]}, readonly=True), 'product_uos': fields.many2one('product.uom', 'Product UoS', states={'draft':[('readonly',False)]}, readonly=True), diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 83b20833c5f..8a75ba0dcad 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -654,7 +654,7 @@ class purchase_order_line(osv.osv): _columns = { 'name': fields.char('Description', size=256, required=True), - 'product_qty': fields.float('Quantity', required=True, digits=(16,2)), + 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True), 'date_planned': fields.date('Scheduled Date', required=True, select=True), 'taxes_id': fields.many2many('account.tax', 'purchase_order_taxe', 'ord_id', 'tax_id', 'Taxes'), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True), diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index 5549b044142..d619e3a82f5 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -25,6 +25,7 @@ import netsvc from osv import fields,osv from tools.translate import _ +import decimal_precision as dp class purchase_requisition(osv.osv): _name = "purchase.requisition" @@ -93,7 +94,7 @@ class purchase_requisition_line(osv.osv): _columns = { 'product_id': fields.many2one('product.product', 'Product' ), 'product_uom_id': fields.many2one('product.uom', 'Product UoM'), - 'product_qty': fields.float('Quantity', digits=(16,2)), + 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM')), 'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition', ondelete='cascade'), 'company_id': fields.many2one('res.company', 'Company', required=True), } diff --git a/addons/stock/wizard/stock_change_product_qty.py b/addons/stock/wizard/stock_change_product_qty.py index f12eabd39e8..a2b4b6ebae4 100644 --- a/addons/stock/wizard/stock_change_product_qty.py +++ b/addons/stock/wizard/stock_change_product_qty.py @@ -20,6 +20,7 @@ ############################################################################## from osv import fields, osv +import decimal_precision as dp from tools.translate import _ import tools @@ -28,7 +29,7 @@ class stock_change_product_qty(osv.osv_memory): _description = "Change Product Quantity" _columns = { 'product_id' : fields.many2one('product.product', 'Product'), - 'new_quantity': fields.float('Quantity', required=True, help='This quantity is expressed in the Default UoM of the product.'), + 'new_quantity': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True, help='This quantity is expressed in the Default UoM of the product.'), 'prodlot_id': fields.many2one('stock.production.lot', 'Production Lot', domain="[('product_id','=',product_id)]"), 'location_id': fields.many2one('stock.location', 'Location', required=True, domain="[('usage', '=', 'internal')]"), } diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py index 1a655878d8a..9ff0c96a3b8 100644 --- a/addons/stock/wizard/stock_move.py +++ b/addons/stock/wizard/stock_move.py @@ -29,7 +29,7 @@ class stock_move_consume(osv.osv_memory): _columns = { 'product_id': fields.many2one('product.product', 'Product', required=True, select=True), - 'product_qty': fields.float('Quantity', required=True), + 'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product UoM'), required=True), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True), 'location_id': fields.many2one('stock.location', 'Location', required=True) } diff --git a/addons/stock_planning/stock_planning.py b/addons/stock_planning/stock_planning.py index 3ec992ecd0c..6ffb0140eb0 100644 --- a/addons/stock_planning/stock_planning.py +++ b/addons/stock_planning/stock_planning.py @@ -27,6 +27,7 @@ from osv import osv, fields import netsvc from tools.translate import _ import logging +import decimal_precision as dp _logger = logging.getLogger('mps') @@ -80,8 +81,8 @@ class stock_sale_forecast(osv.osv): help = 'Shows which period this forecast concerns.'), 'product_id': fields.many2one('product.product', 'Product', readonly=True, required=True, states={'draft':[('readonly',False)]}, \ help = 'Shows which product this forecast concerns.'), - 'product_qty': fields.float('Forecast Quantity', required=True, readonly=True, states={'draft':[('readonly',False)]}, \ - help= 'Forecast Product quantity.'), + 'product_qty': fields.float('Forecast Quantity', digits_compute=dp.get_precision('Product UoM'), required=True, readonly=True, \ + states={'draft':[('readonly',False)]}, help= 'Forecast Product quantity.'), 'product_amt': fields.float('Product Amount', readonly=True, states={'draft':[('readonly',False)]}, \ help='Forecast value which will be converted to Product Quantity according to prices.'), 'product_uom_categ': fields.many2one('product.uom.categ', 'Product UoM Category'), # Invisible field for product_uom domain