00001 IDENTIFICATION DIVISION. 06/08/04 00002 PROGRAM-ID. DESBD315. DESBD315 00003 AUTHOR. NGC. LV001 00004 DATE-WRITTEN. MAY 2004. DESBD315 00005 DATE-COMPILED. DESBD315 00006 DESBD315 00007 ***** DESBD315 00008 * DESBD315 00009 * FUNCTION: MERGE WAGE RECORDS PRODUCED BY DESBD310. DESBD315 00010 * FOR EACH WAGE ITEM FOUND, DESBD310 LOOKS FOR A DESBD315 00011 * SUCCESSOR ACCOUNT NUMBER, AND MOVES THAT NUMBER DESBD315 00012 * TO THE OUPUT RECORD. THIS MAY RESULT IN DUPLICATE DESBD315 00013 * RECORDS. DESBD315 FINDS THESE DUPLICATES AND DESBD315 00014 * COMBINES THEM INTO A SINGLE OUTPUT RECORD. DESBD315 00015 * DESBD315 00016 * MODIFICATION HISTORY: DESBD315 00017 * DESBD315 00018 * 05/25/2004 INITIAL DEVELOPMENT DESBD315 00019 * REFERANCE: PROGRAMMER: GD DESBD315 00020 * DESBD315 00021 * MM/DD/YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DESBD315 00022 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DESBD315 00023 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX DESBD315 00024 * DESBD315 00025 * DESCRIPTION: DESBD315 00026 * DESBD315 00027 * DESBD315 00028 * RECORDS READ: DESBD315 00029 * WAGE RECORDS OUTPUT FROM DESBD310 DESBD315 00030 * DESBD315 00031 * PRINTED OUTPUTS: DESBD315 00032 * NONE DESBD315 00033 * DESBD315 00034 * RECORDS WRITTEN: DESBD315 00035 * DTSIWWGH WAGE RECORDS DESBD315 00036 * DESBD315 00037 * MODULES CALLED: DESBD315 00038 * NONE DESBD315 00039 * DESBD315 00040 ***** DESBD315 00041 DESBD315 00042 ENVIRONMENT DIVISION. DESBD315 00043 SKIP2 DESBD315 00044 INPUT-OUTPUT SECTION. DESBD315 00045 SKIP3 DESBD315 00046 FILE-CONTROL. DESBD315 00047 SELECT WAGE-IN-FILE ASSIGN TO DTSFWGHI DESBD315 00048 FILE STATUS IS WAGE-IN-STATUS. DESBD315 00049 DESBD315 00050 SELECT WAGE-OUT-FILE ASSIGN TO DTSFWGHO DESBD315 00051 FILE STATUS IS WAGE-OUT-STATUS. DESBD315 00052 SKIP2 DESBD315 00053 DESBD315 00054 DATA DIVISION. DESBD315 00055 SKIP2 DESBD315 00056 FILE SECTION. DESBD315 00057 SKIP2 DESBD315 00058 FD WAGE-IN-FILE DESBD315 00059 RECORDING MODE IS F DESBD315 00060 LABEL RECORDS ARE STANDARD DESBD315 00061 BLOCK CONTAINS 0 CHARACTERS. DESBD315 00062 SKIP1 DESBD315 00063 01 WGH-IN-REC. DESBD315 00064 ++INCLUDE DTSIWWGH DESBD315 00065 DESBD315 00066 FD WAGE-OUT-FILE DESBD315 00067 RECORDING MODE IS F DESBD315 00068 LABEL RECORDS ARE STANDARD DESBD315 00069 BLOCK CONTAINS 0 CHARACTERS. DESBD315 00070 SKIP1 DESBD315 00071 01 WGH-OUT-REC PIC X(18). DESBD315 00072 DESBD315 00073 EJECT DESBD315 00074 WORKING-STORAGE SECTION. DESBD315 000745 77 PAN-VALET PICTURE X(24) VALUE '001DESBD315 06/08/04'. DESBD315 00075 SKIP3 DESBD315 00076 01 WRK-AREA. DESBD315 00077 05 WRK-ERROR-IND PIC X(01) VALUE 'N'. DESBD315 00078 88 WRK-ERROR-YES-88 VALUE 'Y'. DESBD315 00079 88 WRK-ERROR-NO-88 VALUE 'N'. DESBD315 00080 DESBD315 00081 05 WRK-MOD-NAME PIC X(08) VALUE 'DESBD315'. DESBD315 00082 05 WRK-TRACE-IND PIC X(01) VALUE 'N'. DESBD315 00083 DESBD315 00084 05 WAGE-IN-STATUS PIC X(02) VALUE SPACES. DESBD315 00085 88 WAGE-IN-OK-88 VALUE ZERO. DESBD315 00086 88 WAGE-IN-EOF-88 VALUE '10'. DESBD315 00087 DESBD315 00088 05 WAGE-OUT-STATUS PIC X(02) VALUE SPACES. DESBD315 00089 88 WAGE-OUT-OK-88 VALUE ZERO. DESBD315 00090 DESBD315 00091 05 WRK-EMP-NO PIC S9(07) COMP-3 VALUE +0. DESBD315 00092 05 WRK-SUCCESSOR PIC S9(07) COMP-3 VALUE +0. DESBD315 00093 DESBD315 00094 05 WRK-WWGH-READ-CNT PIC S9(07) COMP-3 VALUE +0. DESBD315 00095 05 WRK-WWGH-WRITE-CNT PIC S9(07) COMP-3 VALUE +0. DESBD315 00096 05 WRK-DUPLICATE-CNT PIC S9(07) COMP-3 VALUE +0. DESBD315 00097 DESBD315 00098 01 WGH-HOLD-REC. DESBD315 00099 ++INCLUDE DTSIWWGH DESBD315 00100 EJECT DESBD315 00101 PROCEDURE DIVISION. DESBD315 00102 DESBD315 00103 DESBD315-MAIN. DESBD315 00104 PERFORM I0000-INIT THRU I0000-EXIT. DESBD315 00105 IF WRK-ERROR-YES-88 DESBD315 00106 GO TO DESBD315-MAIN-EXIT. DESBD315 00107 DESBD315 00108 PERFORM P0000-PROCESS THRU P0000-EXIT. DESBD315 00109 DESBD315 00110 PERFORM T0000-TERMINATE THRU T0000-EXIT. DESBD315 00111 DESBD315 00112 DESBD315-MAIN-EXIT. DESBD315 00113 GOBACK. DESBD315 00114 DESBD315 00115 I0000-INIT. DESBD315 00116 OPEN INPUT WAGE-IN-FILE. DESBD315 00117 IF NOT WAGE-IN-OK-88 DESBD315 00118 DISPLAY 'CANNOT OPEN INPUT FILE ' WAGE-IN-STATUS DESBD315 00119 SET WRK-ERROR-YES-88 TO TRUE DESBD315 00120 GO TO I0000-EXIT. DESBD315 00121 DESBD315 00122 OPEN OUTPUT WAGE-OUT-FILE. DESBD315 00123 IF NOT WAGE-OUT-OK-88 DESBD315 00124 DISPLAY 'CANNOT OPEN OUTPUT FILE ' WAGE-OUT-STATUS DESBD315 00125 SET WRK-ERROR-YES-88 TO TRUE DESBD315 00126 GO TO I0000-EXIT. DESBD315 00127 DESBD315 00128 MOVE ZERO TO WWGH-SSN OF WGH-HOLD-REC DESBD315 00129 WWGH-EMP-NO OF WGH-HOLD-REC DESBD315 00130 WWGH-YRQ OF WGH-HOLD-REC DESBD315 00131 WWGH-EARNINGS OF WGH-HOLD-REC. DESBD315 00132 DESBD315 00133 I0000-EXIT. DESBD315 00134 EXIT. DESBD315 00135 DESBD315 00136 P0000-PROCESS. DESBD315 00137 PERFORM P1200-READ-NEXT-WWGH THRU P1200-EXIT. DESBD315 00138 IF WAGE-IN-EOF-88 DESBD315 00139 DISPLAY 'INPUT FILE IS EMPTY' DESBD315 00140 GO TO P0000-EXIT DESBD315 00141 ELSE DESBD315 00142 MOVE WGH-IN-REC TO WGH-HOLD-REC DESBD315 00143 END-IF. DESBD315 00144 DESBD315 00145 PERFORM P1200-READ-NEXT-WWGH THRU P1200-EXIT. DESBD315 00146 PERFORM P1000-PROCESS-FILE THRU P1000-EXIT DESBD315 00147 UNTIL WAGE-IN-EOF-88. DESBD315 00148 DESBD315 00149 P0000-EXIT. DESBD315 00150 EXIT. DESBD315 00151 DESBD315 00152 P1000-PROCESS-FILE. DESBD315 00153 IF (WWGH-EMP-NO OF WGH-IN-REC = DESBD315 00154 WWGH-EMP-NO OF WGH-HOLD-REC DESBD315 00155 AND WWGH-SSN OF WGH-IN-REC = DESBD315 00156 WWGH-SSN OF WGH-HOLD-REC DESBD315 00157 AND WWGH-YRQ OF WGH-IN-REC = DESBD315 00158 WWGH-YRQ OF WGH-HOLD-REC) DESBD315 00159 PERFORM P1100-MERGE THRU P1100-EXIT DESBD315 00160 PERFORM P1200-READ-NEXT-WWGH THRU P1200-EXIT DESBD315 00161 ELSE DESBD315 00162 PERFORM P1300-WRITE-OUTPUT THRU P1300-EXIT DESBD315 00163 MOVE WGH-IN-REC TO WGH-HOLD-REC DESBD315 00164 PERFORM P1200-READ-NEXT-WWGH THRU P1200-EXIT DESBD315 00165 END-IF. DESBD315 00166 DESBD315 00167 P1000-EXIT. DESBD315 00168 EXIT. DESBD315 00169 DESBD315 00170 P1100-MERGE. DESBD315 00171 ADD +1 TO WRK-DUPLICATE-CNT. DESBD315 00172 ADD WWGH-EARNINGS OF WGH-IN-REC DESBD315 00173 TO WWGH-EARNINGS OF WGH-HOLD-REC. DESBD315 00174 DESBD315 00175 * DISPLAY 'DUP ' WWGH-SSN OF WGH-HOLD-REC DESBD315 00176 * ' ' WWGH-EMP-NO OF WGH-HOLD-REC DESBD315 00177 * ' ' WWGH-YRQ OF WGH-HOLD-REC. DESBD315 00178 DESBD315 00179 P1100-EXIT. DESBD315 00180 EXIT. DESBD315 00181 DESBD315 00182 P1200-READ-NEXT-WWGH. DESBD315 00183 READ WAGE-IN-FILE. DESBD315 00184 IF WAGE-IN-OK-88 DESBD315 00185 ADD +1 TO WRK-WWGH-READ-CNT. DESBD315 00186 DESBD315 00187 P1200-EXIT. DESBD315 00188 EXIT. DESBD315 00189 DESBD315 00190 P1300-WRITE-OUTPUT. DESBD315 00191 WRITE WGH-OUT-REC FROM WGH-HOLD-REC. DESBD315 00192 ADD +1 TO WRK-WWGH-WRITE-CNT. DESBD315 00193 P1300-EXIT. DESBD315 00194 EXIT. DESBD315 00195 DESBD315 00196 T0000-TERMINATE. DESBD315 00197 DESBD315 00198 DISPLAY ' '. DESBD315 00199 DISPLAY ' '. DESBD315 00200 DESBD315 00201 DISPLAY '*** DESBD315 TERMINATION STATISTICS ***'. DESBD315 00202 DESBD315 00203 DISPLAY ' '. DESBD315 00204 DISPLAY 'WAGE INPUT RECORDS READ : 'DESBD315 00205 WRK-WWGH-READ-CNT. DESBD315 00206 DESBD315 00207 DISPLAY ' '. DESBD315 00208 DISPLAY 'DUPLICATE RECORDS MERGED : 'DESBD315 00209 WRK-DUPLICATE-CNT. DESBD315 00210 DESBD315 00211 DISPLAY ' '. DESBD315 00212 DISPLAY 'OUTPUT RECORDS WRITTEN : 'DESBD315 00213 WRK-WWGH-WRITE-CNT. DESBD315 00214 DESBD315 00215 CLOSE WAGE-IN-FILE WAGE-OUT-FILE. DESBD315 00216 DESBD315 00217 T0000-EXIT. DESBD315 00218 EXIT. DESBD315