package com.csc.library.dwr; import java.util.Hashtable; import java.util.Iterator; import com.csc.library.databean.Mtime0; import com.csc.library.dwr.DWR_base; import com.csc.library.session.DbInquiry; import com.csc.library.session.DbRecord; import com.csc.library.session.InitialInquiry; import com.csc.library.session.InitialRecord; import com.csc.library.timeattendance.DayShift; import com.csc.library.timeattendance.WorkingShift; import com.csc.library.timeinterface.TimeResult; import com.csc.library.utilities.CscCalendar; public class Honda_CheckOT_DWR extends DWR_base{ private Hashtable htbSotpOt ; public String checkOTDay(String employeeid,String argStDate,String argEndDate){ this.setUProfile(); this.retrieveMconfig(); WorkingShift ws = null; String[] stDateList = argStDate.split(","); String[] endDateList = argEndDate.split(","); CscCalendar stDate = new CscCalendar(); CscCalendar endDate = new CscCalendar(); try{ DbInquiry inqEmp = new InitialInquiry(this.up).getDbInquiry(); inqEmp.setSchemaName(this.up.getSchemaName()); inqEmp.initMyTable("Memployee", "employeeid='" + employeeid + "'", ""); inqEmp.setColumn("employeeid, time0,companyid, status, startdate, resigndate"); inqEmp.refresh(); while (inqEmp.next()) { Mtime0 rec = (Mtime0) new InitialRecord(this.up).getDbRecord("Mtime0"); DbRecord empRec = inqEmp.getCurrentDbRecord(); rec.setEmpRec(empRec); rec.set("time0id", inqEmp.getString("time0")); rec.set("companyid", this.up.get("companyid")); if (rec.search()==0) { //�ҵ��ҧ��÷ӧҹ���͵��ҧ�������� }else{ for(int ii=0;ii<stDateList.length;ii++){ stDate = new CscCalendar(stDateList[ii]); endDate = new CscCalendar(endDateList[ii]); ws = rec.genWorkingShift(new CscCalendar(stDate.getYYYYMMDD()), new CscCalendar(endDate.getYYYYMMDD()),"true"); ws.setUProfile(this.up); ws.setEmployeeid(employeeid); ws.adjust(); }//end if }//end if }//end while }catch(Exception ex){ System.out.print(">>>>>Error on Honda_CheckOT_DWR.checkOTDay()"+ex.getStackTrace()); }//end try //storage data for DWR String dataReturn = ""; int tValue = 0; int hValue = 0; int sValue = 0; for (Iterator<?> IT = ws.keySet().iterator(); IT.hasNext();) { String key = (String) IT.next(); DayShift dShift = (DayShift) ws.get(key); if(dataReturn.equals("")){ dataReturn = key; }else{ dataReturn +="#"+ key; }//end if String eventGrp =""; CscCalendar DateList = new CscCalendar(key); String dayOfWeek = DateList.getDOWENG().toUpperCase(); if(this.htbSotpOt.containsKey(dayOfWeek)){ //�ѹ��� config �����ҧ� OT eventGrp = ":S"; sValue++; }else{ for (Iterator IT1 = dShift.keySet().iterator(); IT1.hasNext();) { String key1 = (String) IT1.next(); TimeResult tr = (TimeResult) dShift.get(key1); if(eventGrp.equals("")){ eventGrp = tr.getResultEventGroup(); }else{ eventGrp += ","+tr.getResultEventGroup(); }//end if }//end for if(eventGrp.indexOf("T")>=0 || eventGrp.indexOf("A")>=0){ //�� T ���� A �ʴ�����ѹ����ѹ�ӧҹ eventGrp=":T"; tValue++; }else if(eventGrp.indexOf("H")>=0 || eventGrp.indexOf("I")>=0){ //�� H ���� I �ʴ�����ѹ����ѹ��ش eventGrp=":H"; hValue++; } } dataReturn += eventGrp; }//end for return "tValue:"+tValue+"#hValue:"+hValue+"#sValue:"+sValue; }//end method checkOTDay private void retrieveMconfig(){ this.htbSotpOt = new Hashtable(); try{ DbInquiry inqMconfig = new InitialInquiry(this.up).getDbInquiry(); inqMconfig.setSchemaName(this.up.getSchemaName()); inqMconfig.initMyTable("Mconfig", "configid like 'TA_STOPOT%' and config_value ='on'", ""); inqMconfig.setColumn("configid, config_type,edesc"); inqMconfig.refresh(); while (inqMconfig.next()) { this.htbSotpOt.put(inqMconfig.getString("edesc"),inqMconfig.getString("config_type")); }//end while }catch(Exception ex){ System.out.print(">>>>>Error on Honda_CheckOT_DWR.retrieveMconfig()"+ex.getStackTrace()); } }//end method retrieveEmployeeTime0() }//end class Honda_CheckOT_DWR