home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG045.ARK / P_R180.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  8KB  |  196 lines

  1.     REMARK    ************************************\
  2.         *   P/R180.BAS    PAYROLL JOURNAL  *\
  3.         *  3/14/79               11:30 AM  *\
  4.         ************************************
  5.  
  6. %INCLUDE CURSOR
  7.     RESTORE
  8.     DATA "YTD     ","QTD   ","CURRENT"
  9.  
  10.     DIM S(96),R1(2),R2(5),G2$(5),G3(5),R$(5)
  11.     GOTO 6000
  12.  
  13. %INCLUDE SUBS1
  14. %INCLUDE GENINFO
  15. %INCLUDE MSTRIN
  16.  
  17. 825    A1=110                                REMARK  ****    LINE PRINTER ROUTINE    ****
  18.     IF LINE.COUNT% < 55 THEN  RETURN                REMARK  IF SPACE REMAINS ON REPORT PAGE, RETURN
  19.     P=P+1
  20.     PRINT CHR$(12);
  21.     PRINT TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";        REMARK  PRINT COMPANY NAME AND REPORT DATE
  22.     X0=G3(1):GOSUB 680.5
  23.     PRINT 
  24.     PRINT TAB(37);"PAYROLL JOURNAL   ";
  25.     X0=G3(2):GOSUB 680.5                        REMARK  PRINT PERIOD START DATE
  26.     PRINT " - ";
  27.     X0=G3(3):GOSUB 680.5                        REMARK  PRINT PERIOD END DATE
  28.     PRINT TAB(A1);"PAGE";P
  29.     PRINT 
  30.     PRINT 
  31.     LINE.COUNT%=6                             REMARK  RESET LINE COUNTER FOR NEW REPORT PAGE
  32.     RETURN 
  33.  
  34. 4500    PRINT Z0$(I%);TAB(9);                        REMARK   PRINT "YTD", "QTD" OR "CURRENT" SUB-HEADING
  35.     A3%=24*I%                            REMARK  SET TOTALS POINTER
  36.     RETURN 
  37.  
  38. 5300    PRINT TAB(13);"REG HRS    REG PAY   O.T. HRS   O.T. PAY";    REMARK  PRINT HEADINGS FOR INCOME
  39.     PRINT "   P.W. HRS   P.W. PAY    H&W PAY    VAC HRS    VAC PAY";
  40.     PRINT "  OTHER PAY    NON-TAX"
  41.     LINE.COUNT%=LINE.COUNT%+1
  42.     RETURN 
  43.  
  44. 5310    PRINT TAB(13);"FED W/H    ST. W/H   F.I.C.A.     S.D.I.  OTHER ";
  45.     PRINT "DED  TOTAL DED    NET PAY  TOTAL PAY"
  46.     LINE.COUNT%=LINE.COUNT%+1
  47.     RETURN 
  48.  
  49. 6000    A$="VAC HOURS ######.##  MON HRS ######.##  MON PAY #######.##"    REMARK  SET UP PRINT MASKS
  50.     B$=" #######.##"
  51.     C$="######"
  52.     D$=" ####.####"
  53.     E$="EMPLOYEE TYPE  ##  FED-EX  ##  CHECK NO.    ######"
  54.     E$=E$+"    H&W RATE  ####.####"
  55.     F$="EMP. CLASS     ##  ST-EX   ##  CHECK DATE "
  56.     G$="    MON HOURS ####.####"
  57.     H$="INS. CLASS     ##  ADD-EX  ##  VAC HOURS ######.##"
  58.     H$=H$+"    MON PAY   ####.####"
  59.     OPEN "P/R0F110.DAT" RECL 1150 AS 1                REMARK  OPEN PAYROLL MASTER FILE
  60.     Y9=2
  61.     OPEN "G/I0F010.DAT" RECL 200 AS Y9
  62.     GOSUB 700                            REMARK  READ GENERAL INFORMATION FILE
  63. 6010    CONSOLE
  64.     PRINT CLEAR.SCREEN$;"P/R JOURNAL";                REMARK  DISPLAY PROGRAM I.D. AND ENTRY MASK
  65.     X1=256:GOSUB 210
  66.     PRINT "START EMPLOYEE NUMBER"
  67.     PRINT "END EMPLOYEE NUMBER"
  68.     PRINT "1. HEADING"
  69.     PRINT "2. CURRENT"
  70.     PRINT "3. QUARTERLY"
  71.     PRINT "4. YEARLY"
  72.     PRINT "5. COMPANY TOTALS"
  73. 6015    PRINT 
  74.     PRINT "FOR OPTIONS 1-5 --> 1=INCLUDE; 0=EXCLUDE"
  75.     DIM E(2,3),O%(6),A(19,3),A2(3),Z0$(3)                REMARK  INITIALIZE REPORT ARRAYS TO ZERO
  76. 6020    X1=279:X2=3:X3=0:X4=999:GOSUB 345                REMARK  ENTER START EMPLOYEE NUMBER FOR REPORT
  77.     IF X0=0 THEN\                            REMARK  OF START EMPLOYEE NUMBER WAS ZERO,
  78.     PRINT CLEAR.SCREEN$;"P/R JOURNAL LOADING MENU":\        REMARK  DISPLAY PROGRAM EXIT MESSAGE
  79.     CHAIN "P/R000"                            REMARK  AND LOAD THE MENU
  80.     E(1,1)=X0
  81.     X1=343:X2=3:X3=X0:X4=999:GOSUB 345                REMARK  ENTER ENDING EMPLOYEE NUMBER
  82.     E(2,1)=X0
  83.     FOR I%=1 TO 5
  84.     X1=343 + I% * 64
  85.     X2=1:X3=0:X4=1:GOSUB 345                    REMARK  SET REPORT PARAMETERS
  86.     O%(I%)=X0
  87.     NEXT I%
  88.     X2$="ENTRY CORRECT?":X2=1:X3=0:X4=1:GOSUB 665            REMARK  VERIFY ENTRY: '1'=O.K.; '0'=RETRY
  89.     IF E(2,1) > MSTR.RECORDS THEN E(2,1)=MSTR.RECORDS
  90.     IF E(1,1) > MSTR.RECORDS OR X0 <> 1 THEN GOTO 6020        REMARK  RE-ENTER IF REQUESTED OR IF \
  91.                                     REMARK  A BAD EMPLOYEE RANGE WAS ENTERED
  92.     RESTORE
  93.     FOR I%=1 TO 3
  94.     READ Z0$(I%)                            REMARK  READ DATA FROM STATEMENT 10
  95.     NEXT I%
  96. 6133    LPRINTER                            REMARK  SELECT PRINTER AS OUTPUT DEVICE
  97.     LINE.COUNT%=70:GOSUB 825                    REMARK  PRINT REPORT HEADINGS
  98.     B=O%(1)*3+2*(O%(2)+O%(3)+O%(4))+4*SGN(O%(2)+O%(3)+O%(4))+2    REMARK  SET PRINT OPTION VARIABLE
  99.     FOR R%=E(1,1) TO E(2,1)                        REMARK  PRINT FOR EMPLOYEE RANGE ENTERED
  100.     X0=R%:GOSUB 745                            REMARK  READ THE EMPLOYEE RECORD
  101.  
  102.     IF S(1)=0 THEN GOTO 6564                    REMARK  SKIP EMPLOYEE RECORD IF IT HAS BEEN DELETED
  103.  
  104. 6305    IF B=2 THEN  6560
  105.     IF S(83)=0 AND R2(1)=99 THEN GOTO 6563                REMARK  DO NOT PRINT INACTIVE EMPLOYEES
  106. 6310    GOSUB 825                            REMARK  CHECK FOR END OF REPORT PAGE
  107.     PRINT " EMP NO. ";
  108.     PRINT USING C$;S(1);                        REMARK  PRINT EMPLOEE NUMBER
  109.     PRINT " NAME: ";R$(1);TAB(49);"SS #  ";
  110.     X0=R1(1):GOSUB 760.5                        REMARK   ""   EMPLYEE NAME AND SOCIAL SECURITY NUMBER
  111.     IF O%(1)=0 THEN  6435
  112. 6375    PRINT "  STATUS   ";R3$;"  DATE/EMP   ";            REMARK   ""   EMPLOYEE STATUS AND DATE EMPLOYED
  113.     X0=S(2):GOSUB 680.5
  114.     PRINT "    PAY RATE ";
  115.     PRINT USING D$;S(8)                        REMARK   ""   PAY RATE
  116.     LINE.COUNT%=LINE.COUNT% + 1:GOSUB 825
  117.     PRINT TAB(16);" ADDR: ";R$(2);TAB(49);                REMARK   ""   ADDRESS
  118.     PRINT USING E$;R2(1),R2(2),S(5),S(9)                REMARK   ""   EMPLOYEE TYPE, FEDERAL EXEMPTIONS,\
  119.                                             LAST CHECK NUMBER AND H&W RATE
  120.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825                REMARK  CHECK FOR END OF REPORT PAGE
  121.     PRINT TAB(23);R$(3);TAB(49);                    REMARK   ""   EMPLOYEE ADDRESS LINE 2
  122.     PRINT USING F$;R2(5),R2(3);                    REMARK   ""   EMPLOYEE CLASS AND STATE EXEMPTIONS
  123.     X0=S(4):GOSUB 680.5                        REMARK   ""   LAST CHECK DATE
  124. 6420    PRINT USING G$;S(6)                        REMARK   ""   MONTHLY HOURS
  125.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  126.     PRINT TAB(23);R$(4);TAB(49);                    REMARK   ""   ADDRESS LINE 3
  127.     PRINT USING H$;S(3),R2(4),S(14),S(7)                REMARK   ""   INS. CLASS, ADDITIONAL EXEMPTIONS,\
  128.                                              ""   VACATION HOURS LEFT AND MONTHLY PAY
  129. 6435    PRINT                                 REMARK  PRINT CURRENT, Q-T-D OR Y-T-D EMPLOYEE DATA
  130.     LINE.COUNT%=LINE.COUNT%+2
  131.     GOSUB 825                            REMARK  CHECK FOR END OF REPORT PAGE
  132.     IF O%(2)+O%(3)+O%(4)=0 THEN  6560                REMARK  SKIP PRINTING IF NOT SPECIFIED
  133.     GOSUB 5300                            REMARK  PRINT HEADINGS FOR EMPLOYEE DATA
  134.     I1%=1
  135.     FOR I%=3 TO 1 STEP -1
  136.     I1%=I1%+1
  137.     IF O%(I1%)=0 THEN  6440                        REMARK  IF NOT SPECIFIED, SKIP PRINTING 
  138.     GOSUB 4500                            REMARK  PRINT APPROPRIATE SUB-HEADING
  139.     PRINT USING B$;S(A3%+1);S(A3%+2);S(A3%+3);\            REMARK  PRINT ITEMIZED PAY INFORMATION
  140.     S(A3%+4);S(A3%+5);S(A3%+6);S(A3%+7);\
  141.     S(A3%+8);S(A3%+9);S(A3%+10);S(A3%+12)
  142.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  143. 6440    NEXT I%
  144.     PRINT 
  145.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  146.     GOSUB 5310                            REMARK  PRINT DEDUCTION HEADING
  147.     I1%=1
  148.     FOR I%=3 TO 1 STEP -1
  149.     I1%=I1%+1
  150.     IF O%(I1%)=0 THEN  6445                        REMARK  IF NOT SPECIFIED, SKIP PRINTING
  151.     GOSUB 4500                            REMARK  PRINT APPROPRIATE SUB-HEADING
  152.     PRINT USING B$;S(A3%+13);S(A3%+14);S(A3%+15);\            REMARK  PRINT DEDUCTION DETAIL
  153.     S(A3%+16);S(A3%+17);S(A3%+18);S(A3%+11)-S(A3%+18);S(A3%+11)
  154.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  155. 6445    NEXT I%
  156.     PRINT 
  157. 6560    LINE.COUNT%=LINE.COUNT%+1:GOSUB 825                REMARK  ADD EMPLOYEE INFORMATION TO COMPANY TOTALS
  158. 6563    IF O%(5)+O%(6)=0 THEN  6564
  159.     FOR I%=1 TO 3
  160.     FOR J%=1 TO 18
  161.     A1%=I%*24+J%
  162.     A(J%,I%)=A(J%,I%)+S(A1%)                    REMARK  ADD EMPLOYEE DETAIL TO REPORT TOTAL
  163.     NEXT J%
  164.     NEXT I%
  165.     FOR I%=2 TO 3
  166.     A2(I%)=A2(I%)+S(I%+4)
  167.     NEXT I%
  168.     A2(1)=A2(1)+S(14)
  169.     GOTO 6564
  170. 6564    NEXT R%
  171. 6565    IF O%(5)=0 THEN 6010
  172. 6578    IF A(11,1)+A(18,1)+A(11,2)+A(18,2)+A(11,3)+A(18,3)=0 THEN 6010    REMARK  PRINT COMPANY TOTALS
  173.     G2$(2)=G2$(1)
  174.     G2$(1)="COMPANY TOTALS"
  175.     LINE.COUNT%=60
  176.     GOSUB 825
  177.     PRINT TAB(49);
  178.     PRINT USING A$;A2(1),A2(2),A2(3)                REMARK  TOTAL VACATION HOURS, M-T-D HOURS AND PAY
  179.     PRINT 
  180. 6600    GOSUB 5300                            REMARK  PRINT TOTAL PAY INFORMATION
  181.     FOR I%=3 TO 1 STEP -1
  182.     GOSUB 4500
  183.     PRINT USING B$;A(1,I%);A(2,I%);A(3,I%);A(4,I%);\
  184.     A(5,I%);A(6,I%);A(7,I%);A(8,I%);A(9,I%);A(10,I%);A(12,I%)    REMARK  PRINT CURRENT, Q-T-D AND Y-T-D TOTALS
  185.     NEXT I%
  186.     PRINT 
  187. 6635    GOSUB 5310                            REMARK  PRINT TOTAL DEDUCTION INFORMATION
  188.     FOR I%=3 TO 1 STEP -1
  189.     GOSUB 4500
  190.     PRINT USING B$;A(13,I%);A(14,I%);A(15,I%);\            REMARK  PRINT CURRENT, Q-T-D AND Y-T-D TOTALS
  191.     A(16,I%);A(17,I%);A(18,I%);A(11,I%)-A(18,I%);A(11,I%)
  192.     NEXT I%
  193.     PRINT 
  194.     G2$(1)=G2$(2)
  195.     GOTO 6010                            REMARK  BRANCH PREPARE FOR ANOTHER RUN
  196.