\\Mac\Home\Downloads\20240429\wptest\wfnaf25n.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
*S*************************************************************************
*S***
*S*** WolffPack
*S***
*S*** Subprogram: WFNAF25N
*S*** System : FINANCIER
*S*** Title : 2024-25 Need Analysis interface
*S*** Function : This subroutine calls the 2024-25 standard
*S*** FINANCIER Need Analysis Calculation routine.
*S***
*S*** Copyright 1995 - 2024 WolffPack, Inc. All rights reserved.
*S***
*S*************************************************************************
*S**DEFINE DATA
*S** GLOBAL USING WWGDA
*S** PARAMETER USING WWPDA
*S** PARAMETER USING WFMCA25D /* Calcs PDA
*S***
*S** LOCAL USING WWSTDNCD /* Passed to Object Subprogram
*S** LOCAL USING WWSTDNCR /* Passed to Object Subprogram
*S** LOCAL USING WFAIDYND /* Passed to Object Subprogram
*S** LOCAL USING WFAIDYNR /* Passed to Object Subprogram
*S** LOCAL USING WFFED25D /* Passed to Object Subprogram
*S** LOCAL USING WFFED25R /* Passed to Object Subprogram
*S** LOCAL USING WFNSL25D /* Passed to Object Subprogram
*S** LOCAL USING WFNSL25R /* Passed to Object Subprogram
*S** LOCAL USING WFISR25D /* Passed to Object Subprogram
*S** LOCAL USING WFISR25R /* Passed to Object Subprogram
*S** LOCAL USING WWAOBJ /* Passed to Object Subprograms
*S***
*S** LOCAL USING WFNAC25D
*S***
*S** LOCAL
*S** 01 #NO-UPDATE(L)
*S** 01 #HOLD-NEED(P8)
*S**END-DEFINE
*S***
*S*** Define Formats
*S**FORMAT KD=OFF
*S***
*S*** Populate WW-GDA from WW-PDA
*S**MOVE BY POSITION WW-PDA TO WW-GDA
*S***
*S**PROG.
*S**REPEAT
*S** /*
*S** /* Save no update switch (##PASS-TEMP may be re-used)
*S** IF ##PASS-TEMP = 'NO-UPDATE'
*S** ASSIGN #NO-UPDATE = TRUE
*S** END-IF
*S** /*
*S** /* Get Student data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WWSTDNCD.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WWSTDNCD.WF-FAO = ##FAO-ID
*S** ASSIGN WWSTDNCD.WW-ST-ADDRESS1 = 'R'
*S** ASSIGN WWSTDNCD.WW-ST-AD1-TYPE = 'P'
*S** ASSIGN WWSTDNCD.WW-ST-ATTRIBUTES = 'R'
*S** CALLNAT 'WWSTDNCO' WW-GDA
*S** WWSTDNCD
*S** WWSTDNCD-ID
*S** WWSTDNCR
*S** WWAOBJ
*S** /*
*S** /* Get AIDYEAR data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFAIDYND.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFAIDYND.WF-FAO = ##FAO-ID
*S** ASSIGN WFAIDYND.WF-AID-YEAR = ##AID-YEAR
*S** CALLNAT 'WFAIDYNO' WW-GDA
*S** WFAIDYND
*S** WFAIDYND-ID
*S** WFAIDYNR
*S** WWAOBJ
*S** /*
*S** /* Get Federal data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFFED25D.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFFED25D.WF-FAO = ##FAO-ID
*S** CALLNAT 'WFFED25O' WW-GDA
*S** WFFED25D
*S** WFFED25D-ID
*S** WFFED25R
*S** WWAOBJ
*S** IF NOT WWAOBJ.#EXISTS
*S** ESCAPE BOTTOM(PROG.) IMMEDIATE
*S** END-IF
*S** /*
*S** /* Get NSLDS data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFNSL25D.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFNSL25D.WF-FAO = ##FAO-ID
*S** CALLNAT 'WFNSL25O' WW-GDA
*S** WFNSL25D
*S** WFNSL25D-ID
*S** WFNSL25R
*S** WWAOBJ
*S** /*
*S** /* Get ISIR data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFISR25D.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFISR25D.WF-FAO = ##FAO-ID
*S** CALLNAT 'WFISR25O' WW-GDA
*S** WFISR25D
*S** WFISR25D-ID
*S** WFISR25R
*S** WWAOBJ
*S** /*
*S** /* Load data needed for calc into processing buffer
*S** /* and call FINANCIER Need Analysis Calculation
*S** PERFORM LOAD-NAC-DATA
*S** PERFORM SET-UP-RESULTS
*S** CALLNAT 'WFNAC25N' WW-GDA WFNAC25D WFFED25D WFFED25D-ID
*S** WFMCA25D WFMCA25D-ID
*S** WFNSL25D WFNSL25D-ID
*S** /*
*S** /* Unload M1 and M2 calculations and update summary calculations
*S** IF NOT #NO-UPDATE
*S** PERFORM UNLOAD-CALCS
*S** PERFORM CALC-NEED
*S** ASSIGN WWAOBJ.#FUNCTION = 'UPDATE'
*S** CALLNAT 'WFAIDYNO' WW-GDA
*S** WFAIDYND
*S** WFAIDYND-ID
*S** WFAIDYNR
*S** WWAOBJ
*S** END-IF
*S** /*
*S** /* Exit repeat loop
*S** ESCAPE BOTTOM(PROG.)
*S**END-REPEAT
*S***
*S**MOVE BY POSITION WW-GDA TO WW-PDA
*S***
*S***
*S*************************************************************************
*S**DEFINE LOAD-NAC-DATA
*S*************************************************************************
*S** /*
*S** /* Load Student information
*S** MOVE WWSTDNCD.WW-ST-SSN TO #NAC-ST-SSN
*S** MOVE WWSTDNCD.WW-ST-DOB TO #NAC-ST-DOB
*S** MOVE WWSTDNCD.WW-ST-NM-LAST TO #NAC-ST-NM-LAST
*S** MOVE WWSTDNCD.WW-ST-NM-FIRST TO #NAC-ST-NM-FIRST
*S** MOVE WWSTDNCD.WW-ST-AD1-STATE TO #NAC-ST-AD-STATE
*S** MOVE WWSTDNCD.WW-ST-ALIEN TO #NAC-ST-ALIEN
*S** /*
*S** /* Load AidYear information
*S** MOVE WFAIDYND.WF-AY-N-DUR TO #NAC-ENR-DUR
*S** /*
*S** /* Load Federal information
*S** MOVE WFFED25D.WF-FE-F-PROF-JUDG TO #NAC-PROF-JUDG
*S**END-SUBROUTINE /* LOAD-NAC-DATA
*S***
*S*************************************************************************
*S**DEFINE SUBROUTINE SET-UP-RESULTS
*S*************************************************************************
*S** /*
*S** MOVE WFAIDYND.WF-AY-N-M1 TO WFMCA25D.WF-MC-F9-METH
*S** MOVE WFAIDYND.WF-AY-N-M2 TO WFMCA25D.WF-MC-FM-METH
*S** MOVE WFAIDYND.WF-AY-N-DUR TO WFMCA25D.WF-MC-F9-DUR
*S** WFMCA25D.WF-MC-FM-DUR
*S**END-SUBROUTINE /* SET-UP-RESULTS
*S***
*S*************************************************************************
*S**DEFINE SUBROUTINE UNLOAD-CALCS
*S*************************************************************************
*S** /*
*S** /* Unload the Methodology 1 calculations
*S** ASSIGN WFAIDYND.WF-AY-M1-DEP = WFMCA25D.WF-MC-F9-DEP
*S** ASSIGN WFAIDYND.WF-AY-M1-FISAP = WFMCA25D.WF-MC-F9-FISAP
*S*** IF WFMCA25D.WF-MC-F9-REJ1 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ2 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ3 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ4 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ5 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ6 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ7 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ8 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ9 NE ' ' OR
*S*** WFMCA25D.WF-MC-F9-REJ10 NE ' '
*S*** MOVE 'R' TO WFAIDYND.WF-AY-M1-REJECT
*S*** ELSE
*S*** RESET WFAIDYND.WF-AY-M1-REJECT
*S*** END-IF
*S** ASSIGN WFAIDYND.WF-AY-M1-SANAL = WFMCA25D.WF-MC-F9-S-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M1-SC = WFMCA25D.WF-MC-F9-S-CS
*S** ASSIGN WFAIDYND.WF-AY-M1-SCI = WFMCA25D.WF-MC-F9-S-CFI
*S** ASSIGN WFAIDYND.WF-AY-M1-SCA = WFMCA25D.WF-MC-F9-S-CFA
*S** ASSIGN WFAIDYND.WF-AY-M1-PANAL = WFMCA25D.WF-MC-F9-P-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M1-PC = WFMCA25D.WF-MC-F9-P-CS
*S** ASSIGN WFAIDYND.WF-AY-M1-PCI = WFMCA25D.WF-MC-F9-P-CFI
*S** ASSIGN WFAIDYND.WF-AY-M1-PCA = WFMCA25D.WF-MC-F9-P-CFA
*S** IF (WFAIDYND.WF-AY-M1-SC + WFAIDYND.WF-AY-M1-PC) > 9999999
*S** ASSIGN WFAIDYND.WF-AY-M1-FC = 9999999
*S** ELSE
*S** ASSIGN WFAIDYND.WF-AY-M1-FC = WFAIDYND.WF-AY-M1-SC
*S** + WFAIDYND.WF-AY-M1-PC
*S** END-IF
*S** /*
*S** /* Unload the Methodology 2 calculations
*S** ASSIGN WFAIDYND.WF-AY-M2-DEP = WFMCA25D.WF-MC-FM-DEP
*S** ASSIGN WFAIDYND.WF-AY-M2-FISAP = WFMCA25D.WF-MC-FM-FISAP
*S*** IF WFMCA25D.WF-MC-FM-REJ1 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ2 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ3 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ4 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ5 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ6 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ7 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ8 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ9 NE ' ' OR
*S*** WFMCA25D.WF-MC-FM-REJ10 NE ' '
*S*** MOVE 'R' TO WFAIDYND.WF-AY-M2-REJECT
*S*** ELSE
*S*** RESET WFAIDYND.WF-AY-M2-REJECT
*S*** END-IF
*S** ASSIGN WFAIDYND.WF-AY-M2-SANAL = WFMCA25D.WF-MC-FM-S-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M2-SC = WFMCA25D.WF-MC-FM-S-CS
*S** ASSIGN WFAIDYND.WF-AY-M2-SCI = WFMCA25D.WF-MC-FM-S-CFI
*S** ASSIGN WFAIDYND.WF-AY-M2-SCA = WFMCA25D.WF-MC-FM-S-CFA
*S** ASSIGN WFAIDYND.WF-AY-M2-PANAL = WFMCA25D.WF-MC-FM-P-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M2-PC = WFMCA25D.WF-MC-FM-P-CS
*S** ASSIGN WFAIDYND.WF-AY-M2-PCI = WFMCA25D.WF-MC-FM-P-CFI
*S** ASSIGN WFAIDYND.WF-AY-M2-PCA = WFMCA25D.WF-MC-FM-P-CFA
*S** IF (WFAIDYND.WF-AY-M2-SC + WFAIDYND.WF-AY-M2-PC) > 9999999
*S** ASSIGN WFAIDYND.WF-AY-M2-FC = 9999999
*S** ELSE
*S** ASSIGN WFAIDYND.WF-AY-M2-FC = WFAIDYND.WF-AY-M2-SC
*S** + WFAIDYND.WF-AY-M2-PC
*S** END-IF
*S**END-SUBROUTINE /* UNLOAD-CALCS
*S***
*S*************************************************************************
*S**DEFINE SUBROUTINE CALC-NEED
*S*************************************************************************
*S** /*
*S** /* Calculate NEED fields
*S** COMPUTE #HOLD-NEED = WFAIDYND.WF-AY-M1-BUDGET -
*S** WFAIDYND.WF-AY-M1-FC
*S** DECIDE FOR FIRST CONDITION
*S** WHEN #HOLD-NEED > 99999
*S** ASSIGN WFAIDYND.WF-AY-M1-NEED = 99999
*S** WHEN #HOLD-NEED < 0
*S** ASSIGN WFAIDYND.WF-AY-M1-NEED = 0
*S** WHEN NONE
*S** ASSIGN WFAIDYND.WF-AY-M1-NEED = #HOLD-NEED
*S** END-DECIDE
*S** /*
*S** COMPUTE #HOLD-NEED = WFAIDYND.WF-AY-M2-BUDGET -
*S** WFAIDYND.WF-AY-M2-FC
*S** DECIDE FOR FIRST CONDITION
*S** WHEN #HOLD-NEED > 99999
*S** ASSIGN WFAIDYND.WF-AY-M2-NEED = 99999
*S** WHEN #HOLD-NEED < 0
*S** ASSIGN WFAIDYND.WF-AY-M2-NEED = 0
*S** WHEN NONE
*S** ASSIGN WFAIDYND.WF-AY-M2-NEED = #HOLD-NEED
*S** END-DECIDE
*S**END-SUBROUTINE /* CALC-NEED
*S**END
\\Mac\Home\Downloads\20240429\wpdev\wfnaf25n.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
*S*************************************************************************
*S***
*S*** WolffPack
*S***
*S*** Subprogram: WFNAF25N
*S*** System : FINANCIER
*S*** Title : 2024-25 Need Analysis interface
*S*** Function : This subroutine calls the 2024-25 standard
*S*** FINANCIER Need Analysis Calculation routine.
*S***
*S*** Copyright 1995 - 2024 WolffPack, Inc. All rights reserved.
*S***
*S*************************************************************************
*S**DEFINE DATA
*S** GLOBAL USING WWGDA
*S** PARAMETER USING WWPDA
*S** PARAMETER USING WFMCA25D /* Calcs PDA
*S***
*S** LOCAL USING WWSTDNCD /* Passed to Object Subprogram
*S** LOCAL USING WWSTDNCR /* Passed to Object Subprogram
*S** LOCAL USING WFAIDYND /* Passed to Object Subprogram
*S** LOCAL USING WFAIDYNR /* Passed to Object Subprogram
*S** LOCAL USING WFFED25D /* Passed to Object Subprogram
*S** LOCAL USING WFFED25R /* Passed to Object Subprogram
*S** LOCAL USING WFNSL25D /* Passed to Object Subprogram
*S** LOCAL USING WFNSL25R /* Passed to Object Subprogram
*S** LOCAL USING WFISR25D /* Passed to Object Subprogram
*S** LOCAL USING WFISR25R /* Passed to Object Subprogram
*S** LOCAL USING WWAOBJ /* Passed to Object Subprograms
*S***
*S** LOCAL USING WFNAC25D
*S** LOCAL USING WWCONST
*S***
*S** LOCAL
*S** 01 #NO-UPDATE(L)
*S** 01 #HOLD-NEED(P8)
*S** 01 #HOLD-SAI(P7)
*S** 01 #CNVT-NEG(L)
*S** 01 #CNVT-BYTE(A1)
*S** 01 #6-BYTE-FIELD(A6)
*S** 01 #6-BYTE-FIELD-N(P6)
*S**END-DEFINE
*S***
*S*** Define Formats
*S**FORMAT KD=OFF
*S***
*S*** Populate WW-GDA from WW-PDA
*S**MOVE BY POSITION WW-PDA TO WW-GDA
*S***
*S**PROG.
*S**REPEAT
*S** /*
*S** /* Save no update switch (##PASS-TEMP may be re-used)
*S** IF ##PASS-TEMP = 'NO-UPDATE'
*S** ASSIGN #NO-UPDATE = TRUE
*S** END-IF
*S** /*
*S** /* Get Student data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WWSTDNCD.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WWSTDNCD.WF-FAO = ##FAO-ID
*S** ASSIGN WWSTDNCD.WW-ST-ADDRESS1 = 'R'
*S** ASSIGN WWSTDNCD.WW-ST-AD1-TYPE = 'P'
*S** ASSIGN WWSTDNCD.WW-ST-ATTRIBUTES = 'R'
*S** CALLNAT 'WWSTDNCO' WW-GDA
*S** WWSTDNCD
*S** WWSTDNCD-ID
*S** WWSTDNCR
*S** WWAOBJ
*S** /*
*S** /* Get AIDYEAR data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFAIDYND.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFAIDYND.WF-FAO = ##FAO-ID
*S** ASSIGN WFAIDYND.WF-AID-YEAR = ##AID-YEAR
*S** CALLNAT 'WFAIDYNO' WW-GDA
*S** WFAIDYND
*S** WFAIDYND-ID
*S** WFAIDYNR
*S** WWAOBJ
*S** /*
*S** /* Get Federal data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFFED25D.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFFED25D.WF-FAO = ##FAO-ID
*S** CALLNAT 'WFFED25O' WW-GDA
*S** WFFED25D
*S** WFFED25D-ID
*S** WFFED25R
*S** WWAOBJ
*S** IF NOT WWAOBJ.#EXISTS
*S** ESCAPE BOTTOM(PROG.) IMMEDIATE
*S** END-IF
*S** /*
*S** /* Get NSLDS data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFNSL25D.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFNSL25D.WF-FAO = ##FAO-ID
*S** CALLNAT 'WFNSL25O' WW-GDA
*S** WFNSL25D
*S** WFNSL25D-ID
*S** WFNSL25R
*S** WWAOBJ
*S** /*
*S** /* Get ISIR data record
*S** ASSIGN WWAOBJ.#FUNCTION = 'GET'
*S** ASSIGN WFISR25D.WW-STUDENT-ID = ##STUDENT-ID
*S** ASSIGN WFISR25D.WF-FAO = ##FAO-ID
*S** CALLNAT 'WFISR25O' WW-GDA
*S** WFISR25D
*S** WFISR25D-ID
*S** WFISR25R
*S** WWAOBJ
*S** /*
*S** /* Load data needed for calc into processing buffer
*S** /* and call FINANCIER Need Analysis Calculation
*S** PERFORM LOAD-NAC-DATA
*S** PERFORM SET-UP-RESULTS
*S** CALLNAT 'WFNAC25N' WW-GDA WFNAC25D WFFED25D WFFED25D-ID
*S** WFMCA25D WFMCA25D-ID
*S** WFNSL25D WFNSL25D-ID
*S** /*
*S** /* Unload M1 and M2 calculations and update summary calculations
*S** IF NOT #NO-UPDATE
*S** PERFORM UNLOAD-CALCS
*S** PERFORM CALC-NEED
*S** ASSIGN WWAOBJ.#FUNCTION = 'UPDATE'
*S** CALLNAT 'WFAIDYNO' WW-GDA
*S** WFAIDYND
*S** WFAIDYND-ID
*S** WFAIDYNR
*S** WWAOBJ
*S** END-IF
*S** /*
*S** /* Exit repeat loop
*S** ESCAPE BOTTOM(PROG.)
*S**END-REPEAT
*S***
*S**MOVE BY POSITION WW-GDA TO WW-PDA
*S***
*S***
*S*************************************************************************
*S**DEFINE LOAD-NAC-DATA
*S*************************************************************************
*S** /*
*S** /* Load Student information
*S** MOVE WWSTDNCD.WW-ST-SSN TO #NAC-ST-SSN
*S** MOVE WWSTDNCD.WW-ST-DOB TO #NAC-ST-DOB
*S** MOVE WWSTDNCD.WW-ST-NM-LAST TO #NAC-ST-NM-LAST
*S** MOVE WWSTDNCD.WW-ST-NM-FIRST TO #NAC-ST-NM-FIRST
*S** MOVE WWSTDNCD.WW-ST-AD1-STATE TO #NAC-ST-AD-STATE
*S** MOVE WWSTDNCD.WW-ST-ALIEN TO #NAC-ST-ALIEN
*S** /*
*S** /* Load AidYear information
*S** MOVE WFAIDYND.WF-AY-N-DUR TO #NAC-ENR-DUR
*S** /*
*S** /* Load Federal information
*S** MOVE WFFED25D.WF-FE-F-PROF-JUDG TO #NAC-PROF-JUDG
*S**END-SUBROUTINE /* LOAD-NAC-DATA
*S***
*S*************************************************************************
*S**DEFINE SUBROUTINE SET-UP-RESULTS
*S*************************************************************************
*S** /*
*S** MOVE WFAIDYND.WF-AY-N-M1 TO WFMCA25D.WF-MC-F9-METH
*S** MOVE WFAIDYND.WF-AY-N-M2 TO WFMCA25D.WF-MC-FM-METH
*S** MOVE WFAIDYND.WF-AY-N-DUR TO WFMCA25D.WF-MC-F9-DUR
*S** WFMCA25D.WF-MC-FM-DUR
*S**END-SUBROUTINE /* SET-UP-RESULTS
*S***
*S*************************************************************************
*S**DEFINE SUBROUTINE UNLOAD-CALCS
*S*************************************************************************
*S** /*
*S** /* Unload the Methodology 1 calculations
*S** ASSIGN WFAIDYND.WF-AY-M1-DEP = WFMCA25D.WF-MC-F9-DEP
*S** ASSIGN WFAIDYND.WF-AY-M1-FISAP = WFMCA25D.WF-MC-F9-FISAP
*S** ASSIGN WFAIDYND.WF-AY-M1-SANAL = WFMCA25D.WF-MC-F9-S-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M1-SC = WFMCA25D.WF-MC-F9-S-CS
*S** ASSIGN WFAIDYND.WF-AY-M1-SCI = WFMCA25D.WF-MC-F9-S-CFI
*S** ASSIGN WFAIDYND.WF-AY-M1-SCA = WFMCA25D.WF-MC-F9-S-CFA
*S** ASSIGN WFAIDYND.WF-AY-M1-PANAL = WFMCA25D.WF-MC-F9-P-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M1-PC = WFMCA25D.WF-MC-F9-P-CS
*S** ASSIGN WFAIDYND.WF-AY-M1-PCI = WFMCA25D.WF-MC-F9-P-CFI
*S** ASSIGN WFAIDYND.WF-AY-M1-PCA = WFMCA25D.WF-MC-F9-P-CFA
*S** IF WFISR25D.WF-IS-C-SAI NE SPACE
*S** RESET #CNVT-NEG
*S** MOVE SUBSTRING(WFISR25D.WF-IS-C-SAI,1,1) TO #CNVT-BYTE
*S** IF #CNVT-BYTE = '-'
*S** ASSIGN #CNVT-NEG = TRUE
*S** EXAMINE WFISR25D.WF-IS-C-SAI FOR '-' DELETE
*S** END-IF
*S** MOVE RIGHT JUSTIFIED WFISR25D.WF-IS-C-SAI TO #6-BYTE-FIELD
*S** EXAMINE #6-BYTE-FIELD FOR ' ' REPLACE WITH '0'
*S** IF #6-BYTE-FIELD = MASK(999999)
*S** ASSIGN #6-BYTE-FIELD-N = VAL(#6-BYTE-FIELD)
*S** IF #CNVT-NEG
*S** MULTIPLY #6-BYTE-FIELD-N BY -1
*S** END-IF
*S** ASSIGN WFAIDYND.WF-AY-M1-FC = #6-BYTE-FIELD-N
*S** END-IF
*S** END-IF
*S** /*
*S** /* Unload the Methodology 2 calculations
*S** ASSIGN WFAIDYND.WF-AY-M2-DEP = WFMCA25D.WF-MC-FM-DEP
*S** ASSIGN WFAIDYND.WF-AY-M2-FISAP = WFMCA25D.WF-MC-FM-FISAP
*S** ASSIGN WFAIDYND.WF-AY-M2-SANAL = WFMCA25D.WF-MC-FM-S-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M2-SC = WFMCA25D.WF-MC-FM-S-CS
*S** ASSIGN WFAIDYND.WF-AY-M2-SCI = WFMCA25D.WF-MC-FM-S-CFI
*S** ASSIGN WFAIDYND.WF-AY-M2-SCA = WFMCA25D.WF-MC-FM-S-CFA
*S** ASSIGN WFAIDYND.WF-AY-M2-PANAL = WFMCA25D.WF-MC-FM-P-ANAL
*S** ASSIGN WFAIDYND.WF-AY-M2-PC = WFMCA25D.WF-MC-FM-P-CS
*S** ASSIGN WFAIDYND.WF-AY-M2-PCI = WFMCA25D.WF-MC-FM-P-CFI
*S** ASSIGN WFAIDYND.WF-AY-M2-PCA = WFMCA25D.WF-MC-FM-P-CFA
*S** /*
*S** /* Set M2 FC to SAI from ISIR
*S** ASSIGN WFAIDYND.WF-AY-M2-FC = #6-BYTE-FIELD-N
*S**END-SUBROUTINE /* UNLOAD-CALCS
*S***
*S*************************************************************************
*S**DEFINE SUBROUTINE CALC-NEED
*S*************************************************************************
*S** /*
*S** /* Calculate NEED fields
*S** IF WFAIDYND.WF-AY-M1-FC < 0
*S** COMPUTE #HOLD-NEED = WFAIDYND.WF-AY-M1-BUDGET
*S** ELSE
*S** COMPUTE #HOLD-NEED = WFAIDYND.WF-AY-M1-BUDGET -
*S** WFAIDYND.WF-AY-M1-FC
*S** END-IF
*S** DECIDE FOR FIRST CONDITION
*S** WHEN #HOLD-NEED > 99999
*S** ASSIGN WFAIDYND.WF-AY-M1-NEED = 99999
*S** WHEN #HOLD-NEED < 0
*S** ASSIGN WFAIDYND.WF-AY-M1-NEED = 0
*S** WHEN NONE
*S** ASSIGN WFAIDYND.WF-AY-M1-NEED = #HOLD-NEED
*S** END-DECIDE
*S** /*
*S** IF WFAIDYND.WF-AY-M1-FC < 0
*S** COMPUTE #HOLD-NEED = WFAIDYND.WF-AY-M2-BUDGET
*S** ELSE
*S** COMPUTE #HOLD-NEED = WFAIDYND.WF-AY-M2-BUDGET -
*S** WFAIDYND.WF-AY-M2-FC
*S** END-IF
*S** DECIDE FOR FIRST CONDITION
*S** WHEN #HOLD-NEED > 99999
*S** ASSIGN WFAIDYND.WF-AY-M2-NEED = 99999
*S** WHEN #HOLD-NEED < 0
*S** ASSIGN WFAIDYND.WF-AY-M2-NEED = 0
*S** WHEN NONE
*S** ASSIGN WFAIDYND.WF-AY-M2-NEED = #HOLD-NEED
*S** END-DECIDE
*S**END-SUBROUTINE /* CALC-NEED
*S**END
8 differences: 68 lines, 59 inline differences in 34 changed lines
Added(6,30)
Deleted(28,8)
Changed(34)
Changed in changed(21)