[IMP]sale: Define the propar state
[odoo/odoo.git] / addons / sale / sale_workflow.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4         <record id="wkf_sale" model="workflow">
5             <field name="name">sale.order.basic</field>
6             <field name="osv">sale.order</field>
7             <field name="on_create">True</field>
8         </record>
9
10         <!-- Activity -->
11         <record id="act_draft" model="workflow.activity">
12             <field name="wkf_id" ref="wkf_sale"/>
13             <field name="flow_start">True</field>
14             <field name="name">draft</field>
15         </record>
16         <record id="act_router" model="workflow.activity">
17             <field name="wkf_id" ref="wkf_sale"/>
18             <field name="name">router</field>
19             <field name="kind">function</field>
20             <field name="action">action_wait()</field>
21             <field name="split_mode">OR</field>
22         </record>
23         <record id="act_wait_invoice" model="workflow.activity">
24             <field name="wkf_id" ref="wkf_sale"/>
25             <field name="name">wait_invoice</field>
26         </record>
27         <record id="act_wait_ship" model="workflow.activity">
28             <field name="wkf_id" ref="wkf_sale"/>
29             <field name="name">wait_ship</field>
30         </record>
31
32         <record id="act_done" model="workflow.activity">
33             <field name="wkf_id" ref="wkf_sale"/>
34             <field name="name">done</field>
35             <field name="flow_stop">True</field>
36             <field name="kind">function</field>
37             <field name="action">write({'state':'done'})</field>
38             <field name="join_mode">AND</field>
39         </record>
40         <record id="act_cancel" model="workflow.activity">
41             <field name="wkf_id" ref="wkf_sale"/>
42             <field name="name">cancel</field>
43             <field name="flow_stop">True</field>
44             <field name="kind">stopall</field>
45             <field name="action">action_cancel()</field>
46         </record>
47         <record id="act_cancel2" model="workflow.activity">
48             <field name="wkf_id" ref="wkf_sale"/>
49             <field name="name">cancel2</field>
50             <field name="flow_stop">True</field>
51             <field name="kind">stopall</field>
52             <field name="action">action_cancel()</field>
53         </record>
54         <record id="act_cancel3" model="workflow.activity">
55             <field name="wkf_id" ref="wkf_sale"/>
56             <field name="name">cancel3</field>
57             <field name="flow_stop">True</field>
58             <field name="kind">stopall</field>
59             <field name="action">action_cancel()</field>
60         </record>
61         <record id="act_invoice" model="workflow.activity">
62             <field name="wkf_id" ref="wkf_sale"/>
63             <field name="name">invoice</field>
64             <field name="kind">subflow</field>
65             <field name="subflow_id" search="[('name','=','account.invoice.basic')]"/>
66             <field name="action">action_invoice_create()</field>
67         </record>
68         <record id="act_invoice_except" model="workflow.activity">
69             <field name="wkf_id" ref="wkf_sale"/>
70             <field name="name">invoice_except</field>
71             <field name="kind">function</field>
72             <field name="action">action_invoice_cancel()</field>
73         </record>
74         <record id="act_invoice_end" model="workflow.activity">
75             <field name="wkf_id" ref="wkf_sale"/>
76             <field name="name">invoice_end</field>
77             <field name="kind">function</field>
78             <field name="action">action_invoice_end()</field>
79         </record>
80         <record id="act_invoice_cancel" model="workflow.activity">
81             <field name="wkf_id" ref="wkf_sale"/>
82             <field name="name">invoice_cancel</field>
83             <field name="flow_stop">True</field>
84             <field name="kind">stopall</field>
85             <field name="action">action_cancel()</field>
86         </record>
87         <record id="act_ship" model="workflow.activity">
88             <field name="wkf_id" ref="wkf_sale"/>
89             <field name="name">ship</field>
90             <field name="kind">function</field>
91             <field name="action">action_ship_create()</field>
92         </record>
93         <record id="act_ship_except" model="workflow.activity">
94             <field name="wkf_id" ref="wkf_sale"/>
95             <field name="name">ship_except</field>
96             <field name="kind">function</field>
97             <field name="action">write({'state':'shipping_except'})</field>
98         </record>
99         <record id="act_ship_end" model="workflow.activity">
100             <field name="wkf_id" ref="wkf_sale"/>
101             <field name="name">ship_end</field>
102             <field name="kind">function</field>
103             <field name="action">action_ship_end()</field>
104         </record>
105         <record id="act_ship_cancel" model="workflow.activity">
106             <field name="wkf_id" ref="wkf_sale"/>
107             <field name="name">ship_cancel</field>
108             <field name="flow_stop">True</field>
109             <field name="kind">stopall</field>
110             <field name="action">action_cancel()</field>
111         </record>
112
113         <!-- Transistion -->
114
115         <record id="trans_invoice_end_done" model="workflow.transition">
116             <field name="act_from" ref="act_invoice_end"/>
117             <field name="act_to" ref="act_done"/>
118         </record>
119
120         <record id="trans_draft_router" model="workflow.transition">
121             <field name="act_from" ref="act_draft"/>
122             <field name="act_to" ref="act_router"/>
123             <field name="signal">order_confirm</field>
124         </record>
125
126         <record id="trans_draft_cancel" model="workflow.transition">
127             <field name="act_from" ref="act_draft"/>
128             <field name="act_to" ref="act_cancel"/>
129             <field name="signal">cancel</field>
130         </record>
131
132         <record id="trans_wait_invoice_all_lines_invoiced" model="workflow.transition">
133             <field name="act_from" ref="act_wait_invoice"/>
134             <field name="act_to" ref="act_invoice_end"/>
135             <field name="signal">all_lines</field>
136         </record>
137
138         <record id="trans_router_wait_invoice_shipping" model="workflow.transition">
139             <field name="act_from" ref="act_wait_invoice"/>
140             <field name="act_to" ref="act_invoice_end"/>
141             <field name="condition">(order_policy=='picking')</field>
142         </record>
143
144         <record id="trans_router_wait_invoice" model="workflow.transition">
145             <field name="act_from" ref="act_router"/>
146             <field name="act_to" ref="act_wait_invoice"/>
147         </record>
148
149         <record id="trans_router_wait_ship" model="workflow.transition">
150             <field name="act_from" ref="act_router"/>
151             <field name="act_to" ref="act_wait_ship"/>
152         </record>
153
154         <record id="trans_wait_invoice_cancel2" model="workflow.transition">
155             <field name="act_from" ref="act_wait_invoice"/>
156             <field name="act_to" ref="act_cancel2"/>
157             <field name="signal">cancel</field>
158         </record>
159
160         <record id="trans_wait_ship_cancel3" model="workflow.transition">
161             <field name="act_from" ref="act_wait_ship"/>
162             <field name="act_to" ref="act_cancel3"/>
163             <field name="signal">cancel</field>
164         </record>
165
166         <record id="trans_wait_ship_ship" model="workflow.transition">
167             <field name="act_from" ref="act_wait_ship"/>
168             <field name="act_to" ref="act_ship"/>
169             <field name="condition">(order_policy!='prepaid') or invoiced</field>
170         </record>
171
172         <record id="trans_wait_invoice_invoice" model="workflow.transition">
173             <field name="act_from" ref="act_wait_invoice"/>
174             <field name="act_to" ref="act_invoice"/>
175             <field name="condition">(order_policy=='prepaid') or ((order_policy=='postpaid') and shipped)</field>
176         </record>
177
178         <record id="trans_wait_invoice_invoice_manual" model="workflow.transition">
179             <field name="act_from" ref="act_wait_invoice"/>
180             <field name="act_to" ref="act_invoice"/>
181             <field name="signal">manual_invoice</field>
182         </record>
183
184         <record id="trans_invoice_invoice_end" model="workflow.transition">
185             <field name="act_from" ref="act_invoice"/>
186             <field name="act_to" ref="act_invoice_end"/>
187             <field name="signal">subflow.paid</field>
188         </record>
189         <record id="trans_invoice_invoice_except" model="workflow.transition">
190             <field name="act_from" ref="act_invoice"/>
191             <field name="act_to" ref="act_invoice_except"/>
192             <field name="signal">subflow.cancel</field>
193         </record>
194         <record id="trans_invoice_except_invoice" model="workflow.transition">
195             <field name="act_from" ref="act_invoice_except"/>
196             <field name="act_to" ref="act_invoice"/>
197             <field name="signal">invoice_recreate</field>
198         </record>
199         <record id="trans_invoice_except_invoice_end" model="workflow.transition">
200             <field name="act_from" ref="act_invoice_except"/>
201             <field name="act_to" ref="act_invoice_end"/>
202             <field name="signal">invoice_corrected</field>
203         </record>
204         <record id="trans_invoice_except_invoice_cancel" model="workflow.transition">
205             <field name="act_from" ref="act_invoice_except"/>
206             <field name="act_to" ref="act_invoice_cancel"/>
207             <field name="signal">invoice_cancel</field>
208         </record>
209         <record id="trans_ship_end_done" model="workflow.transition">
210             <field name="act_from" ref="act_ship_end"/>
211             <field name="act_to" ref="act_done"/>
212         </record>
213
214         <record id="trans_ship_ship_end" model="workflow.transition">
215             <field name="act_from" ref="act_ship"/>
216             <field name="act_to" ref="act_ship_end"/>
217             <field name="trigger_model">procurement.order</field>
218             <field name="trigger_expr_id">procurement_lines_get()</field>
219             <field name="condition">test_state('finished')</field>
220         </record>
221         <record id="trans_ship_ship_except" model="workflow.transition">
222             <field name="act_from" ref="act_ship"/>
223             <field name="act_to" ref="act_ship_except"/>
224             <field name="condition">test_state('canceled')</field>
225             
226         </record>
227         <record id="trans_ship_except_ship" model="workflow.transition">
228             <field name="act_from" ref="act_ship_except"/>
229             <field name="act_to" ref="act_ship"/>
230             <field name="signal">ship_recreate</field>
231         </record>
232         <record id="trans_ship_except_ship_end" model="workflow.transition">
233             <field name="act_from" ref="act_ship_except"/>
234             <field name="act_to" ref="act_ship_end"/>
235             <field name="signal">ship_corrected</field>
236         </record>
237         <record id="trans_ship_except_ship_cancel" model="workflow.transition">
238             <field name="act_from" ref="act_ship_except"/>
239             <field name="act_to" ref="act_ship_cancel"/>
240             <field name="signal">ship_cancel</field>
241         </record>
242
243     </data>
244 </openerp>