Listing of file='ACPA030B' on disk='vmedia/701-2652C.wvd.zip'
# Sector 315, program filename = 'ACPA030B' 0010 REM ACPA030B, RELEASE 2.2, (09/11/80) THIS PROGRAM IS A COPYRIGHT PRODUCT OF WANG LABORATORIES INC. UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED 0170 DIM A7$11,A8$20,B6$1,B7$10 0172 DIM A8$(9)15,B8(8),B8$(5)Q6,B9$Q0,C6(10),C6$(10)Q6,C7$25,C9$1,K$(9)1 : RETURN 4000 SELECT @PARTS0$ : A8$(1)="INVOICE NO." : A8$(2)="INVOICE DATE" : A8$(3)="P.O. NO." : A8$(4)="DUE DATE" : A8$(5)="DATE PAID" : A8$(6)="CHECK NO." : A8$(7)="GROSS AMOUNT" : A8$(8)="DISCOUNT %" : A8$(9)="DISCOUNT AMOUNT" : C9$=HEX(00) : N1$()=ALL(FF) : B$(1)="T" : PACK(##)STR(B$(1),2)FROMS2 4140 DATA " ","z",8,2,"########","0","99999999",8,1,"########","0","9999999.99 ",7.2,1,"#,###,###.##","0","99.99",2.2,1,"##.########" 4150 K=0 : MAT B8=ZER : MAT C6=ZER : D6=9 : C7=-1 : B8$(),D6$,D7$=ALL(20) : C6$()=ALL(30) : PRINT AT(1,0,) 4240 GOSUB '100(" ",HEX(7F),Q0,0,"ENTER VENDOR ID (END=END OF BATCH)",2) : IF Q6$="END"OR Q6$="end"OR Q6$=HEX(1F)THEN 7890 : GOSUB '96(4) : B9$=Q6$ : GOSUB '232(1,0,B9$) : GOSUB '91 : IF J0=7OR J0=3THEN 4240 : IF J0<>0THEN 7840 : GOSUB '70(2) : PRINT AT(4,0,80);" VENDOR - ";A$;" ";A1$ : PRINT AT(6,22,0);"I - INVOICE" : PRINT TAB(22);"C - CREDIT MEMO" 4410 PRINT TAB(22);"E - PAYMENT (INV NOT ON FILE)" : PRINT TAB(22);"X - PAYMENT (INV ON FILE)" : GOSUB '100("C,I,E,X","CcIiEeXxI ",1,1,"ENTER TRANS TYPE (RETURN = INVOICE )",2) : IF Q6$=HEX(1F)THEN GOSUB '31 : A6=Q9 : K$()=ALL(31) : K$(7)="3" : IF Q6$="I"THEN C9$=" " : ELSE C9$=Q6$ 4482 Q6$="CREDIT MEMO INVOICE E-PAYMENT X-PAYMENT" : A7$=STR(Q6$,A6*12-11,11) : Q6$=" 11" : K$(5)=STR(Q6$,A6,1) : Q6$=" 22" : K$(6)=STR(Q6$,A6,1) : Q6$=" 4 " : K$(8)=STR(Q6$,A6,1) : Q6$=" 333" : K$(9)=STR(Q6$,A6,1) : PRINT AT(4,47,);"***";A7$;"***" : PRINT HEX(0A) : FOR I=1TO 4 4760 PRINT TAB(2);I;A8$(I);TAB(42);I+5;A8$(I+5) : NEXT I : IF A6=4THEN Q6$=" " : ELSE Q6$="TOTAL DIST" : PRINT TAB(2);5;A8$(5);TAB(45);Q6$ : PRINT HEX(0A) : Q6$="ACCOUNT NO. AMOUNT" : IF A6<>4THEN PRINT AT(12,13,);"* * * * * G / L D I S T R I B U T I O N * * * * *";AT(13,4);Q6$;TAB(44);Q6$;AT(14,0);10 4850 K=K+1 : IF K>9THEN 6150 4870 IF K$(K)=" "AND D6$="1"THEN 6800 : ELSE IF K$(K)=" "THEN 4850 4880 RESTORE (VAL(K$(K))-48)*5-4 : READ B6$,B7$,B6,B7,A8$ : IF K<>1AND K<>3THEN 4910 : B6=VAL(Q0$(6)) : A8$=ALL("#") : STR(A8$,B6+1,20-B6)=ALL(20) 4910 IF K>5THEN 4950 : Q6$=B8$(K) : IF K=2OR K=5THEN IF Q6$=" "THEN Q6$=Q1$ : IF Q6$<>" "THEN B7=3 4950 PRINT AT(1,0,80);"ENTER ";A8$(K); : IF K=2OR K=5THEN PRINT " (MM/DD/YY)"; : IF K=4THEN PRINT " (MM/DD/YY) OR DUE DAYS (DD)"; : IF K=1THEN PRINT " (-1 = RESTART)" : GOSUB '100(B6$,B7$,INT(B6),(B6-INT(B6))*10," ",B7) : IF Q6$=HEX(1F)THEN GOSUB '31 : IF Q6$="-1"THEN 4150 : ON KGOTO 5040,5420,5380,5420,5420,5750,5790,5870,5930 5040 IF Q6$=" "THEN 5720 : GOSUB '96(6) : B8$(1)=Q6$ : IF A6<>4THEN 5330 : C7$=STR(B9$,,VAL(Q0$(4)))&B8$(1) : GOSUB '232(2,0,C7$) 5130 GOSUB '237(2,0) : Q9=Q0+VAL(Q0$(6)) : IF STR(T7$,,Q9)<>STR(C7$,,Q9)THEN Q$="N" : J$()="No invoice found"&STR(J$()) : J$(7)="Record busy" : GOSUB '91 : IF J0<>0THEN 4880 : GOSUB '71(4,Q) : GOSUB '123(B3(Q)) : B8$(2)=U9$ : IF C3$(Q)<>" "THEN 5130 : PRINT AT(5,0,80);"INVOICE AMOUNT IS "; : A7=B(Q) : A8=ROUND((B0(Q)*B(Q)/100,2) : Q7$=ALL(00) 5250 PRINTUSING TO Q7$,"$##,###,###.##",A7;A8; : Q6=POS(Q7$="$") : Q7=POS(STR(Q7$,Q6+1)="$") : Q6$=STR(Q7$,Q6,Q7-1) : PRINT Q6$;", DISCOUNT IS "; : Q6$=STR(Q7$,Q6+Q7,31-Q6-Q7) : PRINT Q6$ 5330 PRINT AT(5+K,2,36);K;TAB(4);A8$(K);TAB(18); : PRINTUSING A8$,B8$(K) : IF D6$="1"THEN 6820 : GOTO 4850 5380 GOSUB '96(6) : B8$(K)=Q6$ : A8$=ALL("#") : GOTO 5330 5420 IF Q6$="hold"THEN Q6$="HOLD" : IF Q6$="HOLD"THEN 5550 : U9$=Q6$ : IF K=4AND POS(Q6$="/")=0AND NUM(Q6$)=80THEN CONVERT Q6$TO Q9 : ELSE Q9=9E99 : IF Q9<>9E99THEN IF INT(Q9/100)<>0THEN 5720 : IF Q9<>9E99THEN GOSUB '123(B8(6)+Q9) : GOSUB '121(U9$) : IF Q6$="E"THEN 5720 : GOSUB '123(U9) : B8$(K)=U9$ : IF K=4AND A6<3THEN 5590 : GOTO 5590 5550 IF K<>4OR A6<>2THEN 5720 : B8$(K)=Q6$ : U9=99999 : GOTO 5640 5590 ON K-2GOTO 5720,5640,5680 : B8(6)=U9 : GOTO 5330 5640 IF A6<3AND U9<B8(6)THEN 5720 : B8(7)=U9 : GOTO 5330 5680 IF U9<B8(6)THEN 5720 : B8(8)=U9 : GOTO 5330 5720 PRINT AT(3,0,80);HEX(07);"Re-enter" : GOTO 4880 5750 B8(1)=Q9 : J=6 : GOTO 6000 5790 IF Q9=0THEN 5720 : IF A6=4AND A7<Q9THEN 5720 : B8(2)=Q9 : J=7 : GOSUB 6040 : IF D6$="1"THEN 5890 : GOTO 4850 5870 IF Q9=0THEN 4850 : B8(3)=Q9 5890 B8(4)=INT((B8(2)*B8(3)+.5))/100 : K=K+1 : GOTO 5970 5930 IF Q9>=B8(2)THEN 5720 : IF A6=4AND A8<Q9THEN 5720 : B8(4)=Q9 : B8(3)=ROUND((B8(4)/B8(2)*100,8) 5970 J=8 : GOSUB 6040 : J=9 6000 GOSUB 6040 : IF D6$="1"THEN 6820 : GOTO 4850 6040 IF K$(J)=" "THEN RETURN : RESTORE (VAL(K$(J))-48)*5 : READ A8$ : Q9=POS(A8$=".") : IF J=8AND ROUND((B8(3),2)=B8(3)THEN STR(A8$,Q9+3)=ALL(20) : IF Q9<>0THEN Q9=70-Q9 : ELSE Q9=60 : PRINT AT(J,42,38);J;A8$(J);TAB(Q9); : IF J=6AND B8(1)=0THEN PRINT : ELSE PRINTUSING A8$,B8(J-5) : RETURN 6150 IF A6=4THEN 6820 : IF POS(B1$()<>" ")=0THEN 6420 : GOSUB '100("Y,N","YyY Nn",1,1,"STANDARD DISTRIBUTION (Y OR N)",2) : IF Q9=2THEN 6420 : FOR I=1TO 6 : IF B1$(I)=" "THEN 6330 : C6$(K-9)=B1$(I) : C6(K-9)=ROUND((A4(I)*B8(2)/100,2) : B8(5)=B8(5)+C6(K-9) : GOSUB 6720 : D6=K : K=K+1 6330 NEXT I : IF B8(5)=0THEN 6390 : C6(K-10)=C6(K-10)+(B8(2)-B8(5)) : B8(5)=B8(2) : K=K-1 : GOSUB 6720 6390 GOSUB 6750 : IF B8(5)<>0THEN 6820 6420 GOSUB '100("1",HEX(7F),VAL(Q0$(5)),0,"ENTER ACCOUNT # (OR END)",2) : IF Q6$=HEX(1F)THEN GOSUB '31 : IF Q6$="END"OR Q6$="end"THEN 6820 : GOSUB '96(5) : C6$(K-9)=Q6$ : GOSUB '232(3,0,C6$(K-9)) : IF Q$<>" "THEN GOSUB '91 : ELSE J0=0 : IF J0=7OR J0=3THEN 6420 : IF J0<>0THEN 7840 : GOSUB '75(6) : IF O1$="2"AND O3$<>"M"THEN 6570 6540 PRINT AT(3,0,80);HEX(07);"Non-postable account, re-enter" : C6$(K-9)=" " : GOTO 6420 6570 GOSUB 6720 : GOSUB '100("0","9999999.99",7,2,"ENTER AMOUNT",1) : IF Q6$=HEX(1F)THEN GOSUB '31 : C6(K-9)=Q9 : B8(5)=B8(5)+Q9 : GOSUB 6720 : GOSUB 6750 : IF D6$="1"THEN 6820 : D6=K : K=K+1 : IF K-9>10THEN 6820 : GOTO 6420 6720 IF K>14THEN PRINT AT(K-1,41,39); : ELSE PRINT AT(K+4,1,39); : PRINTUSING "## ######## $#,###,###.##",K,C6$(K-9),C6(K-9) : RETURN 6750 PRINT AT(10,59); : PRINTUSING "$#,###,###.##",B8(5) : RETURN 6800 PRINT AT(3,0,80);HEX(07);"Re-enter" 6820 GOSUB '100("-1","19",2,0,"ENTER ITEM NO. TO CORRECT (0=NONE, -1=VOID)",1) : IF Q6$=HEX(1F)THEN GOSUB '31 : ON Q9+2GOTO 4150,6980 : D6$="1" : K=Q9 : IF K<10THEN 4870 : IF A6=4THEN 6800 : IF K>D6+1THEN 6800 : IF K=D6+1THEN D6=K : B8(5)=B8(5)-C6(K-9) : C6$(K-9)=" " : C6(K-9)=0 : GOSUB 6720 : GOSUB 6750 : GOTO 6420 6980 D6$=" " : IF A6=4THEN B8(5)=B8(2) : IF B8(5)=B8(2)THEN 7050 : PRINT AT(3,0,80);HEX(07);"Amount distributed out of balance. Difference = "; : PRINTUSING "#,###,###.##-",B8(2)-B8(5) : GOTO 6820 7050 IF A6=1THEN MAT C6=(-1)*C6 : IF A6=1OR A6=4THEN B8(5)=-B8(5) 7080 IF J0=7THEN GOSUB '254 : IF Q6$=HEX(1F)THEN GOSUB '31 : GOSUB '232(1,1,B9$) : GOSUB '91 : IF J0=7THEN 7080 : IF J0<>0THEN 7840 : GOSUB '70(2) : IF A6<>4THEN A=A+B8(5) : IF A6<>3THEN A2=A2+B8(5) : IF A6>2THEN A0=B8(8) : DBACKSPACE #2,1S : GOSUB '60(2) : GOSUB '238(1) : D9(A6)=D9(A6)+ABS(B8(5)) : IF A6<>4THEN D8=D8+B8(5) : C7$=STR(B9$,1,Q0)&B8$(1) 7260 C7=C7+1 : CONVERT C7TO STR(C7$,Q0+VAL(Q0$(6))+1,2),(##) : GOSUB '233(2,1,C7$,0) : J$(4),J$(7)=" " : GOSUB '91 : IF J0=4OR J0=7THEN 7260 : IF J0<>0THEN 7840 : O$()=ALL(FF) : IF Q=1THEN DATA SAVE DC #4,O$() : ELSE DSKIP #4,1S : DBACKSPACE #4,1S : C0$(Q)=B9$ : C1$(Q)=B8$(1) : C2$(Q)=STR(C7$,Q0+VAL(Q0$(6))+1) : C3$(Q)=C9$ : C4$(Q)=B8$(3) : C5$(Q)=" " : B(Q)=B8(2) 7400 B0(Q)=B8(3) : B2(Q)=B8(1) : B3(Q)=B8(6) : B4(Q)=B8(7) : B5(Q)=B8(8) : B1(Q)=0 : GOSUB '61(4,Q) : GOSUB '238(2) : LIMITS T#4,Q6,Q7,Q8 : Q8=Q7-Q6 : Q7=MOD(VAL(STR(T$(2),4),2)+VAL(STR(T$(2),12)),65536) : IF Q7/Q8>.8THEN PRINT AT(3,0,80);HEX(07);"A/P Open Item File is";ROUND((Q 7/Q8*100,0);"% full" : IF Q7/Q8>.95THEN D6$="F" 7540 IF A6=4THEN 7710 : H1$="AP" : H=B8(6) : H3$=A1$ : H4$=B9$ : H5$=B8$(1) : FOR I=1TO 10 : IF C6$(I)=" "THEN 7670 : IF C6(I)=0THEN 7670 : H0$=C6$(I) : H1=C6(I) : GOSUB '63(E8) : IF I<10AND C6$(I+1)="00000000"THEN I=10 7670 NEXT I : LIMITS T#E8,Q6,Q7,Q8 : IF (Q8-Q6+1)/(Q7-Q6-1)>.95THEN D6$="F" 7710 A9=A9+1 : MAT REDIM N1$(3)80 : Q6$=HEX(A0)&STR(Q0$(4),,1)&HEX(A0155001A0)&STR(Q0$(6),,1)&HEX(50035003500 36004A00862056805) : $PACK(F=Q6$)N1$(A9)FROMA$,A1$,A6,B8$(1),B8(6),B8(7),B8(8),B8(1),B8$(3),B8 (2),B8(3) : MAT REDIM N1$(5)49 : IF A9<3AND D6$<>"F"THEN 4150 : GOSUB '48(10) : N1$()=ALL(FF) : A9=0 7790 IF Q9<.95AND D6$<>"F"THEN 4150 : PRINT AT(1,0,80);"Program will be terminated - Transaction Audit File ful l" : GOSUB '254 : Q6$=HEX(1F) : GOTO 7890 7840 PRINT AT(1,0,80);;HEX(07);"FILE ERROR - CORRECT & RESTART" : Q6$="VENDOR MASTER CHART OF ACCOUNTSA/P OPEN ITEM" : PRINT AT(3,17,63);STR(Q6$,T6*18-17,18) : GOSUB '254 7890 DEFFN'31 : IF Q6$=HEX(1F)THEN D6$="X" : ELSE D6$="A" : PRINT AT(1,0,880) : PRINT AT(3,0);"**Loading next module**" : IF A9<>0THEN GOSUB '48(10) : Q6=VAL(Q0$(6)) : STR(M5$,8)="A" : LOAD TM5$4000, 9999 DEFFN'29"Q$= ";HEX(22);"ACPA030B";HEX(22);":SCRATCH T Q$:SAVE T$()Q$";HEX (0D)