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)