IDENTIFICATION DIVISION.
       PROGRAM-ID.  SEQUPDT.
       AUTHOR.	GROCER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       SELECT OLD-MASTER-FILE
           ASSIGN TO "C:\PCOBWIN\EDITUPDT\OLDMSTRN.DAT".
       SELECT TRAN-FILE
           ASSIGN TO "C:\PCOBWIN\EDITUPDT\TRANSN.DAT".
       SELECT NEW-MASTER-FILE
           ASSIGN TO "C:\PCOBWIN\EDITUPDT\NEWMSTR.DAT".
       SELECT PRINT-FILE ASSIGN TO PRINTER.
       DATA DIVISION.
       FD  OLD-MASTER-FILE
	   DATA RECORD IS OLD-MASTER-REC.
       01  OLD-MASTER-REC.
           05  MID            PIC 9(3).
           05  MITEM-NAME     PIC X(20).
           05  MVENDOR-CODE   PIC XXX.
           05  MCOST          PIC 999V99.
           05  MPRICE         PIC 999V99.
       FD  TRAN-FILE
	   DATA RECORD IS TRAN-REC.
       01  TRAN-REC.
	   05  TRAN-DATA.
               10  TID            PIC 9(3).
               10  TITEM-NAME.
                   15  FILLER           PIC X(19).
                   15  LAST-ITEM-NAME   PIC X.
               10  TVENDOR-CODE.
                   15  FILLER           PIC XX.
                   14  LAST-VENDOR-CODE PIC X.
               10  TCOST.
                   15  FILLER     PIC XXXX.
                   15  LAST-COST  PIC X.
               10  RDF-TCOST REDEFINES TCOST PIC 999V99.
               10  TPRICE.
                   15  FILLER     PIC XXXX.
                   15  LAST-PRICE PIC X.
               10  RDF-TPRICE REDEFINES TPRICE PIC 999V99.
	   05  TCODE	    PIC X.
       FD  NEW-MASTER-FILE
	   DATA RECORD IS NEW-MASTER-REC.
       01  NEW-MASTER-REC   PIC X(36).
       FD  PRINT-FILE
	   LABEL RECORDS ARE OMITTED
	   DATA RECORD IS PRINTZ.
       01  PRINTZ.
           05  FILLER         PIC X.
           05  ID-PR          PIC 9(3).
           05  FILLER         PIC X(3).
           05  ITEM-NAME-PR   PIC X(20).
           05  FILLER         PIC X(3).
           05  VENDOR-CODE-PR PIC XXX.
           05  FILLER         PIC X(3).
           05  COST-PR        PIC $ZZZ.99.
           05  FILLER         PIC X(3).
           05  PRICE-PR       PIC $ZZZ.99.
           05  FILLER         PIC X(3).
           05  MSG-PR         PIC X(22).
           05  FILLER         PIC XX.
       WORKING-STORAGE SECTION.
       01  MASTER-REC-WS.
           05  ID-WS          PIC 9(3).
           05  ITEM-NAME-WS   PIC X(20).
           05  VENDOR-CODE-WS PIC XXX.
           05  COST-WS        PIC 999V99.
           05  PRICE-WS       PIC 999V99.
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM A-100-INITIALIZE.
           PERFORM B-100-PROCESS.
           PERFORM C-100-WRAPUP.
           STOP RUN.
       A-100-INITIALIZE.
	   OPEN INPUT OLD-MASTER-FILE
		      TRAN-FILE
		OUTPUT NEW-MASTER-FILE
                       PRINT-FILE.
       B-100-PROCESS.
           PERFORM U-100-READ-OLD-MASTER-FILE.
           PERFORM U-110-READ-TRAN-FILE.
           PERFORM B-200-LOOP
	       UNTIL MID = 999 AND TID = 999.
       B-200-LOOP.
	   MOVE SPACES TO PRINTZ.
	   IF MID < TID
	       WRITE NEW-MASTER-REC FROM MASTER-REC-WS
               PERFORM U-100-READ-OLD-MASTER-FILE
	   ELSE
	       IF MID = TID
		   IF TCODE = "C"
                       PERFORM B-300-CHANGE-ROUT
                       PERFORM U-110-READ-TRAN-FILE
		   ELSE
		       IF TCODE = "D"
                           PERFORM B-310-DELETE-ROUT
                           PERFORM U-100-READ-OLD-MASTER-FILE
                           PERFORM U-110-READ-TRAN-FILE
		       ELSE
                           PERFORM B-330-ADD-ERROR-ROUT
                           PERFORM U-110-READ-TRAN-FILE
	       ELSE
		   IF TCODE = "A"
                       PERFORM B-320-ADD-ROUT
		       WRITE NEW-MASTER-REC
                       PERFORM U-110-READ-TRAN-FILE
		   ELSE
		       IF TCODE = "C"
                           PERFORM B-340-CHANGE-ERROR-ROUT
                           PERFORM U-110-READ-TRAN-FILE
		       ELSE
                           PERFORM B-350-DELETE-ERROR-ROUT
                           PERFORM U-110-READ-TRAN-FILE.
       B-300-CHANGE-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE ID-WS TO ID-PR.
           MOVE ITEM-NAME-WS TO ITEM-NAME-PR.
           MOVE VENDOR-CODE-WS TO VENDOR-CODE-PR.
           MOVE COST-WS TO COST-PR.
           MOVE PRICE-WS TO PRICE-PR.
           MOVE "BEFORE CHANGES" TO MSG-PR.
           WRITE PRINTZ
              AFTER ADVANCING 2 LINES.
           IF TITEM-NAME NOT = SPACES
               IF LAST-ITEM-NAME = "-"
                   MOVE SPACES TO ITEM-NAME-WS, ITEM-NAME-PR
               ELSE
                   MOVE TITEM-NAME TO ITEM-NAME-WS, ITEM-NAME-PR.
            IF TVENDOR-CODE NOT = SPACES
                IF LAST-VENDOR-CODE = "-"
                    MOVE SPACES TO VENDOR-CODE-WS, VENDOR-CODE-PR
                ELSE
                    MOVE TVENDOR-CODE TO VENDOR-CODE-WS,
                                         VENDOR-CODE-PR.
            IF TCOST = SPACES OR RDF-TCOST = 0
                NEXT SENTENCE
            ELSE
                IF LAST-COST = "-"
                    MOVE 0 TO COST-WS, COST-PR
                ELSE
                    MOVE RDF-TCOST TO COST-WS, COST-PR.
            IF TPRICE = SPACES OR RDF-TPRICE = 0
                NEXT SENTENCE
            ELSE
                IF LAST-PRICE = "-"
                    MOVE 0 TO PRICE-WS, PRICE-PR
                ELSE
                    MOVE RDF-TPRICE TO PRICE-WS, PRICE-PR.
            MOVE "AFTER CHANGES" TO MSG-PR.
            WRITE PRINTZ
                AFTER ADVANCING 1 LINES.
       B-310-DELETE-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE MID TO ID-PR.
           MOVE MITEM-NAME TO ITEM-NAME-PR.
           MOVE MVENDOR-CODE TO VENDOR-CODE-PR.
           MOVE MCOST TO COST-PR.
           MOVE MPRICE TO PRICE-PR.
           MOVE "RECORD DELETED" TO MSG-PR.
	   WRITE PRINTZ
               AFTER ADVANCING 2 LINES.
       B-320-ADD-ROUT.
           MOVE TRAN-DATA TO NEW-MASTER-REC.
           MOVE TID TO ID-PR.
           MOVE TITEM-NAME TO ITEM-NAME-PR.
           MOVE TVENDOR-CODE TO VENDOR-CODE-PR.
           MOVE RDF-TCOST TO COST-PR.
           MOVE RDF-TPRICE TO PRICE-PR.
           MOVE "RECORD ADDED" TO MSG-PR.
           WRITE PRINTZ
               AFTER ADVANCING 2 LINES.
       B-330-ADD-ERROR-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE TID TO ID-PR.
           MOVE TITEM-NAME TO ITEM-NAME-PR.
           MOVE TVENDOR-CODE TO VENDOR-CODE-PR.
           MOVE RDF-TCOST TO COST-PR.
           MOVE RDF-TPRICE TO PRICE-PR.
           MOVE "**RECORD NOT ADDED**" TO MSG-PR.
	   WRITE PRINTZ
               AFTER ADVANCING 2 LINES.
       B-340-CHANGE-ERROR-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE TID TO ID-PR.
           MOVE TITEM-NAME TO ITEM-NAME-PR.
           MOVE TVENDOR-CODE TO VENDOR-CODE-PR.
           MOVE RDF-TCOST TO COST-PR.
           MOVE RDF-TPRICE TO PRICE-PR.
           MOVE "**RECORD NOT CHANGED**" TO MSG-PR.
	   WRITE PRINTZ
               AFTER ADVANCING 2 LINES.
       B-350-DELETE-ERROR-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE TID TO ID-PR.
           MOVE "**RECORD NOT DELETED**" TO MSG-PR.
	   WRITE PRINTZ
               AFTER ADVANCING 2 LINES.
       C-100-WRAPUP.
           CLOSE OLD-MASTER-FILE
                 TRAN-FILE
                 NEW-MASTER-FILE
                 PRINT-FILE.
       U-100-READ-OLD-MASTER-FILE.
	   READ OLD-MASTER-FILE
	       AT END
		   MOVE 999 TO MID.
	   MOVE OLD-MASTER-REC TO MASTER-REC-WS.
       U-110-READ-TRAN-FILE.
	   READ TRAN-FILE
	       AT END
                   MOVE 999 TO TID.