9 class Workflow extends \Workspace\Workflow
15 protected $namespace = __NAMESPACE__;
19 protected $parentFeature = 'Stock';
23 protected $rootEntity = 'Stock';
27 protected $rootIdField = 'stock';
31 protected $initState = 'This.NewItem';
35 protected $initTrigger = 'Valuation.Create';
39 protected $primaryEntity = 'Valuation';
43 protected $entityMap = array(
44 'Valuation' => '\Valuation\Entity\Valuation',
45 'Stock' => '\Stock\Entity\Stock'
50 protected $linkMap = array();
54 protected $listen = array();
58 protected $reclaim = array();
62 protected $stateLabel = array(
63 'NewValuation' => 'New Valuation',
64 'PendingValuation' => 'Pending Valuation',
65 'CompleteValuation' => 'Complete Valuation',
66 'DealDone' => 'Deal Done',
67 'OfferAccepted' => 'Offer Accepted',
68 'DealNotDone' => 'Deal Not Done',
69 'PriceGuide' => 'Price Guide'
74 protected $stateMap = array(
77 'XmlRpc.SelectList' => array(),
78 'XmlRpc.Grid' => array(),
79 'XmlRpc.Create' => array(),
80 'XmlRpc.Update' => array(),
81 'XmlRpc.Delete' => array(),
82 'XmlRpc.UnDelete' => array(),
83 'XmlRpcRequestLog.Grid' => array(),
84 'XmlRpcCallbackLog.Grid' => array(),
85 'Valuation.Grid' => array(),
86 'Valuation.CreatePublic' => array(),
87 'Valuation.CreateCustomerPublic' => array(),
88 'Valuation.CreateNew' => array(),
89 'Valuation.CreatePending' => array(),
90 'Valuation.CreateComplete' => array(),
91 'Valuation.CreateCompleteSendToCustomer' => array(),
93 'Valuation.CreateCompleteCustomerPublic' => array(),
94 'Valuation.UpdateCompleteCustomerPublic' => array(),
96 'Valuation.CreatePriceGuide' => array(),
97 'Valuation.CreateStock' => array(),
98 'Valuation.UpdateStock' => array(),
99 'Report.Valuations' => array(),
100 'PricingHistory.Grid' => array(),
101 'Valuation.MoveToDealDone' => array(),
102 'Valuation.MoveToDealNotDone' => array(),
103 'CustomerPublicValuation.Create' => array(),
104 'CustomerPublicValuation.Update' => array(),
105 'CustomerPublicValuation.Delete' => array(),
108 'Valuation.UpdateCheck' => array(),
109 'Valuation.UpdateCompleteCheck' => array(),
110 'ValuationTimeSlots.SelectList' => array(),
111 'ValuationTimeSlots.Create' => array(),
112 'ValuationTimeSlots.Update' => array(),
113 'ValuationTimeSlots.Delete' => array(),
114 'ValuationAppointments.Create' => array(),
115 'ValuationAppointments.Update' => array(),
116 'ValuationAppointments.Delete' => array(),
118 'DealNotDoneSelection.SelectList' => array(),
119 'DealNotDoneSelection.Update' => array(),
120 'DealNotDoneSelection.Delete' => array(),
121 'DealNotDoneSelection.Create' => array(),
122 'Valuation.DealNotDoneSelection' => array(),
123 'SendToStockFrom.SelectList' => array(),
127 'InitRoute' => 'Valuation.routeNewItem'
129 'New Valuation' => array(
130 'Init' => 'Valuation.initNewValuation',
132 'Valuation.View' => array(),
133 'Pdf.Print' => array(),
134 'Pdf.Print001' => array(),
135 'Pdf.Print002' => array(),
136 'Pdf.Print003' => array(),
137 'Valuation.Update' => array(),
138 'Valuation.RequestBmwAccidentReport' => array(),
139 'Valuation.RequestAccidentReport' => array()
142 'Valuation.MoveToPending' => array(
143 'Destination' => 'This.PendingValuation',
144 'ContractRequired' => true
146 'Valuation.MoveToArchive' => array(
147 'Destination' => 'This.Archived',
148 'ContractRequired' => true
150 'Valuation.MoveToComplete' => array(
151 'Destination' => 'This.CompleteValuation',
152 'ContractRequired' => true
154 'Valuation.MoveToCustomerComplete' => array(
155 'Destination' => 'This.CompleteValuation',
156 'ContractRequired' => true
158 'Workflow.MoveToArchive' => array(
159 'Destination' => 'This.Archived'
161 'Valuation.MoveToOfferAccepted' => array(),
162 'Valuation.MoveToKeepForStock' => array(),
163 'Valuation.SendToPriceGuide' => array(
164 'Destination' => 'PriceGuide.NewItemFromValuation',
165 'ContractRequired' => true
167 'Valuation.SendToStock' => array(
168 #-> Need a direct routing method for this to do handover back to Stock.
169 'Destination' => 'This.Stock'
173 'Pending Valuation' => array(
174 'Init' => 'Valuation.initPendingValuation',
176 'Valuation.View' => array(),
177 'Pdf.Print' => array(),
178 'Pdf.Print001' => array(),
179 'Pdf.Print002' => array(),
180 'Pdf.Print003' => array(),
181 'Valuation.Update' => array(),
182 'Valuation.RequestBmwAccidentReport' => array(),
183 'Valuation.RequestAccidentReport' => array(),
184 'Valuation.MoveToDealDone' => array(),
185 'Valuation.MoveToDealNotDone' => array()
189 'Valuation.MoveToComplete' => array(
190 'Destination' => 'This.CompleteValuation',
191 'ContractRequired' => true
193 'Valuation.MoveToOfferAccepted' => array(),
194 'Valuation.MoveToKeepForStock' => array(),
196 'Valuation.MoveToDealDone' => array(),
197 'Valuation.MoveToDealNotDone' => array(),
198 'Valuation.MoveToArchive' => array(
199 'Destination' => 'This.Archived'
201 'Valuation.SendToPriceGuide' => array(
202 'Destination' => 'PriceGuide.NewItemFromValuation',
203 'ContractRequired' => true
205 'Valuation.SendToStock' => array(
206 #-> Need a direct routing method for this to do handover back to Stock.
207 'Destination' => 'This.Stock'
209 'Valuation.MoveToCustomerComplete' => array(
210 'Destination' => 'This.CompleteValuation',
211 'ContractRequired' => true
215 'Complete Valuation' => array(
216 'Init' => 'Valuation.initCompleteValuation',
218 'Valuation.View' => array(),
219 'Pdf.Print' => array(),
220 'Pdf.Print001' => array(),
221 'Pdf.Print002' => array(),
222 'Pdf.Print003' => array(),
223 'Valuation.Update' => array(),
224 'Valuation.RequestBmwAccidentReport' => array(),
225 'Valuation.RequestAccidentReport' => array(),
226 'Valuation.SendToSales' => array(),
227 'Valuation.MoveToDealDone' => array(),
228 'Valuation.MoveToDealNotDone' => array()
231 'Valuation.MoveToComplete' => array(
232 'Destination' => 'This.CompleteValuation',
233 'ContractRequired' => true
235 'Valuation.MoveToOfferAccepted' => array(),
236 'Valuation.MoveToKeepForStock' => array(),
237 'Valuation.MoveToDealDone' => array(),
238 'Valuation.MoveToDealNotDone' => array(),
239 'Valuation.MoveToArchive' => array(
240 'Destination' => 'This.Archived'
242 'Valuation.SendToPriceGuide' => array(
243 'Destination' => 'PriceGuide.NewItemFromValuation',
244 'ContractRequired' => true
246 'Valuation.SendToStock' => array(
247 #-> Need a direct routing method for this to do handover back to Stock.
248 'Destination' => 'This.Stock'
250 'Valuation.MoveToCustomerComplete' => array(
251 'Destination' => 'This.CompleteValuation',
252 'ContractRequired' => true
256 'Offer Accepted' => array(
258 'Valuation.LimitedUpdate' => array(),
259 'Valuation.View' => array(),
260 'Pdf.Print' => array(),
261 'Pdf.Print001' => array(),
262 'Pdf.Print002' => array(),
263 'Pdf.Print003' => array()
266 'Valuation.MoveToComplete' => array(
267 'Destination' => 'This.CompleteValuation',
268 'ContractRequired' => true
270 'Valuation.MoveToArchive' => array(
271 'Destination' => 'This.Archived'
273 'Valuation.SendToPriceGuide' => array(
274 'Destination' => 'PriceGuide.NewItemFromValuation',
275 'ContractRequired' => true
277 'Valuation.SendToStock' => array(
278 #-> Need a direct routing method for this to do handover back to Stock.
279 'Destination' => 'This.Stock'
281 'Valuation.MoveToDealDone' => array(),
282 'Valuation.MoveToDealNotDone' => array()
286 'Deal Done' => array(
287 'Init' => 'Valuation.initCompleteValuation',
289 'Valuation.LimitedUpdate' => array(),
290 'Valuation.View' => array(),
291 'Pdf.Print' => array(),
292 'Pdf.Print001' => array(),
293 'Pdf.Print002' => array(),
294 'Pdf.Print003' => array()
297 'Valuation.MoveToArchive' => array(
298 'Destination' => 'This.Archived'
300 'Valuation.SendToStock' => array(
301 #-> Need a direct routing method for this to do handover back to Stock.
302 'Destination' => 'This.Stock'
306 'Deal Not Done' => array(
307 'Init' => 'Valuation.initCompleteValuation',
309 'Valuation.Update' => array(),
310 'Valuation.View' => array(),
311 'Pdf.Print' => array(),
312 'Pdf.Print001' => array(),
313 'Pdf.Print002' => array(),
314 'Pdf.Print003' => array()
317 'Valuation.MoveToPending' => array(
318 'Destination' => 'This.PendingValuation',
319 'ContractRequired' => true
321 'Valuation.MoveToArchive' => array(
322 'Destination' => 'This.Archived'
324 'Valuation.SendToPriceGuide' => array(
325 'Destination' => 'PriceGuide.NewItemFromValuation',
326 'ContractRequired' => true
328 'Valuation.SendToStock' => array()
333 'Valuation.LimitedUpdate' => array(),
334 'Valuation.View' => array(),
335 'Pdf.Print' => array(),
336 'Pdf.Print001' => array(),
337 'Pdf.Print002' => array(),
338 'Pdf.Print003' => array()
341 'Valuation.UnArchive' => array()
344 'Price Guide' => array(
346 'Valuation.View' => array(),
347 'Pdf.Print' => array(),
348 'Pdf.Print001' => array(),
349 'Pdf.Print002' => array(),
350 'Pdf.Print003' => array(),
351 'Valuation.Update' => array(),
352 'Valuation.SendToSalesFull' => array(),
353 'Valuation.LimitedUpdate' => array(),
354 'Valuation.SendToSales' => array(),
355 'Valuation.RequestBmwAccidentReport' => array(),
356 'Valuation.RequestAccidentReport' => array(),
357 'Valuation.PriceGuideMoveToComplete' => array(),
358 'Valuation.SendToCustomerFull' => array(),
361 'Valuation.MoveToOfferAccepted' => array(),
362 'Valuation.MoveToDealDone' => array(),
363 'Valuation.MoveToDealNotDone' => array(),
364 'Valuation.SendToStock' => array(
365 #-> Need a direct routing method for this to do handover back to Stock.
366 'Destination' => 'This.Stock'
369 'RouteBack' => array(
370 'Action' => 'Valuation.routePriceGuideHandover'
374 'Actions' => array(),
376 'RouteBack' => array(
377 'Action' => 'Valuation.routePriceGuideHandover'