0010 IDENTIFICATION DIVISION.
0015 PROGRAM-ID. PAYROLL-FILE.
0020 ENVIRONMENT DIVISION.
0025 CONFIGURATION SECTION.
0030 SOURCE-COMPUTER. IBM-360.
0035 OBJECT-COMPUTER. IBM-360.
0040 INPUT-OUTPUT SECTION.
0045 FILE-CONTROL.
0050 SELECT PAYROLL-IN ASSIGN TO UT-S-SYSIN.
0055 SELECT PAY-OUT ASSIGN TO UT-S-SYSPRINT.
0060 DATA DIVISION.
0065 FILE SECTION.
0070 FD PAYROLL-IN LABEL RECORDS ARE STANDARD.
0075 01 EMPLOYEE-RECORD.
0076 05 NAME PIC X(16).
0080 05 PLAN PIC X.
0085 05 HOURS PIC 99V99.
0090 05 RATE PIC 99V99.
0100 FD PAY-OUT LABEL RECORDS ARE OMITTED.
0105 01 PRINT-LINE PIC X(132).
0260 01 DETAIL-LINE.
05 FILLER PIC X(13).
05 NAME-O PIC X(16).
05 FILLER PIC X(13).
05 GROSS-O PIC $$$,$$9.99.
05 FILLER PIC X(13).
05 FICA-O PIC $$$9.99.
05 FILLER PIC X(13).
05 INSUR-O PIC $$$9.99.
05 FILLER PIC X(13).
05 NET-O PIC $$$,$$9.99.
05 FILLER PIC X(17).
0330 01 TOTALS.
05 FILLER PIC X(41).
05 TOTAL-GRO PIC $$$$,$$9.99.
05 FILLER PIC X(11).
05 TOTAL-TAX PIC $$,$$9.99.
05 FILLER PIC X(11).
05 TOTAL-INS PIC $$,$$9.99.
05 FILLER PIC X(12).
05 TOTAL-NET PIC $$$$,$$9.99.
05 FILLER PIC X(17).
0110 WORKING-STORAGE SECTION.
0115 01 ARE-THERE-MORE-RECORDS PICTURE XXX VALUE 'YES'.
0170 01 HEADS-1.
05 FILLER PIC X(50).
05 FILLER PIC X(38) VALUE 'HARDWORKERS OF AMERICA AS OF MM/DD/YY'.
05 FILLER PIC X(35).
05 FILLER PIC X(7) VALUE 'PAGE Z9'.
05 FILLER PIC X(2).
0200 01 HEADS-2.
05 FILLER PIC X(13).
05 FILLER PIX X(4) VALUE 'NAME'.
05 FILLER PIC X(25).
05 FILLER PIC X(9) VALUE 'GROSS PAY'.
05 FILLER PIC X(15).
05 FILLER PIC X(5) VALUE 'TAXES'.
05 FILLER PIC X(13).
05 FILLER PIC X(9) VALUE 'INSURANCE'.
05 FILLER PIC X(14).
05 FILLER PIC X(7) VALUE 'NET PAY'.
05 FILLER PIC X(18).
0120 01 CALCULOS.
05 GROSS PIC 999999V99 VALUE 0.
05 FEDERALWITH PIC 999999V99 VALUE 0.
05 FICA PIC 9999V99 VALUE 0.
05 INSURANCE PIC 9999V99 VALUE 0.
05 NETPAY PIC 999999V99 VALUE 0.
05 TOTALGROSS PIC 9999999V99 VALUE 0.
05 TOTALFICA PIC 99999V99 VALUE 0.
05 TOTALINSUR PIC 99999V99 VALUE 0.
05 TOTALNET PIC 9999999V99 VALUE 0.
0380 PROCEDURE DIVISION.
0385 MAIN-MODULE.
0390 OPEN INPUT PAYROLL-IN OUTPUT PAY-OUT.
PERFORM WRITE-HEADS.
0400 READ PAYROLL-IN AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
0405 PERFORM WRITE-DETAIL UNTIL ARE-THERE-MORE-RECORDS = NO.
0410 PERFORM WRITE-TOTALS.
0415 CLOSE PAYROLL-IN PAY-OUT.
0420 STOP RUN.
0425 WRITE-HEADS.
WRITE PRINT-LINE AFTER 1.
MOVE HEADS-1 TO PRINT-LINE.
WRITE PRINT-LINE AFTER 1.
MOVE HEADS-2 TO PRINT-LINE.
WRITE PRINT-LINE AFTER 1.
MOVE SPACES TO PRINT-LINE.
WRITE PRINT-LINE.
0430 WRITE-DETAIL.
0435 IF HOURS > 40 THEN
COMPUTE GROSS = {HOURS * (RATE * 1.5)}.
0440 ELSE
COMPUTE GROSS = RATE * HOURS.
0445 END-IF.
0450 IF GROSS > 600 THEN
COMPUTE FEDERALWITH = GROSS * .25.
0455 ELSE
0460 IF GROSS > 450 THEN
COMPUTE FEDERALWITH = GROSS * .23.
0465 ELSE
COMPUTE FEDERALWITH = GROSS * .18.
0470 END-IF.
COMPUTE FICA = GROSS * .062.
0475 IF PLAN = 'A' THEN
COMPUTE INSURANCE = GROSS - 5.00.
0480 END-IF.
0485 IF PLAN = 'B' THEN
COMPUTE INSURANCE = GROSS - 8.00.
0490 END-IF.
0495 IF PLAN = 'C' THEN
COMPUTE INSURANCE = GROSS - 10.00.
0500 ELSE
INSURANCE = 0.
0505 END-IF.
COMPUTE NETPAY = GROSS - FEDERALWITH - INSURANCE - FICA.
MOVE NAME TO NAME-O.
MOVE GROSS TO GROSS-O.
MOVE FICA TO FICA-O.
MOVE INSURANCE TO INSUR-O.
MOVE NETPAY TO NET-O.
MOVE DETAIL-LINE TO PRINT-LINE.
WRITE PRINT-LINE AFTER 1.
READ PAYROLL-IN AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
0435 WRITE-TOTALS.
COMPUTE TOTALGROSS = TOTALGROSS + TOTAL-GRO.
COMPUTE TOTALFICA = TOTALFICA + TOTAL-TAX.
COMPUTE TOTALINSUR = TOTALINSUR + TOTAL-INS.
COMPUTE TOTALNET = TOTALNET + TOTAL-NET.
MOVE TOTALGROSS TO TOTAL-GRO.
MOVE TOTALFICA TO TOTAL-TAX.
MOVE TOTALINSUR TO TOTAL-INS.
MOVE TOTALNET TO TOTAL-NET.
MOVE TOTALS TO PRINT-LINE.
WRITE PRINT-LINE AFTER 2.