SHARE
TWEET

Untitled

a guest Sep 11th, 2018 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  IDENTIFICATION DIVISION.
  2.  PROGRAM-ID. PTCH01JN.
  3.  AUTHOR. Jan Noel Calayag.
  4.  
  5.  ENVIRONMENT DIVISION.
  6.  INPUT-OUTPUT SECTION.
  7.  FILE-CONTROL.
  8.  
  9.        SELECT EMPLOYEE-FILE ASSIGN TO INPUT01
  10.          ORGANIZATION IS SEQUENTIAL.
  11.        SELECT PRINT-FILE ASSIGN TO OUTPUT01
  12.          ORGANIZATION IS SEQUENTIAL.
  13.  
  14.  DATA DIVISION.
  15.  FILE SECTION.
  16.  FD EMPLOYEE-FILE
  17.        RECORD CONTAINS 105 CHARACTERS
  18.        LABEL RECORDS ARE STANDARD
  19.        DATA RECORD IS EMPLOYEE-REC.
  20.  01 EMPLOYEE-REC                PIC X(105).
  21.  
  22.  FD PRINT-FILE
  23.        RECORD CONTAINS 132 CHARACTERS
  24.        LABEL RECORDS ARE STANDARD
  25.        DATA RECORD IS PRINT-REC.
  26.  01 PRINT-REC                   PIC X(132).
  27.  
  28.  WORKING-STORAGE SECTION.
  29.  01 WS-INPUT.
  30.     05 WS-EMPLOYEE-INFO.
  31.        10 INPUT-TIN-NUMBER     PIC 9(09).
  32.        10 INPUT-NAME           PIC X(35).
  33.        10 INPUT-EXMPT-STAT     PIC X.
  34.           88 ES-SINGLE         VALUE 'S'.
  35.           88 ES-HEAD           VALUE 'H'.
  36.           88 ES-MARRIED        VALUE 'M'.
  37.        10 INPUT-QTY-DPNDNT     PIC 9(02).
  38.        10 INPUT-SP-CLAIM       PIC X.
  39.           88 ES-CLAIMED        VALUE 'Y'.
  40.        10 INPUT-TP-GROSS       PIC 9(07)V99.
  41.        10 INPUT-SP-GROSS       PIC 9(07)V99.
  42.        10 INPUT-TP-OTHER1      PIC 9(07)V99.
  43.        10 INPUT-SP-OTHER1      PIC 9(07)V99.
  44.        10 INPUT-TP-OTHER2      PIC 9(07)V99.
  45.        10 INPUT-SP-OTHER2      PIC 9(07)V99.
  46.  
  47.  01 WS-COMPUTATION.
  48.     05 WS-GROSS-TAX.
  49.        10 COMP-TP-GRS-TAX-INC  PIC 9(07)V99 VALUE ZERO.
  50.        10 COMP-SP-GRS-TAX-INC  PIC 9(07)V99 VALUE ZERO.
  51.        10 COMP-TL-GRS-TAX-INC  PIC 9(07)V99 VALUE ZERO.
  52.     05 WS-TAX-EXEMPTION.  
  53.        10 COMP-TP-EXEMPTION    PIC 9(07)V99 VALUE ZERO.
  54.        10 COMP-SP-EXEMPTION    PIC 9(07)V99 VALUE ZERO.
  55.     05 WS-NET-TAX.
  56.        10 COMP-TP-NET-TAX-INC  PIC 9(07)V99 VALUE ZERO.
  57.        10 COMP-SP-NET-TAX-INC  PIC 9(07)V99 VALUE ZERO.
  58.     05 WS-TAX-DUE.
  59.        10 COMP-TP-TAX-DUE      PIC 9(07)V99 VALUE ZERO.
  60.        10 COMP-SP-TAX-DUE      PIC 9(07)V99 VALUE ZERO.
  61.        10 COMP-TL-TAX-DUE      PIC 9(07)V99 VALUE ZERO.
  62.     05 WS-TAKE-HOME-PAY.  
  63.        10 COMP-TL-TKHM-PAY     PIC 9(07)V99 VALUE ZERO.
  64.     05 WS-TOTALS.
  65.        10 COMP-GD-GRS-TAX-INC  PIC 9(08)V99 VALUE ZERO.
  66.        10 COMP-GD-TAX-DUE      PIC 9(08)V99 VALUE ZERO.
  67.        10 COMP-GD-TKHM-PAY     PIC 9(08)V99 VALUE ZERO.
  68.        10 COMP-TL-NUM-EMP      PIC 9(05)    VALUE ZERO.  
  69.    
  70.  01 WS-SWITCHES-FLAGS.
  71.     05 WS-FILE-STAT            PIC X        VALUE 'N'.
  72.        88 WS-NOT-EOF           VALUE 'N'.
  73.        88 WS-EOF               VALUE 'Y'.
  74.     05 WS-PAGE-HEADER          PIC X        VALUE 'N'.
  75.        88 WS-HDR-PRINTED       VALUE 'Y'.                                      
  76.        88 WS-HDR-NOT-PRINTED   VALUE 'Y'.            
  77.      
  78.  PROCEDURE DIVISION.
  79.  
  80. ***********************************************************************
  81. *        0000-MAIN: MAIN PROGRAM                                      *
  82. *        Procedures used:                                             *
  83. *           1000-INITIALIZE                                           *
  84. *           2000-PROCESS                                              *
  85. *           3000-FINAL                                                *
  86. ***********************************************************************
  87.  0000-MAIN-PROC.
  88.       PERFORM 1000-INITIALIZE
  89.          THRU 1000-EXIT.
  90.       PERFORM 2000-PROCESS
  91.          THRU 2000-EXIT
  92.          UNTIL WS-EOF.
  93.       PERFORM 4000-FINAL
  94.          THRU 4000-EXIT.
  95.       STOP RUN.
  96.  0000-EXIT.
  97.       EXIT.
  98.  
  99. ***********************************************************************
  100. *        1000-INITIALIZE: OPENING REQUIRED FILES                      *
  101. ***********************************************************************
  102.  1000-INITIALIZE.
  103.       OPEN INPUT EMPLOYEE-FILE.
  104.       OPEN INPUT PRINT-FILE.
  105.  1000-EXIT.  
  106.       EXIT.
  107.    
  108. ***********************************************************************
  109. *        4000-FINAL: CLOSING FILES                                    *
  110. ***********************************************************************
  111.  4000-FINAL.
  112.       CLOSE EMPLOYEE-FILE.
  113.       CLOSE PRINT-FILE.
  114.  4000-EXIT.  
  115.       EXIT.
  116.    
  117. ***********************************************************************
  118. *        2000-PROCESS: PROGRAM PROCESS                                *
  119. ***********************************************************************
  120.  2000-PROCESS.
  121.       READ EMPLOYEE-FILE
  122.          AT END
  123.             SET WS-EOF TO TRUE
  124.          NOT AT END
  125.             PERFORM 2300-CALC-GROSS THRU 2300-EXIT
  126.             PERFORM 2400-CALC-EXMPT THRU 2400-EXIT
  127.             PERFORM 2500-CALC-NET   THRU 2500-EXIT
  128. *            PERFORM 2600-CALC-TXDUE THRU 2600-EXIT
  129. *            PERFORM 2700-CALC-THPAY THRU 2700-EXIT
  130. *            PERFORM 2800-CALC-TOTAL THRU 2800-EXIT
  131. *            PERFORM 3000-PRINT-REC  THRU 3000-EXIT
  132.       END-READ.
  133.       PERFORM 3200-PRINT-REC  THRU 3200-EXIT
  134.  2000-EXIT.  
  135.       EXIT.
  136.      
  137. ***********************************************************************
  138. *        2300-CALC-GROSS: CALCULATE GROSS TAXABLE INCOME TOTALS       *
  139. ***********************************************************************
  140.  2300-CALC-GROSS.
  141.       ADD INPUT-TP-OTHER1, INPUT-TP-OTHER2 TO INPUT-TP-GROSS
  142.          GIVING COMP-TP-GRS-TAX-INC.
  143.          
  144.       IF ES-MARRIED THEN
  145.          ADD INPUT-SP-OTHER1, INPUT-SP-OTHER2 TO INPUT-SP-GROSS
  146.             GIVING COMP-SP-GRS-TAX-INC
  147.       END-IF.
  148.  
  149.       ADD COMP-TP-GRS-TAX-INC TO COMP-SP-GRS-TAX-INC
  150.          GIVING COMP-TL-GRS-TAX-INC.
  151.  2300-EXIT.  
  152.       EXIT.
  153.  
  154. ***********************************************************************
  155. *        2400-CALC-EXMPT: CALCULATE TAX EXEMPTIONS                    *
  156. ***********************************************************************
  157.  2400-CALC-EXMPT.
  158.       EVALUATE TRUE
  159.          WHEN ES-SINGLE
  160.             ADD 20000 TO COMP-TP-EXEMPTION
  161.             PERFORM 2410-CALC-EXMPT-SH
  162.          WHEN ES-HEAD
  163.             ADD 25000 TO COMP-TP-EXEMPTION
  164.             PERFORM 2410-CALC-EXMPT-SH
  165.          WHEN ES-MARRIED
  166.             ADD 32000 TO COMP-TP-EXEMPTION
  167.             PERFORM 2420-CALC-EXMPT-M
  168.       END-EVALUATE.
  169.  2400-EXIT.  
  170.       EXIT.      
  171.  
  172.  
  173. ***********************************************************************
  174. *        2410-CALC-EXMPT-SH: CALCULATE TAX EXEMPTIONS (SINGLE/HEAD)   *
  175. ***********************************************************************
  176.  2410-CALC-EXMPT-SH.
  177.       IF ES-CLAIMED THEN
  178.          IF INPUT-QTY-DPNDNT < 4 THEN
  179.             COMPUTE COMP-SP-EXEMPTION = COMP-SP-EXEMPTION +
  180.                                         (INPUT-QTY-DPNDNT * 8000)
  181.          ELSE
  182.             COMPUTE COMP-SP-EXEMPTION = COMP-SP-EXEMPTION +
  183.                                         (4 * 8000)
  184.          END-IF
  185.       ELSE
  186.          IF INPUT-QTY-DPNDNT < 4 THEN
  187.             COMPUTE COMP-TP-EXEMPTION = COMP-TP-EXEMPTION +
  188.                                         (INPUT-QTY-DPNDNT * 8000)
  189.          ELSE
  190.             COMPUTE COMP-TP-EXEMPTION = COMP-TP-EXEMPTION +
  191.                                         (4 * 8000)
  192.          END-IF
  193.       END-IF.
  194.  2410-EXIT.  
  195.       EXIT.      
  196.  
  197. ***********************************************************************
  198. *        2420-CALC-EXMPT-M: CALCULATE TAX EXEMPTIONS (MARRIED)        *
  199. ***********************************************************************
  200.  2420-CALC-EXMPT-M.
  201.       IF NOT ES-CLAIMED THEN
  202.          IF INPUT-QTY-DPNDNT < 4 THEN
  203.             COMPUTE COMP-TP-EXEMPTION = COMP-TP-EXEMPTION +
  204.                                         (INPUT-QTY-DPNDNT * 8000)
  205.          ELSE
  206.             COMPUTE COMP-TP-EXEMPTION = COMP-TP-EXEMPTION +
  207.                                         (4 * 8000)
  208.          END-IF
  209.       END-IF.
  210.  2420-EXIT.  
  211.       EXIT.      
  212.      
  213. ***********************************************************************
  214. *        2500-CALC-NET: CALCULATE NET TAXABLE INCOME TOTALS           *
  215. ***********************************************************************
  216.  2500-CALC-NET.
  217.       SUBTRACT COMP-TP-EXCEPTION FROM COMP-TL-GRS-TAX-INC
  218.          GIVING COMP-TP-NET-TAX-INC.
  219.       IF ES-MARRIED THEN
  220.          SUBTRACT COMP-SP-EXCEPTION FROM COMP-TL-GRS-TAX-INC
  221.             GIVING COMP-SP-NET-TAX-INC
  222.       END-IF.
  223.  2500-EXIT.  
  224.       EXIT.
  225.      
  226. ***********************************************************************
  227. *        2500-CALC-NET: CALCULATE TAX DUE                             *
  228. ***********************************************************************
  229.  2500-CALC-NET.
  230.       EVALUATE TRUE
  231.          WHEN COMP-TP-NET-TAX-INC < 10000
  232.          
  233.          WHEN COMP-TP-NET-TAX-INC <
  234.  2500-EXIT.  
  235.       EXIT.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top