<cfcomponent extends="components.common.formObject">
	<cfset variables.idHouseType=0>
	<cfset variables.name="">
	<cfset module.list.orderBy="name">

	<cffunction name="init" access="remote" output="false">
		<cfset variables.idHouseType=0>
		<cfset variables.name="">
	</cffunction>
	
	<cffunction name="getFormObjectId" access="public" output="false" returntype="numeric">
		<cfreturn getIdHouseType()>
	</cffunction>
	
	<cffunction name="setFormObjectId" access="public" output="false">
		<cfargument name="objectId" type="numeric" required="yes">
		<cfset setIdHouseType(arguments.objectId)>
	</cffunction>

	<cffunction name="setIdHouseType" access="remote" output="false">
		<cfargument name="idHouseType" type="numeric" required="yes" default="0">
		<cfset variables.idHouseType=arguments.idHouseType>
	</cffunction>

	<cffunction name="getIdHouseType" access="remote" returntype="numeric" output="false">
		<cfreturn variables.idHouseType>
	</cffunction>
	
	<!--- method to get the ID of house type = Other --->
	<cffunction name="getIdHouseTypeOther" access="remote" returntype="numeric" output="false">
		<cfreturn 5>
	</cffunction>

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

	<cffunction name="getName" access="remote" returntype="string" output="false">
		<cfreturn variables.name>
	</cffunction>

	<cffunction name="get" access="remote" output="false">
		<cfquery name="getQuery" datasource="#application.datasource#">
			SELECT 
				#getQueryString()#
			WHERE
				infHouseType.idHouseType=<cfqueryparam value="#variables.idHouseType#" cfsqltype="cf_sql_integer">
		</cfquery>
		<cfif getQuery.recordcount gt 0>
			<cfset variables.name=getQuery.name>
		</cfif>
	</cffunction>

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

		<cfquery name="getListQuery" datasource="#application.datasource#">
			SELECT 
				#getQueryString()#
			ORDER BY <cfif Len(arguments.orderBy)>#URLDecode(arguments.orderBy)#<cfelse>#URLDecode(module.list.orderBy)#</cfif>
		</cfquery>
		<cfreturn getListQuery>
	</cffunction>
	
	<cffunction name="getQueryString" access="private" output="false" returntype="string">
		<cfset var result="
				infHouseType.idHouseType,
				infHouseType.name
			FROM 
				infHouseType">
		<cfreturn result>
	</cffunction>

	<cffunction name="createOptions" access="remote" returntype="numeric" output="true">
		<cfargument name="selected" required="yes" type="numeric" default="0">
		<cfset var list=getList("infHouseType.name")>
		<cfset var result=0>
		<cfif list.idHouseType gt 0><cfset result=list.idHouseType></cfif>
		<cfloop query="list">
			<cfif list.idHouseType eq arguments.selected><cfset _selected=" selected"><cfset result=list.idHouseType><cfelse><cfset _selected=""></cfif>
			<cfoutput><option value="#list.idHouseType#"#_selected#>#list.name#</option></cfoutput>
		</cfloop>
		<cfreturn result>
	</cffunction>
	
	<cffunction name="getId" access="remote" returntype="struct" output="false">
		<cfset var result=StructNew()>
		<cfset result.id=0>
		<cfset result.message="">
		<cfquery name="getIdQuery" datasource="#application.datasource#">
			SELECT 
				idHouseType 
			FROM 
				infHouseType 
			WHERE 
				name=<cfqueryparam value="#variables.name#" cfsqltype="cf_sql_varchar" maxlength="255">
				<cfif variables.idHouseType gt 0>
				AND idHouseType != <cfqueryparam value="#variables.idHouseType#" cfsqltype="cf_sql_integer">
				</cfif>
		</cfquery>
		<cfif getIdQuery.recordcount gt 0>
			<cfset result.id=getIdQuery.idHouseType>
		</cfif>
		<cfreturn result>
	</cffunction>
	
</cfcomponent>