home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug045.ark / P_R270.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  6KB  |  162 lines

  1.     REMARK    ************************************\
  2.         *   P/R270.BAS   REORGANIZE FILES  *\
  3.         *   4/18/79               7:30 PM  *\
  4.         ************************************
  5. %INCLUDE CURSOR
  6.     RESTORE
  7.     DIM S(96),R1(2),R2(5),G2$(5),G3(5),R$(5),Z0$(3)
  8.     GOTO 6000
  9.  
  10. %INCLUDE SUBS1
  11. %INCLUDE GENINFO
  12. %INCLUDE MSTRIN
  13. %INCLUDE MSTROUT
  14.  
  15.     DATA "YTD     ","QTD   ","CURRENT"
  16.     GOTO 6000
  17.  
  18.  
  19. 825    A1=110                                REMARK  ****    LINE PRINTER ROUTINE    ****
  20.     IF LINE.COUNT% < 55 THEN  RETURN                REMARK  IF SPACE REMAINS ON REPORT PAGE, RETURN
  21.     P=P+1
  22.     PRINT CHR$(12);
  23.     PRINT TAB((A1-LEN(G2$(1)))/2);G2$(1);TAB(A1);"DATE ";        REMARK  PRINT COMPANY NAME AND REPORT DATE
  24.     X0=G3(1):GOSUB 680.5
  25.     PRINT 
  26.     PRINT TAB(45);"PAYROLL REORGANIZE";
  27.  
  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. 4500    PRINT Z0$(I%);TAB(9);                        REMARK   PRINT "YTD", "QTD" OR "CURRENT" SUB-HEADING
  34.     A3%=24*I%                            REMARK  SET TOTALS POINTER
  35.     RETURN 
  36. 5300    PRINT TAB(13);"REG HRS    REG PAY   O.T. HRS   O.T. PAY";
  37.     PRINT "   P.W. HRS   P.W. PAY    H&W PAY    VAC HRS    VAC PAY";
  38.     PRINT "  OTHER PAY    NON-TAX"
  39.     LINE.COUNT%=LINE.COUNT%+1
  40.     RETURN 
  41. 5310    PRINT TAB(13);"FED W/H    ST. W/H   F.I.C.A.     S.D.I.  OTHER ";
  42.     PRINT "DED  TOTAL DED    NET PAY  TOTAL PAY"
  43.     LINE.COUNT%=LINE.COUNT%+1
  44.     RETURN 
  45.  
  46. 6000    A$="VAC HOURS ######.##  MON HRS ######.##  MON PAY #######.##"    REMARK  SET UP PRINT MASKS
  47.     B$=" #######.##"
  48.     C$="######"
  49.     D$=" ####.####"
  50.     E$="EMPLOYEE TYPE  ##  FED-EX  ##  CHECK NO.    ######"
  51.     E$=E$+"    H&W RATE  ####.####"
  52.     F$="EMP. CLASS     ##  ST-EX   ##  CHECK DATE "
  53.     G$="    MON HOURS ####.####"
  54.     H$="INS. CLASS     ##  ADD-EX  ##  VAC HOURS ######.##"
  55.     H$=H$+"    MON PAY   ####.####"
  56.     OPEN "P/R0F110.DAT" RECL 1150 AS 1                REMARK  OPEN PAYROLL MASTER FILE
  57.     Y9=2
  58.     OPEN "G/I0F010.DAT" RECL 200 AS Y9
  59.     GOSUB 700                            REMARK  READ GENERAL INFORMATION FILE
  60. 6010    CONSOLE
  61.     PRINT CLEAR.SCREEN$;"REORGANIZE"                REMARK  DISPLAY PROGRAM I.D. AND ENTRY MASK
  62.     PRINT:PRINT:PRINT:PRINT
  63.     PRINT "1) PAYROLL MASTER"
  64.     PRINT "2) PAYROLL HISTORY"
  65.     X2=1:X3=0:X4=2
  66.     X2$="CHOOSE FILE TO REORGANIZE"
  67.     GOSUB 665                            REMARK  ENTER CHOICE FOR REORGANIZE
  68.  
  69.  
  70.     IF X0=0 THEN\
  71.     PRINT CLEAR.SCREEN$;"REORGANIZE LOADING MENU":\            REMARK  DISPLAY PROGRAM EXIT MESSAGE
  72.     CHAIN "P/R000"                            REMARK  AND LOAD THE MENU
  73.  
  74.     PRINT CLEAR.SCREEN$;
  75.     IF X0=1 THEN PRINT "P/R REORGANIZE MASTER"
  76.     IF X0=2 THEN PRINT "P/R REORGANIZE HISTORY"
  77.     PRINT "KEY RETURN TO BEGIN;CTRL-C TO EXIT"
  78.  
  79. 6100    IF CONSTAT%=0 THEN 6100
  80.     X%=CONCHAR%
  81.     IF X%=03H THEN CHAIN "P/R000"                    REMARK  IF CTRL-C WAS DEPRESSED, CHAIN TO THE MENU
  82.     IF X%<> 0DH THEN GOTO 6100                    REMARK  DO NOT START PROCESSING UNTIL RETURN IS DEPRESSED
  83.  
  84.     PRINT "WORKING...DO NOT INTERRUPT"
  85.  
  86.  
  87.     IF X0=2\
  88.     THEN\                                REMARK  IF 'REORGANIZE HISTORY' WAS SELECTED...
  89.     CLOSE 1:\
  90.     OPEN "P/R0F120.DAT" AS 1:\                    REMARK  ERASE AND RE-CREATE HISTORY FILE; EXIT PROGRAM
  91.     DELETE 1:CREATE "P/R0F120.DAT" AS 1:\
  92.     HISTORY.RECORDS=0:GOSUB 720:\
  93.     CHAIN "P/R000"
  94.  
  95.  
  96.     RESTORE
  97.     FOR I%=1 TO 3
  98.     READ Z0$(I%)                            REMARK  READ DATA FROM STATEMENT 10
  99.     NEXT I%
  100.  
  101. 6133    LPRINTER                            REMARK  SELECT PRINTER AS OUTPUT DEVICE
  102.     LINE.COUNT%=70:GOSUB 825                    REMARK  PRINT REPORT HEADINGS
  103.     FOR R%=1 TO MSTR.RECORDS                    REMARK  PRINT FOR EMPLOYEE RANGE ENTERED
  104.     X0=R%:GOSUB 745                            REMARK  READ THE EMPLOYEE RECORD
  105.     IF R2(1) <> 99 OR S(1)=0 THEN GOTO 6565
  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. 6375    PRINT "  STATUS   ";R3$;"  DATE/EMP   ";            REMARK   ""   EMPLOYEE STATUS AND DATE EMPLOYED
  112.     X0=S(2):GOSUB 680.5
  113.     PRINT "    PAY RATE ";
  114.     PRINT USING D$;S(8)                        REMARK   ""   PAY RATE
  115.     LINE.COUNT%=LINE.COUNT% + 1:GOSUB 825
  116.     PRINT "  **DELETED**";TAB(16);" ADDR: ";R$(2);TAB(49);        REMARK   ""   ADDRESS
  117.     PRINT USING E$;R2(1),R2(2),S(5),S(9)                REMARK   ""   EMPLOYEE TYPE, FEDERAL EXEMPTIONS,\
  118.                                             LAST CHECK NUMBER AND H&W RATE
  119.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825                REMARK  CHECK FOR END OF REPORT PAGE
  120.     PRINT TAB(23);R$(3);TAB(49);                    REMARK   ""   EMPLOYEE ADDRESS LINE 2
  121.     PRINT USING F$;R2(5),R2(3);                    REMARK   ""   EMPLOYEE CLASS AND STATE EXEMPTIONS
  122.     X0=S(4):GOSUB 680.5                        REMARK   ""   LAST CHECK DATE
  123. 6420    PRINT USING G$;S(6)                        REMARK   ""   MONTHLY HOURS
  124.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  125.     PRINT TAB(23);R$(4);TAB(49);                    REMARK   ""   ADDRESS LINE 3
  126.     PRINT USING H$;S(3),R2(4),S(14),S(7)                REMARK   ""   INS. CLASS, ADDITIONAL EXEMPTIONS,\
  127.                                              ""   VACATION HOURS LEFT AND MONTHLY PAY
  128. 6435    PRINT                                 REMARK  PRINT CURRENT, Q-T-D OR Y-T-D EMPLOYEE DATA
  129.     LINE.COUNT%=LINE.COUNT%+2
  130.     GOSUB 825                            REMARK  CHECK FOR END OF REPORT PAGE
  131.     GOSUB 5300                            REMARK  PRINT HEADINGS FOR EMPLOYEE DATA
  132.     I1%=1
  133.  
  134.     FOR I%=3 TO 1 STEP -1
  135.     I1%=I1%+1
  136.     GOSUB 4500                            REMARK  PRINT APPROPRIATE SUB-HEADING
  137.     PRINT USING B$;S(A3%+1);S(A3%+2);S(A3%+3);\            REMARK  PRINT ITEMIZED PAY INFORMATION
  138.     S(A3%+4);S(A3%+5);S(A3%+6);S(A3%+7);\
  139.     S(A3%+8);S(A3%+9);S(A3%+10);S(A3%+12)
  140.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  141. 6440    NEXT I%
  142.     PRINT 
  143.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  144.     GOSUB 5310                            REMARK  PRINT DEDUCTION HEADING
  145.     I1%=1
  146.     FOR I%=3 TO 1 STEP -1
  147.     I1%=I1%+1
  148.     GOSUB 4500                            REMARK  PRINT APPROPRIATE SUB-HEADING
  149.     PRINT USING B$;S(A3%+13);S(A3%+14);S(A3%+15);\            REMARK  PRINT DEDUCTION DETAIL
  150.     S(A3%+16);S(A3%+17);S(A3%+18);S(A3%+11)-S(A3%+18);S(A3%+11)
  151.     LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  152. 6445    NEXT I%
  153.     PRINT 
  154. 6560    LINE.COUNT%=LINE.COUNT%+1:GOSUB 825
  155.     S(1)=0:X0=R%:GOSUB 750                        REMARK  SAVE RECORD AFTER LOGICALLY DELETING IT
  156.  
  157. 6565    NEXT R%
  158.     PRINT CHR$(0CH)                            REMARK  EJECT FINAL REPORT PAGE AND SELECT CONSOLE
  159.     CONSOLE
  160.     PRINT CLEAR.SCREEN$;"P/R REORGANIZE MASTER LOADING MENU"    REMARK  TERMINATE PROGRAM AND LOAD MENU WHEN REORGANIZE ENDS
  161.     CHAIN "P/R000"
  162.