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