250 lines
20 KiB
COBOL
250 lines
20 KiB
COBOL
00001 IDENTIFICATION DIVISION. 10/30/07
|
|
00002 PROGRAM-ID. DTSBU601. DTSBU601
|
|
00003 AUTHOR. TRICOASTAL CONSULTING LTD. LV001
|
|
00004 DATE-WRITTEN. FEBRUARY 1999. DTSBU601
|
|
00005 DATE-COMPILED. DTSBU601
|
|
00006 SKIP3 DTSBU601
|
|
00007 ***** DTSBU601
|
|
00008 * DTSBU601
|
|
00009 * FUNCTION: FIND ULTIMATE SUCCESSOR ACCOUNT. DTSBU601
|
|
00010 * UNLIKE DTSBU600, THIS PROGRAM FINDS NON-RATING DTSBU601
|
|
00011 * SUCCESSORS AS WELL AS RATING SUCCESSORS. DTSBU601
|
|
00012 * IT IS USED IN PROCESSING ELECTRONIC REPORTS DTSBU601
|
|
00013 * AND FOR CHARGE STATEMENTS. DTSBU601
|
|
00014 * DTSBU601
|
|
00015 * MODIFICATION LOG: DTSBU601
|
|
00016 * DTSBU601
|
|
00017 * 11/03/2005 INITIAL DEVELOPMENT. DTSBU601
|
|
00018 * WORK ORDER: PROGRAMMER: GD DTSBU601
|
|
00019 * DTSBU601
|
|
00020 * XX/XX/XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU601
|
|
00021 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU601
|
|
00022 * WORK ORDER: PROGRAMMER: XXX DTSBU601
|
|
00023 * DTSBU601
|
|
00024 * DTSBU601
|
|
00025 * DESCRIPTION: DTSBU601
|
|
00026 * DTSBU601
|
|
00027 * SCAN THE IPES RECORDS LOOKING FOR THE ULTIMATE SUCCESSOR DTSBU601
|
|
00028 * ACCOUNT RELATED TO THE EMPLOYER NUMBER PASSED. DTSBU601
|
|
00029 * DTSBU601
|
|
00030 * FIRST LOOK FOR AN IPES RECORD FOR THE EMPLOYER. IF ONE DTSBU601
|
|
00031 * EXISTS, READ THE IPES RECORDS LOOKING FOR THE NEXT DTSBU601
|
|
00032 * SUCCESSOR. DTSBU601
|
|
00033 * DTSBU601
|
|
00034 * IF THE SEARCH FINDS MORE THAN 100 SUCCESSORS, IT RETURNS DTSBU601
|
|
00035 * WITH AN ERROR CODE. DTSBU601
|
|
00036 * DTSBU601
|
|
00037 * IF L600-EXP-TRN-EFF-DATE CONTAINS A VALID DATE, THE PROGRAM DTSBU601
|
|
00038 * WILL IGNORE CHANGES OF OWNERSHIP THAT OCCURRED AFTER THIS DTSBU601
|
|
00039 * DATE. THE PARAMETER IS NORMALLY SET TO ALL NINES, AND DTSBU601
|
|
00040 * IGNORED. IT IS ONLY USED IN SPECIAL SITUATIONS WHERE IT IS DTSBU601
|
|
00041 * NECESSARY TO RECREATE THE CHARGE HISTORY REPORTED FOR A DTSBU601
|
|
00042 * PRIOR RATING YEAR. DTSBU601
|
|
00043 * DTSBU601
|
|
00044 ***** DTSBU601
|
|
00045 SKIP3 DTSBU601
|
|
00046 ENVIRONMENT DIVISION. DTSBU601
|
|
00047 SKIP3 DTSBU601
|
|
00048 DATA DIVISION. DTSBU601
|
|
00049 SKIP3 DTSBU601
|
|
00050 WORKING-STORAGE SECTION. DTSBU601
|
|
000505 77 PAN-VALET PICTURE X(24) VALUE '001DTSBU601 10/30/07'. DTSBU601
|
|
00051 SKIP3 DTSBU601
|
|
00052 01 WRK-AREA. DTSBU601
|
|
00053 05 WRK-ABEND-CODE PIC S9(04) COMP DTSBU601
|
|
00054 VALUE +600. DTSBU601
|
|
00055 DTSBU601
|
|
00056 05 WRK-MAX-CNT PIC S9(04) COMP DTSBU601
|
|
00057 VALUE +100. DTSBU601
|
|
00058 DTSBU601
|
|
00059 05 WRK-EMP-NO PIC S9(07) COMP-3. DTSBU601
|
|
00060 05 WRK-SUCCESSOR PIC S9(07) COMP-3. DTSBU601
|
|
00061 05 WRK-EFF-DATE PIC S9(09) COMP-3. DTSBU601
|
|
00062 DTSBU601
|
|
00063 * THE FOLLOWING FIELD USED FOR SPECIAL RUNS THAT EXCLUDE DTSBU601
|
|
00064 * EXPERIENCE TRANSFERS PAST A CERTAIN DATE. DTSBU601
|
|
00065 05 WRK-END-DATE PIC S9(09) COMP-3. DTSBU601
|
|
00066 DTSBU601
|
|
00067 05 WRK-SEARCH-IND PIC X(01). DTSBU601
|
|
00068 88 WRK-START-SEARCH-88 VALUE '0'. DTSBU601
|
|
00069 88 WRK-SEARCH-ENDED-88 VALUE '1'. DTSBU601
|
|
00070 DTSBU601
|
|
00071 05 WRK-SUCCESSOR-IND PIC X(01). DTSBU601
|
|
00072 88 WRK-SUCCESSOR-YES-88 VALUE 'Y'. DTSBU601
|
|
00073 88 WRK-SUCCESSOR-NO-88 VALUE 'N'. DTSBU601
|
|
00074 DTSBU601
|
|
00075 05 WRK-ERROR-IND PIC X(01). DTSBU601
|
|
00076 88 WRK-ERROR-YES-88 VALUE 'Y'. DTSBU601
|
|
00077 88 WRK-ERROR-NO-88 VALUE 'N'. DTSBU601
|
|
00078 DTSBU601
|
|
00079 05 WRK-IPES-CNT PIC S9(04) COMP. DTSBU601
|
|
00080 DTSBU601
|
|
00081 EJECT DTSBU601
|
|
00082 01 L001-LINK-AREA. DTSBU601
|
|
00083 ++INCLUDE DTSIL001 DTSBU601
|
|
00084 SKIP3 DTSBU601
|
|
00085 01 L921-LINK-AREA. DTSBU601
|
|
00086 ++INCLUDE DTSIL921 DTSBU601
|
|
00087 SKIP3 DTSBU601
|
|
00088 01 ISKL-REC. DTSBU601
|
|
00089 ++INCLUDE DTSIISKL DTSBU601
|
|
00090 SKIP3 DTSBU601
|
|
00091 01 IPES-REC. DTSBU601
|
|
00092 ++INCLUDE DTSIIPES DTSBU601
|
|
00093 EJECT DTSBU601
|
|
00094 LINKAGE SECTION. DTSBU601
|
|
00095 SKIP3 DTSBU601
|
|
00096 01 L600-LINK-AREA. DTSBU601
|
|
00097 ++INCLUDE DTSIL600 DTSBU601
|
|
00098 EJECT DTSBU601
|
|
00099 PROCEDURE DIVISION DTSBU601
|
|
00100 USING L600-LINK-AREA. DTSBU601
|
|
00101 DTSBU601
|
|
00102 DTSBU601-MAIN. DTSBU601
|
|
00103 MOVE ZERO TO L600-ULTIMATE-SUCCESSOR DTSBU601
|
|
00104 WRK-SUCCESSOR DTSBU601
|
|
00105 WRK-EFF-DATE DTSBU601
|
|
00106 WRK-IPES-CNT. DTSBU601
|
|
00107 DTSBU601
|
|
00108 SET WRK-START-SEARCH-88 TO TRUE. DTSBU601
|
|
00109 DTSBU601
|
|
00110 MOVE L600-EMP-NO TO WRK-EMP-NO. DTSBU601
|
|
00111 DTSBU601
|
|
00112 PERFORM I1000-END-DATE THRU I1000-EXIT. DTSBU601
|
|
00113 DTSBU601
|
|
00114 PERFORM P1000-FIND-SUCCESSOR THRU P1000-EXIT DTSBU601
|
|
00115 UNTIL WRK-SEARCH-ENDED-88. DTSBU601
|
|
00116 DTSBU601
|
|
00117 IF WRK-ERROR-YES-88 DTSBU601
|
|
00118 SET L600-ERROR-88 TO TRUE DTSBU601
|
|
00119 ELSE DTSBU601
|
|
00120 IF WRK-SUCCESSOR = ZERO DTSBU601
|
|
00121 SET L600-NO-SUCCESSOR-88 TO TRUE DTSBU601
|
|
00122 ELSE DTSBU601
|
|
00123 MOVE WRK-SUCCESSOR TO L600-ULTIMATE-SUCCESSOR DTSBU601
|
|
00124 SET L600-SUCCESSOR-FOUND-88 TO TRUE. DTSBU601
|
|
00125 DTSBU601
|
|
00126 DTSBU601-MAIN-EXIT. DTSBU601
|
|
00127 GOBACK. DTSBU601
|
|
00128 EJECT DTSBU601
|
|
00129 I1000-END-DATE. DTSBU601
|
|
00130 IF L600-EXP-TRN-EFF-DATE NOT NUMERIC DTSBU601
|
|
00131 MOVE 99999999 TO WRK-END-DATE DTSBU601
|
|
00132 ELSE DTSBU601
|
|
00133 MOVE L600-EXP-TRN-EFF-DATE TO L001-FED-8-DATE-9 DTSBU601
|
|
00134 PERFORM S001-FROM-FED-8 THRU S001-EXIT DTSBU601
|
|
00135 IF L001-VALID-DATE DTSBU601
|
|
00136 MOVE L600-EXP-TRN-EFF-DATE TO WRK-END-DATE DTSBU601
|
|
00137 ELSE DTSBU601
|
|
00138 MOVE 99999999 TO WRK-END-DATE. DTSBU601
|
|
00139 DTSBU601
|
|
00140 I1000-EXIT. EXIT. DTSBU601
|
|
00141 DTSBU601
|
|
00142 P1000-FIND-SUCCESSOR. DTSBU601
|
|
00143 MOVE LOW-VALUE TO IPES-KEY-AREA. DTSBU601
|
|
00144 MOVE WRK-EMP-NO TO IPES-PRED-EMP-NO. DTSBU601
|
|
00145 SET IPES-PES-88 TO TRUE. DTSBU601
|
|
00146 MOVE IPES-KEY-AREA TO ISKL-KEY-AREA. DTSBU601
|
|
00147 DTSBU601
|
|
00148 PERFORM S921-START-BROWSE THRU S921-EXIT. DTSBU601
|
|
00149 IF L921-NO-REC-88 DTSBU601
|
|
00150 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00151 GO TO P1000-EXIT. DTSBU601
|
|
00152 DTSBU601
|
|
00153 ADD +1 TO WRK-IPES-CNT. DTSBU601
|
|
00154 IF WRK-IPES-CNT > WRK-MAX-CNT DTSBU601
|
|
00155 SET WRK-ERROR-YES-88 TO TRUE DTSBU601
|
|
00156 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00157 GO TO P1000-EXIT. DTSBU601
|
|
00158 DTSBU601
|
|
00159 MOVE ISKL-REC TO IPES-REC. DTSBU601
|
|
00160 DTSBU601
|
|
00161 IF IPES-PRED-EMP-NO NOT = WRK-EMP-NO DTSBU601
|
|
00162 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00163 GO TO P1000-EXIT. DTSBU601
|
|
00164 DTSBU601
|
|
00165 IF IPES-EFF-DATE > WRK-END-DATE DTSBU601
|
|
00166 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00167 GO TO P1000-EXIT DTSBU601
|
|
00168 ELSE DTSBU601
|
|
00169 IF IPES-EFF-DATE NOT < WRK-EFF-DATE DTSBU601
|
|
00170 MOVE IPES-EFF-DATE TO WRK-EFF-DATE DTSBU601
|
|
00171 MOVE IPES-SUC-EMP-NO TO WRK-EMP-NO DTSBU601
|
|
00172 WRK-SUCCESSOR DTSBU601
|
|
00173 GO TO P1000-EXIT DTSBU601
|
|
00174 END-IF DTSBU601
|
|
00175 END-IF. DTSBU601
|
|
00176 DTSBU601
|
|
00177 SET WRK-SUCCESSOR-NO-88 TO TRUE. DTSBU601
|
|
00178 PERFORM P1100-SCAN-IPES THRU P1100-EXIT DTSBU601
|
|
00179 UNTIL WRK-SUCCESSOR-YES-88 DTSBU601
|
|
00180 OR WRK-SEARCH-ENDED-88. DTSBU601
|
|
00181 DTSBU601
|
|
00182 P1000-EXIT. EXIT. DTSBU601
|
|
00183 DTSBU601
|
|
00184 P1100-SCAN-IPES. DTSBU601
|
|
00185 PERFORM S921-READ-NEXT THRU S921-EXIT. DTSBU601
|
|
00186 IF L921-NO-REC-88 DTSBU601
|
|
00187 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00188 GO TO P1100-EXIT DTSBU601
|
|
00189 END-IF. DTSBU601
|
|
00190 DTSBU601
|
|
00191 ADD +1 TO WRK-IPES-CNT. DTSBU601
|
|
00192 IF WRK-IPES-CNT > WRK-MAX-CNT DTSBU601
|
|
00193 SET WRK-ERROR-YES-88 TO TRUE DTSBU601
|
|
00194 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00195 GO TO P1100-EXIT DTSBU601
|
|
00196 END-IF. DTSBU601
|
|
00197 DTSBU601
|
|
00198 MOVE ISKL-REC TO IPES-REC. DTSBU601
|
|
00199 IF IPES-PRED-EMP-NO NOT = WRK-EMP-NO DTSBU601
|
|
00200 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00201 GO TO P1100-EXIT DTSBU601
|
|
00202 END-IF. DTSBU601
|
|
00203 DTSBU601
|
|
00204 IF IPES-EFF-DATE > WRK-END-DATE DTSBU601
|
|
00205 SET WRK-SEARCH-ENDED-88 TO TRUE DTSBU601
|
|
00206 GO TO P1100-EXIT DTSBU601
|
|
00207 ELSE DTSBU601
|
|
00208 IF IPES-EFF-DATE NOT < WRK-EFF-DATE DTSBU601
|
|
00209 SET WRK-SUCCESSOR-YES-88 TO TRUE DTSBU601
|
|
00210 MOVE IPES-EFF-DATE TO WRK-EFF-DATE DTSBU601
|
|
00211 MOVE IPES-SUC-EMP-NO TO WRK-EMP-NO DTSBU601
|
|
00212 WRK-SUCCESSOR DTSBU601
|
|
00213 END-IF DTSBU601
|
|
00214 END-IF. DTSBU601
|
|
00215 DTSBU601
|
|
00216 P1100-EXIT. EXIT. DTSBU601
|
|
00217 EJECT DTSBU601
|
|
00218 S001-FROM-FED-8. DTSBU601
|
|
00219 SET L001-FROM-FED-8 TO TRUE. DTSBU601
|
|
00220 GO TO S001-DATE. DTSBU601
|
|
00221 DTSBU601
|
|
00222 S001-DATE. DTSBU601
|
|
00223 CALL 'DTSBU001' USING L001-LINK-AREA. DTSBU601
|
|
00224 S001-EXIT. EXIT. DTSBU601
|
|
00225 DTSBU601
|
|
00226 S921-START-BROWSE. DTSBU601
|
|
00227 SKIP1 DTSBU601
|
|
00228 SET L921-START-BROWSE-88 TO TRUE. DTSBU601
|
|
00229 GO TO S921-AIX-IO. DTSBU601
|
|
00230 DTSBU601
|
|
00231 S921-READ-NEXT. DTSBU601
|
|
00232 SKIP1 DTSBU601
|
|
00233 SET L921-READ-NEXT-88 TO TRUE. DTSBU601
|
|
00234 GO TO S921-AIX-IO. DTSBU601
|
|
00235 DTSBU601
|
|
00236 S921-AIX-IO. DTSBU601
|
|
00237 CALL 'DTSBU921' DTSBU601
|
|
00238 USING L921-LINK-AREA DTSBU601
|
|
00239 ISKL-REC. DTSBU601
|
|
00240 SKIP1 DTSBU601
|
|
00241 S921-EXIT. EXIT. DTSBU601
|
|
00242 SKIP3 DTSBU601
|
|
00243 S999-ABEND. DTSBU601
|
|
00244 SKIP1 DTSBU601
|
|
00245 CALL 'DTSBU999' DTSBU601
|
|
00246 USING WRK-ABEND-CODE. DTSBU601
|
|
00247 SKIP1 DTSBU601
|
|
00248 S999-EXIT. EXIT. DTSBU601
|