home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / dbaseii / tdas.ark / STATEALL.PRG < prev    next >
Encoding:
Text File  |  1986-08-24  |  9.5 KB  |  335 lines

  1. ******************************************************************************
  2. * STATEALL.PRG  This program simply reads the student records                *
  3. * that now contain prior balance plus (1) current billing info (lessons      *
  4. * times rate) and (2) current month's $$ receipts:  and then prints          *
  5. * a fresh new statement                                                      *
  6. *******************************************************************************
  7. SET Talk OFF
  8. ERASE
  9. STORE 0 to MCheap
  10. DO WHILE .NOT. EOF
  11. STORE Acct:Num to Placemark
  12. *
  13. STORE 'January  February March    April    May      June     '+;
  14. 'July     August   SeptemberOctober  November December ' TO Date:str
  15. STORE TRIM($(Date:str, VAL($(Cdate,1,2))*9-8,9))+" " +;
  16. $(Cdate,4,2)+", 19"+$(Cdate,7,2) to Sdate
  17. *
  18. DO CASE
  19.  CASE lname<>"Zz" .AND. Balance-Curpayment+(Lessons*Rate)=0
  20.   SKIP
  21.   LOOP
  22. *
  23.  OTHERWISE
  24. SET PRINT ON
  25. ? CHR(27)+CHR(66)+CHR(1)
  26. SET Format TO Print
  27. SET Print OFF
  28. IF Scholar
  29.   STORE MCheap + 1 to MCheap
  30.   STORE STR(Mcheap,1) to X
  31.   STORE Fname TO Fname&X
  32.   STORE Lname TO Lname&X
  33.   STORE Lessons TO Lessons&X
  34. ENDIF
  35. *
  36. @ 1,28 SAY "YOUR COMPANY'S NAME"
  37. @ 2,27 SAY "Your Street Address"
  38. @ 3,28 SAY "City, State & Zip"
  39. @ 4,27 SAY "Your A/C & Phone #"
  40. SET Print ON
  41. ? CHR(27)+CHR(69)+CHR(0)
  42. SET Print OFF
  43. @ 6,26 SAY "STATEMENT OF ACCOUNT"
  44. SET Print ON
  45. ? CHR(27)+CHR(70)+CHR(0)
  46. ? CHR(27)+CHR(66)+CHR(2)
  47. SET Print OFF
  48. *
  49. SET Print ON
  50. ? CHR(27)+CHR(66)+CHR(2)
  51. SET Print OFF
  52. @ 13,9 SAY P.Parent
  53. @ 13,68 SAY "Date: "+Sdate
  54.  
  55. IF P.Addr1 = "    "
  56.  @ 14,9 SAY P.Addr2
  57.  @ 15,9 SAY P.city:Etc
  58.  @ 15,68 SAY "Acct: "+Acct:Num
  59. ELSE
  60.  @ 14,9 SAY P.Addr1
  61.  @ 15,9 SAY P.Addr2
  62.  @ 15,68 SAY "Acct: "+Acct:Num
  63.  @ 16,9 SAY P.City:Etc
  64. ENDIF
  65.  
  66. SET Print OFF
  67. @ 17,68 SAY "Terms: NET TEN DAYS"
  68. SET Print ON
  69. ? CHR(27)+CHR(72)+CHR(0)
  70. SET Print OFF
  71.  IF Lname="Zz"
  72.   @ 18,3 SAY "Scholarship Students"
  73.  ELSE
  74. @ 18,3 SAY TRIM(Fname)+" "+Lname
  75.  ENDIF
  76. STORE chr(126) TO a
  77. @ 20,1 SAY A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+;
  78. A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+;
  79. A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A
  80. @ 21,29 SAY "Charge/Credit Detail                               Balance"
  81. @ 22,1 SAY A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+;
  82. A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+;
  83. A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A+A
  84. * Now we'll print the past-due section only if there's actually money owed.
  85. IF Balance-Curpayment<>0
  86.  SET Print ON
  87.  ? CHR(27)+CHR(71)+CHR(0)
  88.  SET Print OFF
  89.  @ 24,17 SAY "Amount PAST DUE:"
  90.  SET Print ON
  91.  ? CHR(27)+CHR(72)+CHR(0)
  92.  SET Print OFF
  93.  @ 25,35 SAY "See Last Month's Statement"
  94.  @ 25,77 SAY "$"
  95.  @ 25,78 SAY Balance-Curpayment
  96. ENDIF
  97. * Now we bill for the current lessons
  98. IF Lname="Zz"
  99.    IF MCheap=0
  100.     STORE 0 to Lesstotl
  101.    ENDIF
  102.    IF MCheap=1
  103.     STORE VAL(STR(Lessons1,8)) to Lesstotl
  104.    ENDIF
  105.    IF MCheap=2
  106.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8)) to Lesstotl
  107.    ENDIF
  108.    IF MCheap=3
  109.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8))+VAL(STR(Lessons3,8));
  110.     TO Lesstotl
  111.    ENDIF
  112.    IF MCheap=4
  113.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8))+VAL(STR(Lessons3,8));
  114.     +VAL(STR(Lessons4,8)) TO Lesstotl
  115.    ENDIF
  116.    IF MCheap=5
  117.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8))+VAL(STR(Lessons3,8));
  118.     +VAL(STR(Lessons4,8))+VAL(STR(Lessons5,8)) TO Lesstotl
  119.    ENDIF
  120.    IF MCheap=6
  121.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8))+VAL(STR(Lessons3,8));
  122.     +VAL(STR(Lessons4,8))+VAL(STR(Lessons5,8))+VAL(STR(Lessons6,8));
  123.     TO Lesstotl
  124.    ENDIF
  125.    IF MCheap=7
  126.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8))+VAL(STR(Lessons3,8));
  127.     +VAL(STR(Lessons4,8))+VAL(STR(Lessons5,8))+VAL(STR(Lessons6,8));
  128.     +VAL(STR(Lessons7,8)) TO Lesstotl
  129.    ENDIF
  130.    IF MCheap=8
  131.     STORE VAL(STR(Lessons1,8))+VAL(STR(Lessons2,8))+VAL(STR(Lessons3,8));
  132.     +VAL(STR(Lessons4,8))+VAL(STR(Lessons5,8))+VAL(STR(Lessons6,8));
  133.     +VAL(STR(Lessons7,8))+VAL(STR(Lessons8,8)) TO Lesstotl
  134.    ENDIF
  135.  REPLACE Lessons WITH Lesstotl
  136. ENDIF
  137. *
  138. IF Lessons=1
  139.  @ 27,16 SAY Lessons
  140.  @ 27,19 SAY "Lesson given during:"
  141.  @ 27,40 SAY Month
  142. ELSE
  143.  @ 27,16 SAY Lessons
  144.  @ 27,19 SAY "Lessons given during:"
  145.  @ 27,41 SAY Month
  146. ENDIF
  147. @ 27,76 SAY "$"
  148. @ 27,79 SAY Lessons*Rate
  149. * In this section we list the scholarship students on the school's billing.
  150. DO CASE
  151.  CASE Lname = "Zz"
  152. IF MCheap=1
  153.  @ 30,10 SAY Lessons1
  154.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  155. ENDIF
  156. IF MCheap=2
  157.  @ 30,10 SAY Lessons1
  158.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  159.  @ 31,10 SAY Lessons2
  160.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  161. ENDIF
  162. IF MCheap=3
  163.  @ 30,10 SAY Lessons1
  164.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  165.  @ 31,10 SAY Lessons2
  166.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  167.  @ 32,10 SAY Lessons3
  168.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  169. ENDIF
  170. IF MCheap=4
  171.  @ 30,10 SAY Lessons1
  172.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  173.  @ 31,10 SAY Lessons2
  174.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  175.  @ 32,10 SAY Lessons3
  176.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  177.  @ 33,10 SAY Lessons4
  178.  @ 33,25 SAY TRIM(Fname4)+" "+Lname4
  179. ENDIF
  180. IF MCheap=5
  181.  @ 30,10 SAY Lessons1
  182.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  183.  @ 31,10 SAY Lessons2
  184.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  185.  @ 32,10 SAY Lessons3
  186.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  187.  @ 33,10 SAY Lessons4
  188.  @ 33,25 SAY TRIM(Fname4)+" "+Lname4
  189.  @ 34,10 SAY Lessons5
  190.  @ 34,25 SAY TRIM(Fname5)+" "+Lname5
  191. ENDIF
  192. IF MCheap=6
  193.  @ 30,10 SAY Lessons1
  194.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  195.  @ 31,10 SAY Lessons2
  196.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  197.  @ 32,10 SAY Lessons3
  198.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  199.  @ 33,10 SAY Lessons4
  200.  @ 33,25 SAY TRIM(Fname4)+" "+Lname4
  201.  @ 34,10 SAY Lessons5
  202.  @ 34,25 SAY TRIM(Fname5)+" "+Lname5
  203.  @ 35,10 SAY Lessons6
  204.  @ 35,25 SAY TRIM(Fname6)+" "+Lname6
  205. ENDIF
  206. IF MCheap=7
  207.  @ 30,10 SAY Lessons1
  208.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  209.  @ 31,10 SAY Lessons2
  210.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  211.  @ 32,10 SAY Lessons3
  212.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  213.  @ 33,10 SAY Lessons4
  214.  @ 33,25 SAY TRIM(Fname4)+" "+Lname4
  215.  @ 34,10 SAY Lessons5
  216.  @ 34,25 SAY TRIM(Fname5)+" "+Lname5
  217.  @ 35,10 SAY Lessons6
  218.  @ 35,25 SAY TRIM(Fname6)+" "+Lname6
  219.  @ 36,10 SAY Lessons7
  220.  @ 36,25 SAY TRIM(Fname7)+" "+Lname7
  221. ENDIF
  222. IF MCheap=8
  223.  @ 30,10 SAY Lessons1
  224.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  225.  @ 31,10 SAY Lessons2
  226.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  227.  @ 32,10 SAY Lessons3
  228.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  229.  @ 33,10 SAY Lessons4
  230.  @ 33,25 SAY TRIM(Fname4)+" "+Lname4
  231.  @ 34,10 SAY Lessons5
  232.  @ 34,25 SAY TRIM(Fname5)+" "+Lname5
  233.  @ 35,10 SAY Lessons6
  234.  @ 35,25 SAY TRIM(Fname6)+" "+Lname6
  235.  @ 36,10 SAY Lessons7
  236.  @ 36,25 SAY TRIM(Fname7)+" "+Lname7
  237.  @ 37,10 SAY Lessons8
  238.  @ 37,25 SAY TRIM(Fname8)+" "+Lname8
  239. ENDIF
  240. ENDCASE
  241. *
  242. SET Print ON
  243. ? CHR(27)+CHR(66)+CHR(1)
  244. ? CHR(27)+CHR(69)+CHR(0)
  245. SET Print OFF
  246. @ 42,25 SAY "BALANCE DUE NOW"
  247.   STORE Balance to Mbal
  248.   STORE Lessons*Rate to Mbill
  249.   STORE Curpayment to MPay
  250.   STORE Mbal+Mbill-Mpay to Newbal
  251. @ 42,55 SAY "===>  $"
  252. @ 42,62 SAY Newbal
  253.   IF Newbal<0
  254.    @ 43,64 SAY "** CREDIT"
  255.    SET Print ON
  256.    ? CHR(27)+CHR(70)+CHR(0)
  257.    ? CHR(27)+CHR(66)+CHR(2)
  258.    @ 46,13 SAY "** DO NOT pay this amount.  It is a CREDIT BALANCE in"
  259.    @ 47,16 SAY "your account which will be applied to upcoming lessons."
  260.   ENDIF
  261.  IF Newbal=0
  262.   SET Print ON
  263.   ? CHR(27)+CHR(70)+CHR(0)
  264.   ? CHR(27)+CHR(66)+CHR(1)
  265.   @ 46,23 SAY "*** D O  N O T  M A I L ***"
  266.  ENDIF
  267. *
  268. SET FORMAT TO Print
  269. SET PRINT ON
  270. STORE CHR(174) TO F
  271. STORE CHR(173) TO G
  272. STORE CHR(27)+CHR(69)+CHR(0) TO H
  273. STORE CHR(27)+CHR(70)+CHR(0) TO J
  274. STORE CHR(27)+CHR(66)+CHR(1) TO K
  275. STORE CHR(167) TO L
  276. STORE CHR(166) TO M
  277. @ 49,0 SAY H
  278. @ 50,3 SAY K+F+G+F+G+F+G+F+G+F+"                      "+F+G+F+G+F+G+F+G+F+;
  279. "                      "+F+G+F+G+F+G+F+G+F
  280. *******************************************************************************
  281. * At this point you can print your own message on the bottom of the statement *
  282. * I've given you the below copy as an example.  Do your own thing!!    (MHB)  *
  283. *******************************************************************************
  284. @ 51,0 SAY J
  285. @ 52,1 SAY "You will be CHARGED for a MISSED LESSON unless you "+;
  286. "telephone me "
  287. @ 52,65 SAY H
  288. @ 52,66 SAY "at my home:"
  289. @ 53,0 SAY J
  290. @ 54,11 SAY "(1) the evening before the scheduled lesson, or ..."
  291. @ 55,11 SAY "(2) before 7:00 A.M. on the day of the scheduled lesson."
  292. @ 57,15 SAY L+"   "+L+"   "+L+"     Do "
  293. @ 57,32 SAY H
  294. @ 57,33 SAY "NOT "
  295. @ 57,37 SAY J
  296. @ 57,38 SAY "call the school.   "+M+"   "+M+"   "+M
  297. @ 58,15 SAY L+"  There's no guarantee I'll get your message.  "+M
  298. @ 59,0 SAY H
  299. @ 60,3 SAY F+G+F+G+F+G+F+G+F+"                      "+F+G+F+G+F+G+F+G+F+;
  300. "                      "+F+G+F+G+F+G+F+G+F
  301. @ 61,0 SAY J
  302. SET FORMAT TO Screen
  303. ENDCASE
  304. *
  305. EJECT
  306. STORE 0 TO Newbal
  307. SKIP
  308. ENDDO
  309. USE
  310. RELEASE Newbal,Placemark,Mbal,Mpay,Mbill,Mcharge,Debtor,MCheap,Fname1,;
  311. Fname2,Fname3,Fname4,Fname5,Fname6,Lname1,Lname2,Lname3,Lname4,Lname5,;
  312. Lname6,Lessons1,Lessons2,Lessons3,Lessons4,Lessons5,Lessons6,Lessons7,;
  313. Lessons8,Lesstotl,F,G,H,J,K,L,M
  314. STORE F TO Printout
  315. SET Print OFF
  316. SET Format TO Screen
  317. SET Console ON
  318. SET Talk ON
  319. RETURN
  320. * EOF
  321. ,25 SAY TRIM(Fname1)+" "+Lname1
  322.  @ 31,10 SAY Lessons2
  323.  @ 31,25 SAY TRIM(Fname2)+" "+Lname2
  324.  @ 32,10 SAY Lessons3
  325.  @ 32,25 SAY TRIM(Fname3)+" "+Lname3
  326.  @ 33,10 SAY Lessons4
  327.  @ 33,25 SAY TRIM(Fname4)+" "+Lname4
  328.  @ 34,10 SAY Lessons5
  329.  @ 34,25 SAY TRIM(Fname5)+" "+Lname5
  330. ENDIF
  331. IF MCheap=6
  332.  @ 30,10 SAY Lessons1
  333.  @ 30,25 SAY TRIM(Fname1)+" "+Lname1
  334.  @ 31,10 SAY Lessons2
  335.  @ 31,2