Mayur Maheshwari(OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-referance_uom-mma into 
lp:openobject-addons.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-referance_uom-mma/+merge/126384

Hello,

 Issue
       => when creating a new UoM from warehouse config or on the fly at some 
m2o field of UoM, we have to select category and select if new UoM is bigger or 
smaller than reference UoM, but we cannot remember or see whats the  reference 
UoM 

 Solution
       => I have added a new reference uom filed to see the reference uom of 
particular uom and  updated demo-data with that field 


Thanks,
Mayur


          
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-referance_uom-mma/+merge/126384
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-referance_uom-mma.
=== modified file 'product/product.py'
--- product/product.py	2012-09-24 16:26:45 +0000
+++ product/product.py	2012-09-26 06:35:25 +0000
@@ -127,6 +127,7 @@
         'uom_type': fields.selection([('bigger','Bigger than the reference Unit of Measure'),
                                       ('reference','Reference Unit of Measure for this category'),
                                       ('smaller','Smaller than the reference Unit of Measure')],'Unit of Measure Type', required=1),
+        'reference_uom_id': fields.many2one('product.uom', 'Reference UoM', readonly=True),
     }
 
     _defaults = {
@@ -182,6 +183,14 @@
             return {'value': {'factor': 1, 'factor_inv': 1}}
         return {}
 
+    def onchange_category_id(self, cr, uid, ids, category_id):
+        reference_uom = False
+        if category_id:
+            uom_ids = self.search(cr, uid, [('category_id', '=',category_id),('uom_type', '=', 'reference')])
+            if uom_ids:
+                reference_uom = uom_ids[0]
+        return {'value':{'reference_uom_id': reference_uom}}
+
     def write(self, cr, uid, ids, vals, context=None):
         if 'category_id' in vals:
             for uom in self.browse(cr, uid, ids, context=context):

=== modified file 'product/product_data.xml'
--- product/product_data.xml	2012-09-12 17:58:34 +0000
+++ product/product_data.xml	2012-09-26 06:35:25 +0000
@@ -38,6 +38,7 @@
             <field name="name">Dozen</field>
             <field name="factor" eval="0.083"/>
             <field name="uom_type">bigger</field>
+            <field name="reference_uom_id" ref="product_uom_unit"/>
         </record>
         <record id="product_uom_kgm" model="product.uom">
             <field name="category_id" ref="product_uom_categ_kgm"/>
@@ -49,17 +50,19 @@
             <field name="name">g</field>
             <field name="factor" eval="1000"/>
             <field name="uom_type">smaller</field>
+            <field name="reference_uom_id" ref="product_uom_kgm"/>
+        </record>
+        <record id="product_uom_day" model="product.uom">
+            <field name="name">Day</field>
+            <field eval="uom_categ_wtime" name="category_id"/>
+            <field name="factor" eval="1.0"/>
         </record>
         <record id="product_uom_hour" model="product.uom">
             <field name="name">Hour</field>
             <field eval="uom_categ_wtime" name="category_id"/>
             <field name="factor" eval="8.0"/>
             <field name="uom_type">smaller</field>
-        </record>
-        <record id="product_uom_day" model="product.uom">
-            <field name="name">Day</field>
-            <field eval="uom_categ_wtime" name="category_id"/>
-            <field name="factor" eval="1.0"/>
+            <field name="reference_uom_id" ref="product_uom_day"/>
         </record>
         <record id="product_uom_ton" model="product.uom">
             <field name="category_id" ref="product_uom_categ_kgm"/>
@@ -68,6 +71,7 @@
             <field name="name">t</field>
             <field name="factor" eval="0.001"/>
             <field name="uom_type">bigger</field>
+            <field name="reference_uom_id" ref="product_uom_kgm"/>
         </record>
         <record id="product_uom_meter" model="product.uom">
             <field name="category_id" ref="uom_categ_length"/>
@@ -79,12 +83,14 @@
             <field name="name">km</field>
             <field name="factor" eval="0.001"/>
             <field name="uom_type">bigger</field>
+            <field name="reference_uom_id" ref="product_uom_meter"/>
         </record>
         <record id="product_uom_cm" model="product.uom">
             <field name="category_id" ref="uom_categ_length"/>
             <field name="name">cm</field>
             <field name="factor" eval="100"/>
             <field name="uom_type">smaller</field>
+            <field name="reference_uom_id" ref="product_uom_meter"/>
         </record>
         <record id="product_uom_litre" model="product.uom">
             <field name="name">Litre</field>

=== modified file 'product/product_view.xml'
--- product/product_view.xml	2012-09-21 07:58:41 +0000
+++ product/product_view.xml	2012-09-26 06:35:25 +0000
@@ -462,11 +462,12 @@
                     <group>
                         <group>
                             <field name="name"/>
-                            <field name="category_id"/>
+                            <field name="category_id" on_change="onchange_category_id(category_id)"/>
                             <field name="active"/>
                         </group>
                         <group>
-                            <field name="uom_type" on_change="onchange_type(uom_type)"/>
+                            <field name="reference_uom_id" attrs="{'invisible':[('reference_uom_id','=',False)]}"/>
+                            <field name="uom_type" on_change="onchange_type(uom_type)" attrs="{'readonly':[('reference_uom_id','=',False)]}"/>
                             <field name="rounding"/>
                             <field name="factor" attrs="{'invisible':[('uom_type','!=','smaller')]}"/>
                             <label string="  e.g: 1 * (reference unit) = ratio * (this unit)" attrs="{'invisible':[('uom_type','!=','smaller')]}"/>

_______________________________________________
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