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="split_mode">OR</field>
26 <field name="kind">function</field>
27 <field name="action">wkf_confirm_order()</field>
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>
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>
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>
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>
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>
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>
69 <record id="act_invoice_end" model="workflow.activity">
70 <field name="wkf_id" ref="purchase_order"/>
71 <field name="name">invoice_end</field>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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 -->
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>
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>
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>
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<>'order' and invoiced</field>
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>
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>
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>
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>
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>
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>
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>
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>
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"/>
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"/>
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"/>
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>
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>
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>
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>