Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ***********************************************************************
- *-----I D E N T I F I C A T I O N D I V I S I O N-------------------*
- ***********************************************************************
- IDENTIFICATION DIVISION.
- PROGRAM-ID. CBLH02JN.
- AUTHOR. Jan Noel Calayag.
- ***********************************************************************
- *-----E N V I R O M E N T D I V I S I O N---------------------------*
- ***********************************************************************
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT TRANS-FILE ASSIGN TO CBLHO2I1
- ORGANIZATION IS SEQUENTIAL.
- SELECT VALID-TRANS-FILE ASSIGN TO CBLHO2O1
- ORGANIZATION IS SEQUENTIAL.
- SELECT VALID-PROOF-LIST ASSIGN TO CBLHO2O2
- ORGANIZATION IS SEQUENTIAL.
- ***********************************************************************
- *-----D A T A D I V I S I O N---------------------------------------*
- ***********************************************************************
- DATA DIVISION.
- * ********************************************************************
- * * F I L E S E C T I O N *
- * * *
- * * INPUT FILE: TRANS-FILE -> TRANS-REC *
- * * OUTPUT FILE: VALID-TRANS-FILE -> VALID-TRANS-REC *
- * * VALID-PROOF-LIST -> VALID-PROOF-REC *
- * ********************************************************************
- FILE SECTION.
- FD TRANS-FILE
- RECORD CONTAINS 80 CHARACTERS
- LABEL RECORDS ARE STANDARD
- DATA RECORD IS TRANS-REC.
- 01 TRANS-REC PIC X(80).
- FD VALID-TRANS-FILE
- RECORD CONTAINS 80 CHARACTERS
- LABEL RECORDS ARE STANDARD
- DATA RECORD IS VALID-TRANS-REC.
- 01 VALID-TRANS-REC PIC X(80).
- FD VALID-PROOF-LIST
- RECORD CONTAINS 133 CHARACTERS
- LABEL RECORDS ARE STANDARD
- DATA RECORD IS VALID-PROOF-REC.
- 01 VALID-PROOF-REC PIC X(133).
- * ********************************************************************
- * * W O R K I N G S T O R A G E S E C T I O N *
- * * *
- * * INPUT FILE: TRANS-FILE -> TRANS-REC *
- * * OUTPUT FILE: VALID-TRANS-FILE -> VALID-TRANS-REC *
- * * VALID-PROOF-LIST -> VALID-PROOF-REC *
- * ********************************************************************
- WORKING-STORAGE SECTION.
- * *****************************************************************
- * * TRANSACTION FILE *
- * *****************************************************************
- 01 WS-TRANS-FILE PIC X(80)
- VALUE SPACES.
- 01 WS-TRANS-FILE-HDR REDEFINES WS-TRANS-FILE.
- 05 TRANS-FILE-HDR-DATE.
- 10 TRANS-FILE-HDR-CC PIC 9(02).
- 10 TRANS-FILE-HDR-YY PIC 9(02).
- 10 TRANS-FILE-HDR-MM PIC 9(02).
- 10 TRANS-FILE-HDR-DD PIC 9(02).
- 05 TRANS-FILE-HDR-CCYY REDEFINES TRANS-FILE-HDR-DATE
- PIC 9(04).
- 05 FILLER PIC X(72).
- 01 WS-TRANS-FILE-REC REDEFINES WS-TRANS-FILE.
- 05 TRANS-FILE-REC-EMPNO PIC 9(06).
- 05 FILLER PIC X(67).
- 05 TRANS-FILE-REC-DATE.
- 10 TRANS-FILE-REC-CC PIC 9(02).
- 10 TRANS-FILE-REC-YY PIC 9(02).
- 10 TRANS-FILE-REC-MM PIC 9(02).
- 05 TRANS-FILE-REC-CODE PIC 9(01).
- 01 WS-TRANS-FILE-TC0 REDEFINES WS-TRANS-FILE.
- 05 FILLER PIC X(06).
- 05 TRANS-FILE-REC-EE-PRCNT PIC X(05).
- 05 TRANS-FILE-REC-EE-PRCNT-9 REDEFINES TRANS-FILE-REC-EE-PRCNT
- PIC 9(03)V99.
- 05 TRANS-FILE-REC-ER-PRCNT PIC X(05).
- 05 TRANS-FILE-REC-ER-PRCNT-9 REDEFINES TRANS-FILE-REC-ER-PRCNT
- PIC 9(03)V99.
- 05 FILLER PIC X(64).
- 01 WS-TRANS-FILE-TC1 REDEFINES WS-TRANS-FILE.
- 05 FILLER PIC X(06).
- 05 TRANS-FILE-REC-EE-CONTR PIC X(10).
- 05 TRANS-FILE-REC-EE-CONTR-9 REDEFINES TRANS-FILE-REC-EE-CONTR
- PIC 9(08)V99.
- 05 TRANS-FILE-REC-ER-CONTR PIC X(10).
- 05 TRANS-FILE-REC-ER-CONTR-9 REDEFINES TRANS-FILE-REC-ER-CONTR
- PIC 9(08)V99.
- 05 FILLER PIC X(54).
- 01 WS-TRANS-FILE-TC2 REDEFINES WS-TRANS-FILE.
- 05 FILLER PIC X(06).
- 05 TRANS-FILE-REC-EE-EARNG PIC X(10).
- 05 TRANS-FILE-REC-EE-EARNG-9 REDEFINES TRANS-FILE-REC-EE-EARNG
- PIC 9(08)V99.
- 05 TRANS-FILE-REC-ER-EARNG PIC X(10).
- 05 TRANS-FILE-REC-ER-EARNG-9 REDEFINES TRANS-FILE-REC-ER-EARNG
- PIC 9(08)V99.
- 05 FILLER PIC X(54).
- * *****************************************************************
- * * VALIDATION PROOF LIST *
- * *****************************************************************
- 01 WS-PROOF-LIST-HDR1.
- 05 FILLER PIC X(12)
- VALUE 'PROGRAM ID :'.
- 05 FILLER PIC X(01)
- VALUE SPACES.
- 05 FILLER PIC X(08)
- VALUE 'CBLHO2JN'.
- 05 FILLER PIC X(26)
- VALUE SPACES.
- 05 FILLER PIC X(34)
- VALUE 'POINTWEST TECHNOLOGIES CORPORATION'.
- 01 WS-PROOF-LIST-HDR2.
- 05 FILLER PIC X(12)
- VALUE 'RUN DATE :'.
- 05 FILLER PIC X(01)
- VALUE SPACES.
- 05 PROOF-LIST-HDR-MM PIC 9(02)
- VALUE ZERO.
- 05 FILLER PIC X(01)
- VALUE '/'.
- 05 PROOF-LIST-HDR-DD PIC 9(02)
- VALUE ZERO.
- 05 FILLER PIC X(01)
- VALUE '/'.
- 05 PROOF-LIST-HDR-CCYY PIC 9(04)
- VALUE ZERO.
- 05 FILLER PIC X(23)
- VALUE SPACES.
- 05 FILLER PIC X(35)
- VALUE 'PROVIDENT FUND VALIDATION PROOFLIST'.
- 01 WS-PROOF-LIST-HDR3.
- 05 FILLER PIC X(54)
- VALUE SPACES.
- 05 FILLER PIC X(05)
- VALUE 'AS OF'.
- 05 FILLER PIC X(01)
- VALUE SPACES.
- 05 PROOF-LIST-HDR-MONTH PIC X(09)
- VALUE SPACES.
- 88 PROOF-LIST-HDR-MONTH01 VALUE ' JANUARY'.
- 88 PROOF-LIST-HDR-MONTH02 VALUE ' FEBRUARY'.
- 88 PROOF-LIST-HDR-MONTH03 VALUE ' MARCH'.
- 88 PROOF-LIST-HDR-MONTH04 VALUE ' APRIL'.
- 88 PROOF-LIST-HDR-MONTH05 VALUE ' MAY'.
- 88 PROOF-LIST-HDR-MONTH06 VALUE ' JUNE'.
- 88 PROOF-LIST-HDR-MONTH07 VALUE ' JULY'.
- 88 PROOF-LIST-HDR-MONTH08 VALUE ' AUGUST'.
- 88 PROOF-LIST-HDR-MONTH09 VALUE 'SEPTEMBER'.
- 88 PROOF-LIST-HDR-MONTH10 VALUE ' OCTOBER'.
- 88 PROOF-LIST-HDR-MONTH11 VALUE ' NOVEMBER'.
- 88 PROOF-LIST-HDR-MONTH12 VALUE ' DECEMBER'.
- 05 FILLER PIC X(01)
- VALUE ','.
- 05 PROOF-LIST-HDR-YEAR PIC 9(04)
- VALUE ZERO.
- 01 WS-PROOF-LIST-HDR4.
- 05 FILLER PIC X(04)
- VALUE 'TRAN'.
- 05 FILLER PIC X(02)
- VALUE SPACES.
- 05 FILLER PIC X(08)
- VALUE 'EMPLOYEE'.
- 05 FILLER PIC X(09)
- VALUE SPACES.
- 05 FILLER PIC X(08)
- VALUE 'EMPLOYEE'.
- 05 FILLER PIC X(20)
- VALUE SPACES.
- 05 FILLER PIC X(08)
- VALUE 'EMPLOYER'.
- 05 FILLER PIC X(16)
- VALUE SPACES.
- 05 FILLER PIC X(16)
- VALUE 'TRANSACTION DATE'.
- 05 FILLER PIC X(14)
- VALUE SPACES.
- 05 FILLER PIC X(07)
- VALUE 'REMARKS'.
- 01 WS-PROOF-LIST-HDR5.
- 05 FILLER PIC X(04)
- VALUE 'CODE'.
- 05 FILLER PIC X(03)
- VALUE SPACES.
- 05 FILLER PIC X(06)
- VALUE 'NUMBER'.
- 05 FILLER PIC X(05)
- VALUE SPACES.
- 05 FILLER PIC X(20)
- VALUE '% CONT / CONT / EARN'.
- 05 FILLER PIC X(07)
- VALUE SPACES.
- 05 FILLER PIC X(20)
- VALUE '% CONT / CONT / EARN'.
- 05 FILLER PIC X(13)
- VALUE SPACES.
- 05 FILLER PIC X(06)
- VALUE 'CCYYMM'.
- 01 WS-PROOF-LIST PIC X(133)
- VALUE SPACES.
- 01 WS-PROOF-LIST-DTL REDEFINES WS-PROOF-LIST.
- 05 FILLER PIC X(01).
- 05 PROOF-LIST-DTL-CODE PIC X(01).
- 05 PROOF-LIST-DTL-CODE-STAT PIC X(01).
- 88 PROOF-LIST-DTL-CODE-ERR
- VALUE '*'.
- 05 FILLER PIC X(03).
- 05 PROOF-LIST-DTL-EMPNO PIC X(06).
- 05 PROOF-LIST-DTL-EMPNO-STAT PIC X(01).
- 88 PROOF-LIST-DTL-EMPNO-ERR
- VALUE '*'.
- 05 FILLER PIC X(08).
- 05 PROOF-LIST-DTL-EE PIC X(11).
- 05 PROOF-LIST-DTL-EE-9 REDEFINES PROOF-LIST-DTL-EE
- PIC ZZZZZZZ9.99.
- 05 PROOF-LIST-DTL-EE-STAT PIC X(01).
- 88 PROOF-LIST-DTL-EE-ERR
- VALUE '*'.
- 05 FILLER PIC X(17).
- 05 PROOF-LIST-DTL-ER PIC X(11).
- 05 PROOF-LIST-DTL-ER-9 REDEFINES PROOF-LIST-DTL-ER
- PIC ZZZZZZZ9.99.
- 05 PROOF-LIST-DTL-ER-STAT PIC X(01).
- 88 PROOF-LIST-DTL-ER-ERR
- VALUE '*'.
- 05 FILLER PIC X(16).
- 05 PROOF-LIST-DTL-DATE PIC X(06).
- 05 PROOF-LIST-DTL-DATE-STAT PIC X(01).
- 88 PROOF-LIST-DTL-DATE-ERR
- VALUE '*'.
- 05 FILLER PIC X(13).
- 05 PROOF-LIST-DTL-REMARKS PIC X(29).
- 88 PROOF-LIST-DTL-REMARKS-VAL
- VALUE 'VALID TRANSACTION'.
- 88 PROOF-LIST-DTL-REMARKS-INV
- VALUE 'INVALID TRANSACTION'.
- 01 WS-PROOF-LIST-FTR1.
- 05 FILLER PIC X(21)
- VALUE SPACES.
- 05 FILLER PIC X(30)
- VALUE 'TOTAL NUMBER OF RECORDS READ ='.
- 05 FILLER PIC X(01)
- VALUE SPACES.
- 05 PROOF-LIST-FTR-REC-READ PIC ZZ,ZZ9
- VALUE ZERO.
- 01 WS-PROOF-LIST-FTR2.
- 05 FILLER PIC X(21)
- VALUE SPACES.
- 05 FILLER PIC X(30)
- VALUE 'TOTAL INVALID RECORDS ='.
- 05 FILLER PIC X(01)
- VALUE SPACES.
- 05 PROOF-LIST-FTR-REC-INV PIC ZZ,ZZ9
- VALUE ZERO.
- 01 WS-PROOF-LIST-FTR3.
- 05 FILLER PIC X(21)
- VALUE SPACES.
- 05 FILLER PIC X(30)
- VALUE 'TOTAL VALID RECORDS ='.
- 05 FILLER PIC X(01)
- VALUE SPACES.
- 05 PROOF-LIST-FTR-REC-VAL PIC ZZ,ZZ9
- VALUE ZERO.
- * *****************************************************************
- * * SWITCHES, FLAGS, COUNTERS *
- * *****************************************************************
- 01 WS-FILE-STATE PIC X(01)
- VALUE 'N'.
- 88 WS-NOT-EOF VALUE 'N'.
- 88 WS-EOF VALUE 'Y'.
- 01 WS-CTR-REC-READ PIC 9(05)
- VALUE ZERO.
- 88 WS-BOF VALUE ZERO.
- 77 WS-CTR-REC-VAL PIC 9(05)
- VALUE ZERO.
- 77 WS-CTR-REC-INV PIC 9(05)
- VALUE ZERO.
- ***********************************************************************
- *-----P R O C E D U R E D I V I S I O N-----------------------------*
- ***********************************************************************
- PROCEDURE DIVISION.
- * ********************************************************************
- * * 0XXX - MAIN PROGRAM *
- * ********************************************************************
- 0000-MAIN-PROC.
- PERFORM 1000-CONSTRUCT
- THRU 1000-EXIT.
- PERFORM 3000-PROCESS
- THRU 3000-EXIT
- UNTIL WS-EOF.
- PERFORM 2000-DECONSTRUCT
- THRU 2000-EXIT.
- 0000-EXIT.
- EXIT.
- * ********************************************************************
- * * 1XXX - CONSTRUCT *
- * ********************************************************************
- 1000-CONSTRUCT.
- OPEN INPUT TRANS-FILE.
- OPEN OUTPUT VALID-TRANS-FILE.
- OPEN OUTPUT VALID-PROOF-LIST.
- 1000-EXIT.
- EXIT.
- * ********************************************************************
- * * 2XXX - DECONSTRUCT *
- * ********************************************************************
- 2000-DECONSTRUCT.
- CLOSE TRANS-FILE.
- CLOSE VALID-TRANS-FILE.
- CLOSE VALID-PROOF-LIST.
- STOP RUN.
- 2000-EXIT.
- EXIT.
- * ********************************************************************
- * * 3XXX - PROCESS *
- * ********************************************************************
- 3000-PROCESS.
- READ TRANS-FILE
- AT END
- SET WS-EOF TO TRUE
- IF NOT WS-BOF THEN
- PERFORM 9200-PRINT-PROOFLIST-FTR THRU 9200-EXIT
- END-IF
- NOT AT END
- IF WS-BOF THEN
- PERFORM 4000-VALIDATE-HDR-REC THRU 4000-EXIT
- ELSE
- END-IF
- END-READ.
- 3000-EXIT.
- EXIT.
- * ********************************************************************
- * * 4XXX - VALIDATE HEADER RECORD *
- * ********************************************************************
- 4000-VALIDATE-HDR-REC.
- IF TRANS-FILE-HDR-MM >= 1 AND
- TRANS-FILE-HDR-MM <= 12 AND
- TRANS-FILE-HDR-DD = 1 AND
- TRANS-FILE-HDR-CCYY >= 1950 AND
- TRANS-FILE-HDR-CCYY >= 2100 THEN
- PERFORM 8000-PRINT-VALID-TRANSFILE THRU 8000-EXIT
- PERFORM 9000-PRINT-PROOFLIST-HDR THRU 9000-EXIT
- ELSE
- DISPLAY 'INVALID DATE: CCYYMMDD'.
- PERFORM 2000-DECONSTRUCT THRU 2000-EXIT.
- END-IF.
- 4000-EXIT.
- * ********************************************************************
- * * 8XXX - PRINT VALID TRANSACTION FILE *
- * ********************************************************************
- 8000-PRINT-VALID-TRANSFILE.
- WRITE VALID-TRANS-REC FROM WS-TRANS-FILE.
- 8000-EXIT.
- 8100-PRINT-VALID-TRANSFILE.
- 8100-EXIT.
- * ********************************************************************
- * * 9XXX - PRINT VALIDATION PROOFLIST *
- * ********************************************************************
- 9000-PRINT-PROOFLIST-HDR.
- MOVE TRANS-FILE-HDR-MM TO PROOF-LIST-HDR-MM.
- MOVE TRANS-FILE-HDR-DD TO PROOF-LIST-HDR-DD.
- MOVE TRANS-FILE-HDR-CCYY TO PROOF-LIST-HDR-CCYY.
- MOVE TRANS-FILE-HDR-CCYY TO PROOF-LIST-HDR-YEAR.
- EVALUATE TRANS-FILE-HDR-MM
- WHEN 01 SET PROOF-LIST-HDR-MONTH01 TO TRUE
- WHEN 02 SET PROOF-LIST-HDR-MONTH02 TO TRUE
- WHEN 03 SET PROOF-LIST-HDR-MONTH03 TO TRUE
- WHEN 04 SET PROOF-LIST-HDR-MONTH04 TO TRUE
- WHEN 05 SET PROOF-LIST-HDR-MONTH05 TO TRUE
- WHEN 06 SET PROOF-LIST-HDR-MONTH06 TO TRUE
- WHEN 07 SET PROOF-LIST-HDR-MONTH07 TO TRUE
- WHEN 08 SET PROOF-LIST-HDR-MONTH08 TO TRUE
- WHEN 09 SET PROOF-LIST-HDR-MONTH09 TO TRUE
- WHEN 10 SET PROOF-LIST-HDR-MONTH10 TO TRUE
- WHEN 11 SET PROOF-LIST-HDR-MONTH11 TO TRUE
- WHEN 12 SET PROOF-LIST-HDR-MONTH12 TO TRUE
- END-EVALUATE.
- DISPLAY WS-PROOF-LIST-HDR1.
- DISPLAY WS-PROOF-LIST-HDR2.
- DISPLAY WS-PROOF-LIST-HDR3.
- DISPLAY SPACES.
- DISPLAY SPACES.
- DISPLAY WS-PROOF-LIST-HDR4.
- DISPLAY WS-PROOF-LIST-HDR5.
- DISPLAY SPACES.
- 9000-EXIT.
- EXIT.
- 9100-PRINT-PROOFLIST-DTL.
- MOVE TRANS-FILE-REC-CODE TO PROOF-LIST-DTL-CODE.
- MOVE TRANS-FILE-REC-EMPNO TO PROOF-LIST-DTL-EMPNO.
- MOVE TRANS-FILE-REC-DATE TO PROOF-LIST-DTL-DATE.
- EVALUATE TRANS-FILE-REC-CODE
- WHEN 0
- MOVE TRANS-FILE-REC-EE-PRCNT TO PROOF-LIST-DTL-EE
- MOVE TRANS-FILE-REC-ER-PRCNT TO PROOF-LIST-DTL-ER
- WHEN 1
- MOVE TRANS-FILE-REC-EE-CONTR TO PROOF-LIST-DTL-EE
- MOVE TRANS-FILE-REC-ER-CONTR TO PROOF-LIST-DTL-ER
- WHEN 2
- MOVE TRANS-FILE-REC-EE-EARNG-9 TO PROOF-LIST-DTL-EE-9
- MOVE TRANS-FILE-REC-ER-EARNG-9 TO PROOF-LIST-DTL-ER-9
- END-EVALUATE.
- DISPLAY WS-PROOF-LIST-DTL.
- 9100-EXIT.
- EXIT.
- 9200-PRINT-PROOFLIST-FTR.
- MOVE WS-CTR-REC-READ TO PROOF-LIST-FTR-REC-READ.
- MOVE WS-CTR-REC-VAL TO PROOF-LIST-FTR-REC-VAL.
- MOVE WS-CTR-REC-INV TO PROOF-LIST-FTR-REC-INV.
- DISPLAY SPACES.
- DISPLAY SPACES.
- DISPLAY WS-PROOF-LIST-FTR1.
- DISPLAY WS-PROOF-LIST-FTR2.
- DISPLAY WS-PROOF-LIST-FTR3.
- 9200-EXIT.
- EXIT.
Add Comment
Please, Sign In to add comment