home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / busi / bushome.zip / INVENTRY.BAS < prev    next >
BASIC Source File  |  1984-10-28  |  10KB  |  206 lines

  1. 10 'CLS:INPUT "CHANGE LINE 1020 TO YOUR NAME AND ADDRESS. THEN DELETE LINE 10. PRESS ENTER TO    CONTINUE",DUMMY$
  2. 20 '***********************************************************************
  3. 30 '***********************************************************************
  4. 40 '****                                                               ****
  5. 50 '****                    HOME INVENTORY PROGRAM                     ****
  6. 60 '****                             by                                ****
  7. 70 '****                        Brian Mann                             ****
  8. 80 '****                      (804) 320-4901                           ****
  9. 90 '****                                                               ****
  10. 100 '****    COPYRIGHT OCTOBER, 1982 BY BRIAN D. MANN                   ****
  11. 110 '****        FOR NONPROFIT DISTRIBUTION ONLY. ALL RIGHTS RESERVED.  ****
  12. 120 '****                                                               ****
  13. 130 '***********************************************************************
  14. 140 '***********************************************************************
  15. 150 DEF SEG=0 '------------------------------─────┐
  16. 160 K=PEEK(&H417) OR &H40 '                       │ SET CAPS
  17. 170 POKE &H417,K   '-------------------------─────┘
  18. 180 ROOM =0:SUB=0:SUBTTL=0:BUFFER=0
  19. 190 SIZE=100:DIM DES$(SIZE), NO(SIZE), DOL(SIZE), RM(SIZE)
  20. 200 KEY OFF:FOR I=1 TO 10: KEY I,"":NEXT
  21. 210 RESTORE 'sets data statements to reset
  22. 220 GOTO 900 'main menu
  23. 230 CLS'########################### PRINT INPUT SCREEN ROUTINE ##################
  24. 240 RESTORE
  25. 250 BUFFER=BUFFER+1
  26. 260 DATA 5,45,8,41,12,37,14,57,16,42,0,0
  27. 270 COLOR 15,0,0
  28. 280 LOCATE 2,28 :PRINT "HOME INVENTORY PROGRAM";
  29. 290 COLOR 7,0,0
  30. 300 LOCATE 5,10:PRINT "ENTER `S' TO SAVE, `M' FOR MENU==>  "
  31. 310 LOCATE 8,10 :PRINT "ENTER DESCRIPTION OF ITEM ===> ";
  32. 320 LOCATE 10,20: PRINT "^ stop description here";
  33. 330 LOCATE 12,10:PRINT "ENTER NUMBER OF ITEMS ===> 1";
  34. 340 LOCATE 14,10: PRINT "ENTER REPLACEMENT COST OF INDIVIDUAL ITEM ===> 1      (EXAMPLE: 875.67)";
  35. 350 LOCATE 16,10: PRINT "ENTER LOCATION OF ITEM(S) ===> ";ROOM
  36. 360 LOCATE 18,10: PRINT "1=LIVING ROOM, 2=KITCHEN/DINING ROOM, 3=DOWNSTAIRS BATH, 4=UPSTAIRS BATH,       5=BEDROOM, 6=STUDY, 7=ATTIC, 8=OUTSIDE"
  37. 370 LOCATE 23,5:PRINT "USE THE ENTER KEY TO MOVE FROM ONE FIELD TO ANOTHER."
  38. 380 LOCATE 24,5:PRINT "SAVE AN ENTRY ON THE SCREEN BEFORE GOING TO THE MENU.";
  39. 390 LOCATE 1,1:PRINT USING "BUFFER AT ## OF ###";BUFFER,SIZE;
  40. 400 GOTO 440
  41. 410 INPUT "",A$
  42. 420 IF R=5 AND A$="S" THEN COLOR 7,0,0: GOTO 490
  43. 430 IF R=5 AND A$="M" THEN COLOR 7,0,0: GOTO 800
  44. 440 READ R,C
  45. 450 COLOR 15,0,0
  46. 460 IF R=0 AND C=0 THEN RESTORE:READ R,C
  47. 470 LOCATE R,C
  48. 480 GOTO 410
  49. 490 '############################ BEGINNING OF READ SCREEN ROUTINE ###########
  50. 500 DESC$="":X$="" '            RESET VARIABLES
  51. 510 FLAG1=1 '                   RESET BUFFER DUMP VARIABLE
  52. 520 FOR I=41 TO 80
  53. 530 X=SCREEN(8,I) '             READ THE SCREEN AT 8,41-80 ONE CHAR AT A TIME
  54. 540 X$=CHR$(X)'                 CHANGE THE CHAR CODE TO A LETTER
  55. 550 DESC$=DESC$+X$'             BUILD THE WORD FROM THE CHARACTERS
  56. 560 NEXT'                       GO TO THE NEXT CHARACTER
  57. 570 FOR I=1 TO 20
  58. 580 X=SCREEN(9,I) '             READ THE SCREEN AT 9,1-20 ONE CHAR AT A TIME
  59. 590 X$=CHR$(X)'                 CHANGE THE CHAR CODE TO A LETTER
  60. 600 DESC$=DESC$+X$'             BUILD THE WORD FROM THE CHARACTERS
  61. 610 NEXT'                       GO TO THE NEXT CHARACTER
  62. 620 NUM$="":X$=""'              THE REST USE THE SAME LOGIC
  63. 630 FOR I=37 TO 40
  64. 640 X=SCREEN(12,I)
  65. 650 X$=CHR$(X)
  66. 660 NUM$=NUM$+X$
  67. 670 NEXT
  68. 680 NUM=VAL(NUM$)
  69. 690 DOLLAR$="":X$=""
  70. 700 FOR I=57 TO 63
  71. 710 X=SCREEN(14,I)
  72. 720 X$=CHR$(X)
  73. 730 DOLLAR$=DOLLAR$+X$
  74. 740 NEXT
  75. 750 DOLLAR=VAL(DOLLAR$)
  76. 760 ROOM=SCREEN(16,42)
  77. 770 ROOM=VAL(CHR$(ROOM))
  78. 780 DES$(BUFFER)=DESC$:NO(BUFFER)=NUM:DOL(BUFFER)=DOLLAR:RM(BUFFER)=ROOM' BUILD A BUFFER TO SAVE TIME IN ENTERING
  79. 790 IF BUFFER=SIZE THEN 800 ELSE 230' IS IT FULL?
  80. 800 IF FLAG1=0 THEN 900' HAS THE BUFFER BEEN DUMPED? 0 FOR YES, 1 FOR NO
  81. 810 WIDTH 40:LOCATE 12,10: PRINT "HOLD FOR DISK OPERATION"
  82. 820 OPEN "INVENTRY.DAT" FOR APPEND AS #1
  83. 830 IF A$="M" OR A$="m" THEN BUFFER = BUFFER - 1' MENU OPTION ADDS TO COUNTER WITHOUT ADDING TO ARRAY
  84. 840 FOR B=1 TO BUFFER
  85. 850 WRITE#1, DES$(B);NO(B),DOL(B),RM(B)
  86. 860 DES$(B)="":NO(B)=0:DOL(B)=0:RM(B)=0
  87. 870 NEXT
  88. 880 CLOSE:WIDTH 80: BUFFER=0: FLAG1=0' RESET
  89. 890 IF A$="S" OR A$="s" THEN 230 ELSE 900
  90. 900 REM -----------------MASTER MENU-----------------
  91. 910 WIDTH 80:CLS
  92. 920 BUFFER=0
  93. 930 COLOR 15,0,0
  94. 940 LOCATE 5,29: PRINT "HOME INVENTORY PROGRAM";
  95. 950 COLOR 7,0,0
  96. 960 LOCATE 6,37:PRINT "by"
  97. 970 LOCATE 7,31:PRINT "BRIAN D. MANN"
  98. 980 COLOR 15,0,0
  99. 990 LOCATE 10,32: PRINT "MASTER MENU";
  100. 1000 COLOR 7,0,0
  101. 1010 LOCATE 12,10: PRINT "DO YOU WISH TO ==>"
  102. 1020 LOCATE 14,20: PRINT "1. FILE AN ITEM IN THE INVENTORY.":LOCATE 16,20:PRINT "2. PRINT THE ITEMS ALREADY FILED.":LOCATE 18,20:PRINT "3. DELETE AN ENTRY"
  103. 1030 LOCATE 20,20: PRINT "4. EXIT THE PROGRAM"
  104. 1040 LOCATE 12,30: INPUT "",P
  105. 1050 IF P=1 THEN 230'      ENTRY PANEL
  106. 1060 IF P=2 THEN 1110'     PRINT ROUTINE
  107. 1070 IF P=3 THEN 1710'    DELETE ITEM
  108. 1080 IF P=4 THEN 1100'     EXIT
  109. 1090 BEEP: LOCATE 24,10: PRINT "YOU ENTERED ";P; "TRY AGAIN";:GOTO 1040
  110. 1100 CLS:END
  111. 1110 '########################### PRINT ROUTINE ################################
  112. 1120 CLS
  113. 1130 COLOR 15
  114. 1140 LOCATE 8,35: PRINT" PRINT ROUTINE"
  115. 1150 COLOR 7
  116. 1160 LOCATE 12,10: PRINT "DO YOU WISH TO ==>"
  117. 1170 LOCATE 14,20: PRINT "1. PRINT THE LISTED ITEMS TO THE SCREEN.":LOCATE 16,20:PRINT "2. PRINT THE LISTED ITEMS TO THE PRINTER.":LOCATE 18,20:PRINT "3. RETURN TO THE MASTER MENU."
  118. 1180 LOCATE 12,30: INPUT "",P1
  119. 1190 SUB=0
  120. 1200 IF P1=1 THEN 1240
  121. 1210 IF P1=2 THEN 1240
  122. 1220 IF P1=3 THEN 900
  123. 1230 BEEP: GOTO 1180
  124. 1240 CLS
  125. 1250 I1=0
  126. 1260 ON ERROR GOTO 1920
  127. 1270 OPEN "INVENTRY.DAT" FOR INPUT AS #1
  128. 1280 IF EOF(1) THEN CLOSE: GOTO 1650
  129. 1290 I1=I1+1
  130. 1300 INPUT#1,DESC$,NUM,DOLLAR,ROOM
  131. 1310 IF ROOM=1 THEN ROOM$="LIVING ROOM":GOTO 1400
  132. 1320 IF ROOM=2 THEN ROOM$="KITCHEN/DINING ROOM":GOTO 1400
  133. 1330 IF ROOM=3 THEN ROOM$="DOWNSTAIRS BATHROOM":GOTO 1400
  134. 1340 IF ROOM=4 THEN ROOM$="UPSTAIRS BATHROOM":GOTO 1400
  135. 1350 IF ROOM=5 THEN ROOM$="MASTER BEDROOM":GOTO 1400
  136. 1360 IF ROOM=6 THEN ROOM$="STUDY":GOTO 1400
  137. 1370 IF ROOM=7 THEN ROOM$="ATTIC":GOTO 1400
  138. 1380 IF ROOM=8 THEN ROOM$="OUTSIDE":GOTO 1400
  139. 1390 ROOM$="UNSPECIFIED"
  140. 1400 SUBTTL=NUM*DOLLAR
  141. 1410 SUB=SUB+SUBTTL'        KEEP UP WITH ACCUMULATED WORTH
  142. 1420 IF P1=2 THEN GOTO 1470
  143. 1430 PRINT USING "###  &  REPLACEMENT  COST=$####.##  NUM. OF ITEMS= ###  SUBTOTAL= ####.## LOCATION:&";I1;DESC$;DOLLAR;NUM;DOLLAR*NUM;ROOM$
  144. 1440 PRINT
  145. 1450 IF I1/7=INT(I1/7) THEN LOCATE 24,40:INPUT "PRESS ENTER TO CONTINUE";Z$
  146. 1460 GOTO 1280
  147. 1470 REM ############################# OUTPUT TO PRINTER  #####################
  148. 1480 CLS
  149. 1490 IF I1 <>1 THEN 1600
  150. 1500 INPUT "WHAT IS THE DATE (IN THE FORM 08/12/82) ==>";DAT$
  151. 1510 INPUT "SET THE TOP OF FORM ON THE PRINTER AND PRESS ENTER WHEN READY";Z$
  152. 1520 WIDTH "LPT1:",132
  153. 1530 LPRINT CHR$(27) "0":LPRINT CHR$(27) "C" CHR$(88)'SET 8LINES/INCH AND 88 LINE FORM  IT IS IMPORTANT THAT THIS IS DONE BEFORE ANYTHING IS PRINTED
  154. 1540 LPRINT CHR$(14);"              HOME INVENTORY"
  155. 1550 LPRINT "BRIAN  AND KAREN  MANN.  628 ELGIN TERRACE, RICHMOND, VA. 23225 (804) 320-4901"
  156. 1560 LPRINT "                                 AS OF ";DAT$;
  157. 1570 LPRINT CHR$(15)
  158. 1580 LPRINT SPC(72) "REPLACEMENT     NUMBER OF"
  159. 1590 LPRINT "ITEM" SPC(25) "DESCRIPTION" SPC(31)" COST (EACH)       ITEMS     SUBTOTAL     LOCATION"
  160. 1600 IF I1/80 <> INT(I1/80) THEN 1630 ELSE LPRINT CHR$(12)
  161. 1610 LPRINT SPC(72) "REPLACEMENT     NUMBER OF"
  162. 1620 LPRINT "ITEM" SPC(25) "DESCRIPTION" SPC(31)" COST (EACH)       ITEMS     SUBTOTAL     LOCATION"
  163. 1630 LPRINT USING "###     &      $####.##        ###       ####.##     &";I1;DESC$;DOLLAR;NUM;DOLLAR*NUM;ROOM$
  164. 1640 GOTO 1280
  165. 1650 ' ############################ EXIT ROUTINE ###########################
  166. 1660 IF P1=1 THEN PRINT USING "THE TOTAL WORTH OF THE FILED OBJECTS IS $#####.##";SUB:GOTO 1690
  167. 1670 IF P1=2 THEN LPRINT USING "THE TOTAL WORTH OF THE FILED OBJECTS IS $#####.##";SUB:
  168. 1680 IF P1=2 THEN LPRINT CHR$(12):LPRINT CHR(27) "@";
  169. 1690 INPUT "PRESS ENTER TO RETURN TO THE MENU";Z$
  170. 1700 GOTO 900
  171. 1710 ' ########################### DELETE ITEM ROUTINE ####################
  172. 1720 CLS
  173. 1730 LOCATE 2,2:PRINT "IT IS EASIER AND MORE FLEXIBLE TO DELETE ITEMS USING THE EDLIN PROGRAM SUPPLIED"
  174. 1740 LOCATE 3,2:PRINT "WITH IBM-DOS. EDIT THE `INVENTRY.DAT' FILE AND DELETE THE APPROPRIATE LINE.";
  175. 1750 LOCATE 8,35:COLOR 15:PRINT "DELETE ITEM":COLOR 7
  176. 1760 LOCATE 10,17:INPUT "ENTER THE ITEM NUMBER OF THE ITEM TO BE DELETED                                 ( OR `0' TO RETURN TO THE MENU)===> ",ITEM
  177. 1770 IF ITEM = 0 THEN 900
  178. 1780 COLOR 23: LOCATE 24,31:PRINT "HOLD FOR DISK OPERATION";:COLOR 7:LOCATE 1,1
  179. 1790 I=1
  180. 1800 ON ERROR GOTO 1920
  181. 1810 NAME "INVENTRY.DAT" AS "TEMP.DAT"
  182. 1820 OPEN "TEMP.DAT" FOR INPUT AS #1
  183. 1830 OPEN "INVENTRY.DAT" FOR APPEND AS #2
  184. 1840 IF EOF(1) THEN 1890
  185. 1850 INPUT#1, DESC$,NUM,DOLLAR,ROOM
  186. 1860 IF I <> ITEM THEN WRITE#2, DESC$,NUM,DOLLAR,ROOM   ELSE LOCATE 15,1:PRINT USING "ENTRY & DELETED";DESC$
  187. 1870 I=I+1
  188. 1880 GOTO 1840
  189. 1890 CLOSE
  190. 1900 KILL"TEMP.DAT"
  191. 1910 GOTO 900
  192. 1920 '######################## ERROR HANDLING ROUTINE #########################
  193. 1930 CLOSE:IF ERR=53 THEN 1960
  194. 1940 IF ERR=58 THEN 1980
  195. 1950 SOUND 100,20:PRINT USING "ERROR NUMBER ### IN LINE ##### . PRESS ENTER TO RETURN TO MAIN MENU.";ERR,ERL:INPUT Z1$: GOTO 900
  196. 1960 WIDTH 40: SOUND 100,20: LOCATE 12,10: PRINT "THERE IS NO INVENTRY.DAT ON THE DISK!!!":INPUT "PRESS ENTER TO RETURN TO THE MENU",Z1$
  197. 1970 WIDTH 80:GOTO 900
  198. 1980 SOUND 100,20:PRINT "FILE TEMP.DAT ALREADY EXISTS. "
  199. 1990 INPUT "DO YOU WISH IT DELETED (Y OR N) ";ANS$
  200. 2000 IF ANS$<>"Y" THEN GOTO 900
  201. 2010 KILL "TEMP.DAT"
  202. 2020 GOTO 1800
  203.  "
  204. 1990 INPUT "DO YOU WISH IT DELETED (Y OR N) ";ANS$
  205. 2000 IF ANS$<>"Y" THEN GOTO 900
  206. 2010 KIL