DUTAS re-platformed to Raincode - Initial Source Code
This commit is contained in:
347
CICS/DTSCU101.cob
Normal file
347
CICS/DTSCU101.cob
Normal file
@ -0,0 +1,347 @@
|
||||
00001 IDENTIFICATION DIVISION. 11/12/98
|
||||
00002 PROGRAM-ID. DTSCU101. DTSCU101
|
||||
00003 AUTHOR. TRICOASTAL CONSULTING LTD. LV005
|
||||
00004 DATE-WRITTEN. MAY 1994. DTSCU101
|
||||
00005 DATE-COMPILED. DTSCU101
|
||||
00006 SKIP3 DTSCU101
|
||||
00007 ***** DTSCU101
|
||||
00008 * DTSCU101
|
||||
00009 * FUNCTION: INTEREST CHARGE/WAIVER CALCULATION. CL**2
|
||||
00010 * DTSCU101
|
||||
00011 * DTSCU101
|
||||
00012 * MODIFICATION LOG: DTSCU101
|
||||
00013 * DTSCU101
|
||||
00014 * 05/22/94 INITIAL DEVELOPMENT. DTSCU101
|
||||
00015 * WORK ORDER: PROGRAMMER: EHH DTSCU101
|
||||
00016 * DTSCU101
|
||||
00017 * 11/12/1998 REWRITTEN FOR DC. CL**2
|
||||
00018 * REFERENCE: DC DEVELOPMENT PROGRAMMER: EHH CL**2
|
||||
00019 * CL**4
|
||||
00020 * 11/12/1998 CLONED FROM DTSBU101. CL**4
|
||||
00021 * REFERENCE: DC DEVELOPMENT PROGRAMMER: EHH CL**4
|
||||
00022 * CL**2
|
||||
00023 * MM/DD/YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX CL**2
|
||||
00024 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX CL**2
|
||||
00025 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX CL**2
|
||||
00026 * DTSCU101
|
||||
00027 * DTSCU101
|
||||
00028 * DESCRIPTION: DTSCU101
|
||||
00029 * DTSCU101
|
||||
00030 ***** DTSCU101
|
||||
00031 SKIP3 DTSCU101
|
||||
00032 ENVIRONMENT DIVISION. DTSCU101
|
||||
00033 EJECT DTSCU101
|
||||
00034 DATA DIVISION. DTSCU101
|
||||
00035 SKIP3 DTSCU101
|
||||
00036 WORKING-STORAGE SECTION. DTSCU101
|
||||
000365 77 PAN-VALET PICTURE X(24) VALUE '005DTSCU101 11/12/98'. DTSCU101
|
||||
00037 CL**2
|
||||
00038 01 WRK-AREA. DTSCU101
|
||||
00039 05 WRK-ABEND-CD PIC X(04) VALUE 'U101'. CL**4
|
||||
00040 CL**2
|
||||
00041 05 DEFAULT-INT-RATE PIC S9(01)V9(04) COMP-3 DTSCU101
|
||||
00042 VALUE +0.1800. DTSCU101
|
||||
00043 CL**2
|
||||
00044 CL**2
|
||||
00045 05 INT-TABLE. DTSCU101
|
||||
00046 10 INT-SUB1 PIC S9(04) COMP. DTSCU101
|
||||
00047 CL**3
|
||||
00048 10 INT-SPAN-CNT PIC S9(04) COMP. DTSCU101
|
||||
00049 CL**2
|
||||
00050 10 INT-SPAN OCCURS 3 TIMES DTSCU101
|
||||
00051 INDEXED BY INT-IDX. DTSCU101
|
||||
00052 15 INT-START-MONTH PIC S9(08) COMP. CL**3
|
||||
00053 15 INT-END-MONTH PIC S9(08) COMP. CL**3
|
||||
00054 15 INT-MONTH-CNT PIC S9(08) COMP. CL**3
|
||||
00055 15 INT-RATE PIC S9(01)V9(04) COMP-3. DTSCU101
|
||||
00056 CL**2
|
||||
00057 CL**2
|
||||
00058 05 LOOP-MONTH PIC S9(08) COMP. CL**3
|
||||
00059 CL**2
|
||||
00060 05 COUNTED-IND PIC X(01). DTSCU101
|
||||
00061 CL**2
|
||||
00062 05 INT-CHARGE OCCURS 3 TIMES PIC S9(09)V9(04) COMP-3. DTSCU101
|
||||
00063 CL**2
|
||||
00064 05 INT-MONTH-RATE PIC S9(01)V9(08) COMP-3. CL**3
|
||||
00065 CL**2
|
||||
00066 05 WRK-RECEIVED-DATE PIC S9(09) COMP-3. DTSCU101
|
||||
00067 CL**2
|
||||
00068 05 WRK-INT-CHARGE-CHNG PIC S9(09)V9(02) COMP-3. DTSCU101
|
||||
00069 EJECT DTSCU101
|
||||
00070 01 L001-LINK-AREA. DTSCU101
|
||||
00071 ++INCLUDE DTSIL001 CL**2
|
||||
00072 EJECT DTSCU101
|
||||
00073 LINKAGE SECTION. DTSCU101
|
||||
00074 SKIP3 DTSCU101
|
||||
00075 01 DFHCOMMAREA. CL**4
|
||||
00076 ++INCLUDE DTSIL101 CL**2
|
||||
00077 EJECT DTSCU101
|
||||
00078 PROCEDURE DIVISION. CL**4
|
||||
00079 CL**2
|
||||
00080 CL**2
|
||||
00081 MOVE +0 TO L101-INT-CHARGE-CHNG DTSCU101
|
||||
00082 L101-INT-WAIVE-CHNG CL**2
|
||||
00083 L101-INT-PER-MONTH. CL**2
|
||||
00084 CL**2
|
||||
00085 CL**2
|
||||
00086 MOVE L101-RECEIVED-DATE TO WRK-RECEIVED-DATE. DTSCU101
|
||||
00087 CL**2
|
||||
00088 MOVE +0 TO WRK-INT-CHARGE-CHNG. DTSCU101
|
||||
00089 CL**2
|
||||
00090 PERFORM P1000-INT-CHARGE THRU P1000-EXIT. DTSCU101
|
||||
00091 CL**2
|
||||
00092 MOVE WRK-INT-CHARGE-CHNG TO L101-INT-CHARGE-CHNG. DTSCU101
|
||||
00093 CL**2
|
||||
00094 CL**2
|
||||
00095 IF L101-PER-MONTH-YES-88 CL**2
|
||||
00096 MOVE L101-RECEIVED-DATE TO L001-FED-8-DATE-9 DTSCU101
|
||||
00097 PERFORM S001-FROM-FED-8 THRU S001-EXIT DTSCU101
|
||||
00098 IF L001-INVALID-DATE DTSCU101
|
||||
00099 PERFORM S899-ABEND THRU S899-EXIT CL**4
|
||||
00100 END-IF DTSCU101
|
||||
00101 PERFORM S1000-LAST-DAY-OF-NEXT-MONTH THRU S1000-EXIT CL**3
|
||||
00102 MOVE L001-FED-8-DATE-9 TO WRK-RECEIVED-DATE DTSCU101
|
||||
00103 MOVE +0 TO WRK-INT-CHARGE-CHNG DTSCU101
|
||||
00104 PERFORM P1000-INT-CHARGE THRU P1000-EXIT DTSCU101
|
||||
00105 COMPUTE L101-INT-PER-MONTH CL**2
|
||||
00106 = WRK-INT-CHARGE-CHNG - L101-INT-CHARGE-CHNG. DTSCU101
|
||||
00107 CL**2
|
||||
00108 CL**2
|
||||
00109 PERFORM P4000-WAIVE THRU P4000-EXIT. CL**2
|
||||
00110 CL**2
|
||||
00111 CL**4
|
||||
00112 EXEC CICS CL**4
|
||||
00113 RETURN CL**4
|
||||
00114 END-EXEC. CL**4
|
||||
00115 CL**4
|
||||
00116 CL**2
|
||||
00117 GOBACK. DTSCU101
|
||||
00118 EJECT DTSCU101
|
||||
00119 P1000-INT-CHARGE. DTSCU101
|
||||
00120 IF WRK-RECEIVED-DATE > L101-TAX-DUE-DATE DTSCU101
|
||||
00121 NEXT SENTENCE DTSCU101
|
||||
00122 ELSE DTSCU101
|
||||
00123 GO TO P1000-EXIT. DTSCU101
|
||||
00124 CL**2
|
||||
00125 IF L101-INT-CHARGE-MANUAL-88 DTSCU101
|
||||
00126 GO TO P1000-EXIT. DTSCU101
|
||||
00127 CL**2
|
||||
00128 PERFORM P1100-BUILD-INT-TABLE THRU P1100-EXIT. DTSCU101
|
||||
00129 CL**2
|
||||
00130 MOVE +0 TO INT-CHARGE (1) DTSCU101
|
||||
00131 INT-CHARGE (2) DTSCU101
|
||||
00132 INT-CHARGE (3). DTSCU101
|
||||
00133 CL**2
|
||||
00134 PERFORM P1200-COMPUTE-CHARGE THRU P1200-EXIT DTSCU101
|
||||
00135 VARYING INT-SUB1 FROM 1 BY 1 DTSCU101
|
||||
00136 UNTIL INT-SUB1 > INT-SPAN-CNT. DTSCU101
|
||||
00137 CL**2
|
||||
00138 COMPUTE WRK-INT-CHARGE-CHNG ROUNDED DTSCU101
|
||||
00139 = INT-CHARGE (1) + INT-CHARGE (2) + INT-CHARGE (3). DTSCU101
|
||||
00140 P1000-EXIT. DTSCU101
|
||||
00141 EXIT. DTSCU101
|
||||
00142 SKIP3 DTSCU101
|
||||
00143 P1100-BUILD-INT-TABLE. DTSCU101
|
||||
00144 MOVE +0 TO INT-SPAN-CNT. DTSCU101
|
||||
00145 CL**2
|
||||
00146 PERFORM P1110-INT-SPAN THRU P1110-EXIT DTSCU101
|
||||
00147 VARYING L101-INT-IDX FROM 1 BY 1 DTSCU101
|
||||
00148 UNTIL L101-INT-IDX > L101-INT-CNT. DTSCU101
|
||||
00149 CL**2
|
||||
00150 ADD +1 TO INT-SPAN-CNT. DTSCU101
|
||||
00151 CL**2
|
||||
00152 MOVE L101-TAX-DUE-DATE TO L001-FED-8-DATE-9. DTSCU101
|
||||
00153 CL**2
|
||||
00154 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSCU101
|
||||
00155 CL**2
|
||||
00156 IF L001-INVALID-DATE DTSCU101
|
||||
00157 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00158 CL**2
|
||||
00159 ADD +1 TO L001-JUL-ABS-DAY. DTSCU101
|
||||
00160 CL**2
|
||||
00161 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. CL**3
|
||||
00162 CL**2
|
||||
00163 IF L001-INVALID-DATE CL**3
|
||||
00164 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00165 CL**3
|
||||
00166 COMPUTE INT-START-MONTH (INT-SPAN-CNT) CL**3
|
||||
00167 = (L001-FED-8-YR * 12) + L001-FED-8-MO. CL**3
|
||||
00168 CL**3
|
||||
00169 MOVE WRK-RECEIVED-DATE TO L001-FED-8-DATE-9. DTSCU101
|
||||
00170 CL**2
|
||||
00171 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSCU101
|
||||
00172 CL**2
|
||||
00173 IF L001-INVALID-DATE DTSCU101
|
||||
00174 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00175 CL**3
|
||||
00176 COMPUTE INT-END-MONTH (INT-SPAN-CNT) CL**3
|
||||
00177 = (L001-FED-8-YR * 12) + L001-FED-8-MO. CL**3
|
||||
00178 CL**2
|
||||
00179 MOVE +0 TO INT-MONTH-CNT (INT-SPAN-CNT). CL**3
|
||||
00180 CL**2
|
||||
00181 MOVE DEFAULT-INT-RATE TO INT-RATE (INT-SPAN-CNT). DTSCU101
|
||||
00182 CL**2
|
||||
00183 IF INT-SPAN-CNT = +1 DTSCU101
|
||||
00184 COMPUTE INT-MONTH-CNT (1) CL**3
|
||||
00185 = INT-END-MONTH (1) - INT-START-MONTH (1) + 1 CL**3
|
||||
00186 GO TO P1100-EXIT. DTSCU101
|
||||
00187 CL**2
|
||||
00188 MOVE INT-START-MONTH (INT-SPAN-CNT) TO LOOP-MONTH. CL**3
|
||||
00189 CL**2
|
||||
00190 PERFORM P1120-EXAMINE-MONTH THRU P1120-EXIT CL**3
|
||||
00191 VARYING LOOP-MONTH FROM LOOP-MONTH BY +1 CL**3
|
||||
00192 UNTIL LOOP-MONTH > INT-END-MONTH (INT-SPAN-CNT). CL**3
|
||||
00193 P1100-EXIT. DTSCU101
|
||||
00194 EXIT. DTSCU101
|
||||
00195 SKIP3 DTSCU101
|
||||
00196 P1110-INT-SPAN. DTSCU101
|
||||
00197 IF (L101-INT-END-DATE (L101-INT-IDX) < L101-TAX-DUE-DATE) DTSCU101
|
||||
00198 OR DTSCU101
|
||||
00199 (L101-INT-START-DATE (L101-INT-IDX) DTSCU101
|
||||
00200 > WRK-RECEIVED-DATE) DTSCU101
|
||||
00201 GO TO P1110-EXIT. DTSCU101
|
||||
00202 CL**2
|
||||
00203 ADD +1 TO INT-SPAN-CNT. DTSCU101
|
||||
00204 CL**2
|
||||
00205 MOVE L101-INT-START-DATE (L101-INT-IDX) DTSCU101
|
||||
00206 TO L001-FED-8-DATE-9. DTSCU101
|
||||
00207 CL**2
|
||||
00208 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSCU101
|
||||
00209 CL**2
|
||||
00210 IF L001-INVALID-DATE DTSCU101
|
||||
00211 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00212 CL**2
|
||||
00213 COMPUTE INT-START-MONTH (INT-SPAN-CNT) CL**3
|
||||
00214 = (L001-FED-8-YR * 12) + L001-FED-8-MO. CL**3
|
||||
00215 CL**2
|
||||
00216 MOVE L101-INT-END-DATE (L101-INT-IDX) DTSCU101
|
||||
00217 TO L001-FED-8-DATE-9. DTSCU101
|
||||
00218 CL**2
|
||||
00219 PERFORM S001-FROM-FED-8 THRU S001-EXIT. DTSCU101
|
||||
00220 CL**2
|
||||
00221 IF L001-INVALID-DATE DTSCU101
|
||||
00222 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00223 CL**3
|
||||
00224 COMPUTE INT-END-MONTH (INT-SPAN-CNT) CL**3
|
||||
00225 = (L001-FED-8-YR * 12) + L001-FED-8-MO. CL**3
|
||||
00226 CL**2
|
||||
00227 MOVE L101-INT-RATE (L101-INT-IDX) DTSCU101
|
||||
00228 TO INT-RATE (INT-SPAN-CNT). DTSCU101
|
||||
00229 CL**2
|
||||
00230 MOVE +0 TO INT-MONTH-CNT (INT-SPAN-CNT). CL**3
|
||||
00231 P1110-EXIT. DTSCU101
|
||||
00232 EXIT. DTSCU101
|
||||
00233 SKIP3 DTSCU101
|
||||
00234 P1120-EXAMINE-MONTH. CL**3
|
||||
00235 MOVE 'N' TO COUNTED-IND. DTSCU101
|
||||
00236 CL**2
|
||||
00237 PERFORM P1121-INT-ENTRY-LOOP THRU P1121-EXIT DTSCU101
|
||||
00238 VARYING INT-IDX FROM 1 BY 1 DTSCU101
|
||||
00239 UNTIL (COUNTED-IND = 'Y') DTSCU101
|
||||
00240 OR DTSCU101
|
||||
00241 (INT-IDX > INT-SPAN-CNT). DTSCU101
|
||||
00242 P1120-EXIT. DTSCU101
|
||||
00243 EXIT. DTSCU101
|
||||
00244 SKIP3 DTSCU101
|
||||
00245 P1121-INT-ENTRY-LOOP. DTSCU101
|
||||
00246 IF (LOOP-MONTH < INT-START-MONTH (INT-IDX)) CL**3
|
||||
00247 OR DTSCU101
|
||||
00248 (LOOP-MONTH > INT-END-MONTH (INT-IDX)) CL**3
|
||||
00249 NEXT SENTENCE DTSCU101
|
||||
00250 ELSE DTSCU101
|
||||
00251 ADD +1 TO INT-MONTH-CNT (INT-IDX) CL**3
|
||||
00252 MOVE 'Y' TO COUNTED-IND. DTSCU101
|
||||
00253 P1121-EXIT. DTSCU101
|
||||
00254 EXIT. DTSCU101
|
||||
00255 SKIP3 DTSCU101
|
||||
00256 P1200-COMPUTE-CHARGE. DTSCU101
|
||||
00257 IF INT-MONTH-CNT (INT-SUB1) = +0 CL**3
|
||||
00258 GO TO P1200-EXIT. DTSCU101
|
||||
00259 CL**2
|
||||
00260 COMPUTE INT-MONTH-RATE ROUNDED CL**3
|
||||
00261 = INT-RATE (INT-SUB1) / 12 CL**3
|
||||
00262 ON SIZE ERROR DTSCU101
|
||||
00263 MOVE +0 TO INT-MONTH-RATE. CL**3
|
||||
00264 CL**2
|
||||
00265 COMPUTE INT-CHARGE (INT-SUB1) ROUNDED DTSCU101
|
||||
00266 = INT-MONTH-CNT (INT-SUB1) * L101-PAID-CHNG CL**3
|
||||
00267 * INT-MONTH-RATE CL**3
|
||||
00268 ON SIZE ERROR DTSCU101
|
||||
00269 MOVE +0 TO INT-CHARGE (INT-SUB1). DTSCU101
|
||||
00270 P1200-EXIT. DTSCU101
|
||||
00271 EXIT. DTSCU101
|
||||
00272 EJECT DTSCU101
|
||||
00273 P4000-WAIVE. CL**2
|
||||
00274 IF L101-INT-CHARGE-CHNG > +0 DTSCU101
|
||||
00275 NEXT SENTENCE DTSCU101
|
||||
00276 ELSE DTSCU101
|
||||
00277 GO TO P4000-EXIT. CL**2
|
||||
00278 CL**2
|
||||
00279 IF L101-WAIVE-INT-YES-88 CL**2
|
||||
00280 MOVE L101-INT-CHARGE-CHNG TO L101-INT-WAIVE-CHNG CL**2
|
||||
00281 GO TO P4000-EXIT. CL**2
|
||||
00282 CL**2
|
||||
00283 IF (L101-RECEIVED-DATE < L101-WAIVE-INT-START-DATE) CL**2
|
||||
00284 OR DTSCU101
|
||||
00285 (L101-RECEIVED-DATE > L101-WAIVE-INT-END-DATE) CL**2
|
||||
00286 NEXT SENTENCE DTSCU101
|
||||
00287 ELSE DTSCU101
|
||||
00288 MOVE L101-INT-CHARGE-CHNG TO L101-INT-WAIVE-CHNG. CL**2
|
||||
00289 P4000-EXIT. CL**2
|
||||
00290 EXIT. DTSCU101
|
||||
00291 EJECT DTSCU101
|
||||
00292 S1000-LAST-DAY-OF-NEXT-MONTH. CL**3
|
||||
00293 ADD 01 TO L001-FED-8-MO. CL**3
|
||||
00294 CL**3
|
||||
00295 IF L001-FED-8-MO > 12 CL**3
|
||||
00296 MOVE 01 TO L001-FED-8-MO CL**3
|
||||
00297 ADD 1 TO L001-FED-8-YR. CL**3
|
||||
00298 CL**3
|
||||
00299 CL**3
|
||||
00300 ADD 01 TO L001-FED-8-MO. CL**3
|
||||
00301 CL**3
|
||||
00302 IF L001-FED-8-MO > 12 CL**3
|
||||
00303 MOVE 01 TO L001-FED-8-MO CL**3
|
||||
00304 ADD 1 TO L001-FED-8-YR. CL**3
|
||||
00305 CL**3
|
||||
00306 CL**3
|
||||
00307 MOVE 01 TO L001-FED-8-DA. CL**3
|
||||
00308 CL**3
|
||||
00309 PERFORM S001-FROM-FED-8 THRU S001-EXIT. CL**3
|
||||
00310 CL**3
|
||||
00311 IF L001-INVALID-DATE CL**3
|
||||
00312 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00313 CL**3
|
||||
00314 SUBTRACT 1 FROM L001-JUL-ABS-DAY. CL**3
|
||||
00315 CL**3
|
||||
00316 PERFORM S001-FROM-ABS-DAY THRU S001-EXIT. CL**3
|
||||
00317 CL**3
|
||||
00318 IF L001-INVALID-DATE CL**3
|
||||
00319 PERFORM S899-ABEND THRU S899-EXIT. CL**4
|
||||
00320 S1000-EXIT. CL**3
|
||||
00321 EXIT. CL**3
|
||||
00322 EJECT CL**3
|
||||
00323 S001-FROM-FED-8. DTSCU101
|
||||
00324 SET L001-FROM-FED-8 TO TRUE. DTSCU101
|
||||
00325 GO TO S001-DATE. DTSCU101
|
||||
00326 CL**2
|
||||
00327 S001-FROM-ABS-DAY. DTSCU101
|
||||
00328 SET L001-FROM-ABS-DAY TO TRUE. DTSCU101
|
||||
00329 GO TO S001-DATE. DTSCU101
|
||||
00330 CL**2
|
||||
00331 S001-DATE. DTSCU101
|
||||
00332 EXEC CICS CL**4
|
||||
00333 LINK CL**4
|
||||
00334 PROGRAM ('DTSCU001') CL**4
|
||||
00335 COMMAREA (L001-LINK-AREA) CL**4
|
||||
00336 END-EXEC. CL**4
|
||||
00337 S001-EXIT. DTSCU101
|
||||
00338 EXIT. DTSCU101
|
||||
00339 SKIP3 DTSCU101
|
||||
00340 S899-ABEND. CL**4
|
||||
00341 EXEC CICS CL**4
|
||||
00342 ABEND CL**4
|
||||
00343 ABCODE (WRK-ABEND-CD) CL**5
|
||||
00344 END-EXEC. CL**4
|
||||
00345 S899-EXIT. CL**4
|
||||
00346 EXIT. DTSCU101
|
||||
Reference in New Issue
Block a user