Monday, 23 May 2011

SALARY CALCULATION PGM IN COBOL


****************************** SALARY *****************************     00001024
//MAPL737 JOB TIME=(,2),NOTIFY=&SYSUID,CLASS=M                          00010023
//  JCLLIB ORDER=ZOS.PROCLIB                                            00020023
//STEP1    EXEC PROC=IGYWCLG                                            00030023
//COBOL.SYSIN DD *                                                      00040023
       IDENTIFICATION DIVISION.                                         00050001
       PROGRAM-ID SAKTHI.                                               00060001
       ENVIRONMENT DIVISION.                                            00070001
       INPUT-OUTPUT SECTION.                                            00080001
       FILE-CONTROL.                                                    00090001
           SELECT KSDS ASSIGN TO DD2                                    00100001
               ORGANIZATION INDEXED                                     00110001
               ACCESS SEQUENTIAL                                        00120002
               RECORD KEY ENO                                           00130001
               FILE STATUS FS.                                          00140001
           SELECT SAL ASSIGN TO DD1                                     00191002
               ORGANIZATION INDEXED                                     00191114
               ACCESS SEQUENTIAL                                        00191314
               RECORD KEY ENO2                                          00191406
               FILE STATUS FS1.                                         00192003
           SELECT ATT ASSIGN TO DD3                                     00193020
               ORGANIZATION INDEXED                                     00194020
               ACCESS SEQUENTIAL                                        00195020
               RECORD KEY ENO1                                          00196020
               FILE STATUS FS2.                                         00197020
       DATA DIVISION.                                                   00200001
       FILE SECTION.                                                    00210001
       FD KSDS.                                                         00220001
       01 EMP-REC.                                                      00230001
           02 ENO PIC X(4).                                             00240001
           02 FILLER PIC X.                                             00250001
           02 NAME PIC X(10).                                           00260001
           02 FILLER PIC X.                                             00270001
           02 DESIGN PIC X(3).                                          00280001
           02 FILLER PIC X.                                             00290001
           02 JD.                                                       00300001
               03 YYYY PIC 9(4).                                        00310001
               03 MM PIC 9(2).                                          00320001
               03 DD PIC 9(2).                                          00330001
           02 FILLER PIC X.                                             00340001
           02 BASIC PIC 9(5).                                           00350001
           02 FILLER PIC X.                                             00360001
           02 INCR-D.                                                   00370001
               03 YYYY PIC 9(4).                                        00380001
               03 MM PIC 9(2).                                          00390001
               03 DD PIC 9(2).                                          00400001
           02 FILLER PIC X.                                             00410001
           02 INCR-AMT PIC 9(3).                                        00420001
           02 FILLER PIC X.                                             00430001
           02 SCALE-LMT PIC 9(5).                                       00440001
           02 FILLER PIC X.                                             00450001
           02 BANK-NUM PIC X(4).                                        00460001
           02 FILLER PIC X.                                             00470001
           02 DEPT PIC X(3).                                            00480001
           02 FILLER PIC X.                                             00490001
           02 GRADE PIC X(2).                                           00500001
           02 FILLER PIC X(15).                                         00510001
       FD ATT.                                                          00520021
       01 ATT-REC.                                                      00530021
           02 ENO1 PIC X(4).                                            00540021
           02 FILLER PIC X.                                             00550021
           02 BASIC1 PIC 9(5).                                          00560021
           02 FILLER PIC X.                                             00570021
           02 YM.                                                       00580021
               03 YYYY PIC 9(4).                                        00590021
               03 MM PIC 9(2).                                          00600021
           02 FILLER PIC X.                                             00610021
           02 DP PIC 9(2).                                              00620021
           02 FILLER PIC X.                                             00630021
           02 DH PIC 9(2).                                              00640021
           02 FILLER PIC X.                                             00650021
           02 DPL PIC 9(2).                                             00660021
           02 FILLER PIC X.                                             00670021
           02 DWP PIC 9(2).                                             00680021
           02 FILLER PIC X.                                             00690021
           02 OVER-TIME PIC 9(2).                                       00690121
           02 FILLER PIC X(48).                                         00690221
       FD SAL.                                                          00691002
       01 SAL-REC.                                                      00692003
           02 ENO2 PIC 9999.                                            00692107
           02 FILLER PIC X.                                             00692206
           02 DA PIC 9(5).                                              00693002
           02 FILLER PIC X.                                             00694002
           02 HRA PIC 9(5).                                             00695002
           02 FILLER PIC X.                                             00696002
           02 CA PIC 9(5).                                              00697002
           02 FILLER PIC X.                                             00698002
           02 PF1 PIC 9(5).                                             00699003
           02 FILLER PIC X.                                             00699102
           02 TAX PIC 9(5).                                             00699202
           02 FILLER PIC X.                                             00699302
           02 TE PIC 9(5).                                              00699402
           02 FILLER PIC X.                                             00699502
           02 TD PIC 9(5).                                              00699602
           02 FILLER PIC X.                                             00699702
           02 NET PIC 9(5).                                             00699802
           02 FILLER PIC X(28).                                         00699920
       WORKING-STORAGE SECTION.                                         00700001
       77 FS PIC 99 VALUE ZERO.                                         00710001
       77 FS1 PIC 99 VALUE ZERO.                                        00720001
       77 FS2 PIC 99 VALUE ZERO.                                        00721021
       77 Y PIC 9 VALUE ZERO.                                           00730002
       PROCEDURE DIVISION.                                              00750021
       I-SEC.                                                           00760001
           OPEN INPUT KSDS.                                             00780014
           OPEN I-O SAL.                                                00781017
           OPEN INPUT ATT.                                              00782021
           IF FS1 NOT = '00' DISPLAY 'OPEN ERROR..(SAL)' FS1            00790008
           GO TO CLOSE-SEC                                              00791008
           ELSE                                                         00792008
           IF FS NOT = '00' DISPLAY 'OPENERROR(KSDS)' FS FS2            00800021
           GO TO CLOSE-SEC                                              00800108
           ELSE GO TO READ-SEC.                                         00801008
           END-IF.                                                      00802008
       READ-SEC.                                                        00810001
           READ KSDS AT END GO TO CLOSE-SEC.                            00820002
           MOVE ENO TO ENO2.                                            00820108
           READ SAL.                                                    00820218
           MOVE ENO TO ENO1.                                            00820321
           READ ATT.                                                    00820421
           IF GRADE = '01' OR '10' OR '20'                              00821002
               COMPUTE DA = BASIC1 * ( 0.60 )                           00822121
               COMPUTE HRA = BASIC1 * ( 0.25 )                          00822221
               DISPLAY 'BASIC' BASIC1 'ENO' ENO 'DA' DA 'HRA' HRA       00822321
               MOVE 300 TO CA.                                          00822515
           IF GRADE = '30' OR '40'                                      00822602
               COMPUTE DA = BASIC1 * ( 0.70 )                           00822721
               COMPUTE HRA = BASIC1 * ( 0.30 )                          00822821
               DISPLAY 'BASIC' BASIC1 'ENO' ENO 'DA' DA 'HRA' HRA       00822921
               MOVE 700 TO CA.                                          00823015
           IF GRADE = '50'                                              00823102
               MOVE ZERO TO DA                                          00823316
               MOVE 10000 TO HRA                                        00823416
               DISPLAY 'BASIC' BASIC1 'ENO' ENO 'DA' DA 'HRA' HRA       00823521
               MOVE 2000 TO CA.                                         00823715
           COMPUTE PF1 = ( BASIC1 + DA ) * ( 0.1 ).                     00823821
           COMPUTE TAX = ( BASIC1 + DA - 5000 ) * ( 0.15 ).             00823921
           COMPUTE TE = BASIC1 + DA + HRA + CA.                         00824021
           COMPUTE TD = PF1 + TAX.                                      00824103
           COMPUTE NET = TE - TD.                                       00824202
           MOVE NET TO Y.                                               00824302
           IF ( Y NOT = '0' )                                           00824402
           COMPUTE NET = NET + ( Y + ( 10 - Y ) ).                      00824502
           REWRITE SAL-REC.                                             00824717
           GO TO READ-SEC.                                              00824802
       CLOSE-SEC.                                                       00880001
           CLOSE KSDS.                                                  00890001
           CLOSE SAL.                                                   00891010
           STOP RUN.                                                    00900001
//GO.DD2 DD DSN=MAPL737.EMP.KSDS,DISP=SHR                               00910023
//GO.DD1 DD DSN=MAPL737.EMP.SALARY,DISP=SHR                             00920023
//GO.DD3 DD DSN=MAPL737.EMP.ATT,DISP=SHR                                00930023
//GO.SYSIN DD *                                                         00940023
/*                                                                      00950023
//                                                                      00960023
********************************************************************    00970024

No comments:

Post a Comment