bzr revid: fp@openerp.com-20121010203818-32otffomve5ifm16
This commit is contained in:
Fabien Pinckaers 2012-10-10 22:38:18 +02:00
commit dd5f5eca9b
26 changed files with 468 additions and 197 deletions

View File

@ -14,8 +14,8 @@
<field name="taxes_id" colspan="2" attrs="{'readonly':[('sale_ok','=',0)]}" widget="many2many_tags"/>
</group>
<group>
<field name="property_account_expense" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}"/>
<field name="supplier_taxes_id" colspan="2" attrs="{'readonly':[('purchase_ok','=',0)]}" widget="many2many_tags"/>
<field name="property_account_expense" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]" />
<field name="supplier_taxes_id" colspan="2" widget="many2many_tags"/>
</group>
</group>
</page>

View File

@ -6,10 +6,10 @@
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view" />
<field name="arch" type="xml">
<field name="purchase_ok" position="before">
<div name="options" position="inside">
<field name="event_ok" on_change="onchange_event_ok(event_ok, context)"/>
<label for="event_ok"/>
</field>
</div>
<field name='default_code' position='before'>
<field name="event_type_id" attrs="{'readonly': [('event_ok', '=', False)]}"/>
</field>

View File

@ -243,7 +243,7 @@ class product_product(osv.osv):
data_obj = self.pool.get('ir.model.data')
cat_id = data_obj._get_id(cr, uid, 'hr_expense', 'cat_expense')
categ_id = data_obj.browse(cr, uid, cat_id).res_id
res = {'value' : {'type':'service','procure_method':'make_to_stock','supply_method':'buy','purchase_ok':True,'sale_ok' :False,'categ_id':categ_id }}
res = {'value' : {'type':'service','sale_ok' :False,'categ_id':categ_id }}
return res
product_product()

View File

@ -196,10 +196,10 @@
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="purchase_ok" position="before">
<div name="options" position="inside">
<field name="hr_expense_ok" on_change="on_change_hr_expense_ok(hr_expense_ok)"/>
<label for="hr_expense_ok"/>
</field>
</div>
</field>
</record>

View File

@ -29,7 +29,7 @@
'sequence': 18,
'summary': 'Manufacturing Orders, Bill of Materials, Routing',
'images': ['images/bill_of_materials.jpeg', 'images/manufacturing_order.jpeg', 'images/planning_manufacturing_order.jpeg', 'images/production_analysis.jpeg', 'images/production_dashboard.jpeg','images/routings.jpeg','images/work_centers.jpeg'],
'depends': ['procurement', 'stock', 'resource', 'purchase', 'product','process'],
'depends': ['product','procurement', 'stock', 'resource', 'purchase','process'],
'description': """
Manage the Manufacturing process in OpenERP
===========================================

View File

@ -962,10 +962,10 @@
</data>
</field>
</record>
<record id="product.product_normal_form_supply_view" model="ir.ui.view">
<record id="product_product_normal_form_supply_view" model="ir.ui.view">
<field name="name">product.normal.form.mrp.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="inherit_id" ref="procurement.product_form_view_procurement_button"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='supply_method']" position="attributes">
<attribute name="invisible">False</attribute>
@ -976,7 +976,7 @@
order</b> using the bill of materials assigned to this product.
The delivery order will be ready once the production is done.
</p>
</group>
</group>
</field>
</record>
@ -1051,7 +1051,5 @@
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -1300,7 +1300,7 @@ class product_product(osv.osv):
'expense_pdt': fields.boolean('Point of Sale Cash Out', help="This is a product you can use to take cash from a statement for the point of sale backend, exemple: money lost, transfer to bank, etc."),
'pos_categ_id': fields.many2one('pos.category','Point of Sale Category',
help="If you want to sell this product through the point of sale, select the category it belongs to."),
'to_weight' : fields.boolean('To Weight', help="This category contains products that should be weighted, mainly used for the self-checkout interface"),
'to_weight' : fields.boolean('To Weigh', help="This category contains products that should to be weighed, mainly used for the self-checkout interface"),
}
def _default_pos_categ_id(self, cr, uid, context=None):

View File

@ -57,7 +57,7 @@ depending on the product's configuration.
'company_view.xml',
'board_mrp_procurement_view.xml',
],
'demo': ['stock_orderpoint.xml'],
'demo': ['stock_orderpoint.xml','procurement_demo.xml'],
'test': ['test/procurement.yml'],
'installable': True,
'auto_install': True,

View File

@ -102,7 +102,6 @@ class procurement_order(osv.osv):
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procurement Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
readonly=True, required=True, help="If you encode manually a Procurement, you probably want to use" \
" a make to order method."),
'note': fields.text('Note'),
'message': fields.char('Latest error', size=124, help="Exception occurred while computing procurement orders."),
'state': fields.selection([
@ -630,7 +629,18 @@ class stock_warehouse_orderpoint(osv.osv):
})
return super(stock_warehouse_orderpoint, self).copy(cr, uid, id, default, context=context)
stock_warehouse_orderpoint()
class product_template(osv.osv):
_inherit="product.template"
_columns = {
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way procurements are processed. Consumable are product where you don't manage stock, a service is a non-material product provided by a company or an individual."),
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procurement Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."),
'supply_method': fields.selection([('produce','Manufacture'),('buy','Buy')], 'Supply Method', required=True, help="Produce will generate production order or tasks, according to the product type. Buy will trigger purchase orders when requested."),
}
_defaults = {
'procure_method': 'make_to_stock',
'supply_method': 'buy',
}
class product_product(osv.osv):
_inherit="product.product"
@ -638,6 +648,6 @@ class product_product(osv.osv):
'orderpoint_ids': fields.one2many('stock.warehouse.orderpoint', 'product_id', 'Minimum Stock Rules'),
}
product_product()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="product.product_product_1" model="product.product">
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_2" model="product.product">
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_3" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_4" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_5" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_6" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_7" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_8" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_9" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
</record>
<record id="product.product_product_10" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_11" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_12" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
</record>
<record id="product.product_product_13" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_14" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_15" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_16" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_17" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_18" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_19" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_20" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_21" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_22" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_23" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_24" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_25" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_26" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_27" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_28" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_29" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_30" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_31" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_32" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_33" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
</record>
<record id="product.product_product_34" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_35" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_36" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_37" model="product.product">
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
</record>
<record id="product.product_product_38" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_39" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_44" model="product.product">
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
</record>
<record id="product.product_product_45" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_46" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_47" model="product.product">
<field name="type">product</field>
</record>
<record id="product.product_product_48" model="product.product">
<field name="type">product</field>
</record>
</data>
</openerp>

View File

@ -294,6 +294,29 @@
<field name="res_model">stock.warehouse.orderpoint</field>
</record>
<record model="ir.ui.view" id="product_template_form_view_procurement">
<field name="name">product.template.procurement</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='type']" position="after">
<field name="procure_method"/>
<field name="supply_method"/>
</xpath>
</field>
</record>
<record id="product_search_form_view_procurment" model="ir.ui.view">
<field name="name">product.search.procurment.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<filter name="consumable" position="before">
<filter string="Products" icon="terp-accessories-archiver" domain="[('type','=','product')]" help="Stockable products"/>
</filter>
</field>
</record>
<record model="ir.ui.view" id="product_form_view_procurement_button">
<field name="name">product.product.procurement</field>
<field name="model">product.product</field>
@ -303,6 +326,33 @@
<button string="Request Procurement" name="%(act_make_procurement)d" type="action"/>
<button string="Orderpoints" name="%(product_open_orderpoint)d" type="action"/>
</xpath>
<xpath expr="//field[@name='cost_method']" position="before">
<field name="procure_method" groups="base.group_user"/>
<field name="supply_method" groups="base.group_user"/>
</xpath>
<xpath expr="//group[@name='general']" position="after" >
<group name="procurement_help" class="oe_grey" col="1" groups="base.group_user">
<p attrs="{'invisible': [('type','&lt;&gt;','service'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this service, nothing special will be trigered
to deliver the customer, as you set the procurement method as
'Make to Stock'.
</p>
<p attrs="{'invisible': [('type','&lt;&gt;','product'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this product, OpenERP will <b>use the available
inventory</b> for the delivery order.
<br/><br/>
If there are not enough quantities available, the delivery order
will wait for new products. To fulfill the inventory, you should
create others rules like orderpoints.
</p>
<p attrs="{'invisible': [('type','&lt;&gt;','consu'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this product, a delivery order will be created.
OpenERP will consider that the <b>required quantities are always
available</b> as it's a consumable (as a result of this, the quantity
on hand may become negative).
</p>
</group>
</xpath>
</field>
</record>

View File

@ -280,11 +280,8 @@ class product_template(osv.osv):
'description': fields.text('Description',translate=True),
'description_purchase': fields.text('Purchase Description',translate=True),
'description_sale': fields.text('Sale Description',translate=True),
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way procurements are processed. Consumable are product where you don't manage stock."),
'supply_method': fields.selection([('produce','Manufacture'),('buy','Buy')], 'Supply Method', required=True, help="Produce will generate production order or tasks, according to the product type. Buy will trigger purchase orders when requested."),
'sale_delay': fields.float('Customer Lead Time', help="This is the average delay in days between the confirmation of the customer order and the delivery of the finished products. It's the time you promise to your customers."),
'type': fields.selection([('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Consumable are product where you don't manage stock, a service is a non-material product provided by a company or an individual."),
'produce_delay': fields.float('Manufacturing Lead Time', help="Average delay in days to produce this product. This is only for the production order and, if it is a multi-level bill of material, it's only for the level of this product. Different lead times will be summed for all levels and purchase orders."),
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procurement Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."),
'rental': fields.boolean('Can be Rent'),
'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]" ,help="Select category for the current product"),
'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Product Price'), help="Base price for computing the customer price. Sometimes called the catalog price."),
@ -296,7 +293,6 @@ class product_template(osv.osv):
help="Standard Price: the cost price is fixed and recomputed periodically (usually at the end of the year), Average Price: the cost price is recomputed at each reception of products."),
'warranty': fields.float('Warranty'),
'sale_ok': fields.boolean('Can be Sold', help="Determines if the product can be visible in the list of product within a selection from a sale order line."),
'purchase_ok': fields.boolean('Can be Purchased', help="Determine if the product is visible in the list of products within a selection from a purchase order line."),
'state': fields.selection([('',''),
('draft', 'In Development'),
('sellable','Normal'),
@ -309,11 +305,8 @@ class product_template(osv.osv):
'uos_coeff': fields.float('Unit of Measure -> UOS Coeff', digits_compute= dp.get_precision('Product UoS'),
help='Coefficient to convert Unit of Measure to UOS\n'
' uos = uom * coeff'),
'mes_type': fields.selection((('fixed', 'Fixed'), ('variable', 'Variable')), 'Measure Type', required=True),
'mes_type': fields.selection((('fixed', 'Fixed'), ('variable', 'Variable')), 'Measure Type'),
'seller_ids': fields.one2many('product.supplierinfo', 'product_id', 'Partners'),
'loc_rack': fields.char('Rack', size=16),
'loc_row': fields.char('Row', size=16),
'loc_case': fields.char('Case', size=16),
'company_id': fields.many2one('res.company', 'Company', select=1),
}
@ -351,21 +344,17 @@ class product_template(osv.osv):
_defaults = {
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'product.template', context=c),
'list_price': lambda *a: 1,
'cost_method': lambda *a: 'standard',
'supply_method': lambda *a: 'buy',
'standard_price': lambda *a: 0.0,
'sale_ok': lambda *a: 1,
'sale_delay': lambda *a: 7,
'produce_delay': lambda *a: 1,
'purchase_ok': lambda *a: 1,
'procure_method': lambda *a: 'make_to_stock',
'list_price': 1,
'cost_method': 'standard',
'standard_price': 0.0,
'sale_ok': 1,
'produce_delay': 1,
'uom_id': _get_uom_id,
'uom_po_id': _get_uom_id,
'uos_coeff' : lambda *a: 1.0,
'mes_type' : lambda *a: 'fixed',
'uos_coeff' : 1.0,
'mes_type' : 'fixed',
'categ_id' : _default_category,
'type' : lambda *a: 'consu',
'type' : 'consu',
}
def _check_uom(self, cursor, user, ids, context=None):

View File

@ -197,7 +197,6 @@ parameter) will see those record just disappear.
<field name="name">Service</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="type">service</field>
<field eval="False" name="purchase_ok"/>
</record>
</data>
</openerp>

View File

@ -70,8 +70,6 @@
<field name="standard_price">20.5</field>
<field name="list_price">30.75</field>
<field name="type">service</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="uom_id" ref="product_uom_hour"/>
<field name="uom_po_id" ref="product_uom_hour"/>
<field name="description">This type of service include basic monitoring of products.</field>
@ -84,8 +82,6 @@
<field name="standard_price">25.5</field>
<field name="list_price">38.25</field>
<field name="type">service</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="uom_id" ref="product_uom_hour"/>
<field name="uom_po_id" ref="product_uom_hour"/>
<field name="description">This type of service include assistance for security questions, system configuration requirements, implementation or special needs.</field>
@ -97,9 +93,7 @@
<field name="categ_id" ref="product_category_4"/>
<field name="list_price">450.0</field>
<field name="standard_price">300.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="sale_delay">4.0</field>
@ -115,9 +109,8 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_4"/>
<field name="standard_price">500.0</field>
<field name="list_price">750.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="sale_delay">4.0</field>
@ -133,9 +126,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_4"/>
<field name="standard_price">600.0</field>
<field name="list_price">900.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="sale_delay">7.0</field>
@ -148,7 +139,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">800.0</field>
<field name="list_price">1200.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -158,7 +149,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">880.0</field>
<field name="list_price">1350.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -168,7 +159,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">10.0</field>
<field name="list_price">13.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -178,8 +169,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">10.0</field>
<field name="list_price">13.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -189,7 +179,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">12.50</field>
<field name="list_price">14</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -199,7 +189,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">14</field>
<field name="list_price">16.50</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -209,8 +199,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">18</field>
<field name="list_price">12.50</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -220,7 +209,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">78.0</field>
<field name="list_price">85.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -230,7 +219,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">87.0</field>
<field name="list_price">95.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -240,7 +229,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">80.0</field>
<field name="list_price">85.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -250,9 +239,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">20.0</field>
<field name="list_price">25.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -262,7 +249,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">860.0</field>
<field name="list_price">975.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -272,9 +259,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">1020.0</field>
<field name="list_price">1150.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -284,9 +269,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">1100.0</field>
<field name="list_price">1250.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">On demand hard-disk having capacity based on requirement.</field>
@ -297,7 +280,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">1700.0</field>
<field name="list_price">1950.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -307,7 +290,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">1790.0</field>
<field name="list_price">2000.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -317,7 +300,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">2010.0</field>
<field name="list_price">2100.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -327,7 +310,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">1910.0</field>
<field name="list_price">1980.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -337,7 +320,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_8"/>
<field name="standard_price">876.0</field>
<field name="list_price">885.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -347,7 +330,7 @@ HDD SH-1</field>
<field name="categ_id" ref="product_category_4"/>
<field name="standard_price">2870.0</field>
<field name="list_price">2950.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">17" Monitor
@ -361,7 +344,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_4"/>
<field name="standard_price">3000.0</field>
<field name="list_price">3245.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">17" Monitor
@ -375,9 +358,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_4"/>
<field name="standard_price">3300.0</field>
<field name="list_price">3645.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">Custom Laptop based on customer's requirement.</field>
@ -388,7 +369,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">390.0</field>
<field name="list_price">405.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -399,7 +380,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">90.0</field>
<field name="list_price">100.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -410,7 +391,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">126.0</field>
<field name="list_price">145.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -420,7 +401,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">134.0</field>
<field name="list_price">150.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">.</field>
@ -431,7 +412,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">57.0</field>
<field name="list_price">62.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">Hands free headset for laptop PC with in-line microphone and headphone plug.</field>
@ -442,8 +423,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">60.0</field>
<field name="list_price">65.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">Headset for laptop PC with USB connector.</field>
@ -455,7 +435,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">38.0</field>
<field name="list_price">45.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -466,7 +446,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">18.40</field>
<field name="list_price">20.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_dozen"/>
<field name="uom_po_id" ref="product_uom_dozen"/>
</record>
@ -477,7 +457,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_7"/>
<field name="standard_price">21.60</field>
<field name="list_price">24.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_dozen"/>
<field name="uom_po_id" ref="product_uom_dozen"/>
</record>
@ -488,8 +468,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">4258.0</field>
<field name="list_price">4410.0</field>
<field name="type">product</field>
<field name="procure_method">make_to_order</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description">All in one hi-speed printer with fax and scanner.</field>
@ -501,7 +480,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">60.0</field>
<field name="list_price">65.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -512,7 +491,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">66.0</field>
<field name="list_price">70.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -569,8 +548,6 @@ QWERTY keyboard</field>
<field name="standard_price">155.0</field>
<field name="list_price">173.0</field>
<field name="type">consu</field>
<field name="procure_method">make_to_order</field>
<field name="supply_method">produce</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="description_sale">Full featured image editing software.</field>
@ -582,7 +559,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">55.0</field>
<field name="list_price">60.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -593,7 +570,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">35.0</field>
<field name="list_price">40.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -604,7 +581,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">55.0</field>
<field name="list_price">70.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
@ -615,7 +592,7 @@ QWERTY keyboard</field>
<field name="categ_id" ref="product_category_6"/>
<field name="standard_price">13.0</field>
<field name="list_price">18.0</field>
<field name="type">product</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>

View File

@ -10,11 +10,9 @@
<search string="Product">
<field name="name" string="Product" filter_domain="['|',('name','ilike',self),('default_code','ilike',self)]"/>
<filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
<filter string="Products" icon="terp-accessories-archiver" domain="['|',('type','=','product'),('type','=','consu')]" help="Both stockable and consumable products"/>
<filter string="Consumable" name="consumable" icon="terp-accessories-archiver" domain="[('type','=','consu')]" help="Consumable products"/>
<separator/>
<filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
<filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
<filter name="filter_to_purchase" string="Can be Purchased" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
<field name="categ_id" operator="child_of"/>
<group expand="0" string="Context...">
<field name="pricelist_id" context="{'pricelist': self}" groups="product.group_sale_pricelist"/>
@ -60,7 +58,7 @@
<field name="arch" type="xml">
<form string="Product" version="7.0">
<sheet>
<field name="image_medium" widget="image" class="oe_avatar oe_right"/>
<field name="image_medium" widget="image" class="oe_avatar oe_left"/>
<div class="oe_title">
<div class="oe_edit_only">
<label for="name" string="Product Name"/>
@ -73,8 +71,6 @@
<div name="options" groups="base.group_user">
<field name="sale_ok"/>
<label for="sale_ok"/>
<field name="purchase_ok"/>
<label for="purchase_ok"/>
</div>
</div>
<div class="oe_right oe_button_box" name="buttons">
@ -104,34 +100,11 @@
</page>
<page string="Procurements" groups="base.group_user">
<group name="procurement">
<group>
<field name="procure_method" groups="base.group_user"/>
<field name="supply_method" groups="base.group_user" invisible="1"/>
<group name="general">
<field name="cost_method" groups="product.group_costing_method"/>
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
</group>
<group name="procurement_help" class="oe_grey" col="1" groups="base.group_user">
<p attrs="{'invisible': [('type','&lt;&gt;','service'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this service, nothing special will be trigered
to deliver the customer, as you set the procurement method as
'Make to Stock'.
</p>
<p attrs="{'invisible': [('type','&lt;&gt;','product'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this product, OpenERP will <b>use the available
inventory</b> for the delivery order.
<br/><br/>
If there are not enough quantities available, the delivery order
will wait for new products. To fulfill the inventory, you should
create others rules like orderpoints.
</p>
<p attrs="{'invisible': [('type','&lt;&gt;','consu'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this product, a delivery order will be created.
OpenERP will consider that the <b>required quantities are always
available</b> as it's a consumable (as a result of this, the quantity
on hand may become negative).
</p>
</group>
<group groups="product.group_uom">
<group name="procurement_uom" groups="product.group_uom">
<field name="uom_po_id"/>
</group>
</group>
@ -144,13 +117,7 @@
<field name="state"/>
<field name="product_manager"/>
</group>
<group name="store" string="Storage Localisation">
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="loc_rack" attrs="{'invisible':[('type','=','service')]}"/>
<field name="loc_row" attrs="{'invisible':[('type','=','service')]}"/>
<field name="loc_case" attrs="{'invisible':[('type','=','service')]}"/>
</group>
<group groups="product.group_stock_packaging" string="Weights">
<group name="Weights" groups="product.group_stock_packaging" string="Weights">
<field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
<field name="weight" attrs="{'readonly':[('type','=','service')]}"/>
<field name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
@ -160,10 +127,6 @@
<page string="Sales" attrs="{'readonly':[('sale_ok','=',0)]}">
<group name="sale">
<group string="Sale Conditions">
<label for="sale_delay"/>
<div>
<field name="sale_delay" class="oe_inline"/> days
</div>
<label for="warranty"/>
<div>
<field name="warranty" class="oe_inline"/> months
@ -715,12 +678,9 @@
<group>
<group string="Product Type">
<field name="sale_ok"/>
<field name="purchase_ok"/>
</group>
<group string="Procurement">
<field name="type"/>
<field name="procure_method"/>
<field name="supply_method"/>
</group>
<group string="Base Prices">
@ -733,7 +693,7 @@
<field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
<field digits="(14, 3)" name="weight" attrs="{'readonly':[('type','=','service')]}"/>
<field digits="(14, 3)" name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
</group>
</group>
<group name="status" string="Status">
<field name="categ_id"/>
@ -756,18 +716,12 @@
<page string="Procurement &amp; Locations">
<group>
<group name="delay" string="Delays">
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
<label for="produce_delay"/>
<div>
<field name="produce_delay" class="oe_inline"/> days
</div>
<field name="warranty"/>
</group>
<group name="store" string="Storage Localisation">
<field name="loc_rack"/>
<field name="loc_row"/>
<field name="loc_case"/>
</group>
</group>
</page>

View File

@ -19,9 +19,9 @@
<record model="ir.ui.view" id="view_product_form_expiry">
<field name="name">product.normal.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view" />
<field name="inherit_id" ref="stock.view_normal_procurement_locations_form" />
<field name="arch" type="xml">
<group name="inventory">
<group name="Weights" position="after">
<group string="Dates">
<field name="life_time" />
<field name="use_time" />

View File

@ -31,10 +31,10 @@
</field>
</field>
</record>
<record id="product.product_normal_form_supply_view" model="ir.ui.view">
<record id="product_product_normal_form_supply_view" model="ir.ui.view">
<field name="name">product.normal.form.project_mrp.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="inherit_id" ref="procurement.product_form_view_procurement_button"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='supply_method']" position="attributes">
<attribute name="invisible">False</attribute>

View File

@ -1106,4 +1106,16 @@ class mail_mail(osv.osv):
mail_mail()
class product_template(osv.osv):
_name = 'product.template'
_inherit = 'product.template'
_columns = {
'purchase_ok': fields.boolean('Can be Purchased', help="Determine if the product is visible in the list of products within a selection from a purchase order line."),
}
_defaults = {
'purchase_ok': 1,
}
product_template()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -14,6 +14,9 @@
<field eval="80.0" name="schedule_range"/>
</record>
<record id="product.product_product_consultant" model="product.product">
<field eval="False" name="purchase_ok"/>
</record>
</data>
</openerp>

View File

@ -590,10 +590,22 @@
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<div name="options" position="inside">
<field name="purchase_ok"/>
<label for="purchase_ok"/>
</div>
<group name="procurement" position="after">
<separator string="Suppliers"/>
<field name="seller_ids" context="{'uom_id': uom_id}"/>
</group>
</field>
</record>
<record id="product_product_normal_form_procurement_help_view" model="ir.ui.view">
<field name="name">product.normal.form.procurement.help.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="procurement.product_form_view_procurement_button"/>
<field name="arch" type="xml">
<group name="procurement_help" position="inside">
<p attrs="{'invisible': [('type','&lt;&gt;','service'),('procure_method','&lt;&gt;','make_to_order'),('supply_method','&lt;&gt;','buy')]}">
When you sell this service to a customer, <b>a draft purchase order</b>
@ -610,5 +622,45 @@
</group>
</field>
</record>
<record id="product_search_form_view_purchase" model="ir.ui.view">
<field name="name">product.search.purchase.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<filter name="filter_to_sell" position="before">
<filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
</filter>
<filter name="filter_to_sell" position="after">
<filter name="filter_to_purchase" string="Can be Purchased" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
</filter>
</field>
</record>
<record id="view_template_purchase_ok_form" model="ir.ui.view">
<field name="name">product.template.purchase.ok.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<field name="sale_ok" position="after">
<field name="purchase_ok"/>
</field>
</field>
</record>
<record id="view_product_account_purchase_ok_form" model="ir.ui.view">
<field name="name">product.account.purchase.ok.form.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="account.product_normal_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='property_account_expense']" position="replace" >
<field name="property_account_expense" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" />
</xpath>
<xpath expr="//field[@name='supplier_taxes_id']" position="replace" >
<field name="supplier_taxes_id" colspan="2" widget="many2many_tags" attrs="{'readonly':[('purchase_ok','=',0)]}"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -180,7 +180,7 @@
<record model="ir.ui.view" id="product_normal_form_view_inherit">
<field name="name">product.form.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="inherit_id" ref="procurement.product_form_view_procurement_button"/>
<field name="arch" type="xml">
<field name="procure_method" position="before">
<field name="purchase_requisition"/>

View File

@ -513,8 +513,15 @@ class product_template(osv.osv):
string='Stock Output Account', view_load=True,
help="When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless "
"there is a specific valuation account set on the destination location. When not set on the product, the one from the product category is used."),
'sale_delay': fields.float('Customer Lead Time', help="This is the average delay in days between the confirmation of the customer order and the delivery of the finished products. It's the time you promise to your customers."),
'loc_rack': fields.char('Rack', size=16),
'loc_row': fields.char('Row', size=16),
'loc_case': fields.char('Case', size=16),
}
_defaults = {
'sale_delay': 7,
}
product_template()
class product_category(osv.osv):

View File

@ -35,6 +35,16 @@
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<group name="delay" position="inside">
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',False)]}"/>
</group>
<group name="delay" position="after">
<group name="store" string="Storage Localisation">
<field name="loc_rack"/>
<field name="loc_row"/>
<field name="loc_case"/>
</group>
</group>
<page position="after" string="Information">
<page string="Properties">
<group string="Counter-Part Locations Properties" groups="stock.group_locations">
@ -56,7 +66,7 @@
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<group name="procurement_help" position="after">
<group name="procurement_uom" position="before">
<group name="delay" string="Delays">
<label for="produce_delay" attrs="{'invisible':[('type','=','service')]}"/>
<div attrs="{'invisible':[('type','=','service')]}">
@ -65,12 +75,45 @@
<field name="active"/>
</group>
</group>
<group name="inventory" position="inside">
<group name="store" groups="stock.group_locations" string="Counter-Part Locations Properties">
<field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
<field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
<field name="property_stock_inventory" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
<xpath expr="//group[@string='Sale Conditions']" position="inside">
<label for="sale_delay"/>
<div>
<field name="sale_delay" class="oe_inline"/> days
</div>
</xpath>
<group name="status" position="before" version="7.0">
<group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
<label for="qty_available"/>
<div>
<field name="qty_available" class="oe_inline"/>
<button name="%(action_view_change_product_quantity)d" string="update"
type="action"
class="oe_link"/>
</div>
<field name="incoming_qty" class="oe_inline"/>
<field name="outgoing_qty" class="oe_inline"/>
<field name="virtual_available" class="oe_inline"/>
</group>
<group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
<field name="track_production" groups="stock.group_production_lot"/>
<field name="track_incoming" groups="stock.group_tracking_lot"/>
<field name="track_outgoing" groups="stock.group_tracking_lot"/>
</group>
</group>
<group name="status" position="after" version="7.0">
<group name="store" string="Storage Localisation">
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="loc_rack" attrs="{'invisible':[('type','=','service')]}"/>
<field name="loc_row" attrs="{'invisible':[('type','=','service')]}"/>
<field name="loc_case" attrs="{'invisible':[('type','=','service')]}"/>
</group>
</group>
<group name="Weights" position="after">
<group name="store" groups="stock.group_locations" string="Counter-Part Locations Properties">
<field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
<field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
<field name="property_stock_inventory" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
</group>
</group>
</field>
</record>
@ -116,32 +159,6 @@
</field>
</record>
<record id="view_normal_stock_property_form" model="ir.ui.view">
<field name="name">product.normal.stock.form.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<group name="status" position="before" version="7.0">
<group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
<label for="qty_available"/>
<div>
<field name="qty_available" class="oe_inline"/>
<button name="%(action_view_change_product_quantity)d" string="update"
type="action"
class="oe_link"/>
</div>
<field name="incoming_qty" class="oe_inline"/>
<field name="outgoing_qty" class="oe_inline"/>
<field name="virtual_available" class="oe_inline"/>
</group>
<group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
<field name="track_production" groups="stock.group_production_lot"/>
<field name="track_incoming" groups="stock.group_tracking_lot"/>
<field name="track_outgoing" groups="stock.group_tracking_lot"/>
</group>
</group>
</field>
</record>
<record id="action_receive_move" model="ir.actions.act_window">
<field name="name">Receptions</field>

View File

@ -31,7 +31,6 @@
name: Ice Cream
type: product
categ_id: product.product_category_1
supply_method: buy
list_price: 100.0
standard_price: 70.0
uom_id: product.product_uom_kgm

View File

@ -5,7 +5,7 @@
<record model="ir.ui.view" id="view_product_form_auto_pick">
<field name="name">product.normal.auto_pick.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view" />
<field name="inherit_id" ref="procurement.product_form_view_procurement_button"/>
<field name="arch" type="xml">
<field name="product_manager" position="after">
<field name="auto_pick" />

View File

@ -41,7 +41,7 @@
<record id="product_warning_form_view" model="ir.ui.view">
<field name="name">product.warning.form.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="inherit_id" ref="procurement.product_template_form_view_procurement"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Warnings">