DUTAS re-platformed to Raincode - Initial Source Code

This commit is contained in:
Neeraj Kumar
2025-07-21 07:44:09 -04:00
commit ca3572c5df
2773 changed files with 798221 additions and 0 deletions

347
CICS/DTSCU101.cob Normal file
View 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