diff options
| author | Christophe Matthieu <chm@openerp.com> | 2012-10-17 09:31:46 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@openerp.com> | 2012-10-17 09:31:46 +0200 |
| commit | 23e20e95d41d5435cf3e5bfd136a6f52efa8a80f (patch) | |
| tree | 1969e768754adbcb6976a8b32c3eb5d35e778ac4 /addons/procurement | |
| parent | e8bd522f6be7fdeb1b7c916838193d7516833121 (diff) | |
| parent | 8a38ee944e02d6cd6cb18b87b962b67e510906a9 (diff) | |
[MERGE] from trunk
bzr revid: chm@openerp.com-20121017073146-9m5s2hffeekmj068
Diffstat (limited to 'addons/procurement')
| -rw-r--r-- | addons/procurement/__openerp__.py | 2 | ||||
| -rw-r--r-- | addons/procurement/procurement.py | 16 | ||||
| -rw-r--r-- | addons/procurement/procurement_demo.xml | 204 | ||||
| -rw-r--r-- | addons/procurement/procurement_view.xml | 50 |
4 files changed, 268 insertions, 4 deletions
diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index a1aed1dfba8..48569fa76c4 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -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, diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index c6a1c0c3e02..b21cef30773 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -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: diff --git a/addons/procurement/procurement_demo.xml b/addons/procurement/procurement_demo.xml new file mode 100644 index 00000000000..608eb56f3ba --- /dev/null +++ b/addons/procurement/procurement_demo.xml @@ -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> +
\ No newline at end of file diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml index bf73b383216..973a09477fc 100644 --- a/addons/procurement/procurement_view.xml +++ b/addons/procurement/procurement_view.xml @@ -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','<>','service'),('procure_method','<>','make_to_stock')]}"> + When you sell this service, nothing special will be triggered + to deliver the customer, as you set the procurement method as + 'Make to Stock'. + </p> + <p attrs="{'invisible': ['|','|',('type','<>','product'),('procure_method','<>','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','<>','consu'),('procure_method','<>','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> |
