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)