00001 IDENTIFICATION DIVISION. 06/29/02 00002 PROGRAM-ID. DTSBU103. DTSBU103 00003 AUTHOR. TRW. LV001 00004 DATE-WRITTEN. FEBRUARY 2002. DTSBU103 00005 DATE-COMPILED. DTSBU103 00006 SKIP3 DTSBU103 00007 ***** DTSBU103 00008 * DTSBU103 00009 * FUNCTION: LATE PAYMENT PENALTY CHARGE/WAIVER CALCULATION DTSBU103 00010 * >> FOR ANNUAL REPORTS << DTSBU103 00011 * DTSBU103 00012 * MODIFICATION LOG: DTSBU103 00013 * DTSBU103 00014 * 11/14/1998 MODIFIED FROM DTSBU102 DTSBU103 00015 * REFERENCE: HOUSEHOLD PROGRAMMER: GD DTSBU103 00016 * DTSBU103 00017 * MM/DD/YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU103 00018 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DTSBU103 00019 * REFERENCE: XXXXXXXXXXXXXXX PROGRAMMER: XXX DTSBU103 00020 * DTSBU103 00021 * DTSBU103 00022 * DESCRIPTION: DTSBU103 00023 * DTSBU103 00024 * COMPUTES LATE PAYMENT PENALTY CHARGED (PER SECTION 3.1.3.4 DTSBU103 00025 * OF THE REQUIREMENTS DOCUMENT AND COMPUTES LATE PAYMENT DTSBU103 00026 * PENALTY WAIVED (PER SECTION 3.1.4.3 OF THE REQUIREMENTS DTSBU103 00027 * DOCUMENT. DTSBU103 00028 * DTSBU103 00029 ***** DTSBU103 00030 SKIP3 DTSBU103 00031 ENVIRONMENT DIVISION. DTSBU103 00032 EJECT DTSBU103 00033 DATA DIVISION. DTSBU103 00034 SKIP3 DTSBU103 00035 WORKING-STORAGE SECTION. DTSBU103 000355 77 PAN-VALET PICTURE X(24) VALUE '001DTSBU103 06/29/02'. DTSBU103 00036 DTSBU103 00037 01 WRK-AREA. DTSBU103 00038 05 WRK-ABEND-CD PIC S9(04) COMP VALUE +103.DTSBU103 00039 DTSBU103 00040 05 WRK-PEN-PCT PIC S9(01)V9(03) COMP-3 DTSBU103 00041 VALUE +0.010. DTSBU103 00042 DTSBU103 00043 05 WRK-FIXED-PEN PIC S9(03)V9(02) COMP-3 DTSBU103 00044 VALUE +100.00. DTSBU103 00045 DTSBU103 00046 05 WRK-LATE-ORIG-RPT-IND PIC X(01). DTSBU103 00047 88 WRK-LATE-ORIG-RPT-YES-88 VALUE 'Y'. DTSBU103 00048 88 WRK-LATE-ORIG-RPT-NO-88 VALUE 'N'. DTSBU103 00049 DTSBU103 00050 05 WRK-INIT-COMPLETE-IND PIC X(01) VALUE 'N'. DTSBU103 00051 88 WRK-INIT-COMPLETE-YES-88 VALUE 'Y'. DTSBU103 00052 88 WRK-INIT-COMPLETE-NO-88 VALUE 'N'. DTSBU103 00053 DTSBU103 00054 05 PEN-CALC-TYPE-IND PIC X(01). DTSBU103 00055 88 PEN-CALC-FROM-PCT-88 VALUE '0'. DTSBU103 00056 88 PEN-CALC-FIXED-AMT-88 VALUE '1'. DTSBU103 00057 88 PEN-CALC-TYPE-VALID-88 VALUE '0' '1'. DTSBU103 00058 DTSBU103 00059 05 WRK-BASE-AMT PIC S9(09)V9(02) COMP-3. DTSBU103 00060 DTSBU103 00061 05 WRK-TOT-PEN-AMT PIC S9(09)V9(02) COMP-3. DTSBU103 00062 DTSBU103 00063 EJECT DTSBU103 00064 LINKAGE SECTION. DTSBU103 00065 SKIP3 DTSBU103 00066 01 L103-LINK-AREA. DTSBU103 00067 ++INCLUDE DTSIL103 DTSBU103 00068 EJECT DTSBU103 00069 PROCEDURE DIVISION USING L103-LINK-AREA. DTSBU103 00070 DTSBU103-MAINLINE. DTSBU103 00071 DTSBU103 00072 IF NOT L103-OPTION-VALID-88 DTSBU103 00073 DISPLAY '*** DTSBU103 ABENDING: INVALID OPTION ' DTSBU103 00074 L103-OPTION DTSBU103 00075 PERFORM S999-ABEND THRU S999-EXIT. DTSBU103 00076 DTSBU103 00077 MOVE +0 TO L103-LATE-PEN-CHARGE-CHNG DTSBU103 00078 L103-LATE-PEN-WAIVE-CHNG. DTSBU103 00079 DTSBU103 00080 IF L103-INITIALIZATION-88 DTSBU103 00081 PERFORM I0000-INIT THRU I0000-EXIT DTSBU103 00082 GO TO DTSBU103-MAINLINE-EXIT. DTSBU103 00083 DTSBU103 00084 IF WRK-INIT-COMPLETE-NO-88 DTSBU103 00085 OR NOT PEN-CALC-TYPE-VALID-88 DTSBU103 00086 DISPLAY '*** DTSBU103 ABENDING: INIT NOT COMPLETE' DTSBU103 00087 PERFORM S999-ABEND THRU S999-EXIT. DTSBU103 00088 DTSBU103 00089 IF L103-LIABLE-QTR-CNT = ZERO DTSBU103 00090 DISPLAY '*** DTSBU103: QTR CNT = ZERO' DTSBU103 00091 GO TO DTSBU103-MAINLINE-EXIT. DTSBU103 00092 DTSBU103 00093 PERFORM P1000-PEN-CHARGE THRU P1000-EXIT. DTSBU103 00094 DTSBU103 00095 DTSBU103 00096 PERFORM P2000-WAIVE THRU P2000-EXIT. DTSBU103 00097 DTSBU103 00098 DTSBU103 00099 DTSBU103-MAINLINE-EXIT. DTSBU103 00100 GOBACK. DTSBU103 00101 EJECT DTSBU103 00102 I0000-INIT. DTSBU103 00103 SET WRK-INIT-COMPLETE-YES-88 TO TRUE. DTSBU103 00104 DTSBU103 00105 IF L103-OR-RECEIVED-DATE > L103-RPT-DUE-DATE DTSBU103 00106 SET WRK-LATE-ORIG-RPT-YES-88 TO TRUE DTSBU103 00107 ELSE DTSBU103 00108 SET WRK-LATE-ORIG-RPT-NO-88 TO TRUE DTSBU103 00109 END-IF. DTSBU103 00110 DTSBU103 00111 *& DTSBU103 00112 * DISPLAY 'DTSBU103 INIT' DTSBU103 00113 * ' RCVD ' L103-OR-RECEIVED-DATE DTSBU103 00114 * ' DUE ' L103-RPT-DUE-DATE DTSBU103 00115 * IF WRK-LATE-ORIG-RPT-YES-88 DTSBU103 00116 * DISPLAY ' LATE REPORT' DTSBU103 00117 * ELSE DTSBU103 00118 * DISPLAY ' TIMELY REPORT'. DTSBU103 00119 *& DTSBU103 00120 IF WRK-LATE-ORIG-RPT-YES-88 DTSBU103 00121 IF (L103-INIT-TOT-CHG * WRK-PEN-PCT) > WRK-FIXED-PEN DTSBU103 00122 SET PEN-CALC-FROM-PCT-88 TO TRUE DTSBU103 00123 ELSE DTSBU103 00124 SET PEN-CALC-FIXED-AMT-88 TO TRUE DTSBU103 00125 END-IF DTSBU103 00126 ELSE DTSBU103 00127 COMPUTE WRK-TOT-PEN-AMT = DTSBU103 00128 (L103-INIT-TOT-BAL * WRK-PEN-PCT) DTSBU103 00129 IF WRK-TOT-PEN-AMT > WRK-FIXED-PEN DTSBU103 00130 SET PEN-CALC-FROM-PCT-88 TO TRUE DTSBU103 00131 ELSE DTSBU103 00132 SET PEN-CALC-FIXED-AMT-88 TO TRUE DTSBU103 00133 END-IF DTSBU103 00134 END-IF. DTSBU103 00135 DTSBU103 00136 MOVE ZERO TO WRK-TOT-PEN-AMT. DTSBU103 00137 *& DTSBU103 00138 * DISPLAY 'DTSBU103 INIT '. DTSBU103 00139 * DISPLAY ' TOT CHG ' L103-INIT-TOT-CHG. DTSBU103 00140 * IF PEN-CALC-FROM-PCT-88 DTSBU103 00141 * DISPLAY ' CALC FROM PERCENT' DTSBU103 00142 * ELSE DTSBU103 00143 * DISPLAY ' FIXED PENALTY'. DTSBU103 00144 *& DTSBU103 00145 I0000-EXIT. DTSBU103 00146 EXIT. DTSBU103 00147 DTSBU103 00148 P1000-PEN-CHARGE. DTSBU103 00149 IF L103-PEN-CHARGE-MANUAL-88 DTSBU103 00150 GO TO P1000-EXIT. DTSBU103 00151 DTSBU103 00152 *& DTSBU103 00153 DISPLAY 'DTSBU103 L103 LAST PEN YRQ ' DTSBU103 00154 L103-LAST-PEN-ASSESSED-YRQ DTSBU103 00155 ' YRQ ' L103-MQTR-YRQ. DTSBU103 00156 *& DTSBU103 00157 IF L103-LAST-PEN-ASSESSED-YRQ = ZERO DTSBU103 00158 GO TO P1000-EXIT DTSBU103 00159 ELSE DTSBU103 00160 IF L103-MQTR-YRQ > L103-LAST-PEN-ASSESSED-YRQ DTSBU103 00161 GO TO P1000-EXIT. DTSBU103 00162 DTSBU103 00163 IF L103-LATE-PEN-CHARGED-AMT > +0 DTSBU103 00164 GO TO P1000-EXIT. DTSBU103 00165 DTSBU103 00166 SET WRK-LATE-ORIG-RPT-NO-88 TO TRUE. DTSBU103 00167 MOVE ZERO TO WRK-BASE-AMT. DTSBU103 00168 DTSBU103 00169 IF L103-PEN-ASSESSMENT-RUN-88 DTSBU103 00170 OR L103-ORIGINAL-RPT-88 DTSBU103 00171 PERFORM P1100-CHK-LATE-ORIG-RPT THRU P1100-EXIT DTSBU103 00172 PERFORM P1200-CALC-ORIG-BASE-AMT THRU P1200-EXIT DTSBU103 00173 ELSE DTSBU103 00174 IF L103-NSF-PAY-REVERSAL-88 DTSBU103 00175 PERFORM P1300-CALC-NSF-BASE-AMT THRU P1300-EXIT DTSBU103 00176 ELSE DTSBU103 00177 IF L103-ESTIMATED-RPT-88 DTSBU103 00178 MOVE L103-TAX-CHARGED-AMT TO WRK-BASE-AMT DTSBU103 00179 END-IF DTSBU103 00180 END-IF DTSBU103 00181 END-IF. DTSBU103 00182 DTSBU103 00183 PERFORM S1000-COMPUTE-PENALTY THRU S1000-EXIT. DTSBU103 00184 DTSBU103 00185 P1000-EXIT. DTSBU103 00186 EXIT. DTSBU103 00187 DTSBU103 00188 P1100-CHK-LATE-ORIG-RPT. DTSBU103 00189 IF L103-OR-RECEIVED-DATE > L103-RPT-DUE-DATE DTSBU103 00190 SET WRK-LATE-ORIG-RPT-YES-88 TO TRUE DTSBU103 00191 END-IF. DTSBU103 00192 DTSBU103 00193 P1100-EXIT. DTSBU103 00194 EXIT. DTSBU103 00195 DTSBU103 00196 P1200-CALC-ORIG-BASE-AMT. DTSBU103 00197 IF WRK-LATE-ORIG-RPT-YES-88 DTSBU103 00198 MOVE L103-TAX-CHARGED-AMT TO WRK-BASE-AMT DTSBU103 00199 ELSE DTSBU103 00200 MOVE L103-TAX-BALANCE-AMT TO WRK-BASE-AMT DTSBU103 00201 END-IF. DTSBU103 00202 DTSBU103 00203 P1200-EXIT. DTSBU103 00204 EXIT. DTSBU103 00205 DTSBU103 00206 P1300-CALC-NSF-BASE-AMT. DTSBU103 00207 MOVE L103-TAX-BALANCE-AMT TO WRK-BASE-AMT. DTSBU103 00208 DTSBU103 00209 P1300-EXIT. DTSBU103 00210 EXIT. DTSBU103 00211 DTSBU103 00212 EJECT DTSBU103 00213 P2000-WAIVE. DTSBU103 00214 IF L103-LATE-PEN-CHARGE-CHNG > +0 DTSBU103 00215 NEXT SENTENCE DTSBU103 00216 ELSE DTSBU103 00217 GO TO P2000-EXIT. DTSBU103 00218 DTSBU103 00219 IF L103-WAIVE-LATE-PEN-YES-88 DTSBU103 00220 MOVE L103-LATE-PEN-CHARGE-CHNG DTSBU103 00221 TO L103-LATE-PEN-WAIVE-CHNG DTSBU103 00222 GO TO P2000-EXIT. DTSBU103 00223 DTSBU103 00224 IF (L103-PEN-ASSESSMENT-RUN-88) DTSBU103 00225 OR DTSBU103 00226 (L103-ORIGINAL-RPT-88) DTSBU103 00227 IF (L103-OR-RECEIVED-DATE < L103-WAIVE-PEN-START-DATE) DTSBU103 00228 OR DTSBU103 00229 (L103-OR-RECEIVED-DATE > L103-WAIVE-PEN-END-DATE) DTSBU103 00230 OR DTSBU103 00231 (L103-OR-RECEIVED-DATE = +0) DTSBU103 00232 NEXT SENTENCE DTSBU103 00233 ELSE DTSBU103 00234 MOVE L103-LATE-PEN-CHARGE-CHNG DTSBU103 00235 TO L103-LATE-PEN-WAIVE-CHNG. DTSBU103 00236 P2000-EXIT. DTSBU103 00237 EXIT. DTSBU103 00238 EJECT DTSBU103 00239 S1000-COMPUTE-PENALTY. DTSBU103 00240 *& DTSBU103 00241 DISPLAY 'DTSBU103 S1000 1 BAL ' L103-TAX-BALANCE-AMT DTSBU103 00242 ' PEN BAL ' WRK-TOT-PEN-AMT DTSBU103 00243 ' LAST QTR ' L103-LAST-LIABLE-YRQ DTSBU103 00244 ' QTR CNT ' L103-LIABLE-QTR-CNT. DTSBU103 00245 *& DTSBU103 00246 IF WRK-LATE-ORIG-RPT-YES-88 DTSBU103 00247 NEXT SENTENCE DTSBU103 00248 ELSE DTSBU103 00249 IF L103-TAX-BALANCE-AMT NOT > ZERO DTSBU103 00250 GO TO S1000-EXIT DTSBU103 00251 END-IF DTSBU103 00252 END-IF. DTSBU103 00253 DTSBU103 00254 IF PEN-CALC-FIXED-AMT-88 DTSBU103 00255 IF L103-MQTR-YRQ > L103-LAST-LIABLE-YRQ DTSBU103 00256 GO TO S1000-EXIT. DTSBU103 00257 DTSBU103 00258 IF PEN-CALC-FROM-PCT-88 DTSBU103 00259 COMPUTE L103-LATE-PEN-CHARGE-CHNG ROUNDED DTSBU103 00260 = WRK-BASE-AMT * WRK-PEN-PCT DTSBU103 00261 ELSE DTSBU103 00262 COMPUTE L103-LATE-PEN-CHARGE-CHNG = DTSBU103 00263 (1 / L103-LIABLE-QTR-CNT) * WRK-FIXED-PEN. DTSBU103 00264 DTSBU103 00265 *& DTSBU103 00266 DISPLAY 'DTSBU103 S1000 2 ' L103-MQTR-YRQ DTSBU103 00267 ' PENALTY ' L103-LATE-PEN-CHARGE-CHNG. DTSBU103 00268 *& DTSBU103 00269 ADD L103-LATE-PEN-CHARGE-CHNG TO WRK-TOT-PEN-AMT. DTSBU103 00270 DTSBU103 00271 IF PEN-CALC-FIXED-AMT-88 DTSBU103 00272 IF L103-MQTR-YRQ = L103-LAST-LIABLE-YRQ DTSBU103 00273 IF WRK-TOT-PEN-AMT < WRK-FIXED-PEN DTSBU103 00274 COMPUTE L103-LATE-PEN-CHARGE-CHNG = DTSBU103 00275 L103-LATE-PEN-CHARGE-CHNG + DTSBU103 00276 (WRK-FIXED-PEN - WRK-TOT-PEN-AMT) DTSBU103 00277 ADD L103-LATE-PEN-CHARGE-CHNG DTSBU103 00278 TO WRK-TOT-PEN-AMT. DTSBU103 00279 DTSBU103 00280 *& DTSBU103 00281 DISPLAY 'DTSBU103 S1000 3' L103-MQTR-YRQ DTSBU103 00282 ' CORRECTED PENALTY ' L103-LATE-PEN-CHARGE-CHNG. DTSBU103 00283 *& DTSBU103 00284 S1000-EXIT. DTSBU103 00285 EXIT. DTSBU103 00286 EJECT DTSBU103 00287 S999-ABEND. DTSBU103 00288 CALL 'DTSBU999' USING WRK-ABEND-CD. DTSBU103 00289 S999-EXIT. DTSBU103 00290 EXIT. DTSBU103