5 <record model="workflow" id="purchase_order">
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 model="workflow.activity" id="act_draft">
12 <field name="wkf_id" ref="purchase_order"/>
13 <field name="flow_start">True</field>
14 <field name="name">draft</field>
16 <record model="workflow.activity" id="act_confirmed">
17 <field name="wkf_id" ref="purchase_order"/>
18 <field name="name">confirmed</field>
19 <field name="kind">function</field>
20 <field name="action">wkf_confirm_order()</field>
22 <record model="workflow.activity" id="act_cancel">
23 <field name="wkf_id" ref="purchase_order"/>
24 <field name="name">cancel</field>
25 <field name="action">write({'state':'cancel'})</field>
26 <field name="kind">stopall</field>
27 <field name="flow_stop">True</field>
29 <record model="workflow.activity" id="act_except_invoice">
30 <field name="wkf_id" ref="purchase_order"/>
31 <field name="name">except_invoice</field>
32 <field name="kind">function</field>
33 <field name="action">write({'state':'except_invoice'})</field>
35 <record model="workflow.activity" id="act_except_picking">
36 <field name="wkf_id" ref="purchase_order"/>
37 <field name="name">except_picking</field>
38 <field name="kind">function</field>
39 <field name="action">write({'state':'except_picking'})</field>
41 <record model="workflow.activity" id="act_router">
42 <field name="wkf_id" ref="purchase_order"/>
43 <field name="name">router</field>
44 <field name="split_mode">OR</field>
45 <field name="kind">function</field>
46 <field name="action">wkf_approve_order()</field>
48 <record model="workflow.activity" id="act_invoice">
49 <field name="wkf_id" ref="purchase_order"/>
50 <field name="name">invoice</field>
51 <field name="kind">subflow</field>
52 <field name="subflow_id" type="int" search="[('osv','=','account.invoice')]"/>
53 <field name="action">action_invoice_create()</field>
55 <record model="workflow.activity" id="act_invoice_done">
56 <field name="wkf_id" ref="purchase_order"/>
57 <field name="name">invoice_done</field>
58 <field name="action">write({'invoiced':1})</field>
59 <field name="kind">function</field>
61 <record model="workflow.activity" id="act_picking">
62 <field name="wkf_id" ref="purchase_order"/>
63 <field name="name">picking</field>
64 <field name="kind">subflow</field>
65 <field name="subflow_id" search="[('osv','=','stock.picking')]"/>
66 <field name="action">action_picking_create()</field>
68 <record model="workflow.activity" id="act_picking_done">
69 <field name="wkf_id" ref="purchase_order"/>
70 <field name="name">picking_done</field>
71 <field name="action">write({'shipped':1})</field>
72 <field name="kind">function</field>
73 <field name="signal_send">subflow.delivery_done</field>
75 <record model="workflow.activity" id="act_done">
76 <field name="wkf_id" ref="purchase_order"/>
77 <field name="name">done</field>
78 <field name="action">write({'state':'done'})</field>
79 <field name="kind">function</field>
80 <field name="flow_stop">True</field>
81 <field name="join_mode">AND</field>
84 <record model="workflow.transition" id="trans_draft_confirmed">
85 <field name="act_from" ref="act_draft"/>
86 <field name="act_to" ref="act_confirmed"/>
87 <field name="signal">purchase_confirm</field>
89 <record model="workflow.transition" id="trans_confirmed_cancel">
90 <field name="act_from" ref="act_confirmed"/>
91 <field name="act_to" ref="act_cancel"/>
92 <field name="signal">purchase_cancel</field>
94 <record model="workflow.transition" id="trans_draft_cancel">
95 <field name="act_from" ref="act_draft"/>
96 <field name="act_to" ref="act_cancel"/>
97 <field name="signal">purchase_cancel</field>
99 <record model="workflow.transition" id="trans_confirmed_router">
100 <field name="act_from" ref="act_confirmed"/>
101 <field name="act_to" ref="act_router"/>
102 <field name="signal">purchase_approve</field>
104 <record model="workflow.transition" id="trans_router_picking">
105 <field name="act_from" ref="act_router"/>
106 <field name="act_to" ref="act_picking"/>
107 <field name="condition">has_stockable_product()</field>
109 <record model="workflow.transition" id="trans_router_picking_done">
110 <field name="act_from" ref="act_router"/>
111 <field name="act_to" ref="act_picking_done"/>
112 <field name="condition">not has_stockable_product()</field>
114 <record model="workflow.transition" id="trans_router_invoice">
115 <field name="act_from" ref="act_router"/>
116 <field name="act_to" ref="act_invoice"/>
117 <field name="condition">invoice_method=='order'</field>
119 <record model="workflow.transition" id="trans_router_invoice_no_order">
120 <field name="act_from" ref="act_router"/>
121 <field name="act_to" ref="act_invoice_done"/>
122 <field name="condition">invoice_method<>'order'</field>
124 <record model="workflow.transition" id="trans_except_picking_picking_done">
125 <field name="act_from" ref="act_except_picking"/>
126 <field name="act_to" ref="act_picking_done"/>
127 <field name="signal">picking_ok</field>
129 <record model="workflow.transition" id="trans_except_invoice_invoice_done">
130 <field name="act_from" ref="act_except_invoice"/>
131 <field name="act_to" ref="act_invoice_done"/>
132 <field name="signal">invoice_ok</field>
134 <record model="workflow.transition" id="trans_except_picking">
135 <field name="act_from" ref="act_except_picking"/>
136 <field name="act_to" ref="act_cancel"/>
137 <field name="signal">cancel</field>
139 <record model="workflow.transition" id="trans_except_invoice">
140 <field name="act_from" ref="act_except_invoice"/>
141 <field name="act_to" ref="act_cancel"/>
142 <field name="signal">cancel</field>
144 <record model="workflow.transition" id="trans_picking_except_picking">
145 <field name="act_from" ref="act_picking"/>
146 <field name="act_to" ref="act_except_picking"/>
147 <field name="signal">subflow.cancel</field>
149 <record model="workflow.transition" id="trans_invoice_except_invoice">
150 <field name="act_from" ref="act_invoice"/>
151 <field name="act_to" ref="act_except_invoice"/>
152 <field name="signal">subflow.cancel</field>
154 <record model="workflow.transition" id="trans_picking_picking_done">
155 <field name="act_from" ref="act_picking"/>
156 <field name="act_to" ref="act_picking_done"/>
157 <field name="signal">subflow.done</field>
159 <record model="workflow.transition" id="trans_invoice_invoice_done">
160 <field name="act_from" ref="act_invoice"/>
161 <field name="act_to" ref="act_invoice_done"/>
162 <field name="signal">subflow.paid</field>
164 <record model="workflow.transition" id="trans_picking_done_done">
165 <field name="act_from" ref="act_picking_done"/>
166 <field name="act_to" ref="act_done"/>
168 <record model="workflow.transition" id="trans_invoice_done_done">
169 <field name="act_from" ref="act_invoice_done"/>
170 <field name="act_to" ref="act_done"/>