<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="com.csc.library.entry.UIManager, com.csc.library.utilities.CheckNull"%>
<%@page import="com.csc.library.entry.HelpEntry, com.csc.library.utilities.CscCalendar"%>
<%@page import="com.csc.library.session.DbInquiry, com.csc.library.session.DbRecord, com.csc.library.session.InitialRecord, com.csc.library.session.InitialInquiry"%>
<%@page import="com.csc.library.database.DataSet, com.csc.library.components.ListBox, com.csc.library.report.ReportUDF, com.csc.library.databean.Simtapstran"%>
<%@page import="com.csc.library.database.StaticProperties, com.csc.library.database.CscConnection,com.csc.library.database.*,com.csc.library.session.*"%>
<%@ include file="../CHECKPROFILE.jsp" %>
<jsp:useBean id="APP_EMV005_1" class="com.csc.library.system.Task" scope="page" />
<% 
	
	APP_EMV005_1.setChannel(request, response);
	HelpEntry screen = (HelpEntry) APP_EMV005_1.process("HelpEntry","APP_EMV005_1");
	CheckNull ck = new CheckNull(); 
	String employeeid = ck.chkNullString(request.getParameter("__employeeid"), screen.getUProfile().get("employeeid"));
	
	CscCalendar cDate = new CscCalendar();
	DbInquiry taps0 = new InitialInquiry(screen.getUProfile()).getDbInquiry("TAPSTRAN0");
	taps0.setColumn("apsid,apsperiodstart,apsperiodend");

	String f1="apsenddate >= '"+cDate.getYYYYMMDD()+"' and apsstartdate <= '"+cDate.getYYYYMMDD()+"'  and astid = 'AP10'";
	taps0.setFilter(f1);
	taps0.refresh();

	String dateExp = "apsid=''";
	while(taps0.next()){
		if(taps0.recNo()==1){
			dateExp = "(apsid='"+taps0.getString("apsid")+"'";
		}else{
			dateExp +=" OR apsid='"+taps0.getString("apsid")+"' ";
		}
	}

	if(!dateExp.equals("apsid=''")){dateExp+=")";}


	String desc ="tdesc";
	if(!screen.getUProfile().get("lang").equals("tha"))desc="edesc";

	String issearch = ck.chkNullString(request.getParameter("issearch"));
	String isall = ck.chkNullString(request.getParameter("isall"));
	String emp_position =  ck.chkNullString(request.getParameter("emp_position"));
	String bu1 =  ck.chkNullString(request.getParameter("bu1"));
	String bu2 =  ck.chkNullString(request.getParameter("bu2"));
	String empid =  ck.chkNullString(request.getParameter("employeeid"));
	String status =  ck.chkNullString(request.getParameter("status"),"all");
	String level =  ck.chkNullString(request.getParameter("level"));
	String filter = "";

	if(issearch.equals("1") && !isall.equals("1")){
		if(!emp_position.equals("")){	
			filter += "and emp_position = '"+emp_position+"' ";
		}
		if(!bu1.equals("")){	
			filter += "and bu1 = '"+bu1+"' ";
		}
		if(!bu2.equals("")){	
			filter += "and bu2 = '"+bu2+"' ";
		}
		if(!empid.equals("")){	
			filter += "and empid = '"+empid+"' ";
		}
		if(!filter.equals("")){
			filter = " and apsassessy in (select employeeid from memployee where companyid = '"+screen.getUProfile().get("companyid")+"' "+filter+")";
		}
	}
	
	String issave =  ck.chkNullString(request.getParameter("__issave"));
	String saveList =  ck.chkNullString(request.getParameter("__saveList"));
	if(issave.equals("1") && !saveList.equals("")){
		Simtapstran simtaptran= (Simtapstran)new InitialRecord(screen.getUProfile()).getDbRecord("Simtapstran");
		simtaptran.saveApproveList(saveList);
	}

	String dbtype =  ((CscConnection) StaticProperties.myConnection.getConnection(screen.getUProfile().get("dbname"), screen.getUProfile())).getVendor();
%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="myHR">
	<head>

		<title>Employee View</title>

		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
	</head>
	<body>
		<div class="bg-com"></div>
		<jsp:include page="EMV_HEADMENU.jsp" flush="true" />
		
		<script type="text/javascript">
			setLang("<%=screen.getUProfile().get("lang")%>");
			/*var swap = new swaplang();
            var titlename = swap.swap2String("");
			setPageTitle(titlename);*/
		
			$(document).ready(function(){
				$(".btn").css("color","#fff");
			});
		
			
			function goHelp(helpName,inputName){
				var helpReturn;
				var temp_fixCon;
				if(inputName=="__bu1" )
					helpReturn="__bu1:bu1id,MBU1@TDESC";
				 else if(inputName=="__bu2" )
					helpReturn="__bu2:bu2id,MBU2@TDESC";	
				 else if(inputName=="__bu3" )
					helpReturn="__bu3:bu3id,MBU3@TDESC";	
				temp_fixCon = document.cscform.__fixCon.value;
				document.cscform.__fixCon.value="";
				linkHelp_Return(helpName,helpReturn);
				document.cscform.__fixCon.value=temp_fixCon;
			}
			function fixSearch(){
				with(document.cscform){
					issearch.value="1";
					isall.value="0";
					submit();
				}
			}
			function search(){
				with(document.cscform){
					issearch.value="1";
					isall.value="1";
					submit();
				}
			}
			function goConfirm(){
				with(document.cscform){
					__status.value="A";
					__cmd.value="ack";		
					submit();
				}
			}
			function goASP(apsid,apsassessor,apsassessy,stat,lv){
				with(document.cscform){
					var isread = (stat=='A')?"1":"0";
					var page = (lv=='0')?"APP_EMV707":"APP_EMV707";
					var param=page+".jsp?apsid="+apsid+"&apsassessor="+apsassessor+"&apsassessy="+apsassessy+"&bpage="+__screen.value+"&ass_level="+lv+"&bu1=&bu2=&isread="+isread;	
					window.open(param,"Assess_Pages","left=150,top=150,width=900,height=750,toolbar=no,status=yes,scrollbars=yes,resizable=yes");
				}
			}
			function calAge(strDate){
				var currentYear = parseInt(new Date().getYear());
				var birthdateYear = parseInt(strDate.substring(6,10));
				var age = currentYear-birthdateYear;
				document.write(age);
			}	
			function saveConfirm(){
				with(document.cscform){
					__saveList.value = "";
					var obj = document.getElementsByName("__approve");
					if(typeof obj!="undefined"){
						for(i=0; i<obj.length; i++){
							if(obj[i].checked){
								__saveList.value += ((__saveList.value != '')?",":"")+obj[i].value;
							}
						}
					}
					__issave.value = "1";
					submit();
				}
			}
			function checkAll(){
				with(document.cscform){
					for(i=0;i<elements.length;i++){
						if(elements[i].type=="checkbox" && !elements[i].disabled) {
							elements[i].checked=true;
						}
					}
				}
			}
			function decheckAll(){
				with(document.cscform){
					for(i=0;i<elements.length;i++){
						if(elements[i].type=="checkbox"  && !elements[i].disabled) {
							elements[i].checked=false;
						}
					}
				}
			}

		</script>
		
		<section>
			<div class="container csc-content">
				<form name="cscform" class="form-horizontal" method="post" action="APP_EMV009_1.jsp">
					<input type="hidden" name="__screen"  value="APP_EMV005_1">
					<input type="hidden" name="__help" value="">
					<input type="hidden" name="__cmd"  value="">
					<input type="hidden" name="__language" value ="<%=screen.getUProfile().get("lang")%>"> 
					<input type="hidden" name="__fixCon" value="">
					<input type="hidden" name="issearch" value="<%=issearch%>">
					<input type="hidden" name="isall" value="<%=isall%>">
					<input type="hidden" name="__employeeid" value="<%=employeeid%>">
					<input type="hidden" name="__issave" value="">
					<input type="hidden" name="__saveList" value="">
				
					<div class="csc-block">
						<div class="center">
							<h2 class="csc-block-head" swlang code='SW001782'>Search Condition</h2>
						</div>
					
						<%
							DbInquiry memployee = new InitialInquiry(screen.getUProfile()).getDbInquiry("memployee");
							memployee.setColumn("employeeid,companyid,bu1,bu2,bu3,bu4,bu5");
							memployee.refresh();

							DbRecord mbu = memployee.getCurrentDbRecord();
						%>
						<div class="form-horizontal">
							<div class="row">
								<div class="form-group">
									<div class="col-md-1 col-sm-1 col-xs-1"></div>
									<% 
										String tdesc = (screen.getUProfile().get("lang").equals("tha"))?"tdesc":"edesc";
										DataSet condition = new DataSet();
										condition.setDbName((String)screen.getUProfile().get("dbname"));
										condition.setTableName("mposition");
										condition.setSql(
																
																" select distinct positionid id, mposition.tdesc, mposition.edesc from memployee inner join mposition on positionid = emp_position "+
																" where employeeid in ("+
																		" select apsassessy"+
																		" from tapstran"+
																		" where  apsapprove1 = '"+employeeid+"' or apsapprove2 = '"+employeeid+"' "+
																		" or apsapprove3 = '"+employeeid+"' or apsapprove4 = '"+employeeid+"' or apsapprove5 = '"+employeeid+"')"
																);

										condition.initConnection(screen.getUProfile());
									%>
									<div class="col-md-2 col-sm-2 col-xs-2">
										<label class="control-label label-right" swlang code='SW000057'>Position</label>
									</div>
									<div class="col-md-2 col-sm-2 col-xs-3">
										<select class="form-control" name="emp_position">
											<option value="" selected swlang code='SW008544'>All</option>
											<%
												while(condition.next()){
											%>
											<option value="<%=condition.getString("id")%>" <%=(emp_position.equals(condition.getString("id")))?"selected":""%>><%=condition.getString(tdesc)%></option>
											<%
												}
											%>
										</select>
									</div>
									<%
										condition.setTableName("memployee");
										condition.setSql(
																
																" select distinct employeeid id, fname"+((dbtype.equalsIgnoreCase("ORACLE")||dbtype.equalsIgnoreCase("PGSQL"))?"|| ' ' ||":"+' '+")+"lname tdesc, fname"+((dbtype.equalsIgnoreCase("ORACLE")||dbtype.equalsIgnoreCase("PGSQL"))?"|| ' ' ||":"+' '+")+"lname edesc from memployee "+
																" where employeeid in ("+
																		" select apsassessy"+
																		" from tapstran"+
																		" where  apsapprove1 = '"+employeeid+"' or apsapprove2 = '"+employeeid+"' "+
																		" or apsapprove3 = '"+employeeid+"' or apsapprove4 = '"+employeeid+"' or apsapprove5 = '"+employeeid+"')"
																);

										condition.initConnection(screen.getUProfile());
									%>
									<div class="col-md-2 col-sm-2 col-xs-2">
										<label class="control-label label-right" swlang code='SW000602'>Employee</label>
									</div>
									<div class="col-md-2 col-sm-2 col-xs-3">
										<select class="form-control" name="employeeid">
											<option value="" selected swlang code='SW008544'>All</option>
											<%
												while(condition.next()){
											%>
											<option value="<%=condition.getString("id")%>" <%=(empid.equals(condition.getString("id")))?"selected":""%>><%="["+condition.getString("id")+"] "+condition.getString(tdesc)%></option>
											<%
												}
												condition.closeConnection();
											%>	
										</select>
									</div>
								</div>
							</div>
							
							<div class="row">
								<div class="form-group">
									<div class="col-md-1 col-sm-1 col-xs-1"></div>
									<%
										condition.setTableName("mbu1");
										condition.setSql(
																
																" select distinct bu1id id, mbu1.tdesc, mbu1.edesc from memployee inner join mbu1 on bu1id = bu1 "+
																" where employeeid in ("+
																		" select apsassessy"+
																		" from tapstran"+
																		" where  apsapprove1 = '"+employeeid+"' or apsapprove2 = '"+employeeid+"' "+
																		" or apsapprove3 = '"+employeeid+"' or apsapprove4 = '"+employeeid+"' or apsapprove5 = '"+employeeid+"')"
																);

										condition.initConnection(screen.getUProfile());
									%>
									<div class="col-md-2 col-sm-2 col-xs-2">
										<label class="control-label label-right"><%=mbu.getField("bu1").getDescription()%></label>
									</div>
									<div class="col-md-2 col-sm-2 col-xs-3">
										<select class="form-control" name="bu1">
											<option value="" selected swlang code='SW008544'>All</option>
											<%
												while(condition.next()){
											%>
											<option value="<%=condition.getString("id")%>" <%=(bu1.equals(condition.getString("id")))?"selected":""%>><%=condition.getString(tdesc)%></option>
											<%
												}
											%>
										</select>
									</div>
									<%
										condition.setTableName("mbu2");
										condition.setSql(
																
																" select distinct bu2id id, mbu2.tdesc, mbu2.edesc from memployee inner join mbu2 on bu2id = bu2 "+
																" where employeeid in ("+
																		" select apsassessy"+
																		" from tapstran"+
																		" where  apsapprove1 = '"+employeeid+"' or apsapprove2 = '"+employeeid+"' "+
																		" or apsapprove3 = '"+employeeid+"' or apsapprove4 = '"+employeeid+"' or apsapprove5 = '"+employeeid+"')"
																);

										condition.initConnection(screen.getUProfile());
									%>
									<div class="col-md-2 col-sm-2 col-xs-2">
										<label class="control-label label-right"><%=mbu.getField("bu2").getDescription()%></label>
									</div>
									<div class="col-md-2 col-sm-2 col-xs-3">
										<select class="form-control" name="bu2">
											<option value="" selected swlang code='SW008544'>All</option>
											<%
												while(condition.next()){
											%>
											<option value="<%=condition.getString("id")%>" <%=(bu2.equals(condition.getString("id")))?"selected":""%>><%=condition.getString(tdesc)%></option>
											<%
												}
											%>	
										</select>
									</div>
								</div>
							</div>
							
							<div class="row">
								<div class="form-group">
									<div class="col-md-1 col-sm-1 col-xs-1"></div>
									
									<div class="col-md-2 col-sm-2 col-xs-2">
										<label class="control-label label-right" swlang code='SW001145'>Assess LV</label>
									</div>
									<div class="col-md-2 col-sm-2 col-xs-3">
										<select class="form-control" name="level">
											<option value="" selected swlang code='SW008544'>All</option>
											<option value="1" <%=(level.equals("1"))?"selected":""%>><span swlang code='SW001145'>Assess LV</span> 1</option>
											<option value="2" <%=(level.equals("2"))?"selected":""%>><span swlang code='SW001145'>Assess LV</span> 2</option>
											<option value="3" <%=(level.equals("3"))?"selected":""%>><span swlang code='SW001145'>Assess LV</span> 3</option>
											<option value="4" <%=(level.equals("4"))?"selected":""%>><span swlang code='SW001145'>Assess LV</span> 4</option>
											<option value="5" <%=(level.equals("5"))?"selected":""%>><span swlang code='SW001145'>Assess LV</span> 5</option>
										</select>
									</div>
									<%
										String sys_status[] = new ReportUDF().getSystemCode("APPSTATUS",screen.getUProfile().get("lang"));
									%>
									<div class="col-md-2 col-sm-2 col-xs-2">
										<label class="control-label label-right" swlang code='SW000019'>Status</label>
									</div>
									<div class="col-md-2 col-sm-2 col-xs-3">
										<select class="form-control" name="status">
											<option value="all" <%=(status.equals("all"))?"selected":""%> swlang code='SW008544'>All</option>
											<%
												String sysstatus[] = new ReportUDF().getSystemCode("APPSTATUS",screen.getUProfile().get("lang"));
												for(int i=0;i<sysstatus.length;i++){
											%>
											<option value="<%=sysstatus[i].split(",")[0]%>"  <%=(status.equals(sysstatus[i].split(",")[0]))?" selected":""%>><%=sysstatus[i].split(",")[1]%></option>
											<%		
												}
											%>	
										</select>
									</div>
								</div>
							</div>
							<div class="center">
								<a class="btn btn-primary" href="javascript:fixSearch();" swlang code='SW003537'>Search</a>
								<a class="btn btn-primary" href="javascript:search();" swlang code='SW002000'>Show All</a>
							</div>
						</div>
					</div>
					
					<div class="csc-block-white">
						<div class="table-responsive">	
							<table class="table table-head table-hover table-bordered table-title-left">
								<thead>
									<tr>
										<th class="table-title" colspan=7 swlang code='SW000530'>Apprisal Information</th>
									</tr>
								</thead>
								<tbody>
									<tr>
										<th swlang code='SW000015'>Select</th>
										<th swlang code='SW000019'>Status</th>
										<th swlang code='SW001984'>Fullname</th>
										<th swlang code='SW000057'>Position</th>
										<th><%=mbu.getField("bu1").getDescription()%></th>
										<th><%=mbu.getField("bu2").getDescription()%></th>
										<th swlang code='SW000230'>Service Year</th>
									</tr>
									<%

										String field[] = {"apsapprove1","apsapprove2","apsapprove3","apsapprove4","apsapprove5"};
										String field_status[] = {"apsappstatus1","apsappstatus2","apsappstatus3","apsappstatus4","apsappstatus5"};
										String field_desc[] = {"Level_1","Level_2","Level_3","Level_4","Level_5"};
										int running = 0;
										loop_lv: for(int i=0; issearch.equals("1") && i<field.length; i++, running = 0){

											if(!isall.equals("1")){
												if(!level.equals("") && (Integer.parseInt(level)-1) != i){
													continue loop_lv;
												}
												if(!status.equals("") && !status.equals("all")){
													filter += " and "+field_status[i]+" = '"+status+"'";
												}
											}

											screen.inq.setFilter(dateExp+" and ("+field[i]+"='"+employeeid+"') "+filter);
											screen.inq.refresh();
											boolean hasdata = false;
											while(screen.nextRec()){
												hasdata = true;
												String cstat = ((i==0)?"apsstatus":field_status[i-1]);
												boolean can_assess = (screen.getDataLabel(cstat).equals("A"));

												if(screen.inq.recNo()==1){
									%>
									<tr>
										<td colspan=7><span swlang code='SW001145'>Assess LV</span> <%=i+1%></td>
									</tr>
									<%
										}
									%>
									<tr>
										<td class="center">
											<%
												if(!screen.getDataLabel(field_status[i]).equals("A")){
											%>
											<input type="checkbox" name="__approve" value="<%=screen.getDataLabel("APSID")+":"+screen.getDataLabel("APSASSESSY")+":"+screen.getDataLabel("APSASSESSOR")+":"+"A"+":"+(i+1)%>" <%=(!can_assess)?"disabled":""%>>
											<%
												}
											%>
										</td>
										<td>
											<%
												if((screen.getDataLabel(field_status[i]).equals(""))||(screen.getDataLabel(field_status[i]).equals("Q"))||(screen.getDataLabel(field_status[i]).equals("R"))){
											%>
											<span class="week"><%=screen.inq.getCurrentDbRecord().getSystemCode(field_status[i])%></span>
											<%
												}else{
												if(screen.getDataLabel(field_status[i]).equals("A")){
											%>	
											<span class="holiday"><%=screen.inq.getCurrentDbRecord().getSystemCode(field_status[i])%></span>
											<%
												}else{
											%>
												<%=screen.inq.getCurrentDbRecord().getSystemCode(field_status[i])%>
											<%
													}
												}
											%>
										</td>
										<td>
											<%
												if(can_assess){
											%>
											<a href="javascript:goASP('<%=screen.getDataLabel("APSID")%>','<%=screen.getDataLabel("APSASSESSOR")%>','<%=screen.getDataLabel("APSASSESSY")%>','<%=screen.getDataLabel(field_status[i])%>','<%=(i+1)%>');"><%=screen.getDataLabel("simemp","fullname")%></a>
											<%
												}else{
											%>
											<%=screen.getDataLabel("simemp","fullname")%>
											<%
												}
											%>
										</td>
										<td><%=screen.getDataLabel("mposition","tdesc")%></td>
										<td><%=screen.getDataLabel("mbu1","tdesc")%></td>
										<td><%=screen.getDataLabel("mbu2","tdesc")%></td>
										<%
											String[] y = screen.getDataLabel("simemp","empworkages").split(" ");	
										%>
										<td class="trash"><%=y[0] %> <span swlang code='SW000717'>Year</span></td>
									</tr>
									<%
										}
										if(hasdata){
									%>
								</tbody>
								<%
										}
									}
								%>
							</table>
						</div>
						
						<div class="center">
							<a class="btn btn-primary" href="javascript:checkAll();" swlang code='SW002185'>Select All</a>
							<a class="btn btn-primary" href="javascript:decheckAll();" swlang code='SW012097'>Deselect All</a>
							<a class="btn btn-primary" href="javascript:saveConfirm();"><span swlang code='SW012310'>Confirm</span> KPI</a>
						</div>
					</div>
				</form>
			</div>
			<a href="#top" id="top-button">
				<i class="fa fa-angle-up"></i>
				<div class="top-word">Back to top</div>
			</a>
		</section>
		<jsp:include page="FOOTER.jsp" flush="true" />
	</body>
</html>