<!---
AJAX: employee dropdown filtered by selected HCPCS / revenue code (#10480).
Maps revenue Visit_Type + Description to employee Skill_1 (PT vs PTA, SN vs LPN, etc.).
--->
<cfsetting showdebugoutput="false">
<cfif NOT isdefined("session.agencyid")>
	<select class="form-control" name="Emp_ID" id="selectemployee">
		<option value="0">Session timed out — please login again</option>
	</select>
	<cfabort>
</cfif>

<cfparam name="url.hcpcs_id" default="0">
<cfparam name="url.selected_emp_id" default="0">
<cfparam name="url.auth_skill" default="">

<cfset empSkillFilter = Trim(url.auth_skill)>
<cfset isAssistantCode = false>
<cfset isLpnCode = false>

<cfif Val(url.hcpcs_id) GT 0>
	<cfquery name="getRev" datasource="#Application.DataSrc#">
		SELECT Visit_Type, Description, HCPCS
		FROM #Request.prefix_db_agency#.pRevenue_Code
		WHERE Rev_CodeID = <cfqueryparam cfsqltype="cf_sql_integer" value="#Val(url.hcpcs_id)#">
		AND Status = 0
		LIMIT 1
	</cfquery>
	<cfif getRev.recordcount GT 0>
		<cfset vt = UCase(Trim(getRev.Visit_Type))>
		<cfset desc = UCase(Trim(getRev.Description))>
		<cfset hcpcsCode = UCase(Trim(getRev.HCPCS))>

		<cfif FindNoCase("Assistant", getRev.Description)
			OR Left(desc, 3) EQ "PTA"
			OR Left(desc, 4) EQ "COTA"
			OR vt EQ "PTA"
			OR vt EQ "COTA"
			OR hcpcsCode EQ "G0157"
			OR hcpcsCode EQ "G0158"
			OR hcpcsCode EQ "G2168"
			OR hcpcsCode EQ "G2169">
			<cfset isAssistantCode = true>
		</cfif>

		<cfif Left(desc, 3) EQ "LPN"
			OR Left(desc, 3) EQ "LVN"
			OR vt EQ "LPN"
			OR vt EQ "LVN"
			OR vt EQ "LVN/LPN"
			OR hcpcsCode EQ "G0300">
			<cfset isLpnCode = true>
		</cfif>

		<cfif isLpnCode>
			<cfset empSkillFilter = "LPN">
		<cfelseif isAssistantCode>
			<cfif vt EQ "OT" OR Left(desc, 4) EQ "COTA" OR hcpcsCode EQ "G0158" OR hcpcsCode EQ "G2169">
				<cfset empSkillFilter = "COTA">
			<cfelseif vt EQ "ST" OR FindNoCase("Speech", getRev.Description)>
				<cfset empSkillFilter = "STA">
			<cfelse>
				<cfset empSkillFilter = "PTA">
			</cfif>
		<cfelseif Len(vt) GT 0>
			<cfset empSkillFilter = vt>
			<!--- Normalize long Visit_Type labels used on some revenue rows --->
			<cfif vt EQ "MEDICAL SOCIAL WORKER">
				<cfset empSkillFilter = "MSW">
			<cfelseif vt EQ "SKILLED NURSING" OR hcpcsCode EQ "G0299">
				<cfset empSkillFilter = "SN">
			</cfif>
		</cfif>
	</cfif>
</cfif>

<select class="form-control" name="Emp_ID" id="selectemployee" onchange="loadPayrollCodesByEmployee(this.value);">
	<option value="0">Select an Employee...</option>
	<cfif Val(url.hcpcs_id) EQ 0 OR Len(empSkillFilter) EQ 0>
		<option value="0" disabled>Select an HCPCS first...</option>
	<cfelse>
		<cfquery name="GetEI" datasource="#Application.DataSrc#">
			SELECT Emp_ID, Emp_Last, Emp_First, Status, Loc_ID, Emp_Type, Skill_1
			FROM #Request.prefix_db_lookup#.pEmployee
			WHERE Loc_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#session.AgencyId#">
			AND Status < 2
			AND Emp_Type != 'Physician'
			AND Emp_ID > 50
			<cfif UCase(empSkillFilter) EQ "LPN" OR UCase(empSkillFilter) EQ "LVN" OR UCase(empSkillFilter) EQ "LVN/LPN">
				AND (Skill_1 LIKE 'LPN%' OR Skill_1 LIKE 'LVN%')
			<cfelseif UCase(empSkillFilter) EQ "PTA">
				AND Skill_1 LIKE 'PTA%'
			<cfelseif UCase(empSkillFilter) EQ "COTA">
				AND Skill_1 LIKE 'COTA%'
			<cfelseif UCase(empSkillFilter) EQ "STA">
				AND (Skill_1 LIKE 'STA%' OR Skill_1 LIKE 'SLPA%')
			<cfelseif UCase(empSkillFilter) EQ "PT">
				AND Skill_1 LIKE 'PT%'
				AND Skill_1 NOT LIKE 'PTA%'
			<cfelseif UCase(empSkillFilter) EQ "OT">
				AND Skill_1 LIKE 'OT%'
				AND Skill_1 NOT LIKE 'COTA%'
			<cfelseif UCase(empSkillFilter) EQ "SN">
				AND (
					Skill_1 LIKE 'SN%'
					OR Skill_1 LIKE 'RN%'
					OR Skill_1 LIKE 'LPN%'
				)
			<cfelseif UCase(empSkillFilter) EQ "MSW">
				AND (Skill_1 LIKE 'MSW%' OR Skill_1 LIKE 'SW%')
			<cfelse>
				AND Skill_1 LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="#empSkillFilter#%">
			</cfif>
			GROUP BY Emp_ID
			ORDER BY Status, Emp_Last, Emp_First
		</cfquery>

		<option value="0">- - - ACTIVE Employee - - -</option>
		<cfset startInactives = false />
		<cfoutput query="GetEI">
			<cfif Status eq '1' and startInactives eq false>
				<option value="0">- - - INACTIVE Employee - - -</option>
				<cfset startInactives = true />
			</cfif>
			<cfif Session.AuthLvl eq '5.0'>
				<cfif Emp_ID eq Session.EmployeeID>
					<option value="#Emp_ID#" <cfif Val(url.selected_emp_id) EQ Emp_ID>selected</cfif>>#Emp_Last#, #Emp_First#</option>
				</cfif>
			<cfelse>
				<option value="#Emp_ID#" <cfif Val(url.selected_emp_id) EQ Emp_ID>selected</cfif>>#Emp_Last#, #Emp_First#</option>
			</cfif>
		</cfoutput>
	</cfif>
</select>
