********************************************************

     **

     ** PROGRAM NAME: JONAS3.RPG

     ** AUTHOR: JONAS WIK

     ** DESCRIPTION: THIS PROGRAM READS A RECORD OF EMPLOYEES

     **       AND COMPUTES THEIR SALARY BY COMPUTING THE BASE

     **       SALARY AND THE COMMISSION SALARY AND ADDS THEM

     **       TOGETHER. IT CREATES A REPORT THAT  CONTAINS THE

     **       SALESPERSON NUMBER, THE NAME, THE MONTHLY SALES

     **       THE SALES RETURN, THE YEARS EMPLOYED, THE BASE

     **       SALARY, THE COMMISION AND THE TOTAL SALARY DUE.

     **

     ********************************************************

     **

     ** INDICATOR SUMMARY:

     **       01 RECORD IDENTIFYING INDICATOR FOR MCOM2P

     **       1P FIRST PAGE INDICATOR FOR HEADINGS ON REPORT

     **       OF OVERFLOW INDICATOR FOR OUTPUT FILE QSYSPRT

     **       10 USED FOR ERROR MESSAGES

     **       20 USED TO INITIALIZE COMMISSION TO ZERO.

     **       30 USED WHEN YRSEMP IS GREATER THAN OR EQUAL TO 2

     **       35 USED WHEN YRSEMP IS LESS THAN 2

     **       40 USED WHEN COMSLS IS GREATER THAN 30000

     **       45 USED WHEN COMSLS IS LESS THAN OR EQUAL TO 30000

     **       50 USED WHEN COMSLS IS GREATER THAN 25000

     **       55 USED WHEN COMSLS IS LESS THAN OR EQUAL TO 25000

     **       60 USED WHEN YRSEMP IS GRATER THAN OR EQUAL TO 2

     **       65 USED WHEN YRSEMP IS LESS THAN 2

     **       90 INDICATOR FOR HEADINGS

     **

     ********************************************************

     FMCOM2P  IP  F      80            DISK

     FQSYSPRT O   F     105     OF     PRINTER

     ********************************************************

     **

     ** RECORD DESCRIPTION FOR INPUT FILE MCOM2P

     **      FIELD DESCR.      DATA TYPE     FIELD NAME

     **   SALESPERSON NUMBER    5 CHARS        SLSNUM

     **   SALESPERSON NAME     25 CHARS        SPNAME

     **    YEARS EMPLOYED       2 DIG(0 DEC)   YRSEMP

     **    MONTHLY SALES        8 DIG(2 DEC)   MONSLS

     **     SALES RETURN        7 DIG(2 DEC)   SLSRET

     **

     ********************************************************

     IMCOM2P  NS  01

     I                                        1   5 SLSNUM

     I                                        6  30 SPNAME

     I                                       31  320YRSEMP

     I                                       33  402MONSLS

     I                                       41  472SLSRET

     I                                       48  80 FILLER

     ********************************************************

     **

     ** DATA STRUCTURE

     **       BASSAL = BASE SALARY

     **       COMMIS = COMMISSION

     **       SALARY = TOTAL SALARY

     **       COMSLS = COMMISSION SALES

     **       NETSLS = NET SALES

     **       TEMSLS = TEMPORARY SALES(VAR. USED FOR CALCULATIONS)

     **

     ********************************************************

     I#WORK       DS

     I                                        1   40BASSAL

     I                                        5  122COMMIS

     I                                       13  212SALARY

     I                                       22  292COMSLS

     I                                       30  372NETSLS

     I                                       38  462TEMSLS

     ********************************************************

     **

     **       #TOTAL COMPUTES TOTAL SALES, TOTAL SALES RETURN

     **             TOTAL COMMISSION AND TOTAL AMMOUNT DUE.

     **

     ********************************************************

     I#TOTAL      DS

     I                                       46  562TOTSLS

     I                                       57  662TOTRET

     I                                       67  740TOTSAL

     I                                       75  842TOTCOM

     I                                       85  942TOTDUE

     ********************************************************

     C                     SETOF                     253035

     C                     SETOF                     404550

     C                     SETOF                     556065

     C   90                SETOF                     OF1020

     C   OF                SETON                     90

     ******************************************************

     **

     ** CALCULATIONS ARE DONE HERE BY CALLING SUBROUTINES.

     **

     ********************************************************

     C                     EXSR COMMSR

     C                     EXSR BASESR

     C                     EXSR SALSR

     ********************************************************

     **

     ** COMMSR= SUBROUTINE THAT COMPUTES THE COMMISSION

     **       NET SALES       = MONTHLY SALES - SALES RETURN

     **       COMMISSION SALES= NET SALES - $2000

     **       IF YOU HAVE BEEN EMPLOYED 2 OR MORE YEARS AND

     **       YOUR COMMISSION IS 20% ON EVERYTHING LESS THAN

     **       $30000 AND 25% ON EVERYTHING OVER $30000.

     **       IF YOU HAVE BEEN EMPLOYED LESS THAN TWO YEARS

     **       YOUR COMMISSION IS 12% ON EVERYTHING LESS THAN

     **       $25000 AND 14% ON EVERYTHING ABOVE $25000

     **

     ********************************************************

     CSR         COMMSR    BEGSR

     C           MONSLS    SUB  SLSRET    NETSLS

     C           NETSLS    COMP 0                    151020

     C   15      NETSLS    SUB  2000      COMSLS

     C   15      COMSLS    COMP 0                      2020

     C   20                Z-ADD0         COMMIS

     C           YRSEMP    COMP 2                    303530

     C   30N20   COMSLS    COMP 30000                404545

     C   45N20   COMSLS    MULT .2        COMMIS    H

     C   40N20   COMSLS    SUB  30000     TEMSLS

     C   40N20   TEMSLS    MULT .25       TEMSLS    H

     C   40N20   30000     MULT .2        COMMIS    H

     C   40N20   TEMSLS    ADD  COMMIS    COMMIS

     C   35N20   COMSLS    COMP 25000                505555

     C   55N20   COMSLS    MULT .12       COMMIS    H

     C   50N20   COMSLS    SUB  25000     TEMSLS

     C   50N20   TEMSLS    MULT .14       TEMSLS    H

     C   50N20   25000     MULT .12       COMMIS    H

     C   50N20   COMMIS    ADD  TEMSLS    COMMIS

     C  N10                ADD  COMMIS    TOTCOM

     C  N10                ADD  MONSLS    TOTSLS

     C  N10                ADD  SLSRET    TOTRET

     C                     ENDSR

     ********************************************************

     **

     ** BASESR= SUBROUTINE THAT ADDS THE BASE SALARY TO BASSAL

     **         IF YOU HAVE BEEN EMPLOYED FOR 2 OR MORE YEARS

     **         YOUR BASSAL IS $1000 IF YOU HAVE BEEN EMPLOYED

     **         1 TO TWO YEARS YOUR BASSAL IS $600 FOR THE REST

     **         IT IS $0.

     **

     ********************************************************

     CSR         BASESR    BEGSR

     C           YRSEMP    COMP 2                    606560

     C   60                Z-ADD1000      BASSAL

     C   65                Z-ADD600       BASSAL

     C  N10                ADD  BASSAL    TOTSAL

     C                     ENDSR

     ********************************************************

     **

     ** SALSR= SUBROUTINE THAT ADDS THE COMMISSION TO THE BASE

     **        SALARY.

     **

     ********************************************************

     CSR         SALSR     BEGSR

     C           COMMIS    ADD  BASSAL    SALARY

     C  N10                ADD  SALARY    TOTDUE

     C                     ENDSR

     ********************************************************

     ** OUTPUT STARTS HERE

     ********************************************************

     OQSYSPRT H  1     1P

     O       OR        OF

     O                                    5 'DATE:'

     O                         UDATE Y   16

     O                                   48 'R I C H L A N D'

     O                                   64 'N O V E L T Y'

     O                                   80 'C O M P A N Y'

     O                                   99 'PAGE'

     O                         PAGE  Z  103

     O        H  1     1P

     O       OR        OF

     O                                   17 'AUTHOR: JONAS WIK'

     O        H  105   1P

     O       OR        OF

     O                                   11 'SALESPERSON'

     O                                   46 'YEARS'

     O                                   58 'MONTHLY'

     O                                   68 'SALES'

     O                                   78 'BASE'

     O        H  2     1P

     O       OR        OF

     O                                    9 'NUMBER'

     O                                   29 'SALESPERSON NAME'

     O                                   48 'EMPLOYED'

     O                                   57 'SALES'

     O                                   69 'RETURN'

     O                                   79 'SALARY'

     O                                   91 'COMMISSION'

     O                                  101 'SALARY'

     ********************************************************

     **

     ** DETAIL LINES ARE PRINTED HERE AND IF THE INDICATOR 10 HAS

     ** BEEN TURNED ON THE SLSNUM AND SPNAME ARE PRINTED TOGETHER

     ** WITH AN ERROR MESSAGE.

     **

     ********************************************************

     O        D  2     01

     O                         SLSNUM     8

     O                         SPNAME    38

     O                N10      YRSEMP    45

     O                N10                49 '$'

     O                N10      MONSLSJ   60

     O                N10                61 '$'

     O                N10      SLSRETJ   71

     O                N10                73 '$'

     O                N10      BASSALJ   79

     O                N10                81 '$'

     O                N10      COMMISJ   93

     O                N10                95 '$'

     O                N10      SALARYJ  105

     O                 10                68 'ERROR IN CALCULATIONS'

     O        T  2     LR

     O                                   20 'TOTAL SALES:'

     O                                   22 '$'

     O                         TOTSLSJ   37

     O        T  2     LR

     O                                   20 'TOTAL RETURNS:'

     O                                   22 '$'

     O                         TOTRETJ   37

     O        T  2     LR

     O                                   20 'TOTAL SALARY:'

     O                                   22 '$'

     O                         TOTSALJ   37

     O        T  2     LR

     O                                   20 'TOTAL COMMISSION:'

     O                                   22 '$'

     O                         TOTCOMJ   37

     O        T  2     LR

     O                                   20 'TOTAL AMT DUE:'

     O                                   22 '$'

     O                         TOTDUEJ   37

     ********************************************************

     **

     **             T H E   E N D

     **

     ********************************************************