2 ! UNENCUMBER AND EXPENDITURE REPORT 5 ! PROGRAM NAME:"UNEXRT" - BY JAC 30 OPEN "DK1:ACCPAY.UER" AS FILE 1% 35 DIM #1%,X1$(1400%)=128%,X1%(0%),U2%(0%) 36 INPUT "ENTER DATE AS:MM-DD-YY",D9$ 37 N%=INSTR(1%,D9$,"-"):IF N%<2% OR N%>3% THEN 36 38 IF N%=2% THEN D9$=" "+D9$ 39 N%=INSTR(4%,D9$,"-"):IF N%<5% OR N%>6% THEN 36 40 IF N%=5% THEN D9$=LEFT(D9$,3%)+" "+RIGHT(D9$,4%) 41 INPUT "HAS THIS REPORT BEEN RUN BEFORE? - Y OR N",A$:X1$(0%)=D9$+A$ 43 OPEN "DK1:ACCPAY.PO" AS FILE 2% 45 DIM #2%,P1$(1000%)=64%,P%(0%):N%=P%(0%) 55 X1$(K%)=P1$(K%)+SPACE$(15%)+CVT%$(K%) FOR K%=1% TO N% ! MOVES P. O. 65 CLOSE 2%:OPEN "DK1:ACCPAY.GJ" AS FILE 2% 70 DIM #2%,G1$(50%)=128%,G%(0%):M%=N%:N%=G%(0%) 80 X1$(M%+K%)=G1$(K%)+CVT%$(K%) FOR K%=1% TO N% ! MOVE GJ 90 CLOSE 2%:OPEN "DK1:ACCPAY.INV" AS FILE 2% 95 DIM #2%,I1$(600%)=128%,I%(0%):M%=M%+N%:N%=I%(0%) 105 X1$(M%+K%)=I1$(K%)+CVT%$(K%) FOR K%=1% TO N% 108 X1%(0%)=M%+N%:CLOSE 1%,2%:CHAIN "DT0:ARGUER.BAS" 110 OPEN "DK1:ACCPAY.UER" AS FILE 1% 115 ON ERROR GOTO 1000 132 DIM #1%,X$(1400%)=128%,X%(0%),U1%(0%):M%=X%(0%) 133 D9$=LEFT(X$(0%),8%):A$=MID(X$(0%),9%,1%):D8$=LEFT(D9$,2%)+MID(D9$,4%,2%) 135 OPEN "DK1:GLFILE.FND[2,4]" AS FILE 2% 140 DIM #2%,F$(20%)=32%,F%(0%) 145 OPEN "DK1:GLFILE.EXP[2,4]" AS FILE 3% 150 DIM #3%,U1$(4000%)=64%,U%(0%) 155 IF A$="N" THEN 165 160 U%(0%)=U%(0%)-U1%(0%):U%(0%)=0% IF U%(0%)<0% 165 U1%(0%)=0%:N%=F%(0%):O%=U%(0%) 170 OPEN "LP:" FOR OUTPUT AS FILE 4%,MODE 66% 172 DEF FNZ$(B%,A) 173 IF ABS(A)<1E+6 THEN FNZ$=LEFT(NUM$(A)+SPACE$(B%-LEN(NUM$(A))),B%):GOTO 178 174 A1=FIX(A/1E+6):A2=((A/1E+6)-A1)*1E+6:A3$=NUM$(A1):A4$=RIGHT(NUM$(A2),2%) 175 IF LEN(A4$)<7% THEN A4$="0"+A4$:GOTO 175 176 A3$=LEFT(A3$,INSTR(2%,A3$," ")-1%)+A4$:FNZ$=LEFT(A3$+SPACE$(B%-LEN(A3$)),B%) 178 FNEND 180 I%=1%:Q$="#,###,###.##":S$=SPACE$(9%):J%=0% 185 FOR K%=1% TO N% 190 F1$=LEFT(F$(K%),2%):F2$=MID(X$(I%),41%,2%):IF F1$<>F2$ THEN 545 195 J%=J%+1%:L%=0%:GOSUB 1100 200 T1=0%:T2=0%:T3=0% ! ZERO FUND TOTALS 205 S1=0%:S2=0%:Z1%=0% ! ZERO TRANACTION TOTALS 210 D1$=LEFT(X$(I%),2%)+"-"+MID(X$(I%),3%,2%)+"-7"+MID(X$(I%),5%,1%) 215 V$=MID(X$(I%),6%,6%):D$=MID(X$(I%),12%,17%):T$=MID(X$(I%),29%,9%) 220 C$=MID(X$(I%),38%,3%)+"-"+MID(X$(I%),41%,2%)+"-"+MID(X$(I%),43%,1%)+"-" 225 C$=C$+MID(X$(I%),44%,4%)+"-"+MID(X$(I%),48%,4%)+"."+MID(X$(I%),52%,2%) 230 P$=MID(X$(I%),54%,5%):O$=P$+"-"+MID(X$(I%),59%,1%):F3$=MID(X$(I%),64%,1%) 235 I$=MID(X$(I%),65%,5%):F4$=MID(X$(I%),70%,1%):E$=MID(X$(I%),71%,9%) 240 IF F3$="4" THEN T=0%:E=VAL(T$):GOTO 250 245 T=VAL(T$):E=-VAL(E$) 250 PRINT #4%,CVT$%(MID(X$(I%),80%,2%));TAB(8%);D1$;" ";V$;" ";I$;TAB(37%); O$;" "; 255 IF E=0% THEN 270 260 PRINT #4%,USING Q$,ABS(E)/100%;:S1=S1+E 265 IF E<0% THEN PRINT #4%,"CR"; 270 PRINT #4%,TAB(60%); 275 IF T=0% THEN 290 280 PRINT #4%,USING Q$,ABS(T)/100%;:S2=S2+T 285 IF T<0% THEN PRINT #4%,"CR"; 290 IF LEFT(C$,3%)=" " THEN PRINT #4%,TAB(102%);D$;:GOTO 300 295 PRINT #4%,TAB(79%);C$;" ";D$; 300 Z%=0%:PRINT #4%,TAB(120%); 305 IF F3$<>"4" THEN 340 ! CHECK FOR ERRORS. 310 IF I%=M% OR MID(X$(I%+1%),41%,2%)<>F1$ THEN 360 315 IF MID(X$(I%+1%),64%,1%)<>"4" THEN 360 320 IF P$<>MID(X$(I%+1%),54%,5%) THEN 360 325 IF MID(X$(I%),65%,2%)="GJ" OR MID(X$(I%+1%),65%,2%)="GJ" THEN 335 330 PRINT #4%,"DUP. PO #":GOTO 365 335 PRINT #4%,"REIN. EXT. PO":GOTO 365 340 IF P$="99999" OR P$=" " THEN 360 345 IF I%=1% OR MID(X$(I%-1%),41%,2%)<>F1$ OR MID(X$(I%-1%),54%,5%)<>P$ THEN 363 355 IF V$<>MID(X$(I%-1%),6%,6%) THEN PRINT #4%,"NO VENDOR #":GOTO 365 360 PRINT #4%:GOTO 375 363 PRINT #4%,"NO PO #" 365 Z%=-1%:S1=S1-E:S2=S2-T 370 X$(I%)=LEFT(X$(I%),63%)+"K"+RIGHT(X$(I%),65%):I%=I%+1% 375 GOSUB 1200 379 IF Z%=0% THEN 385 380 IF Z%<0% AND I%<=M% THEN 210 382 P$=MID(X$(I%-1%),54%,5%):F3$=MID(X$(I%-1%),64%,1%):F4$=MID(X$(I%-1%),70%,1%):GOTO 435 385 I%=I%+1%:IF I%>M% THEN K%=N%:GOTO 435 390 F2$=MID(X$(I%),41%,2%):IF F1$<>F2$ THEN 435 395 P1$=MID(X$(I%),54%,5%) 400 IF F3$="4" AND P$<>P1$ THEN T1=T1+S1:GOTO 205 405 IF F3$="4" AND P$=P1$ THEN S%=I%-1%:GOTO 210 410 IF P$="99999" OR P$=" " THEN T3=T3+S2:GOTO 205 420 IF P$=P1$ THEN 210 425 GOSUB 1300:GOTO 205 ! PRINT TRANSACTION BALANCE. 435 IF P$="99999" OR P$=" " THEN T3=T3+S2:GOTO 455 440 IF F3$="4" THEN T1=T1+S1:GOTO 455 450 GOSUB 1300 ! PRINT TRANSACTION BALANCE 455 PRINT #4% ! PRINT FUND TOTALS 460 PRINT #4%,TAB(8%);"FUND TOTALS";TAB(28%);"CURRENT P.O. OUTSTANDING"; 465 PRINT #4%,TAB(57%);:PRINT #4%,USING Q$,T1/100%;:PRINT #4%," **" 470 PRINT #4%:PRINT #4%,TAB(35%);"99999 EXPENDITURE";TAB(57%); 475 PRINT #4%,USING Q$,ABS(T3)/100%; 480 IF T3<0% THEN PRINT #4%,"CR*" ELSE PRINT #4%," *" 485 PRINT #4%,TAB(36%);"P.O. EXPENDITURE";TAB(57%); 490 PRINT #4%,USING Q$,ABS(T2)/100%; 495 IF T2<0% THEN PRINT #4%,"CR*" ELSE PRINT #4%," *" 500 PRINT #4%,TAB(35%);"TOTAL EXPENDITURE";TAB(57%); 505 T4=T2+T3:PRINT #4%,USING Q$,ABS(T4)/100%; 510 IF T4<0% THEN PRINT #4%,"CR**" ELSE PRINT #4%," **" 515 F1=F1+T1:F2=F2+T4:IF T4=0% THEN 530 520 O%=O%+1%:U1%(0%)=U1%(0%)+1%:U1$(O%)="0000100000223000"+D8$ 525 U1$(O%)=U1$(O%)+"UNENCUMBER SUMMARY"+SPACE$(14%)+"OE"+FNZ$(10%,-T4) 530 IF VAL(RIGHT(D8$,3%))<25% OR T1=0% THEN 545 535 O%=O%+1%:U1%(0%)=U1%(0%)+1%:U1$(O%)="000"+F1$+"00000225000"+D8$ 540 U1$(O%)=U1$(O%)+"UNENCUMBER SUMMARY"+SPACE$(14%)+"DP"+FNZ$(10%,-T1) 545 NEXT K% 550 IF L%<45% THEN 560 555 J%=J%+1%:GOSUB 1100 560 PRINT #4%:PRINT #4%,TAB(8%);"FINAL TOTALS" ! PRINT FINAL TOTALS. 565 PRINT #4%,TAB(28%);"CURRENT P.O. OUTSTANDING";TAB(57%); 570 PRINT #4%,USING Q$,F1/100%;:PRINT #4%," ***" 575 PRINT #4%,TAB(35%);"TOTAL EXPENDITURE";TAB(57%); 580 PRINT #4%,USING Q$,F2/100%;:PRINT #4%," ***":PRINT #4%,CHR$(128+1%) 590 X%(0%)=M%:F%(0%)=N%:U%(0%)=O%:CLOSE 1%,2%,3%,4%:STOP 1000 IF ERR<>14% AND ERR<>8% THEN ON ERROR GOTO 0 1005 PRINT "WAITING FOR LP:":SLEEP(30%):RESUME 1100 PRINT #4%,CHR$(128+1%) 1105 PRINT #4%,TAB(8%);RIGHT(F$(K%),3%);TAB(48%);"UNENCUMBER AND EXPENDITUR"; 1110 PRINT #4%,"E REPORT";TAB(92%);D9$;TAB(108%);"PAGE ";J%:PRINT #4% 1115 PRINT #4%,TAB(8%);" DATE VENDOR INVOICE P.O. L P.O."; 1120 PRINT #4%," EXPENDITURE BUDGET" 1125 PRINT #4%,"INDEX MO-DY-YR NUMBER NUMBER NUMBER N AMOUNT"; 1130 PRINT #4%," AMOUNT";TAB(87%);"CODE";TAB(102%);"DESCRIPTION" 1135 PRINT #4%:RETURN 1200 L%=L%+1%:IF L%<52% THEN 1210 1205 J%=J%+1%:L%=0%:GOSUB 1100 1210 RETURN 1300 IF F4$="D" OR S1<=0% THEN PRINT #4%,TAB(47%);"COMPLETE";:Z1%=1%:GOTO 1310 1305 PRINT #4%,TAB(45%);:PRINT #4%,USING Q$,S1/100%;:PRINT #4%," *"; 1306 T1=T1+S1 1310 IF S2=0% THEN PRINT #4%:GOTO 1325 1315 PRINT #4%,TAB(60%);:PRINT #4%,USING Q$,ABS(S2)/100%;:T2=T2+S2 1320 IF S2<0% THEN PRINT #4%,"CR*" ELSE PRINT #4%," *" 1325 PRINT #4%:L%=L%+1%:GOSUB 1200 1330 IF Z1%=0% THEN 1370 1335 IF MID(X$(S%),64%,1%)<>"4" THEN 1355 1340 C1$=MID(X$(S%),38%,16%) 1345 X$(S%)=LEFT(X$(S%),63%)+"K"+RIGHT(X$(S%),65%):S%=S%+1% 1350 IF S%S$ THEN 1340 1360 IF MID(X$(S%),65%,2%)="GJ" THEN S%=S%+1%:GOTO 1350 1366 X$(S%)=LEFT(X$(S%),37%)+C1$+RIGHT(X$(S%),54%):S%=S%+1%:GOTO 1350 1370 IF MID(X$(S%),64%,1%)<>"4" THEN 1385 1375 A%=VAL(MID(X$(S%),59%,1%)):A%=A%+1%:A$=MID(NUM$(A%),2%,1%) 1378 C1$=MID(X$(S%),38%,16%) 1380 X$(S%)=LEFT(X$(S%),28%)+FNZ$(9%,S1)+MID(X$(S%),38%,21%)+A$+RIGHT(X$(S%),60%) 1382 S%=S%+1%:IF S%S$ THEN 1405 1390 IF MID(X$(S%),65%,2%)="GJ" THEN 1382 1398 X$(S%)=LEFT(X$(S%),37)+C1$+RIGHT(X$(S%),54):GOTO 1382 1405 X$(S%)=LEFT(X$(S%),63%)+"K"+RIGHT(X$(S%),65%):S%=S%+1%:GOTO 1382 1415 RETURN 1420 END