| 1 | IDENTIFICATION DIVISION. |
| 2 | PROGRAM-ID. CBSTM03A. |
| 3 | AUTHOR. AWS. |
| 4 | ****************************************************************** |
| 5 | * Program : CBSTM03A.CBL |
| 6 | * Application : CardDemo |
| 7 | * Type : BATCH COBOL Program |
| 8 | * Function : Print Account Statements from Transaction data |
| 9 | * in two formats : 1/plain text and 2/HTML |
| 10 | ****************************************************************** |
| 11 | * Copyright Amazon.com, Inc. or its affiliates. |
| 12 | * All Rights Reserved. |
| 13 | * |
| 14 | * Licensed under the Apache License, Version 2.0 (the "License"). |
| 15 | * You may not use this file except in compliance with the License. |
| 16 | * You may obtain a copy of the License at |
| 17 | * |
| 18 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 19 | * |
| 20 | * Unless required by applicable law or agreed to in writing, |
| 21 | * software distributed under the License is distributed on an |
| 22 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
| 23 | * either express or implied. See the License for the specific |
| 24 | * language governing permissions and limitations under the License |
| 25 | ****************************************************************** |
| 26 | * This program is to create statement based on the data in |
| 27 | * transaction file. The following features are excercised |
| 28 | * to help create excercise modernization tooling |
| 29 | ****************************************************************** |
| 30 | * 1. Mainframe Control block addressing |
| 31 | * 2. Alter and GO TO statements |
| 32 | * 3. COMP and COMP-3 variables |
| 33 | * 4. 2 dimensional array |
| 34 | * 5. Call to Subroutine |
| 35 | ****************************************************************** |
| 36 | ENVIRONMENT DIVISION. |
| 37 | INPUT-OUTPUT SECTION. |
| 38 | FILE-CONTROL. |
| 39 | SELECT STMT-FILE ASSIGN TO STMTFILE. |
| 40 | SELECT HTML-FILE ASSIGN TO HTMLFILE. |
| 41 | * |
| 42 | DATA DIVISION. |
| 43 | FILE SECTION. |
| 44 | FD STMT-FILE. |
| 45 | 01 FD-STMTFILE-REC PIC X(80). |
| 46 | FD HTML-FILE. |
| 47 | 01 FD-HTMLFILE-REC PIC X(100). |
| 48 | |
| 49 | WORKING-STORAGE SECTION. |
| 50 | |
| 51 | COPY COSTM01. |
| 52 | |
| 53 | COPY CVACT03Y. |
| 54 | |
| 55 | COPY CUSTREC. |
| 56 | |
| 57 | COPY CVACT01Y. |
| 58 | |
| 59 | 01 COMP-VARIABLES COMP. |
| 60 | 05 CR-CNT PIC S9(4) VALUE 0. |
| 61 | 05 TR-CNT PIC S9(4) VALUE 0. |
| 62 | 05 CR-JMP PIC S9(4) VALUE 0. |
| 63 | 05 TR-JMP PIC S9(4) VALUE 0. |
| 64 | 01 COMP3-VARIABLES COMP-3. |
| 65 | 05 WS-TOTAL-AMT PIC S9(9)V99 VALUE 0. |
| 66 | 01 MISC-VARIABLES. |
| 67 | 05 WS-FL-DD PIC X(8) VALUE 'TRNXFILE'. |
| 68 | 05 WS-TRN-AMT PIC S9(9)V99 VALUE 0. |
| 69 | 05 WS-SAVE-CARD VALUE SPACES PIC X(16). |
| 70 | 05 END-OF-FILE PIC X(01) VALUE 'N'. |
| 71 | 01 WS-M03B-AREA. |
| 72 | 05 WS-M03B-DD PIC X(08). |
| 73 | 05 WS-M03B-OPER PIC X(01). |
| 74 | 88 M03B-OPEN VALUE 'O'. |
| 75 | 88 M03B-CLOSE VALUE 'C'. |
| 76 | 88 M03B-READ VALUE 'R'. |
| 77 | 88 M03B-READ-K VALUE 'K'. |
| 78 | 88 M03B-WRITE VALUE 'W'. |
| 79 | 88 M03B-REWRITE VALUE 'Z'. |
| 80 | 05 WS-M03B-RC PIC X(02). |
| 81 | 05 WS-M03B-KEY PIC X(25). |
| 82 | 05 WS-M03B-KEY-LN PIC S9(4). |
| 83 | 05 WS-M03B-FLDT PIC X(1000). |
| 84 | |
| 85 | 01 STATEMENT-LINES. |
| 86 | 05 ST-LINE0. |
| 87 | 10 FILLER VALUE ALL '*' PIC X(31). |
| 88 | 10 FILLER VALUE ALL 'START OF STATEMENT' PIC X(18). |
| 89 | 10 FILLER VALUE ALL '*' PIC X(31). |
| 90 | 05 ST-LINE1. |
| 91 | 10 ST-NAME PIC X(75). |
| 92 | 10 FILLER VALUE SPACES PIC X(05). |
| 93 | 05 ST-LINE2. |
| 94 | 10 ST-ADD1 PIC X(50). |
| 95 | 10 FILLER VALUE SPACES PIC X(30). |
| 96 | 05 ST-LINE3. |
| 97 | 10 ST-ADD2 PIC X(50). |
| 98 | 10 FILLER VALUE SPACES PIC X(30). |
| 99 | 05 ST-LINE4. |
| 100 | 10 ST-ADD3 PIC X(80). |
| 101 | 05 ST-LINE5. |
| 102 | 10 FILLER VALUE ALL '-' PIC X(80). |
| 103 | 05 ST-LINE6. |
| 104 | 10 FILLER VALUE SPACES PIC X(33). |
| 105 | 10 FILLER VALUE 'Basic Details' PIC X(14). |
| 106 | 10 FILLER VALUE SPACES PIC X(33). |
| 107 | 05 ST-LINE7. |
| 108 | 10 FILLER VALUE 'Account ID :' PIC X(20). |
| 109 | 10 ST-ACCT-ID PIC X(20). |
| 110 | 10 FILLER VALUE SPACES PIC X(40). |
| 111 | 05 ST-LINE8. |
| 112 | 10 FILLER VALUE 'Current Balance :' PIC X(20). |
| 113 | 10 ST-CURR-BAL PIC 9(9).99-. |
| 114 | 10 FILLER VALUE SPACES PIC X(07). |
| 115 | 10 FILLER VALUE SPACES PIC X(40). |
| 116 | 05 ST-LINE9. |
| 117 | 10 FILLER VALUE 'FICO Score :' PIC X(20). |
| 118 | 10 ST-FICO-SCORE PIC X(20). |
| 119 | 10 FILLER VALUE SPACES PIC X(40). |
| 120 | 05 ST-LINE10. |
| 121 | 10 FILLER VALUE ALL '-' PIC X(80). |
| 122 | 05 ST-LINE11. |
| 123 | 10 FILLER VALUE SPACES PIC X(30). |
| 124 | 10 FILLER VALUE 'TRANSACTION SUMMARY ' PIC X(20). |
| 125 | 10 FILLER VALUE SPACES PIC X(30). |
| 126 | 05 ST-LINE12. |
| 127 | 10 FILLER VALUE ALL '-' PIC X(80). |
| 128 | 05 ST-LINE13. |
| 129 | 10 FILLER VALUE 'Tran ID ' PIC X(16). |
| 130 | 10 FILLER VALUE 'Tran Details ' PIC X(51). |
| 131 | 10 FILLER VALUE ' Tran Amount' PIC X(13). |
| 132 | 05 ST-LINE14. |
| 133 | 10 ST-TRANID PIC X(16). |
| 134 | 10 FILLER VALUE ' ' PIC X(01). |
| 135 | 10 ST-TRANDT PIC X(49). |
| 136 | 10 FILLER VALUE '$' PIC X(01). |
| 137 | 10 ST-TRANAMT PIC Z(9).99-. |
| 138 | 05 ST-LINE14A. |
| 139 | 10 FILLER VALUE 'Total EXP:' PIC X(10). |
| 140 | 10 FILLER VALUE SPACES PIC X(56). |
| 141 | 10 FILLER VALUE '$' PIC X(01). |
| 142 | 10 ST-TOTAL-TRAMT PIC Z(9).99-. |
| 143 | 05 ST-LINE15. |
| 144 | 10 FILLER VALUE ALL '*' PIC X(32). |
| 145 | 10 FILLER VALUE ALL 'END OF STATEMENT' PIC X(16). |
| 146 | 10 FILLER VALUE ALL '*' PIC X(32). |
| 147 | |
| 148 | 01 HTML-LINES. |
| 149 | 05 HTML-FIXED-LN PIC X(100). |
| 150 | 88 HTML-L01 VALUE '<!DOCTYPE html>'. |
| 151 | 88 HTML-L02 VALUE '<html lang="en">'. |
| 152 | 88 HTML-L03 VALUE '<head>'. |
| 153 | 88 HTML-L04 VALUE '<meta charset="utf-8">'. |
| 154 | 88 HTML-L05 VALUE '<title>HTML Table Layout</title>'. |
| 155 | 88 HTML-L06 VALUE '</head>'. |
| 156 | 88 HTML-L07 VALUE '<body style="margin:0px;">'. |
| 157 | 88 HTML-L08 VALUE '<table align="center" frame="box" styl |
| 158 | - 'e="width:70%; font:12px Segoe UI,sans-serif;">'. |
| 159 | 88 HTML-LTRS VALUE '<tr>'. |
| 160 | 88 HTML-LTRE VALUE '</tr>'. |
| 161 | 88 HTML-LTDS VALUE '<td>'. |
| 162 | 88 HTML-LTDE VALUE '</td>'. |
| 163 | 88 HTML-L10 VALUE '<td colspan="3" style="padding:0px 5px; |
| 164 | - 'background-color:#1d1d96b3;">'. |
| 165 | 88 HTML-L15 VALUE '<td colspan="3" style="padding:0px 5px; |
| 166 | - 'background-color:#FFAF33;">'. |
| 167 | 88 HTML-L16 |
| 168 | VALUE '<p style="font-size:16px">Bank of XYZ</p>'. |
| 169 | 88 HTML-L17 |
| 170 | VALUE '<p>410 Terry Ave N</p>'. |
| 171 | 88 HTML-L18 |
| 172 | VALUE '<p>Seattle WA 99999</p>'. |
| 173 | 88 HTML-L22-35 |
| 174 | VALUE '<td colspan="3" style="padding:0px 5px; |
| 175 | - 'background-color:#f2f2f2;">'. |
| 176 | 88 HTML-L30-42 |
| 177 | VALUE '<td colspan="3" style="padding:0px 5px; |
| 178 | - 'background-color:#33FFD1; text-align:center;">'. |
| 179 | 88 HTML-L31 |
| 180 | VALUE '<p style="font-size:16px">Basic Details</p>'. |
| 181 | 88 HTML-L43 |
| 182 | VALUE '<p style="font-size:16px">Transaction Summary</p>'. |
| 183 | 88 HTML-L47 |
| 184 | VALUE '<td style="width:25%; padding:0px 5px; background- |
| 185 | - 'color:#33FF5E; text-align:left;">'. |
| 186 | 88 HTML-L48 |
| 187 | VALUE '<p style="font-size:16px">Tran ID</p>'. |
| 188 | 88 HTML-L50 |
| 189 | VALUE '<td style="width:55%; padding:0px 5px; background- |
| 190 | - 'color:#33FF5E; text-align:left;">'. |
| 191 | 88 HTML-L51 |
| 192 | VALUE '<p style="font-size:16px">Tran Details</p>'. |
| 193 | 88 HTML-L53 |
| 194 | VALUE '<td style="width:20%; padding:0px 5px; background- |
| 195 | - 'color:#33FF5E; text-align:right;">'. |
| 196 | 88 HTML-L54 |
| 197 | VALUE '<p style="font-size:16px">Amount</p>'. |
| 198 | 88 HTML-L58 |
| 199 | VALUE '<td style="width:25%; padding:0px 5px; background- |
| 200 | - 'color:#f2f2f2; text-align:left;">'. |
| 201 | 88 HTML-L61 |
| 202 | VALUE '<td style="width:55%; padding:0px 5px; background- |
| 203 | - 'color:#f2f2f2; text-align:left;">'. |
| 204 | 88 HTML-L64 |
| 205 | VALUE '<td style="width:20%; padding:0px 5px; background- |
| 206 | - 'color:#f2f2f2; text-align:right;">'. |
| 207 | 88 HTML-L75 |
| 208 | VALUE '<h3>End of Statement</h3>'. |
| 209 | 88 HTML-L78 VALUE '</table>'. |
| 210 | 88 HTML-L79 VALUE '</body>'. |
| 211 | 88 HTML-L80 VALUE '</html>'. |
| 212 | 05 HTML-L11. |
| 213 | 10 FILLER PIC X(34) |
| 214 | VALUE '<h3>Statement for Account Number: '. |
| 215 | 10 L11-ACCT PIC X(20). |
| 216 | 10 FILLER PIC X(05) VALUE '</h3>'. |
| 217 | 05 HTML-L23. |
| 218 | 10 FILLER PIC X(26) |
| 219 | VALUE '<p style="font-size:16px">'. |
| 220 | 10 L23-NAME PIC X(50). |
| 221 | 05 HTML-ADDR-LN PIC X(100). |
| 222 | 05 HTML-BSIC-LN PIC X(100). |
| 223 | 05 HTML-TRAN-LN PIC X(100). |
| 224 | |
| 225 | 01 WS-TRNX-TABLE. |
| 226 | 05 WS-CARD-TBL OCCURS 51 TIMES. |
| 227 | 10 WS-CARD-NUM PIC X(16). |
| 228 | 10 WS-TRAN-TBL OCCURS 10 TIMES. |
| 229 | 15 WS-TRAN-NUM PIC X(16). |
| 230 | 15 WS-TRAN-REST PIC X(318). |
| 231 | 01 WS-TRN-TBL-CNTR. |
| 232 | 05 WS-TRN-TBL-CTR OCCURS 51 TIMES. |
| 233 | 10 WS-TRCT PIC S9(4) COMP. |
| 234 | |
| 235 | 01 PSAPTR POINTER. |
| 236 | 01 BUMP-TIOT PIC S9(08) BINARY VALUE ZERO. |
| 237 | 01 TIOT-INDEX REDEFINES BUMP-TIOT POINTER. |
| 238 | |
| 239 | LINKAGE SECTION. |
| 240 | 01 ALIGN-PSA PIC 9(16) BINARY. |
| 241 | 01 PSA-BLOCK. |
| 242 | 05 FILLER PIC X(536). |
| 243 | 05 TCB-POINT POINTER. |
| 244 | 01 TCB-BLOCK. |
| 245 | 05 FILLER PIC X(12). |
| 246 | 05 TIOT-POINT POINTER. |
| 247 | 01 TIOT-BLOCK. |
| 248 | 05 TIOTNJOB PIC X(08). |
| 249 | 05 TIOTJSTP PIC X(08). |
| 250 | 05 TIOTPSTP PIC X(08). |
| 251 | 01 TIOT-ENTRY. |
| 252 | 05 TIOT-SEG. |
| 253 | 10 TIO-LEN PIC X(01). |
| 254 | 10 FILLER PIC X(03). |
| 255 | 10 TIOCDDNM PIC X(08). |
| 256 | 10 FILLER PIC X(05). |
| 257 | 10 UCB-ADDR PIC X(03). |
| 258 | 88 NULL-UCB VALUES LOW-VALUES. |
| 259 | 05 FILLER PIC X(04). |
| 260 | 88 END-OF-TIOT VALUE LOW-VALUES. |
| 261 | ***************************************************************** |
| 262 | PROCEDURE DIVISION. |
| 263 | ***************************************************************** |
| 264 | * Check Unit Control blocks * |
| 265 | ***************************************************************** |
| 266 | SET ADDRESS OF PSA-BLOCK TO PSAPTR. |
| 267 | SET ADDRESS OF TCB-BLOCK TO TCB-POINT. |
| 268 | SET ADDRESS OF TIOT-BLOCK TO TIOT-POINT. |
| 269 | SET TIOT-INDEX TO TIOT-POINT. |
| 270 | DISPLAY 'Running JCL : ' TIOTNJOB ' Step ' TIOTJSTP. |
| 271 | |
| 272 | COMPUTE BUMP-TIOT = BUMP-TIOT + LENGTH OF TIOT-BLOCK. |
| 273 | SET ADDRESS OF TIOT-ENTRY TO TIOT-INDEX. |
| 274 | |
| 275 | DISPLAY 'DD Names from TIOT: '. |
| 276 | PERFORM UNTIL END-OF-TIOT |
| 277 | OR TIO-LEN = LOW-VALUES |
| 278 | IF NOT NULL-UCB |
| 279 | DISPLAY ': ' TIOCDDNM ' -- valid UCB' |
| 280 | ELSE |
| 281 | DISPLAY ': ' TIOCDDNM ' -- null UCB' |
| 282 | END-IF |
| 283 | COMPUTE BUMP-TIOT = BUMP-TIOT + LENGTH OF TIOT-SEG |
| 284 | SET ADDRESS OF TIOT-ENTRY TO TIOT-INDEX |
| 285 | END-PERFORM. |
| 286 | |
| 287 | IF NOT NULL-UCB |
| 288 | DISPLAY ': ' TIOCDDNM ' -- valid UCB' |
| 289 | ELSE |
| 290 | DISPLAY ': ' TIOCDDNM ' -- null UCB' |
| 291 | END-IF. |
| 292 | |
| 293 | OPEN OUTPUT STMT-FILE HTML-FILE. |
| 294 | INITIALIZE WS-TRNX-TABLE WS-TRN-TBL-CNTR. |
| 295 | |
| 296 | 0000-START. |
| 297 | |
| 298 | EVALUATE WS-FL-DD |
| 299 | WHEN 'TRNXFILE' |
| 300 | ALTER 8100-FILE-OPEN TO PROCEED TO 8100-TRNXFILE-OPEN |
| 301 | GO TO 8100-FILE-OPEN |
| 302 | WHEN 'XREFFILE' |
| 303 | ALTER 8100-FILE-OPEN TO PROCEED TO 8200-XREFFILE-OPEN |
| 304 | GO TO 8100-FILE-OPEN |
| 305 | WHEN 'CUSTFILE' |
| 306 | ALTER 8100-FILE-OPEN TO PROCEED TO 8300-CUSTFILE-OPEN |
| 307 | GO TO 8100-FILE-OPEN |
| 308 | WHEN 'ACCTFILE' |
| 309 | ALTER 8100-FILE-OPEN TO PROCEED TO 8400-ACCTFILE-OPEN |
| 310 | GO TO 8100-FILE-OPEN |
| 311 | WHEN 'READTRNX' |
| 312 | GO TO 8500-READTRNX-READ |
| 313 | WHEN OTHER |
| 314 | GO TO 9999-GOBACK. |
| 315 | |
| 316 | 1000-MAINLINE. |
| 317 | PERFORM UNTIL END-OF-FILE = 'Y' |
| 318 | IF END-OF-FILE = 'N' |
| 319 | PERFORM 1000-XREFFILE-GET-NEXT |
| 320 | IF END-OF-FILE = 'N' |
| 321 | PERFORM 2000-CUSTFILE-GET |
| 322 | PERFORM 3000-ACCTFILE-GET |
| 323 | PERFORM 5000-CREATE-STATEMENT |
| 324 | MOVE 1 TO CR-JMP |
| 325 | MOVE ZERO TO WS-TOTAL-AMT |
| 326 | PERFORM 4000-TRNXFILE-GET |
| 327 | END-IF |
| 328 | END-IF |
| 329 | END-PERFORM. |
| 330 | |
| 331 | PERFORM 9100-TRNXFILE-CLOSE. |
| 332 | |
| 333 | PERFORM 9200-XREFFILE-CLOSE. |
| 334 | |
| 335 | PERFORM 9300-CUSTFILE-CLOSE. |
| 336 | |
| 337 | PERFORM 9400-ACCTFILE-CLOSE. |
| 338 | |
| 339 | CLOSE STMT-FILE HTML-FILE. |
| 340 | |
| 341 | 9999-GOBACK. |
| 342 | GOBACK. |
| 343 | |
| 344 | *---------------------------------------------------------------* |
| 345 | 1000-XREFFILE-GET-NEXT. |
| 346 | |
| 347 | MOVE 'XREFFILE' TO WS-M03B-DD. |
| 348 | SET M03B-READ TO TRUE. |
| 349 | MOVE ZERO TO WS-M03B-RC. |
| 350 | MOVE SPACES TO WS-M03B-FLDT. |
| 351 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 352 | |
| 353 | EVALUATE WS-M03B-RC |
| 354 | WHEN '00' |
| 355 | CONTINUE |
| 356 | WHEN '10' |
| 357 | MOVE 'Y' TO END-OF-FILE |
| 358 | WHEN OTHER |
| 359 | DISPLAY 'ERROR READING XREFFILE' |
| 360 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 361 | PERFORM 9999-ABEND-PROGRAM |
| 362 | END-EVALUATE. |
| 363 | |
| 364 | MOVE WS-M03B-FLDT TO CARD-XREF-RECORD. |
| 365 | |
| 366 | EXIT. |
| 367 | |
| 368 | 2000-CUSTFILE-GET. |
| 369 | |
| 370 | MOVE 'CUSTFILE' TO WS-M03B-DD. |
| 371 | SET M03B-READ-K TO TRUE. |
| 372 | MOVE XREF-CUST-ID TO WS-M03B-KEY. |
| 373 | MOVE ZERO TO WS-M03B-KEY-LN. |
| 374 | COMPUTE WS-M03B-KEY-LN = LENGTH OF XREF-CUST-ID. |
| 375 | MOVE ZERO TO WS-M03B-RC. |
| 376 | MOVE SPACES TO WS-M03B-FLDT. |
| 377 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 378 | |
| 379 | EVALUATE WS-M03B-RC |
| 380 | WHEN '00' |
| 381 | CONTINUE |
| 382 | WHEN OTHER |
| 383 | DISPLAY 'ERROR READING CUSTFILE' |
| 384 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 385 | PERFORM 9999-ABEND-PROGRAM |
| 386 | END-EVALUATE. |
| 387 | |
| 388 | MOVE WS-M03B-FLDT TO CUSTOMER-RECORD. |
| 389 | |
| 390 | EXIT. |
| 391 | |
| 392 | 3000-ACCTFILE-GET. |
| 393 | |
| 394 | MOVE 'ACCTFILE' TO WS-M03B-DD. |
| 395 | SET M03B-READ-K TO TRUE. |
| 396 | MOVE XREF-ACCT-ID TO WS-M03B-KEY. |
| 397 | MOVE ZERO TO WS-M03B-KEY-LN. |
| 398 | COMPUTE WS-M03B-KEY-LN = LENGTH OF XREF-ACCT-ID. |
| 399 | MOVE ZERO TO WS-M03B-RC. |
| 400 | MOVE SPACES TO WS-M03B-FLDT. |
| 401 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 402 | |
| 403 | EVALUATE WS-M03B-RC |
| 404 | WHEN '00' |
| 405 | CONTINUE |
| 406 | WHEN OTHER |
| 407 | DISPLAY 'ERROR READING ACCTFILE' |
| 408 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 409 | PERFORM 9999-ABEND-PROGRAM |
| 410 | END-EVALUATE. |
| 411 | |
| 412 | MOVE WS-M03B-FLDT TO ACCOUNT-RECORD. |
| 413 | |
| 414 | EXIT. |
| 415 | |
| 416 | 4000-TRNXFILE-GET. |
| 417 | PERFORM VARYING CR-JMP FROM 1 BY 1 |
| 418 | UNTIL CR-JMP > CR-CNT |
| 419 | OR (WS-CARD-NUM (CR-JMP) > XREF-CARD-NUM) |
| 420 | IF XREF-CARD-NUM = WS-CARD-NUM (CR-JMP) |
| 421 | MOVE WS-CARD-NUM (CR-JMP) TO TRNX-CARD-NUM |
| 422 | PERFORM VARYING TR-JMP FROM 1 BY 1 |
| 423 | UNTIL (TR-JMP > WS-TRCT (CR-JMP)) |
| 424 | MOVE WS-TRAN-NUM (CR-JMP, TR-JMP) |
| 425 | TO TRNX-ID |
| 426 | MOVE WS-TRAN-REST (CR-JMP, TR-JMP) |
| 427 | TO TRNX-REST |
| 428 | PERFORM 6000-WRITE-TRANS |
| 429 | ADD TRNX-AMT TO WS-TOTAL-AMT |
| 430 | END-PERFORM |
| 431 | END-IF |
| 432 | END-PERFORM. |
| 433 | MOVE WS-TOTAL-AMT TO WS-TRN-AMT. |
| 434 | MOVE WS-TRN-AMT TO ST-TOTAL-TRAMT. |
| 435 | WRITE FD-STMTFILE-REC FROM ST-LINE12. |
| 436 | WRITE FD-STMTFILE-REC FROM ST-LINE14A. |
| 437 | WRITE FD-STMTFILE-REC FROM ST-LINE15. |
| 438 | |
| 439 | SET HTML-LTRS TO TRUE. |
| 440 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 441 | SET HTML-L10 TO TRUE. |
| 442 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 443 | SET HTML-L75 TO TRUE. |
| 444 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 445 | SET HTML-LTDE TO TRUE. |
| 446 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 447 | SET HTML-LTRE TO TRUE. |
| 448 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 449 | SET HTML-L78 TO TRUE. |
| 450 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 451 | SET HTML-L79 TO TRUE. |
| 452 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 453 | SET HTML-L80 TO TRUE. |
| 454 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 455 | |
| 456 | EXIT. |
| 457 | *---------------------------------------------------------------* |
| 458 | 5000-CREATE-STATEMENT. |
| 459 | INITIALIZE STATEMENT-LINES. |
| 460 | WRITE FD-STMTFILE-REC FROM ST-LINE0. |
| 461 | PERFORM 5100-WRITE-HTML-HEADER THRU 5100-EXIT. |
| 462 | STRING CUST-FIRST-NAME DELIMITED BY ' ' |
| 463 | ' ' DELIMITED BY SIZE |
| 464 | CUST-MIDDLE-NAME DELIMITED BY ' ' |
| 465 | ' ' DELIMITED BY SIZE |
| 466 | CUST-LAST-NAME DELIMITED BY ' ' |
| 467 | ' ' DELIMITED BY SIZE |
| 468 | INTO ST-NAME |
| 469 | END-STRING. |
| 470 | MOVE CUST-ADDR-LINE-1 TO ST-ADD1. |
| 471 | MOVE CUST-ADDR-LINE-2 TO ST-ADD2. |
| 472 | STRING CUST-ADDR-LINE-3 DELIMITED BY ' ' |
| 473 | ' ' DELIMITED BY SIZE |
| 474 | CUST-ADDR-STATE-CD DELIMITED BY ' ' |
| 475 | ' ' DELIMITED BY SIZE |
| 476 | CUST-ADDR-COUNTRY-CD DELIMITED BY ' ' |
| 477 | ' ' DELIMITED BY SIZE |
| 478 | CUST-ADDR-ZIP DELIMITED BY ' ' |
| 479 | ' ' DELIMITED BY SIZE |
| 480 | INTO ST-ADD3 |
| 481 | END-STRING. |
| 482 | |
| 483 | MOVE ACCT-ID TO ST-ACCT-ID. |
| 484 | MOVE ACCT-CURR-BAL TO ST-CURR-BAL. |
| 485 | MOVE CUST-FICO-CREDIT-SCORE TO ST-FICO-SCORE. |
| 486 | PERFORM 5200-WRITE-HTML-NMADBS THRU 5200-EXIT. |
| 487 | |
| 488 | WRITE FD-STMTFILE-REC FROM ST-LINE1. |
| 489 | WRITE FD-STMTFILE-REC FROM ST-LINE2. |
| 490 | WRITE FD-STMTFILE-REC FROM ST-LINE3. |
| 491 | WRITE FD-STMTFILE-REC FROM ST-LINE4. |
| 492 | WRITE FD-STMTFILE-REC FROM ST-LINE5. |
| 493 | WRITE FD-STMTFILE-REC FROM ST-LINE6. |
| 494 | WRITE FD-STMTFILE-REC FROM ST-LINE5. |
| 495 | WRITE FD-STMTFILE-REC FROM ST-LINE7. |
| 496 | WRITE FD-STMTFILE-REC FROM ST-LINE8. |
| 497 | WRITE FD-STMTFILE-REC FROM ST-LINE9. |
| 498 | WRITE FD-STMTFILE-REC FROM ST-LINE10. |
| 499 | WRITE FD-STMTFILE-REC FROM ST-LINE11. |
| 500 | WRITE FD-STMTFILE-REC FROM ST-LINE12. |
| 501 | WRITE FD-STMTFILE-REC FROM ST-LINE13. |
| 502 | WRITE FD-STMTFILE-REC FROM ST-LINE12. |
| 503 | |
| 504 | EXIT. |
| 505 | |
| 506 | 5100-WRITE-HTML-HEADER. |
| 507 | |
| 508 | SET HTML-L01 TO TRUE. |
| 509 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 510 | SET HTML-L02 TO TRUE. |
| 511 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 512 | SET HTML-L03 TO TRUE. |
| 513 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 514 | SET HTML-L04 TO TRUE. |
| 515 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 516 | SET HTML-L05 TO TRUE. |
| 517 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 518 | SET HTML-L06 TO TRUE. |
| 519 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 520 | SET HTML-L07 TO TRUE. |
| 521 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 522 | SET HTML-L08 TO TRUE. |
| 523 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 524 | SET HTML-LTRS TO TRUE. |
| 525 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 526 | SET HTML-L10 TO TRUE. |
| 527 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 528 | |
| 529 | MOVE ACCT-ID TO L11-ACCT. |
| 530 | WRITE FD-HTMLFILE-REC FROM HTML-L11. |
| 531 | SET HTML-LTDE TO TRUE. |
| 532 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 533 | SET HTML-LTRE TO TRUE. |
| 534 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 535 | SET HTML-LTRS TO TRUE. |
| 536 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 537 | SET HTML-L15 TO TRUE. |
| 538 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 539 | SET HTML-L16 TO TRUE. |
| 540 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 541 | SET HTML-L17 TO TRUE. |
| 542 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 543 | SET HTML-L18 TO TRUE. |
| 544 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 545 | SET HTML-LTDE TO TRUE. |
| 546 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 547 | SET HTML-LTRE TO TRUE. |
| 548 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 549 | SET HTML-LTRS TO TRUE. |
| 550 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 551 | SET HTML-L22-35 TO TRUE. |
| 552 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 553 | |
| 554 | 5100-EXIT. |
| 555 | EXIT. |
| 556 | |
| 557 | *---------------------------------------------------------------* |
| 558 | 5200-WRITE-HTML-NMADBS. |
| 559 | |
| 560 | MOVE ST-NAME TO L23-NAME. |
| 561 | MOVE SPACES TO FD-HTMLFILE-REC |
| 562 | STRING '<p style="font-size:16px">' DELIMITED BY '*' |
| 563 | L23-NAME DELIMITED BY ' ' |
| 564 | ' ' DELIMITED BY SIZE |
| 565 | '</p>' DELIMITED BY '*' |
| 566 | INTO FD-HTMLFILE-REC |
| 567 | END-STRING. |
| 568 | WRITE FD-HTMLFILE-REC. |
| 569 | MOVE SPACES TO HTML-ADDR-LN. |
| 570 | STRING '<p>' DELIMITED BY '*' |
| 571 | ST-ADD1 DELIMITED BY ' ' |
| 572 | ' ' DELIMITED BY SIZE |
| 573 | '</p>' DELIMITED BY '*' |
| 574 | INTO HTML-ADDR-LN |
| 575 | END-STRING. |
| 576 | WRITE FD-HTMLFILE-REC FROM HTML-ADDR-LN. |
| 577 | MOVE SPACES TO HTML-ADDR-LN. |
| 578 | STRING '<p>' DELIMITED BY '*' |
| 579 | ST-ADD2 DELIMITED BY ' ' |
| 580 | ' ' DELIMITED BY SIZE |
| 581 | '</p>' DELIMITED BY '*' |
| 582 | INTO HTML-ADDR-LN |
| 583 | END-STRING. |
| 584 | WRITE FD-HTMLFILE-REC FROM HTML-ADDR-LN. |
| 585 | MOVE SPACES TO HTML-ADDR-LN. |
| 586 | STRING '<p>' DELIMITED BY '*' |
| 587 | ST-ADD3 DELIMITED BY ' ' |
| 588 | ' ' DELIMITED BY SIZE |
| 589 | '</p>' DELIMITED BY '*' |
| 590 | INTO HTML-ADDR-LN |
| 591 | END-STRING. |
| 592 | WRITE FD-HTMLFILE-REC FROM HTML-ADDR-LN. |
| 593 | |
| 594 | SET HTML-LTDE TO TRUE. |
| 595 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 596 | SET HTML-LTRE TO TRUE. |
| 597 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 598 | SET HTML-LTRS TO TRUE. |
| 599 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 600 | SET HTML-L30-42 TO TRUE. |
| 601 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 602 | SET HTML-L31 TO TRUE. |
| 603 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 604 | SET HTML-LTDE TO TRUE. |
| 605 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 606 | SET HTML-LTRE TO TRUE. |
| 607 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 608 | SET HTML-LTRS TO TRUE. |
| 609 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 610 | SET HTML-L22-35 TO TRUE. |
| 611 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 612 | |
| 613 | MOVE SPACES TO HTML-BSIC-LN. |
| 614 | STRING '<p>Account ID : ' DELIMITED BY '*' |
| 615 | ST-ACCT-ID DELIMITED BY '*' |
| 616 | '</p>' DELIMITED BY '*' |
| 617 | INTO HTML-BSIC-LN |
| 618 | END-STRING. |
| 619 | WRITE FD-HTMLFILE-REC FROM HTML-BSIC-LN. |
| 620 | MOVE SPACES TO HTML-BSIC-LN. |
| 621 | STRING '<p>Current Balance : ' DELIMITED BY '*' |
| 622 | ST-CURR-BAL DELIMITED BY '*' |
| 623 | '</p>' DELIMITED BY '*' |
| 624 | INTO HTML-BSIC-LN |
| 625 | END-STRING. |
| 626 | WRITE FD-HTMLFILE-REC FROM HTML-BSIC-LN. |
| 627 | MOVE SPACES TO HTML-BSIC-LN. |
| 628 | STRING '<p>FICO Score : ' DELIMITED BY '*' |
| 629 | ST-FICO-SCORE DELIMITED BY '*' |
| 630 | '</p>' DELIMITED BY '*' |
| 631 | INTO HTML-BSIC-LN |
| 632 | END-STRING. |
| 633 | WRITE FD-HTMLFILE-REC FROM HTML-BSIC-LN. |
| 634 | SET HTML-LTDE TO TRUE. |
| 635 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 636 | SET HTML-LTRE TO TRUE. |
| 637 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 638 | SET HTML-LTRS TO TRUE. |
| 639 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 640 | SET HTML-L30-42 TO TRUE. |
| 641 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 642 | SET HTML-L43 TO TRUE. |
| 643 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 644 | SET HTML-LTDE TO TRUE. |
| 645 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 646 | SET HTML-LTRE TO TRUE. |
| 647 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 648 | SET HTML-LTRS TO TRUE. |
| 649 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 650 | SET HTML-L47 TO TRUE. |
| 651 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 652 | SET HTML-L48 TO TRUE. |
| 653 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 654 | SET HTML-LTDE TO TRUE. |
| 655 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 656 | SET HTML-L50 TO TRUE. |
| 657 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 658 | SET HTML-L51 TO TRUE. |
| 659 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 660 | SET HTML-LTDE TO TRUE. |
| 661 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 662 | SET HTML-L53 TO TRUE. |
| 663 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 664 | SET HTML-L54 TO TRUE. |
| 665 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 666 | SET HTML-LTDE TO TRUE. |
| 667 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 668 | SET HTML-LTRE TO TRUE. |
| 669 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 670 | |
| 671 | 5200-EXIT. |
| 672 | EXIT. |
| 673 | |
| 674 | *---------------------------------------------------------------* |
| 675 | 6000-WRITE-TRANS. |
| 676 | MOVE TRNX-ID TO ST-TRANID. |
| 677 | MOVE TRNX-DESC TO ST-TRANDT. |
| 678 | MOVE TRNX-AMT TO ST-TRANAMT. |
| 679 | WRITE FD-STMTFILE-REC FROM ST-LINE14. |
| 680 | |
| 681 | SET HTML-LTRS TO TRUE. |
| 682 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 683 | |
| 684 | SET HTML-L58 TO TRUE. |
| 685 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 686 | MOVE SPACES TO HTML-TRAN-LN. |
| 687 | STRING '<p>' DELIMITED BY '*' |
| 688 | ST-TRANID DELIMITED BY '*' |
| 689 | '</p>' DELIMITED BY '*' |
| 690 | INTO HTML-TRAN-LN |
| 691 | END-STRING. |
| 692 | WRITE FD-HTMLFILE-REC FROM HTML-TRAN-LN. |
| 693 | SET HTML-LTDE TO TRUE. |
| 694 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 695 | |
| 696 | SET HTML-L61 TO TRUE. |
| 697 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 698 | MOVE SPACES TO HTML-TRAN-LN. |
| 699 | STRING '<p>' DELIMITED BY '*' |
| 700 | ST-TRANDT DELIMITED BY '*' |
| 701 | '</p>' DELIMITED BY '*' |
| 702 | INTO HTML-TRAN-LN |
| 703 | END-STRING. |
| 704 | WRITE FD-HTMLFILE-REC FROM HTML-TRAN-LN. |
| 705 | SET HTML-LTDE TO TRUE. |
| 706 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 707 | |
| 708 | SET HTML-L64 TO TRUE. |
| 709 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 710 | MOVE SPACES TO HTML-TRAN-LN. |
| 711 | STRING '<p>' DELIMITED BY '*' |
| 712 | ST-TRANAMT DELIMITED BY '*' |
| 713 | '</p>' DELIMITED BY '*' |
| 714 | INTO HTML-TRAN-LN |
| 715 | END-STRING. |
| 716 | WRITE FD-HTMLFILE-REC FROM HTML-TRAN-LN. |
| 717 | SET HTML-LTDE TO TRUE. |
| 718 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 719 | |
| 720 | SET HTML-LTRE TO TRUE. |
| 721 | WRITE FD-HTMLFILE-REC FROM HTML-FIXED-LN. |
| 722 | |
| 723 | EXIT. |
| 724 | |
| 725 | *---------------------------------------------------------------* |
| 726 | 8100-FILE-OPEN. |
| 727 | GO TO 8100-TRNXFILE-OPEN |
| 728 | . |
| 729 | |
| 730 | 8100-TRNXFILE-OPEN. |
| 731 | MOVE 'TRNXFILE' TO WS-M03B-DD. |
| 732 | SET M03B-OPEN TO TRUE. |
| 733 | MOVE ZERO TO WS-M03B-RC. |
| 734 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 735 | |
| 736 | IF WS-M03B-RC = '00' OR '04' |
| 737 | CONTINUE |
| 738 | ELSE |
| 739 | DISPLAY 'ERROR OPENING TRNXFILE' |
| 740 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 741 | PERFORM 9999-ABEND-PROGRAM |
| 742 | END-IF. |
| 743 | |
| 744 | SET M03B-READ TO TRUE. |
| 745 | MOVE SPACES TO WS-M03B-FLDT. |
| 746 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 747 | |
| 748 | IF WS-M03B-RC = '00' OR '04' |
| 749 | CONTINUE |
| 750 | ELSE |
| 751 | DISPLAY 'ERROR READING TRNXFILE' |
| 752 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 753 | PERFORM 9999-ABEND-PROGRAM |
| 754 | END-IF. |
| 755 | |
| 756 | MOVE WS-M03B-FLDT TO TRNX-RECORD. |
| 757 | MOVE TRNX-CARD-NUM TO WS-SAVE-CARD. |
| 758 | MOVE 1 TO CR-CNT. |
| 759 | MOVE 0 TO TR-CNT. |
| 760 | MOVE 'READTRNX' TO WS-FL-DD. |
| 761 | GO TO 0000-START. |
| 762 | EXIT. |
| 763 | |
| 764 | *---------------------------------------------------------------* |
| 765 | 8200-XREFFILE-OPEN. |
| 766 | MOVE 'XREFFILE' TO WS-M03B-DD. |
| 767 | SET M03B-OPEN TO TRUE. |
| 768 | MOVE ZERO TO WS-M03B-RC. |
| 769 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 770 | |
| 771 | IF WS-M03B-RC = '00' OR '04' |
| 772 | CONTINUE |
| 773 | ELSE |
| 774 | DISPLAY 'ERROR OPENING XREFFILE' |
| 775 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 776 | PERFORM 9999-ABEND-PROGRAM |
| 777 | END-IF. |
| 778 | |
| 779 | MOVE 'CUSTFILE' TO WS-FL-DD. |
| 780 | GO TO 0000-START. |
| 781 | EXIT. |
| 782 | *---------------------------------------------------------------* |
| 783 | 8300-CUSTFILE-OPEN. |
| 784 | MOVE 'CUSTFILE' TO WS-M03B-DD. |
| 785 | SET M03B-OPEN TO TRUE. |
| 786 | MOVE ZERO TO WS-M03B-RC. |
| 787 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 788 | |
| 789 | IF WS-M03B-RC = '00' OR '04' |
| 790 | CONTINUE |
| 791 | ELSE |
| 792 | DISPLAY 'ERROR OPENING CUSTFILE' |
| 793 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 794 | PERFORM 9999-ABEND-PROGRAM |
| 795 | END-IF. |
| 796 | |
| 797 | MOVE 'ACCTFILE' TO WS-FL-DD. |
| 798 | GO TO 0000-START. |
| 799 | EXIT. |
| 800 | *---------------------------------------------------------------* |
| 801 | 8400-ACCTFILE-OPEN. |
| 802 | MOVE 'ACCTFILE' TO WS-M03B-DD. |
| 803 | SET M03B-OPEN TO TRUE. |
| 804 | MOVE ZERO TO WS-M03B-RC. |
| 805 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 806 | |
| 807 | IF WS-M03B-RC = '00' OR '04' |
| 808 | CONTINUE |
| 809 | ELSE |
| 810 | DISPLAY 'ERROR OPENING ACCTFILE' |
| 811 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 812 | PERFORM 9999-ABEND-PROGRAM |
| 813 | END-IF. |
| 814 | |
| 815 | GO TO 1000-MAINLINE. |
| 816 | EXIT. |
| 817 | *---------------------------------------------------------------* |
| 818 | 8500-READTRNX-READ. |
| 819 | IF WS-SAVE-CARD = TRNX-CARD-NUM |
| 820 | ADD 1 TO TR-CNT |
| 821 | ELSE |
| 822 | MOVE TR-CNT TO WS-TRCT (CR-CNT) |
| 823 | ADD 1 TO CR-CNT |
| 824 | MOVE 1 TO TR-CNT |
| 825 | END-IF. |
| 826 | |
| 827 | MOVE TRNX-CARD-NUM TO WS-CARD-NUM (CR-CNT). |
| 828 | MOVE TRNX-ID TO WS-TRAN-NUM (CR-CNT, TR-CNT). |
| 829 | MOVE TRNX-REST TO WS-TRAN-REST (CR-CNT, TR-CNT). |
| 830 | MOVE TRNX-CARD-NUM TO WS-SAVE-CARD. |
| 831 | |
| 832 | MOVE 'TRNXFILE' TO WS-M03B-DD. |
| 833 | SET M03B-READ TO TRUE. |
| 834 | MOVE SPACES TO WS-M03B-FLDT. |
| 835 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 836 | |
| 837 | EVALUATE WS-M03B-RC |
| 838 | WHEN '00' |
| 839 | MOVE WS-M03B-FLDT TO TRNX-RECORD |
| 840 | GO TO 8500-READTRNX-READ |
| 841 | WHEN '10' |
| 842 | GO TO 8599-EXIT |
| 843 | WHEN OTHER |
| 844 | DISPLAY 'ERROR READING TRNXFILE' |
| 845 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 846 | PERFORM 9999-ABEND-PROGRAM |
| 847 | END-EVALUATE. |
| 848 | |
| 849 | 8599-EXIT. |
| 850 | MOVE TR-CNT TO WS-TRCT (CR-CNT). |
| 851 | MOVE 'XREFFILE' TO WS-FL-DD. |
| 852 | GO TO 0000-START. |
| 853 | EXIT. |
| 854 | |
| 855 | *---------------------------------------------------------------* |
| 856 | 9100-TRNXFILE-CLOSE. |
| 857 | MOVE 'TRNXFILE' TO WS-M03B-DD. |
| 858 | SET M03B-CLOSE TO TRUE. |
| 859 | MOVE ZERO TO WS-M03B-RC. |
| 860 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 861 | |
| 862 | IF WS-M03B-RC = '00' OR '04' |
| 863 | CONTINUE |
| 864 | ELSE |
| 865 | DISPLAY 'ERROR CLOSING TRNXFILE' |
| 866 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 867 | PERFORM 9999-ABEND-PROGRAM |
| 868 | END-IF. |
| 869 | |
| 870 | EXIT. |
| 871 | |
| 872 | *---------------------------------------------------------------* |
| 873 | 9200-XREFFILE-CLOSE. |
| 874 | MOVE 'XREFFILE' TO WS-M03B-DD. |
| 875 | SET M03B-CLOSE TO TRUE. |
| 876 | MOVE ZERO TO WS-M03B-RC. |
| 877 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 878 | |
| 879 | IF WS-M03B-RC = '00' OR '04' |
| 880 | CONTINUE |
| 881 | ELSE |
| 882 | DISPLAY 'ERROR CLOSING XREFFILE' |
| 883 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 884 | PERFORM 9999-ABEND-PROGRAM |
| 885 | END-IF. |
| 886 | |
| 887 | EXIT. |
| 888 | *---------------------------------------------------------------* |
| 889 | 9300-CUSTFILE-CLOSE. |
| 890 | MOVE 'CUSTFILE' TO WS-M03B-DD. |
| 891 | SET M03B-CLOSE TO TRUE. |
| 892 | MOVE ZERO TO WS-M03B-RC. |
| 893 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 894 | |
| 895 | IF WS-M03B-RC = '00' OR '04' |
| 896 | CONTINUE |
| 897 | ELSE |
| 898 | DISPLAY 'ERROR CLOSING CUSTFILE' |
| 899 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 900 | PERFORM 9999-ABEND-PROGRAM |
| 901 | END-IF. |
| 902 | |
| 903 | EXIT. |
| 904 | *---------------------------------------------------------------* |
| 905 | 9400-ACCTFILE-CLOSE. |
| 906 | MOVE 'ACCTFILE' TO WS-M03B-DD. |
| 907 | SET M03B-CLOSE TO TRUE. |
| 908 | MOVE ZERO TO WS-M03B-RC. |
| 909 | CALL 'CBSTM03B' USING WS-M03B-AREA. |
| 910 | |
| 911 | IF WS-M03B-RC = '00' OR '04' |
| 912 | CONTINUE |
| 913 | ELSE |
| 914 | DISPLAY 'ERROR CLOSING ACCTFILE' |
| 915 | DISPLAY 'RETURN CODE: ' WS-M03B-RC |
| 916 | PERFORM 9999-ABEND-PROGRAM |
| 917 | END-IF. |
| 918 | |
| 919 | EXIT. |
| 920 | |
| 921 | 9999-ABEND-PROGRAM. |
| 922 | DISPLAY 'ABENDING PROGRAM' |
| 923 | CALL 'CEE3ABD'. |
| 924 | |