000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. REVIEW1A. 000030 AUTHOR. DAVID VOORHEES. 000040 000050 ENVIRONMENT DIVISION. 000060 INPUT-OUTPUT SECTION. 000070 FILE-CONTROL. 000080 SELECT INPUT-FILE 000090 ASSIGN TO "REVIEW1.DAT" 000100 ORGANIZATION IS LINE SEQUENTIAL. 000110 SELECT OUTPUT-REPORT 000120 ASSIGN TO "REVIEW1A-OUTPUT.DAT" 000130 ORGANIZATION IS SEQUENTIAL. 000140 000150 DATA DIVISION. 000160 FILE SECTION. 000170 FD INPUT-FILE. 000180 01 INPUT-RECORD. 000190 05 INPUT-DEPARTMENT PIC X(10). 000200 05 INPUT-ITEM PIC X(20). 000210 05 INPUT-PRICE PIC 9(6)v99. 000220 05 INPUT-QUANTITY PIC 9(4). 000230 000240 FD OUTPUT-REPORT. 000250 01 OUTPUT-REPORT-LINE PIC X(120). 000260 000270 WORKING-STORAGE SECTION. 000280 01 WS-FIELDS. 000290 05 INPUT-EOF PIC X VALUE SPACE. 000300 05 NO-MORE-INPUTS PIC X VALUE "N". 000310 05 WS-EXT-PRICE PIC 9(8)V99. 000320 05 WS-TTL-EXT-PRICE PIC 9(9)V99 VALUE ZEROS. 000330 01 RPT-HEADER-1. 000340 05 PIC X(20) VALUE SPACES. 000350 05 PIC X(09) VALUE "Purchases". 000360 01 RPT-DETAIL-LINE. 000370 05 PIC X(4) VALUE SPACES. 000380 05 DL-DEPARTMENT PIC X(10). 000390 05 PIC X(2) VALUE SPACES. 000400 05 DL-ITEM PIC X(20). 000410 05 PIC X(2) VALUE SPACES. 000420 05 DL-PRICE PIC 9(6).99. 000430 05 PIC X(2) VALUE SPACES. 000440 05 DL-QUANTITY PIC 9999. 000450 05 PIC X(2) VALUE SPACES. 000460 05 DL-EXT-PRICE PIC 9(8).99. 000470 01 RPT-TOTAL-LINE. 000480 05 PIC X(54) VALUE SPACES. 000490 05 TL-EXT-PRICE PIC 9(9).99. 000500 000510 PROCEDURE DIVISION. 000520 000530 0000-MAIN-MODULE. 000540 000550 PERFORM 5000-INIT. 000560 PERFORM 0100-CALCULATE-EXT-PRICE 000570 UNTIL INPUT-EOF = NO-MORE-INPUTS. 000580 PERFORM 6000-TERM. 000590 STOP RUN. 000600 000610 0100-CALCULATE-EXT-PRICE. 000620 000630 MOVE INPUT-DEPARTMENT TO DL-DEPARTMENT. 000640 MOVE INPUT-ITEM TO DL-ITEM. 000650 MOVE INPUT-PRICE TO DL-PRICE. 000660 MOVE INPUT-QUANTITY TO DL-QUANTITY. 000670 COMPUTE WS-EXT-PRICE = INPUT-PRICE * INPUT-QUANTITY. 000680 MOVE WS-EXT-PRICE TO DL-EXT-PRICE. 000690 ADD WS-EXT-PRICE TO WS-TTL-EXT-PRICE. 000700 000710 WRITE OUTPUT-REPORT-LINE 000720 FROM RPT-DETAIL-LINE 000730 AFTER ADVANCING 2 LINES. 000740 000750 PERFORM 5100-READ. 000760 000770 5000-INIT. 000780 000790 OPEN INPUT INPUT-FILE 000800 OUTPUT OUTPUT-REPORT. 000810 000820 WRITE OUTPUT-REPORT-LINE 000830 FROM RPT-HEADER-1 000840 AFTER ADVANCING PAGE. 000850 000860 PERFORM 5100-READ. 000870 000880 5100-READ. 000890 000900 READ INPUT-FILE 000910 AT END 000920 MOVE NO-MORE-INPUTS TO INPUT-EOF 000930 END-READ. 000940 000950 6000-TERM. 000960 000970 MOVE WS-TTL-EXT-PRICE TO TL-EXT-PRICE. 000980 WRITE OUTPUT-REPORT-LINE 000990 FROM RPT-TOTAL-LINE 001000 AFTER ADVANCING 2 LINES. 001010 001020 CLOSE INPUT-FILE 001030 OUTPUT-REPORT.