[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:
+4
-3
@@ -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'),
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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')]"),
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user