****************************** 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