Listing of file='INVC030C' on disk='vmedia/701-2607C.wvd.zip'
# Sector 524, program filename = 'INVC030C' 0010 REM INVC030C, RELEASE 2.1, (04/09/80) THIS PROGRAM IS A COPYRIGHT PRODUCT OF WANG LABORATORIES INC. UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED 0170 DIM K3$(L9)Q0,K4$(L9)24,K5$(L9)1,K6(5,L9),K7$(L9)1,K8$(L9)2 : GOTO 4000 4000 SELECT @PARTS0$ : M7=1 : PRINT HEX(03);"ENTER INVOICES - LINE ITEMS";TAB(30);"** ";H7$;" **" : A,G7,I1,J1,J2=0 : P1=1 : IF P4$="P"THEN GOSUB '81 4060 PRINT AT(3,0,0);"SFK '31 is not always functional during line item entry. ";HEX(070D0A);"CUST ID ";C1$;" NAME ";B0$;TAB(45);"INVOICE NO. ";HEXOF(S TR(B$,,4));HEX(0D0A);TAB(4);"PRODUCT ID DESCRIPTION QTY UNT PRICE DISC% NET AMT" 4080 I1=I1+1 : J1=J1+1 : A8$=" " 4110 I9=1 : J9=5 : K5$(I1),K7$(I1)="N" : IF J0$="M"THEN J9=6 : IF J0$="A"THEN K5$(I1)="Y" : FOR I=I9TO J9 : ON IGOTO ,4500,4570,4750,4790,4900 : Q7$=" (DE = DESC ONLY, RETURN = NO PRODUCT ID" : IF A8$="9"THEN Q7$=Q7$&", VOID = NO LINE)" : ELSE Q7$=Q7$&", END = DONE)" 4220 GOSUB '34(K3$(I1),0,"PRODUCT ID",Q7$," ",HEX(7F),Q0,0,2) : IF Q6$="de"OR Q6$="void"OR Q6$="end"THEN $TRAN(Q6$,"DdEeIiNnOoVv")R : K3$(I1)=Q6$ : IF Q6$=" "OR Q6$="DE"THEN 4920 : I=J9 : IF A8$="9"AND Q6$="VOID"THEN 4920 : IF A8$=" "AND Q6$="END"THEN 4950 : I=0 : GOSUB '96(2) : K3$(I1)=Q6$ : GOSUB '232(2,1,K3$(I1)) : GOSUB '91 4350 ON J0GOTO ,,4450,,,,4950 : IF J0>0THEN 5750 : GOSUB '52(3) : K4$(I1)=F2$ : K8$(I1)=F3$ : CONVERT P2$TO Q9 : K6(2,I1)=H(Q9) : K7$(I1)="Y" : I=2 : GOTO 4920 4450 GOSUB '35 : GOSUB '100("Y,N","YyY Nn",1,1,"IS PRODUCT ID VALID (Y OR N)",2) : IF Q6$="Y"THEN I=1 : GOTO 4950 4500 GOSUB '34(K4$(I1),0,"PRODUCT DESCRIPTION"," "," ",HEX(7F),24,0,2) : K4$(I1)=Q6$ : IF K3$(I1)<>"DE"THEN 4920 : K3$(I1)=" " : I=J9 : GOTO 4920 4570 GOSUB '34(" ",K6(5,I1),"QUANTITY SHIPPED"," ","0","99999",5,0,1) : K6(1,I1)=Q9 : IF H$="Y"THEN GOSUB '34(" ",K6(1,I1),"QUANTITY ORDERED"," ","0","99999",5 ,0,1) : K6(5,I1)=Q9 : IF Q9=0THEN 4830 : IF K7$(I1)="N"THEN 4920 : Q9=1 : FOR J=1TO 5 : IF K6(1,I1)>=H1(J)AND H1(J)>0THEN Q9=J : NEXT J : IF MAX(H1())>0THEN K6(2,I1)=H(Q9) 4690 GOSUB '35 : GOSUB '100("Y,N","YyY Nn",1,1,"IS UNIT PRICE OK (Y OR N)",2) : IF Q6$="N"THEN 4950 : I=I+1 : GOTO 4920 4750 GOSUB '34(" ",K6(2,I1),"UNIT PRICE"," ","0","99999.99",5,2,1) : K6(2,I1)=Q9 : GOTO 4920 4790 GOSUB '34(" ",K6(3,I1),"DISCOUNT %"," ","0","99.99",2,2,1) : K6(3,I1)=Q9 : GOTO 4920 4830 I=J9 : K6(2,I1)=0 : GOSUB '34(" ",K6(4,I1),"NET AMOUNT"," ","-99999.99","99999.99",5,2,1) : K6(4,I1)=Q9 : GOSUB '35 : IF J0$<>"M"THEN 4950 4900 GOSUB '34(K5$(I1),0,"TAXABLE"," (Y OR N)","Y,N","YyY Nn",1,1,2) : K5$(I1)=Q6$ 4920 Q9=K6(1,I1)*K6(2,I1) : IF K6(1,I1)>0THEN K6(4,I1)=Q9-ROUND((Q9*K6(3,I1)/100,2) : GOSUB '35 4950 NEXT I : IF A8$="9"THEN 5070 : IF K3$(I1)<>"END"THEN 5010 : IF I1=1THEN 5530 : GOTO 5110 5010 Q6$="N" : IF K6(4,I1)>=1E5THEN PRINT AT(3,0,80);"Net amount must not exceed $99999. 99. Break this line into more than one line.";HEX(07) : ELSE GOSUB '100("Y,N","YyY Nn",1,1,"IS ENTRY LINE OK (Y OR N)",2) : IF Q6$="Y"THEN 5070 : A8$=" " : GOSUB '238(2) : GOTO 5240 5070 GOSUB '36 : GOSUB '238(2) : IF A8$="9"THEN 5160 : IF I1<L9THEN 4080 5110 K4=J1-I1+1 : J3,K5=J1 : A8$=" " : IF K3$(I1)="END"THEN K5=K5-1 5160 GOSUB '100("-1","99",2,0,"ENTER LINE NO. TO CORRECT (0=NONE, -1=VOID)",1 ) : IF Q6$=HEX(1F)OR Q9<0THEN GOSUB '31 : IF Q9=0THEN 5530 : IF Q9<K4OR Q9>K5THEN 5290 : A8$="9" : J1=Q9 : I1=MOD(Q9-1,L9)+1 : GOSUB 5320 5240 K4$(I1),K5$(I1),K7$(I1),K8$(I1)=" " : K6(1,I1),K6(2,I1),K6(3,I1),K6(4,I1),K6(5,I1)=0 : GOSUB '35 : GOTO 4110 5290 PRINT AT(3,0,80);HEX(07);"Re-enter." : GOTO 5160 5320 IF J0=7THEN GOSUB '254 : GOSUB '232(2,1,K3$(I1)) : IF Q$="N"THEN RETURN : GOSUB '91 : IF J0=7THEN 5320 : IF J0>0THEN 5750 : M7=-1 : DSKIP #3,1S : GOSUB '36 : M7=1 : GOSUB '238(2) : RETURN 5450 DEFFN'31 : I1=1 : STR(M5$,8)="G" 5480 IF I1>L9OR K3$(I1)="END"THEN LOAD TM5$4000, : IF K3$(I1)<>"VOID"THEN GOSUB 5320 : I1=I1+1 : GOTO 5480 5530 K=0 : J1=J3 : I=J2 5560 K=K+1 : IF K3$(K)="VOID"THEN 5660 : I=I+1 : P$(I)=K3$(K) : IF P$(I)="END"THEN 5740 : GOSUB 6020 : A=A+B4(I) : IF K5$(K)="Y"THEN G7=G7+B4(I) : IF P4$="P"THEN GOSUB '82(I) : IF I=N0THEN GOSUB 6130 5660 IF K<L9THEN 5560 : J2=I : PRINT AT(0,52);"LAST PRODUCT = ";K3$(L9);AT(6,0,) : K3$(),K4$(),K5$(),K7$(),K8$()=" " : MAT K6=ZER : I1=0 : GOTO 4080 5740 GOSUB 6130 5750 STR(M5$,8)="D" : IF Q$>" "THEN STR(M5$,8)="F" : LOAD TM5$4000, 6020 P1$(I)=K4$(K) : C0$(I)=K5$(K) : D0$(I)=K8$(K) : B(I)=K6(1,K) : B5(I)=K6(5,K) : IF B5(I)<>B(I)THEN B0$(I)="B" : B1(I)=K6(2,K) : B2(I)=K6(3,K) : B4(I)=K6(4,K) : RETURN 6130 F6=F6+1 : PACK(##)STR(B$,6,1)FROMF6 : GOSUB '233(3,1,B$,0) : GOSUB '91 : IF J0>0THEN 5750 : GOSUB '44(1,2) : F7=F8-MOD(VAL(STR(T$(2),4),2)+VAL(STR(T$(2),12)),65536) : GOSUB '238(3) : P$(),P1$(),B0$(),C0$(),D0$()=" " : MAT B=ZER : MAT B1=ZER : MAT B2=ZER : MAT B4=ZER : MAT B5=ZER : I=0 : RETURN 6300 DEFFN'36 : IF I2$>"1"OR K7$(I1)="N"THEN RETURN : DBACKSPACE #3,1S : GOSUB '52(3) : T6=2 : Q$="N" : IF F1$<>K3$(I1)THEN 5750 : E3=E3+K6(1,I1)*M6*M7 : DBACKSPACE #3,1S : GOSUB '42(3) : IF E+E1-E3>E4OR M7=-1THEN RETURN : PRINT AT(3,0,80);"Product ";F1$;" is below minimum." : Q6$=STR(G2$)&F1$ : STR(T5$(4),,3)=HEX(000001) : GOSUB '234(4,0,Q6$,0) : IF Q$<>"S"THEN RETURN 6460 PRINT AT(1,0,80);HEX(07);"P.O. Activity file is full." : GOSUB '254 : RETURN 6500 DEFFN'34(Q6$,Q9,G5$(G0),Q7$,Q$(1),Q$(2),Q3,Q4,Q5) : PRINT AT(1,0,80);"ENTER ";G5$(G0);Q7$ : IF Q6$>" "AND Q5=2THEN Q5=3 : IF Q9<>0AND Q5=1THEN Q5=0 : GOSUB '100(Q$(1),Q$(2),Q3,Q4," ",Q5) : RETURN 6570 DEFFN'35 : PRINT AT(5+I1,0,80) : PRINTUSING "##)",J1; : PRINT TAB(4);K3$(I1);TAB(5+Q0);STR(K4$(I1),,MIN(37-Q0,24));TAB(42); : IF K6(1,I1)>0THEN PRINTUSING 6720,K6(1,I1); : PRINT TAB(48); : IF K6(2,I1)>0THEN PRINTUSING 6710,K6(2,I1); : PRINT TAB(58); : IF K6(3,I1)>0THEN PRINTUSING "##.##",K6(3,I1); : IF K5$(I1)="Y"AND K6(4,I1)<>0THEN Q6$="T" : ELSE Q6$=" " : PRINT TAB(63);Q6$;TAB(65); 6680 IF K6(4,I1)<>0THEN PRINTUSING 6710,K6(4,I1); : PRINT : RETURN 6710 %##,###.##- 6720 %##### 6740 DEFFN'81 : MAT REDIM M$(8)23 : M$()=" " : M$(1)=B0$ : J=2 : IF C0$>" "THEN M$(J)=C0$ : ELSE J=J-1 : J=J+1 : IF D0$>" "THEN M$(J)=D0$ : ELSE J=J-1 : J=J+1 : IF E0$>" "OR F0$>" "THEN M$(J)=E0$&" "&F0$ : ELSE J=J-1 : M$(5)=L0$ : J=6 : IF M0$>" "THEN M$(J)=M0$ : ELSE J=J-1 : J=J+1 : IF N0$>" "THEN M$(J)=N0$ : ELSE J=J-1 : J=J+1 6920 IF O0$>" "OR P0$>" "THEN M$(J)=O0$&" "&P0$ : ELSE J=J-1 : SELECT PRINT <I0$>(85) : FOR J=1TO 4 : PRINT TAB(9);M$(J);TAB(46);M$(J+4) : NEXT J : MAT REDIM M$(4)62 : GOSUB '85(D4) : PRINT : IF O2$<>HEX(FF)THEN PRINT TAB(43);"ORDER ";HEXOF(STR(O2$,,3));"-";HEXOF(A 0$);" DATE ";Q6$; : IF P1<>1THEN PRINT TAB(72);"PAGE";P1; : PRINT : PRINT HEX(0E); : PRINT TAB(13);H6$ : PRINT HEX(0A0A) : GOSUB '85(D3) 7080 PRINT TAB(1);G0$;TAB(11);C1$;TAB(19);O3$;TAB(33);H0$;TAB(47);H1$;TAB(52); N4$;TAB(59);Q6$;TAB(70);HEXOF(STR(B$,,4)) : PRINT HEX(0A0A) : L=23 : SELECT PRINT 005(80) : RETURN 7130 DEFFN'85(Q9) : CONVERT Q9TO Q7$,(######) : Q6$=STR(Q7$,,2)&"/"&STR(Q7$,3,2)&"/"&STR(Q7$,5) : Q7$=" " : RETURN 7190 DEFFN'82(I) : IF L>37THEN GOSUB 7380 : SELECT PRINT <I0$>(85) : PRINT TAB(1);P$(I);TAB(15); : IF B(I)<>0THEN PRINTUSING 6720,B(I); : PRINT TAB(22);P1$(I);TAB(48); : IF B1(I)<>0THEN PRINTUSING 6710,B1(I); : PRINT TAB(58); : IF B2(I)>0THEN PRINTUSING 6710,ROUND((B(I)*B1(I)*B2(I)/100,2); : PRINT TAB(70); : IF B4(I)<>0THEN PRINTUSING 6710,B4(I); : IF B0$(I)<>" "THEN PRINT TAB(79);"*" : ELSE PRINT : L=L+1 : SELECT PRINT 005(80) : RETURN 7380 SELECT PRINT <I0$>(85) : GOSUB '95(L0-3-L) : PRINT TAB(70);"CONTINUED" : GOSUB '95(12) : P1=P1+1 : GOSUB '81 : RETURN 9998 DEFFN'29"Q$=";HEX(22);"INVC030C";HEX(22);":SCRATCH TQ$:SAVET$()Q$";HEX(0D ) 9999 DEFFN'30"DIM Z$57:IF STR(I0$,,1)=HEX(20)THENI0$=HEX(323135):Z$=";HEX(22); "GBS/MVP - Enter invoice line items.";HEX(22);":SELECT#15<I0$>:$OPEN#15:S ELECTLIST<I0$>(132): LIST Z$:LIST Z$#:LIST Z$V:LIST Z$':$CLOSE#15:SELECTL IST005(80)";HEX(0D)