H*------------------------------------------------------------------- H* Task Description: H* H* Given: Payroll transaction file containing hourly and salary data. H* Records to be processed contain an 'H' in position 1. H* Bypass all other records. H* H* For salaried ('S' in 10), Gross = rate. H* For hourly ('H' in 10), Gross = rate * hours + H* time and a half for any hours over 80 H* H* Compute and store gross in copy of input transaction (18-25). H* H* H*------------------------------------------------------------------- H F* SAMPLE PDL PROGRAM FCOPYIN IP F 80 DISK FCOPYO O F 80 DISK ICOPYIN NS 01 1 CH I OR 02 +A* DD CRECRD 1 80 .Complete record field +A* DD CRECID 1 1 .Record ID - H or X +A* DD CEMPL 2 5 0 .Employee number +A* DD CHOUR 6 9 1 .Hours XXX.X +A* DD CSTAT 10 10 .Status S=Salaried, H=Hourly +A* DD CRATE 11 17 2 .Hourly rate or salary (see status) +A* DD CGROSS 18 25 2 .Gross pay - output value +A* DD CPACK 26 30 2 P .Sample of packed field definition I*----------- END OF DATA SPECIFICATIONS ----------------------- +C* SELECT CASE RPG .Choose by indicator +C* CASE 01 .Valid input record +C* SELECT CASE CSTAT EQ .Choose by field value +C* CASE 'H' .Hourly +C* IF CHOUR GT 80 .Test for overtime +C* CHOUR SUB 80 = WOVRTM 7.1 +C* CRATE MULT 0.5 = WRATE 7.2H +C* MULT WOVRTM BY WRATE = WOVRPY 7.2H +C* ELSE Z-ADD 0 TO WOVRPY +C* ENDIF +C* MULT CHOUR BY CRATE = CGROSS +C* ADD WOVRPY TO CGROSS +C* CASE 'S' .Salaried +C* Z-ADD CRATE TO CGROSS +C* CASE DEFAULT .Error +C* SETON H1 +C* ENDSEL +C* CASE 02 .Deleted record +C* SETON H2 +C* ENDSEL OCOPYO D 01 0037+A* DD CRECRD 1 80 .COMPLETE RECORD FIELD 0038+A* DD CGROSS 18 25 2 .GROSS PAY - OUTPUT VALUE O* END OF SOURCE