Child pages
  • AmortizationCalculation

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
{div:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR.\\		\\		Enter additional information related to this 'class' inside the \{div} macro with 'id=description'{div}
{div:id=description}{div}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#NUMBER_UNLIMITED]
The numeric constant used to identify an unlimited number of repeated events.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_ANNUALY]
The numeric constant used to identify an annual period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_BI_ANNUALLY]
The numeric constant used to identify a bi\-annual period (twice every year).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_BI_MONTHLY]
The numeric constant used to identify a bi\-monthly period (twice every month).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_DAILY]
The numeric constant used to identify a daily period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_FOUR_MONTHLY]
The numeric constant used to identify a four\-monthly period (once every four months).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_FOUR_WEEKLY]
The numeric constant used to identify a four\-weekly period (once every four weeks).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_MONTHLY]
The numeric constant used to identify a monthly period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_NONE]
The numeric constant used to identify that there is no period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_QUARTERLY]
The numeric constant used to identify a quarterly period (once every three months).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_TWO_MONTHLY]
The numeric constant used to identify a two\-monthly period (once every two months).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_TWO_WEEKLY]
The numeric constant used to identify a two\-weekly period (once every two weeks).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERIOD_WEEKLY]
The numeric constant used to identify a weekly period.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#STARTDAY_NORMAL]
The numeric constant used to identify that the same start day should be used as
the day of the month of the starting date of the event.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[Boolean]{td}{td}[#addCompoundPeriodChange]\(newPeriod, date)
Adds a compound period change.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, date)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, firstDate, lastDate, period)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, firstDate, lastDate, period, number)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addLoan]\(amount, firstDate, lastDate, period, number, startday)
Adds a loan.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, date)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, firstDate, lastDate, period)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, firstDate, lastDate, period, number)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addPayment]\(amount, firstDate, lastDate, period, number, startday)
Adds a payment.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#addRateChange]\(newRate, date)
Sets a new interest rate.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#calculateAmortizationSchedule]\()
Calculates the amortization schedule.{td}{tr}{tbody}{tbody}{tr}{td}[JSDataSet]{td}{td}[#getAmortizationSchedule]\()
Gets the amortization schedule as a JSDataSet.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getError]\()
Returns the error that remains when solving for the unknown.{td}{tr}{tbody}{tbody}{tr}{td}[JSDataSet]{td}{td}[#getEvents]\()
Returns all the amortization events \- such as rate changes, loan events, payment events, compounding period changes.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getRestBalance]\()
Gets the rest balance after the amortization schedule.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getUnknown]\()
Returns the solveForUnknown value.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isValidPeriod]\(period)
Returns true if the period is valid, or false if the period is not valid.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#roundMoney]\(amount)
Rounds a number up to the nearest cents.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#solveForUnknown]\()
Returns true if successful or false if the call failed.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sortEvents]\()
Sorts the amortization events ascending by date.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{tbody:id=NUMBER_UNLIMITED}{tr:id=name}{td}h6.NUMBER_UNLIMITED{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify an unlimited number of repeated events.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_ANNUALY}{tr:id=name}{td}h6.PERIOD_ANNUALY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify an annual period.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_BI_ANNUALLY}{tr:id=name}{td}h6.PERIOD_BI_ANNUALLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a bi\-annual period (twice every year).{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_BI_MONTHLY}{tr:id=name}{td}h6.PERIOD_BI_MONTHLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a bi\-monthly period (twice every month).
TODO: this period is not supported yet.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_DAILY}{tr:id=name}{td}h6.PERIOD_DAILY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a daily period.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_FOUR_MONTHLY}{tr:id=name}{td}h6.PERIOD_FOUR_MONTHLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a four\-monthly period (once every four months).{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_FOUR_WEEKLY}{tr:id=name}{td}h6.PERIOD_FOUR_WEEKLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a four\-weekly period (once every four weeks).{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_MONTHLY}{tr:id=name}{td}h6.PERIOD_MONTHLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a monthly period.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_NONE}{tr:id=name}{td}h6.PERIOD_NONE{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify that there is no period.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_QUARTERLY}{tr:id=name}{td}h6.PERIOD_QUARTERLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a quarterly period (once every three months).{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_TWO_MONTHLY}{tr:id=name}{td}h6.PERIOD_TWO_MONTHLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a two\-monthly period (once every two months).{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_TWO_WEEKLY}{tr:id=name}{td}h6.PERIOD_TWO_WEEKLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a two\-weekly period (once every two weeks).{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERIOD_WEEKLY}{tr:id=name}{td}h6.PERIOD_WEEKLY{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify a weekly period.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=STARTDAY_NORMAL}{tr:id=name}{td}h6.STARTDAY_NORMAL{td}{tr}{tr:id=des}{td}{div:class=sIndent}The numeric constant used to identify that the same start day should be used as
the day of the month of the starting date of the event.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=addCompoundPeriodChange-Number_Date}{tr:id=name}{td}h6.addCompoundPeriodChange{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addCompoundPeriodChange{span}{span}\(newPeriod, date){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a compound period change.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} newPeriod
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, date){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a loan.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date_Date_Number}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, firstDate, lastDate, period){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a loan.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date_Date_Number_Number}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, firstDate, lastDate, period, number){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a loan.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addLoan-Number_Date_Date_Number_Number_Number}{tr:id=name}{td}h6.addLoan{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addLoan{span}{span}\(amount, firstDate, lastDate, period, number, startday){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a loan.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
\{[Number]} startday
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, date){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a payment.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date_Date_Number}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, firstDate, lastDate, period){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a payment.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date_Date_Number_Number}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, firstDate, lastDate, period, number){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a payment.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addPayment-Number_Date_Date_Number_Number_Number}{tr:id=name}{td}h6.addPayment{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addPayment{span}{span}\(amount, firstDate, lastDate, period, number, startday){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Adds a payment.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
\{[Date]} firstDate
\{[Date]} lastDate
\{[Number]} period
\{[Number]} number
\{[Number]} startday
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addRateChange-Number_Date}{tr:id=name}{td}h6.addRateChange{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}addRateChange{span}{span}\(newRate, date){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Sets a new interest rate.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} newRate
\{[Date]} date
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=calculateAmortizationSchedule}{tr:id=name}{td}h6.calculateAmortizationSchedule{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}calculateAmortizationSchedule{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Calculates the amortization schedule.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.calculateAmortizationSchedule();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getAmortizationSchedule}{tr:id=name}{td}h6.getAmortizationSchedule{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSDataSet]{span}{span:style=font-weight: bold;}getAmortizationSchedule{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Gets the amortization schedule as a JSDataSet.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSDataSet]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.getAmortizationSchedule();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getError}{tr:id=name}{td}h6.getError{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getError{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Returns the error that remains when solving for the unknown.
Please note that the error should be less or equal to 1E\-8 \- otherwise, the solveForUnknown value is incorrect.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var c = plugins.amortization.newCalculation();
// sets the rate to -1 for unknown.
c.addRateChange(-1, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
var lastDate = null;
var period = 12;
var number_count = 5;
var startday = 31;
c.addPayment(500, new Date(2005, 1, 28), lastDate, period,number_count, startday);
// solves for the interest rate.
c.solveForUnknown();
// gets the interest rate and the error in the calculation.
// which should be small (otherwise the calculation did
// not converge for some reason.
var r = c.getUnknown();
var e = c.getError();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getEvents}{tr:id=name}{td}h6.getEvents{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSDataSet]{span}{span:style=font-weight: bold;}getEvents{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Returns all the amortization events \- such as rate changes, loan events, payment events, compounding period changes.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSDataSet]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.getEvents();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getRestBalance}{tr:id=name}{td}h6.getRestBalance{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getRestBalance{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Gets the rest balance after the amortization schedule.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var rb = plugins.amortization.getRestBalance();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUnknown}{tr:id=name}{td}h6.getUnknown{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}getUnknown{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Returns the solveForUnknown value.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.getUnknown();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isValidPeriod-Number}{tr:id=name}{td}h6.isValidPeriod{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}isValidPeriod{span}{span}\(period){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Returns true if the period is valid, or false if the period is not valid.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} period
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var v_period = plugins.amortization.isValidPeriod(12);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=roundMoney-Number}{tr:id=name}{td}h6.roundMoney{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Number]{span}{span:style=font-weight: bold;}roundMoney{span}{span}\(amount){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Rounds a number up to the nearest cents.{div}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} amount
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//rounds the number up to 34.35
var rm = plugins.amortization.roundMoney(34.349384);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=solveForUnknown}{tr:id=name}{td}h6.solveForUnknown{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}solveForUnknown{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Returns true if successful or false if the call failed.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.solveForUnknown();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sortEvents}{tr:id=name}{td}h6.sortEvents{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}sortEvents{span}{span}\(){span}{td}{tr}{tr:id=des}{td}{div:class=sIndent}Sorts the amortization events ascending by date.{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.amortization.sortEvents();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}