return {'value': result}
+ def onchange_uos_quantity(self, cr, uid, ids, product_id, product_uos_qty,
+ product_uos, product_uom):
+ """ On change of product quantity finds UoM and UoS quantities
+ @param product_id: Product id
+ @param product_uos_qty: Changed UoS Quantity of product
+ @param product_uom: Unit of measure of product
+ @param product_uos: Unit of sale of product
+ @return: Dictionary of values
+ """
+ result = {
+ 'product_qty': 0.00
+ }
+
+ if (not product_id) or (product_uos_qty <=0.0):
+ return {'value': result}
+
+ product_obj = self.pool.get('product.product')
+ uos_coeff = product_obj.read(cr, uid, product_id, ['uos_coeff'])
+
+ if product_uos and product_uom and (product_uom != product_uos):
+ result['product_qty'] = product_uos_qty / uos_coeff['uos_coeff']
+ else:
+ result['product_qty'] = product_uos_qty
+
+ return {'value': result}
+
def onchange_product_id(self, cr, uid, ids, prod_id=False, loc_id=False,
loc_dest_id=False, address_id=False):
""" On change of product id, if finds UoM, UoS, quantity and UoS quantity.
<field name="product_id"/>
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" string="UoM"/>
- <field name="product_uos" groups="product.product_uos"/>
+ <field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1"/>
<field name="product_uom" string="Unit Of Measure" widget="selection" colspan="4"/>
- <field name="product_uos_qty" groups="product.product_uos" colspan="4"/>
+ <field name="product_uos_qty" groups="product.group_uos" on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)" colspan="4"/>
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)" colspan="4"/>
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]" colspan="4"/>
</group>
<field name="product_id"/>
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" string="UoM"/>
- <field name="product_uos" groups="product.product_uos"/>
+ <field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1" groups="base.group_extended"/>
<field name="product_uom" string="Unit Of Measure" widget="selection" colspan="4" />
- <field name="product_uos_qty" groups="product.product_uos" colspan="4" />
+ <field name="product_uos_qty" groups="product.group_uos" on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)" colspan="4" />
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)" colspan="4" />
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]" colspan="4" />
</group>
icon="gtk-convert" context="{'scrap': True}"
states="draft,waiting,confirmed,assigned" colspan="1"/>
<field name="product_uom" string="Unit Of Measure" widget="selection" colspan="4"/>
- <field name="product_uos_qty" groups="product.product_uos" colspan="4"/>
+ <field name="product_uos_qty" groups="product.group_uos" on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)" colspan="4"/>
<field groups="product.group_uos" name="product_uos" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)" colspan="4"/>
<field groups="base.group_extended" name="product_packaging" domain="[('product_id','=',product_id)]" colspan="4"/>
</group>
<field name="product_id"/>
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
<field name="product_uom" string="UoM"/>
- <field name="product_uos" groups="product.product_uos"/>
+ <field name="product_uos" groups="product.group_uos"/>
<button name="%(stock.move_scrap)d"
string="Scrap Products" type="action"
icon="gtk-convert" context="{'scrap': True}"
<group colspan="2" col="2">
<separator colspan="2" string="Move Information"/>
<field name="name" string="Reason"/>
- <field name="product_uos_qty" groups="product.product_uos" colspan="4"/>
- <field name="product_uos" groups="product.product_uos" colspan="4"/>
+ <field name="product_uos_qty" groups="product.group_uos" on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)" colspan="4"/>
+ <field name="product_uos" groups="product.group_uos" colspan="4"/>
</group>
<group colspan="2" col="2">
<group colspan="2" col="2">
<separator colspan="2" string="Move Information"/>
<field name="name" string="Reason"/>
- <field name="product_uos_qty" groups="product.product_uos" colspan="4"/>
- <field name="product_uos" groups="product.product_uos" colspan="4"/>
+ <field name="product_uos_qty" groups="product.group_uos" on_change="onchange_uos_quantity(product_id, product_uos_qty, product_uos, product_uom)" colspan="4"/>
+ <field name="product_uos" groups="product.group_uos" colspan="4"/>
</group>
<group colspan="2" col="2">