1
1
import { takeWhile } from 'lodash' ;
2
2
import { ProjectStep } from '../../../project/dto' ;
3
+ import { ProjectWorkflow } from '../../../project/workflow/project-workflow' ;
3
4
import {
4
5
action ,
5
6
field ,
@@ -18,6 +19,39 @@ const stepsUntilFinancialEndorsement = takeWhile(
18
19
( s ) => s !== ProjectStep . PendingFinancialEndorsement ,
19
20
) ;
20
21
22
+ export const projectTransitions = ProjectWorkflow . pickNames ( [
23
+ 'Early Conversations -> Pending Regional Director Approval' ,
24
+ 'Early Conversations -> Pending Concept Approval' ,
25
+ 'Early Conversations -> Did Not Develop' ,
26
+ 'Prep for Consultant Endorsement -> Pending Consultant Endorsement' ,
27
+ 'Prep for Consultant & Financial Endorsement & Finalizing Proposal -> Pending Concept Approval' ,
28
+ 'Prep for Consultant & Financial Endorsement & Finalizing Proposal -> Did Not Develop' ,
29
+ 'Pending Consultant Endorsement -> Prep for Financial Endorsement With Consultant Endorsement' ,
30
+ 'Pending Consultant Endorsement -> Prep for Financial Endorsement Without Consultant Endorsement' ,
31
+ 'Prep for Financial Endorsement -> Pending Financial Endorsement' ,
32
+ 'Prep for Financial Endorsement & Finalizing Proposal -> Pending Consultant Endorsement' ,
33
+ 'Finalizing Proposal -> Pending Regional Director Approval' ,
34
+ 'Finalizing Proposal -> Pending Financial Endorsement' ,
35
+ 'Active -> Discussing Change To Plan' ,
36
+ 'Active -> Discussing Termination' ,
37
+ 'Active -> Finalizing Completion' ,
38
+ 'Discussing Change To Plan -> Pending Change To Plan Approval' ,
39
+ 'Discussing Change To Plan -> Discussing Suspension' ,
40
+ 'Discussing Change To Plan -> Back To Active' ,
41
+ 'Pending Change To Plan Approval -> Discussing Change To Plan' ,
42
+ 'Pending Change To Plan Approval -> Pending Change To Plan Confirmation' ,
43
+ 'Pending Change To Plan Approval -> Back To Active' ,
44
+ 'Discussing Suspension -> Pending Suspension Approval' ,
45
+ 'Discussing Suspension -> Back To Active' ,
46
+ 'Suspended -> Discussing Reactivation' ,
47
+ 'Suspended & Discussing Reactivation -> Discussing Termination' ,
48
+ 'Discussing Reactivation -> Pending Reactivation Approval' ,
49
+ 'Discussing Termination -> Pending Termination Approval' ,
50
+ 'Discussing Termination -> Back To Most Recent' ,
51
+ 'Finalizing Completion -> Back To Active' ,
52
+ 'Finalizing Completion -> Completed' ,
53
+ ] ) ;
54
+
21
55
// NOTE: There could be other permissions for this role from other policies
22
56
@Policy (
23
57
[ Role . ProjectManager , Role . RegionalDirector , Role . FieldOperationsDirector ] ,
@@ -93,37 +127,9 @@ const stepsUntilFinancialEndorsement = takeWhile(
93
127
'Review Reject' ,
94
128
'Review Approve' ,
95
129
) . execute ,
96
- r . ProjectWorkflowEvent . read . transitions (
97
- 'Early Conversations -> Pending Regional Director Approval' ,
98
- 'Early Conversations -> Pending Concept Approval' ,
99
- 'Early Conversations -> Did Not Develop' ,
100
- 'Prep for Consultant Endorsement -> Pending Consultant Endorsement' ,
101
- 'Prep for Consultant & Financial Endorsement & Finalizing Proposal -> Pending Concept Approval' ,
102
- 'Prep for Consultant & Financial Endorsement & Finalizing Proposal -> Did Not Develop' ,
103
- 'Pending Consultant Endorsement -> Prep for Financial Endorsement With Consultant Endorsement' ,
104
- 'Pending Consultant Endorsement -> Prep for Financial Endorsement Without Consultant Endorsement' ,
105
- 'Prep for Financial Endorsement -> Pending Financial Endorsement' ,
106
- 'Prep for Financial Endorsement & Finalizing Proposal -> Pending Consultant Endorsement' ,
107
- 'Finalizing Proposal -> Pending Regional Director Approval' ,
108
- 'Finalizing Proposal -> Pending Financial Endorsement' ,
109
- 'Active -> Discussing Change To Plan' ,
110
- 'Active -> Discussing Termination' ,
111
- 'Active -> Finalizing Completion' ,
112
- 'Discussing Change To Plan -> Pending Change To Plan Approval' ,
113
- 'Discussing Change To Plan -> Discussing Suspension' ,
114
- 'Discussing Change To Plan -> Back To Active' ,
115
- 'Pending Change To Plan Approval -> Discussing Change To Plan' ,
116
- 'Pending Change To Plan Approval -> Pending Change To Plan Confirmation' ,
117
- 'Pending Change To Plan Approval -> Back To Active' ,
118
- 'Discussing Suspension -> Pending Suspension Approval' ,
119
- 'Discussing Suspension -> Back To Active' ,
120
- 'Suspended -> Discussing Reactivation' ,
121
- 'Suspended & Discussing Reactivation -> Discussing Termination' ,
122
- 'Discussing Reactivation -> Pending Reactivation Approval' ,
123
- 'Discussing Termination -> Pending Termination Approval' ,
124
- 'Discussing Termination -> Back To Most Recent' ,
125
- 'Finalizing Completion -> Back To Active' ,
126
- 'Finalizing Completion -> Completed' ,
130
+ r . ProjectWorkflowEvent . read . whenAll (
131
+ member ,
132
+ r . ProjectWorkflowEvent . isTransitions ( ...projectTransitions ) ,
127
133
) . execute ,
128
134
r . Project . read . create
129
135
. when ( member )
0 commit comments