Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ***********************************************************************
- * PROGRAM NAME: CBLHO2JN *
- * *
- * AUTHOR: Jan Noel Calayag *
- * *
- * DATE: 7/25/2012 *
- * *
- * DESCRIPTION: All records of a transaction file will be *
- * validated using the validation rules *
- * described in the processing outline. Valid *
- * records will be written to a valid *
- * transaction file. Results of the validation *
- * will be printed in a validation prooflist. *
- ***********************************************************************
- * SUB PROGRAM LIST: *
- * *
- * 0XXX --- MAIN PROGRAM *
- * '--- 0000-MAIN-PROC *
- * *
- * 1XXX --- CONSTRUCT *
- * '--- 1000-CONSTRUCT *
- * *
- * 2XXX --- DECONSTRUCT *
- * '--- 2000-DECONSTRUCT *
- * *
- * 3XXX --- PROCESS *
- * |--- 3000-PROCESS *
- * '--- 3100-RESET-VALUES *
- * *
- * 4XXX --- VALIDATE HEADER *
- * '--- 4000-VALIDATE-HDR *
- * *
- * 5XXX --- VALIDATE RECORDS *
- * |--- 5100-INITIAL-VALIDATION *
- * | |--- 5110-INITIAL-VALIDATION-EMPNO *
- * | |--- 5120-INITIAL-VALIDATION-DATE *
- * | '--- 5130-INITIAL-VALIDATION-CODE *
- * |--- 5200-FILTER-BY-CODE *
- * | |--- 5210-FILTER-BY-TC0 *
- * | |--- 5220-FILTER-BY-TC1 *
- * | '--- 5230-FILTER-BY-TC2 *
- * |--- 5300-SEQ-UNIQ-VALIDATION-EMPNO *
- * |--- 5400-SEQ-UNIQ-VALIDATION-CODE *
- * |--- 5500-SEQ-UNIQ-VALIDATION-DATE *
- * '--- 5600-FINALIZE-VALIDATION *
- * '--- 5610-STORE-LAST-VALID-REC *
- * *
- * 8XXX --- PRINT VALID TRANSACTION FILE *
- * '--- 8000-PRINT-VALID-TRANSFILE *
- * *
- * 9XXX --- PRINT VALID TRANSACTION FILE *
- * |--- 9000-PRINT-PROOFLIST-HDR *
- * |--- 9100-PRINT-PROOFLIST-DTL *
- * '--- 9200-PRINT-PROOFLIST-FTR *
- * *
- ***********************************************************************
- ***********************************************************************
- *-----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. CBLHO2JN.
- 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 INPUT01
- ORGANIZATION IS SEQUENTIAL.
- SELECT VALID-TRANS-FILE ASSIGN TO OUTPUT01
- ORGANIZATION IS SEQUENTIAL.
- SELECT VALID-PROOF-LIST ASSIGN TO OUTPUT02
- 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 *
- * * *
- * * SUB GROUPS: *
- * * TRANSACTION FILE *
- * * VALIDATION PROOF LIST *
- * * TEMPORARY BUFFER *
- * * SWITCHES, FLAGS, COUNTERS *
- * ********************************************************************
- 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 TRANS-FILE-HDR-CCYYMM REDEFINES TRANS-FILE-HDR-DATE
- PIC 9(06).
- 05 FILLER PIC X(72).
- 01 WS-TRANS-FILE-REC REDEFINES WS-TRANS-FILE.
- 05 TRANS-FILE-REC-EMPNO PIC 9(06).
- 05 TRANS-FILE-REC-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-CCYY REDEFINES TRANS-FILE-REC-DATE
- PIC 9(04).
- 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-CC PIC 9(02)
- VALUE 20.
- 05 PROOF-LIST-HDR-YY PIC 9(02)
- 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.
- * *****************************************************************
- * * TEMPORARY BUFFER *
- * *****************************************************************
- 01 WS-RUN-DATE.
- 05 RUN-DATE-YY PIC 9(02)
- VALUE ZERO.
- 05 RUN-DATE-MM PIC 9(02)
- VALUE ZERO.
- 05 RUN-DATE-DD PIC 9(02)
- VALUE ZERO.
- 01 WS-HDR-CCYYMM PIC 9(06)
- VALUE ZERO.
- 01 WS-LAST-VALID-RECORD.
- 05 LAST-VALID-EMPNO PIC 9(06)
- VALUE ZERO.
- 05 LAST-VALID-DATE PIC 9(06)
- VALUE ZERO.
- 05 LAST-VALID-CODE PIC 9(01)
- VALUE ZERO.
- * *****************************************************************
- * * SWITCHES, FLAGS, COUNTERS *
- * *****************************************************************
- 01 WS-FILE-STATE PIC X(01)
- VALUE 'B'.
- 88 WS-BOF VALUE 'B'.
- 88 WS-NOT-EOF VALUE 'N'.
- 88 WS-EOF VALUE 'E'.
- 01 WS-VALIDITY-FLAGS.
- 05 WS-STATE-EMPNO PIC X(01)
- VALUE 'Y'.
- 88 WS-VAL-EMPNO VALUE 'Y'.
- 88 WS-INV-EMPNO VALUE 'N'.
- 05 WS-STATE-DATE PIC X(01)
- VALUE 'Y'.
- 88 WS-VAL-DATE VALUE 'Y'.
- 88 WS-INV-DATE VALUE 'N'.
- 05 WS-STATE-CODE PIC X(01)
- VALUE 'Y'.
- 88 WS-VAL-CODE VALUE 'Y'.
- 88 WS-INV-CODE VALUE 'N'.
- 05 WS-STATE-EE PIC X(01)
- VALUE 'Y'.
- 88 WS-VAL-EE VALUE 'Y'.
- 88 WS-INV-EE VALUE 'N'.
- 88 WS-NOTNUM-EE VALUE 'X'.
- 05 WS-STATE-ER PIC X(01)
- VALUE 'Y'.
- 88 WS-VAL-ER VALUE 'Y'.
- 88 WS-INV-ER VALUE 'N'.
- 88 WS-NOTNUM-ER VALUE 'X'.
- 77 WS-CTR-REC-READ PIC 9(05)
- 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
- IF NOT WS-BOF THEN
- PERFORM 9200-PRINT-PROOFLIST-FTR THRU 9200-EXIT
- END-IF
- SET WS-EOF TO TRUE
- NOT AT END
- MOVE TRANS-REC TO WS-TRANS-FILE
- EVALUATE TRUE
- WHEN WS-BOF
- PERFORM 4000-VALIDATE-HDR THRU 4000-EXIT
- SET WS-NOT-EOF TO TRUE
- WHEN WS-NOT-EOF
- PERFORM 3100-RESET-VALUES THRU 3100-EXIT
- PERFORM 5000-VALIDATE-REC THRU 5000-EXIT
- END-EVALUATE
- END-READ.
- 3000-EXIT.
- EXIT.
- 3100-RESET-VALUES.
- INITIALIZE WS-PROOF-LIST.
- INITIALIZE WS-VALIDITY-FLAGS.
- 3100-EXIT.
- EXIT.
- * ********************************************************************
- * * 4XXX - VALIDATE HEADER *
- * ********************************************************************
- 4000-VALIDATE-HDR.
- 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
- MOVE TRANS-FILE-HDR-CCYYMM TO WS-HDR-CCYYMM
- ELSE
- DISPLAY 'INVALID DATE: CCYYMMDD'
- PERFORM 2000-DECONSTRUCT THRU 2000-EXIT
- END-IF.
- 4000-EXIT.
- * ********************************************************************
- * * 5XXX - VALIDATE RECORDS *
- * ********************************************************************
- 5000-VALIDATE-REC.
- PERFORM 5100-INITIAL-VALIDATION THRU 5100-EXIT.
- IF WS-VAL-CODE THEN
- PERFORM 5200-FILTER-BY-CODE THRU 5200-EXIT
- ELSE
- MOVE SPACES TO TRANS-FILE-REC-FILLER
- END-IF.
- PERFORM 5300-SEQ-UNIQ-VALIDATION-EMPNO THRU 5300-EXIT.
- PERFORM 5600-FINALIZE-VALIDATION THRU 5600-EXIT.
- 5000-EXIT.
- EXIT.
- *********************1ST VALIDATION
- 5100-INITIAL-VALIDATION.
- PERFORM 5110-INITIAL-VALIDATION-EMPNO THRU 5110-EXIT.
- PERFORM 5120-INITIAL-VALIDATION-DATE THRU 5120-EXIT.
- PERFORM 5130-INITIAL-VALIDATION-CODE THRU 5130-EXIT.
- 5100-EXIT.
- EXIT.
- 5110-INITIAL-VALIDATION-EMPNO.
- IF TRANS-FILE-REC-EMPNO IS NUMERIC THEN
- SET WS-VAL-EMPNO TO TRUE
- ELSE
- SET WS-INV-EMPNO TO TRUE
- END-IF.
- 5110-EXIT.
- EXIT.
- 5120-INITIAL-VALIDATION-DATE.
- IF TRANS-FILE-REC-DATE IS NUMERIC AND
- TRANS-FILE-REC-DATE < WS-HDR-CCYYMM AND
- TRANS-FILE-REC-MM >= 1 AND
- TRANS-FILE-REC-MM <= 12 AND
- TRANS-FILE-REC-CCYY >= 1950 AND
- TRANS-FILE-REC-CCYY <= 2100 THEN
- SET WS-VAL-DATE TO TRUE
- ELSE
- SET WS-INV-DATE TO TRUE
- END-IF.
- 5120-EXIT.
- EXIT.
- 5130-INITIAL-VALIDATION-CODE.
- IF TRANS-FILE-REC-CODE IS NUMERIC AND
- TRANS-FILE-REC-CODE >= 0 AND
- TRANS-FILE-REC-CODE <= 2 THEN
- SET WS-VAL-CODE TO TRUE
- ELSE
- SET WS-INV-CODE TO TRUE
- END-IF.
- 5130-EXIT.
- EXIT.
- *********************2ND VALIDATION
- 5200-FILTER-BY-CODE.
- EVALUATE TRANS-FILE-REC-CODE
- WHEN 0 PERFORM 5210-FILTER-BY-TC0 THRU 5210-EXIT
- WHEN 1 PERFORM 5220-FILTER-BY-TC1 THRU 5220-EXIT
- WHEN 2 PERFORM 5230-FILTER-BY-TC2 THRU 5230-EXIT
- END-EVALUATE.
- 5200-EXIT.
- EXIT.
- 5210-FILTER-BY-TC0.
- IF TRANS-FILE-REC-EE-PRCNT IS NUMERIC THEN
- IF TRANS-FILE-REC-EE-PRCNT-9 = 3 OR
- TRANS-FILE-REC-EE-PRCNT-9 = 6 THEN
- SET WS-VAL-EE TO TRUE
- ELSE
- SET WS-INV-EE TO TRUE
- END-IF
- ELSE
- SET WS-NOTNUM-EE TO TRUE
- END-IF.
- IF TRANS-FILE-REC-ER-PRCNT IS NUMERIC THEN
- IF TRANS-FILE-REC-ER-PRCNT-9 = 3 OR
- TRANS-FILE-REC-ER-PRCNT-9 = 6 THEN
- SET WS-VAL-ER TO TRUE
- ELSE
- SET WS-INV-ER TO TRUE
- END-IF
- ELSE
- SET WS-NOTNUM-ER TO TRUE
- END-IF.
- 5210-EXIT.
- EXIT.
- 5220-FILTER-BY-TC1.
- IF TRANS-FILE-REC-EE-CONTR IS NUMERIC THEN
- SET WS-VAL-EE TO TRUE
- ELSE
- SET WS-NOTNUM-EE TO TRUE
- END-IF.
- IF TRANS-FILE-REC-ER-CONTR IS NUMERIC THEN
- SET WS-VAL-ER TO TRUE
- ELSE
- SET WS-NOTNUM-ER TO TRUE
- END-IF.
- 5220-EXIT.
- EXIT.
- 5230-FILTER-BY-TC2.
- IF TRANS-FILE-REC-EE-EARNG IS NUMERIC THEN
- SET WS-VAL-EE TO TRUE
- ELSE
- SET WS-NOTNUM-EE TO TRUE
- END-IF.
- IF TRANS-FILE-REC-ER-EARNG IS NUMERIC THEN
- SET WS-VAL-ER TO TRUE
- ELSE
- SET WS-NOTNUM-ER TO TRUE
- END-IF.
- 5230-EXIT.
- EXIT.
- ******************************3RD VALIDATION
- 5300-SEQ-UNIQ-VALIDATION-EMPNO.
- IF WS-VAL-EMPNO THEN
- EVALUATE TRUE
- WHEN TRANS-FILE-REC-EMPNO = LAST-VALID-EMPNO
- PERFORM 5400-SEQ-UNIQ-VALIDATION-CODE
- THRU 5400-EXIT
- WHEN TRANS-FILE-REC-EMPNO < LAST-VALID-EMPNO
- SET WS-INV-EMPNO TO TRUE
- END-EVALUATE
- END-IF.
- 5300-EXIT.
- EXIT.
- 5400-SEQ-UNIQ-VALIDATION-CODE.
- IF WS-VAL-CODE THEN
- IF TRANS-FILE-REC-CODE <= LAST-VALID-CODE THEN
- SET WS-INV-CODE TO TRUE
- END-IF
- END-IF.
- PERFORM 5500-SEQ-UNIQ-VALIDATION-DATE THRU 5500-EXIT.
- 5400-EXIT.
- EXIT.
- 5500-SEQ-UNIQ-VALIDATION-DATE.
- IF WS-VAL-DATE THEN
- IF TRANS-FILE-REC-DATE < LAST-VALID-DATE THEN
- SET WS-INV-DATE TO TRUE
- END-IF
- END-IF.
- 5500-EXIT.
- EXIT.
- ************************************4TH
- 5600-FINALIZE-VALIDATION.
- IF WS-VAL-EMPNO AND
- WS-VAL-DATE AND
- WS-VAL-CODE AND
- WS-VAL-EE AND
- WS-VAL-ER THEN
- PERFORM 5610-STORE-LAST-VALID-REC THRU 5610-EXIT
- PERFORM 8000-PRINT-VALID-TRANSFILE THRU 8000-EXIT
- ADD 1 TO WS-CTR-REC-VAL
- SET PROOF-LIST-DTL-REMARKS-VAL TO TRUE
- ELSE
- ADD 1 TO WS-CTR-REC-INV
- SET PROOF-LIST-DTL-REMARKS-INV TO TRUE
- END-IF.
- ADD 1 TO WS-CTR-REC-READ.
- PERFORM 9100-PRINT-PROOFLIST-DTL THRU 9100-EXIT.
- 5600-EXIT.
- EXIT.
- 5610-STORE-LAST-VALID-REC.
- MOVE TRANS-FILE-REC-EMPNO TO LAST-VALID-EMPNO.
- MOVE TRANS-FILE-REC-DATE TO LAST-VALID-DATE.
- MOVE TRANS-FILE-REC-CODE TO LAST-VALID-CODE.
- 5610-EXIT.
- EXIT.
- * ********************************************************************
- * * 8XXX - PRINT VALID TRANSACTION FILE *
- * ********************************************************************
- 8000-PRINT-VALID-TRANSFILE.
- WRITE VALID-TRANS-REC FROM WS-TRANS-FILE.
- 8000-EXIT.
- EXIT.
- * ********************************************************************
- * * 9XXX - PRINT VALIDATION PROOFLIST *
- * ********************************************************************
- 9000-PRINT-PROOFLIST-HDR.
- ACCEPT WS-RUN-DATE FROM DATE.
- MOVE RUN-DATE-MM TO PROOF-LIST-HDR-MM.
- MOVE RUN-DATE-DD TO PROOF-LIST-HDR-DD.
- MOVE RUN-DATE-YY TO PROOF-LIST-HDR-YY.
- 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.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-HDR1.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-HDR2.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-HDR3.
- MOVE SPACES TO VALID-PROOF-REC.
- WRITE VALID-PROOF-REC.
- MOVE SPACES TO VALID-PROOF-REC.
- WRITE VALID-PROOF-REC.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-HDR4.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-HDR5.
- MOVE SPACES TO VALID-PROOF-REC.
- WRITE VALID-PROOF-REC.
- 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.
- IF WS-INV-EMPNO THEN
- SET PROOF-LIST-DTL-EMPNO-ERR TO TRUE
- END-IF.
- IF WS-INV-DATE THEN
- SET PROOF-LIST-DTL-DATE-ERR TO TRUE
- END-IF.
- IF WS-INV-CODE THEN
- SET PROOF-LIST-DTL-CODE-ERR TO TRUE
- END-IF.
- IF WS-INV-EE OR
- WS-NOTNUM-EE THEN
- SET PROOF-LIST-DTL-EE-ERR TO TRUE
- END-IF.
- IF WS-INV-ER OR
- WS-NOTNUM-ER THEN
- SET PROOF-LIST-DTL-ER-ERR TO TRUE
- END-IF.
- IF WS-NOTNUM-EE THEN
- EVALUATE TRANS-FILE-REC-CODE
- WHEN 0
- MOVE TRANS-FILE-REC-EE-PRCNT
- TO PROOF-LIST-DTL-EE
- WHEN 1
- MOVE TRANS-FILE-REC-EE-CONTR
- TO PROOF-LIST-DTL-EE
- WHEN 2
- MOVE TRANS-FILE-REC-EE-EARNG
- TO PROOF-LIST-DTL-EE
- END-EVALUATE
- ELSE
- EVALUATE TRANS-FILE-REC-CODE
- WHEN 0
- MOVE TRANS-FILE-REC-EE-PRCNT-9
- TO PROOF-LIST-DTL-EE-9
- WHEN 1
- MOVE TRANS-FILE-REC-EE-CONTR-9
- TO PROOF-LIST-DTL-EE-9
- WHEN 2
- MOVE TRANS-FILE-REC-EE-EARNG-9
- TO PROOF-LIST-DTL-EE-9
- END-EVALUATE
- END-IF.
- IF WS-NOTNUM-ER THEN
- EVALUATE TRANS-FILE-REC-CODE
- WHEN 0
- MOVE TRANS-FILE-REC-ER-PRCNT
- TO PROOF-LIST-DTL-ER
- WHEN 1
- MOVE TRANS-FILE-REC-ER-CONTR
- TO PROOF-LIST-DTL-ER
- WHEN 2
- MOVE TRANS-FILE-REC-ER-EARNG
- TO PROOF-LIST-DTL-ER
- END-EVALUATE
- ELSE
- EVALUATE TRANS-FILE-REC-CODE
- WHEN 0
- MOVE TRANS-FILE-REC-ER-PRCNT-9
- TO PROOF-LIST-DTL-ER-9
- WHEN 1
- MOVE TRANS-FILE-REC-ER-CONTR-9
- TO PROOF-LIST-DTL-ER-9
- WHEN 2
- MOVE TRANS-FILE-REC-ER-EARNG-9
- TO PROOF-LIST-DTL-ER-9
- END-EVALUATE
- END-IF.
- WRITE VALID-PROOF-REC FROM 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.
- MOVE SPACES TO VALID-PROOF-REC.
- WRITE VALID-PROOF-REC.
- MOVE SPACES TO VALID-PROOF-REC.
- WRITE VALID-PROOF-REC.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-FTR1.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-FTR2.
- WRITE VALID-PROOF-REC FROM WS-PROOF-LIST-FTR3.
- 9200-EXIT.
- EXIT.
Add Comment
Please, Sign In to add comment