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_R150.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  2KB  |  57 lines

  1.     REMARK    *********************************************\
  2.         *  P/R150.BAS   PAYROLL DEDUCTION REGISTER  *\
  3.         *     3/13/79                 12 NOON       *\
  4.         *********************************************
  5.  
  6.     DIM G2$(5),G3(5)
  7. %INCLUDE CURSOR
  8.     GOTO 6000
  9. %INCLUDE SUBS1
  10. %INCLUDE GENINFO
  11. 825    A1=59                                REMARK  ****    LINE PRINTER ROUTINE    ****
  12.     IF LINE.COUNT% < 55  THEN  RETURN                REMARK  IF SPACE REMAINS ON REPORT PAGE, RETURN
  13.     P=P+1                                REMARK  INCREMENT PAGE COUNT
  14.     PRINT CHR$(12);
  15.     PRINT
  16.     PRINT TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";        REMARK  PRINT COMPANY NAME AND REPORT DATE
  17.     X0=G3(1):GOSUB 680.5
  18.     PRINT
  19.     PRINT TAB((A1-LEN(X4$))/2);X4$;TAB(A1);"PAGE ";P        REMARK  PRINT REPORT TITLE AND PAGE NUMBER
  20.     PRINT
  21.     PRINT " EMPLOYEE  DESCRIPTION   AMOUNT"
  22.     PRINT
  23.     LINE.COUNT%=6                            REMARK  RESET LINE COUNTER FOR NEW PAGE
  24.     RETURN
  25. 6000    DEF FNR(A1)=INT(A1*100+.5)/100                    REMARK  ROUNDING FUNCTION
  26.     A$="  TOTAL PAY #####.##       TOTAL DEDUCTIONS ######.##"    REMARK  SET UP PRINT MASKS
  27.     B$="     ####  /##########/ ####.##"
  28.     PRINT CLEAR.SCREEN$;"P/R DEDUCTION REGISTER"            REMARK  DISPLAY PROGRAM I.D. ON CRT
  29.     PRINT "KEY RETURN TO BEGIN; CTRL-C TO EXIT"
  30. 6000.1    IF CONSTAT%=0 THEN GOTO 6000.1                    REMARK  POLL KEYBOARD FOR <RETURN> OR CTRL-C
  31.     A%=CONCHAR%
  32.     IF A%=03H THEN GOTO 6150                    REMARK  IF CTRL-C WAS PRESSED, ABORT PROGRAM
  33.     IF A% <> 0DH THEN GOTO 6000.1                    REMARK  WAIT FOR <RETURN> BEFORE EXECUTING PROGRAM
  34.     Y9=4
  35.     OPEN "P/R0F030.DAT" RECL 38 AS 1 BUFF 20 RECS 128        REMARK  OPEN PAYROLL DEDUCTION FILE
  36.     OPEN "G/I0F010.DAT" RECL 200 AS Y9                REMARK  OPEN GENERAL INFORMATION FILE
  37.     GOSUB 700                            REMARK  READ GENERAL INFORMATION FILE
  38.     LPRINTER                            REMARK  SET LINE PRINTER AS OUTPUT DEVICE
  39.     X4$="DEDUCTION REGISTER"
  40.     LINE.COUNT%=60
  41.     GOSUB 825                            REMARK  PRINT REPORT HEADINGS
  42.     IF END #1 THEN 6140
  43. 6035    READ #1;D1,D2,D3,D4,D1$,D5,D6
  44.     IF D2>2 OR D4<10 THEN GOTO 6035
  45.     GOSUB 825                            REMARK  CHECK FOR END OF REPORT PAGE
  46.     PRINT USING B$;D1,D1$,D6                    REMARK  PRINT DEDUCTION FILE DETAIL
  47.     LINE.COUNT%=LINE.COUNT%+1
  48.     IF D2>1 THEN  A2=A2+D6                        REMARK  ADD DEDUCTION AMOUNT TO REPORT TOTAL
  49.     IF D2=1 THEN P1=P1+D6                        REMARK  ADD MISCELLANEOUS INCOME TO REPORT TOTAL
  50.     GOTO 6035
  51. 6140    REMARK    END OF PROGRAM
  52.     PRINT
  53.     PRINT USING A$; P1, A2                        REMARK  PRINT DEDUCTION REGISTER TOTALS
  54. 6150    CONSOLE
  55.     PRINT CLEAR.SCREEN$;"P/R DEDUCTION REGISTER LOADING MENU"
  56.     CHAIN "P/R000"                            REMARK  LOAD MENU
  57.