home *** CD-ROM | disk | FTP | other *** search
- REMARK ******************************************\
- * P/R240.BAS SUMMARY FILE MAINTENANCE *\
- * 5/17/79 1:21 PM *\
- ******************************************
-
-
- %INCLUDE CURSOR
- RESTORE
- DATA"HRS","AMT"
- DIM B1(5),S(1),G3(5),R1(2),R2(5)
- DIM G2$(5),A(14,12),A1.0(6)
- DIM R$(5)
- DEF FNA(Z1)=Z1-INT(Z1/10)*10 REMARK FUNCTION TO STRIP OFF TENS DIGIT
- GOTO 6000
-
- %INCLUDE GENINFO
- %INCLUDE SUBS1
-
-
-
- 745 READ #1,X0;R$(1),R$(2),R$(3),R$(4),R1(1),R1(2),R2(1),R2(2),\ REMARK READ PORTION OF MASTER RECORD
- R2(3),R2(4),R2(5),R3$,S(1)
- RETURN
-
-
- 825 Z1=110 REMARK LINE PRINTER ROUTINE
- IF LINE.COUNT% < 55 THEN RETURN REMARK IF SPACE REMAINS ON REPORT PAGE, RETURN
-
- PRINT CHR$(12);TAB((Z1-LEN(G2$(1)))/2);G2$(1);TAB(Z1);"DATE "; REMARK PRINT COMPANY NAME AND REPORT DATE
- P=P+1
- X0=G3(1):GOSUB 680.5
- PRINT
-
- PRINT TAB((Z1-LEN(X4$))/2);X4$;TAB(Z1);"PAGE";P REMARK PRINT REPORT HEADINGS
- PRINT
- PRINT "EMP # PT";TAB(14);" MON TUE WED THU FRI";
- PRINT " SAT SUN MON TUE WED THU FRI";
- PRINT " SAT SUN"
- PRINT
- LINE.COUNT%=5 REMARK RESET LINE COUNTER FOR NEW REPORT PAGE
- RETURN
-
-
- 873 READ #Y5,X0;B1(1),B1(2),B1(3),B1(4),B1(5) REMARK READ TRANSACTION SUMMARY RECORD
- RETURN
-
-
- 875 PRINT #Y5,X0;B1(1),B1(2),B1(3),B1(4),B1(5) REMARK WRITE TRANSACTION SUMMARY RECORD
- RETURN
-
-
- 1060 L=0 REMARK SEARCH FILE FOR SUMMARY RECORD
- 1070 L=L+1
- IF L > RECORD.COUNT THEN H=-1:RETURN
- X0=L:GOSUB 873 REMARK IF RECORD ID GREATER THAN EMPLOYEE NUMBER, RETURN
- IF B1(1) > E1 THEN H=-1:RETURN
- IF B1(1)=E1 AND B1(2) >= DAY.NO THEN H=0:RETURN
- GOTO 1070
-
-
- 5300 X1=404:X2=2:X3=0:X4=16:GOSUB 345 REMARK ENTER PAY TYPE
- IF FNA(X0)>6 THEN X2$="OUT OF RANGE":GOSUB 615:GOTO 5300 REMARK REJECT OUT-OF-RANGE ENTRIES
- IF R2(1)=1 AND FNA(X0)=0\
- THEN\
- X2$="INCONSISTENT PAY TYPE":GOSUB 615:\ REMARK FLAG PAY TYPES INCONSISTENT WITH EMPLOYEE TYPE
- GOTO 5300\
- ELSE\
- B1(3)=X0:RETURN
-
-
- 5350 IF FNA(B1(3))>0 AND R2(1)<>1 THEN GOTO 5370
- IF R2(1)=1 AND FNA(B1(3))<>2 THEN 5370
- 5360 X2$="OUT OF RANGE":GOSUB 615 REMARK REJECT ENTRY OF HOURS IF NOT APPLICABLE
- RETURN
-
- 5370 X1=465:X2=5:X3=0:X4=99.99:GOSUB 345 REMARK ENTER HOURS
- B1(4)=X0
- RETURN
-
-
- 5400 IF R2(1) = 0 AND FNA(B1(3))=2 THEN GOTO 5405 REMARK ENTER AMOUNT IF PAY TYPES PERMIT IT
- IF FNA(B1(3)) = 2 OR FNA(B1(3)) = 4\
- THEN\
- X1=527:X2=7:X3=0:X4=9999.99:GOSUB 345:\
- B1(5)=X0:\
- RETURN
-
- 5405 X2$="OUT OF RANGE"
- GOSUB 615
- RETURN
-
-
- 5450 IF P=0 THEN LINE.COUNT%=60
- X4$="PAYROLL BIWEEKLY SUMMARY":GOSUB 825 REMARK PRINT BIWEEKLY PAYROLL SUMMARY
- FOR K%=1 TO 6
- IF A1.0(K%)=0 THEN 5475
- PRINT USING B$;E1; REMARK PRINT EMPLOYEE NUMBER
- 5463 RESTORE
- Z%=K%*2-1
- FOR A1=Z% TO Z%+A.0
- READ X4$
- PRINT TAB(5);X4$;K%; REMARK PRINT "HRS" OR "AMT"
- 5465 FOR J%=1 TO 14
- IF A(J%,A1)=0 THEN 5470
- PRINT TAB(J%*8+4);
- PRINT USING D$;A(J%,A1); REMARK PRINT HOURS/AMOUNT FOR DAY 'J'
- 5470 NEXT J%
- PRINT
- NEXT A1
- LINE.COUNT%=LINE.COUNT%+1+A.0
- 5475 NEXT K%
-
- A1.0(1)=0:A1.0(2)=0:A1.0(3)=0:A1.0(4)=0:A1.0(5)=0:A1.0(6)=0 REMARK INITIALIZE TOTALS
-
- DIM A(14,12) REMARK RE-INITIALIZE TOTALS ARRAY BY RE-DIMENSIONING IT
- RETURN
-
-
- 6000 A$=" ###.##" REMARK SET UP PRINT MASKS FOR REPORT
- B$="###"
- C$="##"
- D$="####.##"
- Y5=2
- Y9=3
- OPEN "P/R0F110.DAT" RECL 1150 AS 1 REMARK OPEN EMPLOYEE MASTER FILE
- OPEN "P/R0F050.DAT" RECL 30 AS Y5 REMARK OPEN PAYROLL TRANSACTION SUMMARY FILE
- OPEN "G/I0F010.DAT" RECL 200 AS Y9:GOSUB 700 REMARK OPEN AND LOAD GENERAL INFORMATION FILE
- OPEN "CRT" RECL 1100 AS 19
-
-
- WHILE B1(1) <> 9000000000 REMARK FIND END OF SUMMARY FILE
- READ #Y5;B1(1)
- RECORD.COUNT=RECORD.COUNT+1
- WEND
-
-
- 6020 B=10
- X0=10:GOSUB 260 REMARK LOAD AND DISPLAY CRT MASK NUMBER 10
-
- X2=1:X3=0:X4=2:X2$="ENTER OPERATION (0=END;1=CHANGE OR DELETE;2=PRINT)"
- GOSUB 665
-
-
- IF X0=0 THEN\ REMARK END PROGRAM AND LOAD MENU IF ZERO CODE ENTERED
- PRINT CLEAR.SCREEN$;"P/R SUMMARY F/M LOADING MENU":\
- CHAIN "P/R000"
-
-
- IF X0=2 THEN 6200 REMARK IF CODE = 2, BRANCH TO PRINT ROUTINE
-
-
- 6030 X1=270:X2=3:X3=0:X4=999:GOSUB 345 REMARK ENTER EMPLOYEE NUMBER
- E1=X0
- IF X0=0 THEN 6020 REMARK REQUEST OPERATION CODE IF EMPLOYEE = 0
- R$(1)="NOT ON MASTER"
- IF X0<=MSTR.RECORDS THEN GOSUB 745 REMARK READ EMPLOYEE MASTER FILE RECORD
-
- 6031 IF R2(1)=99 OR S(1)=0 OR X0>MSTR.RECORDS\
- THEN R$(1)="NOT ON MASTER"
-
- 6053 X1=284:GOSUB 210
- PRINT R$(1);TAB(30) REMARK PRINT EMPLOYEE NAME OR ERROR MESSAGE IF NOT FOUND
-
- X1=326:X2=2:X3=0:X4=14:GOSUB 345 REMARK ENTER DAY NUMBER
- DAY.NO=X0
-
- GOSUB 1060 REMARK SEARCH SUMMARY FILE FOR EMPLOYEE ENTERED
-
- R5=L
- IF H=-1 AND DAY.NO=0 AND B1(1)=E1 THEN H=0
- IF B1(1)=E1 AND DAY.NO <> 0 AND B1(2) <> DAY.NO THEN H=-1
- IF H=-1 THEN X2$="NOT ON FILE":GOSUB 615:GOTO 6030 REMARK DISPLAY ERROR MESSAGE IF EMPLOYEE NOT FOUND
-
-
- 6070 X1=256:GOSUB 210
- GOSUB 7025 REMARK DISPLAY TRANSACTION SUMMARY DATA
-
- 6075 X2=2:X3=0:X4=99
- X2$="ENTER FIELD TO CHANGE (0=NONE;98=NEW EMPL;99=DELETE)" REMARK PROMPT OPERATOR FOR FIELD TO CHANGE
- GOSUB 665
- X1=64:GOSUB 210:PRINT TAB(64):PRINT TAB(64);
- IF X0=0 THEN 6095
- IF X0=98 THEN 6030 REMARK REQUEST NEW EMPLOYEE
-
- IF X0=99 THEN 6100 REMARK BRANCH TO DELETE ROUTINE IF INDICATED
-
- IF X0 > 3 THEN 6075
- ON X0 GOSUB 5300,5350,5400
- GOTO 6075
- 6095 X0=L:GOSUB 875 REMARK SAVE RECORD ON FILE
- L=L+1
- IF L > RECORD.COUNT THEN 6030
- X0=L
- GOSUB 873 REMARK GET NEXT PAYROLL SUMMARY RECORD
- IF B1(1)=E1 THEN 6070
- GOTO 6030
- 6100 X2=3:X3=0:X4=0:X2$="ENTER DELETE CODE":GOSUB 665 REMARK PROMPT OPERATOR FOR DELETE CODE
- IF X0$ <> "DEL" THEN 6075
- A.0=1
- IF RECORD.COUNT=1\ REMARK SKIP RE-WRITING IF ONLY ONE RECORD ON FILE
- THEN RECORD.COUNT=RECORD.COUNT+1:GOTO 6105
-
- FOR I=L TO RECORD.COUNT-1 REMARK PHYSICALLY RE-WRITE OVER DELETED RECORD
- X0=I+1:GOSUB 873
- X0=I:GOSUB 875
- NEXT I
-
- 6105 RECORD.COUNT=RECORD.COUNT-1
- B1(1)=9000000000:B1(2)=0:B1(3)=0:\
- B1(4)=0:B1(5)=0:X0=RECORD.COUNT:GOSUB 875
- X2$="RECORD DELETED":GOSUB 615 REMARK FLASH DELETED RECORD BULLETIN
- GOTO 6030
-
-
- 6200 X0=11:GOSUB 260 REMARK LOAD SUMMARY FILE PRINT CRT MASK
- 6205 X1=282:X2=3:X3=0:X4=999:GOSUB 345 REMARK ENTER START EMPLOYEE NUMBER
- E1=X0
- X1=346:X2=3:X3=E1:X4=999:GOSUB 345 REMARK ENTER END EMPLOYEE NUMBER
- E2=X0
- X1=411:X2=2:X3=0:X4=14:GOSUB 345 REMARK ENTER START DAY NUMBER
- D1=X0
- X1=475:X2=2:X3=D1:X4=14:GOSUB 345 REMARK ENTER END DAY NUMBER
- D2=X0
- X1=540:X2=1:X3=0:X4=1:GOSUB 345 REMARK PROMPT TO PRINT AMOUNT FIELDS OPTIONALLY
- A.0=X0
- X2=1:X3=0:X4=1:X2$="ENTRY CORRECT?":GOSUB 665 REMARK VERIFY ENTRIES:'1'=O.K; '0'=RETRY
- IF X0 <> 1 THEN 6205
- 6295 LPRINTER REMARK SELECT PRINTER AS OUTPUT DEVICE
- P=0
- I=1
- IF E2 > MSTR.RECORDS THEN E2=MSTR.RECORDS
- DAY.NO=0
- GOSUB 1060 REMARK GET FIRST EMPLOYEE NUMBER IN RANGE
- R5=L
-
- 6305 FOR I1%=L TO RECORD.COUNT
- X0=I1%
- GOSUB 873 REMARK READ THE NEXT PAYROLL SUMMARY RECORD
- IF B1(1) > E2 THEN I1%=RECORD.COUNT+1:GOTO 6360
- IF B1(2) < D1 OR B1(2) > D2\
- OR FNA(B1(3))=0 THEN GOTO 6360 REMARK IF SUMMARY RECORD IS INVALID, SKIP IT
-
- IF B1(1) > E1 THEN GOSUB 5450:E1=B1(1) REMARK PRINT A DETAIL LINE ON REPORT
-
- 6340 J%=FNA(B1(3))*2
- 6350 A(B1(2),J%-1)=B1(4)
- A(B1(2),J%)=B1(5)
- A1.0(J%/2)=1
- 6360 NEXT I1%
- 6370 GOSUB 5450 REMARK PRINT TOTALS FOR REPORT
- CONSOLE
- GOTO 6020 REMARK REQUEST A NEW OPERATION
-
-
- 7000 REMARK DISPLAY CRT MASK 10 OR 11
- CONSOLE
- X0=B:GOSUB 260
- PRINT
- PRINT
- PRINT
- PRINT
- IF B=11 THEN 7060
- 7025 X1=13:GOSUB 215
- PRINT USING B$;B1(1); REMARK DISPLAY EMPLOYEE NUMBER
- X1=12:GOSUB 215
- PRINT R$(1);TAB(63) REMARK DISPLAY EMPLOYEE NAME
- X1=7:GOSUB 215
-
- PRINT USING C$;B1(2) REMARK DISPLAY DAY NUMBER FOR SUMMARY RECORD
- X1=21:GOSUB 215
- PRINT USING C$;B1(3) REMARK DISPLAY PAY TYPE
- X1=16:GOSUB 215
- PRINT USING A$;B1(4) REMARK DISPLAY HOURS
- X1=16:GOSUB 215
- PRINT USING D$;B1(5)
- RETURN
-
-
- 7060 X1=24:GOSUB 215
- PRINT USING B$;E1 REMARK DISPLAY START EMPLOYEE NUMBER
- X1=24:GOSUB 215
- PRINT USING B$;E2 REMARK DISPLAY END EMPLOYEE NUMBER
- X1=24:GOSUB 215
- PRINT USING B$;D1 REMARK DISPLAY START DAY
- X1=24:GOSUB 215
- PRINT USING B$;D2 REMARK DISPLAY END DAY
- X1=24:GOSUB 215
- PRINT USING B$;A.0 REMARK DISPLAY AMOUNT PRINT OPTION
- RETURN
-