START REM SIMPLE INVENTORY PROGRAM REM WRITTEN BY DON TARBELL REM LAST CHANGE MADE 12-5-78 LET SEQ=0,RAN=1 LET DISKIN=2,DISKOUT=3 INPUT "ENTER INVENTORY FILE NAME: ";FILENAME$ OPEN FILE(0),TYPE(RAN),RECORD(128),DISKOUT,FILENAME$ LET SIZE=0 INPUT "NEW OR OLD FILE: ";ANS$ IF ANS$="NEW" THEN GOTO INST GET FILE(0),RECORD(1),SIZE INST INPUT "WANT A LIST OF COMMANDS? ";W$ IF W$="NO" THEN GOTO COMD PRINT "LIST LIST INVENTORY ON CONSOLE" PRINT "FIND FIND ONE ITEM" PRINT "NEW PUT A NEW ITEM IN" PRINT "CHANGE CHANGE AN ITEM" PRINT "ADD ADD A QUANTITY OF AN ITEM" PRINT "SUB SUBTRACT A QUANTITY OF AN ITEM" PRINT "VALUE COMPUTE THE INVENTORY VALUE" PRINT "DONE DONE WITH ALL ENTRIES" PRINT "YOU CAN USE JUST THE FIRST 3 LETTERS" COMD PRINT RESTORE CTAB INPUT "COMMAND ";CMD$ LET W$=LEFT$(CMD$,3) FOR N=1 TO 8 READ C$ IF W$=C$ THEN GOTO HOP NEXT N GOTO INST HOP ON N GOTO LISTC,FINDC,NEWC,CHANC,ADDC,VALC,SUBC,DONEC GOTO INST CTAB DATA "LIS","FIN","NEW","CHA","ADD","VAL","SUB","DON" LISTC REM LIST ALL ITEMS IN THE INVENTORY. LET COST=0 GOSUB PNTHDG FOR I=1 TO SIZE GOSUB GETREC GOSUB PNTLIN LET COST=COST+EC NEXT I GOSUB PNTTOT GOTO COMD FINDC REM FIND ONE INVENTORY ITEM. GOSUB READPN IF I>SIZE THEN GOTO COMD GOSUB PNTHE GOTO COMD NEWC REM ENTER A NEW ITEM INTO INVENTORY. LET SIZE=SIZE+1 LET I=SIZE NEWC1 INPUT "QUANTITY NOW IN STOCK? ";QTY INPUT "PART NUMBER? ";PN$ INPUT "DESCRIPTION? ";DES$ INPUT "COST OF ITEM? ";CI GOSUB PUTREC GOTO COMD CHANC REM CHANGE AN ITEM. GOSUB READPN IF I>SIZE THEN GOTO COMD GOSUB PNTHE INPUT "JUST CHANGE QUANTITY? ";W$ IF W$="NO" THEN GOTO NEWC1 INPUT "NEW QUANTITY? ";QTY GOSUB PUTREC GOSUB PNTLIN GOTO COMD ADDC REM ADD TO STOCK. GOSUB READPN IF I>SIZE THEN GOTO COMD GOSUB PNTHE INPUT "ADD HOW MANY? ";J LET QTY=QTY+J GOSUB PUTREC GOSUB PNTLIN GOTO COMD VALC REM PRINT THE COST OF THE INVENTORY. LET COST=0 FOR I=1 TO SIZE GOSUB GETREC GOSUB FINDCOST LET COST=COST+M*QTY NEXT I PRINT "TOTAL COST = $";COST GOTO COMD SUBC REM SUBTRACT A QUANTITY FROM AN ENTRY. GOSUB READPN IF I>SIZE THEN GOTO COMD GOSUB PNTHE INPUT "SUBTRACT HOW MANY? ";J LET QTY=QTY-J GOSUB PUTREC GOSUB PNTLIN GOTO COMD PUTREC REM PUT A RECORD OUT TO DISK. PUT FILE(0),RECORD(I+1),QTY,PN$,DES$,CI RETURN GETREC REM GET A RECORD FROM DISK. GET FILE(0),RECORD(I+1),QTY,PN$,DES$,CI RETURN PNTHDG REM PRINT THE HEADING. PRINT PRINT "QTY";TAB(8);"PART NO.";TAB(19);"DESCRIPTION"; PRINT TAB(40);"COST";TAB(49);"EXT COST" PRINT RETURN PNTLIN REM PRINT ONE LINE ITEM. PRINT QTY;TAB(8);PN$;TAB(19);DES$; GOSUB FINDCOST PRINT TAB(40);M; LET EC=QTY*M PRINT TAB(49);EC RETURN READPN REM INPUT PART NO., RET WITH ENTRY #I. INPUT "PART NUMBER? ";W$ FOR I=1 TO SIZE GOSUB GETREC IF PN$=W$ THEN RETURN NEXT I LET I=I+1 PRINT "ITEM NOT FOUND" RETURN PNTHE REM PRINT HEADING, THEN ENTRY. GOSUB PNTHDG GOSUB PNTLIN RETURN FINDCOST REM FIND THE COST (M) OF AN ITEM (I). LET M=CI RETURN DONEC REM DONE WITH PROGRAM, QUIT. PUT FILE(0),RECORD(1),SIZE CLOSE 3,FILE(0) STOP PNTTOT REM PRINT TOTAL COST. PRINT PRINT TAB(19);"TOTAL COST:";TAB(49);"$";COST PRINT RETURN END