summaryrefslogtreecommitdiff
path: root/addons/procurement
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@openerp.com>2012-10-17 09:31:46 +0200
committerChristophe Matthieu <chm@openerp.com>2012-10-17 09:31:46 +0200
commit23e20e95d41d5435cf3e5bfd136a6f52efa8a80f (patch)
tree1969e768754adbcb6976a8b32c3eb5d35e778ac4 /addons/procurement
parente8bd522f6be7fdeb1b7c916838193d7516833121 (diff)
parent8a38ee944e02d6cd6cb18b87b962b67e510906a9 (diff)
[MERGE] from trunk
bzr revid: chm@openerp.com-20121017073146-9m5s2hffeekmj068
Diffstat (limited to 'addons/procurement')
-rw-r--r--addons/procurement/__openerp__.py2
-rw-r--r--addons/procurement/procurement.py16
-rw-r--r--addons/procurement/procurement_demo.xml204
-rw-r--r--addons/procurement/procurement_view.xml50
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','&lt;&gt;','service'),('procure_method','&lt;&gt;','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','&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>