<%@page contentType="text/html; charset=UTF-8"%> <%@page import="com.csc.library.entry.HelpEntry,com.csc.library.system.*,com.csc.library.utilities.*,com.csc.library.formula.*"%> <%@page import="com.csc.library.entry.*,com.csc.library.database.*,com.csc.library.session.*" %> <%@page import="java.util.HashMap" %> <jsp:useBean id="TAU_LEAVEAVL" class="com.csc.library.system.Task" scope="page"/> <% TAU_LEAVEAVL.setChannel(request,response); HelpEntry screen = (HelpEntry) TAU_LEAVEAVL.process("HelpEntry","LEAVEAVL"); screen.setMaxLine(100); ThaiUtilities thaicode = new ThaiUtilities(); CheckNull chkNull = new CheckNull(); String empid = chkNull.chkNullString(request.getParameter("__employeeid"),screen.getUProfile().get("employeeid")); String bchid = chkNull.chkNullString(request.getParameter("__branchid")); String lvdefault = chkNull.chkNullString(request.getParameter("__lvdefault")); String selectevent = chkNull.chkNullString(request.getParameter("__selectevent")); String saveevent = chkNull.chkNullString(request.getParameter("__saveevent")); String chkstatus = chkNull.chkNullString(request.getParameter("__chkstatus")); /* read main eventgrp */ screen.getInquiry().setFilter("daytype != '1' and daytype != '5' and daytype != '6' and daytype != '9' and daytype != '4'"); screen.getInquiry().setOrderBy("display_order, eventgrpid"); screen.process(); screen.nextRec(); /* leave by branch */ HashMap hmLvDefault = new HashMap(); DbInquiry mev1 = new InitialInquiry(screen.getUProfile()).getDbInquiry("Meventgrp1"); mev1.setColumn("eventgrpid,companyid"); mev1.setFilter("branchid = '" + bchid + "'"); mev1.refresh(); while(mev1.next()){ hmLvDefault.put(mev1.getString("eventgrpid"), ""); } /* save user define eventgrp */ if(saveevent.equals("save")){ //System.out.print("!! checked --> " + chkstatus); if(chkstatus.equals("1")){ if(hmLvDefault.containsKey(selectevent)){ delDefineLeave(empid, selectevent, screen.getUProfile()); }else{ saveDefineLeave(empid, selectevent, lvdefault, chkstatus, screen.getUProfile()); } }else{ if(hmLvDefault.containsKey(selectevent)){ saveDefineLeave(empid, selectevent, lvdefault, chkstatus, screen.getUProfile()); }else{ delDefineLeave(empid, selectevent, screen.getUProfile()); } } } /* leave by user define */ HashMap hmLvUser = new HashMap(); /* keep all */ HashMap hmLvDisDefine = new HashMap(); /* keep only event_status = '0' (disable) */ DbInquiry mev2 = new InitialInquiry(screen.getUProfile()).getDbInquiry("Meventgrp2"); mev2.setColumn("eventgrpid,companyid,employeeid,event_status"); mev2.setFilter("employeeid = '" + empid + "'"); mev2.refresh(); while(mev2.next()){ if(mev2.getString("event_status").equals("1")){ hmLvUser.put(mev2.getString("eventgrpid"), ""); }else{ hmLvDisDefine.put(mev2.getString("eventgrpid"), ""); } } //out.print("default " + hmLvDefault); //out.print("define " + hmLvUser); //out.print("disable " + hmLvDisDefine); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html ng-app="myHR"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="../CSS/TISCO.css" rel="stylesheet" type="text/css"> <script type='text/javascript' src='../JS/SCREEN.js'></script> <script language='javascript'>setLang('<%=screen.getUProfile().get("lang")%>');</script> <script language="javascript">getTitleName();</script> <script type='text/javascript' src="../JS/VIEWCALENDAR.js"></script> <script type='text/javascript' src='../JS/DATEINPUT.js'></script> <script TYPE='text/JavaScript' src="../TA/JS/jquery.js"></script> <SCRIPT TYPE='text/JavaScript' SRC='../TA/JS/jquery.blockUI.js'></SCRIPT> <script src="../JS/angular-1.3.15/angular.js" type="text/javascript"></script> <script src="../JS/ANGULAR/SCREEN_ANGULAR.js" type="text/javascript"></script> <script type='text/javascript' src='/hr/dwr/engine.js'></script> <script type='text/javascript' src='/hr/dwr/util.js'></script> <script type="text/javascript" src="/hr/dwr/interface/Time0transaction_dwr.js"></script> <style type="text/css"> .popup{ border-radius: 7px; background:#FFFFFF; margin:30px auto 0; padding:6px; position:absolute; width:300px; top: 50%; left: 50%; margin-left: -150px; margin-top: 100px; opacity: 0.9; filter: alpha(opacity=60); /* For IE8 and earlier */ } </style> <script language="javascript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } function saveEvent(obj){ with(document.cscform){ __lvdefault.value = obj.getAttribute("lvdefault") ; __selectevent.value = obj.value ; __saveevent.value = "save" ; if(obj.checked){ __chkstatus.value = "1" ; }else{ __chkstatus.value = "0" ; } submit(); } } //--> </script> </head> <body leftmargin="0" topmargin="0" > <form name="cscform" method="post" > <!----------BEGIN CSC INITIAL ZONE ------------------------> <%=screen.InitialVariable()%> <!----------END CSC INITIAL ZONE --------------------------> <input type="hidden"name="__screen" value="TAU_LEAVEAVL"> <input type="hidden" name="__fixCon" value="<%=request.getParameter("__fixCon")%>"> <input type="hidden" name="__cmd" value=""> <input type="hidden" name="__language" value="<%=screen.getUProfile().get("lang")%>"> <input name="__companyid" type="hidden" value='<%=screen.getUProfile().get("companyid")%>'> <input type="hidden" name="__referPage" value=""> <input type="hidden" name="__pageCall" value="<%=request.getParameter("__screen")%>"> <input type="hidden" name="__gorec"> <input type="hidden" name="__calendar" value=""> <input type="hidden" name="__help" value=""> <!-- save param --> <input type="hidden" name="__employeeid" value="<%=empid%>"> <input type="hidden" name="__branchid" value="<%=bchid%>"> <input type="hidden" name="__saveevent" id="__saveevent" value=""> <input type="hidden" name="__selectevent" id="__selectevent" value=""> <input type="hidden" name="__lvdefault" id="__lvdefault" value=""> <input type="hidden" name="__chkstatus" id="__chkstatus" value=""> <script language="javascript">getInputFormatDate();</script> <div align="center"> <table class=""> <tr> <td colspan="2"> <div align="center"> <center> <table cellspacing="0" cellpadding="0" class=""> <!-- <tr> <td colspan="4"> <div align="right"> <font color="green">*<span swlang code="SW008607">By Shift</span></font> <font color="orange">*<span swlang code="SW000079">Custom</span></font> </div> </td> </tr> --> <tr> <td width="10%" class="row3"><div align="center"> </div></td> <td width="10%" class="row3"><div align="center"><span swlang code="SW000011">Code</div></div></td> <td class="row3" colspan="2"><div align="center"><span swlang code="SW000012">Description</div></td> </tr> <% int i=0; StringBuilder ref = new StringBuilder(); String crDefault = "green"; String crNormal = ""; String crDefine = "orange"; String crDiv = "" ; String checked = "" ; lvdefault = "0"; while (screen.inq.next()) { i++; crDiv = crNormal; checked = "" ; /* is default leave (by branchid) */ if(hmLvDefault.containsKey(screen.getString("eventgrpid"))){ crDiv = crDefault; checked = "checked"; lvdefault = "1"; } /* define by admin */ if(hmLvUser.containsKey(screen.getString("eventgrpid"))){ crDiv = crDefine; checked = "checked"; } /* disable by admin */ if(hmLvDisDefine.containsKey(screen.getString("eventgrpid"))){ checked = ""; } %> <tr > <td> <div align="CENTER" style="color:<%=crDiv%>"> <input type="checkbox" id="leave_type$<%=i%>" name="leave_type$<%=i%>" lvdefault="<%=lvdefault%>" value="<%=screen.getString("eventgrpid")%>" <%=checked%> onclick="saveEvent(this)"> </div> </td> <td> <div align="CENTER" style="color:<%=crDiv%>"><%=screen.getString("eventgrpid")%></div> </td> <td> <div style="color:<%=crDiv%>"> <%=screen.getString("tdesc")%> </div> </td> <td> <div style="color:<%=crDiv%>"><%=screen.getString("edesc")%></div> </td> </tr> <%}%> </table> </center> </div> </td> </tr> <tr> <td class="bottom" > </td> </tr> </table> </div> </form> <% screen.referLangOff(); %> </body> </html> <%! public void saveDefineLeave(String emp, String eventgrp, String defaultleave, String chk, UProfile upf){ //System.out.print("!! save user define leave --> " + emp + ":" + eventgrp); try { DbRecord db = new InitialRecord(upf).getDbRecord("Meventgrp"); db.setColumn("*"); db.set("eventgrpid", eventgrp); if(db.search() == 1){ DbRecord dbm2 = new InitialRecord(upf).getDbRecord("Meventgrp2"); dbm2.setColumn("*"); dbm2.set("employeeid", emp); dbm2.set("eventgrpid", eventgrp); dbm2.set("companyid", (String) upf.get("companyid")); dbm2.set("tdesc", db.getString("tdesc")); dbm2.set("edesc", db.getString("edesc")); dbm2.set("limits", db.getString("limits")); dbm2.set("daytype", db.getString("daytype")); dbm2.set("datebeforerequest", db.getString("datebeforerequest")); dbm2.set("service_year", db.getString("service_year")); dbm2.set("limit_times", db.getString("limit_times")); dbm2.set("clear_leave", db.getString("clear_leave")); dbm2.set("privilege_event", db.getString("privilege_event")); dbm2.set("limit_probation", db.getString("limit_probation")); dbm2.set("sex_type", db.getString("sex_type")); dbm2.set("guarantee", db.getString("guarantee")); dbm2.set("guarantee_date", db.getString("guarantee_date")); dbm2.set("remarks", db.getString("remarks")); dbm2.set("display_order", db.getString("display_order")); dbm2.set("display", db.getString("display")); dbm2.set("event_desc", db.getString("event_desc")); dbm2.set("display_limit", db.getString("display_limit")); dbm2.set("lvpastlimit", db.getString("lvpastlimit")); dbm2.set("lvfuturelimit", db.getString("lvfuturelimit")); dbm2.set("day_leave_stat", db.getString("day_leave_stat")); dbm2.set("fhalf_leave_stat", db.getString("fhalf_leave_stat")); dbm2.set("shalf_leave_stat", db.getString("shalf_leave_stat")); dbm2.set("hour_leave_stat", db.getString("hour_leave_stat")); dbm2.set("month_limit0", db.getString("month_limit0")); dbm2.set("month_limit1", db.getString("month_limit1")); dbm2.set("month_limit2", db.getString("month_limit2")); dbm2.set("month_limit3", db.getString("month_limit3")); dbm2.set("leaverounding", db.getString("leaverounding")); dbm2.set("clear_leave_month", db.getString("clear_leave_month")); dbm2.set("limit_hours", db.getString("limit_hours")); dbm2.set("sharelimit_event", db.getString("sharelimit_event")); dbm2.set("needapprovedate", db.getString("needapprovedate")); dbm2.set("min_limit_hours", db.getString("min_limit_hours")); dbm2.set("limitformula", db.getString("limitformula")); dbm2.set("advance_approve", db.getString("advance_approve")); dbm2.set("approve_before", db.getString("approve_before")); dbm2.set("approve_after", db.getString("approve_after")); dbm2.set("tsdesc", db.getString("tsdesc")); dbm2.set("esdesc", db.getString("esdesc")); dbm2.set("dctsal", db.getString("dctsal")); dbm2.set("dctsvc", db.getString("dctsvc")); dbm2.set("prev_last", db.getString("prev_last")); dbm2.set("event_status", chk); dbm2.save(); } }catch(Exception e){ e.printStackTrace(); } } public void delDefineLeave(String emp, String eventgrp, UProfile upf){ try { System.out.print("!! delete user define leave --> " + emp + ":" + eventgrp); DbRecord db = new InitialRecord(upf).getDbRecord("Meventgrp2"); db.setColumn("*"); db.set("employeeid", emp); db.set("eventgrpid", eventgrp); if(db.search() == 1){ db.delete(); } }catch(Exception e){ e.printStackTrace(); } } %>