<cfcomponent extends="proventas31.common.formObject">
	<cfset variables.idSalesClient=0>
	<cfset variables.idEmployee=0>
	<cfset variables.employee="">
	<cfset variables.dateRegistration=LSDateFormat(Now(), "dd/mm/yyyy") & " " & LSTimeFormat(Now(), "HH:mm:ss")>
	<cfset variables.nameFirst="">
	<cfset variables.nameFirst1="">
	<cfset variables.nameLast="">
	<cfset variables.nameLast1="">
	<cfset variables.documentNumber="">
	<cfset variables.occupation="">
	<cfset variables.maritalStatus="">
	<cfset variables.company="">
	<cfset variables.comments="">
	<cfset variables.salesClientData="">
	<cfset module.list.orderBy="salesClient.dateRegistration DESC, salesClientUnit.dateRegistration DESC, namesFirst, namesLast">
	
	<cfset variables.idSeller=0>
	<cfset variables.seller="">
	<cfset variables.idProject=0>
	<cfset variables.project="">
	<cfset variables.idSalesClientState=0>
	<cfset variables.salesClientState="">
	<cfset variables.email="">
	
	<cffunction name="init" access="public" output="false">
		<cfset variables.idSalesClient=0>
		<cfset variables.idEmployee=0>
		<cfset variables.employee="">
		<cfset variables.dateRegistration=LSDateFormat(Now(), "dd/mm/yyyy") & " " & LSTimeFormat(Now(), "HH:mm:ss")>
		<cfset variables.nameFirst="">
		<cfset variables.nameFirst1="">
		<cfset variables.nameLast="">
		<cfset variables.nameLast1="">
		<cfset variables.documentNumber="">
		<cfset variables.occupation="">
		<cfset variables.maritalStatus="">
		<cfset variables.company="">
		<cfset variables.comments="">
		<cfset variables.salesClientData="">

		<cfset variables.idSeller=0>
		<cfset variables.seller="">
		<cfset variables.idProject=0>
		<cfset variables.project="">
		<cfset variables.idSalesClientState=0>
		<cfset variables.salesClientState="">
		<cfset variables.email="">
	</cffunction>
	
	<cffunction name="getFormObjectId" access="public" output="false" returntype="numeric">
		<cfreturn getidSalesClient()>
	</cffunction>
	
	<cffunction name="setFormObjectId" access="public" output="false">
		<cfargument name="objectId" type="numeric" required="yes">
		<cfset setidSalesClient(arguments.objectId)>
	</cffunction>

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

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

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

	<cffunction name="getIdEmployee" access="public" returntype="numeric" output="false">
		<cfreturn variables.idEmployee>
	</cffunction>
	
	<cffunction name="getEmployee" access="public" returntype="proventas31.corporate.employee" output="false">
		<cfif not IsObject("variables.employee")><cfset variables.employee=CreateObject("component", "proventas31.corporate.employee")></cfif>
		<cfif (Compare(module.form.pageAction, "add") and not variables.employee.isRetrievedFromDB()) or variables.employee.getIdEmployee() neq variables.idEmployee>
			<cfset variables.employee=CreateObject("component", "proventas31.corporate.employee")>
			<cfset variables.employee.setIdEmployee(variables.idEmployee)>
			<cfset variables.employee.get()>
		</cfif>
		<cfreturn variables.employee>
	</cffunction>
	
	<cffunction name="setDateRegistration" access="public" output="false">
		<cfargument name="dateRegistration" type="string" required="yes" default="">
		<cfset variables.dateRegistration=arguments.dateRegistration>
	</cffunction>

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

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

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

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

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

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

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

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

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

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

	<cffunction name="getDocumentNumber" access="public" returntype="string" output="false">
		<cfreturn variables.documentNumber>
	</cffunction>
	
	<cffunction name="setOccupation" access="public" output="false">
		<cfargument name="occupation" type="string" required="yes" default="">
		<cfset variables.occupation=arguments.occupation>
	</cffunction>

	<cffunction name="getOccupation" access="public" returntype="string" output="false">
		<cfreturn variables.occupation>
	</cffunction>
	
	<cffunction name="setMaritalStatus" access="public" output="false">
		<cfargument name="maritalStatus" type="string" required="yes" default="">
		<cfset variables.maritalStatus=arguments.maritalStatus>
	</cffunction>

	<cffunction name="getMaritalStatus" access="public" returntype="string" output="false">
		<cfreturn variables.maritalStatus>
	</cffunction>
	
	<cffunction name="setCompany" access="public" output="false">
		<cfargument name="company" type="string" required="yes" default="">
		<cfset variables.company=arguments.company>
	</cffunction>

	<cffunction name="getCompany" access="public" returntype="string" output="false">
		<cfreturn variables.company>
	</cffunction>
	
	<cffunction name="setComments" access="public" output="false">
		<cfargument name="comments" type="string" required="yes" default="">
		<cfset variables.comments=arguments.comments>
	</cffunction>

	<cffunction name="getComments" access="public" returntype="string" output="false">
		<cfreturn variables.comments>
	</cffunction>
	
	<cffunction name="getSalesClientData" access="public" returntype="proventas31.corporate.salesClientData" output="false">
		<cfif not IsObject("variables.salesClientData")><cfset variables.salesClientData=CreateObject("component", "proventas31.corporate.salesClientData")></cfif>
		<cfif (Compare(module.form.pageAction, "add") and not variables.salesClientData.isRetrievedFromDB()) or variables.salesClientData.getIdSalesClient() neq variables.idSlaesClient>
			<cfset variables.salesClientData=CreateObject("component", "proventas31.corporate.salesClientData")>
			<cfset variables.salesClientData.setIdSalesClient(variables.idSalesClient)>
			<cfset variables.salesClientData.get()>
		</cfif>
		<cfreturn variables.salesClientData>
	</cffunction>

<!--- additional stuff used for filtering of full list --->
	<cffunction name="setIdSeller" access="public" output="false">
		<cfargument name="idSeller" type="numeric" required="yes" default="0">
		<cfset variables.idSeller=arguments.idSeller>
	</cffunction>

	<cffunction name="getIdSeller" access="public" returntype="numeric" output="false">
		<cfreturn variables.idSeller>
	</cffunction>
	
	<cffunction name="getSeller" access="public" returntype="proventas31.corporate.employee" output="false">
		<cfif not IsObject("variables.seller")><cfset variables.seller=CreateObject("component", "proventas31.corporate.employee")></cfif>
		<cfif (Compare(module.form.pageAction, "add") and not variables.seller.isRetrievedFromDB()) or variables.seller.getIdEmployee() neq variables.idSeller>
			<cfset variables.seller=CreateObject("component", "proventas31.corporate.employee")>
			<cfset variables.seller.setIdEmployee(variables.idSeller)>
			<cfset variables.seller.get()>
		</cfif>
		<cfreturn variables.seller>
	</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="setIdSalesClientState" access="public" output="false">
		<cfargument name="idSalesClientState" type="numeric" required="yes" default="0">
		<cfset variables.idSalesClientState=arguments.idSalesClientState>
	</cffunction>

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

	<cffunction name="getSalesClientState" access="public" returntype="proventas31.corporate.salesClientState" output="false">
		<cfif not IsObject("variables.salesClientState")><cfset variables.salesClientState=CreateObject("component", "proventas31.corporate.salesClientState")></cfif>
		<cfif (Compare(module.form.pageAction, "add") and not variables.salesClientState.isRetrievedFromDB()) or variables.salesClientState.getIdSalesClientState() neq variables.idSalesClientState>
			<cfset variables.salesClientState=CreateObject("component", "proventas31.corporate.salesClientState")>
			<cfset variables.salesClientState.setIdSalesClientState(variables.idSalesClientState)>
			<cfset variables.salesClientState.get()>
		</cfif>
		<cfreturn variables.salesClientState>
	</cffunction>

<!--- end --->

	<cffunction name="setVariablesFromQuery" access="private" output="false">
		<cfargument name="query" type="query" required="yes">
		<cfif query.recordcount gt 0>
			<cfset variables.idSalesClient=getQuery.idSalesClient>
			<cfif Len(getQuery.idEmployee)><cfset variables.idEmployee=getQuery.idEmployee><cfelse><cfset variables.idEmployee=0></cfif>
			<cfif Len(query.dateRegistration)><cfset variables.dateRegistration=LSDateFormat(query.dateRegistration, "dd/mm/yyyy") & " " & LSTimeFormat(query.dateRegistration, "HH:mm:ss")><cfelse><cfset variables.dateRegistration=""></cfif>
			<cfset variables.nameFirst=getQuery.nameFirst>
			<cfset variables.nameFirst1=getQuery.nameFirst1>
			<cfset variables.nameLast=getQuery.nameLast>
			<cfset variables.nameLast1=getQuery.nameLast1>
			<cfset variables.documentNumber=getQuery.documentNumber>
			<cfset variables.occupation=getQuery.occupation>
			<cfset variables.maritalStatus=getQuery.maritalStatus>
			<cfset variables.company=getQuery.company>
			<cfset variables.comments=getQuery.comments>
		</cfif>
	</cffunction>

	<cffunction name="get" access="public" output="false">
		<cfquery name="getQuery" datasource="#application.datasource#">
			SELECT 
				#getQueryString()#
			WHERE
				salesClient.idSalesClient=<cfqueryparam value="#variables.idSalesClient#" 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 DISTINCT
				#getQueryString()#
			GROUP BY salesClient.idSalesClient, salesClientUnit.idSalesClientUnit
			ORDER BY <cfif Len(arguments.orderBy)>#arguments.orderBy#<cfelse>#module.list.orderBy#</cfif>
		</cfquery>
		<cfreturn getListQuery>
	</cffunction>
	
	<cffunction name="getListFull" access="public" output="false" returntype="query">
		<cfargument name="orderBy" required="no" type="string" default="">
		<cfquery name="getListFullQuery" datasource="#application.datasource#">
			SELECT DISTINCT
				#getFullQueryString()#
			WHERE 
				1=1
				<cfif Len(variables.nameFirst)>
				AND (
					salesClient.nameFirst LIKE <cfqueryparam value="%#variables.nameFirst#%" cfsqltype="cf_sql_varchar" maxlength="255">
					OR 
					salesClient.nameFirst1 LIKE <cfqueryparam value="%#variables.nameFirst#%" cfsqltype="cf_sql_varchar" maxlength="255">
				)
				</cfif>
				<cfif Len(variables.nameLast)>
				AND (
					salesClient.nameLast LIKE <cfqueryparam value="%#variables.nameLast#%" cfsqltype="cf_sql_varchar" maxlength="255">
					OR 
					salesClient.nameLast1 LIKE <cfqueryparam value="%#variables.nameLast#%" cfsqltype="cf_sql_varchar" maxlength="255">
				)
				</cfif>
				<cfif variables.idProject gt 0>
				AND sellerClientProject.idProject=<cfqueryparam value="#variables.idProject#" cfsqltype="cf_sql_integer">
				</cfif>
				<cfif variables.idSalesClientState gt 0>
				AND salesClientUnit.idSalesClientState=<cfqueryparam value="#variables.idSalesClientState#" cfsqltype="cf_sql_integer">
				</cfif>
				<cfif variables.idEmployee gt 0>
				AND salesClient.idEmployee=<cfqueryparam value="#variables.idEmployee#" cfsqltype="cf_sql_integer">
				</cfif>
				<cfif variables.idSeller gt 0>
				AND sellerClientProject.idEmployee=<cfqueryparam value="#variables.idSeller#" cfsqltype="cf_sql_integer">
				</cfif>
			ORDER BY <cfif Len(arguments.orderBy)>#arguments.orderBy#<cfelse>#module.list.orderBy#</cfif>
		</cfquery>
		<cfreturn getListFullQuery>
	</cffunction>
	
	<cffunction name="getQueryString" access="private" output="false" returntype="string">
		<cfset var result="
				salesClient.idSalesClient,
				salesClient.idEmployee, CONCAT(TRIM(CONCAT(employee.nameFirst, ' ', employee.nameFirst1)), ' ', TRIM(CONCAT(employee.nameLast, ' ', employee.nameLast1))) AS employee,
				salesClient.dateRegistration,
				salesClient.nameFirst,
				salesClient.nameFirst1,
				TRIM(CONCAT(salesClient.nameFirst, ' ', salesClient.nameFirst1)) AS namesFirst,
				salesClient.nameLast,
				salesClient.nameLast1,
				TRIM(CONCAT(salesClient.nameLast, ' ', salesClient.nameLast1)) AS namesLast,
				CONCAT(TRIM(CONCAT(salesClient.nameFirst, ' ', salesClient.nameFirst1)), ' ', TRIM(CONCAT(salesClient.nameLast, ' ', salesClient.nameLast1))) AS nameFull,
				salesClient.documentNumber,
				salesClient.occupation,
				salesClient.maritalStatus,
				salesClient.company,
				salesClient.comments
			FROM 
				salesClient
			LEFT JOIN employee ON salesClient.idEmployee=employee.idEmployee
			">
		<cfreturn result>
	</cffunction>
	
	<cffunction name="getFullQueryString" access="private" output="false" returntype="string">
		<cfset var result="
				salesClient.idSalesClient,
				salesClient.idEmployee, CONCAT(TRIM(CONCAT(employee.nameFirst, ' ', employee.nameFirst1)), ' ', TRIM(CONCAT(employee.nameLast, ' ', employee.nameLast1))) AS employee,
				salesClient.dateRegistration,
				salesClient.nameFirst, salesClient.nameFirst1, TRIM(CONCAT(salesClient.nameFirst, ' ', salesClient.nameFirst1)) AS namesFirst, salesClient.nameLast, salesClient.nameLast1, TRIM(CONCAT(salesClient.nameLast, ' ', salesClient.nameLast1)) AS namesLast,
				CONCAT(TRIM(CONCAT(salesClient.nameFirst, ' ', salesClient.nameFirst1)), ' ', TRIM(CONCAT(salesClient.nameLast, ' ', salesClient.nameLast1))) AS nameFull,
				salesClient.documentNumber,
				salesClientData.idSalesContactMedia, salesContactMedia.name AS salesContactMedia,
				salesClientData.phone1, salesClientData.phone2, salesClientData.phone3, salesClientData.email,
				salesClientUnit.idSalesUnit, salesUnit.number AS number,
				sellerClientProject.idEmployee AS idSeller, CONCAT(TRIM(CONCAT(seller.nameFirst, ' ', seller.nameFirst1)), ' ', TRIM(CONCAT(seller.nameLast, ' ', seller.nameLast1))) AS seller,
				sellerClientProject.idProject, project.name AS project,
				salesClientUnit.idSalesClientState, salesClientState.name AS salesClientState,
				salesClientUnit.idCurrency, currency.name AS currency,
				salesClientUnit.dateRegistration AS sellDateRegistration,
				salesClientUnit.sellPrice
			FROM 
				salesClient
			LEFT JOIN employee ON salesClient.idEmployee=employee.idEmployee
			LEFT JOIN salesClientData ON salesClient.idSalesClient=salesClientData.idSalesClient
			LEFT JOIN salesContactMedia ON salesClientData.idSalesContactMedia=salesContactMedia.idSalesContactMedia
			LEFT JOIN salesClientUnit ON salesClient.idSalesClient=salesClientUnit.idSalesClient 
			LEFT JOIN salesUnit ON salesClientUnit.idSalesUnit=salesUnit.idSalesUnit
			LEFT JOIN salesClientState ON salesClientUnit.idSalesClientState=salesClientState.idSalesClientState
			LEFT JOIN currency ON salesClientUnit.idCurrency=currency.idCurrency
			LEFT JOIN sellerClientProject ON salesClient.idSalesClient=sellerClientProject.idSalesClient AND IF(salesClientUnit.idSalesClientUnit, salesClientUnit.idProject=sellerClientProject.idProject, 1=1)
			LEFT JOIN employee AS seller ON sellerClientProject.idEmployee=seller.idEmployee 
			LEFT JOIN project ON sellerClientProject.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("salesClient.documentNumber")>
		<cfset var result=0>
		<cfif list.idSalesClient gt 0><cfset result=list.idSalesClient></cfif>
		<cfloop query="list">
			<cfif list.idSalesClient eq arguments.selected><cfset _selected=" selected"><cfset result=list.idSalesClient><cfelse><cfset _selected=""></cfif>
			<cfoutput><option value="#list.idSalesClient#"#_selected#>#list.nameFull#</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 
				idSalesClient 
			FROM 
				salesClient 
			WHERE 
				nameFirst=<cfqueryparam value="#variables.nameFirst#" cfsqltype="cf_sql_varchar" maxlength="255">
				AND nameFirst1=<cfqueryparam value="#variables.nameFirst1#" cfsqltype="cf_sql_varchar" maxlength="255">
				AND nameLast=<cfqueryparam value="#variables.nameLast#" cfsqltype="cf_sql_varchar" maxlength="255">
				AND nameLast1=<cfqueryparam value="#variables.nameLast1#" cfsqltype="cf_sql_varchar" maxlength="255">
				<cfif variables.idSalesClient gt 0>
				AND idSalesClient != <cfqueryparam value="#variables.idSalesClient#" cfsqltype="cf_sql_integer">
				</cfif>
		</cfquery>
		<cfif getIdQuery.recordcount gt 0>
			<cfset result.id=getIdQuery.idSalesClient>
		</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.nameFirst)>
			<cfset result.message="Primer nombre es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfif not Len(variables.nameLast)>
			<cfset result.message="Apellido paterno es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfif not Len(variables.nameLast1)>
			<cfset result.message="Apellido materno es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfset result=getId()>
		<cfif result.id gt 0>
			<cfset result.message="Prospecto/cliente con ese nombre ya existe">
			<cfreturn result>
		</cfif>
		<!--- variables ok --->
		<cftry>
			<cfquery name="createQuery" datasource="#application.datasource#">
				INSERT INTO salesClient
					(
					idSalesClient,
					idEmployee, 
					dateRegistration, 
					nameFirst, 
					nameFirst1, 
					nameLast, 
					nameLast1, 
					documentNumber,
					occupation,
					maritalStatus,
					company,
					comments
					) 
				VALUES 
					(
					<cfqueryparam value="#variables.idSalesClient#" cfsqltype="cf_sql_integer">,
					<cfif variables.idEmployee gt 0><cfqueryparam value="#variables.idEmployee#" cfsqltype="cf_sql_integer"><cfelse>NULL</cfif>, 
					<cfqueryparam value="#Now()#" cfsqltype="cf_sql_timestamp">,
					<cfqueryparam value="#variables.nameFirst#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.nameFirst1#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.nameLast#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.nameLast1#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.documentNumber#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.occupation#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.maritalStatus#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.company#" cfsqltype="cf_sql_varchar" maxlength="255">,
					<cfqueryparam value="#variables.comments#" cfsqltype="CF_SQL_LONGVARCHAR">
					)
			</cfquery>
			<cfif variables.idSalesClient lt 1>
				<cfset result=getId()>
				<cfset variables.idSalesClient=result.id>
			<cfelse>
				<cfset result.id=variables.idSalesClient>
			</cfif>
			<!---- external users - must send mail to supervisor --->
			<cfif session.employee.getIdEmployeeType() eq application.employeeType.external and session.employee.getIdSupervisor() gt 0>
				<cfset _supervisor=session.employee.getSupervisor()>
				<cfset _supervisorData=_supervisor.getEmployeeData()>
				<cfif Len(_supervisorData.getEmail())>
					<cfmail from="info@yarmak.info" to="#_supervisorData.getEmail()#" subject="Registro de prospecto por usuario externo" type="html">
Este es un aviso automático.<br>
Se ha registrado un prospecto nuevo. El usuario responsable del registro es #session.employee.getNameFull()#.<br>
Para más información, por favor ingresar a <a href="http://ventas.yarmak.info">http://ventas.yarmak.info</a> .
					</cfmail>
				</cfif>
			</cfif>
			<!--- catch any error --->
			<cfcatch type="any">
				<cfset result.id=-1>
				<cfset result.message="Error [salesClient.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.nameFirst)>
			<cfset result.message="Primer nombre es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfif not Len(variables.nameLast)>
			<cfset result.message="Apellido paterno es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfif not Len(variables.nameLast1)>
			<cfset result.message="Apellido materno es un campo obligatorio">
			<cfreturn result>
		</cfif>
		<cfset result=getId()>
		<cfif result.id gt 0>
			<cfset result.message="Prospecto/cliente con ese nombre ya existe">
			<cfreturn result>
		</cfif>
		<!--- variables ok --->
		<cftry>
			<cfquery name="updateQuery" datasource="#application.datasource#">
				UPDATE salesClient
				SET 
					nameFirst=<cfqueryparam value="#variables.nameFirst#" cfsqltype="cf_sql_varchar" maxlength="255">,
					nameFirst1=<cfqueryparam value="#variables.nameFirst1#" cfsqltype="cf_sql_varchar" maxlength="255">,
					nameLast=<cfqueryparam value="#variables.nameLast#" cfsqltype="cf_sql_varchar" maxlength="255">,
					nameLast1=<cfqueryparam value="#variables.nameLast1#" cfsqltype="cf_sql_varchar" maxlength="255">,
					documentNumber=<cfqueryparam value="#variables.documentNumber#" cfsqltype="cf_sql_varchar" maxlength="255">,
					occupation=<cfqueryparam value="#variables.occupation#" cfsqltype="cf_sql_varchar" maxlength="255">,
					maritalStatus=<cfqueryparam value="#variables.maritalStatus#" cfsqltype="cf_sql_varchar" maxlength="255">,
					company=<cfqueryparam value="#variables.company#" cfsqltype="cf_sql_varchar" maxlength="255">,
					comments=<cfqueryparam value="#variables.comments#" cfsqltype="CF_SQL_LONGVARCHAR">
					<cfif variables.idEmployee gt 0>,idEmployee=<cfqueryparam value="#variables.idEmployee#" cfsqltype="cf_sql_integer"></cfif>
					<cfif Len(variables.dateRegistration)>
					,dateRegistration=<cfqueryparam value="#parseDate(dateRegistration)#" cfsqltype="cf_sql_timestamp">
					</cfif>
				WHERE 
					idSalesClient=<cfqueryparam value="#variables.idSalesClient#" cfsqltype="cf_sql_integer">
			</cfquery>
			<cfset result.id=variables.idSalesClient>
			<!--- catch any error --->
			<cfcatch type="any">
				<cfset result.id=-1>
				<cfset result.message="Error [salesClient.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 salesClient
				WHERE 
					idSalesClient=<cfqueryparam value="#variables.idSalesClient#" 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 [salesClient.delete()]: " & cfcatch.Message & "<br>Details: " & cfcatch.Detail>
			</cfcatch>
		</cftry>
		<cfreturn result>
	</cffunction>
	
	<cffunction name="getEmail" access="public" output="false" returntype="string">
		<cfreturn variables.email>
	</cffunction>
	
	<cffunction name="setEmail" access="public" output="false">
		<cfargument name="email" type="string" required="yes" default="">
		<cfset variables.email=arguments.email>
	</cffunction>
</cfcomponent>
