[FIX] some product_qty fields are set with hardcoded decimal precision, and some without. I added dp on all occurrences of product_qty.

lp bug: https://launchpad.net/bugs/884179 fixed

bzr revid: bogdanovidiu.stanciu@gmail.com-20111031113830-drdqvvrz032nrzh4
This commit is contained in:
Bogdan Stanciu
2011-10-31 12:38:30 +01:00
parent 3d22bb8b55
commit e19e1fe100
11 changed files with 22 additions and 14 deletions
+4 -3
View File
@@ -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),
@@ -982,7 +983,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'),
+2 -1
View File
@@ -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):
@@ -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),
+2 -1
View File
@@ -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),
'bom_id': fields.many2one('mrp.bom', 'BoM'),
+2 -1
View File
@@ -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),
+1 -1
View File
@@ -175,7 +175,7 @@
<field name="context">{'search_default_Current':1}</field>
<field name="help">A project contains a set of tasks or issues that will be performed by your resources assigned to it. A project can be hierarchically structured, as a child of a Parent Project. This allows you to design large project structures with different phases spread over the project duration cycle. Each user can set his default project in his own preferences to automatically filter the tasks or issues he usually works on. If you choose to invoice the time spent on a project task, you can find project tasks to be invoiced in the billing section.</field>
</record>
<menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_definitions" sequence="1"/>
<menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_project_management" sequence="1"/>
<record id="open_view_template_project" model="ir.actions.act_window">
<field name="name">Templates of Projects</field>
+1 -1
View File
@@ -625,7 +625,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),
@@ -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),
}
@@ -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')]"),
}
+1 -1
View File
@@ -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)
}
+3 -2
View File
@@ -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