Doorprize

Jarvis, tolong fitur apa namanya diapain biar apa gitu ga apa kali?
Anonymous
coldfusion
09/14/2026 9:03 AM
12.1 KB
6
Indexable
<cffunction name="filterEmployeeTech"> <!--- add this func by Shinta:01152015 button filter employee --->
		<cfparam name="search" default="">
		<cfparam name="nrow" default="50">
		<cfparam name="member" default="">
		<!---filter employee--->
		<cfparam name="ftpass" default=""><!--- BUG51015-52725: ganti name dari worklocation dan query harus data auth--->
		<cfparam name="hdnFilterEmpemppayrollperiod" default="">
		
		<cfset LOCAL.ftpassdec=DecodeFromURL(hdnFilterEmpemppayrollperiod)>
		<cfset lstparams="dept,work_loc,cost_center,job_status,job_grade,emp_pos,emp_status,gender,marital,religion,work_status,hdnfaoempnolist">
		
		<cfif (ftpass neq "" AND IsJSON(ftpass)) OR (len(trim(LOCAL.ftpassdec)) AND IsJSON(LOCAL.ftpassdec))>
			<!---<cfset params=DeserializeJSON(ftpass)><cf_sfwritelog dump="params" prefix="FORM[2]"--->
		    <cfif ftpass neq "" AND IsJSON(ftpass)>
			    <cfset params=DeserializeJSON(ftpass)>
			<cfelse>
			    <cfset params=DeserializeJSON(LOCAL.ftpassdec)>
		    </cfif>
		    
			<cfloop list="#lstparams#" index="iidx">
				<cfif StructKeyExists(params,iidx)>
					<cfparam name="#iidx#" default="#params[iidx]#">
				<cfelse>
					<cfparam name="#iidx#" default="">
				</cfif>
			</cfloop>
		</cfif>
		<cfif val(nrow) eq "0">
			<cfset nrow="1000000">
		</cfif>
		
		<cfset nrow="1000000">
		<cfset LOCAL.searchText=trim(search)>
		<cfset LOCAL.lsGender="Female,Male">
		<cfset LOCAL.lsMarital="Single,Married,Widow,Widower,Divorce">
		<cfset LOCAL.EmpLANG=Application.SFParser.TransMLang(listAppend(lsMarital,lsGender),false,",")>
		<cfset Local.StartDebug = getTickCount()>
		<cfset LOCAL.searchText=trim(search)>
			
		<cfoutput>
			<cfquery name="LOCAL.qdata" datasource="#REQUEST.SDSN#" maxrows="#nrow#">
				SELECT E.emp_id
	            
				,E.full_name emp_name
				,EC.emp_no
	            <!---,EC.status active,
				EC.end_date,
				EG.terminate_date terminate_date,
				EC.company_id company_id--->
				<cfif isdefined("dept") AND len(dept)>, P.position_id, P.dept_id dept_id, P.parent_path parent_path</cfif>
				FROM TEOMEmpPersonal E 
	                INNER JOIN TEODEmpCompany EC ON E.emp_id=EC.emp_id
					INNER JOIN TEODEmpPersonal EP ON E.emp_id = EP.emp_id
					INNER JOIN TEODEMPCOMPANYGROUP EG ON EG.emp_id = E.emp_id
					<cfif isdefined("dept") AND len(dept)>
	                    INNER JOIN TEOMPOSITION P
	                        ON EC.position_id=P.position_id AND P.company_id=EC.company_id
	                    INNER JOIN TEOMPOSITION DEPT
	                        ON P.dept_id=DEPT.position_id AND DEPT.company_id=P.company_id
					</cfif>
					<cfif len(member)>
						<cfset cutlistmember=application.sfutil.cutlist(ListQualify(member,"'"),' EN.emp_id IN ','OR',2)>
						left join TEOMEmpPersonal EN ON E.emp_id = EN.emp_id
														AND (#PreserveSingleQuotes(cutlistmember)#)
					</cfif>
				WHERE EC.company_id = <cfqueryparam value="#REQUEST.SCOOKIE.COID#" cfsqltype="cf_sql_integer">
				<cfif len(member)>
				    AND EN.emp_id IS NULL
				</cfif>
				<cfif len(searchText)>
					AND (E.full_name 
					LIKE <cfqueryparam value="%#searchText#%" cfsqltype="CF_SQL_VARCHAR"> <!--- BUG51115-54961 : ganti tag cfqueryparam biasa (awalnya queremp)--->
					OR EC.emp_no LIKE <cfqueryparam value="%#searchText#%" cfsqltype="CF_SQL_VARCHAR">)
				</cfif>

				<!---Filter:Employee_Information--->
				<cfif (ftpass neq "" AND IsJSON(ftpass)) OR (len(trim(LOCAL.ftpassdec)) AND IsJSON(LOCAL.ftpassdec))>
					<cfif isdefined("dept") AND len(dept)>
						AND Dept.position_id IN (<cfqueryparam value="#dept#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
					<cfif isdefined("work_loc") AND len(work_loc)>
						AND EC.work_location_code = <cfqueryparam value="#work_loc#" cfsqltype="CF_SQL_VARCHAR">
					</cfif>
					<cfif isdefined("cost_center") AND len(cost_center)>
						AND EC.cost_code IN (<cfqueryparam value="#cost_center#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
					<cfif isdefined("job_status") AND len(job_status)>
						AND EC.job_status_code IN (<cfqueryparam value="#job_status#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
					<cfif isdefined("job_grade") AND len(job_grade)>
						AND EC.grade_code IN (<cfqueryparam value="#job_grade#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
					<cfif len(emp_pos)>
						AND EC.position_id IN (<cfqueryparam value="#emp_pos#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
					<cfif len(emp_status)>
						AND EC.employ_code IN (<cfqueryparam value="#emp_status#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
					<!---Personal_Information--->
					<cfif len(gender) and gender neq "2">
						#APPLICATION.SFUtil.getLookupQueryPart("gender",gender,"0=Female|1=Male",0,"AND")#
					</cfif>
					<cfif len(marital)>
						AND EP.maritalstatus = <cfqueryparam value="#marital#" cfsqltype="CF_SQL_NUMERIC">
					</cfif>
					<cfif len(religion)>
						AND EP.religion_code IN (<cfqueryparam value="#religion#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
					</cfif>
				    <cfif len(work_status) AND work_status neq '3'> <!--- BUG50315-39161 --->
	                    <!---AND E.status = <cf_sfqparamemp value="#work_status#" cfsqltype="CF_SQL_NUMERIC">--->
	                    <cfif work_status eq '1'>
	                          AND (EC.end_date >= #CreateODBCDate(Now())# OR EC.end_date IS NULL)
	                    <cfelse>
	                         AND (EC.end_date < #CreateODBCDate(Now())#)
	                    </cfif>
	                </cfif>
	                <cfif len(trim(hdnfaoempnolist))>
	                    AND (#Application.SFUtil.CutList(ListQualify(hdnfaoempnolist,"'")," EC.emp_no IN ","OR",2)#)
	                </cfif>
				</cfif>
				ORDER BY emp_name
			</cfquery>
		</cfoutput>
		<!---<cfset Local.EndDebug = getTickCount()>
		<cfoutput>Query qdata filterEmployeeTech : #Local.EndDebug-Local.StartDebug# ms<hr></cfoutput>
		<cf_sfwritelog dump="qdata" prefix="filterEmployeeTech" ext="html">--->
		<!---<cfset LOCAL.vResult="">
		<cfloop query="qData">
			<cfset vResult=vResult & "
			arrEntryList[#currentrow-1#]=""#JSStringFormat(emp_id & "=" & emp_name & " (#emp_no#)")#"";"
			& "arrEmpStat[#currentrow-1#]=""#JSStringFormat(active)#"";"
			& "arrEnddt[#currentrow-1#]=""#DateFormat(end_date,"d/m/yyyy")#"";"
			& "arrTermdt[#currentrow-1#]=""#DateFormat(terminate_date,"d/m/yyyy")#"";"
			& "arrCompid[#currentrow-1#]=""#(company_id)#"";"
			& "arrEmpid[#currentrow-1#]=""#(emp_id)#"";"
			& "arrNamval[#currentrow-1#]=""#(emp_name & "(#emp_no#)")#"";">
		</cfloop>--->

		<cfoutput>
			<script>
			    <cfif ftpass neq "" AND IsJSON(ftpass)>
    			    if($sf("inp_listjson")) {
    				    $sf("inp_listjson").value = '#ftpass#';
    			    }
    			<cfelseif len(trim(LOCAL.ftpassdec)) AND IsJSON(LOCAL.ftpassdec)>
    			    if($sf("inp_listjson")) {
    				    $sf("inp_listjson").value = '#LOCAL.ftpassdec#';
    			    }
    			<cfelse>
    			    if($sf("inp_listjson")) {
    				    $sf("inp_listjson").value = '';
    			    }
			    </cfif>
				arrEntryList=new Array();
		</cfoutput>
		<!---
		arrEmpStat=new Array();
		arrEnddt=new Array();
		arrTermdt=new Array();
		arrCompid=new Array();
		arrEmpid=new Array();
		arrNamval=new Array();
		<cfif len(vResult)>
			#vResult#
		</cfif>--->
		<cfloop query="qData" startrow="1" endrow="1000">
			<cfoutput>arrEntryList[#currentrow-1#]="#JSStringFormat("#emp_id#=#emp_name# (#emp_no#)")#";</cfoutput>
		</cfloop>
		
		<cfoutput></script></cfoutput>
		
        <cfif len(trim(hdnfaoempnolist))>
            <cfset LOCAL.foundemplist = valuelist(qData.emp_no) />
            <cfset LOCAL.empdiff = Application.SFUtil.listCompare(ucase(hdnfaoempnolist),ucase(LOCAL.foundemplist)) />
            
            <cftry>
                <cfif len(trim(LOCAL.empdiff))>
                    <cfquery name="qnextdiff" datasource="#request.sdsn#">
                        SELECT emp_id, emp_no FROM view_employee WHERE emp_no in (#listqualify(LOCAL.empdiff,"'")#)
                    </cfquery>
                    
                    <cfif qnextdiff.recordcount>
                        <cfset lsteid = application.sfutil.cleanlist(valuelist(qnextdiff.emp_id)) />
                        <cfset lsteno = application.sfutil.cleanlist(valuelist(qnextdiff.emp_no)) />
                        
                        <cfloop list='#form.member#' index="iidx">
                            <cfloop list='#lsteid#' index="jidx">
                                <cfif iidx eq jidx>
                                    <cfset lsteno = listdeleteat(lsteno,listfindnocase(lsteid,jidx)) />
                                    <cfset lsteid = listdeleteat(lsteid,listfindnocase(lsteid,jidx)) />
                                </cfif>
                            </cfloop>
                        </cfloop>
                        <cfset LOCAL.empdiff = lsteno />
                    </cfif>
    
                    <cfif len(trim(LOCAL.empdiff))>
                        <cfoutput><script>alert('Employee Number not found in list: #LOCAL.empdiff#');</script></cfoutput>
                    </cfif>
                </cfif>
                
                <cfcatch></cfcatch>
            </cftry>
        </cfif>
	</cffunction>
Editor is loading...
Leave a Comment