[merge]
[odoo/odoo.git] / addons / purchase / purchase_workflow.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <record id="purchase_order" model="workflow">
6             <field name="name">Purchase Order Basic Workflow</field>
7             <field name="osv">purchase.order</field>
8             <field name="on_create">True</field>
9         </record>
10
11         <record id="act_draft" model="workflow.activity">
12             <field name="wkf_id" ref="purchase_order"/>
13             <field name="flow_start">True</field>
14             <field name="name">draft</field>
15         </record>
16         <record id="act_confirmed" model="workflow.activity">
17             <field name="wkf_id" ref="purchase_order"/>
18             <field name="name">confirmed</field>
19             <field name="kind">function</field>
20             <field name="action">wkf_confirm_order()</field>
21         </record>
22         <record id="act_cancel" model="workflow.activity">
23             <field name="wkf_id" ref="purchase_order"/>
24             <field name="name">cancel</field>
25             <field name="kind">function</field>
26             <field name="flow_stop">True</field>
27             <field name="action">write({'state':'cancel'})</field>
28         </record>
29         <record id="act_except_invoice" model="workflow.activity">
30             <field name="wkf_id" ref="purchase_order"/>
31             <field name="name">except_invoice</field>
32             <field name="kind">function</field>
33             <field name="action">write({'state':'except_invoice'})</field>
34         </record>
35         <record id="act_except_picking" model="workflow.activity">
36             <field name="wkf_id" ref="purchase_order"/>
37             <field name="name">except_picking</field>
38             <field name="kind">function</field>
39             <field name="action">write({'state':'except_picking'})</field>
40         </record>
41         <record id="act_router" model="workflow.activity">
42             <field name="wkf_id" ref="purchase_order"/>
43             <field name="name">router</field>
44             <field name="split_mode">OR</field>
45             <field name="kind">function</field>
46             <field name="action">wkf_approve_order()</field>
47         </record>
48         <record id="act_invoice" model="workflow.activity">
49             <field name="wkf_id" ref="purchase_order"/>
50             <field name="name">invoice</field>
51             <field name="kind">subflow</field>
52             <field name="subflow_id" search="[('osv','=','account.invoice')]" type="int"/>
53             <field name="action">action_invoice_create()</field>
54         </record>
55         <record id="act_invoice_done" model="workflow.activity">
56             <field name="wkf_id" ref="purchase_order"/>
57             <field name="name">invoice_done</field>
58             <field name="action">write({'state':'approved'})</field>
59             <field name="kind">function</field>
60         </record>
61         <record id="act_invoice_end" model="workflow.activity">
62             <field name="wkf_id" ref="purchase_order"/>
63             <field name="name">invoice_end</field>
64         </record>
65         <record id="act_picking" model="workflow.activity">
66             <field name="wkf_id" ref="purchase_order"/>
67             <field name="name">picking</field>
68             <field name="kind">subflow</field>
69             <field name="subflow_id" search="[('osv','=','stock.picking')]"/>
70             <field name="action">action_picking_create()</field>
71         </record>
72         <record id="act_picking_done" model="workflow.activity">
73             <field name="wkf_id" ref="purchase_order"/>
74             <field name="name">picking_done</field>
75             <field name="action">write({'shipped':1,'state':'approved'})</field>
76             <field name="kind">function</field>
77             <field name="signal_send">subflow.delivery_done</field>
78         </record>
79         <record id="act_done" model="workflow.activity">
80             <field name="wkf_id" ref="purchase_order"/>
81             <field name="name">done</field>
82             <field name="action">write({'state':'done'})</field>
83             <field name="kind">function</field>
84             <field name="flow_stop">True</field>
85             <field name="join_mode">AND</field>
86         </record>
87
88         <record id="trans_draft_confirmed" model="workflow.transition">
89             <field name="act_from" ref="act_draft"/>
90             <field name="act_to" ref="act_confirmed"/>
91             <field name="signal">purchase_confirm</field>
92         </record>
93         <record id="trans_confirmed_cancel" model="workflow.transition">
94             <field name="act_from" ref="act_confirmed"/>
95             <field name="act_to" ref="act_cancel"/>
96             <field name="signal">purchase_cancel</field>
97         </record>
98         <record id="trans_draft_cancel" model="workflow.transition">
99             <field name="act_from" ref="act_draft"/>
100             <field name="act_to" ref="act_cancel"/>
101             <field name="signal">purchase_cancel</field>
102         </record>
103         <record id="trans_confirmed_router" model="workflow.transition">
104             <field name="act_from" ref="act_confirmed"/>
105             <field name="act_to" ref="act_router"/>
106         </record>
107         <record id="trans_router_picking" model="workflow.transition">
108             <field name="act_from" ref="act_router"/>
109             <field name="act_to" ref="act_picking"/>
110             <field name="condition">has_stockable_product()</field>
111         </record>
112         <record id="trans_router_picking_done" model="workflow.transition">
113             <field name="act_from" ref="act_router"/>
114             <field name="act_to" ref="act_picking_done"/>
115             <field name="condition">not has_stockable_product()</field>
116         </record>
117         <record id="trans_router_invoice" model="workflow.transition">
118             <field name="act_from" ref="act_router"/>
119             <field name="act_to" ref="act_invoice"/>
120             <field name="condition">invoice_method=='order'</field>
121         </record>
122         <record id="trans_router_invoice_no_order" model="workflow.transition">
123             <field name="act_from" ref="act_router"/>
124             <field name="act_to" ref="act_invoice_end"/>
125             <field name="condition">invoice_method&lt;&gt;'order'</field>
126         </record>
127         <record id="trans_except_picking_picking_done" model="workflow.transition">
128             <field name="act_from" ref="act_except_picking"/>
129             <field name="act_to" ref="act_picking_done"/>
130             <field name="signal">picking_ok</field>
131         </record>
132         <record id="trans_except_invoice_invoice_done" model="workflow.transition">
133             <field name="act_from" ref="act_except_invoice"/>
134             <field name="act_to" ref="act_invoice_done"/>
135             <field name="signal">invoice_ok</field>
136         </record>
137         <record id="trans_except_picking" model="workflow.transition">
138             <field name="act_from" ref="act_except_picking"/>
139             <field name="act_to" ref="act_cancel"/>
140             <field name="signal">cancel</field>
141         </record>
142         <record id="trans_except_invoice" model="workflow.transition">
143             <field name="act_from" ref="act_except_invoice"/>
144             <field name="act_to" ref="act_cancel"/>
145             <field name="signal">cancel</field>
146         </record>
147         <record id="trans_picking_except_picking" model="workflow.transition">
148             <field name="act_from" ref="act_picking"/>
149             <field name="act_to" ref="act_except_picking"/>
150             <field name="signal">subflow.cancel</field>
151         </record>
152         <record id="trans_invoice_except_invoice" model="workflow.transition">
153             <field name="act_from" ref="act_invoice"/>
154             <field name="act_to" ref="act_except_invoice"/>
155             <field name="signal">subflow.cancel</field>
156         </record>
157         <record id="trans_picking_picking_done" model="workflow.transition">
158             <field name="act_from" ref="act_picking"/>
159             <field name="act_to" ref="act_picking_done"/>
160             <field name="signal">subflow.done</field>
161         </record>
162         <record id="trans_invoice_invoice_done" model="workflow.transition">
163             <field name="act_from" ref="act_invoice"/>
164             <field name="act_to" ref="act_invoice_done"/>
165             <field name="signal">subflow.paid</field>
166         </record>
167         <record id="trans_picking_done_done" model="workflow.transition">
168             <field name="act_from" ref="act_picking_done"/>
169             <field name="act_to" ref="act_done"/>
170         </record>
171         <record id="trans_invoice_done_done" model="workflow.transition">
172             <field name="act_from" ref="act_invoice_done"/>
173             <field name="act_to" ref="act_invoice_end"/>
174         </record>
175         <record id="trans_invoice_end_done" model="workflow.transition">
176             <field name="act_from" ref="act_invoice_end"/>
177             <field name="act_to" ref="act_done"/>
178         </record>
179         
180         <!-- Procurement -->
181                 <record id="act_buy" model="workflow.activity">
182             <field name="wkf_id" ref="procurement.wkf_procurement"/>
183             <field name="name">buy</field>
184             <field name="kind">subflow</field>
185             <field name="subflow_id" search="[('osv','=','purchase.order')]"/>
186             <field name="action">action_po_assign()</field>
187         </record>
188         
189         <record id="trans_confirm_mto_buy" model="workflow.transition">
190             <field name="act_from" ref="procurement.act_confirm_mto"/>
191             <field name="act_to" ref="act_buy"/>
192             <field name="condition">check_buy()</field>
193         </record>
194         
195         <record id="trans_buy_make_done" model="workflow.transition">
196             <field name="act_from" ref="act_buy"/>
197             <field name="act_to" ref="procurement.act_make_done"/>
198             <field name="signal">subflow.delivery_done</field>
199         </record>
200         
201         <record id="trans_buy_cancel" model="workflow.transition">
202             <field name="act_from" ref="act_buy"/>
203             <field name="act_to" ref="procurement.act_cancel"/>
204             <field name="signal">subflow.cancel</field>
205         </record>
206
207     </data>
208 </openerp>