<cfcomponent extends="proventas31.common.formObject">
	<cfset variables.idSalesPaymentPlan=0>
	<cfset variables.idProject=0>
	<cfset variables.project="">
	<cfset variables.name="">
	<cfset variables.increment=0>
	<cfset variables.booking=0>
	<cfset variables.hook=0>
	<cfset variables.monthly=0>
	<cfset variables.dateMonthlyEnd="">
	<cfset variables.final1=0>
	<cfset variables.final2=0>
	<cfset variables.dateFinal1="">
	<cfset variables.dateFinal2="">
	<cfset variables.extra1=0>
	<cfset variables.extra2=0>
	<cfset variables.extra3=0>
	<cfset variables.extra4=0>
	<cfset variables.dateExtra1="">
	<cfset variables.dateExtra2="">
	<cfset variables.dateExtra3="">
	<cfset variables.dateExtra4="">
	<cfset variables.description="">
	<cfset module.list.orderBy="name">

	<cffunction name="init" access="public" output="false">
		<cfset variables.idSalesPaymentPlan=0>
		<cfset variables.idProject=0>
		<cfset variables.project="">
		<cfset variables.name="">
		<cfset variables.increment=0>
		<cfset variables.booking=0>
		<cfset variables.hook=0>
		<cfset variables.monthly=0>
		<cfset variables.dateMonthlyEnd="">
		<cfset variables.final1=0>
		<cfset variables.final2=0>
		<cfset variables.dateFinal1="">
		<cfset variables.dateFinal2="">
		<cfset variables.extra1=0>
		<cfset variables.extra2=0>
		<cfset variables.extra3=0>
		<cfset variables.extra4=0>
		<cfset variables.dateExtra1="">
		<cfset variables.dateExtra2="">
		<cfset variables.dateExtra3="">
		<cfset variables.dateExtra4="">
		<cfset variables.description="">
	</cffunction>
	
	<cffunction name="getFormObjectId" access="public" output="false" returntype="numeric">
		<cfreturn getidSalesPaymentPlan()>
	</cffunction>
	
	<cffunction name="setFormObjectId" access="public" output="false">
		<cfargument name="objectId" type="numeric" required="yes">
		<cfset setidSalesPaymentPlan(arguments.objectId)>
	</cffunction>

	<cffunction name="setIdSalesPaymentPlan" access="public" output="false">
		<cfargument name="idSalesPaymentPlan" type="numeric" required="yes" default="0">
		<cfset variables.idSalesPaymentPlan=arguments.idSalesPaymentPlan>
	</cffunction>

	<cffunction name="getIdSalesPaymentPlan" access="public" returntype="numeric" output="false">
		<cfreturn variables.idSalesPaymentPlan>
	</cffunction>

	<cffunction name="setIdProject" access="public" output="false">
		<cfargument name="idProject" type="numeric" required="yes" default="0">
		<cfset variables.idProject=arguments.idProject>
	</cffunction>

	<cffunction name="getIdProject" access="public" returntype="numeric" output="false">
		<cfreturn variables.idProject>
	</cffunction>

	<cffunction name="getProject" access="public" returntype="proventas31.corporate.project" output="false">
		<cfif not IsObject("variables.project")><cfset variables.project=CreateObject("component", "proventas31.corporate.project")></cfif>
		<cfif (Compare(module.form.pageAction, "add") and not variables.project.isRetrievedFromDB()) or variables.project.getIdProject() neq variables.idProject>
			<cfset variables.project=CreateObject("component", "proventas31.corporate.project")>
			<cfset variables.project.setIdProject(variables.idProject)>
			<cfset variables.project.get()>
		</cfif>
		<cfreturn variables.project>
	</cffunction>

	<cffunction name="setName" access="public" output="false">
		<cfargument name="name" type="string" required="yes" default="">
		<cfset variables.name=arguments.name>
	</cffunction>

	<cffunction name="getName" access="public" returntype="string" output="false">
		<cfreturn variables.name>
	</cffunction>
	
	<cffunction name="setIncrement" access="public" output="false">
		<cfargument name="increment" type="numeric" required="yes" default="0">
		<cfset variables.increment=arguments.increment>
	</cffunction>
	
	<cffunction name="getIncrement" access="public" returntype="numeric" output="false">
		<cfreturn variables.increment>
	</cffunction>

	<cffunction name="setBooking" access="public" output="false">
		<cfargument name="booking" type="numeric" required="yes" default="0">
		<cfset variables.booking=arguments.booking>
	</cffunction>
	
	<cffunction name="getBooking" access="public" returntype="numeric" output="false">
		<cfreturn variables.booking>
	</cffunction>

	<cffunction name="setHook" access="public" output="false">
		<cfargument name="hook" type="numeric" required="yes" default="0">
		<cfset variables.hook=arguments.hook>
	</cffunction>
	
	<cffunction name="getHook" access="public" returntype="numeric" output="false">
		<cfreturn variables.hook>
	</cffunction>

	<cffunction name="setMonthly" access="public" output="false">
		<cfargument name="monthly" type="numeric" required="yes" default="0">
		<cfset variables.monthly=arguments.monthly>
	</cffunction>
	
	<cffunction name="getMonthly" access="public" returntype="numeric" output="false">
		<cfreturn variables.monthly>
	</cffunction>

	<cffunction name="setDateMonthlyEnd" access="public" output="false">
		<cfargument name="dateMonthlyEnd" type="string" required="yes" default="">
		<cfset variables.dateMonthlyEnd=arguments.dateMonthlyEnd>
	</cffunction>

	<cffunction name="getDateMonthlyEnd" access="public" returntype="string" output="false">
		<cfreturn variables.dateMonthlyEnd>
	</cffunction>

	<cffunction name="setFinal1" access="public" output="false">
		<cfargument name="final1" type="numeric" required="yes" default="0">
		<cfset variables.final1=arguments.final1>
	</cffunction>
	
	<cffunction name="getFinal1" access="public" returntype="numeric" output="false">
		<cfreturn variables.final1>
	</cffunction>

	<cffunction name="setFinal2" access="public" output="false">
		<cfargument name="final2" type="numeric" required="yes" default="0">
		<cfset variables.final2=arguments.final2>
	</cffunction>
	
	<cffunction name="getFinal2" access="public" returntype="numeric" output="false">
		<cfreturn variables.final2>
	</cffunction>

	<cffunction name="setDateFinal1" access="public" output="false">
		<cfargument name="dateFinal1" type="string" required="yes" default="">
		<cfset variables.dateFinal1=arguments.dateFinal1>
	</cffunction>

	<cffunction name="getDateFinal1" access="public" returntype="string" output="false">
		<cfreturn variables.dateFinal1>
	</cffunction>

	<cffunction name="setDateFinal2" access="public" output="false">
		<cfargument name="dateFinal2" type="string" required="yes" default="">
		<cfset variables.dateFinal2=arguments.dateFinal2>
	</cffunction>

	<cffunction name="getDateFinal2" access="public" returntype="string" output="false">
		<cfreturn variables.dateFinal2>
	</cffunction>
	
	<cffunction name="setExtra1" access="public" output="false">
		<cfargument name="extra1" type="numeric" required="yes" default="0">
		<cfset variables.extra1=arguments.extra1>
	</cffunction>
	
	<cffunction name="getExtra1" access="public" returntype="numeric" output="false">
		<cfreturn variables.extra1>
	</cffunction>
	
	<cffunction name="setExtra2" access="public" output="false">
		<cfargument name="extra2" type="numeric" required="yes" default="0">
		<cfset variables.extra2=arguments.extra2>
	</cffunction>
	
	<cffunction name="getExtra2" access="public" returntype="numeric" output="false">
		<cfreturn variables.extra2>
	</cffunction>
	
	<cffunction name="setExtra3" access="public" output="false">
		<cfargument name="extra3" type="numeric" required="yes" default="0">
		<cfset variables.extra3=arguments.extra3>
	</cffunction>
	
	<cffunction name="getExtra3" access="public" returntype="numeric" output="false">
		<cfreturn variables.extra3>
	</cffunction>
	
	<cffunction name="setExtra4" access="public" output="false">
		<cfargument name="extra4" type="numeric" required="yes" default="0">
		<cfset variables.extra4=arguments.extra4>
	</cffunction>
	
	<cffunction name="getExtra4" access="public" returntype="numeric" output="false">
		<cfreturn variables.extra4>
	</cffunction>
	
	<cffunction name="setDateExtra1" access="public" output="false">
		<cfargument name="dateExtra1" type="string" required="yes" default="">
		<cfset variables.dateExtra1=arguments.dateExtra1>
	</cffunction>

	<cffunction name="getDateExtra1" access="public" returntype="string" output="false">
		<cfreturn variables.dateExtra1>
	</cffunction>
	
	<cffunction name="setDateExtra2" access="public" output="false">
		<cfargument name="dateExtra2" type="string" required="yes" default="">
		<cfset variables.dateExtra2=arguments.dateExtra2>
	</cffunction>

	<cffunction name="getDateExtra2" access="public" returntype="string" output="false">
		<cfreturn variables.dateExtra2>
	</cffunction>
	
	<cffunction name="setDateExtra3" access="public" output="false">
		<cfargument name="dateExtra3" type="string" required="yes" default="">
		<cfset variables.dateExtra3=arguments.dateExtra3>
	</cffunction>

	<cffunction name="getDateExtra3" access="public" returntype="string" output="false">
		<cfreturn variables.dateExtra3>
	</cffunction>
	
	<cffunction name="setDateExtra4" access="public" output="false">
		<cfargument name="dateExtra4" type="string" required="yes" default="">
		<cfset variables.dateExtra4=arguments.dateExtra4>
	</cffunction>

	<cffunction name="getDateExtra4" access="public" returntype="string" output="false">
		<cfreturn variables.dateExtra4>
	</cffunction>
	
	<cffunction name="setDescription" access="public" output="false">
		<cfargument name="description" type="string" required="yes" default="">
		<cfset variables.description=arguments.description>
	</cffunction>

	<cffunction name="getDescription" access="public" returntype="string" output="false">
		<cfreturn variables.description>
	</cffunction>

	<cffunction name="setVariablesFromQuery" access="private" output="false">
		<cfargument name="query" type="query" required="yes">
		<cfif query.recordcount gt 0>
			<cfset variables.idSalesPaymentPlan=query.idSalesPaymentPlan>
			<cfset variables.idProject=query.idProject>
			<cfset variables.name=query.name>
			<cfset variables.increment=query.increment>
			<cfset variables.booking=query.booking>
			<cfset variables.hook=query.hook>
			<cfset variables.monthly=query.monthly>
			<cfif Len(query.dateMonthlyEnd)><cfset variables.dateMonthlyEnd=LSDateFormat(query.dateMonthlyEnd, "dd/mm/yyyy")><cfelse><cfset variables.dateMonthlyEnd=""></cfif>
			<cfset variables.final1=query.final1>
			<cfset variables.final2=query.final2>
			<cfif Len(query.dateFinal1)><cfset variables.dateFinal1=LSDateFormat(query.dateFinal1, "dd/mm/yyyy")><cfelse><cfset variables.dateFinal1=""></cfif>
			<cfif Len(query.dateFinal2)><cfset variables.dateFinal2=LSDateFormat(query.dateFinal2, "dd/mm/yyyy")><cfelse><cfset variables.dateFinal2=""></cfif>
			<cfset variables.extra1=query.extra1>
			<cfset variables.extra2=query.extra2>
			<cfset variables.extra3=query.extra3>
			<cfset variables.extra4=query.extra4>
			<cfif Len(query.dateExtra1)><cfset variables.dateExtra1=LSDateFormat(query.dateExtra1, "dd/mm/yyyy")><cfelse><cfset variables.dateExtra1=""></cfif>
			<cfif Len(query.dateExtra2)><cfset variables.dateExtra2=LSDateFormat(query.dateExtra2, "dd/mm/yyyy")><cfelse><cfset variables.dateExtra2=""></cfif>
			<cfif Len(query.dateExtra3)><cfset variables.dateExtra3=LSDateFormat(query.dateExtra3, "dd/mm/yyyy")><cfelse><cfset variables.dateExtra3=""></cfif>
			<cfif Len(query.dateExtra4)><cfset variables.dateExtra4=LSDateFormat(query.dateExtra4, "dd/mm/yyyy")><cfelse><cfset variables.dateExtra4=""></cfif>
			<cfset variables.description=ToString(query.description)>
		</cfif>
	</cffunction>

	<cffunction name="get" access="public" output="false">
		<cfquery name="getQuery" datasource="#application.datasource#">
			SELECT 
				#getQueryString()#
			WHERE
				salesPaymentPlan.idSalesPaymentPlan=<cfqueryparam value="#variables.idSalesPaymentPlan#" cfsqltype="cf_sql_integer">
		</cfquery>
		<cfif getQuery.recordcount gt 0>
			<cfset setVariablesFromQuery(getQuery)>
		</cfif>
		<cfset module.retrievedFromDB=true>
	</cffunction>

	<cffunction name="getList" access="public" output="false" returntype="query">
		<cfargument name="orderBy" required="no" type="string" default="">

		<cfquery name="getListQuery" datasource="#application.datasource#">
			SELECT 
				#getQueryString()#
			WHERE 
				salesPaymentPlan.idProject=<cfqueryparam value="#variables.idProject#" cfsqltype="cf_sql_integer">
			ORDER BY <cfif Len(arguments.orderBy)>#arguments.orderBy#<cfelse>#module.list.orderBy#</cfif>
		</cfquery>
		<cfreturn getListQuery>
	</cffunction>
	
	<cffunction name="getQueryString" access="private" output="false" returntype="string">
		<cfset var result="
				salesPaymentPlan.idSalesPaymentPlan,
				salesPaymentPlan.idProject, project.name AS project,
				salesPaymentPlan.name,
				salesPaymentPlan.increment,
				salesPaymentPlan.booking,
				salesPaymentPlan.hook,
				salesPaymentPlan.monthly,
				salesPaymentPlan.dateMonthlyEnd,
				salesPaymentPlan.final1,
				salesPaymentPlan.final2,
				salesPaymentPlan.dateFinal1,
				salesPaymentPlan.dateFinal2,
				salesPaymentPlan.extra1,
				salesPaymentPlan.extra2,
				salesPaymentPlan.extra3,
				salesPaymentPlan.extra4,
				salesPaymentPlan.dateExtra1,
				salesPaymentPlan.dateExtra2,
				salesPaymentPlan.dateExtra3,
				salesPaymentPlan.dateExtra4,
				salesPaymentPlan.description
			FROM 
				salesPaymentPlan
			LEFT JOIN project ON salesPaymentPlan.idProject=project.idProject
			">
		<cfreturn result>
	</cffunction>

	<cffunction name="createOptions" access="public" returntype="numeric" output="true">
		<cfargument name="selected" required="yes" type="numeric" default="0">
		<cfset var list=getList("salesPaymentPlan.idSalesPaymentPlan")>
		<cfset var result=0>
		<cfif list.idSalesPaymentPlan gt 0><cfset result=list.idSalesPaymentPlan></cfif>
		<cfloop query="list">
			<cfif list.idSalesPaymentPlan eq arguments.selected><cfset _selected=" selected"><cfset result=list.idSalesPaymentPlan><cfelse><cfset _selected=""></cfif>
			<cfoutput><option value="#list.idSalesPaymentPlan#"#_selected#>#list.name#</option></cfoutput>
		</cfloop>
		<cfreturn result>
	</cffunction>
	
	<cffunction name="getId" access="public" returntype="struct" output="false">
		<cfset var result=StructNew()>
		<cfset result.id=0>
		<cfset result.message="">
		<cfquery name="getIdQuery" datasource="#application.datasource#">
			SELECT 
				idSalesPaymentPlan 
			FROM 
				salesPaymentPlan 
			WHERE 
				name=<cfqueryparam value="#variables.name#" cfsqltype="cf_sql_varchar" maxlength="255">
				<cfif variables.idProject gt 0>
				AND idProject=<cfqueryparam value="#variables.idProject#" cfsqltype="cf_sql_integer">
				</cfif>
				<cfif variables.idSalesPaymentPlan gt 0>
				AND idSalesPaymentPlan != <cfqueryparam value="#variables.idSalesPaymentPlan#" cfsqltype="cf_sql_integer">
				</cfif>
		</cfquery>
		<cfif getIdQuery.recordcount gt 0>
			<cfset result.id=getIdQuery.idSalesPaymentPlan>
		</cfif>
		<cfreturn result>
	</cffunction>
	
	<cffunction name="create" access="public" returntype="struct" output="false">
		<cfset var result=StructNew()>
		<cfset result.id=0>
		<cfset result.message="">
		<!--- check parameters --->
		<cfif not Len(variables.name)>
			<cfset result.message="Nombre de provedor es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfset result=getId()>
		<cfif result.id gt 0>
			<cfset result.message="Provedor con ese nombre ya existe">
			<cfreturn result>
		</cfif>
		<!--- variables ok --->
		<cftry>
			<cfquery name="createQuery" datasource="#application.datasource#">
				INSERT INTO salesPaymentPlan
					(
						idProject, 
						name, 
						increment, 
						booking, 
						hook, 
						monthly, 
						dateMonthlyEnd, 
						final1, 
						final2, 
						dateFinal1,
						dateFinal2,
						extra1, 
						extra2, 
						extra3, 
						extra4, 
						dateExtra1,
						dateExtra2,
						dateExtra3,
						dateExtra4,
						description
					) 
				VALUES 
					(
					<cfqueryparam value="#variables.idProject#" cfsqltype="cf_sql_integer">, 
					<cfqueryparam value="#variables.name#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.increment#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.booking#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.hook#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.monthly#" cfsqltype="cf_sql_double">,
					<cfif Len(variables.dateMonthlyEnd)><cfqueryparam value="#parseDate(variables.dateMonthlyEnd)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfqueryparam value="#variables.final1#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.final2#" cfsqltype="cf_sql_double">, 
					<cfif Len(variables.dateFinal1)><cfqueryparam value="#parseDate(variables.dateFinal1)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfif Len(variables.dateFinal2)><cfqueryparam value="#parseDate(variables.dateFinal2)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfqueryparam value="#variables.extra1#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.extra2#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.extra3#" cfsqltype="cf_sql_double">, 
					<cfqueryparam value="#variables.extra4#" cfsqltype="cf_sql_double">, 
					<cfif Len(variables.dateExtra1)><cfqueryparam value="#parseDate(variables.dateExtra1)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfif Len(variables.dateExtra2)><cfqueryparam value="#parseDate(variables.dateExtra2)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfif Len(variables.dateExtra3)><cfqueryparam value="#parseDate(variables.dateExtra3)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfif Len(variables.dateExtra4)><cfqueryparam value="#parseDate(variables.dateExtra4)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					<cfqueryparam value="#variables.description#" cfsqltype="cf_sql_clob">
					)
			</cfquery>
			<cfset result=getId()>
			<cfset variables.idSalesPaymentPlan=result.id>
			<!--- catch any error --->
			<cfcatch type="any">
				<cfset result.id=-1>
				<cfset result.message="Error [salesPaymentPlan.create()]: " & cfcatch.Message & "<br>Details: " & cfcatch.Detail>
			</cfcatch>
		</cftry>
		<cfreturn result>
	</cffunction>

	<cffunction name="update" access="public" returntype="struct" output="false">
		<cfset var result=StructNew()>
		<cfset result.id=0>
		<cfset result.message="">
		<!--- check parameters --->
		<cfif not Len(variables.name)>
			<cfset result.message="Nombre de plan de pago es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfif not idProject>
			<cfset result.message="idProject es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfset result=getId()>
		<cfif result.id gt 0>
			<cfset result.message="Plan de pago con ese nombre ya existe">
			<cfreturn result>
		</cfif>
		<!--- variables ok --->
		<cftry>
			<cfquery name="updateQuery" datasource="#application.datasource#">
				UPDATE salesPaymentPlan
				SET 
					idProject=<cfqueryparam value="#variables.idProject#" cfsqltype="cf_sql_integer">,
					name=<cfqueryparam value="#variables.name#" cfsqltype="cf_sql_varchar" maxlength="255">,
					increment=<cfqueryparam value="#variables.increment#" cfsqltype="cf_sql_double">, 
					booking=<cfqueryparam value="#variables.booking#" cfsqltype="cf_sql_double">, 
					hook=<cfqueryparam value="#variables.hook#" cfsqltype="cf_sql_double">, 
					monthly=<cfqueryparam value="#variables.monthly#" cfsqltype="cf_sql_double">, 
					dateMonthlyEnd=<cfif Len(variables.dateMonthlyEnd)><cfqueryparam value="#parseDate(variables.dateMonthlyEnd)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					final1=<cfqueryparam value="#variables.final1#" cfsqltype="cf_sql_double">, 
					final2=<cfqueryparam value="#variables.final2#" cfsqltype="cf_sql_double">, 
					dateFinal1=<cfif Len(variables.dateFinal1)><cfqueryparam value="#parseDate(variables.dateFinal1)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					dateFinal2=<cfif Len(variables.dateFinal2)><cfqueryparam value="#parseDate(variables.dateFinal2)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					extra1=<cfqueryparam value="#variables.extra1#" cfsqltype="cf_sql_double">, 
					extra2=<cfqueryparam value="#variables.extra2#" cfsqltype="cf_sql_double">, 
					extra3=<cfqueryparam value="#variables.extra3#" cfsqltype="cf_sql_double">, 
					extra4=<cfqueryparam value="#variables.extra4#" cfsqltype="cf_sql_double">, 
					dateExtra1=<cfif Len(variables.dateExtra1)><cfqueryparam value="#parseDate(variables.dateExtra1)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					dateExtra2=<cfif Len(variables.dateExtra2)><cfqueryparam value="#parseDate(variables.dateExtra2)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					dateExtra3=<cfif Len(variables.dateExtra3)><cfqueryparam value="#parseDate(variables.dateExtra3)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					dateExtra4=<cfif Len(variables.dateExtra4)><cfqueryparam value="#parseDate(variables.dateExtra4)#" cfsqltype="cf_sql_date"><cfelse>NULL</cfif>,
					description=<cfqueryparam value="#variables.description#" cfsqltype="cf_sql_clob">
				WHERE 
					idSalesPaymentPlan=<cfqueryparam value="#variables.idSalesPaymentPlan#" cfsqltype="cf_sql_integer">
			</cfquery>
			<cfset result.id=variables.idSalesPaymentPlan>
			<!--- catch any error --->
			<cfcatch type="any">
				<cfset result.id=-1>
				<cfset result.message="Error [salesPaymentPlan.update()]: " & cfcatch.Message & "<br>Details: " & cfcatch.Detail>
			</cfcatch>
		</cftry>
		<cfreturn result>
	</cffunction>

	<cffunction name="delete" access="public" returntype="struct" output="false">
		<cfset var result=StructNew()>
		<cfset result.id=0>
		<cfset result.message="">
		<!--- check parameters --->
		<cftry>
			<cfquery name="deleteQuery" datasource="#application.datasource#">
				DELETE FROM salesPaymentPlan
				WHERE 
					idSalesPaymentPlan=<cfqueryparam value="#variables.idSalesPaymentPlan#" cfsqltype="cf_sql_integer">
			</cfquery>
			<cfset result.id=0>
			<cfset init()>
			<!--- catch any error --->
			<cfcatch type="any">
				<cfset result.id=-1>
				<cfset result.message="Error [salesPaymentPlan.delete()]: " & cfcatch.Message & "<br>Details: " & cfcatch.Detail>
			</cfcatch>
		</cftry>
		<cfreturn result>
	</cffunction>

	<cffunction name="getMonthOptions" access="public" output="true">
		<cfargument name="selected" required="yes" type="numeric" default="0">
		<cfloop from="1" to="12" index="_monthIdx">
			<cfif _monthIdx eq arguments.selected><cfset _selected=" selected"><cfelse><cfset _selected=""></cfif>
			<cfoutput><option value="#_monthIdx#"#_selected#>#MonthAsString(_monthIdx)#</option></cfoutput>
		</cfloop>
	</cffunction>

	<cffunction name="getYearOptions" access="public" output="true">
		<cfargument name="selected" required="yes" type="numeric" default="0">
		<cfloop from="2012" to="2015" index="_yearIdx">
			<cfif _yearIdx eq arguments.selected><cfset _selected=" selected"><cfelse><cfset _selected=""></cfif>
			<cfoutput><option value="#_yearIdx#"#_selected#>#_yearIdx#</option></cfoutput>
		</cfloop>
	</cffunction>
</cfcomponent>