10 ! PRINT PAYROLL CHECK REGISTER 11 ! PROGRAM NAME: PRRREG BY CWR 15 K=100 20 OPEN "DK1:PAYROL.MST" AS FILE 1% 30 OPEN "DK1:PAYROL.MDR" AS FILE 2% 35 OPEN "DK1:PAYROL.DED" AS FILE 3% 40 OPEN "LP:" FOR OUTPUT AS FILE 4%,MODE(66%) 50 DIM #1,A$(1500%)=128%,A%(0%) : Z%=A%(0%) 60 DIM #2%,M$(1500%)=128%,M%(0%),D6$(0%)=8%:D6$=D6$(0%) 65 D6$=D6$(0%):DIM D(100%):D(I%)=0 FOR I%=0% TO 99%:DIM E(100%):E(I%)=0 FOR I%=0% TO 99% 70 DIM #3,D$(30%)=32%,D%(0%):D2%=D%(0%) 80 F$="####.## ####.## ###.## \ \ \ \ #####" 90 F$=F$+" ####.## ####.## ####.## ####.##"+SPACE$(15)+"####.##" 100 F1$="\ \ ####.## #### 101 F3$=SPACE$(28%)+"## \ \ $$#,######.## ###,###,###,###,###" 105 P5%=1%:GOSUB 500:Q%=10% 106 H9=0%:J9=0%:T9=0%:E9=0%:F8=0%:S9=0%:F9=0%:N9=0%:I5%=1%:C4%=0%:D9=0%:U9%=1% 107 INPUT "STARTING CHECK #";C3;"ENDING CHECK #";C7 110 FOR I%=U9% TO Z% 120 IF MID(M$(I%),47%,1%)="N" THEN 390 130 H=VAL(MID(M$(I%),37%,5%)):E=VAL(MID(M$(I%),1%,8%)) 140 J%=VAL(MID(M$(I%),48%,1%)):T=0:D2=0 150 FOR K%=1% TO J% 160 C2$=MID(M$(I%),57%+8%*(K%-1%),2%) 170 ! IF BETWEEN 41 AND 59 INCLUSIVE THEN IT IS A TSA 180 IF C2$>"40" AND C2$<"60" THEN T=T+VAL(MID(M$(I%),59%+8%*(K%-1%),6%)) 190 NEXT K% 200 N$=MID(A$(I%),1%,24%):D1$=MID(A$(I%),37%,6%):H7=VAL(RIGHT(D1$,3%)) 220 F2=VAL(MID(M$(I%),16%,7%)):S=VAL(MID(M$(I%),24%,7%)) 230 F3=VAL(MID(M$(I%),30%,7%)):J=VAL(MID(M$(I%),9%,7%)) 239 N4=E-F2-S-F3 240 PRINT #4%,USING F$,H/K,J/K,T/K,N$,D1$,C3,E/K,F2/K,S/K,F3/K,N4/K 241 GOSUB 630 245 H9=H9+H:J9=J9+J:T9=T9+T:E9=E9+E:F8=F8+F2:S9=S9+S:F9=F9+F3 250 FOR J%=0% TO VAL(MID(M$(I%),48%,1%)) 260 D1$=MID(M$(I%),J%*8%+49%,2%):D1%=VAL(D1$) 270 IF D1$=" " THEN 350 280 FOR J1%=1% TO D2% 290 IF D1$=MID(D$(J1%),1%,2%) THEN D1$=MID(D$(J1%),3%,22%):GOTO 320 300 NEXT J1% 310 D1$="OTHER" 320 D=VAL(MID(M$(I%),J%*8%+51%,6%)):GOTO 350 IF D=0:D(D1%)=D(D1%)+D:E(D1%)=E(D1%)+H7 330 PRINT #4%,TAB(Q%+72%); ! POSITION AND SPACE 340 PRINT #4%,USING F1$,D1$,D/K 341 GOSUB 630 345 D2=D2+D 350 NEXT J% 355 D9=D9+D2:N4=N4-D2 360 PRINT #4%,TAB(Q%+110%); 370 PRINT #4%,USING "####.##*",N4/K;:IF N4<0% THEN PRINT #4%,"????" ELSE PRINT #4% 375 N9=N9+N4:GOSUB 630 380 PRINT #4% 385 GOSUB 630 386 C3=C3+1% 387 C4%=C4%+1%:IF C3>C7 THEN U9%=I%+1%:GOTO 107 390 NEXT I% 395 F2$="NUMBER OF CHECKS ###### #,###,###.## ###,###.## ###,###.## ###,###.## #,###,###.## #,###,###.##" 400 PRINT #4%,TAB(Q%+25%); 410 PRINT #4%,USING F2$,C4%,E9/K,F8/K,S9/K,F9/K,D9/K,N9/K 420 GOSUB 2000 430 CLOSE 1%,2%,3%,4%,5% 440 PRINT "END OF CHECK REGISTER" 450 GOTO 9999 500 GOSUB 505:GOSUB 550:RETURN ! HEADING 505 PRINT #4% FOR L5%=1% TO 3% 510 PRINT #4%,TAB(Q%+22%),"SCHOOL DIST 91 PAYROLL CHECK REGISTER"; 520 PRINT #4%,TAB(Q%+71%);D6$;TAB(Q%+107%);"PAGE ";P5% 530 PRINT #4 540 P5%=P5%+1%:L5%=0%:RETURN 550 PRINT #4%,TAB(Q%+5%);"REG ADJUST TSA EMPLOYEE EMPLOYEE CHECK"; 560 PRINT #4%,TAB(Q%+67%);"GROSS FEDERAL STATE FICA"; 570 PRINT #4%,TAB(Q%+123%);"NET" 580 PRINT #4%,TAB(Q%+4%);"HOURS";SPACE$(18%);"NAME NUMBER NO."; 590 PRINT #4%,TAB(Q%+68%);"AMT TAX TAX TAX"; 600 PRINT #4%,TAB(Q%+107%);"DEDUCTIONS AMT" 610 PRINT #4% 615 Q%=10% 620 RETURN 629 ! COUNT LINES PER PAGE 630 L5%=L5%+1%: IF L5%<50% THEN 650 640 PRINT #4%,CHR$(129%):Q%=0%:GOSUB 500 650 RETURN 2000 GOSUB 2500 2010 FOR I%=1% TO 99% 2020 IF D(I%)=0% THEN 2100 2030 FOR J1%=1% TO D2% 2040 IF I%=VAL(LEFT(D$(J1%),2%)) THEN D1$=MID(D$(J1%),3%,22%):GOTO 2070 2050 NEXT J1% 2060 D1$="OTHER" 2070 PRINT #4%,USING F3$,I%,D1$,D(I%)/100%,E(I%) 2080 D(0%)=D(0%)+D(I%):L5%=L5%+1%:IF L5%>50% THEN GOSUB 2500 2100 NEXT I% 2110 PRINT #4%,USING F3$,0,"TOTAL",D(0%)/100%:PRINT #4%,CHR$(129%):RETURN 2500 PRINT #4%,CHR$(129%):GOSUB 505 2520 PRINT #4%,TAB(Q%+40%),"DEDUCTIONS":PRINT #4%,TAB(28%);"CODE NAME AMOUNT EMPLOYEE# HASH TOTAL" 2530 PRINT #4%:RETURN 9999 END