home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #2 / RBBS_vol1_no2.iso / 005z / membship.bas < prev    next >
BASIC Source File  |  1985-06-02  |  10KB  |  225 lines

  1. 1 CLS
  2. 2 PRINT TAB(20)"RAYMOND L. HOCKSTAD"
  3. 3 PRINT TAB(20)"1614 SO. 15th. STREET"
  4. 4 PRINT TAB(20)"ESCANABA, MI   49829"
  5. 5 PRINT:PRINT:PRINT"This program is presented under the freeware concept.  If you find it useful,   please send a donation of $10.00.   THANKS !!!"
  6. 6 PRINT:PRINT:PRINT"The program will set up it's own files on start-up for the first time. The      program uses 4 files, so on some systems when loading basica, you will have to  type an extension `/f=4'to basica (basica /f=4).
  7. 7 PRINT:PRINT TAB(10)"To continue, hit any key."
  8. 8 Y$=INKEY$:IF Y$="" THEN 8 ELSE 10
  9. 10 CLS
  10. 20 CLEAR 10000
  11. 28 ON ERROR GOTO 6000
  12. 30 OPEN "i" , #1 , "memb"
  13. 40 OPEN "i" , #2 , "dues"
  14. 50 OPEN "i" , #3 , "paid"
  15. 55 OPEN "i" , #4 , "expense"
  16. 60 DIM LAST$(40),FIRST$(40),STREET$(40),CITY$(40),STATE$(40),ZIP(40),DUES(20),DUESDT$(20),PAID(40,20),PAIDDT$(40,20),PAY(40),TPAID(40),EXPENSE$(12,10),EXPENSE(12,10),EXPENSEDT$(12,10),EXPENSE#(12),TRECEIPTS(12),TRECEIVED(12,10),TEXPENSE(12)
  17. 70 M=1
  18. 80 IF EOF(1) THEN MM=M:GOTO 120
  19. 90 INPUT #1,LAST$(M),FIRST$(M),STREET$(M),CITY$(M),STATE$(M),ZIP(M),PAY(M)
  20. 100 M=M+1
  21. 110 GOTO 80
  22. 120 D=1
  23. 130 IF EOF(2) THEN DD=D:GOTO 180
  24. 140 INPUT #2,DUES(D),DUESDT$(D), DUES#
  25. 150 TDUES=TDUES+DUES(D)
  26. 160 D=D+1
  27. 170 GOTO 130
  28. 180 P=1:M=1
  29. 190 IF EOF(3) THEN PP=P:GOTO 254
  30. 200      IF PAY(M)=>1 AND P=< PAY(M) THEN 220
  31. 210      M=M+1:P=1:IF M>MM THEN 254 ELSE 200
  32. 220 INPUT #3,PAID(M,P),PAIDDT$(M,P)
  33. 230 TPAID(M)=TPAID(M) + PAID(M,P)
  34. 232 MOR=VAL(LEFT$(PAIDDT$(M,P),2))
  35. 234 TRECEIPTS(MOR)=TRECEIPTS(MOR)+PAID(M,P)
  36. 236 TRECEIVED=TRECEIVED+PAID(M,P)
  37. 240 P=P+1
  38. 250 GOTO 190
  39. 254 MO=1
  40. 256 IF MO=13 THEN 270
  41. 258 INPUT #4,EXPENSE#(MO)
  42. 260 MO=MO+1
  43. 262 GOTO 256
  44. 270 MO=5:E=1
  45. 280 IF EOF(4) THEN GOTO 400
  46. 290     IF EXPENSE#(MO) => 1 AND E =< EXPENSE#(MO) THEN 320
  47. 300     MO=MO+1:IF MO=13 THEN MO=1
  48. 310     E=1:IF MO=5 THEN 400 ELSE 290
  49. 320 INPUT #4,EXPENSE$(MO,E),EXPENSE(MO,E),EXPENSEDT$(MO,E)
  50. 330 MOE= VAL(LEFT$(EXPENSEDT$(MO,E),2))
  51. 340 TEXPENSE(MOE) = TEXPENSE(MOE) + EXPENSE(MO,E)
  52. 350 CTEXPENSE = CTEXPENSE + EXPENSE(MO,E)
  53. 360 E=E+1:EE=EE + 1
  54. 370 GOTO 280
  55. 400 CLOSE:INPUT"type the # of the item you wish to do :                  1-Enter new members    2-Change a member's record   3-Enter a dues charge       4-Enter a payment      5-Enter expense & payments   6-goto printouts            7-Save & End";ANSWER
  56. 402 CHANGE.MARK=0
  57. 410 ON ANSWER GOTO 1100,1200,1300,1400,1620,2000,5000
  58. 1100 INPUT"Enter the member's first name --------------------";FIRST$(MM):IF CHANGE.MARK=1 THEN RETURN
  59. 1110 INPUT"Enter the member's last name ----------------------";LAST$(MM):IF CHANGE.MARK = 1 THEN RETURN
  60. 1120 INPUT"Enter the member's street address -----------------";STREET$(MM):IF CHANGE.MARK = 1 THEN RETURN
  61. 1130 INPUT"Enter the member's city ---------------------------";CITY$(MM):IF CHANGE.MARK = 1 THEN RETURN
  62. 1140 INPUT"Enter the member's state --------------------------";STATE$(MM):IF CHANGE.MARK = 1 THEN RETURN
  63. 1150 INPUT"Enter the member's zip ----------------------------";ZIP(MM):IF CHANGE.MARK = 1 THEN RETURN
  64. 1160 MM=MM+1
  65. 1170 INPUT"If you want to enter another, type an `1', if not type a `2'  -";ANSWER
  66. 1180 ON ANSWER GOTO 1100,400
  67. 1200 CHANGE.MARK=1  '     remember area to change records
  68. 1210 INPUT"Type the last name to be changed -";LASTNAME$
  69. 1220 M=1
  70. 1230 IF LASTNAME$=LAST$(M) THEN GOTO 1250 ELSE M=M+1:IF M>MM THEN PRINT"Sorry, no such name listed yet,please enter it.":FOR A = 1 TO 500:NEXT:GOTO 260
  71. 1240 GOTO 1230
  72. 1250 MMM=MM
  73. 1251 PRINT"Which item do you want to change?"
  74. 1252 PRINT TAB(15)"1- Member's first name --"FIRST$(M)
  75. 1254 PRINT TAB(15)"2- Member's last name  --"LAST$(M)
  76. 1256 PRINT TAB(15)"3- Street address      --"STREET$(M)
  77. 1258 PRINT TAB(15)"4- Member's city       --"CITY$(M)
  78. 1260 PRINT TAB(15)"5- Member's state      --"STATE$(M)
  79. 1262 PRINT TAB(15)"6- Member's zip code   --"ZIP(M)
  80. 1263 PRINT TAB(15)"7- no more changes"
  81. 1264 INPUT CHANGE#
  82. 1265 MM=M
  83. 1266 ON CHANGE# GOSUB 1100,1110,1120,1130,1140,1150,1270
  84. 1268 GOTO 1251
  85. 1270 MM=MMM:MMM=0:M=0:GOTO 400
  86. 1300 INPUT"Enter the amount of the new dues -----";DUES(DD)
  87. 1310 INPUT"Enter the date charged ---------------";DUESDT$(DD)
  88. 1320 DUES#=DUES#+1
  89. 1330 DD=DD+1
  90. 1340 INPUT"If you want to enter another type a`1', if not type a `2' -";ANSWER
  91. 1350 ON ANSWER GOTO 1300,400
  92. 1400 INPUT"Type the last name payment to be credited to -";LASTNAME$
  93. 1410 M=1
  94. 1420 IF LASTNAME$=LAST$(M) THEN GOTO 1440 ELSE M=M+1:IF M>MM THEN PRINT"Sorry, no such name listed yet,please enter it.":FOR A = 1 TO 500:NEXT:GOTO 1100
  95. 1430 GOTO 1420
  96. 1440 P=PAY(M) + 1:PAY(M) = P:PP=PP+1
  97. 1470 PRINT LAST$(M)"'s payment is ---":INPUT PAID(M,P)
  98. 1480 INPUT"Enter the date paid (##/##/##) ---";PAIDDT$(M,P)
  99. 1490 INPUT"If you want to enter another, type a`1', if not type a`2' --";ANSWER
  100. 1500 ON ANSWER GOTO 1400,400
  101. 1620 PRINT:PRINT:PRINT:PRINT:PRINT TAB(20)"Enter your new expense payments."
  102. 1630 PRINT:PRINT:PRINT:PRINT
  103. 1640 INPUT"Enter date of payment -------------";EXPENSEDT1$
  104. 1650 MO = VAL(LEFT$(EXPENSEDT1$,2)):EXPENSE#(MO)=EXPENSE#(MO)+1:E=EXPENSE#(MO):EXPENSEDT$(MO,E)=EXPENSEDT1$
  105. 1660 INPUT"Enter amount of expense -----------";EXPENSE(MO,E)
  106. 1670 INPUT"Enter expense description ---------";EXPENSE$(MO,E)
  107. 1680 EE=EE+1
  108. 1690 TEXPENSE(MO) = TEXPENSE(MO) + EXPENSE(MO,E)
  109. 1700 CTEXPENSE = CTEXPENSE + EXPENSE(MO,E)
  110. 1710 INPUT"If you want to enter another expense, then type `1', if not type `2' -";ANSWER
  111. 1720 ON ANSWER GOTO 1620,400
  112. 2000 CLS:PRINT"Type in the # of the form you want to print  :                                1 - Statements     2 - Membership Summary     3 - Monthly expense summary      4 - Mailing Labels    5- End":INPUT ANSWER
  113. 2010 M=1:P=1
  114. 2020 ON ANSWER GOTO 2100,3000,3500,4000,5400
  115. 2100 FOR C = 1 TO MM-1
  116. 2110 GOSUB 2360
  117. 2120 LPRINT TAB(10)"BAY AREA PHYSICIANS, P.C."
  118. 2130 LPRINT TAB(10)"DOCTORS' PARK of ESCANABA"
  119. 2140 LPRINT TAB(10)"ESCANABA, MICHIGAN   49829"
  120. 2150 GOSUB 2360
  121. 2160 LPRINT TAB(10) FIRST$(M)" "LAST$(M)
  122. 2170 LPRINT TAB(10) STREET$(M)
  123. 2180 LPRINT TAB(10) CITY$(M)","STATE$(M)"   "ZIP(M)
  124. 2190 GOSUB 2360
  125. 2200 LPRINT STRING$(78,"*")
  126. 2210 LPRINT"    BILLING    -    DATE    -    AMOUNT    -    DATE PAID    -    PAID"
  127. 2220 LPRINT STRING$(78,"*")
  128. 2230 LPRINT
  129. 2238 FOR D = 1 TO DUES#
  130. 2240 LPRINT TAB(21) DUESDT$(D)"       $"DUES(D)
  131. 2250 NEXT
  132. 2280      IF PAY(M) => 1 AND P =< PAY(M) THEN 2290 ELSE 2300
  133. 2290      LPRINT TAB(48) PAIDDT$(M,P)"      $"PAID(M,P):P=P+1:GOTO 2280
  134. 2300   '
  135. 2310 LPRINT:LPRINT:LPRINT TAB(30)"TOTAL YOU STILL OWE IS - $"TDUES-TPAID(M):M=M+1:P=1
  136. 2320 LPRINT TAB(51)"********":LPRINT CHR$(12)
  137. 2330 IF M>MM-1 THEN 2350
  138. 2340 NEXT
  139. 2350 GOTO 2000
  140. 2360 FOR B = 1 TO 6:LPRINT:NEXT:RETURN
  141. 3000 GOSUB 2360
  142. 3010 LPRINT TAB(30)"BAY AREA PHYSICIANS, P.C."
  143. 3020 LPRINT TAB(30)"-------------------------"
  144. 3030 LPRINT:LPRINT TAB(35)"Member Summary"
  145. 3040 GOSUB 2360
  146. 3050 LPRINT STRING$(78,"*")
  147. 3060 LPRINT"         NAME         - TOTAL BILLINGS - TOTAL PAID -      STILL DUE"
  148. 3070 LPRINT STRING$(78,"*")
  149. 3080 LPRINT
  150. 3090 FOR M = 1 TO MM-1
  151. 3100 LPRINT TAB(3)FIRST$(M)" "LAST$(M);:LPRINT TAB(32)"$"TDUES;:LPRINT TAB(49)"$"TPAID(M);:LPRINT TAB(63)"$"TDUES-TPAID(M)
  152. 3110 CTDUES=CTDUES + TDUES:CTPAID=CTPAID+TPAID(M)
  153. 3120 NEXT
  154. 3130 LPRINT TAB(32)"------";:LPRINT TAB(49)"------";:LPRINT TAB(63)"------"
  155. 3140 LPRINT TAB(32)"$"CTDUES;:LPRINT TAB(49)"$"CTPAID;:LPRINT TAB(63)"$"CTDUES-CTPAID:LPRINT CHR$(12)
  156. 3150 GOTO 2000
  157. 3500 GOSUB 2360
  158. 3510 LPRINT TAB(30)"BAY AREA PHYSICIANS, P.C."
  159. 3520 LPRINT TAB(30)"-------------------------"
  160. 3530 LPRINT:LPRINT TAB(35)"Monthly Summary"
  161. 3540 INPUT"Enter the month you want summarized (03,07,11) - ";MO
  162. 3550 LPRINT TAB(41) MO
  163. 3560 GOSUB 2360
  164. 3570 LPRINT STRING$(78,"*")
  165. 3580 LPRINT"            EXPENSE         -    AMOUNT   - DATE PAID -"
  166. 3590 LPRINT STRING$(78,"*")
  167. 3600 LPRINT
  168. 3610 FOR E = 1 TO EE
  169. 3620 LPRINT TAB(3)EXPENSE$(MO,E);:LPRINT TAB(38)"$"EXPENSE(MO,E);:LPRINT TAB(49)EXPENSEDT$(MO,E)
  170. 3630 NEXT
  171. 3640 LPRINT:LPRINT:LPRINT TAB(50)"TOTAL"MO"RECEIPTS = "TRECEIPTS(MO)
  172. 3650 LPRINT TAB(50)"TOTAL RECEIPTS = "TRECEIVED
  173. 3660 LPRINT TAB(50)"BALANCE        = $"TRECEIVED-CTEXPENSE
  174. 3670 GOTO 400
  175. 5000 ' SENDS ALL BACK TO DISC
  176. 5010 OPEN "O" , #1 , "MEMB"
  177. 5020 MM=MM-1:M=1
  178. 5030 IF M=MM+1 THEN CLOSE:GOTO 5070
  179. 5040 PRINT #1,LAST$(M);",";FIRST$(M);",";STREET$(M);",";CITY$(M);",";STATE$(M);",";ZIP(M);",";PAY(M)
  180. 5050 M=M+1
  181. 5060 GOTO 5030
  182. 5070 DD=DD-1:D=1
  183. 5080 OPEN "O" , #2 , "DUES"
  184. 5090 IF D=DD+1 THEN CLOSE:GOTO 5130
  185. 5100 PRINT #2,DUES(D);",";DUESDT$(D);",";DUES#
  186. 5110 D=D+1
  187. 5120 GOTO 5090
  188. 5130 PP=PP-1:P=1:M=1
  189. 5140 OPEN "O" , #3 , "PAID"
  190. 5150     IF PAY(M) => 1 AND P =< PAY(M) THEN 5170
  191. 5160     M=M+1:P=1:IF M>MM THEN 5210 ELSE 5150
  192. 5170     '
  193. 5180 PRINT #3,PAID(M,P);",";PAIDDT$(M,P)
  194. 5190 P=P+1
  195. 5200 GOTO 5150
  196. 5210 CLOSE
  197. 5220 MO=1
  198. 5230 OPEN "o" , #4 , "expense"
  199. 5240 IF MO=13 THEN GOTO 5300
  200. 5250 PRINT #4,EXPENSE#(MO)
  201. 5260 MO=MO+1
  202. 5270 GOTO 5240
  203. 5300 MO=5:E=1
  204. 5340     IF EXPENSE#(MO) =>1 AND E =< EXPENSE#(MO) THEN 5370
  205. 5350     MO=MO+1:IF MO=13 THEN MO=1
  206. 5360     E=1:IF MO=5 THEN 5400 ELSE 5350
  207. 5370 PRINT #4,EXPENSE$(MO,E);",";EXPENSE(MO,E);",";EXPENSEDT$(MO,E)
  208. 5380 E=E+1
  209. 5390 GOTO 5340
  210. 5400 CLOSE:END
  211. 6000 IF ERR = 53 AND ERL = 30 THEN OPEN "o",#1,"memb":CLOSE:RESUME 40
  212. 6010 IF ERR = 53 AND ERL = 40 THEN OPEN "o",#2,"dues":CLOSE:RESUME 50
  213. 6020 IF ERR = 53 AND ERL = 50 THEN OPEN "o",#3,"paid":CLOSE:RESUME 55
  214. 6030 IF ERR = 53 AND ERL = 55 THEN OPEN "o",#4,"expense":GOTO 6040
  215. 6035 ON ERROR GOTO 0
  216. 6040 MO=1
  217. 6050 IF MO = 13 THEN CLOSE:MO=0:RESUME 30
  218. 6060 PRINT #4,0
  219. 6070 MO=MO+1
  220. 6080 GOTO 6050
  221. 40
  222. 6035 ON ERROR GOTO 0
  223. 6040 MO=1
  224. 6050 IF MO = 13 THEN CLOSE:MO=0:RESUME 30
  225. 6060