Listing of file='INVT.BAS;01' on disk='vmedia/inventory-sector.ccvf'
2 BAUD= 3:SBIT= 1:REM SET 300 BAUD 1 STOP BIT 3 PLP= 66:REM LINES PER PRINTER PAGE 4 PLOT 27,18,BAUD 5 CLEAR 200 11 PLOT 12,3,1,10:PRINT "INVENTORY CONTROL" 12 PRINT "(17 JUNE 1980 1950)" 13 FOR D= 1TO 1000:NEXT 20 PLOT 12,3,1,10:INPUT "ENTER TODAYS DATE ( DDMMYY ) ";DAY 25 FILE "T",21000 26 INPUT "LOAD DATA DISK IF APPLICABLE ,<RETURN>";Z$ 30 IF DAY> 320000THEN 20 100 FILE "R",1,"INVFIL",1 110 GET 1,1;NR,F$[25],Q,R,S$[15],LS,UC 1000 REM INVENTORY MENU 1010 PLOT 12,14 1011 AA$= "INVENTORY MENU FOR " 1012 PRINT TAB( (64- (LEN (AA$)+ LEN (F$)))/ 2);AA$;F$ 1014 PRINT :PRINT :PRINT 1015 M= 0:POKE 33278,0 1016 FILE "T",22000 1020 PRINT " NEW PRODUCT RECORDS N" 1030 PRINT " DELETE A RECORD D" 1040 PRINT " CHANGE A RECORD C" 1050 PRINT " SEARCH FOR A RECORD S" 1052 PRINT " LIST STOCK L" 1053 PRINT " RENAME DATA FILE F" 1054 PRINT " CHANGE DATA DISK *" 1055 PRINT " EXIT FROM INVENTORY X" 1060 PRINT 1070 PRINT " ENTER SELECTION " 1075 Z= PEEK (33278) 1080 IF Z= ASC ("N")THEN 2000 1090 IF Z= ASC ("D")THEN 3000 1100 IF Z= ASC ("C")THEN 4000 1110 IF Z= ASC ("S")THEN 5000 1120 IF Z= ASC ("X")THEN 20000 1130 IF Z= ASC ("L")THEN 14000 1140 IF Z= ASC ("F")THEN 15000 1150 IF Z= ASC ("*")THEN 16000 1200 GOTO 1075 1201 REM 2000 REM CREATE NEW PRODUCT 2010 PLOT 12 2020 M= 2:REM NEW RECORD MODE 2030 GOSUB 10000 2040 GOSUB 12000 2050 GOSUB 9000 2055 RX= NR- 1:REM UPDATE POINTER 2060 GOSUB 8000 2065 PLOT 12,14 2070 GOSUB 11000 2075 PRINT "RECORD AS STORED" 2080 GOSUB 12500 2090 M= 0:REM RECORD BY RECORD MODE 2100 GOTO 1000 2200 REM 3000 REM DELETE EXISTING RECORD 3010 PLOT 12,3,1,10:INPUT " DELETE WHAT RECORD NUMBER : ";RX$ 3020 PLOT 12 3030 RX= VAL (RX$) 3040 IF RX< 2OR RX> = NRTHEN 13000 3050 GOSUB 8000:GOSUB 11000GOTO <0xF4> PRINT :INPUT "YES TO DELETE : ";Q$:IF Q$< > "YES"THEN 1000 3065 PRINT "RECORD BEING DELETED" 3070 GET 1,NR- 1;RN,D$[25],Q,R,S$[15],LS,UC 3080 PUT 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 3090 NR= NR- 1:REM DECREMENT POINTER 3100 GET 1,1;RN,D$[25],Q,R,S$[15],LS,UC 3110 PUT 1,1;NR,D$[25],Q,R,S$[15],LS,UC 3120 GOTO 1000 3199 REM 4000 REM CHANGE EXISTING RECORD 4020 PLOT 12,3,1,10:INPUT "CHANGE WHAT RECORD NUMBER : ";RX$ 4030 PLOT 12:RX= VAL (RX$) 4040 IF RX< 2OR RX> = NRTHEN 13000 4060 GOSUB 8000:GOSUB 11000 4070 PRINT :INPUT "YES TO CHANGE DATA : ";Q$:IF Q$< > "YES"THEN 1000 4080 M= 1:REM MODIFY MODE 4100 PLOT 12:GOSUB 11006 4200 PRINT :INPUT "YES TO COMPLETE CHANGE : ";Q$:IF Q$< > "YES"THEN 1000 4210 GOSUB 9500 4220 M= 0:REM RECORD BY RECORD MODE 4225 PLOT 12:GOSUB 11000:GOSUB 12500 4230 GOTO 1000 5000 REM SEARCH FOR EXISTING 5001 POKE 33278,0 5020 PLOT 12:PRINT " SEARCH MENU" 5030 PRINT :PRINT :PRINT 5040 PRINT " PART NUMBER P" 5050 PRINT " DESCRIPTION D" 5060 PRINT " SUPPLIER S" 5070 PRINT " BELOW QTY Q" 5075 PRINT :PRINT 5080 PRINT " ENTER SELECTION " 5081 Z= PEEK (33278) 5082 IF Z= ASC ("P")THEN 5500 5084 IF Z= ASC ("D")THEN 5600 5086 IF Z= ASC ("S")THEN 5700 5088 IF Z= ASC ("Q")THEN 5800 5100 GOTO 5081 5500 PLOT 12,3,1,10 5510 INPUT " WHAT PART NUMBER : ";Q$ 5512 N= VAL (Q$) 5514 FOR RX= 2TO NR- 1:REM RANGE OF RECORDS 5516 GET 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 5518 IF N= RNTHEN PLOT 12:GOSUB 11000:GOSUB 12000 5520 NEXT 5522 GOTO 1000 5600 PLOT 12,3,1,10 5610 INPUT " WHAT DESCRIPTION : ";Q$ 5611 S= 1:F= LEN (Q$) 5612 IF Q$= ""THEN 1000 5613 IF LEFT$ (Q$,1)= "*" THEN S= 3:F= LEN (Q$)- 2 5614 FOR RX= 2TO NR- 1 5616 GET 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 5618 IF MID$ (Q$,S,F)= MID$ (D$,S,F)THEN PLOT 12:GOSUB 11000:GOSUB 12000 5620 NEXT 5622 GOTO 1000 5700 PLOT 12,3,1,10 5710 INPUT " WHAT SUPPLIER : ";Q$ 5712 IF Q$= ""THEN 1000 5714 FOR RX= 2TO NR- 1 5716 GET 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 5718 IF Q$= LEFT$ (S$,LEN (Q$))THEN PLOT 12:GOSUB 11000:GOSUB 12000 5720 NEXT 5722 GOTO 1000 5800 IF NR= 2THEN 13000 5805 FOR RX= 2TO NR- 1 5810 GET 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 5820 IF Q= < RTHEN PLOT 12:GOSUB 11000:GOSUB 12000 5830 NEXT 5840 GOTO 1000 8000 REM READ EXISTING RECORD 8010 GET 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 8020 RETURN 9000 REM WRITE A NEW RECORD 9010 PUT 1,NR;RN,D$[25],Q,R,S$[15],LS,UC 9015 NR= NR+ 1:REM NEW POINTER IS OLD+1 9020 PUT 1,1;NR,F$[25],LU,R,S$[15],LS,UC 9100 RETURN 9500 REM WRITE EXISTING RECORD 9510 PUT 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 9520 RETURN 10000 REM GET DATA FROM KEYBOARD 10010 INPUT "ENTER PART NUMBER ";R1$ 10011 IF R1$< > ""THEN RN= VAL (R1$) 10012 IF RN> 999999 THEN 10010 10015 IF M= 1THEN RETURN 10020 INPUT "ENTER DESCRIPTION ";D1$ 10021 IF D1$< > ""THEN D$= D1$ 10025 IF M= 1THEN RETURN 10030 INPUT "ENTER SUPPLIER ";S1$ 10031 IF S1$< > ""THEN S$= S1$ 10035 IF M= 1THEN RETURN 10040 INPUT "ENTER QTY IN STOCK ";Q1$ 10041 IF Q1$< > ""THEN Q= VAL (Q1$) 10042 IF Q> 999999 THEN 10040 10045 IF M= 1THEN RETURN 10050 INPUT "ENTER REORDER QTY ";Q2$ 10051 IF Q2$< > ""THEN R= VAL (Q2$) 10052 IF R> 999999 THEN 10050 10055 IF M= 1THEN RETURN 10060 INPUT "ENTER UNIT COST ";U1$ 10061 IF U1$< > ""THEN UC= VAL (U1$) 10062 IF UC> 999999 THEN 10060 10069 IF M= 1 THEN RETURN 10070 INPUT "ENTER FORWARD DATA ";L1$ 10071 IF L1$< > "" THEN LS= VAL (L1$) 10072 IF LS> 999999 THEN 10070 10080 IF M= 1 THEN RETURN 10999 RETURN 11000 REM DISPLAY A RECORD 11005 PRINT :PRINT "RECORD NUMBER ";RX;" STOCK VALUE $";Q* UC 11006 PRINT :PRINT 11010 PRINT "PART NUMBER ";RN 11015 IF M= 1THEN GOSUB 10010 11020 PRINT "DESCRIPTION ";D$ 11025 IF M= 1THEN GOSUB 10020 11030 PRINT "SUPPLIER ";S$ 11035 IF M= 1THEN GOSUB 10030 11040 PRINT "QTY IN STOCK ";Q 11045 IF M= 1THEN GOSUB 10040 11050 PRINT "REORDER QTY ";R 11055 IF M= 1THEN GOSUB 10050 11060 N= UC:GOSUB 17000:PRINT "UNIT COST ";Z$ 11065 IF M= 1THEN GOSUB 10060 11070 PRINT "FORWARD ";LS;"" 11080 IF M= 1 THEN GOSUB 10070 11090 PRINT :IF M= 0 THEN PRINT "'C' TO CHANGE" 11999 RETURN 12000 PRINT "ANY OTHER TO QUIT" 12500 POKE 33278,0:PRINT "<RETURN> TO CONTINUE" 12510 Z= PEEK (33278) 12610 IF Z= 13THEN 12999 12625 IF Z= ASC ("C") THEN 4080 12627 IF Z< > 0 THEN 1000 12630 GOTO 12510 12999 RETURN 13000 PLOT 12 13010 PLOT 3,0,12:PRINT "INVALID OPERATION" 13020 GOSUB 12500 13030 GOTO 1000 14000 REM LIST STOCK 14001 Z$= "" 14005 IF NR- 1= 1THEN GOTO 13000 14010 PLOT 12,3,1,10:INPUT "OUTPUT TO SCREEN OR PRINTER : ";Q$:IF Q$= "X" THEN 1000 14011 PRINT :PRINT :T1= 0:T2= 0:T3= 0:T4= 0:T5= 0:T6= 0:T7= 0:T8= 0:T9= 0:T0= 0:ST= 0:GT= 0 14012 INPUT " START RECORD FOR LISTING : ";A$ 14013 INPUT " END RECORD FOR LISTING : ";B$ 14014 A= 2:IF A$< > ""THEN A= VAL (A$) 14015 B= NR- 1:IF B$< > ""THEN B= VAL (B$) 14016 IF A< 2OR B> = NROR A> BTHEN 14000 14020 IF LEFT$ (Q$,1)= "P"THEN M= 1:PRINT "SET UP PRINTER, AND PUT 'ON LINE'" 14022 IF M= 1THEN PRINT :INPUT "RETURN TO START PRINT, ANY OTHER TO QUIT";Z$ 14023 IF Z$< > ""THEN M= 0:GOTO 1000 14025 PLOT 15:LPP= 25 14027 IF M= 1 AND SB= 1 THEN PLOT 14 14028 IF M= 1 AND SB< > 1 THEN PLOT 15 14030 IF M= 1THEN POKE 33265,14:LPP= PLP- 6:POKE 33289,96 14035 LN= LPP 14040 FOR RX= ATO B 14045 IF LN= LPPTHEN GOSUB 14400:REM HEADLINE 14050 GET 1,RX;RN,D$[25],Q,R,S$[15],LS,UC 14055 N= Q* UC:PT= N:GOSUB 17000:PT$= Z$:N= UC:GOSUB 17000:LN= LN+ 1 14056 IF PEEK (33278)< > 13THEN 14100 14060 PRINT "";RX;"";TAB( 5);RN;TAB( 13);LEFT$ (D$,20);TAB( 35);LEFT$ (S$,10);TAB( 47); 14061 PRINT Q;TAB( 54);Z$;:IF M= 1THEN PRINT TAB( 63);PT$;TAB( 73);LS;TAB( 81);R;TAB( 88); 14062 IF M= 1AND Q< = RTHEN PRINT R- Q;TAB( 93);"***" 14063 IF M= 1AND Q> RTHEN PRINT 14064 IF M< > 1THEN PRINT :GOTO 14075 14065 IF LEFT$ (D$,2)= "0-" THEN T0= T0+ PT 14066 IF LEFT$ (D$,2)= "1-" THEN T1= T1+ PT 14067 IF LEFT$ (D$,2)= "2-" THEN T2= T2+ PT 14068 IF LEFT$ (D$,2)= "3-" THEN T3= T3+ PT 14069 IF LEFT$ (D$,2)= "4-" THEN T4= T4+ PT 14070 IF LEFT$ (D$,2)= "5-" THEN T5= T5+ PT 14071 IF LEFT$ (D$,2)= "6-" THEN T6= T6+ PT 14072 IF LEFT$ (D$,2)= "7-" THEN T7= T7+ PT 14073 IF LEFT$ (D$,2)= "8-" THEN T8= T8+ PT 14074 IF LEFT$ (D$,2)= "9-" THEN T9= T9+ PT 14075 GT= GT+ PT 14076 NEXT :IF M< > 1THEN GOSUB 12500 14077 IF M< > 1 THEN 14201 14078 PRINT CHR$ (12):ST= T0+ T1+ T2+ T3+ T4+ T5+ T6+ T7+ T8+ T9 14079 N= T0:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 0-XXX ";Z$ 14080 N= T1:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 1-XXX ";Z$ 14081 N= T2:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 2-XXX ";Z$ 14082 N= T3:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 3-XXX ";Z$ 14083 N= T4:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 4-XXX ";Z$ 14084 N= T5:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 5-XXX ";Z$ 14085 N= T6:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 6-XXX ";Z$ 14086 N= T7:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 7-XXX ";Z$ 14087 N= T8:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 8-XXX ";Z$ 14088 N= T9:GOSUB 17000:PRINT "SUBTOTAL DESCRIPTION 9-XXX ";Z$ 14090 N= GT- ST:GOSUB 17000:PRINT "SUBTOTAL ALL OTHER RECORDS ";Z$ 14091 PRINT "---------------------------------------" 14092 PRINT "GRAND TOTAL ALL LISTED ITEMS";GT 14100 IF M= 1THEN POKE 33265,0:POKE 33289,64:REM **** RESTORE NORMAL 14110 M= 0 14201 GOTO 1000 14400 IF M< > 1AND RX< > ATHEN GOSUB 12000 14410 IF M= 1 THEN FOR NT= 1 TO 6:PRINT :NEXT 14440 IF M< > 1THEN PLOT 12 14450 PRINT "";F$;" ";DAY 14500 PRINT "REC";TAB( 6);"PART";TAB( 13);"DESCRIPTION";TAB( 35);"SUPPLIER"; 14510 PRINT TAB( 48);"QTY";TAB( 55);"COST"; 14514 IF M< > 1THEN PRINT 14515 IF M= 1THEN PRINT TAB( 64);"$VALU";TAB( 74);"FORWRD";TAB( 82);"MINMUM";TAB( 89);"REORDER" 14520 LN= 0 14580 RETURN 14998 GOSUB 12500 15000 PLOT 12,3,1,10 15010 PRINT "CURRENT FILE NAME : ";F$ 15015 FOR D= 1TO 500:NEXT 15020 PLOT 3,1,11 15030 INPUT "NEW FILE NAME : ";F1$ 15040 IF F1$< > ""THEN F$= F1$ 15050 GET 1,1;RN,D$[25],Q,R,S$[15],LS,UC 15060 PUT 1,1;RN,F$[25],Q,R,S$[15],LS,UC 15070 GOTO 1000 16000 FILE "C",1 16010 PLOT 12,3,1,10:INPUT "CHANGE DATA DISK NOW, THEN RETURN ";Z$ 16020 GOTO 100:REM RESTORE NEW DISK 17000 N= N+ .0001:IN= INT (N):RE= N- IN 17010 Z$= " "+ STR$ (IN) 17020 IF INT (RE* 100)= 0THEN Z$= Z$+ ".00":GOTO 17040 17030 Z$= Z$+ MID$ (STR$ (RE+ .001),2,3) 17040 Z$= RIGHT$ (Z$,8) 17050 RETURN 20000 FILE "C",1 20001 LOAD "MENU.BAS":RUN 21000 PLOT 12,3,0,10,14 21010 PRINT "**** DATA FILE NOT FOUND ON THIS DISKETTE ****" 21015 PLOT 15 21020 PRINT :PRINT "LOAD CORRECT DISKETTE OR CREATE NEW FILE" 21030 FOR DL= 1 TO 1000:NEXT 21035 IF Z= 1 THEN INPUT "LOAD SYSTEM DISK, <RETURN>";Z$:LOAD "MENU.BAS":RUN 21036 Z= Z+ 1 21040 GOTO 26 22000 PLOT 12,3,0,9:PRINT "FILE IS FULL":GOTO 13010