2 ! PRINT ANALYSIS OF SALARY CONTRACT CHANGES 5 ! PROGRAM NAME:"PRTACC" 10 OPEN "DK1:PAYROL.TPY" AS FILE 1% 15 DIM #1%,T$(700%)=64%,T%(0%) 20 N%=T%(0%)-1%:P%=2%:L%=1%:GOSUB 400 25 P%=29%:L%=4%:GOSUB 400 30 OPEN "LP:" FOR OUTPUT AS FILE 2%,MODE 66% 35 J%=1%:L%=0%:N%=N%+1%:Q$="##,###.##":GOSUB 450 40 K%=1%:T=0%:F=0% 45 IF K%>N% THEN PRINT "EMPTY FILE":GOTO 145 50 PRINT #2%,TAB(8%);:F2$=MID(T$(K%),2%,1%) 51 IF F2$="B" THEN PRINT #2%,"W BAL":GOTO 60 55 IF F2$="D" THEN PRINT #2%,"WASH" ELSE PRINT #2%,"SET UP" 60 E$=MID(T$(K%),27%,6%):N$=MID(T$(K%),3%,24%) 70 PRINT #2%,TAB(16%);N$;" ";E$;" "; 75 GOSUB 500 80 K%=K%+1%:IF K%>N% THEN 100 85 IF F2$=MID(T$(K%),2,1) AND E$=MID(T$(K%),27,6) THEN 75 90 GOSUB 550:GOTO 50 100 GOSUB 550 105 IF L%>52% THEN J%=J%+1%:GOSUB 450 110 PRINT #2%:PRINT #2%,TAB(33%);"CONTRACT SET UP TOTAL";TAB(68%); 115 PRINT #2%,USING "#,#"+Q$,F2/100%;:PRINT #2%," **" 120 PRINT #2%,TAB(33%);"CONTRACT WASH TOTAL";TAB(68%); 125 PRINT #2%,USING "#,#"+Q$,ABS(F1)/100%;:PRINT #2%,"CR**" 130 PRINT #2%,TAB(33%);"FINAL TOTAL";TAB(68%); 135 PRINT #2%,USING "#,#"+Q$,ABS(F2+F1)/100%; 140 IF (F2+F1)<0% THEN PRINT #2%,"CR***" ELSE PRINT #2%," ***" 145 PRINT #2%,CHR$(129%):CLOSE 1%,2%:STOP 400 FOR K%=1% TO N% 405 A$=MID(T$(K%),P%,L%):B$=MID(T$(K%+1%),P%,L%) 410 IF A$<=B$ THEN 445 415 T1$=T$(K%+1%):T$(K%+1%)=T$(K%) 420 FOR J%=K% TO 2% STEP -1% 425 A$=MID(T$(J%-1%),P%,L%):IF A$<=B$ THEN T$(J%)=T1$:GOTO 445 430 T$(J%)=T$(J%-1%) 435 NEXT J% 440 T$(1%)=T1$ 445 NEXT K% 448 RETURN 450 PRINT #2%,CHR$(129%) 455 PRINT #2%,TAB(8%);"SCHOOL DISTRICT NO. 91";TAB(48%);"ANALYSIS OF "; 460 PRINT #2%,"SALARY CONTRACT CHANGES";TAB(93%);DATE$(0%); 465 PRINT #2%,TAB(110%);"PAGE ";J% 470 PRINT #2%:PRINT #2%,TAB(43%);"EMPLOYEE";TAB(66%); 475 PRINT #2%,"CONTRACT NO. OF";TAB(111%);"DATE" 480 PRINT #2%,TAB(26%);"NAME";TAB(44%);"NUMBER";TAB(68%); 485 PRINT #2%,"AMOUNT MONTHS";TAB(93%);"CODE";TAB(109%);"MO-DY-YR" 490 PRINT #2% 495 RETURN 500 D$=MID(T$(K%),33%,2%)+"-"+MID(T$(K%),35%,2%)+"-"+MID(T$(K%),37%,2%) 505 C$=MID(T$(K%),39%,3%)+"-"+MID(T$(K%),42%,2%)+"-"+MID(T$(K%),44%,1%)+"-" 510 C$=C$+MID(T$(K%),45%,4%)+"-"+MID(T$(K%),49%,4%)+"."+MID(T$(K%),53%,2%) 515 A=VAL(MID(T$(K%),55%,8%)):M$=MID(T$(K%),63%,2%) 520 PRINT #2%,TAB(65%); 525 PRINT #2%,USING Q$,ABS(A)/100%; 530 IF A<0% THEN PRINT #2%,"CR"; 535 PRINT #2%,TAB(78%);M$;" ";C$;" ";D$ 540 T=T+A:L%=L%+1% 545 RETURN 550 PRINT #2%:PRINT #2%,TAB(33%);"**EMPLOYEE TOTAL**";TAB(65%); 555 PRINT #2%,USING Q$,ABS(T)/100%; 560 IF T<0% THEN PRINT #2%,"CR*"; ELSE PRINT #2%," *"; 565 IF F2$="D" OR F2$="B" THEN F1=F1+T:GOTO 585 570 F2=F2+T:PRINT #2%,TAB(78%);M$;TAB(85%); 575 T=FIX(T/VAL(M$))/100% 580 PRINT #2%,USING Q$,T;:PRINT #2%,"/MONTH" 585 T=0%:L%=L%+5%:IF L%<52% THEN 595 590 PRINT #2%:J%=J%+1%:L%=0%:GOSUB 450 592 GOTO 598 595 PRINT #2%:PRINT #2% 598 RETURN 599 END