Listing of file='INVT220A' on disk='vmedia/701-2661A.wvd.zip'
# Sector 228, program filename = 'INVT220A' 0010 REM INVT220A, RELEASE 2.0, (06/01/79) THIS PROGRAM IS A COPYRIGHT PRODUCT OF WANG LABORATORIES INC. UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED 0170 DIM I9$1,B6$24,C6$2,B1(2,5),A8$(1)8,C7$9 : GOTO 4000 4000 SELECT @PARTS0$ : DATA "PROFILE ID","SS","DESEAS DEMAND","SAFETY FACTOR","MEAN ABS DEV","ME AN SIGN DEV","VARIABLE TREND","TREND PERCENT","LAST PER PROC","DEM FILT H IST","TRACK SIG HIST","VAR TREND HIST","REORDER STRAT","REVIEW TIME","LEA D TIME (DAYS)" 4003 DATA "SERVICE PERIOD","COUNTER STOCK","PACK SIZE","FIXED ORDER QT","ITEM MINIMUM","LEVEL OF SERV","WEEKS SUPPLY","MINIMUM","MAXIMUM","%1ST PER W/S LS" : DATA 2,5,10,100,9E99,.6,.5,.4,.3,.2 : RESTORE 26 : MAT READ B1 : C7$="999999.9" : I9=21 : B6=24 : C6=8 : B7=9 : C7=6 : LIMITS T#3,S$(3),Q6,Q7,Q8 4080 Q9=(Q8-2)/(Q7-Q6-1) : IF Q9>.8THEN PRINT AT(3,0);"Maintenance audit file is more than";INT(Q9*1 00);"% full." : IF Q9<.95THEN 4140 : GOSUB '254 : GOSUB '31 4140 GOSUB '238(1) : GOSUB '100(" ",HEX(7F),Q0,0,"ENTER PRODUCT ID. (OR END)",2) : IF Q6$=HEX(1F)OR Q6$="END"OR Q6$="end"THEN GOSUB '31 : IF Q6$=" "THEN 4140 : GOSUB '96(2) : F1$=Q6$ : PRINT AT(4,0,);TAB(10);"Product ID - ";F1$ 4220 GOSUB '100("A,C,D,I","AaCcDdC Ii",1,1,"ENTER TRANSACTION TYPE (A = ADD, C = CHANGE, D = DELETE, I = CHANGE MGMT)",2) : IF Q6$=HEX(1F)THEN GOSUB '31 : I9$=Q6$ : Q6$="Add ChangeDeleteChange" : PRINT AT(4,0);STR(Q6$,Q9*6-5,6); : IF I9$<>"A"THEN 4450 : GOSUB '232(1,0,F1$) : IF Q$="N"THEN 4330 4310 PRINT AT(3,0,80);HEX(07);"Product ID is already in the inventory master f ile." : GOTO 4140 4330 GOSUB '36 : GOSUB '37 : GOSUB '32 : GOSUB '33 : PRINT AT(5,0,) : GOSUB 8378 : GOSUB '233(1,1,F1$,0) : GOSUB '91 : IF J0>0THEN 4140 : GOSUB '68(2) : G5$(G0)="New product" : GOSUB 4770 : GOTO 4140 4450 GOSUB '232(1,1,F1$) : GOSUB '91 : IF J0>0THEN 4140 : GOSUB '78(2) : IF T7$=F1$THEN 4520 : PRINT AT(3,0,80);HEX(07);"Record ID in key file does not match the record ID from the master file." : GOTO 4140 4520 IF I9$<>"I"THEN GOSUB '37 : IF I9$="D"THEN 4590 : IF I9$="C"THEN GOSUB '33 : IF I9$="I"THEN GOSUB 8418 : DBACKSPACE #2,1S : GOSUB '68(2) : GOTO 4140 4590 Q6$=" " : IF H4$="1"THEN Q6$="Product cannot be deleted, currently has a bill of ma terials." : IF E<>0THEN Q6$="Product cannot be deleted, on hand amount is not zero."& HEX(07) : IF E3<>0THEN Q6$="Product cannot be deleted, allocated amount is not zero ."&HEX(07) : IF Q6$=" "THEN 4660 4640 PRINT AT(3,0,80);Q6$;HEX(07) : GOTO 4140 4660 GOSUB '100("Y,N","YyNn",1,1,"DELETE (Y OR N)",2) : IF Q6$<>"Y"THEN 4140 : GOSUB '231(1,0,F1$) : GOSUB '91 : IF J0>0THEN 4140 : G5$(G0)="Deleted product" : GOSUB 4770 : F1$=HEX(FF) : GOSUB '68(2) : GOTO 4140 4770 G2$(G0)=" " : G3$(G0)=F2$ 4790 G0$(G0)="2"&F1$ : IF I9$="I"THEN G1$(G0)="C" : ELSE G1$(G0)=I9$ : G0=G0+1 : IF G0<4THEN RETURN : GOSUB '49(3) : G0=1 : G0$()=ALL(FF) : Q$,Q7$=" " : IF Q9<.95THEN RETURN : GOSUB '254 4900 DEFFN'31 : IF G0>1THEN GOSUB '49(3) : LOAD TM$ 6020 DEFFN'36 : F$,F2$,F3$,G2$,G3$,H4$,H5$,I5$=" " : B5,D3(1),D3(2)=0 : B4=1 : E,E0,E1,E2,E3,E4,E5,H,H0,H1,H2,H3,H4,H5,F,F1,F3=0 : MAT H=ZER : MAT H1=ZER : D1,G,G1,C0=0 : A0$,A1$,A2$=HEX(00) : IF C1<>0THEN RETURN : I1$="M" : G4=0 : A3$="S" : C3=28 : C1=1 : C2,D3=4 : D2=0 : C5=.95 : RETURN 6110 DEFFN'37 : PRINT AT(5,0,) : G7=0 : FOR I=1TO I9 : GOSUB '35 : NEXT I : RETURN 6190 DEFFN'33 : CONVERT I9TO Q7$,(##) : PRINT AT(1,0,80);"ENTER LINE NO. ( 1 -";I9;") TO CORRECT (0=NONE, -1=EXI T)" : GOSUB '100("-1",Q7$,2,0," ",1) : IF Q6$=HEX(1F)THEN GOSUB '31 : I=Q9 : IF I=-1THEN 6330 : IF I=0THEN RETURN : Q7$=" " : G7=G7+1 : GOSUB '35 : IF I9$="C"THEN GOSUB 4790 : GOTO 6190 6330 RETURN CLEAR 6340 IF I9$="A"OR G7=0THEN 4140 : CONVERT MIN(G7,99)TO Q6$,(##) : G2$(G0)=Q6$&" Previous edits for" : G3$(G0)="this product are void." : GOSUB 4790 : GOTO 4140 6410 DEFFN'32 : G7=1 : FOR I=1TO I9 : Q7$=" " : GOSUB '35 : NEXT I : RETURN 6490 DEFFN'34(Q6$,Q9,G5$(G0),Q7$,Q$(1),Q$(2),Q3,Q4,Q5) : IF G7>0THEN PRINT AT(1,0,80);"ENTER ";G5$(G0);Q7$ : IF Q5<2THEN GOSUB 6740 : G2$(G0)=Q6$ : IF Q6$>" "AND Q5=2THEN Q5=3 : IF Q9<>0AND Q5=1THEN Q5=0 : IF G7>0THEN GOSUB '100(Q$(1),Q$(2),Q3,Q4," ",Q5) : IF Q6$=HEX(1F)THEN GOSUB '31 : IF Q5<2THEN GOSUB 6740 : G3$(G0)=Q6$ : Q8=50 : Q2=INT(I9/2) : IF I>Q2THEN 6670 6620 PRINT AT(I+5,0,Q8); : PRINTUSING "##) ";I; : B8=Q8-B6-2 : IF Q5<2THEN B8=B8+C6-Q3 : GOTO 6710 6670 PRINT AT(I+5-Q2,Q8,80-Q8); : PRINTUSING "##) ";I; : B8=80-B7-2 : IF Q5<2THEN B8=B8+C7-Q3 6710 PRINT G5$(G0);TAB(B8);Q6$ : RETURN 6740 Q6$=ALL("#") : Q7$=STR(Q6$,,Q3) : IF Q4>0THEN Q7$=Q7$&"."&STR(Q6$,,Q4) : Q7$=Q7$&"-" : Q6$=ALL(00) : PRINTUSING TO Q6$,Q7$,Q9 : Q6$=STR(Q6$,3,LEN(Q7$)) : RETURN 6830 DEFFN'35 : Q$=" " : ON IGOSUB 6890,6920,6950,6980,7010,7080,7110,7140,7240,7280,7310,7400,743 0,7460,7490,7530,7560,7590,7620,7650,7720 : IF Q$>" "THEN 6830 : RETURN 6890 GOSUB '34(F2$,0,"DESCRIPTION"," "," ",HEX(7F),24,0,2) : F2$=Q6$ : RETURN 6920 GOSUB '34(G3$,0,"ALTERNATE ID"," (not used)"," ",HEX(7F),12,0,2) : G3$=Q6$ : RETURN 6950 GOSUB '34(I5$,0,"LOCATION CODE"," "," ",HEX(7F),6,0,2) : I5$=Q6$ : RETURN 6980 GOSUB '34(F$,0,"PRODUCT PREFIX"," (not used)"," ",HEX(7F),12,0,2) : F$=Q6$ : RETURN 7010 IF MAX(H1())>0THEN $PACK(D=HEX(002F))Q6$FROMH1() : ELSE Q6$=" " : GOSUB '34(Q6$,0,"PRICE BREAKS"," (i.e. 1/10/50/100/500)"," ",HEX(7F),24,0 ,2) : IF Q6$=" "THEN MAT H1=ZER : ELSE $UNPACK(D=HEX(032F))Q6$TO H1() : ERRORPRINT AT(3,0,80);"Invalid format for quantity breaks, re-enter." : Q$="E" 7040 IF MAX(H1())<1E4THEN RETURN : PRINT AT(3,0,80);"Quantity breaks may not exceed 9999.";HEX(07) : Q$="E" : RETURN 7080 GOSUB '34(F3$,0,"UNIT OF MEASURE"," "," ",HEX(7F),2,0,2) : F3$=Q6$ : RETURN 7110 GOSUB '34(H5$,0,"COUNTING CYCLE"," (for physical inventory counts)"," ",H EX(7F),1,0,2) : H5$=Q6$ : RETURN 7140 GOSUB '123(H0) : GOSUB '34(U9$,0,"LAST ACTIVITY"," "," ",HEX(7F),8,0,2) : IF Q6$=" "THEN H0=0 : IF G7=0OR Q6$=" "THEN RETURN : GOSUB '121(Q6$) : IF U9>0THEN H0=U9 : IF Q6$<>"E"THEN RETURN : PRINT AT(3,0,80);"Invalid date, re-enter.";HEX(07) : Q$="E" : RETURN 7240 GOSUB '34(G2$,0,"VENDOR ID"," "," ",HEX(7F),VAL(Q0$(4)),0,2) : GOSUB '96(4) : G2$=Q6$ : RETURN 7280 GOSUB '34(" ",E,"ON HAND"," ","0","999999",6,0,1) : E=Q9 : RETURN 7310 GOSUB '34(" ",E1,"ON ORDER"," ","0","999999",6,0,1) : E1=Q9 : RETURN 7400 GOSUB '34(" ",E4,"MINIMUM"," ","0","999999",6,0,1) : E4=Q9 : RETURN 7430 GOSUB '34(" ",E5,"MAXIMUM"," ","0","999999",6,0,1) : E5=Q9 : RETURN 7460 GOSUB '34(" ",F,"AVERAGE COST"," ","0","9999.99",4,2,1) : F=Q9 : RETURN 7490 GOSUB '34(" ",F1,"LAST COST"," ","0","9999.99",4,2,1) : F1=Q9 : RETURN 7530 J9=1 : GOSUB 7680 : RETURN 7560 J9=2 : GOSUB 7680 : RETURN 7590 J9=3 : GOSUB 7680 : RETURN 7620 J9=4 : GOSUB 7680 : RETURN 7650 J9=5 : GOSUB 7680 : RETURN 7680 Q7$="PRICE "&BIN(J9+48) : GOSUB '34(" ",H(J9),Q7$," ","0","9999.99",4,2,1) : H(J9)=Q9 : RETURN 7720 GOSUB '34(" ",H5,"WEIGHT"," (not used)","0","9999.9999",4,4,1) : H5=Q9 : RETURN 7788 % -####### 7790 % -#######.# 7792 PRINT HEX(010A0A0A07);"RE-ENTER" : RETURN 7798 D8=I 7800 DEFFN'39(D8) : GOSUB '40(D8) : PRINTUSING "## ##############",I,G5$(G0); : RETURN 7810 DEFFN'40(D8) : RESTORE D8 : READ G5$(G0) : RETURN 7820 B6$=ALL("#") : IF Q4>0THEN STR(B6$,Q3+1,1)="." : B6$=STR(B6$,1,Q3+Q4+SGN(Q4)) : B7$="0" : IF Q4=0AND INT(D7)=0THEN RETURN : CONVERT ABS(D7)TO B7$,(B6$) : B7$=STR(B7$,POS(STR(B7$,1,LEN(B7$))<>"0")) : IF D7<0THEN B7$=B7$&"-" : RETURN 7840 DEFFN'41(Q$(1),Q$(2),Q3,Q4,D7,D8) : GOSUB '40(D8) : PRINT HEX(010A);"ENTER ";G5$(G0);TAB(80) : GOSUB 7820 : G2$(G0)=B7$ : Q9=D7 : GOSUB '100(Q$(1),Q$(2),Q3,Q4," ",0) : D7=Q9 : IF Q6$=HEX(1F)THEN GOSUB '31 : GOSUB 7820 : G3$(G0)=B7$ : Q9=.5+.5*SGN(I-9.5) : PRINT AT(6+I-10*Q9,34*Q9); : RETURN 7870 IF I9$="A"THEN RETURN : IF G2$(G0)=G3$(G0)THEN RETURN : GOSUB 4790 : G7=G7+1 : RETURN 7882 ON IGOTO 7896,7958,8120,8134,8146,8158,8170,8182,8074,8050,8058,8066,8194 7884 IF A3$="M"THEN ON I-13GOTO 8350,8362,8312,8288,8254 : ON I-13GOTO 8242,8254,8264,8276 : IF A3$="S"THEN ON I-17GOTO 8288,8312,8324 : IF A3$="F"THEN ON I-17GOTO 8300,8324 : ON I-17GOTO 8288,8312,8338 7896 G2$(G0),Q6$=G1$ 7898 GOSUB '40(1) : I=1 : IF G1$=" "THEN Q5=2 : ELSE Q5=3 : GOSUB '100(" ",HEX(7F),VAL(Q0$(7)),0,"ENTER PROFILE ID",Q5) : IF Q6$=HEX(1F)THEN GOSUB '31 : GOSUB '96(7) : G3$(G0)=Q6$ : IF G2$(G0)<>G3$(G0)THEN 7918 : IF C6$<>" "THEN RETURN 7918 GOSUB '232(2,0,G3$(G0)) : IF Q$=" "THEN 7940 : GOSUB '91 : PRINT AT(3,LEN(J$(J0))+1);"- PROFILE ID ";G3$(G0) : IF J0=3THEN 7934 : IF J0<>7THEN 4140 : GOSUB '92 : GOTO 7918 7934 Q6$=" " : GOTO 7898 7940 GOSUB '79(5) : PRINT AT(6,0); : I=1 : GOSUB 7798 : PRINT TAB(28-LEN(G1$));G1$ : PRINT " DESC";TAB(28-LEN(L2$));L2$ : RETURN 7958 G2$(G0),Q6$=I1$ : GOSUB '100("L,M,H","LlMmHh",1,1,"ENTER SALES STABILITY ('L', 'M' OR 'H') ",3) : IF Q6$=HEX(1F)THEN GOSUB '31 : I1$,G3$(G0)=Q6$ : G5$(G0)="SALES STABILITY" 7968 PRINT AT(8,1);"2 SALES STABILITY";TAB(27);I1$ : RETURN 7974 DEFFN'43(F8$) : GOSUB '40(I) : B7$=HEX(8040201008040201) : INIT(F8$)STR(Q6$,1,8) : AND (B7$,Q6$) : Q6$=HEX(3180314031203110310831043102310130002020) : $TRAN(B7$,Q6$)R : G2$(G0),G3$(G0),B7$=STR(B7$,1,8) : IF C6$=" "THEN 8042 7994 G3$(G0),Q6$=G2$(G0) : PRINT AT(1,0,80);"ENTER ";G5$(G0) : GOSUB '100("0","2",8,0," ",3) : IF Q6$=HEX(1F)THEN GOSUB '31 : IF Q6$=G2$(G0)THEN RETURN : G3$(G0),B7$=Q6$ : INIT(FE)STR(Q6$,1,8) : AND (Q6$,B7$) : IF Q6$="00000000"THEN 8020 : GOSUB 7792 : GOTO 7994 8020 A8$(1)=B7$ : MAT REDIM A8$(8)1 : Q9=1 : Q4=0 : FOR D7=8TO 1STEP -1 : IF A8$(D7)="1"THEN Q4=Q4+Q9 : Q9=Q9*2 : NEXT D7 : BIN(F8$)=Q4 : MAT REDIM A8$(1)8 8042 PRINT AT(I-4,33); : PRINT I;G5$(G0);TAB(54);B7$ : RETURN 8050 GOSUB '43(A1$) : A1$=F8$ : RETURN 8058 GOSUB '43(A2$) : A2$=F8$ : RETURN 8066 GOSUB '43(A0$) : A0$=F8$ : RETURN 8074 GOSUB '41("-2","12",2,0,C0,9) : C0=D7 : IF C0<>0THEN 8098 : GOSUB 7870 8084 GOSUB '41("10","100",3,0,(1+G4-SGN(G4))*100,25) : IF D7*.1=INT(D7*.1)THEN 8092 : PRINT HEX(010A0A0A07);"RE-ENTER A MULTIPLE OF TEN" : GOTO 8084 8092 D7=D7*.01 : G4=D7-1+SGN(1-D7) 8098 GOSUB 7798 : PRINTUSING 7788,C0 : IF C0=0THEN 8108 : PRINT TAB(28);HEX(0D) : RETURN 8108 GOSUB '40(25) : PRINT " ";G5$(G0); : PRINTUSING 7788,(G4+1-SGN(G4))*100; : PRINT HEX(0D) : RETURN 8120 I=3 : GOSUB '41("0",C7$,6,1,D,3) : D=D7 8126 GOSUB 7798 : PRINTUSING 7790,D : RETURN 8134 GOSUB '41("0",C7$,6,1,D0,4) : D0=D7 8138 GOSUB 7798 : PRINTUSING 7790,D0 : RETURN 8146 GOSUB '41("0",C7$,6,1,G2,5) : G2=D7 8150 GOSUB 7798 : PRINTUSING 7790,G2 : RETURN 8158 GOSUB '41("-999999.9",C7$,6,1,G1,6) : G1=D7 8162 GOSUB 7798 : PRINTUSING 7790,G1 : RETURN 8170 GOSUB '41("-999999.9",C7$,6,1,G,7) : G=D7 8174 GOSUB 7798 : PRINTUSING 7790,G : RETURN 8182 GOSUB '41("-99.9","99.9",2,1,D1*100,8) : D1=D7*.01 8186 GOSUB 7798 : PRINTUSING 7790,D1*100 : RETURN 8194 G2$(G0),Q6$=A3$ : GOSUB '40(I) : GOSUB '100("S,F,W,M","SsFfWwMm",1,1,"ENTER REORDER STRATEGY ('S', 'F', ' W' OR 'M')",3) : IF Q6$=HEX(1F)THEN GOSUB '31 : IF Q6$=A3$THEN RETURN : G3$(G0),A3$=Q6$ 8208 PRINT AT(9,34); : GOSUB 7798 : PRINT TAB(61);A3$ : Q6$="20192018" : C6$=STR(Q6$,2*POS("SFWM"=A3$)-1,2) : CONVERT C6$TO A8 : FOR I=14TO 20 : PRINT AT(I-4,34,40); : IF A3$="M"THEN ON I-13GOSUB 8354,8366,8316,8292,8258 : IF A3$<>"M"THEN ON I-13GOSUB 8246,8258,8268,8280 : IF A3$="S"THEN ON I-17GOSUB 8292,8316,8328 : IF A3$="F"THEN ON I-17GOSUB 8304,8328 : IF A3$="W"THEN ON I-17GOSUB 8292,8316,8342 : NEXT I : RETURN 8242 GOSUB '41("1","9",1,0,C1,14) : C1=D7 8246 GOSUB 7798 : PRINT TAB(60);C1 : RETURN 8254 GOSUB '41("0","999",3,0,C3,15) : C3=D7 8258 PRINTUSING "## LEAD TIME (DAYS) ###",I,C3 : RETURN 8264 GOSUB '41("1","99.9",2,1,C2,16) : C2=D7 8268 GOSUB 7798 : PRINTUSING 7790,C2 : RETURN 8276 GOSUB '41("0",C7$,6,0,D2,17) : D2=D7 8280 GOSUB '39(17) : PRINTUSING 7788,D2 : RETURN 8288 GOSUB '41("1",C7$,6,0,B4,18) : B4=D7 8292 GOSUB '39(18) : PRINTUSING 7788,B4 : RETURN 8300 GOSUB '41("1",C7$,6,0,B4,19) : B4=D7 8304 GOSUB '39(19) : PRINTUSING 7788,B4 : RETURN 8312 GOSUB '41("0",C7$,6,0,B5,20) : B5=D7 8316 GOSUB '39(20) : PRINTUSING 7788,B5 : RETURN 8324 GOSUB '41(".5",".999",0,3,C5,21) : C5=D7 8328 GOSUB '39(21) : PRINT TAB(58); : PRINTUSING ".###",C5 : RETURN 8338 GOSUB '41("0","99.9",2,1,D3,22) : D3=D7 8342 GOSUB '39(22) : PRINTUSING 7790,D3 : RETURN 8350 GOSUB '41("0",C7$,6,0,E4,23) : E4=D7 8354 GOSUB '39(23) : PRINTUSING 7788,E4 : RETURN 8362 GOSUB '41("0",C7$,6,0,E5,24) : E5=D7 8366 GOSUB '39(24) : PRINTUSING 7788,E5 : RETURN 8378 C6$=" " : IF I9$="I"THEN 8418 : G1$=" " : GOSUB 7896 : GOSUB 7958 : GOSUB '100("0",C7$,6,1,"ENTER DESEASONALIZED DEMAND",1) : IF Q6$=HEX(1F)THEN GOSUB '31 : D=Q9 : PRINT AT(9,0);" 3 DESEAS DEMAND "; : PRINTUSING 7790,D : I=0 8404 I=I+1 : IF D>B1(1,I)THEN 8404 : D0,G2=.1*INT(D*B1(2,I)*10+.5) : GOTO 8428 8418 C6$=" " : G2$(G0),G3$(G0)=G1$ : GOSUB 7918 : GOSUB 7870 8428 FOR I=1TO 13 : IF I9$="I"THEN ON I-1GOSUB 7968,8126 : ON I-3GOSUB 8138,8150,8162,8174,8186,8098,8050,8058,8066,8208 : NEXT I 8438 GOSUB '100("-2",C6$,2,0,"ENTER ITEM NO. (0=END -1=VOID -2=CHANGE ALL)", 1) : IF Q6$=HEX(1F)THEN GOSUB '31 : I=Q9 : ON I+3GOTO 8454,6330,8472 : ON INT(I/14)+1GOSUB 7882,7884 : GOSUB 7870 : GOTO 8438 8454 FOR I=1TO 13 : GOSUB 7882 : GOSUB 7870 : NEXT I : FOR I=14TO A8 : GOSUB 7884 : GOSUB 7870 : NEXT I : GOTO 8438 8472 IF A3$<>"W"THEN RETURN : IF D3+C1>=C3/7THEN RETURN : PRINT HEX(010A0A0A07);"REVIEW TIME + WEEKS SUPPLY MUST BE >= LEAD TIME/7" : GOTO 8438 9998 DEFFN'29"Q$=";HEX(22);"INVT220A";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 - Maintain inventory master file.";HEX(22);":SELECT#15<I0$>:$OPE N#15:SELECTLIST<I0$>(132): LIST Z$:LIST Z$#:LIST Z$V:LIST Z$':$CLOSE#15:S ELECTLIST005(80)";HEX(0D)