res.setdefault(id, 0.0)
return res
- def _get_product_available_func(states, what):
- def _product_available(self, cr, uid, ids, name, arg, context=None):
- return {}.fromkeys(ids, 0.0)
- return _product_available
-
- _product_qty_available = _get_product_available_func(('done',), ('in', 'out'))
- _product_virtual_available = _get_product_available_func(('confirmed','waiting','assigned','done'), ('in', 'out'))
- _product_outgoing_qty = _get_product_available_func(('confirmed','waiting','assigned'), ('out',))
- _product_incoming_qty = _get_product_available_func(('confirmed','waiting','assigned'), ('in',))
-
def _product_lst_price(self, cr, uid, ids, name, arg, context=None):
res = {}
product_uom_obj = self.pool.get('product.uom')
_inherit = ['mail.thread']
_order = 'default_code,name_template'
_columns = {
- 'qty_available': fields.function(_product_qty_available, type='float', string='Quantity On Hand'),
- 'virtual_available': fields.function(_product_virtual_available, type='float', string='Quantity Available'),
- 'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'),
- 'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'),
'price': fields.function(_product_price, type='float', string='Price', digits_compute=dp.get_precision('Product Price')),
'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')),
'code': fields.function(_product_code, type='char', string='Internal Reference'),
<field name="model">product.product</field>
<field eval="7" name="priority"/>
<field name="arch" type="xml">
- <tree colors="red:virtual_available<0;blue:virtual_available>=0 and state in ('draft', 'end', 'obsolete');black:virtual_available>=0 and state not in ('draft', 'end', 'obsolete')" string="Products">
+ <tree string="Products">
<field name="default_code"/>
<field name="name"/>
<field name="categ_id" invisible="1"/>
<field name="type" invisible="1"/>
<field name="uom_id" string="Unit of Measure" groups="product.group_uom"/>
- <field name="qty_available"/>
- <field name="virtual_available"/>
<field name="lst_price"/>
<field name="price" invisible="not context.get('pricelist',False)"/>
<field name="standard_price" invisible="1"/>
</field>
</record>
+ <record id="view_stock_product_tree" model="ir.ui.view">
+ <field name="name">product.stock.tree.inherit</field>
+ <field name="model">product.product</field>
+ <field name="inherit_id" ref="product.product_product_tree_view"/>
+ <field name="arch" type="xml">
+
+ <field name="uom_id" position="after">
+ <field name="qty_available"/>
+ <field name="virtual_available"/>
+ </field>
+ <tree position="attributes">
+ <attribute name="colors">{'red':virtual_available<0, 'blue':virtual_available>=0 and state in ('draft', 'end', 'obsolete'), 'black':virtual_available>=0 and state not in ('draft', 'end', 'obsolete')}</attribute>
+ </tree>
+ </field>
+ </record>
+
<record id="view_template_property_form" model="ir.ui.view">
<field name="name">product.template.stock.property.form.inherit</field>
<field name="model">product.template</field>