2 ! PRINTS ANNUAL EMPLOYEE PAYROLL REPORT 5 ! PROGRAM NAME:"PANNE" - BY JAC. AND CWR. 6 DIM D8$(12%),D$(99%),D(99%),D1(99%):S%,M9%=1% 7 Q5$="\ \ ##,###,###.##**#,###,###.##**#,###,###.##**###,###.##"+ "**###,###.##** NET=##,###,###.##" 8 Q1$="\"+SPACE$(22%)+"\ \ \":Q2$="\ \ ##,###.## ###.##\ \ #,###.##" +" #,###.## #,###.## ##,###.## ##,###.##" 9 Q3$="\"+SPACE$(20%)+"\ ####.##":Q4$="######.##*" 10 INPUT "DATE AS XX-XX-XX",D8$ 11 Q6$="TOTAL "+Q3$+"*":Q7$="## \"+SPACE$(20%)+"\##,###,##.##" 12 Q8$="##,###.##* ###.##\ \ #,###.##* ##,###.##* #,###.##* ##,###.##* ##,###.##*" 15 OPEN "LP:" FOR OUTPUT AS FILE 1%,MODE 66%:J%=0%:W=100 20 OPEN "DK1:PAYROL.MST" AS FILE 2%:GET #2%:FIELD #2%,2% AS M$:M%=CVT$%(M$) :B%=1% 25 OPEN "DK1:PAYROL.YDR" AS FILE 3%,RECORDSIZE 1536%:GET #3%:FOR K%=1% TO 12% :FIELD #3%,(K%-1%)*128% AS E$,8% AS E$:D8$(K%)=E$+"":NEXT K% 30 OPEN "DK1:PAYROL.DED" FOR INPUT AS FILE 4%:D%=0%:GET #4%:FIELD #4% ,2% AS N$:G%=CVT$%(N$) 35 FOR I%=1% TO G%:D1%=I%/16%+1%:IF D1%<>D% THEN GET #4%,RECORD D1%:D%=D1% 40 O%=(I%-(D%-1%)*16%)*32%:FIELD #4%,O% AS E$,2% AS N$,22% AS N1$:D%=VAL (N$):D$(D%)=N1$+"":D,D1(D%)=0:NEXT I%:CLOSE 4% 100 FOR K%=M9% TO M%:B1%=K%/4%+1%:IF B1%<>B% THEN GET #2%,RECORD B1%:B%=B1% 110 O%=(K%-(B%-1%)*4%)*128%:FIELD #2%,O% AS E$,24% AS N$,12% AS E$,6% AS E1$ :GET #3%,RECORD 3%*K%+1% 120 A1(H%)=0 FOR H%=0% TO 5%:Y=0:GOSUB 1300 130 FOR I%=1% TO 12%:GOSUB 1200:A(4%),D1=0:D1%=0%:GOTO 210 IF F4$="N":A(H%)=VAL (A$(H%)) FOR H%=0% TO 3%:GOTO 210 IF A(0%)=0 140 X%=VAL(X$):FOR H%=0% TO X%:GOSUB 1210:D%=VAL(F3$): D=VAL(D$):D(D%)=D(D%)+D:D1=D1+D:IF D%>40% AND D%<60% THEN D1%=D1%+1%:D1%(D1%)=D%:D2(D1%)=D 145 A(4%)=A(4%)+D IF D%=61% 150 NEXT H%:D2%=0%:D2%=1% IF D1%>0%:A(5%)=A(0%)-A(1%)-A(2%)-A(3%)-D1 :Y=Y+A(0%) 160 PRINT #M9%,TAB(34%);:PRINT #M9%,USING Q2$,D8$(I%),A(0%)/W,D2(D2%)/W, MID(D$(D1%(D2%)),5%,3%),A(M9%)/W,A(2%)/W,A(3%)/W,A(4%)/W,Y/W: GOSUB 1400 170 FOR H%=D2%+1% TO D1%:PRINT #1%,TAB(54%);:PRINT #1%,USING "###.##\ \", D2(H%)/W,MID(D$(D1%(H%)),5%,3%):GOSUB 1400:NEXT H% 180 T%=0%:FOR H%=0% TO X%:GOSUB 1210:D%=VAL(F3$):GOTO 190 IF D%=61% OR D%>40% AND D%<60%:GOSUB 1399 IF T%=79%:IF T%=46% THEN T%=79% ELSE T%=46% 185 PRINT #1%,TAB(T%);:PRINT #1%, USING Q3$,D$(VAL(F3$)),VAL(D$)/W; 190 NEXT H%:PRINT #1%,TAB(111%);:PRINT #1%,USING Q4$,A(5%)/W :PRINT #1%:GOSUB 1400:GOSUB 1400 200 A1(H%)=A1(H%)+A(H%) FOR H%=0% TO 5% 210 NEXT I% 220 FOR H%=41% TO 59%:GOTO 230 IF D(H%)<>0:NEXT H%:H%=0% 230 PRINT #M9%,"**EMPLOYEE TOTALS**";TAB(43%);:PRINT #M9%,USING Q8$,A1(0%)/W, D(H%)/W,MID(D$(H%),5%,3%),A1(M9%)/W,A1(2%)/W,A1(3%)/W,A1(4%)/W,Y/W: GOSUB 1400:GOTO 250 IF H%=0% 240 FOR H%=H%+1% TO 59%:GOTO 245 IF D(H%)=0:PRINT #1%,TAB(54%);:PRINT #1%,USING "###.##\ \" ,D(H%)/W,MID(D$(H%),5%,3%):GOSUB 1400 245 NEXT H% 250 GOSUB 1399:T%=0%:FOR H%=1% TO 99%:GOTO 270 IF D(H%)=0%:D1(H%)=D1(H%)+D(H%) :GOTO 265 IF H%=61% OR H%>40% AND H%<60% :GOSUB 1399 IF T%=69%:IF T%=24% THEN T%=69% ELSE T%=24% 260 PRINT #1%,TAB(T%);:PRINT #1%,USING Q6$,D$(H%),D(H%)/W; 265 D(H%)=0 270 NEXT H%:PRINT #1%,TAB(111%);:PRINT #1%,USING Q4$,A1(5%)/W;:PRINT #1%,"*" 280 A2(H%)=A2(H%)+A1(H%) FOR H%=0% TO 5%:D(61%)=0:NEXT K% 300 S%=2%:GOSUB 1500:FOR H%=0% TO 5%:READ N$:PRINT #1%,USING "\ \##,###,###.##", N$,A2(H%)/W:GOSUB 1400:NEXT H%:GOSUB 1399 310 T%=0%:FOR H%=1% TO 99%:GOTO 330 IF D1(H%)=0%:GOSUB 1399 IF T%=72% :IF T%=32% THEN T%=72% ELSE T%=32% 320 PRINT #1%,TAB(T%);:PRINT #1%,USING Q7$,H%,D$(H%),D1(H%)/W; 330 NEXT H% 340 PRINT #1%,CHR$(129%):CLOSE 1%,2%,3%:STOP 1200 FIELD #3%,(I%-1%)*128% AS E$,8% AS A$(0%),7% AS E$,7% AS A$(1%) ,7% AS A$(2%),7% AS A$(3%),10% AS E$,1% AS F4$,1% AS X$:RETURN 1210 FIELD #3%,(I%-1%)*128%+H%*8%+48% AS E$,2% AS F3$,6% AS D$:RETURN 1300 PRINT #1%,CHR$(129%):J%=J%+1%:L%=0% 1305 PRINT #M9%,TAB(9%);"SCHOOL DISTRICT NO. 91";TAB(40%);"EMPLOYEES ANNUAL"; " PAYROLL REPORT";TAB(80%);"YEAR ENDING ";D8$;TAB(115%);"PAGE ";J%: PRINT #M9% 1310 PRINT #M9%,TAB(5%);"EMPLOYEE";TAB(24%);"EMPLOYEE";TAB(35%);"PAYROLL"; TAB(46%);"GROSS";TAB(66%);"FEDERAL";TAB(78%);"STATE";TAB(99%); "PUB EMP";TAB(126%);"GROSS" 1315 PRINT #M9%,TAB(7%);"NAME";TAB(25%);"NUMBER";TAB(36%);"DATE";TAB(45%); "EARNINGS";TAB(56%);"TSA";TAB(68%);"TAX";TAB(79%);"TAX";TAB(89%);"FICA"; TAB(101%);"RET";TAB(116%);"NET";TAB(127%);"YTD" 1330 PRINT #1%:PRINT #1%,USING Q1$,N$,E1$;:GOSUB 1399 IF Y<>0:RETURN 1399 PRINT #1% 1400 L%=L%+1%:IF L%>56% THEN L%=0%:ON S% GOSUB 1300,1500 1410 RETURN 1500 PRINT #1%,CHR$(129%):J%=J%+1%:L%=0%:PRINT #1%,TAB(9%);"GRAND TOTALS FOR ANNUAL PAYROLL REPORT ; D8$;TAB(115%);"PAGE ";J%:PRINT #1%:RETURN 8000 DATA "GROSS EARNINGS","FED TAX","STATE TAX","FICA","PUBLIC EMP RET","NET" 9000 END