313 lines
25 KiB
COBOL
313 lines
25 KiB
COBOL
00001 IDENTIFICATION DIVISION. 08/11/16
|
|
00002 PROGRAM-ID. DTSVAL05. DTSVAL05
|
|
00003 LV059
|
|
00004 ******************************************************************DTSVAL05
|
|
00005 * *DTSVAL05
|
|
00006 * FUNCTION: *DTSVAL05
|
|
00007 * THE FUNCTION OF DTSVAL05 IS TO VALIDATE WAGE RECORDS * CL*33
|
|
00008 * FROM DUTAS. IF MORE THAN ONE RECORD FOR THE SAME EMPLOYER * CL*33
|
|
00009 * SAME SSN AND SAME QUARTER THE PRORAM WILL ADD ALL RECORDS CL*33
|
|
00010 * AND CREATE ONE W4 TRANSACTION. * CL*33
|
|
00011 * *DTSVAL05
|
|
00012 ******************************************************************DTSVAL05
|
|
00013 DTSVAL05
|
|
00014 ENVIRONMENT DIVISION. DTSVAL05
|
|
00015 CONFIGURATION SECTION. DTSVAL05
|
|
00016 SPECIAL-NAMES. C01 IS TOP-OF-PAGE. DTSVAL05
|
|
00017 INPUT-OUTPUT SECTION. DTSVAL05
|
|
00018 FILE-CONTROL. DTSVAL05
|
|
00019 SELECT DTS4FILE ASSIGN TO DTS4FILE CL*37
|
|
00020 FILE STATUS IS WAGE-IN-STATUS. CL*37
|
|
00021 SELECT WAGEFILE ASSIGN TO WAGEFILE. CL*31
|
|
00022 SELECT ERRFILE ASSIGN TO ERRFILE. CL*31
|
|
00023 SELECT LISTOUT ASSIGN TO UR-S-LISTOUT. CL*16
|
|
00024 DATA DIVISION. DTSVAL05
|
|
00025 FILE SECTION. DTSVAL05
|
|
00026 FD DTS4FILE CL*34
|
|
00027 RECORDING MODE IS F DTSVAL05
|
|
00028 BLOCK CONTAINS 0 CHARACTERS DTSVAL05
|
|
00029 LABEL RECORDS ARE STANDARD DTSVAL05
|
|
00030 DATA RECORD IS TDECREC. DTSVAL05
|
|
00031 01 TRANSACTION-RECORD PIC X(80). CL*16
|
|
00032 CL*16
|
|
00033 FD WAGEFILE CL*31
|
|
00034 RECORDING MODE IS F CL*31
|
|
00035 BLOCK CONTAINS 0 CHARACTERS CL*31
|
|
00036 LABEL RECORDS ARE STANDARD CL*31
|
|
00037 DATA RECORD IS TDECREC. CL*31
|
|
00038 01 WAGE-RECORD PIC X(80). CL*31
|
|
00039 CL*31
|
|
00040 FD ERRFILE CL*31
|
|
00041 RECORDING MODE IS F CL*31
|
|
00042 BLOCK CONTAINS 0 CHARACTERS CL*31
|
|
00043 LABEL RECORDS ARE STANDARD CL*31
|
|
00044 DATA RECORD IS TDECREC. CL*31
|
|
00045 01 ERROR-RECORD PIC X(80). CL*31
|
|
00046 CL*31
|
|
00047 FD LISTOUT DTSVAL05
|
|
00048 RECORD CONTAINS 133 CHARACTERS DTSVAL05
|
|
00049 LABEL RECORDS ARE OMITTED DTSVAL05
|
|
00050 RECORDING MODE IS F DTSVAL05
|
|
00051 DATA RECORD IS PRINT-REC. DTSVAL05
|
|
00052 01 PRINT-REC PIC X(133). CL*16
|
|
00053 CL*16
|
|
00054 WORKING-STORAGE SECTION. DTSVAL05
|
|
000545 77 PAN-VALET PICTURE X(24) VALUE '059DTSVAL05 08/11/16'. DTSVAL05
|
|
00055 01 WS-ETA-PRIMARY-NAME-FOUR PIC X(4). CL*16
|
|
00056 01 WS-ETA-ENTITY-NAME-FOUR PIC X(4). CL*16
|
|
00057 01 WEG-ERR-CNT PIC 9(1). CL*32
|
|
00058 01 W4E-ERR-CNT PIC 9(1). CL*40
|
|
00059 CL*18
|
|
00060 01 TRANSACTION-WORK-AREA. DTSVAL05
|
|
00061 ******************************************************************DTSVAL05
|
|
00062 * ESP TRANSACTION RECORD DESCRIPTIONS *DTSVAL05
|
|
00063 ******************************************************************DTSVAL05
|
|
00064 05 ESP-TRANSACTION-AREA. DTSVAL05
|
|
00065 10 TRAN-SSN PIC 9(10). DTSVAL05
|
|
00066 10 FILLER REDEFINES TRAN-SSN. DTSVAL05
|
|
00067 15 TR-SSN PIC 9(9). DTSVAL05
|
|
00068 15 TR-SSN-SEQ PIC 9(1). DTSVAL05
|
|
00069 10 TRAN-ID PIC X(02). DTSVAL05
|
|
00070 10 FILLER REDEFINES TRAN-ID. DTSVAL05
|
|
00071 15 TRAN-ID-PFX PIC X(1). DTSVAL05
|
|
00072 88 TRAN-ID-PFX-WAGE VALUE 'W'. DTSVAL05
|
|
00073 15 FILLER PIC X(1). DTSVAL05
|
|
00074 10 TRAN-OPER-ID PIC 9(8). DTSVAL05
|
|
00075 10 FILLER REDEFINES TRAN-OPER-ID. DTSVAL05
|
|
00076 15 BATCH-NUMBER PIC 9(03). DTSVAL05
|
|
00077 15 FILLER REDEFINES BATCH-NUMBER. DTSVAL05
|
|
00078 20 BATCH-NUMBER-NN PIC 9(02). DTSVAL05
|
|
00079 20 FILLER PIC X(01). DTSVAL05
|
|
00080 15 TRAN-LOCAL-OFFICE PIC 9(02). DTSVAL05
|
|
00081 15 TRAN-OPERATOR-ID PIC 9(03). DTSVAL05
|
|
00082 10 TRAN-DATE-ENTERED PIC 9(08). DTSVAL05
|
|
00083 10 TRAN-TIME-ENTERED PIC 9(06). DTSVAL05
|
|
00084 10 FILLER PIC 9(06). DTSVAL05
|
|
00085 10 TRAN-NAME-CHECK PIC X(3). DTSVAL05
|
|
00086 10 TRAN-QUARTER-YR-QTR PIC 9(5). DTSVAL05
|
|
00087 10 TRAN-AFFI-CODE PIC 9(1). DTSVAL05
|
|
00088 10 TRAN-QUARTER-EARNINGS PIC 9(7). DTSVAL05
|
|
00089 10 TRAN-ACCOUNT PIC 9(6). DTSVAL05
|
|
00090 10 TRAN-EMP-NAME PIC X(4). DTSVAL05
|
|
00091 10 TRAN-FILLER PIC X(299). DTSVAL05
|
|
00092 01 COUNTERS. DTSVAL05
|
|
00093 03 RECS-IN PIC 9(5). CL*16
|
|
00094 03 RECS-OUT PIC 9(5). CL*16
|
|
00095 03 PAGE-CTR PIC 9(5). CL*16
|
|
00096 03 ERROR-RECS PIC 9(5). CL*16
|
|
00097 03 WS-RUN-DATE. DTSVAL05
|
|
00098 05 RUN-YR PIC 99. CL*16
|
|
00099 05 RUN-MO PIC 99. CL*16
|
|
00100 05 RUN-DA PIC 99. CL*16
|
|
00101 CL*16
|
|
00102 01 HOLD-WORK-AREA. CL*34
|
|
00103 ****************************************************************** CL*34
|
|
00104 * ESP TRANSACTION RECORD DESCRIPTIONS * CL*34
|
|
00105 ****************************************************************** CL*34
|
|
00106 05 WRK-TRANSACTION-AREA. CL*34
|
|
00107 10 HOLD-SSN PIC 9(10). CL*34
|
|
00108 10 FILLER REDEFINES HOLD-SSN. CL*34
|
|
00109 15 HLD-SSN PIC 9(9). CL*34
|
|
00110 15 HLD-SSN-SEQ PIC 9(1). CL*34
|
|
00111 10 HOLD-ID PIC X(02). CL*34
|
|
00112 10 FILLER REDEFINES HOLD-ID. CL*34
|
|
00113 15 HOLD-ID-PFX-HLD PIC X(1). CL*34
|
|
00114 15 FILLER PIC X(1). CL*34
|
|
00115 10 HOLD-OPER-ID PIC 9(8). CL*34
|
|
00116 10 FILLER REDEFINES HOLD-OPER-ID. CL*34
|
|
00117 15 BATCH-NUMBER-HLD PIC 9(03). CL*34
|
|
00118 15 HOLD-LOCAL-OFFICE PIC 9(02). CL*34
|
|
00119 15 HOLD-OPERATOR-ID PIC 9(03). CL*34
|
|
00120 10 HOLD-DATE-ENTERED PIC 9(08). CL*34
|
|
00121 10 HOLD-TIME-ENTERED PIC 9(06). CL*34
|
|
00122 10 FILLER PIC 9(06). CL*34
|
|
00123 10 HOLD-NAME-CHECK PIC X(3). CL*34
|
|
00124 10 HOLD-QUARTER-YR-QTR PIC 9(5). CL*34
|
|
00125 10 HOLD-AFFI-CODE PIC 9(1). CL*34
|
|
00126 10 HOLD-QUARTER-EARNINGS PIC 9(7). CL*34
|
|
00127 10 HOLD-ACCOUNT PIC 9(6). CL*34
|
|
00128 10 HOLD-EMP-NAME PIC X(4). CL*34
|
|
00129 10 HOLD-FILLER PIC X(299). CL*34
|
|
00130 01 HOLD-WRK-AREA. CL*34
|
|
00131 03 HOLD-WRK-SSN PIC 9(9) VALUE ZEROS. CL*34
|
|
00132 03 HOLD-WRK-QTR PIC 9(5) VALUE ZEROS. CL*34
|
|
00133 03 HOLD-WRK-EMP PIC 9(6) VALUE ZEROS. CL*34
|
|
00134 03 HOLD-WRK-WAGE PIC 9(7) VALUE ZEROS. CL*34
|
|
00135 01 CURR-YRQ. CL*29
|
|
00136 05 CUR-CEN PIC 99. CL*29
|
|
00137 05 CUR-YR1 PIC 99. CL*29
|
|
00138 05 CUR-QTR PIC 9. CL*29
|
|
00139 01 LINE-CTR PIC 9(5) VALUE 56. CL*16
|
|
00140 01 EOF PIC X. CL*16
|
|
00141 CL*16
|
|
00142 CL*37
|
|
00143 01 FILE-STATUS. CL*37
|
|
00144 05 WAGE-IN-STATUS PIC X(02). CL*37
|
|
00145 88 WAGE-IN-OK-88 VALUE '00'. CL*37
|
|
00146 88 WAGE-IN-EOF-88 VALUE '10'. CL*37
|
|
00147 CL*37
|
|
00148 01 HD1. DTSVAL05
|
|
00149 03 FIL PIC X(5) VALUE SPACES. CL*16
|
|
00150 03 FIL PIC X(8) VALUE 'DTSVAL05'. CL*38
|
|
00151 03 FIL PIC X(31) VALUE SPACES. CL*16
|
|
00152 03 FIL PIC X(42) VALUE CL*16
|
|
00153 'DISTRICT DEPARTMENT OF EMPLOYMENT SERVICES'. DTSVAL05
|
|
00154 03 FIL PIC X(35) VALUE SPACES. CL*16
|
|
00155 03 FIL PIC X(5) VALUE 'PAGE:'. CL*16
|
|
00156 03 PAGE-CTR-PRT PIC ZZ,ZZ9. CL*16
|
|
00157 01 HD2. DTSVAL05
|
|
00158 03 FIL PIC X(29) VALUE SPACES. CL*50
|
|
00159 03 FIL PIC X(52) VALUE CL*50
|
|
00160 'DUPLICATE SSN WAGE RECORD - WAGES ADDED TO FIRST SSN'. CL*51
|
|
00161 01 HD3. DTSVAL05
|
|
00162 03 FIL PIC X(55) VALUE SPACES. CL*16
|
|
00163 03 FIL PIC X(10) VALUE 'RUN DATE: '. CL*16
|
|
00164 03 RUN-DATE. DTSVAL05
|
|
00165 05 RUN-MO1 PIC 99. CL*16
|
|
00166 05 FIL PIC X VALUE '/'. CL*16
|
|
00167 05 RUN-DA1 PIC 99. CL*16
|
|
00168 05 FIL PIC X VALUE '/'. CL*16
|
|
00169 05 RUN-CEN PIC 99. CL*16
|
|
00170 05 RUN-YR1 PIC 99. CL*16
|
|
00171 01 HD4. DTSVAL05
|
|
00172 03 FIL PIC X(5) VALUE SPACES. CL*16
|
|
00173 03 FIL PIC X(3) VALUE 'SSN'. CL*16
|
|
00174 03 FIL PIC X(7) VALUE SPACES. CL*16
|
|
00175 03 FIL PIC X(12) VALUE 'DATE ENT EN'. CL*26
|
|
00176 03 FIL PIC X(13) VALUE 'AME QTR '. CL*27
|
|
00177 03 FIL PIC X(7) VALUE ' EARNI'. CL*27
|
|
00178 03 FIL PIC X(8) VALUE 'NGS AC'. CL*27
|
|
00179 03 FIL PIC X(14) VALUE 'CT NUM TDEC '. CL*27
|
|
00180 03 FIL PIC X(11) VALUE 'NAME '. CL*27
|
|
00181 03 FIL PIC X(07) VALUE SPACES. CL*26
|
|
00182 03 FIL PIC X(18) VALUE 'ERRORS ENCOUNTERED'. CL*16
|
|
00183 01 DTL1. DTSVAL05
|
|
00184 03 FIL PIC X(5) VALUE SPACES. CL*16
|
|
00185 03 SSN-PRT PIC X(9). CL*16
|
|
00186 03 FIL PIC XX VALUE SPACES. CL*16
|
|
00187 03 DATE-ENTERED-PRT PIC X(06). CL*16
|
|
00188 03 FIL PIC X(04) VALUE SPACES. CL*25
|
|
00189 03 EMPEE-NAME PIC X(3). CL*16
|
|
00190 03 FIL PIC X(04) VALUE SPACES. CL*25
|
|
00191 03 QTR-PRT PIC X(5). CL*16
|
|
00192 03 FIL PIC X(4) VALUE SPACES. CL*25
|
|
00193 03 EARNINGS-PRT PIC X(7). CL*16
|
|
00194 03 FIL PIC X(4) VALUE SPACES. CL*25
|
|
00195 03 ACCT-NUM-PRT PIC X(6). CL*16
|
|
00196 03 FIL PIC X(4) VALUE SPACES. CL*25
|
|
00197 03 EMPOR-PRT PIC X(6). CL*16
|
|
00198 03 FIL PIC X(04) VALUE SPACES. CL*25
|
|
00199 03 MESSAGE-AREA PIC X(50) VALUE SPACES. CL*25
|
|
00200 01 TOT1. DTSVAL05
|
|
00201 03 FIL PIC X(5) VALUE SPACES. CL*16
|
|
00202 03 FIL PIC X(19) VALUE 'TOTAL WAGE RECORDS:'. CL*16
|
|
00203 03 WAGE-CNT-PRT PIC ZZZ,ZZZ,ZZ9. CL*16
|
|
00204 03 FIL PIC X(5) VALUE SPACES. CL*16
|
|
00205 03 FIL PIC X(20) VALUE 'TOTAL ERROR RECORDS:'. CL*18
|
|
00206 03 ERRORS-PRT PIC ZZZ,ZZ9. CL*16
|
|
00207 CL*16
|
|
00208 01 BLANK-LINE PIC X(133) VALUE SPACES. CL*16
|
|
00209 CL*16
|
|
00210 PROCEDURE DIVISION. DTSVAL05
|
|
00211 OPEN OUTPUT LISTOUT WAGEFILE ERRFILE. CL*39
|
|
00212 OPEN INPUT DTS4FILE CL*34
|
|
00213 IF NOT WAGE-IN-OK-88 CL*37
|
|
00214 DISPLAY 'DAY1 W4FILE INPUT IS EMPTY ' CL*37
|
|
00215 WAGE-IN-STATUS CL*37
|
|
00216 DISPLAY '***************************************' CL*37
|
|
00217 MOVE +01 TO RETURN-CODE CL*40
|
|
00218 GOBACK. CL*37
|
|
00219 CL*31
|
|
00220 MOVE ZEROS TO COUNTERS. DTSVAL05
|
|
00221 DTSVAL05
|
|
00222 PERFORM 100-READ-WAGE THRU 100-RW-EXIT DTSVAL05
|
|
00223 UNTIL EOF = 1. CL*16
|
|
00224 MOVE HOLD-WRK-WAGE TO HOLD-QUARTER-EARNINGS CL*35
|
|
00225 MOVE HOLD-WORK-AREA TO WAGE-RECORD CL*41
|
|
00226 WRITE WAGE-RECORD CL*35
|
|
00227 IF ERROR-RECS > 0 CL*40
|
|
00228 MOVE +02 TO RETURN-CODE CL*47
|
|
00229 ELSE CL*40
|
|
00230 MOVE +00 TO RETURN-CODE. CL*40
|
|
00231 GO TO 999-CLOSE-FILES. CL*41
|
|
00232 100-READ-WAGE. DTSVAL05
|
|
00233 READ DTS4FILE INTO TRANSACTION-WORK-AREA CL*36
|
|
00234 AT END MOVE 1 TO EOF CL*29
|
|
00235 GO TO 100-RW-EXIT. CL*42
|
|
00236 CL*42
|
|
00237 ADD 1 TO RECS-OUT. DTSVAL05
|
|
00238 CL*34
|
|
00239 IF RECS-OUT = 1 CL*34
|
|
00240 MOVE TR-SSN TO HOLD-WRK-SSN CL*34
|
|
00241 MOVE TRAN-QUARTER-YR-QTR TO HOLD-WRK-QTR CL*34
|
|
00242 MOVE TRAN-ACCOUNT TO HOLD-WRK-EMP CL*34
|
|
00243 MOVE TRAN-QUARTER-EARNINGS TO HOLD-WRK-WAGE CL*34
|
|
00244 MOVE TRANSACTION-WORK-AREA TO HOLD-WORK-AREA CL*41
|
|
00245 GO TO 100-RW-EXIT. CL*34
|
|
00246 * IF HOLD-WRK-SSN = 274585210 CL*53
|
|
00247 * GO TO 100-RW-EXIT. CL*53
|
|
00248 PERFORM 110-VALIDATE-WAGE THRU 110-VAL-EXIT. CL*36
|
|
00249 100-RW-EXIT. DTSVAL05
|
|
00250 EXIT. DTSVAL05
|
|
00251 110-VALIDATE-WAGE. DTSVAL05
|
|
00252 MOVE SPACES TO MESSAGE-AREA. DTSVAL05
|
|
00253 MOVE 0 TO WEG-ERR-CNT. CL*30
|
|
00254 * DISPLAY 'TR-SSN ' TR-SSN ' HOLD SSN ' HOLD-WRK-SSN CL*59
|
|
00255 * DISPLAY 'TR-QTR ' TRAN-QUARTER-YR-QTR ' HLD Q ' HOLD-WRK-QTR CL*59
|
|
00256 * DISPLAY 'TR-ACC ' TRAN-ACCOUNT 'HLD ACC ' HOLD-WRK-EMP CL*59
|
|
00257 IF TR-SSN = HOLD-WRK-SSN AND CL*35
|
|
00258 TRAN-QUARTER-YR-QTR = HOLD-WRK-QTR AND CL*35
|
|
00259 TRAN-ACCOUNT = HOLD-WRK-EMP CL*35
|
|
00260 * ADD TRAN-QUARTER-EARNINGS TO HOLD-WRK-WAGE CL*58
|
|
00261 MOVE TRANSACTION-WORK-AREA TO HOLD-WORK-AREA CL*41
|
|
00262 MOVE 1 TO WEG-ERR-CNT CL*30
|
|
00263 DISPLAY '*ERROR** DUPLICATE SSN ' CL*46
|
|
00264 MOVE '*ERROR** DUPLICATE SSN ' TO MESSAGE-AREA CL*45
|
|
00265 PERFORM 125-WAGE-REPORT THRU 125-WR-EXIT CL*35
|
|
00266 ELSE CL*35
|
|
00267 MOVE HOLD-WRK-WAGE TO HOLD-QUARTER-EARNINGS CL*35
|
|
00268 MOVE HOLD-WORK-AREA TO WAGE-RECORD CL*41
|
|
00269 WRITE WAGE-RECORD CL*35
|
|
00270 MOVE TRANSACTION-WORK-AREA TO HOLD-WORK-AREA CL*41
|
|
00271 MOVE TRAN-QUARTER-EARNINGS TO HOLD-WRK-WAGE CL*44
|
|
00272 MOVE TR-SSN TO HOLD-WRK-SSN CL*44
|
|
00273 MOVE TRAN-QUARTER-YR-QTR TO HOLD-WRK-QTR CL*44
|
|
00274 MOVE TRAN-ACCOUNT TO HOLD-WRK-EMP. CL*44
|
|
00275 CL*31
|
|
00276 110-VAL-EXIT. CL*36
|
|
00277 EXIT. CL*31
|
|
00278 125-WAGE-REPORT. DTSVAL05
|
|
00279 ADD 1 TO ERROR-RECS. DTSVAL05
|
|
00280 MOVE TR-SSN TO SSN-PRT. CL*16
|
|
00281 MOVE TRAN-DATE-ENTERED TO DATE-ENTERED-PRT. CL*16
|
|
00282 MOVE TRAN-NAME-CHECK TO EMPEE-NAME. CL*16
|
|
00283 MOVE TRAN-QUARTER-EARNINGS TO EARNINGS-PRT. DTSVAL05
|
|
00284 MOVE TRAN-QUARTER-YR-QTR TO QTR-PRT. CL*16
|
|
00285 MOVE TRAN-ACCOUNT TO ACCT-NUM-PRT. CL*16
|
|
00286 CL*16
|
|
00287 IF LINE-CTR > 55 DTSVAL05
|
|
00288 PERFORM 130-WAGE-HEADER THRU 130-WH-EXIT. DTSVAL05
|
|
00289 CL*16
|
|
00290 WRITE PRINT-REC FROM DTL1. CL*49
|
|
00291 MOVE SPACES TO DTL1. DTSVAL05
|
|
00292 ADD 1 TO LINE-CTR. DTSVAL05
|
|
00293 125-WR-EXIT. DTSVAL05
|
|
00294 EXIT. DTSVAL05
|
|
00295 130-WAGE-HEADER. DTSVAL05
|
|
00296 ADD 1 TO PAGE-CTR. DTSVAL05
|
|
00297 MOVE PAGE-CTR TO PAGE-CTR-PRT. DTSVAL05
|
|
00298 WRITE PRINT-REC FROM HD1 AFTER TOP-OF-PAGE. CL*49
|
|
00299 WRITE PRINT-REC FROM HD2. CL*49
|
|
00300 WRITE PRINT-REC FROM HD3. CL*49
|
|
00301 WRITE PRINT-REC FROM HD4. CL*49
|
|
00302 MOVE 4 TO LINE-CTR. DTSVAL05
|
|
00303 130-WH-EXIT. DTSVAL05
|
|
00304 EXIT. DTSVAL05
|
|
00305 999-CLOSE-FILES. DTSVAL05
|
|
00306 MOVE RECS-OUT TO WAGE-CNT-PRT. DTSVAL05
|
|
00307 MOVE ERROR-RECS TO ERRORS-PRT. DTSVAL05
|
|
00308 WRITE PRINT-REC FROM TOT1 AFTER 2. DTSVAL05
|
|
00309 CLOSE DTS4FILE LISTOUT WAGEFILE ERRFILE. CL*35
|
|
00310 STOP RUN. DTSVAL05
|
|
00311 EJECT DTSVAL05
|