[MERGE]: Merged with addons
[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_sent" model="workflow.activity">
17             <field name="wkf_id" ref="purchase_order"/>
18             <field name="name">sent</field>
19             <field name="kind">function</field>
20             <field name="action">write({'state':'sent'})</field>
21         </record>
22         <record id="act_confirmed" model="workflow.activity">
23             <field name="wkf_id" ref="purchase_order"/>
24             <field name="name">confirmed</field>
25             <field name="split_mode">OR</field>
26             <field name="kind">function</field>
27             <field name="action">wkf_confirm_order()</field>
28         </record>
29         <record id="act_cancel" model="workflow.activity">
30             <field name="wkf_id" ref="purchase_order"/>
31             <field name="name">cancel</field>
32             <field name="kind">function</field>
33             <field name="flow_stop">True</field>
34             <field name="action">write({'state':'cancel'})</field>
35         </record>
36         <record id="act_except_invoice" model="workflow.activity">
37             <field name="wkf_id" ref="purchase_order"/>
38             <field name="name">except_invoice</field>
39             <field name="kind">function</field>
40             <field name="action">write({'state':'except_invoice'})</field>
41         </record>
42         <record id="act_except_picking" model="workflow.activity">
43             <field name="wkf_id" ref="purchase_order"/>
44             <field name="name">except_picking</field>
45             <field name="kind">function</field>
46             <field name="action">write({'state':'except_picking'})</field>
47         </record>
48         <record id="act_router" model="workflow.activity">
49             <field name="wkf_id" ref="purchase_order"/>
50             <field name="name">router</field>
51             <field name="split_mode">OR</field>
52             <field name="kind">function</field>
53             <field name="join_mode">AND</field>
54             <field name="action">wkf_approve_order()</field>
55         </record>
56         <record id="act_invoice" model="workflow.activity">
57             <field name="wkf_id" ref="purchase_order"/>
58             <field name="name">invoice</field>
59             <field name="kind">subflow</field>
60             <field name="subflow_id" search="[('osv','=','account.invoice')]"/>
61             <field name="action">action_invoice_create()</field>
62         </record>
63         <record id="act_invoice_done" model="workflow.activity">
64             <field name="wkf_id" ref="purchase_order"/>
65             <field name="name">invoice_done</field>
66             <field name="action">invoice_done()</field>
67             <field name="kind">function</field>
68         </record>
69         <record id="act_invoice_end" model="workflow.activity">
70             <field name="wkf_id" ref="purchase_order"/>
71             <field name="name">invoice_end</field>
72         </record>
73         <record id="act_picking" model="workflow.activity">
74             <field name="wkf_id" ref="purchase_order"/>
75             <field name="name">picking</field>
76             <field name="kind">subflow</field>
77             <field name="subflow_id" search="[('osv','=','stock.picking')]"/>
78             <field name="action">action_picking_create()</field>
79         </record>
80         <record id="act_picking_done" model="workflow.activity">
81             <field name="wkf_id" ref="purchase_order"/>
82             <field name="name">picking_done</field>
83             <field name="action">picking_done()</field>
84             <field name="kind">function</field>
85             <field name="signal_send">subflow.delivery_done</field>
86         </record>
87         <record id="act_done" model="workflow.activity">
88             <field name="wkf_id" ref="purchase_order"/>
89             <field name="name">done</field>
90             <field name="action">write({'state':'done'})</field>
91             <field name="kind">function</field>
92             <field name="flow_stop">True</field>
93             <field name="join_mode">AND</field>
94         </record>
95
96         <record id="trans_draft_confirmed" model="workflow.transition">
97             <field name="act_from" ref="act_draft"/>
98             <field name="act_to" ref="act_confirmed"/>
99             <field name="signal">purchase_confirm</field>
100         </record>
101          <record id="trans_draft_sent" model="workflow.transition">
102             <field name="act_from" ref="act_draft"/>
103             <field name="act_to" ref="act_sent"/>
104             <field name="signal">send_rfq</field>
105         </record>
106         <record id="trans_sent_confirmed" model="workflow.transition">
107             <field name="act_from" ref="act_sent"/>
108             <field name="act_to" ref="act_confirmed"/>
109             <field name="signal">purchase_confirm</field>
110         </record>
111         <record id="trans_sent_cancel" model="workflow.transition">
112             <field name="act_from" ref="act_sent"/>
113             <field name="act_to" ref="act_cancel"/>
114             <field name="signal">purchase_cancel</field>
115         </record>
116         
117         <record id="trans_confirmed_cancel" model="workflow.transition">
118             <field name="act_from" ref="act_confirmed"/>
119             <field name="act_to" ref="act_cancel"/>
120             <field name="signal">purchase_cancel</field>
121         </record>
122         <record id="trans_draft_cancel" model="workflow.transition">
123             <field name="act_from" ref="act_draft"/>
124             <field name="act_to" ref="act_cancel"/>
125             <field name="signal">purchase_cancel</field>
126         </record>
127         <record id="trans_confirmed_router" model="workflow.transition">
128             <field name="act_from" ref="act_confirmed"/>
129             <field name="act_to" ref="act_router"/>
130             <!-- <field name="signal">purchase_approve</field> removed from simplification/useability -->
131         </record>
132         <record id="trans_router_picking" model="workflow.transition">
133             <field name="act_from" ref="act_router"/>
134             <field name="act_to" ref="act_picking"/>
135             <field name="condition">has_stockable_product()</field>
136         </record>
137         <record id="trans_router_picking_done" model="workflow.transition">
138             <field name="act_from" ref="act_router"/>
139             <field name="act_to" ref="act_picking_done"/>
140             <field name="condition">not has_stockable_product()</field>
141         </record>
142         <record id="trans_router_invoice" model="workflow.transition">
143             <field name="act_from" ref="act_router"/>
144             <field name="act_to" ref="act_invoice"/>
145             <field name="condition">invoice_method=='order'</field>
146         </record>
147         <record id="trans_router_invoice_no_order" model="workflow.transition">
148             <field name="act_from" ref="act_router"/>
149             <field name="act_to" ref="act_invoice_end"/>
150             <field name="condition">invoice_method&lt;&gt;'order' and invoiced</field>
151         </record>
152         <record id="trans_except_picking_picking_done" model="workflow.transition">
153             <field name="act_from" ref="act_except_picking"/>
154             <field name="act_to" ref="act_picking_done"/>
155             <field name="signal">picking_ok</field>
156         </record>
157         <record id="trans_except_invoice_invoice_done" model="workflow.transition">
158             <field name="act_from" ref="act_except_invoice"/>
159             <field name="act_to" ref="act_invoice_done"/>
160             <field name="signal">invoice_ok</field>
161         </record>
162         <record id="trans_except_picking" model="workflow.transition">
163             <field name="act_from" ref="act_except_picking"/>
164             <field name="act_to" ref="act_cancel"/>
165             <field name="signal">purchase_cancel</field>
166         </record>
167         <record id="trans_except_invoice" model="workflow.transition">
168             <field name="act_from" ref="act_except_invoice"/>
169             <field name="act_to" ref="act_cancel"/>
170             <field name="signal">purchase_cancel</field>
171         </record>
172         <record id="trans_picking_except_picking" model="workflow.transition">
173             <field name="act_from" ref="act_picking"/>
174             <field name="act_to" ref="act_except_picking"/>
175             <field name="signal">subflow.cancel</field>
176         </record>
177         <record id="trans_invoice_except_invoice" model="workflow.transition">
178             <field name="act_from" ref="act_invoice"/>
179             <field name="act_to" ref="act_except_invoice"/>
180             <field name="signal">subflow.cancel</field>
181         </record>
182         <record id="trans_picking_picking_done" model="workflow.transition">
183             <field name="act_from" ref="act_picking"/>
184             <field name="act_to" ref="act_picking_done"/>
185             <field name="signal">subflow.done</field>
186         </record>
187         <record id="trans_invoice_invoice_done" model="workflow.transition">
188             <field name="act_from" ref="act_invoice"/>
189             <field name="act_to" ref="act_invoice_done"/>
190             <field name="signal">subflow.paid</field>
191         </record>
192         <record id="trans_picking_done_done" model="workflow.transition">
193             <field name="act_from" ref="act_picking_done"/>
194             <field name="act_to" ref="act_done"/>
195         </record>
196         <record id="trans_invoice_done_done" model="workflow.transition">
197             <field name="act_from" ref="act_invoice_done"/>
198             <field name="act_to" ref="act_invoice_end"/>
199         </record>
200         <record id="trans_invoice_end_done" model="workflow.transition">
201             <field name="act_from" ref="act_invoice_end"/>
202             <field name="act_to" ref="act_done"/>
203         </record>
204
205     <!-- Procurement -->
206         <record id="act_buy" model="workflow.activity">
207             <field name="wkf_id" ref="procurement.wkf_procurement"/>
208             <field name="name">buy</field>
209             <field name="kind">subflow</field>
210             <field name="subflow_id" search="[('osv','=','purchase.order')]"/>
211             <field name="action">action_po_assign()</field>
212         </record>
213
214         <record id="trans_confirm_mto_purchase" model="workflow.transition">
215             <field name="act_from" ref="procurement.act_confirm_mto"/>
216             <field name="act_to" ref="act_buy"/>
217             <field name="condition">check_buy() and check_supplier_info()</field>
218         </record>
219
220         <record id="trans_buy_make_done" model="workflow.transition">
221             <field name="act_from" ref="act_buy"/>
222             <field name="act_to" ref="procurement.act_make_done"/>
223             <field name="signal">subflow.delivery_done</field>
224         </record>
225
226         <record id="trans_buy_cancel" model="workflow.transition">
227             <field name="act_from" ref="act_buy"/>
228             <field name="act_to" ref="procurement.act_cancel"/>
229             <field name="signal">subflow.cancel</field>
230         </record>
231
232     </data>
233 </openerp>