1 <?xml version="1.0" encoding="utf-8"?>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
67 <record id="act_invoice_end" model="workflow.activity">
68 <field name="wkf_id" ref="purchase_order"/>
69 <field name="name">invoice_end</field>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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 -->
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>
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>
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>
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<>'order' and invoiced</field>
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>
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>
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>
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>
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>
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>
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>
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>
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"/>
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"/>
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"/>
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>
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>
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>
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>