%@ LANGUAGE="VBSCRIPT" %> <% Option Explicit '############################################################################## '## Module: Dealer CMS Finance calculators ## '## Version info: 1.0.0 ## '## Build date: 3:47pm Wed 20th Nov 2002 ## '## Copyright (C) 2002 T-Bone Productions ## '## ## '## Contact: http://www.t-bone.com.au ## '############################################################################## %><% dim cmdSubmit, MonthlyTermPayment dim CapitalCost, InterestRate, ResidualValue, Years, PaymentsPerYear dim blnErr, strMsg, eobj '#### CONSTANTS AND INTIALISATION ################################### cmdSubmit = request("cmdSubmit") blnErr = FALSE PaymentsPerYear = 12 '# Intialise our error dictionary object set eobj = CreateObject("Scripting.Dictionary") eobj.Add "msg", "There were errors in your form, please see fields marked with *." '#### PAGE LOGIC #################################################### if cmdSubmit = "Calculate" then GetFormData() ErrorCheck() if blnErr then strMsg = GetErrors(eobj) else MonthlyTermPayment = CalculateTermPayment(CapitalCost, InterestRate, ResidualValue, Years, PaymentsPerYear) end if end if '#### FUNCTIONS ##################################################### Sub GetFormData() CapitalCost = CLong(request("capitalcost")) InterestRate = CLong(request("interestrate")) ResidualValue = CLong(request("residualvalue")) Years = CLong(request("years")) End Sub Sub ErrorCheck() if (CapitalCost < 10000 OR CapitalCost > 1000000) then eobj.Add "capitalcost", strArw & "The Capital cost must be between $10,000 and $1,000,000" if (InterestRate < 1 OR InterestRate > 51) then eobj.Add "interestrate", strArw & "The interest rate must be between 1% and 51%" if ResidualValue < 1 then eobj.Add "residual", strArw & "Please enter a Residual amount that is greater than zero" '# raise our error flag if we have error to report if eobj.Count > 1 then blnErr = TRUE End Sub '# From toyota's Spreadsheet: Pay in adv_month payment Function CalculateTermPayment(ByRef Amount, ByRef InterestRate, ByRef ResidualValue, ByRef Years, ByRef PaymentsPerYear) dim i, arr, answer, NumberOfPayments, dollars, cents NumberOfPayments = Years * PaymentsPerYear i = InterestRate/100/12 answer = (Amount-(ResidualValue*(1+i)^-NumberOfPayments))/(((1-(1+i)^-NumberOfPayments)/i)*(1+i)) arr = split(answer, ".") dollars = arr(0) cents = left(arr(1), 2) CalculateTermPayment = dollars & "." & cents End Function '####################################################################%>