initial commit
[namibia] / module / Valuation / src / Valuation / Workflow.php
1 <?php
2 namespace Valuation;
3
4
5 /**
6  * A workflow.
7  * @author andre.fourie
8  */
9 class Workflow extends \Workspace\Workflow
10 {
11
12         /**
13          * @var string
14          */
15         protected $namespace = __NAMESPACE__;
16         /**
17          * @var string
18          */
19         protected $parentFeature = 'Stock';
20         /**
21          * @var string
22          */
23         protected $rootEntity = 'Stock';
24         /**
25          * @var string
26          */
27         protected $rootIdField = 'stock';
28         /**
29          * @var string
30          */
31         protected $initState = 'This.NewItem';
32         /**
33          * @var string
34          */
35         protected $initTrigger = 'Valuation.Create';
36         /**
37          * @var string
38          */
39         protected $primaryEntity = 'Valuation';
40         /**
41          * @var array
42          */
43         protected $entityMap = array(
44                 'Valuation' => '\Valuation\Entity\Valuation',
45                 'Stock'     => '\Stock\Entity\Stock'
46         );
47         /**
48          * @var array
49          */
50         protected $linkMap = array();
51         /**
52          * @var array
53          */
54         protected $listen = array();
55         /**
56          * @var array
57          */
58         protected $reclaim = array();
59         /**
60          * @var array
61          */
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'
70         );
71         /**
72          * @var array
73          */
74         protected $stateMap = array(
75                 'Global'        => array(
76                         'Actions' => 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(),
92
93                                 'Valuation.CreateCompleteCustomerPublic' => array(),
94                 'Valuation.UpdateCompleteCustomerPublic' => array(),
95
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(),
106
107
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(),
117
118                 'DealNotDoneSelection.SelectList'        => array(),
119                 'DealNotDoneSelection.Update'            => array(),
120                 'DealNotDoneSelection.Delete'            => array(),
121                 'DealNotDoneSelection.Create'            => array(),
122                 'Valuation.DealNotDoneSelection'         => array(),
123                 'SendToStockFrom.SelectList'             => array(),
124                         )
125                 ),
126                 'NewItem'       => array(
127                         'InitRoute' => 'Valuation.routeNewItem'
128                 ),
129                 'New Valuation' => array(
130                         'Init'    => 'Valuation.initNewValuation',
131                         'Actions' => array(
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()
140                         ),
141                         'Routes'  => array(
142                      'Valuation.MoveToPending'  => array(
143                          'Destination'      => 'This.PendingValuation',
144                          'ContractRequired' => true
145                      ),
146                      'Valuation.MoveToArchive'  => array(
147                          'Destination'      => 'This.Archived',
148                          'ContractRequired' => true
149                      ),
150                      'Valuation.MoveToComplete' => array(
151                          'Destination'      => 'This.CompleteValuation',
152                          'ContractRequired' => true
153                      ),
154                     'Valuation.MoveToCustomerComplete'   => array(
155                         'Destination' => 'This.CompleteValuation',
156                         'ContractRequired' => true
157                     ),
158                                         'Workflow.MoveToArchive'    => array(
159                                                         'Destination' => 'This.Archived'
160                                         ),
161                                         'Valuation.MoveToOfferAccepted' => array(),
162                                         'Valuation.MoveToKeepForStock' => array(),
163                                         'Valuation.SendToPriceGuide' => array(
164                                                         'Destination' => 'PriceGuide.NewItemFromValuation',
165                                                         'ContractRequired' => true
166                                         ),
167                                         'Valuation.SendToStock' => array(
168                                                         #-> Need a direct routing method for this to do handover back to Stock.
169                                                         'Destination' => 'This.Stock'
170                                         )
171                                 )
172                         ),
173                         'Pending Valuation' => array(
174                                 'Init' => 'Valuation.initPendingValuation',
175                                 'Actions' => array(
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()
186
187                                 ),
188                                 'Routes' => array(
189                                         'Valuation.MoveToComplete'   => array(
190                                                         'Destination' => 'This.CompleteValuation',
191                                                         'ContractRequired' => true
192                                         ),
193                                         'Valuation.MoveToOfferAccepted' => array(),
194                                         'Valuation.MoveToKeepForStock' => array(),
195
196                                         'Valuation.MoveToDealDone'      => array(),
197                                         'Valuation.MoveToDealNotDone'   => array(),
198                                         'Valuation.MoveToArchive'    => array(
199                                                         'Destination' => 'This.Archived'
200                                         ),
201                                         'Valuation.SendToPriceGuide' => array(
202                                                         'Destination' => 'PriceGuide.NewItemFromValuation',
203                                                         'ContractRequired' => true
204                                         ),
205                                         'Valuation.SendToStock' => array(
206                                                         #-> Need a direct routing method for this to do handover back to Stock.
207                                                         'Destination' => 'This.Stock'
208                                         ),
209                     'Valuation.MoveToCustomerComplete'   => array(
210                         'Destination' => 'This.CompleteValuation',
211                         'ContractRequired' => true
212                     ),
213                                 )
214                         ),
215                         'Complete Valuation' => array(
216                                 'Init' => 'Valuation.initCompleteValuation',
217                                 'Actions' => array(
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()
229                                 ),
230                                 'Routes' => array(
231                                         'Valuation.MoveToComplete'   => array(
232                                                         'Destination' => 'This.CompleteValuation',
233                                                         'ContractRequired' => true
234                                         ),
235                                         'Valuation.MoveToOfferAccepted' => array(),
236                                         'Valuation.MoveToKeepForStock'  => array(),
237                                         'Valuation.MoveToDealDone'      => array(),
238                                         'Valuation.MoveToDealNotDone'   => array(),
239                                         'Valuation.MoveToArchive'       => array(
240                                                         'Destination' => 'This.Archived'
241                                         ),
242                                         'Valuation.SendToPriceGuide'    => array(
243                                                         'Destination' => 'PriceGuide.NewItemFromValuation',
244                                                         'ContractRequired'              => true
245                                         ),
246                                         'Valuation.SendToStock'                 => array(
247                                                         #-> Need a direct routing method for this to do handover back to Stock.
248                                                         'Destination' => 'This.Stock'
249                                         ),
250                     'Valuation.MoveToCustomerComplete'   => array(
251                         'Destination' => 'This.CompleteValuation',
252                         'ContractRequired' => true
253                     ),
254                                 )
255                         ),
256                         'Offer Accepted' => array(
257                                 'Actions' => 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()
264                                 ),
265                                 'Routes' => array(
266                                         'Valuation.MoveToComplete'   => array(
267                                                         'Destination' => 'This.CompleteValuation',
268                                                         'ContractRequired' => true
269                                         ),
270                                         'Valuation.MoveToArchive'    => array(
271                                                         'Destination' => 'This.Archived'
272                                         ),
273                                         'Valuation.SendToPriceGuide' => array(
274                                                         'Destination' => 'PriceGuide.NewItemFromValuation',
275                                                         'ContractRequired' => true
276                                         ),
277                                         'Valuation.SendToStock' => array(
278                                                         #-> Need a direct routing method for this to do handover back to Stock.
279                                                         'Destination' => 'This.Stock'
280                                         ),
281                                         'Valuation.MoveToDealDone'      => array(),
282                                         'Valuation.MoveToDealNotDone'   => array()
283                                         
284                                 )
285                         ),
286                         'Deal Done' => array(
287                                 'Init' => 'Valuation.initCompleteValuation',
288                                 'Actions' => array(
289                                         'Valuation.LimitedUpdate'  => array(),
290                                         'Valuation.View'           => array(),
291                                         'Pdf.Print'                => array(),
292                                         'Pdf.Print001'             => array(),
293                                         'Pdf.Print002'             => array(),
294                                         'Pdf.Print003'             => array()
295                                 ),
296                                 'Routes' => array(
297                                         'Valuation.MoveToArchive'    => array(
298                                                         'Destination' => 'This.Archived'
299                                         ),
300                                         'Valuation.SendToStock' => array(
301                                                         #-> Need a direct routing method for this to do handover back to Stock.
302                                                         'Destination' => 'This.Stock'
303                                         )
304                                 )
305                         ),
306                         'Deal Not Done' => array(
307                                 'Init' => 'Valuation.initCompleteValuation',
308                                 'Actions' => array(
309                                         'Valuation.Update'         => array(),
310                                         'Valuation.View'           => array(),
311                                         'Pdf.Print'                => array(),
312                                         'Pdf.Print001'             => array(),
313                                         'Pdf.Print002'             => array(),
314                                         'Pdf.Print003'             => array()
315                                 ),
316                                 'Routes' => array(
317                                         'Valuation.MoveToPending'   => array(
318                                                         'Destination' => 'This.PendingValuation',
319                                                         'ContractRequired' => true
320                                         ),
321                                         'Valuation.MoveToArchive'    => array(
322                                                         'Destination' => 'This.Archived'
323                                         ),
324                                         'Valuation.SendToPriceGuide' => array(
325                                                         'Destination' => 'PriceGuide.NewItemFromValuation',
326                                                         'ContractRequired' => true
327                                         ),
328                                         'Valuation.SendToStock' => array()
329                                 )
330                         ),
331                         'Archived' => array(
332                                 'Actions' => 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()
339                                 ),
340                                 'Routes' => array(
341                                         'Valuation.UnArchive' => array()
342                                 )
343                         ),
344                         'Price Guide' => array(
345                                 'Actions' => 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(),
359                                 ),
360                                 'Routes' => 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'
367                                         )
368                                 ),
369                                 'RouteBack' => array(
370                                         'Action' => 'Valuation.routePriceGuideHandover'
371                                 )
372                         ),
373                         'Stock' => array(
374                                 'Actions' => array(),
375                                 'Routes' => array(),
376                                 'RouteBack' => array(
377                                         'Action' => 'Valuation.routePriceGuideHandover'
378                                 )
379                         )
380         );
381
382
383 }