2 ! PRINTS ACCOUNTS PAYABLE REGISTER 5 ! PROGRAM NAME:"APREG" - BY JAC 10 OPEN "DK1:ACCPAY.UER" AS FILE 1%:DIM #1%,X$(1400%)=128%,X%(0%),U1%(0%):S9%=0% 20 OPEN "DK1:ACCPAY.INV" AS FILE 2%:DIM #2%,I1$(600%)=128%,I%(0%) 26 INPUT "HAS THIS REPORT BEEN RUN BEFORE? - Y OR N";A1$ 27 IF A1$="Y" THEN N%=I%(0%):CLOSE 1%:GOTO 160 28 IF A1$<>"N" THEN 26 30 OPEN "DK1:ACCPAY.PO" AS FILE 3%:DIM #3%,P1$(1000%)=64%,P%(0%) 40 PRINT "MOUNT THE MONTHLY ACCPAY DECTAPE ON DRIVE 0" 45 INPUT "IS IT MOUNTED? - Y OR N";A$ 50 IF A$="N" THEN 40 52 INPUT "IS THIS THE MIDDLE OF THE MONTH? - Y OR N";A$ 55 IF A$="Y" THEN N$="DT0:ACCPAY.IN1" ELSE N$="DT0:ACCPAY.IN2" 58 IF A$="Y" THEN M$="DT0:ACCPAY.PO1" ELSE M$="DT0:ACCPAY.PO2" 60 OPEN N$ FOR OUTPUT AS FILE 4% 62 N%=I%(0%):PRINT #4%,N% "," 65 PRINT #4%,I1$(K%) "," FOR K%=1% TO N% 70 CLOSE 4%:OPEN M$ FOR OUTPUT AS FILE 4% 75 M%=P%(0%):PRINT #4%,M% "," 80 PRINT #4%,P1$(K%) "," FOR K%=1% TO M% 85 PRINT #4%,CHR$(26%):CLOSE 4% 90 N%=0%:M%=0%:O%=X%(0%) 95 FOR K%=1% TO O% 98 IF MID(X$(K%),64%,1%)="K" THEN 115 100 IF MID(X$(K%),64%,1%)="5" THEN 110 105 M%=M%+1%:P1$(M%)=LEFT(X$(K%),64%):GOTO 115 110 N%=N%+1%:I1$(N%)=LEFT(X$(K%),79%) 115 NEXT K% 120 I%(0%)=N%:P%(0%)=M%:X%(0%)=0%:CLOSE 1%,3% 122 IF A$="N" THEN 160 125 OPEN "DK1:ACCPAY.GJ" AS FILE 1% 130 DIM #1%,G1$(50%)=128%,G%(0%):IF G%(0%)=0% THEN 155 135 OPEN "DT0:ACCPAY.GJ" FOR OUTPUT AS FILE 3% 140 PRINT #3%,G%(0%) ",":M%=G%(0%) 145 PRINT #3%,G1$(K%) "," FOR K%=1% TO M% 150 PRINT #3%,CHR$(26%):CLOSE 3% 155 G%(0%)=0%:CLOSE 1% 160 OPEN "DK1:ACCPAY.ARG" AS FILE 1%:DIM #1%,J(600%):DIM L%(600%): L%(K%)=0% FOR K%=1% TO N% 170 J(K%)=VAL(MID(I1$(K%),6%,6%)) FOR K%=1% TO N% 175 M=J(1%):FOR K%=2% TO N%:IF J(K%)>M THEN M=J(K%):GOTO 190 180 T=J(K%):FOR J%=K%-1% TO 1% STEP -1%:IF J(J%)>T THEN L%(K%)=L%(K%)-1%: L%(J%)=L%(J%)+1% 185 NEXT J% 190 NEXT K%:FOR K%=1% TO N%:IF L%(K%)=0% THEN 200 ELSE J%=K%:T$=I1$(K%) 195 T1$=I1$(J%+L%(J%)):I1$(J%+L%(J%))=T$:L%=J%:J%=L%+L%(L%):L%(L%)=0%:T$=T1$: GOTO 195 IF J%<>K% 200 NEXT K%:CLOSE 1%:KILL "DK1:ACCPAY.ARG" 205 OPEN "LP:" FOR OUTPUT AS FILE 1%,MODE 51% 208 OPEN "DK1:ACCPAY.DB1" AS FILE 3%:DIM #3%,D4$(25%)=64%,D%(0%) 210 OPEN "DK1:ACCPAY.DEB" AS FILE 4%:DIM #4%,D5$(25%)=64%,D5%(0%) 212 IF D5%(0%)<0% THEN D5%(0%)=0% 215 D4$(K%)=D5$(K%) FOR K%=1% TO D5%(0%) 218 D%(0%)=D5%(0%):CLOSE 4% 220 M%=D%(0%):J%=1%:L%=0%:Q$="#,###,###.##":GOSUB 700 221 DEF FNZ$(B%,A) 222 IF ABS(A)<1E+6 THEN FNZ$=LEFT(NUM$(A)+SPACE$(B%-LEN(NUM$(A))),B%):GOTO 227 223 A1=FIX(A/1E+6):A2=((A/1E+6)-A1)*1E+6:A3$=NUM$(A1):A4$=RIGHT(NUM$(A2),2%) 224 IF LEN(A4$)<7% THEN A4$="0"+A4$:GOTO 224 225 A3$=LEFT(A3$,INSTR(2%,A3$," ")-1%)+A4$:FNZ$=LEFT(A3$+SPACE$(B%-LEN(A3$)),B%) 227 FNEND 228 FOR K%=1% TO N% 230 Z%=0%:V$=MID(I1$(K%),6%,6%):S=0% 235 FOR I%=1% TO M% 240 IF MID(D4$(I%),6%,6%)<>V$ THEN 250 245 R%=I%:I%=M%:Z%=-1% 250 NEXT I% 255 IF Z%<0% THEN GOSUB 800 ! UNPACK AND PRINT D4$ 260 D1$=LEFT(I1$(K%),2%)+"-"+MID(I1$(K%),3%,2%)+"-7"+MID(I1$(K%),5%,1%) ! U I1$ 265 D$=MID(I1$(K%),12%,17%):A=VAL(MID(I1$(K%),29%,9%)):I$=MID(I1$(K%),65%,5%) 270 C$=MID(I1$(K%),38%,3%)+"-"+MID(I1$(K%),41%,2%)+"-"+MID(I1$(K%),43%,1%)+"-" 275 C$=C$+MID(I1$(K%),44%,4%)+"-"+MID(I1$(K%),48%,4%)+"."+MID(I1$(K%),52%,2%) 280 P$=MID(I1$(K%),54%,5%)+"-"+MID(I1$(K%),59%,1%) 285 PRINT #1%,TAB(8%);D1$;" ";D$;TAB(47%); ! PRINTS I1$ 290 PRINT #1%,USING Q$,ABS(A)/100%; 295 IF A>0% THEN PRINT #1%,"CR"; 300 PRINT #1%,TAB(66%);V$;" ";P$;" ";I$;" ";C$;" "; 305 PRINT #1%,USING "####",K%:S=S+A 310 IF K%=N% THEN 330 315 IF MID(I1$(K%+1%),6%,6%)<>V$ THEN 330 320 GOSUB 900 325 K%=K%+1%:GOTO 260 330 PRINT #1%,TAB(47%);:PRINT #1%,USING Q$,ABS(S)/100%; 335 IF S>0% THEN PRINT #1%,"CR*" ELSE PRINT #1%," *" 340 PRINT #1%:L%=L%+2%:GOSUB 900 345 IF S<0% THEN T1=T1+S ELSE T2=T2+S:S9%=S9%+1% IF S>0% 350 IF S>=0% AND Z%=0% THEN 385 355 IF S>=0% AND Z%<0% THEN 380 ! SET FLAG IN D4$ 360 IF S<0% AND Z%=0% THEN 370 ! CREATE NEW D.A. 365 S=-S:D4$(R%)=LEFT(D4$(R%),41%)+FNZ$(9%,S):GOTO 385 370 M%=M%+1%:D4$(M%)=LEFT(I1$(K%),28%)+"DEBIT BALANCE"+FNZ$(9%,-S) 375 GOTO 385 380 IF S>0% THEN D4$(R%)=LEFT(D4$(R%),50%)+"F":GOTO 385 382 D4$(R%)=LEFT(D4$(R%),50%)+"FZ" 385 NEXT K% 390 PRINT #1%:PRINT #1%,"NO. OF CHECKS NEEDED",S9%:PRINT #1%,TAB(26%); "TOTAL CREDIT BALANCE "; 395 PRINT #1%,USING Q$,T2/100%;:PRINT #1%,"CR**" 400 PRINT #1%,TAB(27%);"TOTAL DEBIT BALANCE "; 405 PRINT #1%,USING Q$,ABS(T1)/100%;:PRINT #1%," **":T=T1+T2 410 PRINT #1%,TAB(35%);"FINAL TOTAL ";:PRINT #1%,USING Q$,ABS(T)/100%; 415 IF T>0% THEN PRINT #1%,"CR***" ELSE PRINT #1%," ***" 418 IF M%=0% THEN 455 420 S=0%:J%=1%:L%=0%:Y%=-1%:GOSUB 600 422 GOSUB 1000 425 FOR R%=1% TO M% 428 IF MID(D4$(R%),51%,1%)="F" THEN 440 430 GOSUB 800 435 PRINT #1%:GOSUB 900 440 NEXT R% 445 PRINT #1%:PRINT #1%:PRINT #1%,TAB(26%);"TOTAL DEBIT ACCOUNTS "; 450 PRINT #1%,USING Q$,ABS(S)/100%;:PRINT #1%" ***":D%(0%)=M% 455 PRINT #1%,CHR$(129%):CLOSE 1%,2%,3%:STOP 600 PRINT #1%,CHR$(128%+1%) ! DEBIT ACCOUNT HEADING 605 PRINT #1%,TAB(8%);"SCHOOL DISTRICT NO. 91";TAB(50%); 610 PRINT #1%,"DEBIT ACCOUNT REGISTER";:GOSUB 715 615 RETURN 700 PRINT #1%,CHR$(128%+1%) ! HEADING 705 PRINT #1%,TAB(8%);"SCHOOL DISTRICT NO. 91";TAB(50%); 710 PRINT #1%,"ACCOUNTS PAYABLE REGISTER";:GOSUB 715 712 RETURN 715 PRINT #1%,TAB(89%);DATE$(0%);TAB(108%);"PAGE ";J%:PRINT #1% 720 PRINT #1%,TAB(8%);" DATE";TAB(66%);"VENDOR P.O. INVOICE"; 725 PRINT #1%,TAB(115%);"SEQUENCE":PRINT #1%,TAB(8%);"MO-DY-YR D E S C R "; 730 PRINT #1%,"I P T I O N";TAB(53%);"AMOUNT NUMBER NUMBER "; 735 PRINT #1%,"NUMBER";TAB(100%);"CODE";TAB(116%);"NUMBER":PRINT #1% 740 RETURN 800 D7$=LEFT(D4$(R%),2%)+"-"+MID(D4$(R%),3%,2%)+"-7"+MID(D4$(R%),5%,1%) 805 V1$=MID(D4$(R%),6%,6%):D8$=MID(D4$(R%),12%,17%):D9$=MID(D4$(R%),29%,13%) 810 A1=VAL(MID(D4$(R%),42%,9%)):S=S-A1 815 PRINT #1%,TAB(8%);D7$;" ";D8$;TAB(47%);:PRINT #1,USING Q$,A1/100%; 820 PRINT #1%,TAB(66%);V1$;" ";D9$:GOSUB 900 825 RETURN 900 L%=L%+1%:IF L%<38% THEN 910 905 J%=J%+1%:L%=0%:IF Y%<0% THEN GOSUB 600 ELSE GOSUB 700 910 RETURN 1000 FOR R%=1% TO M%-1% 1005 B=VAL(MID(D4$(R%+1%),6%,6%)):IF VAL(MID(D4$(R%),6%,6%))<=B THEN 1040 1010 T$=D4$(R%+1%):D4$(R%+1%)=D4$(R%) 1015 FOR I%=R% TO 2% STEP -1% 1020 IF VAL(MID(D4$(I%-1%),6%,6%))<=B THEN D4$(I%)=T$:GOTO 1040 1025 D4$(I%)=D4$(I%-1%) 1030 NEXT I% 1035 D4$(I%)=T$ 1040 NEXT R% 1045 RETURN 1050 END