<cfcomponent displayname="General Functions" hint="I Return General Information" output="false">
	
	<cfset client.Loc_ID = 0 />
	
   <cffunction name="init" displayname="Initialize Component" access="public" returntype="General" hint="I initialize and return the General object.">
		<cfreturn this>
	</cffunction>
    
   	<cffunction name="check_mail_phone" access="remote"  httpmethod="GET" returnformat="plain" >
	    <cfargument name="email" required="yes" hint="email">
	    <cfargument name="phone" required="yes" hint="Phonenumber">
		  <cfquery name = "get_email" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_lookup#.Agency WHERE Agy_Mailing = '#email#'
		  </cfquery>
		  <cfquery name = "get_phone" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_lookup#.Agency WHERE Agy_Phone = '#phone#'
		  </cfquery>
		  <cfif get_email.recordcount gt 0>
			 <cfreturn 'email'>
		  <cfelseif get_phone.recordcount gt 0>
			 <cfreturn 'phone'>
		  <cfelse>
		     <cfreturn 'Success'>
		 </cfif>
	</cffunction>

	<cffunction name="GetSt"  returntype="any" access="public" output="false" >
		  <cfquery  name="Getstates" datasource="#Application.DataSrc#" >
				SELECT State_ID,StateName, StateAbbr FROM #Request.prefix_db_lookup#.States ORDER BY StateName
			</cfquery>
        <cfreturn  Getstates>
	</cffunction>

	<cffunction name="get_phy"  returntype="any" access="public" output="false" >
		  <cfquery  name="Getphysician" datasource="#Application.DataSrc#" >
				SELECT  * FROM #Request.prefix_db_lookup#.pPhysicians
				WHERE status = <cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">
				AND Loc_ID = <cfqueryparam VALUE="#session.agencyid#"  cfsqltype="cf_sql_integer">
				 ORDER BY Phys_Last, Phys_First 
			</cfquery>
        <cfreturn  Getphysician>
	</cffunction>

	<cffunction name="get_emp"  returntype="any" access="public" output="false" >
		  <cfquery  name="Getemployee" datasource="#Application.DataSrc#" cachedwithin="#CreateTimeSpan(5,0,0,0)#">
				SELECT  * FROM #Request.prefix_db_lookup#.pEmployee 
				WHERE status = <cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">
				AND Loc_ID = <cfqueryparam VALUE="#session.agencyid#"  cfsqltype="cf_sql_integer">
				ORDER BY Emp_Last,Emp_First
			</cfquery>
        <cfreturn  Getemployee>
	</cffunction>

   <cffunction name="get_messages"  returntype="any" access="public" output="false" >
       <cfargument name="form_type" required="yes" hint="form type">
		  <cfquery  name="getMessage" datasource="#Application.DataSrc#">
				SELECT  * FROM #Request.prefix_db_lookup#.messages
				WHERE form_type = <cfqueryparam VALUE="#arguments.form_type#"  cfsqltype="cf_sql_varchar">
				AND deleted != 1
				 ORDER BY message_id
			</cfquery>
        <cfreturn  getMessage>
	</cffunction> 

	 

    <cffunction name="get_answers"  returntype="any" access="public" output="false" >
       <cfargument name="answer_label" required="yes" hint="answer label">
       <cfargument name="form_type" required="yes" hint="form type">
		  <cfquery  name="getanswer" datasource="#Application.DataSrc#">
				SELECT  * FROM #Request.prefix_db_lookup#.answer_lookup
				WHERE answer_label = <cfqueryparam VALUE="#arguments.answer_label#"  cfsqltype="cf_sql_varchar">
				AND  form_type = <cfqueryparam VALUE="#arguments.form_type#"  cfsqltype="cf_sql_varchar">
				AND deleted != 1
				 ORDER BY answer_order,answer_id
			</cfquery>
        <cfreturn  getanswer>
	</cffunction>
                 
	<cffunction name="SendMail" displayname="Send Mail" hint="I receive mail information and send through cfmail" output="false" access="public">
		<cfargument name="From" type="string" required="false" default="info@myhomecarebiz.com" >
		<cfargument name="To" type="string" required="true">
		<cfargument name="CC" type="string" required="false" default="">
		<cfargument name="BCC" type="string" required="false" default="">
		<cfargument name="Subject" type="string" required="true">
		<cfargument name="BodyType" type="string" required="false" default="text/html">
		<cfargument name="Body" type="string" required="true">
		<cfargument name="ReplyTo" type="string" required="false" default="">
		<cfparam name="Client.Emp_ID" default="">
		<cfparam name="client.Username" default="">
		<cfmail
			from="#arguments.From#"
			to="#arguments.To#"
			cc="#arguments.CC#"
			bcc="#arguments.BCC#"
			subject="#arguments.Subject#"
			type="#arguments.BodyType#"
			replyto="#arguments.ReplyTo#">
			#arguments.Body#
		</cfmail>
		
		<!---~ Logging the information about the page who called this send mail function --->
		<cflog file="EmailSentReport" type="information" text="Customer:#client.Emp_ID# Login:#client.Username# From:#ARGUMENTS.From# To:#ARGUMENTS.To# Subject:#ARGUMENTS.Subject#"/>
	</cffunction>


	<cffunction name="deletecomm"  access="remote" output="Yes" returnformat="plain" returntype="string">   
	 	<cfargument name="Comm_ID" required="yes" default="0">
		<cfquery  name="updatepProblem" datasource="#Application.DataSrc#">
		    UPDATE #Request.prefix_db_agency#.Communication
		    	SET status = <cfqueryparam value="2"  cfsqltype="CF_SQL_INTEGER">,
		    	Comm_record_deleted = <cfqueryparam value="1"  cfsqltype="CF_SQL_INTEGER">,
				Record_Mod_Date = <cfqueryparam value="#DateFormat(now(),'yyyy-mm-dd')#" cfsqltype="cf_sql_date">,
				Record_Mod_By	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
			WHERE Comm_ID =  <cfqueryparam CFSQLType="CF_SQL_INTEGER"  value="#arguments.Comm_ID#">
		</cfquery>
		<cfreturn 'Success' />
	</cffunction>

	<cffunction name="DeleteIncdient"  access="remote" output="Yes" returnformat="plain" returntype="string">   
	 	<cfargument name="Event_ID" required="yes" default="0">
		<cfquery  name="updatepProblem" datasource="#Application.DataSrc#">
		    UPDATE #Request.prefix_db_agency#.Event
		    	SET status = <cfqueryparam value="1"  cfsqltype="CF_SQL_INTEGER">,
				Record_Mod_Date = <cfqueryparam value="#DateFormat(now(),'yyyy-mm-dd')#" cfsqltype="cf_sql_date">,
				Record_Mod_By	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
			WHERE Event_ID =  <cfqueryparam CFSQLType="CF_SQL_INTEGER"  value="#arguments.Event_ID#">
		</cfquery>
		<cfreturn 'Success' />
	</cffunction>


	<cffunction name="deleteorder"  access="remote" output="Yes" returnformat="plain" returntype="string">   
	 	<cfargument name="Order_ID" required="yes" default="0">
		<cfquery  name="updateorder" datasource="#Application.DataSrc#">
		    UPDATE #Request.prefix_db_agency#.pCMS4857
		    	SET status = <cfqueryparam value="1"  cfsqltype="CF_SQL_INTEGER">,
				Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
				Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
			WHERE Order_ID =  <cfqueryparam CFSQLType="CF_SQL_INTEGER"  value="#arguments.Order_ID#">
		</cfquery>
		<cfreturn 'Success' />
	</cffunction>



	<cffunction name="checkuser"  access="remote" output="Yes" httpmethod="GET" returnformat="JSON">   
	 	<cfargument name="username" required="yes" default="">
	 	<cfargument name="password" required="yes" default="">

	 	<cfset  encryptedpassword =  #encrypt(arguments.password, "WTq8zYcZfaWVvMncigHqwQ==", "AES", "Base64")# />
		<cfquery  name="checkemployee" datasource="#Application.DataSrc#">
		   SELECT Agency.* FROM #Request.prefix_db_lookup#.pEmployee
		   JOIN #Request.prefix_db_lookup#.Agency ON Agency.Agency_ID = pEmployee.Loc_ID AND Agency.Status = 'active'
		   WHERE pEmployee.status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
		   AND pEmployee.username = <cfqueryparam value="#arguments.username#"  cfsqltype="CF_SQL_VARCHAR">
		   AND pEmployee.password = <cfqueryparam value="#encryptedpassword#"  cfsqltype="CF_SQL_VARCHAR">
		</cfquery>
		<cfset responsekey=[] />
		<cfoutput query="checkemployee" group="Agency_ID">
			<cfset obj={"Agency_Name"=#Agency_Name# ,"Agency_Login" = #Agency_Login#,"Agency_ID" = #Agency_ID# }  />
         <cfset arrayAppend(responsekey, obj) />
		</cfoutput>
		<cfset response={"agencies"= #responsekey#} />
		<cfreturn response />
	</cffunction>


	<cffunction name="get_all_physicians"  returntype="any" access="public" output="false" >
	    <cfargument name="Loc_ID" required="no" hint="Loc_ID" default="#session.agencyid#">
	    <cfargument name="status" required="no" hint="status" default="0">
	    <cfargument name="physician_id" required="no" hint="physician_id" default="0">
		  <cfquery name = "getall" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_lookup#.pPhysicians
				 WHERE Loc_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.Loc_ID#">
				 AND Status = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.status#">
				 <cfif arguments.physician_id NEQ 0 >
				 	 AND Phys_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.physician_id#">
				 </cfif>
				 AND Phys_Fax IS NOT NULL
				 ORDER BY Phys_Last,Phys_First  ASC
		  </cfquery>
		 <cfreturn  getall>
	</cffunction>


<cffunction name="encryptionofid"  access="remote" output="Yes"  returnformat="plain" returntype="string">  
	    <cfargument name="id" required="no"  default="0">
	    <cfset enc_id = 0 />
		  <cfif arguments.id NEQ '0'>
		  	  	<cfset enc_id = encrypt(#arguments.id#, #application.enckey#,"AES","Hex") />
		  </cfif>
		 <cfreturn enc_id />	
	</cffunction>


            
</cfcomponent>