<%@page contentType="text/html; charset=TIS620" language="java" %> <%@page import="com.csc.library.entry.HelpEntry,com.csc.library.system.*,com.csc.library.utilities.*,java.util.*"%> <%@page import="com.csc.library.utilities.CscCalendar,com.csc.library.entry.HelpEntry,com.csc.library.system.*"%> <%@page import="com.csc.library.entry.*,com.csc.library.database.*,com.csc.library.session.*,com.csc.library.formula.FormulaString" %> <%@page import="java.text.DecimalFormat,com.csc.library.database.MyHashMap" %> <% request.setCharacterEncoding("TIS620"); %> <jsp:useBean id="EMV" class="com.csc.library.system.Task" scope="page" /> <jsp:setProperty name="EMV" property="appname" value="empview" /> <% EMV.setChannel(request, response); CheckNull chk = new CheckNull(); String bu1IDReq = chk.chkNullString((String) request.getParameter("__bu1id")); String bu1DescReq = chk.chkNullString((String) request.getParameter("__bu1desc")); String bu2IDReq = chk.chkNullString((String) request.getParameter("__bu2id")); String bu2DescReq = chk.chkNullString((String) request.getParameter("__bu2desc")); String bu3IDReq = chk.chkNullString((String) request.getParameter("__bu3id")); String bu3DescReq = chk.chkNullString((String) request.getParameter("__bu3desc")); String dateStartReq = chk.chkNullString((String) request.getParameter("date_start")); String dateEndReq = chk.chkNullString((String) request.getParameter("date_end")); HelpEntry screen = (HelpEntry) EMV.process("HelpEntry", "COM_TA_STATISTICHELP"); //Check Filter From Condition in Screen String filter = ""; if (!bu1IDReq.equals("")) { if (filter.equals("")) { filter += " bu1='"+bu1IDReq+"'"; } else filter += " and bu1='"+bu1IDReq+"'"; } if (!bu2IDReq.equals("")) { if (filter.equals("")) { filter += " bu2='"+bu2IDReq+"'"; } else filter += " and bu2='"+bu2IDReq+"'"; } if (!bu3IDReq.equals("")) { if (filter.equals("")) { filter += " bu3='"+bu3IDReq+"'"; } else filter += " and bu3='"+bu3IDReq+"'"; } if (!dateStartReq.equals("") && !dateEndReq.equals("")) { CscCalendar c1 = new CscCalendar(dateStartReq); CscCalendar c2 = new CscCalendar(dateEndReq); DbInquiry inqChild = (DbInquiry) screen.inq.getChild("ttime_current1"); String filterChild = "(dateid between '"+c1.getYYYYMMDD()+"' and '"+c2.getYYYYMMDD()+"')"; inqChild.setFilter(filterChild); } else { CscCalendar c1 = new CscCalendar(); c1.decDate(5); CscCalendar c2 = new CscCalendar(); DbInquiry inqChild = (DbInquiry) screen.inq.getChild("ttime_current1"); String filterChild = "(dateid between '"+c1.getYYYYMMDD()+"' and '"+c2.getYYYYMMDD()+"')"; inqChild.setFilter(filterChild); } //filter = "bu1='001200'"; screen.inq.setFilter(filter); screen.inq.refresh(); //screen.nextRec(); screen.process(); CscCalendar cs1 = new CscCalendar(); cs1.decDate(5); CscCalendar cs2 = new CscCalendar(); FormulaString fs = new FormulaString(); DecimalFormat df = new DecimalFormat("0.00"); DecimalFormat df2 = new DecimalFormat("00.00"); int max_display = 5; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="../Templates/template-emv-main.dwt.jsp" codeOutsideHTMLIsLocked="false" --> <head> <!-- InstanceBeginEditable name="doctitle" --> <title>Employee View</title> <!-- InstanceEndEditable --> <meta http-equiv="Content-Type" content="text/html; charset=TIS620" /> <!-- InstanceBeginEditable name="head" --> <!-- Begin CSS Links --> <link rel="stylesheet" type="text/css" href="../CSS/DDMENU.css" /> <link rel="stylesheet" type="text/css" href="../CSS/EMV_LAYOUT.css" /> <link rel="stylesheet" type="text/css" href="../CSS/EMV_DEFAULT.css" /> <link rel="stylesheet" type="text/css" href="../CSS/EMV_LAYOUT_TWO.css" /> <link rel="stylesheet" type="text/css" href="../CSS/EMV_TEXT.css" /> <!-- End CSS Links --> <!-- Begin Scripts --> <!-- Begin script for Dropdown Menu --> <!-- DO NOT EDIT --> <script language="JavaScript" type="text/javascript" src="../JS/EVENTS.js"></script> <script language="JavaScript" type="text/javascript" src="../JS/DDMENU.js"></script> <!--[if lt IE 7]><script language="JavaScript" type="text/javascript" src="../JS/IEHOVER-FIX.js"></script><![endif]--> <!-- DO NOT EDIT --> <!-- End script for Dropdown Menu --> <script language="JavaScript" type="text/javascript" src="../JS/UTILITIES.js"></script> <script language="JavaScript" type="text/javascript" src="../JS/ACTIVE_OBJECT.js"></script> <script language="JavaScript" type="text/javascript" src="../JS/SCREEN.js"></script> <script language="JavaScript" type="text/javascript" src="../JS/DATEINPUT.js"></script> <script language="JavaScript" type="text/javascript" src="../JS/VIEWCALENDAR.js"></script> <script language="JavaScript">setLang('<%=screen.getUProfile().get("lang")%>');</script> <script language="JavaScript"> function goHelp(helpName,inputName){ //alert(helpName+" "+inputName); with(document.cscform){ var helpReturn=""; var fcon=__fixCon.value; var sub_value = ""; if (inputName=="__bu1id") { helpReturn = inputName+":bu1id,__bu1desc:tdesc" linkHelp_Return(helpName,helpReturn); } else if (inputName=="__bu2id") { helpReturn = inputName+":bu2id,__bu2desc:tdesc" linkHelp_Return(helpName,helpReturn); } else if (inputName=="__bu3id") { helpReturn = inputName+":bu3id,__bu3desc:tdesc" linkHelp_Return(helpName,helpReturn); } __fixCon.value = ""; } } function GoSearch(){ with(document.cscform){ search(); } } </script> <style type="text/css"> #header { background: #FFFFFF ; } </style> <!-- End Scripts --> <!-- Begin Head --> <!-- End Head --> <!-- InstanceEndEditable --> </head> <body> <div id="wrapper"> <div id="header"><!-- InstanceBeginEditable name="header" --> <jsp:include page="EMV_HEADER.jsp" flush="true" /> <!-- InstanceEndEditable --> </div> <div id="topnav"><!-- InstanceBeginEditable name="top_navigation" --> <jsp:include page="EMV_TOPMENU.jsp" flush="true" /> <!-- InstanceEndEditable --> </div> <div id="container"> <div id="sidebar"><!-- InstanceBeginEditable name="side_bar" --> <jsp:include page="EMV_SIDEBAR.jsp" flush="true" /> <!-- InstanceEndEditable --> </div> <div id="content"><!-- InstanceBeginEditable name="main_content" --> <!-- Begin Main Content --> <jsp:include page="../EMPVIEW/EMV_HELPBAR.jsp" flush="true" /> <div class="content"> <form name="cscform" method="post" action="COM_TA_STATISTIC.jsp"> <input type="hidden" name="__cmd" value=""> <input type="hidden" name="__screen" value="COM_TA_STATISTIC"> <input type="hidden" name="__help" value=""> <input type="hidden" name="__helpReturn" value=""> <input type="hidden" name="__helpName" value=""> <input type="hidden" name="__pageCall" > <input type="hidden" name="__goPage" value=""> <input type="hidden" name="__referPage" value=""> <input type="hidden" name="__calendar"> <script language="javascript">getInputFormatDate();</script> <input type="hidden" name="__companyid" value="<%=screen.getUProfile().get("companyid")%>"> <input type="hidden" name="__fixCon" value="<%=request.getParameter("__fixCon")%>"> <input type="hidden" name="__language" value="<%=screen.getUProfile().get("lang")%>"> <input type="hidden" name="__childFilter" > <div id="toolTipLayer" style="position:absolute; visibility: hidden"></div> <script language="javascript">initToolTips();</script> <div class="box-search-condition"> <div class="content-title"><script language="javascript">swapLang("Please Input Condition to Search");</script></div> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="table-search-condition"> <tr> <td colspan="2" class="column-label"> </td> </tr> <tr> <td class="column-label"><script language="javascript">swapLang("Business Unit 1");</script></td> <td class="column-input"> <% if (!bu1IDReq.equals("")) { %> <input name="__bu1id" type="text" class="text" size="15" value="<%=bu1IDReq%>"/> <% } else { %> <input name="__bu1id" type="text" class="text" size="15" /> <% } %> <a href="javascript:goHelp('MBU1HELP','__bu1id')" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image2','','../IMAGES/BUTTON/SWAP/SEARCH_SWAP20.gif',1)"><img src="../IMAGES/BUTTON/MAIN/SEARCH20.gif" alt="Help" name="Image2" border="0" align="absmiddle"></a> <% if (!bu1IDReq.equals("") && !bu1DescReq.equals("")) { %> <input name="__bu1desc" type="text" class="text" size="60" value="<%=bu1DescReq%>"/> <% } else { %> <input name="__bu1desc" type="text" class="text" size="60" /> <% } %> </td> </tr> <tr> <td class="column-label"><script language="javascript">swapLang("Business Unit 2");</script></td> <td class="column-input"> <% if (!bu2IDReq.equals("")) { %> <input name="__bu2id" type="text" class="text" size="15" value="<%=bu2IDReq%>"/> <% } else { %> <input name="__bu2id" type="text" class="text" size="15" /> <% } %> <a href="javascript:goHelp('MBU2HELP','__bu2id')" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image3','','../IMAGES/BUTTON/SWAP/SEARCH_SWAP20.gif',1)"><img src="../IMAGES/BUTTON/MAIN/SEARCH20.gif" alt="Help" name="Image3" border="0" align="absmiddle"></a> <% if (!bu2IDReq.equals("") && !bu2DescReq.equals("")) { %> <input name="__bu2desc" type="text" class="text" size="60" value="<%=bu2DescReq%>"/> <% } else { %> <input name="__bu2desc" type="text" class="text" size="60" /> <% } %> </td> </tr> <tr> <td class="column-label"><script language="javascript">swapLang("Business Unit 3");</script></td> <td class="column-input"> <% if (!bu3IDReq.equals("")) { %> <input name="__bu3id" type="text" class="text" size="15" value="<%=bu3IDReq%>"/> <% } else { %> <input name="__bu3id" type="text" class="text" size="15" /> <% } %> <a href="javascript:goHelp('MBU3HELP','__bu3id')" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image4','','../IMAGES/BUTTON/SWAP/SEARCH_SWAP20.gif',1)"><img src="../IMAGES/BUTTON/MAIN/SEARCH20.gif" alt="Help" name="Image4" border="0" align="absmiddle"></a> <% if (!bu3IDReq.equals("") && !bu3DescReq.equals("")) { %> <input name="__bu3desc" type="text" class="text" size="60" value="<%=bu3DescReq%>"/> <% } else { %> <input name="__bu3desc" type="text" class="text" size="60" /> <% } %> </td> </tr> <tr> <td class="column-label"><script language="javascript">swapLang('Date')</script></td> <td class="column-input"> <% if (request.getParameter("date_start")==null) { %> <input name="date_start" type="text" value="<%=cs1.getDDMMYYYY()%>" size="9" maxlength="10" onkeyup = "formatDate(this)" onblur = "chkInputDate2(this,date_end)" onkeypress = "chkIntegerOfDate(this.value)" onmouseover="toolTip('วันเริ่มต้น(DDMMYYYY)')" onmouseout="toolTip()"> <% } else {%> <input name="date_start" type="text" value="<%=request.getParameter("date_start")%>" size="9" maxlength="10" onkeyup = "formatDate(this)" onblur = "chkInputDate2(this,date_end)" onkeypress = "chkIntegerOfDate(this.value)" onmouseover="toolTip('วันเริ่มต้น(DDMMYYYY)')" onmouseout="toolTip()"> <% }%> <a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('calendar1','','../IMAGES/BUTTON/SWAP/CALENDAR_SWAP20.gif',1)"> <img src="../IMAGES/BUTTON/MAIN/CALENDAR20.gif" name="calendar1" width="20" height="20" border="0" align="absmiddle" onclick="viewCal('date_start')" alt="Calendar"></a> - <% if (request.getParameter("date_end")==null) { %> <input name="date_end" type="text" value="<%=cs2.getDDMMYYYY()%>" size="9" maxlength="10" onkeyup = "formatDate(this)" onblur = "chkInputDate(date_start,this)" onkeypress = "chkIntegerOfDate(this.value)" onmouseover="toolTip('วันสิ้นสุด(DDMMYYYY)')" onmouseout="toolTip()"> <% } else {%> <input name="date_end" type="text" value="<%=request.getParameter("date_end")%>" size="9" maxlength="10" onkeyup = "formatDate(this)" onblur = "chkInputDate(date_start,this)" onkeypress = "chkIntegerOfDate(this.value)" onmouseover="toolTip('วันสิ้นสุด(DDMMYYYY)')" onmouseout="toolTip()"> <% }%> <a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('calendar2','','../IMAGES/BUTTON/SWAP/CALENDAR_SWAP20.gif',1)"> <img src="../IMAGES/BUTTON/MAIN/CALENDAR20.gif" name="calendar2" width="20" height="20" border="0" align="absmiddle" onclick="viewCal('date_end')" alt="Calendar"></a> <a href="javascript:GoSearch();"><img src="../IMAGES/EMPVIEW/BUTTON/SEARCH.gif" width="60" height="23" border="0" align="absmiddle"></a></td> </tr> <tr> <td class="column-label"> </td> <td colspan="2" class="column-input"> </td> </tr> </table> </div> <% MyHashMap hmEmp = new MyHashMap(); while (screen.inq.next()) { DbRecord recEmp = screen.inq.getCurrentDbRecord(); DbInquiry inqTime = (DbInquiry) screen.inq.getChild("ttime_current1"); int absent = 0; int late = 0; int ot = 0; CscTime ct_late = new CscTime(0); CscTime ct_ot = new CscTime(0); MyHashMap hm = new MyHashMap(); if (inqTime.recCount()>0) { do { DbRecord recTime = inqTime.getCurrentDbRecord(); if (recTime.getString("eventgrp").equals("J")) { absent++; } if (recTime.getFloat("lt")>0) { late++; ct_late.add(recTime.getFloat("lt")); } if (recTime.getFloat("ac_ot")>0) { ot++; ct_ot.add(recTime.getFloat("ac_ot")); } } while (inqTime.next()); } // if (inqTime.recCount()>0) hm.put("absent", absent); hm.put("late", late); hm.put("ot", ot); hm.put("late_time", ct_late.getFloat()); hm.put("ot_time", ct_ot.getFloat()); hm.put("fullname", recEmp.getString("fullname")); hm.put("position", recEmp.getChild("mposition").getString("tdesc")); hmEmp.put(recEmp.getString("employeeid"), hm); //out.println("<br>employeeid ===> " +recEmp.getString("employeeid")+" absent="+absent+" late="+late+" ot="+ot); } //while (screen.inq.next()) //ทำการเรียงลำดับตามข้อมูลที่เก็บ MyTreeMap tr_absent = new MyTreeMap(); MyTreeMap tr_late = new MyTreeMap(); MyTreeMap tr_ot = new MyTreeMap(); Iterator IT = hmEmp.keySet().iterator(); while (IT.hasNext()) { String emp = (String) IT.next(); MyHashMap hm = (MyHashMap) hmEmp.get(emp); //เรียงลำดับการขาดงาน if (hm.getInt("absent")>0) { Integer tmp = Integer.valueOf(hm.getString("absent")); if (!tr_absent.containsKey(tmp)) { tr_absent.put(tmp, emp); } else { String absent_value = (String) tr_absent.get(tmp); tr_absent.put(tmp, (absent_value+","+emp)); } } //เรียงลำดับจำนวนการมาสาย if (hm.getInt("late")>0) { Integer tmp = Integer.valueOf(hm.getString("late")); Float tmp_time = Float.valueOf(hm.getString("late_time")); if (!tr_late.containsKey(tmp)) { MyTreeMap tr_latetime = new MyTreeMap(); tr_latetime.put(tmp_time, emp); tr_late.put(tmp, tr_latetime); } else { MyTreeMap tr_latetime = (MyTreeMap) tr_late.get(tmp); if (!tr_latetime.containsKey(tmp_time)) { tr_latetime.put(tmp_time, emp); } else { String late_value = (String) tr_latetime.get(tmp_time); tr_latetime.put(tmp_time, (late_value+","+emp)); } tr_late.put(tmp, tr_latetime); } } //เรียงลำดับการมาทำโอที if (hm.getFloat("ot_time")>0) { Float tmp = Float.valueOf(hm.getString("ot_time")); if (!tr_ot.containsKey(tmp)) { tr_ot.put(tmp, emp); } else { String ot_value = (String) tr_ot.get(tmp); tr_ot.put(tmp, (ot_value+","+emp)); } } } //while (IT.hasNext()) //out.println("<br>tr_absent==>"+tr_absent); //out.println("<br>tr_late==>"+tr_late); //out.println("<br>tr_ot==>"+tr_ot); %> <div class="content-box2"> <div class="content-header"><h2><script language="javascript">swapLang('Statistic of Absent')</script></h2></div> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="table-content-list"> <tr> <td width="15%" class="column-header"><script language="javascript">swapLang('EmployeeID')</script></td> <td width="40%" class="column-header"><script language="javascript">swapLang('Name Surname')</script></td> <td width="30%" class="column-header"><script language="javascript">swapLang('Position')</script></td> <td width="15%" class="column-header"><script language="javascript">swapLang('Count')</script></td> </tr> <% Vector vAbsent = new Vector(); Iterator IT2 = tr_absent.keySet().iterator(); while (IT2.hasNext()) { Integer k = (Integer) IT2.next(); vAbsent.add(k); } //out.println(vAbsent); int count_absent=0; for (int i=vAbsent.size()-1;i>=0;i--) { if (count_absent>=max_display) { break; } Integer id = (Integer) vAbsent.elementAt(i); String data = (String) tr_absent.get(id); StringTokenizer str = new StringTokenizer(data, ","); while (str.hasMoreTokens()) { if (count_absent>=max_display) { break; } String e = str.nextToken(); MyHashMap hm = (MyHashMap) hmEmp.get(e); %> <tr> <td class="column-text-center"><%=e%></td> <td class="column-text"><%=hm.getString("fullname")%></td> <td class="column-text"><%=hm.getString("position")%></td> <td class="column-text-center"><%=id%></td> </tr> <% if (count_absent<max_display) { count_absent++; } else break; } //while (str.hasMoreTokens()) } //for (int i=vAbsent.size()-1;i>=0;i--) %> </table> <div class="content-footer"><img src="../IMAGES/SPACER.gif" width="3" height="3" /></div> </div> <div class="content-box2"> <div class="content-header"><h2><script language="javascript">swapLang('Statistic of Late')</script></h2></div> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="table-content-list"> <tr> <td width="15%" class="column-header"><script language="javascript">swapLang('EmployeeID')</script></td> <td width="40%" class="column-header"><script language="javascript">swapLang('Name Surname')</script></td> <td width="30%" class="column-header"><script language="javascript">swapLang('Position')</script></td> <td width="7%" class="column-header"><script language="javascript">swapLang('Count')</script></td> <td width="8%" class="column-header"><script language="javascript">swapLang('Total Time')</script></td> </tr> <% Vector vLate = new Vector(); Iterator IT3 = tr_late.keySet().iterator(); while (IT3.hasNext()) { Integer k = (Integer) IT3.next(); vLate.add(k); } //out.println(vLate); int count_late=0; for (int i=vLate.size()-1;i>=0;i--) { if (count_late>=max_display) { break; } Integer id = (Integer) vLate.elementAt(i); MyTreeMap tr = (MyTreeMap) tr_late.get(id); Vector vLateTime = new Vector(); Iterator IT5 = tr.keySet().iterator(); while (IT5.hasNext()) { Float k = (Float) IT5.next(); vLateTime.add(k); } for (int j=vLateTime.size()-1;j>=0;j--) { if (count_late>=max_display) { break; } Float id2 = (Float) vLateTime.elementAt(j); String data = (String) tr.get(id2); StringTokenizer str = new StringTokenizer(data, ","); while (str.hasMoreTokens()) { if (count_late>=max_display) { break; } String e = str.nextToken(); MyHashMap hm = (MyHashMap) hmEmp.get(e); %> <tr> <td class="column-text-center"><%=e%></td> <td class="column-text"><%=hm.getString("fullname")%></td> <td class="column-text"><%=hm.getString("position")%></td> <td class="column-text-center"><%=id%></td> <td class="column-text-center"><%=df.format(hm.getFloat("late_time"))%></td> </tr> <% if (count_late<max_display) { count_late++; } else break; } //while (str.hasMoreTokens()) } //for (int j=vLateTime.size()-1;j>=0;j--) } //for (int i=vLate.size()-1;i>=0;i--) %> </table> <div class="content-footer"><img src="../IMAGES/SPACER.gif" width="3" height="3" /></div> </div> <div class="content-box2"> <div class="content-header"><h2><script language="javascript">swapLang('Statistic of Overtime')</script></h2></div> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="table-content-list"> <tr> <td width="15%" class="column-header"><script language="javascript">swapLang('EmployeeID')</script></td> <td width="40%" class="column-header"><script language="javascript">swapLang('Name Surname')</script></td> <td width="30%" class="column-header"><script language="javascript">swapLang('Position')</script></td> <td width="15%" class="column-header"><script language="javascript">swapLang('Total Time')</script></td> </tr> <% Vector vOT = new Vector(); Iterator IT4 = tr_ot.keySet().iterator(); while (IT4.hasNext()) { Float k = (Float) IT4.next(); vOT.add(k); } int count_ot=0; for (int i=vOT.size()-1;i>=0;i--) { if (count_ot>=max_display) { break; } Float id = (Float) vOT.elementAt(i); String data = (String) tr_ot.get(id); StringTokenizer str = new StringTokenizer(data, ","); while (str.hasMoreTokens()) { if (count_ot>=max_display) { break; } String e = str.nextToken(); MyHashMap hm = (MyHashMap) hmEmp.get(e); %> <tr> <td class="column-text-center"><%=e%></td> <td class="column-text"><%=hm.getString("fullname")%></td> <td class="column-text"><%=hm.getString("position")%></td> <td class="column-text-center"><%=id%></td> </tr> <% if (count_ot<max_display) { count_ot++; } else break; } //while (str.hasMoreTokens()) } //for (int i=vOT.size()-1;i>=0;i--) %> </table> <div class="content-footer"><img src="../IMAGES/SPACER.gif" width="3" height="3" /></div> </div> </form> </div> <!-- End Main Content --> <!-- InstanceEndEditable --> </div> </div> <div id="footer"><!-- InstanceBeginEditable name="footer" --> <jsp:include page="EMV_FOOTER.jsp" flush="true" /> <!-- InstanceEndEditable --> </div> </div> </body> <!-- InstanceEnd --></html>