2 ! PRINTS ANALYSIS OF SALARY CONTRACTS! 5 ! PROGRAM NAME:"PRTASC" - BY JAC 10 ON ERROR GOTO 500 15 OPEN "LP:" FOR OUTPUT AS FILE 1%,MODE 66%:Q$="##,###.##\ \" :Q1$="#,###,###.##\\" 20 OPEN "DK1:PAYROL.ASC" AS FILE 2%:DIM #2%,C$(700%,20%)=64%,C%(0%) :N%=C%(0%):H%=1% 25 OPEN "DK1:PAYROL.MST" AS FILE 3%:DIM #3%,A$(1500%)=128%,A%(0%): M%=A%(0%):B%=-1% 30 OPEN "DK1:PAYROL.MDR" AS FILE 4%:DIM #4%,M$(1500%)=128%,M%(0%), D$(0%)=8%:D9$=D$(0%):CLOSE 4%:GOSUB 400 35 Q2$=" \ \-\\-!-\ \-\ \!\\ \"+SPACE$(21%)+"\ \ \ \\-\\-\\ "+ Q$+"\\":Q3$=SPACE$(63%)+"\\-\\-\\"+SPACE$(20%)+Q$ 37 OPEN "DK1:PAYROL.SCR" AS FILE 4%:DIM #4%,S$(1500%)=128%,S%(0%) 40 Q4$=" ADJUSTMENT TO CONTRACT"+SPACE$(38%)+"\\-\\-\\ "+Q$+" "+Q$: Q5$=" \ \-\\-!-\ \-\ \!\\"+SPACE$(34%)+"\\-\\-\\"+ SPACE$(48%)+Q$:R$=SPACE$(38%)+"\\-\\-\\ "+Q$+"\\" 45 Q6$=SPACE$(48%)+"*EMPLOYEE TOTALS*"+SPACE$(10%)+Q$+" "+Q$+" "+Q$ +" "+Q$:Q7$=" *CREDIT BALANCE* ":Q8$="*ZERO BALANCE*" 50 FOR K%=1% TO N%:K1%=K%*21%:B1%=K1%/8%+1%:IF B%<>B1% THEN GET #2%,RECORD B1%:B%=B1% 55 O%=(K1%-(B%-1%)*8%)*64%:FIELD #2%,O% AS Z$,1% AS A1$,2% AS N$, 3% AS L$,2% AS F$,1% AS Y$,4% AS P$,4% AS B$,2% AS B1$, 23% AS N1$,1% AS F1$,6% AS E$,2% AS D1$,2% AS D2$,2% AS D3$,7% AS C$, 2% AS M$ 60 IF A1$="N" THEN A2$=" NO" ELSE A2$="YES" 65 N1%=VAL(N$):C=VAL(C$):E%=VAL(RIGHT(E$,3%)):C1=C1+C 70 PRINT #1%,USING Q2$,L$,F$,Y$,P$,B$,".",B1$,N1$,E$,D1$,D2$,D3$, C/100%," ",M$:GOSUB 450 75 FOR I%=1% TO N1%:K2%=K1%+I%:B1%=K2%/8%+1%:IF B1%<>B% THEN GET #2%,RECORD B1%:B%=B1% 80 O%=(K2%-(B%-1%)*8%)*64%:FIELD #2%,O% AS Z$,3% AS L$, 2% AS F$,1% AS Y$,4% AS P$,4% AS B$,2% AS B1$,7% AS O$, 2% AS D1$,2% AS D2$,2% AS D3$,7% AS A$,7% AS S$,8% AS C$, 2% AS M$,2% AS D4$,2% AS D5$,2% AS D6$,1% AS F2$ 85 C=VAL(C$):IF C=0% THEN 105 ELSE C1=C1+C 90 IF C<0% THEN C1$="CR " ELSE C1$=" " 95 IF F2$="B" THEN Q9$=" ZERO CONTRACT BALANCE " ELSE IF F2$="S" THEN Q9$=" CONTRACT SET UP " ELSE IF F2$="D" THEN Q9$=" CONTRACT DELETION " 100 PRINT #1% USING Q9$+R$,D4$,D5$,D6$,ABS(C)/100%,C1$,M$:GOSUB 450 105 A=VAL(A$):IF A=0% THEN 120 ELSE C1=C1+A:S1=S1+A 110 IF A<0% THEN C1$="CR " ELSE C1$=" " 115 PRINT #1%,USING Q4$,D1$,D2$,D3$,ABS(A)/100%,C1$,ABS(A)/100%,C1$ :GOSUB 450 120 S=VAL(S$):IF S=0% THEN 135 ELSE S1=S1+S 125 IF S<0% THEN C1$="CR " ELSE C1$=" " 130 PRINT #1%,USING Q3$,D1$,D2$,D3$,ABS(S)/100%,C1$:GOSUB 450 135 O=VAL(O$):IF O=0% THEN 150 ELSE O1=O1+O 140 IF O<0% THEN C1$="CR " ELSE C1$=" " 145 PRINT #1%,USING Q5$,L$,F$,Y$,P$,B$,".",B1$,D1$,D2$,D3$,ABS(O)/100%,C1$: GOSUB 450 150 NEXT I%:IF K%+1%>N% THEN 155 ELSE B1%=(K%+1%)*21%/8%+1%:IF B1%<>B% THEN GET #2%,RECORD B1%:B%=B1% 152 O%=((K%+1%)*21%-(B%-1%)*8%)*64%:FIELD #2%,O%+45% AS Z$,4% AS E$: IF E%=VAL(E$) THEN 245 155 B1%=K%*21%/8%+1%:IF B1%<>B% THEN GET #2%,RECORD B1%:B%=B1% 158 O%=(K%*21%-(B%-1%)*8%)*64%:FIELD #2%,O%+42% AS Z$,1% AS F1$ 160 B1=C1-S1:IF B1=0% THEN LSET F1$="Z":PUT #2%,RECORD B% 170 IF C1<0% THEN C1$="CR*" ELSE C1$=" *" 175 IF S1<0% THEN S1$="CR*" ELSE S1$=" *" 180 IF B1<0% THEN B2$="CR*" ELSE B2$=" *" 185 IF O1<0% THEN O1$="CR*" ELSE O1$=" *" 190 IF B1=0% THEN R1$=LEFT(Q6$,105%)+Q8$+RIGHT(Q6$,120%):PRINT #1%, USING R1$,ABS(C1)/100%,C1$,ABS(S1)/100%,S1$,ABS(O1)/100%,O1$:GOTO 205 195 IF B1>0% THEN R1$=Q6$ ELSE R1$=Q7$+RIGHT(Q6$,22%) 200 PRINT #1%,USING R1$,ABS(C1)/100%,C1$,ABS(S1)/100%,S1$,ABS(B1)/100%,B2$, ABS(O1)/100%,O1$ 205 C2=C2+C1:S2=S2+S1:O2=O2+O1:B2=B2+B1 210 PRINT #1%:L%=L%+1%:GOSUB 450:IF B1<>0% THEN 240 ELSE K1%=K%-1% 215 B1%=K1%*21%/8%+1%:IF B1%<>B% THEN GET #2%,RECORD B1%:B%=B1% 220 O%=(K1%*21%-(B%-1%)*8%)*64%:FIELD #2%,O%+42% AS Z$,1% AS F1$, 2% AS Z$,4% AS E$:IF E%=VAL(E$) THEN LSET F1$="Z": PUT #2%,RECORD B%:K1%=K1%-1%:GOTO 215 225 GOTO 230 IF E%=VAL(MID(A$(J%),39%,4%)) FOR J%=H% UNTIL VAL(MID(A$(J%),39%,4%))>E% 230 IF VAL(MID(A$(J%),39%,4%))<=E% THEN H%=J% ELSE PRINT "NO MST ENTRY FOR";E%:GOTO 240 235 A$(J%)=LEFT(A$(J%),115%)+"D"+RIGHT(A$(J%),117%):S$(J%)=LEFT(S$(J%),2%)+" "+ RIGHT(S$(J%),4%) 240 S1,C1,O1=0% 245 NEXT K%:Q1$=" NUMBER OF CONTRACTS ###"+SPACE$(21%)+"\\FINAL TOTALS\\"+ SPACE$(8%)+"#,###,###.##\ \"+Q1$+Q1$+"#,###,###.##\ \" 250 IF C2<0% THEN C1$="CR**" ELSE C1$=" **" 255 IF S2<0% THEN S1$="CR" ELSE S1$="**" 260 IF B2<0% THEN B2$="CR" ELSE B2$="**" 265 IF O2<0% THEN O1$="CR**" ELSE O1$=" **" 270 PRINT #1%,USING Q1$,N%,"**","**",ABS(C2)/100%,C1$,ABS(S2)/100%,S1$, ABS(B2)/100%,B2$,ABS(O2)/100%,O1$ 275 CLOSE 1%,2%,3%,4%:STOP 400 PRINT #1%,CHR$(131%):J1%=J1%+1%:L%=0% 405 PRINT #1%," SCHOOL DISTRICT NO. 91";TAB(48%);"ANALYSIS OF SALARY"; " CONTRACTS";TAB(88%);D9$;TAB(113%); "PAGE ";J1%:PRINT #1% 410 PRINT #1%,TAB(16%);"BUDGET";TAB(37%);"EMPLOYEE";TAB(54%); "EMPLOYEE DATE CONTRACT SALARY CONTRACT"; " OTHER" 415 PRINT #1%,TAB(17%);"CODE";TAB(39%);"NAME";TAB(55%); "NUMBER MO-DY-YR AMOUNT MO PAID BALANCE"; " PAY":PRINT #1%:RETURN 450 L%=L%+1%:IF L%>=52% THEN GOSUB 400 455 RETURN 500 IF ERR<>14% THEN ON ERROR GOTO 0 ELSE PRINT "WAITING FOR LP:":PRINT K%,E%,I% :INPUT "K OR I";A$:PRINT #1%:IF A$="K" THEN INPUT "K";K%:RESUME 240 505 IF A$<>"I" THEN 500 ELSE INPUT "I";I%:RESUME 150 510 END