2 ! COMPUTES OUTSTANDING BALANCE OF P.O. FOR EACH FISCAL YEAR. 5 ! PROGRAM NAME:"POOUT" - BY JAC. 10 OPEN "DK1:ACCPAY.PO" AS FILE 1%:DIM #1%,P$(1000%)=64%,P%(0%):N%=P%(0%) 12 INPUT "INPUT DESIRED DATE AS: MM-DD-YY";Y$:N1%=INSTR(1%,Y$,"-"):IF N1%<2% OR N1%>3% THEN 12 ELSE IF N1%=2% THEN Y$=" "+Y$ 13 N1%=INSTR(4%,Y$,"-"):IF N1%<5% OR N1%>6% THEN 12 ELSE IF N1%=5% THEN Y$=LEFT(Y$,3%)+" "+RIGHT(Y$,4%) 14 C1%=VAL(LEFT(Y$,2%)):C2%=VAL(MID(Y$,4%,2%)):C3%=VAL(RIGHT(Y$,7%)) 15 INPUT "DOES PO FILE NEED TO BE ARRANGED FOR THIS REPORT? - Y OR N";X$: IF X$="N" THEN 105 ELSE IF X$<>"Y" THEN 15 20 OPEN "DK1:ACCPAY.PO1" AS FILE 2%:DIM #2%,P1$(1000%)=64% 25 OPEN "DK1:ACCPAY.ARG" AS FILE 3%:DIM #3%,J(1000%):DIM J%(1000%),I%(1000%) 30 J(K%)=VAL(MID(P$(K%),54%,5%)) FOR K%=1% TO N% 35 I%(K%)=K% FOR K%=1% TO N% 40 FOR K%=1% TO N%-1%:IF J(K%)<=J(K%+1%) THEN 55 ELSE T=J(K%+1%): J(K%+1%)=J(K%):S%=I%(K%+1%):I%(K%+1%)=I%(K%) 45 FOR J%=K% TO 2% STEP -1%:IF J(J%-1%)<=T THEN J(J%)=T:I%(J%)=S%:GOTO 55 50 J(J%)=J(J%-1%):I%(J%)=I%(J%-1%):NEXT J%:J(1%)=T:I%(1%)=S% 55 NEXT K% 60 P1$(K%)=P$(I%(K%)) FOR K%=1% TO N% 65 J%(K%)=VAL(MID(P1$(K%),43%,1%)) FOR K%=1% TO N% 70 I%(K%)=K% FOR K%=1% TO N% 75 FOR K%=1% TO N%-1%:IF J%(K%)<=J%(K%+1%) THEN 90 ELSE T%=J%(K%+1%): J%(K%+1%)=J%(K%):S%=I%(K%+1%):I%(K%+1%)=I%(K%) 80 FOR J%=K% TO 2% STEP -1%:IF J%(J%-1%)<=T% THEN J%(J%)=T%:I%(J%)=S%:GOTO 90 85 J%(J%)=J%(J%-1%):I%(J%)=I%(J%-1%):NEXT J%:J%(1%)=T%:I%(1%)=S% 90 NEXT K% 95 P$(K%)=P1$(I%(K%)) FOR K%=1% TO N% 100 CLOSE 1%,2%,3%:KILL "DK1:ACCPAY.PO1":KILL "DK1:ACCPAY.ARG": OPEN "DK1:ACCPAY.PO" AS FILE 1% 105 OPEN "LP:" FOR OUTPUT AS FILE 2%,MODE 66%:B%=-1%:Q$="#,###,###.##":T=0%:F=0% :J%=0%:K%=1%:D4$=MID(DATE$(0%),8%,1%):F1$="\\-\\-\\ \ \ \"+ SPACE$(15%)+"\ "+Q$+" \ \-! ### \ \-\\-!-\ \-\ \!\\":GOSUB 200 110 D$="OUTSTANDING P.O.'S FOR FISCAL YEAR ENDING JUNE 30, 19"+D4$+L1$+" AS OF "+ Y$:H%=K%:GOSUB 300 125 P1%=VAL(P1$):P2%=VAL(P2$):P3%=VAL(P3$):D%=0%:A=VAL(A$) 130 IF P3%+1%12% THEN P1%=1% 155 IF C1%<>P1% THEN D%=D%+30%:GOTO 150 160 PRINT #2%,USING F1$,P1$,P2$,P3$,V$,V1$,A/100%,N$,A1$,D%,L$,F$,L1$,P$,B$,".", B1$:T=T+A:L%=L%+1%:IF L%>54% THEN GOSUB 300 165 K%=K%+1%:L2$=L1$+"":GOSUB 200:IF K%<=N% AND L2$=L1$ THEN 125 170 GOSUB 250:IF K%<=N% THEN 110 175 PRINT #2%:PRINT #2%," TOTAL NUMBER OF P.O.'S",N%:PRINT #2%, " TOTAL AMOUNT OUTSTANDING";TAB(36%);:PRINT #2%,USING Q$+"\\",F/100%, "**":CLOSE 1%,2%:STOP 200 B1%=K%/8%+1%:IF B1%<>B% THEN GET #1%,RECORD B1%:B%=B1% 205 O%=(K%-(B%-1%)*8%)*64%:FIELD #1%,O% AS E$,2% AS P1$,2% AS P2$,1% AS P4$, 6% AS V$,17% AS V1$,9% AS A$,3% AS L$,2% AS F$,1% AS L1$,4% AS P$, 4% AS B$,2% AS B1$,5% AS N$,1% AS A1$:P3$=D4$+P4$:RETURN 250 PRINT #2%:PRINT #2%," NUMBER OF P.O.'S",K%-H%:PRINT #2%," AMOUNT OF ";D$: PRINT #2%,TAB(36%);:PRINT #2%,USING Q$+"!",T/100%,"*":F=F+T:T=0%:RETURN 300 PRINT #2%,CHR$(130%):J%=J%+1%:L%=0% 305 PRINT #2%," "+D$+" PAGE ";J%:PRINT #2% 310 PRINT #2%," PO DATE VDR NO VENDOR NAME";TAB(42%);"AMOUNT PO NO-A AGE"; TAB(74%);"CODE":PRINT #2%:RETURN 320 END