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