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

496
Batch/DTSBU205.cob Normal file
View File

@ -0,0 +1,496 @@
00001 IDENTIFICATION DIVISION. 09/21/10
00002 PROGRAM-ID. DTSBU205. DTSBU205
00003 AUTHOR. NGC. LV001
00004 DATE-WRITTEN. APRIL 2010. DTSBU205
00005 DATE-COMPILED. DTSBU205
00006 SKIP3 DTSBU205
00007 ***** DTSBU205
00008 * DTSBU205
00009 * FUNCTION: PARSE COMMA DELIMITED DATA DTSBU205
00010 * SEPARATE EACH DATA FIELD, DTSBU205
00011 * AND RETURN IT TO THE CALLING PROGRAM. DTSBU205
00012 * DTSBU205
00013 ***** DTSBU205
00014 SKIP3 DTSBU205
00015 ENVIRONMENT DIVISION. DTSBU205
00016 DATA DIVISION. DTSBU205
00017 DTSBU205
00018 WORKING-STORAGE SECTION. DTSBU205
000185 77 PAN-VALET PICTURE X(24) VALUE '001DTSBU205 09/21/10'. DTSBU205
00019 01 WORK-AREA. DTSBU205
00020 05 W-ABEND-CD PIC S9(04) COMP VALUE +200.DTSBU205
00021 05 ABEND-MSG PIC X(60). DTSBU205
00022 DTSBU205
00023 05 W-ERROR-IND PIC X(01) VALUE 'N'. DTSBU205
00024 88 W-ERROR-YES-88 VALUE 'Y'. DTSBU205
00025 88 W-ERROR-NO-88 VALUE 'N'. DTSBU205
00026 DTSBU205
00027 05 W-INTEGER PIC S9(11) COMP-3. DTSBU205
00028 05 W-INTEGER-X PIC X(11). DTSBU205
00029 05 W-INTEGER-9 REDEFINES W-INTEGER-X DTSBU205
00030 PIC 9(11). DTSBU205
00031 05 W-FRACTION-X PIC X(11). DTSBU205
00032 05 W-FRACTION-9 PIC SV9(11). DTSBU205
00033 DTSBU205
00034 05 W-FRACTION PIC SV9(11) COMP-3. DTSBU205
00035 DTSBU205
00036 DTSBU205
00037 05 W-MULTIPLIER PIC S9(11)V9(04) COMP-3 DTSBU205
00038 VALUE +0. DTSBU205
00039 05 W-DIGIT PIC 9. DTSBU205
00040 05 W-AMT-INT PIC S9(11) COMP-3 DTSBU205
00041 VALUE +0. DTSBU205
00042 05 W-AMT-FRACTION PIC SV9(11) COMP-3 DTSBU205
00043 VALUE +0. DTSBU205
00044 05 W-INT PIC S9(11) COMP-3 DTSBU205
00045 VALUE +0. DTSBU205
00046 05 SUB PIC S9(04) COMP. DTSBU205
00047 05 W-DECIMAL-NDX PIC S9(04) COMP. DTSBU205
00048 DTSBU205
00049 05 W-DATE PIC X(10). DTSBU205
00050 05 W-SLASH-DATE PIC X(10). DTSBU205
00051 05 FILLER REDEFINES W-SLASH-DATE. DTSBU205
00052 10 W-SLASH-DT-MM PIC X(02). DTSBU205
00053 10 FILLER PIC X(01). DTSBU205
00054 10 W-SLASH-DT-DD PIC X(02). DTSBU205
00055 10 FILLER PIC X(01). DTSBU205
00056 10 W-SLASH-DT-CCYY PIC X(04). DTSBU205
00057 DTSBU205
00058 05 W-SLASH-QTR PIC X(06). DTSBU205
00059 05 FILLER REDEFINES W-SLASH-QTR. DTSBU205
00060 10 W-SLASH-QTR-CCYY PIC X(04). DTSBU205
00061 10 FILLER PIC X(01). DTSBU205
00062 10 W-SLASH-QTR-Q PIC X(01). DTSBU205
00063 DTSBU205
00064 05 PSUB PIC S9(04) COMP. DTSBU205
00065 05 ISUB1 PIC S9(04) COMP. DTSBU205
00066 05 ISUB2 PIC S9(04) COMP. DTSBU205
00067 05 ISUB3 PIC S9(04) COMP. DTSBU205
00068 05 ISUB4 PIC S9(04) COMP. DTSBU205
00069 05 ISUB5 PIC S9(04) COMP. DTSBU205
00070 05 ISUB6 PIC S9(04) COMP. DTSBU205
00071 05 W-SLASH1 PIC S9(04) COMP. DTSBU205
00072 05 W-SLASH2 PIC S9(04) COMP. DTSBU205
00073 05 W-CURR-FIELD PIC S9(04) COMP. DTSBU205
00074 05 W-LAST-FIELD PIC S9(04) COMP. DTSBU205
00075 05 W-LAST-FIELD-LEN PIC S9(04) COMP. DTSBU205
00076 DTSBU205
00077 05 W-INPUT-LENGTH PIC S9(04) COMP DTSBU205
00078 VALUE +502. DTSBU205
00079 05 W-INPUT-LINE PIC X(500). DTSBU205
00080 05 W-PARSE-COMPLETE-IND PIC X(01). DTSBU205
00081 88 W-PARSE-COMPLETE-YES-88 VALUE 'Y'. DTSBU205
00082 88 W-PARSE-COMPLETE-NO-88 VALUE 'N'. DTSBU205
00083 05 W-NON-NUMERIC-IND PIC X(01). DTSBU205
00084 88 W-NON-NUMERIC-YES-88 VALUE 'Y'. DTSBU205
00085 88 W-NON-NUMERIC-NO-88 VALUE 'N'. DTSBU205
00086 05 W-FIELD-LENGTH PIC S9(04) COMP. DTSBU205
00087 05 W-CONV-LINE PIC X(32). DTSBU205
00088 DTSBU205
00089 05 W-MDY PIC X(04). DTSBU205
00090 05 FILLER REDEFINES W-MDY. DTSBU205
00091 10 FILLER PIC X(02). DTSBU205
00092 10 W-MDY-X-2 PIC X(02). DTSBU205
00093 10 FILLER REDEFINES W-MDY-X-2. DTSBU205
00094 15 FILLER PIC X(01). DTSBU205
00095 15 W-MDY-X-1 PIC X(01). DTSBU205
00096 DTSBU205
00097 DTSBU205
00098 05 AMT-DISP1 PIC --------9.99. DTSBU205
00099 05 AMT-DISP2 PIC --------9.99. DTSBU205
00100 05 AMT-DISP3 PIC --------9.99. DTSBU205
00101 05 AMT-DISP4 PIC --------9.99. DTSBU205
00102 05 AMT-DISP-FRACTION PIC .9(11). DTSBU205
00103 DTSBU205
00104 05 CNT-DISP1 PIC ------9. DTSBU205
00105 DTSBU205
00106 01 L001-LINK-AREA. DTSBU205
00107 ++INCLUDE DTSIL001 DTSBU205
00108 DTSBU205
00109 LINKAGE SECTION. DTSBU205
00110 DTSBU205
00111 01 L205-LINK-AREA. DTSBU205
00112 ++INCLUDE DTSIL205 DTSBU205
00113 DTSBU205
00114 PROCEDURE DIVISION USING L205-LINK-AREA. DTSBU205
00115 DTSBU205
00116 PERFORM I0000-INIT THRU I0000-EXIT. DTSBU205
00117 DTSBU205
00118 PERFORM P0000-PROCESS THRU P0000-EXIT. DTSBU205
00119 DTSBU205
00120 GOBACK. DTSBU205
00121 DTSBU205
00122 I0000-INIT. DTSBU205
00123 IF L205-LAST-FIELD = ZERO DTSBU205
00124 DISPLAY 'DTSBU205: LAST FIELD = ZERO' DTSBU205
00125 PERFORM S999-ABEND THRU S999-EXIT DTSBU205
00126 END-IF. DTSBU205
00127 DTSBU205
00128 IF L205-LAST-FIELD-LEN = ZERO DTSBU205
00129 DISPLAY 'DTSBU205: LAST FIELD LENGTH = ZERO' DTSBU205
00130 PERFORM S999-ABEND THRU S999-EXIT DTSBU205
00131 END-IF. DTSBU205
00132 DTSBU205
00133 PERFORM DTSBU205
00134 VARYING SUB FROM +1 BY +1 DTSBU205
00135 UNTIL SUB > L205-FIELDS-MAX-LEN DTSBU205
00136 MOVE SPACES TO L205-TEXT (SUB) DTSBU205
00137 MOVE +0 TO L205-INTEGER (SUB) DTSBU205
00138 L205-FRACTION (SUB) DTSBU205
00139 SET L205-VALID-YES-88 (SUB) TO TRUE DTSBU205
00140 END-PERFORM. DTSBU205
00141 DTSBU205
00142 I0000-EXIT. DTSBU205
00143 EXIT. DTSBU205
00144 DTSBU205
00145 P0000-PROCESS. DTSBU205
00146 *& DTSBU205
00147 * DISPLAY 'BU205 -1 ' L205-INPUT-DATA (1:32). DTSBU205
00148 *& DTSBU205
00149 DTSBU205
00150 PERFORM P1000-PARSE THRU P1000-EXIT. DTSBU205
00151 DTSBU205
00152 DTSBU205
00153 P0000-EXIT. DTSBU205
00154 EXIT. DTSBU205
00155 DTSBU205
00156 DTSBU205
00157 P1000-PARSE. DTSBU205
00158 MOVE L205-LAST-FIELD TO W-LAST-FIELD. DTSBU205
00159 MOVE L205-LAST-FIELD-LEN TO W-LAST-FIELD-LEN. DTSBU205
00160 DTSBU205
00161 SET W-PARSE-COMPLETE-NO-88 TO TRUE. DTSBU205
00162 MOVE +1 TO PSUB. DTSBU205
00163 MOVE +0 TO ISUB2. DTSBU205
00164 MOVE +1 TO W-CURR-FIELD. DTSBU205
00165 MOVE SPACES TO W-INPUT-LINE. DTSBU205
00166 DTSBU205
00167 PERFORM DTSBU205
00168 UNTIL W-PARSE-COMPLETE-YES-88 DTSBU205
00169 IF L205-INPUT-DATA (PSUB:1) NOT = ',' DTSBU205
00170 IF W-CURR-FIELD = W-LAST-FIELD DTSBU205
00171 PERFORM P1100-LAST-FIELD THRU P1100-EXIT DTSBU205
00172 ELSE DTSBU205
00173 PERFORM P1200-MOVE-CHAR THRU P1200-EXIT DTSBU205
00174 END-IF DTSBU205
00175 ELSE DTSBU205
00176 PERFORM P2000-MOVE-TO-REC THRU P2000-EXIT DTSBU205
00177 ADD +1 TO W-CURR-FIELD DTSBU205
00178 IF W-CURR-FIELD > 100 DTSBU205
00179 DISPLAY 'DTSBU205 TABLE LENGTH EXCEEDED ' DTSBU205
00180 PERFORM S999-ABEND THRU S999-EXIT DTSBU205
00181 END-IF DTSBU205
00182 MOVE +0 TO ISUB2 DTSBU205
00183 MOVE SPACES TO W-INPUT-LINE DTSBU205
00184 IF L205-INPUT-DATA ((PSUB + 1):1) = ',' DTSBU205
00185 ADD +1 TO PSUB DTSBU205
00186 PERFORM P2000-MOVE-TO-REC THRU P2000-EXIT DTSBU205
00187 ADD +1 TO W-CURR-FIELD DTSBU205
00188 END-IF DTSBU205
00189 END-IF DTSBU205
00190 ADD +1 TO PSUB DTSBU205
00191 IF PSUB > W-INPUT-LENGTH DTSBU205
00192 SET W-PARSE-COMPLETE-YES-88 TO TRUE DTSBU205
00193 END-IF DTSBU205
00194 END-PERFORM. DTSBU205
00195 DTSBU205
00196 PERFORM P2000-MOVE-TO-REC THRU P2000-EXIT. DTSBU205
00197 DTSBU205
00198 P1000-EXIT. DTSBU205
00199 EXIT. DTSBU205
00200 DTSBU205
00201 P1100-LAST-FIELD. DTSBU205
00202 ** DISPLAY 'LAST ' L205-INPUT-DATA (PSUB:1) DTSBU205
00203 ADD +1 TO ISUB2 DTSBU205
00204 IF ISUB2 > W-LAST-FIELD-LEN DTSBU205
00205 OR L205-INPUT-DATA (PSUB:1) = ',' DTSBU205
00206 SET W-PARSE-COMPLETE-YES-88 TO TRUE DTSBU205
00207 ELSE DTSBU205
00208 MOVE L205-INPUT-DATA (PSUB:1) DTSBU205
00209 TO W-INPUT-LINE (ISUB2:1) DTSBU205
00210 END-IF. DTSBU205
00211 DTSBU205
00212 ** DISPLAY 'LAST 2: ' ISUB2 ' ' W-INPUT-LINE (1:32). DTSBU205
00213 P1100-EXIT. DTSBU205
00214 EXIT. DTSBU205
00215 DTSBU205
00216 P1200-MOVE-CHAR. DTSBU205
00217 ADD +1 TO ISUB2. DTSBU205
00218 MOVE L205-INPUT-DATA (PSUB:1) DTSBU205
00219 TO W-INPUT-LINE (ISUB2:1). DTSBU205
00220 DTSBU205
00221 P1200-EXIT. DTSBU205
00222 EXIT. DTSBU205
00223 DTSBU205
00224 P2000-MOVE-TO-REC. DTSBU205
00225 *& DTSBU205
00226 * DISPLAY 'BU205 P2000 ' W-CURR-FIELD ' ' DTSBU205
00227 * W-INPUT-LINE (1:32). DTSBU205
00228 *& DTSBU205
00229 SET W-NON-NUMERIC-NO-88 TO TRUE. DTSBU205
00230 EVALUATE TRUE DTSBU205
00231 WHEN L205-TYPE-TEXT-88 (W-CURR-FIELD) DTSBU205
00232 MOVE W-INPUT-LINE (1:L205-FIELD-LENGTH (W-CURR-FIELD)) DTSBU205
00233 TO L205-TEXT (W-CURR-FIELD) DTSBU205
00234 DTSBU205
00235 WHEN L205-TYPE-NUMBER-88 (W-CURR-FIELD) DTSBU205
00236 PERFORM S2200-CONV-AMT THRU S2200-EXIT DTSBU205
00237 MOVE W-INTEGER TO L205-INTEGER (W-CURR-FIELD) DTSBU205
00238 MOVE W-FRACTION TO L205-FRACTION (W-CURR-FIELD) DTSBU205
00239 DTSBU205
00240 WHEN L205-TYPE-DATE-88 (W-CURR-FIELD) DTSBU205
00241 PERFORM S2300-CONV-DATE THRU S2300-EXIT DTSBU205
00242 MOVE W-DATE TO L205-DATE (W-CURR-FIELD) DTSBU205
00243 DTSBU205
00244 END-EVALUATE. DTSBU205
00245 DTSBU205
00246 P2000-EXIT. DTSBU205
00247 EXIT. DTSBU205
00248 DTSBU205
00249 S2200-CONV-AMT. DTSBU205
00250 MOVE ZEROS TO W-CONV-LINE DTSBU205
00251 W-INTEGER-9 DTSBU205
00252 W-INTEGER-X DTSBU205
00253 W-FRACTION-9 DTSBU205
00254 W-FRACTION-X DTSBU205
00255 W-INTEGER DTSBU205
00256 W-FRACTION. DTSBU205
00257 MOVE +32 TO ISUB4. DTSBU205
00258 MOVE +0 TO W-DECIMAL-NDX. DTSBU205
00259 DTSBU205
00260 ** DISPLAY 'BU205 S2200 INP ' W-INPUT-LINE(1:15) DTSBU205
00261 ** ' ' W-FRACTION-X. DTSBU205
00262 ******************************************************* DTSBU205
00263 * FIND LOCATION OF DECIMAL POINT, IF ANY DTSBU205
00264 ******************************************************* DTSBU205
00265 DTSBU205
00266 PERFORM DTSBU205
00267 VARYING ISUB3 FROM +32 BY -1 DTSBU205
00268 UNTIL ISUB3 < +1 DTSBU205
00269 OR W-DECIMAL-NDX > ZERO DTSBU205
00270 IF W-INPUT-LINE (ISUB3:1) = '.' DTSBU205
00271 MOVE ISUB3 TO W-DECIMAL-NDX DTSBU205
00272 END-IF DTSBU205
00273 END-PERFORM. DTSBU205
00274 DTSBU205
00275 *& DTSBU205
00276 * DISPLAY 'S2200 DEC NDX ' W-DECIMAL-NDX. DTSBU205
00277 *& DTSBU205
00278 IF W-DECIMAL-NDX NOT = ZERO DTSBU205
00279 PERFORM S2220-FRACTION THRU S2220-EXIT DTSBU205
00280 END-IF. DTSBU205
00281 PERFORM S2210-INTEGER THRU S2210-EXIT. DTSBU205
00282 DTSBU205
00283 IF W-NON-NUMERIC-YES-88 DTSBU205
00284 DISPLAY 'NON-NUMERIC DATA FOUND ' DTSBU205
00285 SET L205-VALID-NO-88 (W-CURR-FIELD) TO TRUE DTSBU205
00286 END-IF. DTSBU205
00287 DTSBU205
00288 S2200-EXIT. DTSBU205
00289 EXIT. DTSBU205
00290 DTSBU205
00291 S2210-INTEGER. DTSBU205
00292 MOVE +1 TO W-MULTIPLIER. DTSBU205
00293 DTSBU205
00294 IF W-DECIMAL-NDX = ZERO DTSBU205
00295 MOVE ISUB2 TO ISUB1 DTSBU205
00296 ELSE DTSBU205
00297 COMPUTE ISUB1 = W-DECIMAL-NDX - 1 DTSBU205
00298 END-IF. DTSBU205
00299 DTSBU205
00300 MOVE +11 TO ISUB3. DTSBU205
00301 DTSBU205
00302 PERFORM DTSBU205
00303 VARYING SUB FROM ISUB1 BY -1 DTSBU205
00304 UNTIL SUB < +1 DTSBU205
00305 IF W-INPUT-LINE (SUB:1) >= '0' AND <= '9' DTSBU205
00306 MOVE W-INPUT-LINE (SUB:1) TO W-INTEGER-X (ISUB3:1) DTSBU205
00307 SUBTRACT +1 FROM ISUB3 DTSBU205
00308 ELSE DTSBU205
00309 IF W-INPUT-LINE (SUB:1) NOT = '.' AND ' ' DTSBU205
00310 SET W-NON-NUMERIC-YES-88 TO TRUE DTSBU205
00311 DISPLAY 'NON-NUM I ' W-INPUT-LINE (SUB:1) ' ' DTSBU205
00312 SUB ' ' W-INPUT-LINE (1:32) DTSBU205
00313 END-IF DTSBU205
00314 END-IF DTSBU205
00315 END-PERFORM. DTSBU205
00316 DTSBU205
00317 *& DTSBU205
00318 ** DISPLAY 'S2210 INT-X ' W-INTEGER-X. DTSBU205
00319 *& DTSBU205
00320 DTSBU205
00321 PERFORM DTSBU205
00322 VARYING SUB FROM +11 BY -1 DTSBU205
00323 UNTIL SUB < +1 DTSBU205
00324 MOVE W-INTEGER-X (SUB:1) TO W-DIGIT DTSBU205
00325 COMPUTE W-AMT-INT = (W-DIGIT * W-MULTIPLIER) DTSBU205
00326 COMPUTE W-INTEGER = (W-INTEGER + W-AMT-INT) DTSBU205
00327 COMPUTE W-MULTIPLIER = (W-MULTIPLIER * 10) DTSBU205
00328 END-PERFORM. DTSBU205
00329 DTSBU205
00330 *& DTSBU205
00331 * MOVE W-INTEGER TO AMT-DISP1. DTSBU205
00332 * DISPLAY 'S2210 INTEGER ' AMT-DISP1. DTSBU205
00333 *& DTSBU205
00334 DTSBU205
00335 S2210-EXIT. DTSBU205
00336 EXIT. DTSBU205
00337 DTSBU205
00338 S2220-FRACTION. DTSBU205
00339 MOVE +0.1 TO W-MULTIPLIER. DTSBU205
00340 DTSBU205
00341 COMPUTE ISUB1 = W-DECIMAL-NDX DTSBU205
00342 MOVE +1 TO ISUB3. DTSBU205
00343 DTSBU205
00344 PERFORM DTSBU205
00345 VARYING SUB FROM ISUB1 BY +1 DTSBU205
00346 UNTIL SUB > ISUB2 DTSBU205
00347 IF W-INPUT-LINE (SUB:1) >= '0' AND <= '9' DTSBU205
00348 MOVE W-INPUT-LINE (SUB:1) DTSBU205
00349 TO W-FRACTION-X (ISUB3:1) DTSBU205
00350 ADD +1 TO ISUB3 DTSBU205
00351 ELSE DTSBU205
00352 IF W-INPUT-LINE (SUB:1) NOT = '.' AND ' ' DTSBU205
00353 SET W-NON-NUMERIC-YES-88 TO TRUE DTSBU205
00354 DISPLAY 'NON-NUM F ' W-INPUT-LINE (SUB:1) ' ' DTSBU205
00355 SUB ' ' W-INPUT-LINE (1:32) DTSBU205
00356 END-IF DTSBU205
00357 END-IF DTSBU205
00358 END-PERFORM. DTSBU205
00359 DTSBU205
00360 *& DTSBU205
00361 * DISPLAY 'S2220 FRA-X ' W-FRACTION-X. DTSBU205
00362 *& DTSBU205
00363 PERFORM DTSBU205
00364 VARYING SUB FROM +1 BY +1 DTSBU205
00365 UNTIL SUB > ISUB3 DTSBU205
00366 MOVE W-FRACTION-X (SUB:1) TO W-DIGIT DTSBU205
00367 *** DISPLAY 'W-DIGIT ' W-DIGIT DTSBU205
00368 COMPUTE W-AMT-FRACTION = (W-DIGIT * W-MULTIPLIER) DTSBU205
00369 COMPUTE W-FRACTION = (W-FRACTION + W-AMT-FRACTION) DTSBU205
00370 COMPUTE W-MULTIPLIER = (W-MULTIPLIER / 10) DTSBU205
00371 * MOVE W-FRACTION TO AMT-DISP2 DTSBU205
00372 END-PERFORM. DTSBU205
00373 DTSBU205
00374 *& DTSBU205
00375 * MOVE W-FRACTION TO AMT-DISP-FRACTION. DTSBU205
00376 * DISPLAY 'S2220 FRACTION ' W-FRACTION ' ' DTSBU205
00377 * AMT-DISP-FRACTION. DTSBU205
00378 *& DTSBU205
00379 S2220-EXIT. DTSBU205
00380 EXIT. DTSBU205
00381 DTSBU205
00382 S2300-CONV-DATE. DTSBU205
00383 IF W-INPUT-LINE = SPACES DTSBU205
00384 GO TO S2300-EXIT DTSBU205
00385 END-IF. DTSBU205
00386 DTSBU205
00387 MOVE W-INPUT-LINE (1:ISUB2) TO W-CONV-LINE. DTSBU205
00388 MOVE ZEROS TO L001-SLASH-8-MO DTSBU205
00389 L001-SLASH-8-DA DTSBU205
00390 L001-SLASH-8-YR. DTSBU205
00391 DTSBU205
00392 MOVE ZEROS TO W-MDY. DTSBU205
00393 **************************************************** DTSBU205
00394 * GET LOCATION OF SLASHES IN DATE DTSBU205
00395 **************************************************** DTSBU205
00396 MOVE +0 TO W-SLASH1 DTSBU205
00397 W-SLASH2. DTSBU205
00398 DTSBU205
00399 PERFORM DTSBU205
00400 VARYING ISUB3 FROM +1 BY +1 DTSBU205
00401 UNTIL ISUB3 > ISUB2 DTSBU205
00402 OR W-SLASH2 > ZERO DTSBU205
00403 IF W-CONV-LINE (ISUB3:1) = '/' DTSBU205
00404 IF W-SLASH1 = ZERO DTSBU205
00405 MOVE ISUB3 TO W-SLASH1 DTSBU205
00406 ELSE DTSBU205
00407 MOVE ISUB3 TO W-SLASH2 DTSBU205
00408 END-IF DTSBU205
00409 END-IF DTSBU205
00410 END-PERFORM. DTSBU205
00411 DTSBU205
00412 IF W-SLASH1 = ZERO DTSBU205
00413 OR W-SLASH2 = ZERO DTSBU205
00414 DISPLAY 'BU205 INVALID DATE ' W-CONV-LINE DTSBU205
00415 SET L205-VALID-NO-88 (W-CURR-FIELD) TO TRUE DTSBU205
00416 GO TO S2300-EXIT DTSBU205
00417 END-IF. DTSBU205
00418 DTSBU205
00419 **************************************************** DTSBU205
00420 * GET MONTH DTSBU205
00421 **************************************************** DTSBU205
00422 IF W-SLASH1 = 3 DTSBU205
00423 MOVE W-CONV-LINE (1:2) TO W-MDY-X-2 DTSBU205
00424 ELSE DTSBU205
00425 IF W-SLASH1 = 2 DTSBU205
00426 MOVE W-CONV-LINE (1:1) TO W-MDY-X-1 DTSBU205
00427 END-IF DTSBU205
00428 END-IF. DTSBU205
00429 DTSBU205
00430 IF (W-MDY-X-2 (1:1) >= '0' AND <= '9') DTSBU205
00431 AND (W-MDY-X-2 (2:1) >= '0' AND <= '9') DTSBU205
00432 MOVE W-MDY-X-2 TO L001-SLASH-8-MO DTSBU205
00433 ELSE DTSBU205
00434 MOVE ZEROS TO L001-SLASH-8-MO DTSBU205
00435 END-IF. DTSBU205
00436 DTSBU205
00437 **************************************************** DTSBU205
00438 * GET DAY DTSBU205
00439 **************************************************** DTSBU205
00440 MOVE ZEROS TO W-MDY. DTSBU205
00441 IF W-SLASH1 = 3 DTSBU205
00442 IF W-SLASH2 = 6 DTSBU205
00443 MOVE W-CONV-LINE (4:2) TO W-MDY-X-2 DTSBU205
00444 ELSE DTSBU205
00445 IF W-SLASH2 = 5 DTSBU205
00446 MOVE W-CONV-LINE (4:1) TO W-MDY-X-1 DTSBU205
00447 END-IF DTSBU205
00448 END-IF DTSBU205
00449 ELSE DTSBU205
00450 IF W-SLASH1 = 2 DTSBU205
00451 IF W-SLASH2 = 5 DTSBU205
00452 MOVE W-CONV-LINE (3:2) TO W-MDY-X-2 DTSBU205
00453 ELSE DTSBU205
00454 IF W-SLASH2 = 4 DTSBU205
00455 MOVE W-CONV-LINE (3:1) TO W-MDY-X-1 DTSBU205
00456 END-IF DTSBU205
00457 END-IF DTSBU205
00458 END-IF DTSBU205
00459 END-IF. DTSBU205
00460 DTSBU205
00461 IF (W-MDY-X-2 (1:1) >= '0' AND <= '9') DTSBU205
00462 AND (W-MDY-X-2 (2:1) >= '0' AND <= '9') DTSBU205
00463 MOVE W-MDY-X-2 TO L001-SLASH-8-DA DTSBU205
00464 ELSE DTSBU205
00465 MOVE ZEROS TO L001-SLASH-8-DA DTSBU205
00466 END-IF. DTSBU205
00467 DTSBU205
00468 **************************************************** DTSBU205
00469 * GET YEAR DTSBU205
00470 **************************************************** DTSBU205
00471 MOVE ZEROS TO W-MDY. DTSBU205
00472 MOVE +1 TO ISUB4. DTSBU205
00473 COMPUTE ISUB5 = (W-SLASH2 + 1). DTSBU205
00474 COMPUTE ISUB6 = (ISUB5 + 4). DTSBU205
00475 PERFORM DTSBU205
00476 VARYING ISUB3 FROM ISUB5 BY +1 DTSBU205
00477 UNTIL ISUB3 > ISUB6 DTSBU205
00478 IF (W-CONV-LINE (ISUB3:1) >= '0' AND <= '9') DTSBU205
00479 MOVE W-CONV-LINE (ISUB3:1) TO W-MDY (ISUB4:1) DTSBU205
00480 ADD +1 TO ISUB4 DTSBU205
00481 END-IF DTSBU205
00482 END-PERFORM. DTSBU205
00483 DTSBU205
00484 MOVE W-MDY TO L001-SLASH-8-YR. DTSBU205
00485 DTSBU205
00486 MOVE L001-SLASH-8-DATE TO W-DATE. DTSBU205
00487 DTSBU205
00488 S2300-EXIT. DTSBU205
00489 EXIT. DTSBU205
00490 DTSBU205
00491 DTSBU205
00492 S999-ABEND. DTSBU205
00493 CALL 'DTSBU999' USING W-ABEND-CD. DTSBU205
00494 S999-EXIT. DTSBU205
00495 EXIT. DTSBU205