<%@page contentType="text/html; charset=UTF-8"%> <%@page import="com.csc.library.entry.HelpEntry,com.csc.library.system.*,com.csc.library.utilities.*"%> <%@page import="com.csc.library.entry.*,com.csc.library.database.*,com.csc.library.session.*,com.csc.library.formula.FormulaString" %> <%@page import="com.csc.library.session.DbInquiry,java.util.HashMap,java.util.Vector" %> <% request.setCharacterEncoding("UTF-8"); %> <jsp:useBean id="TAU143" class="com.csc.library.system.Task" scope="page"/> <% CscCalendar today = new CscCalendar(); CscCalendar cs = new CscCalendar(); CheckNull chkNull = new CheckNull(); String selectCss = "style='color:#4A66CC; background:#CCCCCC';" ; String COT = "COT"; String COF = "COF"; String PH = "PH" ; String w_status = chkNull.chkNullString(request.getParameter("__writeoff_status"),"true"); int yearid = Integer.parseInt(chkNull.chkNullString(request.getParameter("__yearid"), Integer.toString(today.getYear()))); TAU143.setChannel(request,response); HelpEntry screen = (HelpEntry) TAU143.process("HelpEntry","TAU143HELP"); String empid = screen.getUProfile().get("employeeid"); /* update write-off */ String writeoff = chkNull.chkNullString(request.getParameter("__writeoff_leave")); updateWriteOffLeave(empid, screen.getUProfile(), yearid, writeoff); /* end update write-off */ /* update privilege */ String priv_l = chkNull.chkNullString(request.getParameter("__prive_leave")); updatePrivLeave(empid, screen.getUProfile(), priv_l); /* end update privilege leave */ screen.inq.setFilter("employeeid = '"+empid+"'"); screen.process(); screen.nextRec(); screen.referLangOff(); String ANNUAL = getAnnualID(screen.getUProfile()); /* find used leave */ DbInquiry inqTleave = new InitialInquiry(screen.getUProfile()).getDbInquiry("Tleave_summary"); inqTleave.setColumn("yearid,employeeid,companyid,lv_type"); inqTleave.setFilter("employeeid = '" + empid + "' and lv_type = '" + ANNUAL + "' and yearid >= " + String.valueOf(yearid - 10)) ; inqTleave.refresh(); HashMap hmUsedLeaveYearKey = new HashMap(); while(inqTleave.next()){ hmUsedLeaveYearKey.put(inqTleave.getString("yearid"),""); } /* end find used leave */ /* find privilege leave */ DbInquiry inqMpriv = new InitialInquiry(screen.getUProfile()).getDbInquiry("Mprivilege_leave"); inqMpriv.setColumn("*"); inqMpriv.setFilter("employeeid = '" + empid + "'") ; //out.print("employeeid = '" + empid + "'"); inqMpriv.refresh(); HashMap hmPriv = new HashMap(); while(inqMpriv.next()){ hmPriv.put(inqMpriv.getString("eventgrpid"), clonePriv(inqMpriv.getCurrentDbRecord())); } %> <!DOCTYPE HTML> <html ng-app="myHR"> <head> <title>Employee View</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body leftmargin="0" topmargin="0"> <div class="bg-com"></div> <jsp:include page="EMV_HEADMENU.jsp" flush="true" /> <script language="javascript"> <!-- function chkDateTime1(valueSearch){ // 23/03/2004 var tmpval=""; with(document.cscform){ var valueSearch1=valueSearch.split("-"); if(valueSearch1.length==3){ if(valueSearch1[1].length==1){ valueSearch1[1]="0"+valueSearch1[1]; } if(valueSearch1[0].length==1){ valueSearch1[0]="0"+valueSearch1[0]; } valueSearch1[2]=parseInt(valueSearch1[2]); return valueSearch=valueSearch1[2]+"-"+valueSearch1[1]+"-"+valueSearch1[0]; } } } function chkDateStart(valueSearch,date){ var tmpval=""; var data1=""; with(document.cscform){ //alert("date_start.value -> "+valueSearch); var valueSearch1=valueSearch.split("-"); //alert("0 - >"+valueSearch1[0]+" #1 - >"+valueSearch1[1]+" #2 - >"+valueSearch1[2]); if(valueSearch1.length==3){ if(valueSearch1[0].length==4){ //alert("length -> "+valueSearch1[0].length); data1=valueSearch1[0]; valueSearch1[0]=valueSearch1[2]; valueSearch1[2]=data1; } if(valueSearch1[1].length==1){ valueSearch1[1]="0"+valueSearch1[1]; } if(valueSearch1[0].length==1){ valueSearch1[0]="0"+valueSearch1[0]; } valueSearch1[2]=parseInt(valueSearch1[2]); if(date=="date_start"){ date_start.value=valueSearch1[0]+"-"+valueSearch1[1]+"-"+valueSearch1[2]; }else{ date_end.value=valueSearch1[0]+"-"+valueSearch1[1]+"-"+valueSearch1[2]; } } //alert("par.value -> "+date_start.value); } } function bdOnload() { with(document.cscform){ __fixCon.value="employeeid= '"+__employeeid.value+"'"; submit(); } } function pageDesc(c,desc){ var fullname = document.getElementsByName("MEMPLOYEE@FULLNAME"); var emp = document.getElementsByName("__employeeid"); var yearid = document.getElementById("__yearid"); var fixcon = "lv_type = '" + c + "' and employeeid='<%=empid%>' and yearid = '"+ yearid.value +"'"; var param="TAU144.jsp?__empName="+fullname[0].value+"&__empID="+emp[0].value+"&__ldesc="+desc+"&__cmd=&__gorec=&__fixCon="+fixcon+"&__yearid=" + yearid.value+"&__eventgrp=" + c; window.open(param,"Help","left=150,top=20,width=970,height=550,resizable=yes,scrollbars=yes,toolbar=no,status=yes"); } function pageAllowDesc(c,desc){ var fullname = document.getElementsByName("MEMPLOYEE@FULLNAME"); var emp = document.getElementsByName("__employeeid"); var yearid = document.getElementById("__yearid"); var fixcon = ""; var param = ""; var page = ""; if(c == "COT"){ fixcon = "type = '1' and employeeid='<%=empid%>' " ; page = "TAU_LVALLOWANCE"; }else if(c == "COF"){ fixcon = "type = '2' and employeeid='<%=empid%>' " ; page = "TAU_LVALLOWANCE"; }else if(c == "PH"){ page = "TAU_PHALLOWANCE"; } param=page+".jsp?__empName="+fullname[0].value+"&__empID="+emp[0].value+"&__ldesc="+desc+"&__cmd=&__gorec=&__fixCon="+fixcon+"&__yearid=" + yearid.value; window.open(param,"Help","left=150,top=20,width=970,height=600,resizable=yes,scrollbars=yes,toolbar=no,status=yes"); } /* function gotoDetail(page){ with(document.cscform){ var a=chkDateTime1(date_start.value); var b=chkDateTime1(date_end.value); __cmd.value = ""; __date_start.value = a; __date_end.value = b; __fixCon.value = " employeeid='<%=request.getParameter("__employeeid")%>' and lv_type = 'LT' and dateid >= '"+a+"' and dateid <= '"+b+"'"; action = "TARS001.jsp"; submit(); } } */ function chkEmpid(){ window.document.forms[0].__employeeid.value=window.parent.document.forms[0].__employeeid.value; } function checkCF() {checkConfirm();} function showByYear(yearid){ with(document.cscform){ __fixCon.value="employeeid= '"+__employeeid.value+"'"; __yearid.value = yearid ; submit(); } } function setChangePriv(leave){ var chkObj = document.getElementById("chk_" + leave) ; chkObj.checked = true ; } function pageScroll() { window.scrollBy(0,50); // horizontal and vertical scroll increments //scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds } 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];} } $(document).ready(function(){ $("select[name=year]").val(<%=yearid%>); }); //--> </script> <section> <div class="container csc-content"> <div id="toolTipLayer" style="position:absolute; visibility: hidden"></div> <script language="javascript">initToolTips();</script> <form name="cscform" method="post" action="?"> <!----------BEGIN CSC INITIAL ZONE ------------------------> <%=screen.InitialVariable()%> <!----------END CSC INITIAL ZONE --------------------------> <script language="javascript">//chkEmpid();</script> <input type="hidden" name="__cmd" value=""> <input type="hidden" name="__screen" value="TAU143"> <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="__referPage" value=""> <input type="hidden" name="__calendar"> <script language="javascript">getInputFormatDate();</script> <!--input type="hidden" name="__subordinate" value="<%//=screen.getUProfile().get("subordinateid")%>" --> <input type="hidden" name="__companyid" value="<%=screen.getUProfile().get("companyid")%>"> <input type="hidden" name="__fixCon" value="<%=screen.getUProfile().get("employeeid")%>" > <input type="hidden" name="__employeeid" value="<%=screen.getUProfile().get("employeeid")%>" > <input type="hidden" name="__language" value="<%=screen.getUProfile().get("lang")%>"> <input type="hidden" name="__childFilter" > <input type="hidden" name="__savemode" id="__savemode" value=""> <input type="hidden" name="__writeoff_leave" id="__writeoff_leave" value=""> <input type="hidden" name="__writeoff_status" id="__writeoff_status" value=""> <input type="hidden" name="__prive_leave" id="__prive_leave" value=""> <% String sDate = "01-"+cs.getMM()+"-"+cs.getYear(); String eDate = cs.getDDMMYYYY(); try { sDate = StaticConfig.getConfigCompany(screen.getUProfile(), "ta1001"); eDate = StaticConfig.getConfigCompany(screen.getUProfile(), "ta1002"); } catch (Exception e) {} %> <input type="hidden" name="__date_start" value="<%=sDate%>"> <input type="hidden" name="__date_end" value="<%=eDate%>"> <input type="hidden" name="__dateFilter" value=""> <input type="hidden" name="__empID" value="<%=screen.getUProfile().get("employeeid")%>"> <input type="hidden" name="__empName" value="<%=screen.getUProfile().get("fullname")%>"> <input type="hidden" id="fullname" name="MEMPLOYEE@FULLNAME" value="<%=screen.getUProfile().get("fullname")%>"> <input type="hidden" name="__yearid" id="__yearid" value="<%=yearid%>"> <div class="csc-block"> <div class="center"> <h2 swlang code='SW001825' class="csc-block-head">Employee Privilege Leave</h2> </div></br> <div class="row"> <div class="form-group"> <div class="col-md-5 col-sm-5 col-xs-5"> <label class="control-label label-right" swlang code='SW000717'>Year</label> </div> <div class="col-md-2 col-sm-2 col-xs-2"> <select class="form-control" name="year" onchange="showByYear(year.value)"> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-9))){%> <option value="<%=today.getYear()-9%>"><%=today.getYear()-9%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-8))){%> <option value="<%=today.getYear()-8%>"><%=today.getYear()-8%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-7))){%> <option value="<%=today.getYear()-7%>"><%=today.getYear()-7%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-6))){%> <option value="<%=today.getYear()-6%>"><%=today.getYear()-6%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-5))){%> <option value="<%=today.getYear()-5%>"><%=today.getYear()-5%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-4))){%> <option value="<%=today.getYear()-4%>"><%=today.getYear()-4%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-3))){%> <option value="<%=today.getYear()-3%>"><%=today.getYear()-3%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-2))){%> <option value="<%=today.getYear()-2%>"><%=today.getYear()-2%></option> <%}%> <%if(hmUsedLeaveYearKey.containsKey(String.valueOf(today.getYear()-1))){%> <option value="<%=today.getYear()-1%>"><%=today.getYear()-1%></option> <%}%> <option value="<%=today.getYear()%>"><%=today.getYear()%></option> <option value="<%=today.getYear()+1%>"><%=today.getYear()+1%></option> <option value="<%=today.getYear()+2%>"><%=today.getYear()+2%></option> </select> </div> </div> </div><!-- end row --> </br> </div> <!-- show balance part --> <div class="table-responsive"> <table class="table table-head table-hover table-bordered table-center table-title-left table-content-center" id="tblShowDetail"> <thead> <tr> <th rowspan="2" swlang code='SW000300'>Leave Type</th> <th><%=yearid - 1%></th> <th swlang code='SW012474'>Limit</th> <th swlang code='SW000376'>Used</th> <th swlang code='SW000377'>Remain</th> <th><%=yearid + 1%></th> </tr> <tr> <th swlang code='SW001832'>DD HH MM</th> <th swlang code='SW001832'>DD HH MM</th> <th swlang code='SW001832'>DD HH MM</th> <th swlang code='SW001832'>DD HH MM</th> <th swlang code='SW001832'>DD HH MM</th> </tr> </thead> <tbody> <% //String vacation0_get = "00:00:00"; String vacation0 = "00:00:00"; String vacation1 = "00:00:00"; /* DbInquiry inqEmp = new InitialInquiry(screen.getUProfile()).getDbInquiry("Memployee"); inqEmp.setSchemaName(screen.getUProfile().getSchemaName()); inqEmp.setFilter("employeeid='"+screen.getString("employeeid")+"'"); inqEmp.setColumn("employeeid, companyid, emp_level, vacation0, vacation1"); inqEmp.refresh(); if (inqEmp.next()){ vacation0 = inqEmp.getString("vacation0"); vacation1 = inqEmp.getString("vacation1"); }*/ Vector vcLeaveDesc = new Vector(); String cFont = "";String c_limit = "";String c_used = "";String c_remain=""; String fld = getMConfigValue(screen.getUProfile(), "TALVFD"); FormulaString fs = new FormulaString(); DbInquiry inq = new InitialInquiry(screen.getUProfile()).getDbInquiry("Meventgrp1"); inq.setSchemaName(screen.getUProfile().getSchemaName()); inq.setFilter("display = '1' and (daytype!='1' and daytype !='5' and daytype !='6' and daytype !='9') and BRANCHID = (select " + fld + " from MEMPLOYEE where EMPLOYEEID = '" +empid+ "')"); inq.setOrderBy("display_order,edesc"); inq.setColumn("*"); inq.refresh(); int run = 0; while(inq.next()){ String a = "simmemployee_tadjtime0$"+ inq.getString("eventgrpid"); String a_desc = screen.inq.getString(a+"_desc"); String b = inq.getString("eventgrpid"); String type = inq.getString("daytype"); String lastyear_v1 = chkNull.chkNullString(screen.inq.getString(a+"_previous_rem"),"00:00:00"); String nextyear_v1 = chkNull.chkNullString(screen.inq.getString(a+"_next_rem"),"00:00:00"); String curyear_id = chkNull.chkNullString(screen.inq.getString(a+"_cur_year")); String lastyear_id = chkNull.chkNullString(screen.inq.getString(a+"_previous_year")); String nextyear_id = chkNull.chkNullString(screen.inq.getString(a+"_next_year")); String pri_emp = chkNull.chkNullString(screen.inq.getString(a+"_privilege_emp")); /* keep desc */ String datalist[] = {a_desc, b}; vcLeaveDesc.add(datalist); if(run==0){ if ( screen.inq.getString("simmemployee_tadjtime0$lt_times").equals("0") ) { cFont = ""; }else{ cFont = "week"; } String lt_0 = screen.inq.getString("simmemployee_tadjtime0$lt_hour_fs") ; String lt_1 = screen.inq.getString("simmemployee_tadjtime0$lt_times") ; %> <tr> <td class="table-title"> <!-- <a href="javascript:gotoDetail('late');"> --> <span swlang code='SW000055'>Late</span> <!-- </a> --> </td> <td class='<%=cFont%>'></td> <td class='<%=cFont%>'><%=(lt_1).length()>0?screen.inq.getString("simmemployee_tadjtime0$lt_times"):"0"%> <span swlang code="SW012797">time(s)</span></td> <td class='<%=cFont%>'><%=(lt_0.equals("00:00:00"))?"":lt_0%></td> <td class='<%=cFont%>'><!--<//%=lt_1.equals("0")?"":"-"%><//%=(lt_0.equals("00:00:00"))?"":lt_0%>--></td> <td class='<%=cFont%>'></td> </tr> <% } run++; if (screen.inq.getString(a+"_remain").indexOf('-')>-1) { cFont = "week"; } else { cFont = ""; } c_limit = screen.inq.getString(a+"_limit"); c_used = screen.inq.getString(a+"_used"); c_remain = screen.inq.getString(a+"_remain"); String leaveadvance = chkNull.chkNullString(screen.inq.getString(a+"_leaveadvance")); String list[] = {vacation0,vacation1,c_used,c_remain}; if (type.equals("7") || b.equalsIgnoreCase(COT) || b.equalsIgnoreCase(COF) || b.equalsIgnoreCase(PH)) { if (vacation0.equals("")) { vacation0 = "00:00:00"; } if (vacation1.equals("")) { vacation1 = "00:00:00"; } if (c_limit.equals("")) { c_limit = "00:00:00"; } list[0] = vacation0; list[1] = c_limit; } else { lastyear_v1 = ""; nextyear_v1 = ""; if (c_limit.equals("")) { c_limit = "00:00:00"; } list[0] = ""; list[1] = c_limit; } %> <tr id="<%=b%>" name="trLeave"> <td class="table-title"> <%=a_desc%> <%if(leaveadvance.length() > 0 && !leaveadvance.equals("00:00:00")) {%> (<span swlang code='SW002423'>Leave Advance</span> <%=leaveadvance%>) <%}%> </td> <td class='<%=cFont%>'><%=lastyear_v1%></td> <td class='<%=cFont%>'> <%if(!list[1].equals("00:00:00") && (b.equalsIgnoreCase(COT) || b.equalsIgnoreCase(COF) || b.equalsIgnoreCase(PH))){%> <a href="javascript:pageAllowDesc('<%=b%>','<%=screen.inq.getString(a+"_desc")%>')"><%=list[1]%></a> <%}else{%> <%=list[1]%> <%}%> </td> <td class='<%=cFont%>'> <%if(!list[2].equals("00:00:00")){%> <a href="javascript:pageDesc('<%=b%>','<%=screen.inq.getString(a+"_desc")%>')"><%=list[2]%></a> <%}else{%> <%=list[2]%> <%}%> </td> <td name="td_v3" class='<%=cFont%>'><%=list[3]%></td> <td name="td_next" class='<%=cFont%>'><%=nextyear_v1%></td> </tr> <% } %> </tbody> </table> <!-- end show balance --> </div> </div> </form> <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> <%! public String getMConfigValue(UProfile upf, String filed){ String srt = ""; try { srt = (String) StaticConfig.getConfigCompany(upf, filed) ; }catch(Exception e){ e.printStackTrace(); } return srt ; } public String getAnnualID(UProfile upf){ String rtn = ""; try { DbInquiry inq = new InitialInquiry(upf).getDbInquiry("Meventgrp"); inq.setColumn("eventgrpid,companyid,daytype"); inq.setFilter("daytype = '7'"); inq.refresh(); while(inq.next()){ rtn = inq.getString("eventgrpid"); } }catch(Exception e){ e.printStackTrace(); } return rtn ; } public void updateWriteOffLeave(String empid, UProfile upf, int yearid, String leave){ try { HashMap hm = new HashMap(); String fld = getMConfigValue(upf, "TALVFD"); if(fld.equals("")) fld = "branchid" ; DbInquiry inq = new InitialInquiry(upf).getDbInquiry("mempl_vacation"); inq.setSchemaName(upf.getSchemaName()); inq.setFilter("employeeid = '" +empid+ "' and yearid = " + String.valueOf(yearid)); inq.setColumn("*"); inq.refresh(); while(inq.next()){ hm.put(inq.getString("eventgrp"), inq.getCurrentDbRecord().cloneRecord(true)); System.out.print("keep " + inq.getString("eventgrp")); } String items[] = leave.split(",") ; for(int i=0; i < items.length; i++){ String woff[] = items[i].split("#"); if(hm.containsKey(woff[0])){ DbRecord db = (DbRecord) hm.get(woff[0]); db.set("privilege_emp", woff[1]); db.save(); System.out.print("!! update user write off leave " + empid + ":" + woff[0] + ":" + woff[1] ); } } }catch(Exception e){ e.printStackTrace(); } } public String[] clonePriv(DbRecord db){ String vc[] = {"1","1","1","1","1","1","1","1","1","1"}; try { vc[0] = db.getString("condition_1"); vc[1] = db.getString("condition_2"); vc[2] = db.getString("condition_3"); vc[3] = db.getString("condition_4"); vc[4] = db.getString("condition_5"); vc[5] = db.getString("condition_6"); vc[6] = db.getString("condition_7"); vc[7] = db.getString("condition_8"); vc[8] = db.getString("condition_9"); vc[9] = db.getString("condition_10"); System.out.print("d[0] : " + db.getString("condition_1")); System.out.print("!! read date --> " + db.getString("eventgrpid") + ":" + vc); }catch(Exception e){ e.printStackTrace(); } return vc ; } public void updatePrivLeave(String emp, UProfile upf, String upd){ try { /* item : 0 : eventgrp 1 : past limit 2 : in advance 3 : beyond date 4 : year of work 5 : event 6 : count */ String raw[] = upd.split(","); int result = 0 ; for(int i=0; i < raw.length; i++){ String items[] = raw[i].split(":"); DbRecord db = new InitialRecord(upf).getDbRecord("Mprivilege_leave"); db.setColumn("*"); db.set("employeeid", emp); db.set("companyid", upf.getCompanyid()); db.set("eventgrpid", items[0]); db.set("condition_1", items[1]); db.set("condition_2", items[2]); db.set("condition_3", items[3]); db.set("condition_4", items[4]); db.set("condition_5", items[5]); db.set("condition_6", items[6]); result = db.save(); System.out.print("!! update privilege leave : " + emp + " >> " + upd); } }catch(Exception e){ e.printStackTrace(); } } %>