home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a079 / 1.img / FPDG.LZH / VOL2NUM0 / MORTGAGE / MORTGAGE.PRG < prev   
Encoding:
Text File  |  1992-10-06  |  8.6 KB  |  230 lines

  1. *****************************************************************
  2. *     * 07/09/92            MORTGAGE.PRG               06:19:39 *
  3. *****************************************************************
  4. *     * Author's Name: Jeb Long                                 *
  5. *     *                                                         *
  6. *     * Description:                                            *
  7. *     * This program computes mortgage payments                 *
  8. *     *                                                         *
  9. *****************************************************************
  10.  
  11. PRIVATE m.currarea, m.talkstat, m.compstat
  12.  
  13. IF SET("TALK") = "ON"
  14.     SET TALK OFF
  15.     m.talkstat = "ON"
  16. ELSE
  17.     m.talkstat = "OFF"
  18. ENDIF
  19. m.compstat = SET("COMPATIBLE")
  20. SET COMPATIBLE FOXPLUS
  21. m.currarea = SELECT()
  22.  
  23.  
  24. *****************************************************************
  25. *     *                                                         *
  26. *     *      Window Definitions                                 *
  27. *     *                                                         *
  28. *****************************************************************
  29.  
  30. IF NOT WEXIST("mortgage")
  31.     DEFINE WINDOW mortgage ;
  32.         FROM INT((SROW()-18)/2),INT((SCOL()-63)/2) ;
  33.         TO INT((SROW()-18)/2)+17,INT((SCOL()-63)/2)+62 ;
  34.         TITLE "Mortgage Payment Calculator" ;
  35.         FOOTER "Press Esc to Exit" ;
  36.         NOFLOAT ;
  37.         NOCLOSE ;
  38.         SHADOW ;
  39.         MINIMIZE ;
  40.         SYSTEM ;
  41.         COLOR SCHEME 8 ;
  42.         ICON FILE "MORTGAGE.ICO"
  43. ENDIF
  44.  
  45.  
  46. *****************************************************************
  47. *     *                                                         *
  48. *     *      Setup Mortgage parameters                          *
  49. *     *                                                         *
  50. *****************************************************************
  51. *
  52. STORE 0 TO Price, DownPayment,LoanAmt, pi, taxes,hi,mi,hoi,piti
  53. STORE 30 TO term  && Payment term in years
  54. Rate = 8.0        && Annual mortgage rate in percent
  55. TaxRate = .0125   && Tax Rate
  56. MTR = TaxRate/12  && Monthly Tax rate (impound)
  57. HIR = .003        && Hazard insurance rate
  58. MHI = .8*HIR/12   && Monthly hazard insurance impound
  59. MIR = .0045       && Mortgage insurance rate
  60. MMI = MIR/12      && Monthly mortgage insurance impound 
  61. IR = Rate/1200.   && monthly interest rate
  62. Tmonth = 12*term  && term in months
  63.  
  64. *****************************************************************
  65. *     *                                                         *
  66. *     *      MORTGAGE SCREEN LAYOUT                             *
  67. *     *                                                         *
  68. *****************************************************************
  69.  
  70. IF WVISIBLE("mortgage")
  71.     ACTIVATE WINDOW mortgage SAME
  72. ELSE
  73.     ACTIVATE WINDOW mortgage NOSHOW
  74. ENDIF
  75. @ 1,1 SAY "Purchase Price"
  76. @ 2,3 SAY "Down Payment"
  77. @ 3,4 SAY "Loan Amount"
  78. @ 4,2 SAY "Interest Rate"
  79. @ 5,3 SAY "Term (Years)"
  80. @ 6,8 SAY "Principal and Interest:"
  81. @ 8,24 SAY "Taxes:"
  82. @ 9,13 SAY "Hazard Insurance:"
  83. @ 10,11 SAY "Mortgage Insurance:"
  84. @ 12,0 SAY "Homeowner and Other Insurance"
  85. @ 14,25 SAY "PITI"
  86. @ 4,15 SAY ":"
  87. @ 5,15 SAY ":"
  88. @ 3,15 SAY ":"
  89. @ 2,15 SAY ":"
  90. @ 1,15 SAY ":"
  91. @ 10,29 SAY ":"
  92. @ 11,29 SAY ":"
  93. @ 4,45 SAY "%"
  94. DO SHOWCALC  && Display Screen
  95. @ 1,38 GET price ;            
  96.     PICTURE "@$ 999,999,999.99" ;
  97.     VALID PRvalid()
  98. @ 2,38 GET DownPayment ;    
  99.     PICTURE "@$ 999,999,999.99" ;
  100.     VALID PRvalid()
  101. @ 3,38 GET loanamt ;        
  102.     PICTURE "@$ 999,999,999.99" ;
  103.     VALID LAvalid()
  104. @ 4,38 GET rate ;
  105.     PICTURE "99.999";
  106.     VALID PRvalid()
  107. @ 5,38 GET term ;
  108.     PICTURE "99";
  109.     VALID PRvalid()
  110. @ 6,38 GET pi ;
  111.     PICTURE "@$ 999,999,999.99" ;
  112.     VALID PIvalid()
  113. @ 12,44 GET hoi ;
  114.     PICTURE "@$ 9,999.99";
  115.        VALID PRvalid()
  116.  
  117. IF NOT WVISIBLE("mortgage")
  118.     ACTIVATE WINDOW mortgage
  119. ENDIF
  120. READ CYCLE 
  121.  
  122. RELEASE WINDOW mortgage
  123. SELECT (m.currarea)
  124.  
  125.  
  126. IF m.talkstat = "ON"
  127.     SET TALK ON
  128. ENDIF
  129. IF m.compstat = "ON"
  130.     SET COMPATIBLE ON
  131. ENDIF
  132.  
  133. *****************************************************************
  134. *     *                                                         *
  135. *     *   PRvalid              price VALID                      *
  136. *     *                                                         *
  137. *     *   Function Origin:                                      *
  138. *     *                                                         *
  139. *     *   From Screen:         MORTGAGE,                        *
  140. *     *   Variable:            price                            *
  141. *     *   Called By:           VALID Clause                     *
  142. *     *   Object Type:         Field                            *
  143. *     *   Snippet Number:      1                                *
  144. *     *                                                         *
  145. *****************************************************************
  146.  
  147. FUNCTION PRvalid     &&  price VALID
  148. DO RECALC
  149. CLEAR GETS
  150. RETURN .T.
  151. *****************************************************************
  152. *     *                                                         *
  153. *     *   LAvalid              loanamt VALID                    *
  154. *     *                                                         *
  155. *     *   Function Origin:                                      *
  156. *     *                                                         *
  157. *     *   From Screen:         MORTGAGE,                        *
  158. *     *   Variable:            loanamt                          *
  159. *     *   Called By:           VALID Clause                     *
  160. *     *   Object Type:         Field                            *
  161. *     *   Snippet Number:      2                                *
  162. *     *                                                         *
  163. *****************************************************************
  164. *
  165. FUNCTION LAvalid        &&  loanamt VALID
  166. downpayment  = price-loanamt
  167. DO RECALC
  168. CLEAR GETS
  169. RETURN .T.
  170.  
  171. *****************************************************************
  172. *     *                                                         *
  173. *     *   LAvalid              PI principal and Interest VALID  *
  174. *     *                                                         *
  175. *     *   Function Origin:                                      *
  176. *     *                                                         *
  177. *     *   From Screen:         MORTGAGE,                        *
  178. *     *   Variable:            pi                               *
  179. *     *   Called By:           VALID Clause                     *
  180. *     *   Object Type:         Field                            *
  181. *     *   Snippet Number:      3                                *
  182. *     *                                                         *
  183. *****************************************************************
  184. *
  185. FUNCTION PIvalid        &&  PI VALID
  186. LoanAmt = PV(PI, IR, Tmonth)
  187. Price = LoanAmt + DownPayment
  188. RETURN LAvalid()
  189. *****************************************************************
  190. *     *                                                         *
  191. *     *   RECALC               Recomputes payment, etc.         *
  192. *     *                                                         *
  193. *     *   Function Origin:                                      *
  194. *     *                                                         *
  195. *     *   Called By:           PRvalid, LAvalid                 *
  196. *     *                                                         *
  197. *****************************************************************
  198. PROCEDURE RECALC
  199. LoanAmt = Price - DownPayment
  200. Tmonth = 12*term       && term in months
  201. Taxes   = MTR*Price    && Monthly Impound for Real Estate Taxes
  202. HI      = MHI*Price    && Monthly Impound for Hazard Insurance
  203. MI      = MMI*LoanAmt  && Monthly impound for mortgage insurance
  204. PI = PAYMENT(LoanAmt, IR, Tmonth)
  205. PITI = PI + HI + MI + HOI + Taxes
  206. IR = Rate/1200.        && monthly interest rate
  207. DO SHOWCALC
  208. RETURN
  209. *****************************************************************
  210. *     *                                                         *
  211. *     *   SHOWCALC             Displays variables               *
  212. *     *                                                         *
  213. *     *   Function Origin:                                      *
  214. *     *                                                         *
  215. *     *   From Screen:         MORTGAGE,                        *
  216. *     *   Called By:           MORTGAGE, RECALC                 *
  217. *     *                                                         *
  218. *****************************************************************
  219. PROCEDURE SHOWCALC
  220. @ 14,38 SAY piti ;
  221.     PICTURE "@$ 999,999,999.99"
  222. @ 8,38 SAY taxes ;
  223.     PICTURE "@$ 999,999,999.99"
  224. @ 9,38 SAY hi ;
  225.     PICTURE "@$ 999,999,999.99"
  226. @ 10,38 SAY mi ;
  227.     PICTURE "@$ 999,999,999.99"
  228. SHOW GETS
  229. RETURN
  230.