package wenrgise.hrms.ejb.business; import java.rmi.RemoteException; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import javax.ejb.CreateException; import javax.ejb.RemoveException; import wenrgise.common.bean.BaseHeaderBean; import wenrgise.common.bean.LOVBean; import wenrgise.common.ejb.business.HrmCommonBO; import wenrgise.common.exception.EnrgiseApplicationException; import wenrgise.common.exception.EnrgiseMessageKeyException; import wenrgise.common.exception.EnrgiseSystemException; import wenrgise.common.utility.DateUtility; import wenrgise.common.utility.EnrgiseUtil; import wenrgise.common.utility.MessageKey; import wenrgise.common.utility.RecordMetaInfo; import wenrgise.common.utility.UserInfo; import wenrgise.common.utility.WorkFlowServiceLocator; import wenrgise.common.vo.LovQueryVO; import wenrgise.common.vo.LovVO; import wenrgise.ejb.common.helper.DBObject; import wenrgise.ejb.common.helper.QueryRow; import wenrgise.ejb.common.helper.QueryValue; import wenrgise.ejb.common.utility.DBUtilitiesBean; import wenrgise.hrms.bean.HrmLvCancHdrBean; import wenrgise.hrms.bean.HrmLvCancQueryDtlBean; import wenrgise.hrms.vo.HrmLvCancQVO; import wenrgise.hrms.vo.HrmLvCancQueryQVO; import wenrgise.workflow.bean.WflAuthorizationBean; import wenrgise.workflow.core.WflDocumentInfo; import wenrgise.workflow.core.WflResource; import wenrgise.workflow.core.WflSite; import wenrgise.workflow.core.WflStatus; import wenrgise.workflow.core.impl.WflDocumentInfoImpl; import wenrgise.workflow.core.impl.WflResourceImpl; import wenrgise.workflow.core.impl.WflSiteImpl; import wenrgise.workflow.ejb.facade.WorkFlowFacade; import wenrgise.workflow.ejb.facade.WorkFlowFacadeHome; public class HrmLvCancQueryBO extends HrmBaseBO { public HrmLvCancQueryBO() {} public HrmLvCancQueryBO(UserInfo oUserInfo) { super(oUserInfo); } public RecordMetaInfo getLeaveCanQueryDetailMetaInfo(HrmLvCancQueryQVO oHrmLvCancQueryQVO) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); String lvType = oHrmLvCancQueryQVO.getLeaveType(); String empNo = oHrmLvCancQueryQVO.getEmployeeNumber(); String status = oHrmLvCancQueryQVO.getCancellationStatus(); arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, empNo)); arylstParam.add(new DBObject(2, 1, 12, lvType)); arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancQueryQVO.getCancelFromDate()))); arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancQueryQVO.getCancelToDate()))); arylstParam.add(new DBObject(5, 1, 12, status)); arylstParam.add(new DBObject(6, 2, -5)); arylstParam.add(new DBObject(7, 2, 93)); arylstParam.add(new DBObject(8, 2, 12)); arylstParam.add(new DBObject(9, 2, 12)); arylstParam.add(new DBObject(10, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_HrLeaveCanQueryDtlCount(?,?,?,?,?,?,?,?,?,?)"); RecordMetaInfo oRecordMetaInfo = new RecordMetaInfo(); DBObject oTotalRecord = arylstOutArray.get(0); oRecordMetaInfo.setRecordCount(((Long)oTotalRecord.getObject()).longValue()); DBObject oTimeObject = arylstOutArray.get(1); oRecordMetaInfo.setOWhenPicked((Timestamp)oTimeObject.getObject()); return oRecordMetaInfo; } public ArrayList getHrLeaveCanQueryDetail(HrmLvCancQueryQVO oHrmLvCancQueryQVO, long lDetailFirstPosition, long lDetailLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; String lvType = oHrmLvCancQueryQVO.getLeaveType(); String empNo = oHrmLvCancQueryQVO.getEmployeeNumber(); String status = oHrmLvCancQueryQVO.getCancellationStatus(); QueryRow oRow = null; QueryValue oValue = null; ArrayList arylstList = null; Iterator itrBean = null; ArrayList arylstLeaveCanQueryDetail = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, -5, new Long(lDetailFirstPosition))); arylstParam.add(new DBObject(2, 1, -5, new Long(lDetailLastPosition))); arylstParam.add(new DBObject(3, 1, 12, empNo)); arylstParam.add(new DBObject(4, 1, 12, lvType)); arylstParam.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancQueryQVO.getCancelFromDate()))); arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancQueryQVO.getCancelToDate()))); arylstParam.add(new DBObject(7, 1, 12, status)); arylstParam.add(new DBObject(8, 2, -10)); arylstParam.add(new DBObject(9, 2, 12)); arylstParam.add(new DBObject(10, 2, 12)); arylstParam.add(new DBObject(11, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_HrLeaveCanQueryDtl(?,?,?,?,?,?,?,?,?,?,?)"); arylstList = (ArrayList)((DBObject)arylstOutArray.get(0)).getObject(); if (arylstList.size() == 0) throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M"); count = 0; itrBean = arylstList.iterator(); while (itrBean.hasNext()) { if (count == 0) arylstLeaveCanQueryDetail = new ArrayList(); count++; oRow = itrBean.next(); HrmLvCancQueryDtlBean oHrmLvCancQueryDtlBean = new HrmLvCancQueryDtlBean(); oHrmLvCancQueryDtlBean.setTxtTransId(oRow.get("ID").getString()); oHrmLvCancQueryDtlBean.setTxtLeaveCodes(oRow.get("LEAVE_DESCRIPTION").getString()); oHrmLvCancQueryDtlBean.setTxtAppliedLeaveDate(EnrgiseUtil.convertToString(oRow.get("APPLEAVEDATE").getDate())); oHrmLvCancQueryDtlBean.setTxtCancellationDate(EnrgiseUtil.convertToString(oRow.get("DATE_APPLIED").getDate())); oHrmLvCancQueryDtlBean.setTxtCancellationType(oRow.get("FULL_CNCL_FLAG").getString()); oHrmLvCancQueryDtlBean.setTxtCancelStatus(oRow.get("APPROVAL_FLAG").getString()); arylstLeaveCanQueryDetail.add(oHrmLvCancQueryDtlBean); } return arylstLeaveCanQueryDetail; } public RecordMetaInfo getEmpLeaveCancellationQueryScreenDetailMetaInfo(HrmLvCancQVO oHrmLvCancQVO) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); String sTransId = oHrmLvCancQVO.getTransId(); System.out.println(sTransId); arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sTransId)); arylstParam.add(new DBObject(2, 1, 12, oHrmLvCancQVO.getHeaderPrimaryKey())); arylstParam.add(new DBObject(3, 1, 12, oHrmLvCancQVO.getEmployeeNo())); arylstParam.add(new DBObject(4, 1, 12, oHrmLvCancQVO.getLeaveCodeId())); arylstParam.add(new DBObject(5, 2, -5)); arylstParam.add(new DBObject(6, 2, 93)); arylstParam.add(new DBObject(7, 2, 12)); arylstParam.add(new DBObject(8, 2, 12)); arylstParam.add(new DBObject(9, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_HrLeaveCanQryScreenDtlCnt(?,?,?,?,?,?,?,?,?)"); RecordMetaInfo oRecordMetaInfo = new RecordMetaInfo(); DBObject oTotalRecord = arylstOutArray.get(0); oRecordMetaInfo.setRecordCount(((Long)oTotalRecord.getObject()).longValue()); DBObject oTimeObject = arylstOutArray.get(1); oRecordMetaInfo.setOWhenPicked((Timestamp)oTimeObject.getObject()); return oRecordMetaInfo; } public ArrayList getHrEmpLeaveCancellationQueryScreenDetail(HrmLvCancQVO oHrmLvCancQVO, long lStartPosition, long lLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; String sTransId = oHrmLvCancQVO.getTransId(); System.out.println(sTransId); QueryRow oRow = null; QueryValue oValue = null; ArrayList arylstList = null; Iterator itrBean = null; ArrayList arylstEmpLeaveCanQueryScreenDetail = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, -5, new Long(lStartPosition))); arylstParam.add(new DBObject(2, 1, -5, new Long(lLastPosition))); arylstParam.add(new DBObject(3, 1, 12, sTransId)); arylstParam.add(new DBObject(4, 1, 12, oHrmLvCancQVO.getEmployeeNo())); arylstParam.add(new DBObject(5, 1, 12, oHrmLvCancQVO.getHeaderPrimaryKey())); arylstParam.add(new DBObject(6, 1, 12, oHrmLvCancQVO.getLeaveCodeId())); arylstParam.add(new DBObject(7, 2, -10)); arylstParam.add(new DBObject(8, 2, 12)); arylstParam.add(new DBObject(9, 2, 12)); arylstParam.add(new DBObject(10, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_HrLeaveCanQueryScreenDtl(?,?,?,?,?,?,?,?,?,?)"); arylstList = (ArrayList)((DBObject)arylstOutArray.get(0)).getObject(); if (arylstList.size() == 0) throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M"); count = 0; itrBean = arylstList.iterator(); while (itrBean.hasNext()) { if (count == 0) arylstEmpLeaveCanQueryScreenDetail = new ArrayList(); count++; oRow = itrBean.next(); HrmLvCancHdrBean oHrmLvCancHdrBean = new HrmLvCancHdrBean(); oHrmLvCancHdrBean.setHeaderPrimaryKey(oRow.get("ID").getString()); oHrmLvCancHdrBean.setEmployeeNo(oRow.get("EMP_NO").getString()); oHrmLvCancHdrBean.setFirstName(oRow.get("FIRST_NAME").getString()); oHrmLvCancHdrBean.setMiddleName(oRow.get("MIDDLE_NAME").getString()); oHrmLvCancHdrBean.setLastName(oRow.get("LAST_NAME").getString()); oHrmLvCancHdrBean.setLeaveCode(oRow.get("LEAVE_DESCRIPTION").getString()); oHrmLvCancHdrBean.setLeaveDescription(oRow.get("NAME").getString()); oHrmLvCancHdrBean.setLeaveCodeId(oRow.get("LEAVE_CODE_ID").getString()); oHrmLvCancHdrBean.setDateApplied(EnrgiseUtil.convertToString(oRow.get("DATE_APPLIED").getDate())); oHrmLvCancHdrBean.setFromDate(EnrgiseUtil.convertToString(oRow.get("FROM_DATE").getDate())); oHrmLvCancHdrBean.setToDate(EnrgiseUtil.convertToString(oRow.get("TO_DATE").getDate())); oHrmLvCancHdrBean.setDays(oRow.get("NO_OF_DAYS").getString()); oHrmLvCancHdrBean.setAddress(oRow.get("ADDRESS_FOR_COMM").getString()); oHrmLvCancHdrBean.setPhoneNo(oRow.get("PHONE").getString()); oHrmLvCancHdrBean.setCancelStatus(oRow.get("APPROVAL_FLAG").getString()); oHrmLvCancHdrBean.setStatusOfLeave(oRow.get("LV_CNCL_FLAG").getString()); System.out.println(oRow.get("LV_CNCL_FLAG").getString()); oHrmLvCancHdrBean.setPurpose(oRow.get("PURPOSE").getString()); oHrmLvCancHdrBean.setFromCancelDate(EnrgiseUtil.convertToString(oRow.get("CANFROMDATE").getDate())); oHrmLvCancHdrBean.setToCancelDate(EnrgiseUtil.convertToString(oRow.get("CANTODATE").getDate())); oHrmLvCancHdrBean.setCancelDays(oRow.get("CANNOOFDAYS").getString()); oHrmLvCancHdrBean.setCancelDateApplied(EnrgiseUtil.convertToString(oRow.get("CANDATEAPP").getDate())); oHrmLvCancHdrBean.setCancellationType(oRow.get("FULL_CNCL_FLAG").getString()); oHrmLvCancHdrBean.setCancelRemarks(oRow.get("REMARKS").getString()); arylstEmpLeaveCanQueryScreenDetail.add(oHrmLvCancHdrBean); } return arylstEmpLeaveCanQueryScreenDetail; } public LovVO getHrmCnclLeaveEmpLOV(LovQueryVO oLovQueryVO) throws EnrgiseApplicationException, EnrgiseSystemException { LovVO oLovVO = new LovVO(); ArrayList arylstHeaderList = new ArrayList(); arylstHeaderList.add("empId"); arylstHeaderList.add("hrm.HrmLeaveCancellationQuery.employeeNumber"); arylstHeaderList.add("hrm.HrmLeaveCancellationQuery.empName"); oLovVO.setHeaderList(arylstHeaderList); ArrayList arylstVisibility = new ArrayList(); arylstVisibility.add("H"); arylstVisibility.add("V"); arylstVisibility.add("V"); oLovVO.setVisibilityList(arylstVisibility); int count = 0; ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); String sQuerySearch1 = new String(); String sQuerySearch2 = new String(); if (oLovQueryVO.getSearchField1() != null) { sQuerySearch1 = oLovQueryVO.getSearchField1(); System.out.println(sQuerySearch1); } if (oLovQueryVO.getSearchField2() != null) { sQuerySearch2 = oLovQueryVO.getSearchField2(); System.out.println(sQuerySearch2); } arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sQuerySearch1)); arylstParam.add(new DBObject(2, 1, 12, sQuerySearch2)); arylstParam.add(new DBObject(3, 2, -10)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 12)); arylstParam.add(new DBObject(6, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVLOV.proc_GetHrmCnclLeaveEmpLOVdata(?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; Iterator iter = arylstList.iterator(); while (iter.hasNext()) { if (count == 0) arylstList = new ArrayList(); count++; oRow = iter.next(); LOVBean oLOVBean = new LOVBean(); oLOVBean.setDetailField1(oRow.get("ID").getString()); oLOVBean.setDetailField2(oRow.get("EMP_NO").getString()); oLOVBean.setDetailField3(oRow.get("EMPNAME").getString()); arylstList.add(oLOVBean); } oLovVO.setDetailList(arylstList); return oLovVO; } public LovVO getHrmCnclLeaveTypeLOV(LovQueryVO oLovQueryVO) throws EnrgiseApplicationException, EnrgiseSystemException { LovVO oLovVO = new LovVO(); ArrayList arylstHeaderList = new ArrayList(); arylstHeaderList.add("leaveTypeId"); arylstHeaderList.add("hrm.HrmLeaveCancellationQuery.leaveType"); arylstHeaderList.add("hrm.HrmLeaveCancellationQuery.leaveDescription"); oLovVO.setHeaderList(arylstHeaderList); ArrayList arylstVisibility = new ArrayList(); arylstVisibility.add("H"); arylstVisibility.add("V"); arylstVisibility.add("V"); oLovVO.setVisibilityList(arylstVisibility); int count = 0; ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); String sQuerySearch1 = new String(); String sQuerySearch2 = new String(); if (oLovQueryVO.getSearchField1() != null) { sQuerySearch1 = oLovQueryVO.getSearchField1(); System.out.println(sQuerySearch1); } if (oLovQueryVO.getSearchField2() != null) { sQuerySearch2 = oLovQueryVO.getSearchField2(); System.out.println(sQuerySearch2); } arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sQuerySearch1)); arylstParam.add(new DBObject(2, 1, 12, sQuerySearch2)); arylstParam.add(new DBObject(3, 2, -10)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 12)); arylstParam.add(new DBObject(6, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVLOV.proc_GetHrmCnclLeaveTypeLOV(?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; Iterator iter = arylstList.iterator(); while (iter.hasNext()) { if (count == 0) arylstList = new ArrayList(); count++; oRow = iter.next(); LOVBean oLOVBean = new LOVBean(); oLOVBean.setDetailField1(oRow.get("ID").getString()); oLOVBean.setDetailField2(oRow.get("LEAVE_DESCRIPTION").getString()); oLOVBean.setDetailField3(oRow.get("NAME").getString()); arylstList.add(oLOVBean); } oLovVO.setDetailList(arylstList); return oLovVO; } public void initializeBOImpl() { this.headerTable = "hrm_emp_leave_txn"; } public void saveDetailImpl(String sHeaderPrimaryKey, String sScreenName, ArrayList arylstDetailBeanArray) throws EnrgiseSystemException {} public void updateHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException {} public String saveNewHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException { return "saveNewHeaderImpl"; } public void additionalTimestampValidationImpl(BaseHeaderBean param1, Timestamp param2, String param3, String param4, boolean param5, ArrayList param6, boolean param7, Timestamp param8) {} public LovVO getHrmEmpLvCanLvCdLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException { LovVO oLovVO = new LovVO(); ArrayList arylstHeaderList = new ArrayList(); arylstHeaderList.add("ID"); arylstHeaderList.add("hrm.HrmLeaveCancellation.leaveCode"); arylstHeaderList.add("hrm.HrmLeaveCancellation.leaveDescription"); arylstHeaderList.add("hrm.HrmLeaveCancellation.dateApplied"); arylstHeaderList.add("hrm.HrmLeaveCancellation.fromDate"); arylstHeaderList.add("hrm.HrmLeaveCancellation.toDate"); arylstHeaderList.add("hrm.HrmLeaveCancellation.days"); arylstHeaderList.add("hrm.HrmLeaveCancellation.purpose"); arylstHeaderList.add("hrm.HrmLeaveCancellation.statusOfLeave"); oLovVO.setHeaderList(arylstHeaderList); ArrayList arylstVisibility = new ArrayList(); arylstVisibility.add("H"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("H"); arylstVisibility.add("H"); oLovVO.setVisibilityList(arylstVisibility); int count = 0; String sEmpNo = null; ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); String sQuerySearch1 = new String(); String sQuerySearch2 = new String(); if (oLovQueryVO.getProperty("employeeNo") != null) sEmpNo = oLovQueryVO.getProperty("employeeNo"); if (oLovQueryVO.getSearchField1() != null) sQuerySearch1 = oLovQueryVO.getSearchField1(); if (oLovQueryVO.getSearchField2() != null) sQuerySearch2 = oLovQueryVO.getSearchField2(); arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sQuerySearch1)); arylstParam.add(new DBObject(2, 1, 12, sQuerySearch2)); arylstParam.add(new DBObject(3, 1, 12, sEmpNo)); arylstParam.add(new DBObject(4, 2, -10)); arylstParam.add(new DBObject(5, 2, 12)); arylstParam.add(new DBObject(6, 2, 12)); arylstParam.add(new DBObject(7, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_GetEmpLvCanLeaveCdLOV(?,?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; Iterator iter = arylstList.iterator(); while (iter.hasNext()) { if (count == 0) arylstList = new ArrayList(); count++; oRow = iter.next(); LOVBean oLOVBean = new LOVBean(); oLOVBean.setDetailField1(oRow.get("ID").getString()); oLOVBean.setDetailField2(oRow.get("leave_description").getString()); oLOVBean.setDetailField3(oRow.get("NAME").getString()); oLOVBean.setDetailField4(EnrgiseUtil.convertToString(oRow.get("date_applied").getDate())); oLOVBean.setDetailField5(EnrgiseUtil.convertToString(oRow.get("from_date").getDate())); oLOVBean.setDetailField6(EnrgiseUtil.convertToString(oRow.get("to_date").getDate())); oLOVBean.setDetailField7(oRow.get("no_of_days").getString()); oLOVBean.setDetailField8(oRow.get("purpose").getString()); String sFullCancel = oRow.get("FULL_CNCL_FLAG").getString(); String sPartCancel = oRow.get("lv_cncl_flag").getString(); if (sPartCancel.equals("N") && sFullCancel.equals("N")) oLOVBean.setDetailField9("NC"); if (sPartCancel.equals("Y") && sFullCancel.equals("N")) oLOVBean.setDetailField9("N"); if (sFullCancel.equals("Y")) oLOVBean.setDetailField9("Y"); arylstList.add(oLOVBean); } oLovVO.setDetailList(arylstList); return oLovVO; } public LovVO getHrmEmpLvCanLvCdInsertLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException { LovVO oLovVO = new LovVO(); ArrayList arylstHeaderList = new ArrayList(); arylstHeaderList.add("ID"); arylstHeaderList.add("hrm.HrmLeaveCancellation.leaveCode"); arylstHeaderList.add("hrm.HrmLeaveCancellation.leaveDescription"); arylstHeaderList.add("hrm.HrmLeaveCancellation.dateApplied"); arylstHeaderList.add("hrm.HrmLeaveCancellation.fromDate"); arylstHeaderList.add("hrm.HrmLeaveCancellation.toDate"); arylstHeaderList.add("hrm.HrmLeaveCancellation.days"); arylstHeaderList.add("hrm.HrmLeaveCancellation.purpose"); arylstHeaderList.add("hrm.HrmLeaveCancellation.statusOfLeave"); oLovVO.setHeaderList(arylstHeaderList); ArrayList arylstVisibility = new ArrayList(); arylstVisibility.add("H"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("V"); arylstVisibility.add("H"); oLovVO.setVisibilityList(arylstVisibility); int count = 0; String sEmpNo = null; ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); String sQuerySearch1 = new String(); String sQuerySearch2 = new String(); if (oLovQueryVO.getProperty("employeeNo") != null) sEmpNo = oLovQueryVO.getProperty("employeeNo"); if (oLovQueryVO.getSearchField1() != null) sQuerySearch1 = oLovQueryVO.getSearchField1(); if (oLovQueryVO.getSearchField2() != null) sQuerySearch2 = oLovQueryVO.getSearchField2(); arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sQuerySearch1)); arylstParam.add(new DBObject(2, 1, 12, sQuerySearch2)); arylstParam.add(new DBObject(3, 1, 12, sEmpNo)); arylstParam.add(new DBObject(4, 2, -10)); arylstParam.add(new DBObject(5, 2, 12)); arylstParam.add(new DBObject(6, 2, 12)); arylstParam.add(new DBObject(7, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_GetLvCodeLOV(?,?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; Iterator iter = arylstList.iterator(); while (iter.hasNext()) { if (count == 0) arylstList = new ArrayList(); count++; oRow = iter.next(); LOVBean oLOVBean = new LOVBean(); oLOVBean.setDetailField1(oRow.get("ID").getString()); oLOVBean.setDetailField2(oRow.get("leave_description").getString()); oLOVBean.setDetailField3(oRow.get("NAME").getString()); oLOVBean.setDetailField4(EnrgiseUtil.convertToString(oRow.get("date_applied").getDate())); oLOVBean.setDetailField5(EnrgiseUtil.convertToString(oRow.get("from_date").getDate())); oLOVBean.setDetailField6(EnrgiseUtil.convertToString(oRow.get("to_date").getDate())); oLOVBean.setDetailField7(oRow.get("no_of_days").getString()); oLOVBean.setDetailField8(oRow.get("purpose").getString()); String sFullCancel = oRow.get("FULL_CNCL_FLAG").getString(); String sPartCancel = oRow.get("lv_cncl_flag").getString(); if (sPartCancel.equals("N") && sFullCancel.equals("N")) oLOVBean.setDetailField9("NC"); if (sPartCancel.equals("Y") && sFullCancel.equals("N")) oLOVBean.setDetailField9("N"); if (sFullCancel.equals("Y")) oLOVBean.setDetailField9("Y"); arylstList.add(oLOVBean); } oLovVO.setDetailList(arylstList); return oLovVO; } public String getChngStatusInfo(String sTxnId) throws EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; String sStatus = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sTxnId)); arylstParam.add(new DBObject(2, 2, -10)); arylstParam.add(new DBObject(3, 2, 12)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVLOV.proc_GetLvTxnIdInChng(?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; QueryValue oValue = null; HashMap oColumns = null; Iterator itrBean = arylstList.iterator(); while (itrBean.hasNext()) { oRow = itrBean.next(); sStatus = oRow.get("APPROVAL_FLAG").getString(); } return sStatus; } public String getCnclStatusInfo(String sTxnId) throws EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; String sStatus = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sTxnId)); arylstParam.add(new DBObject(2, 2, -10)); arylstParam.add(new DBObject(3, 2, 12)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVLOV.proc_GetLvTxnIdInCncl(?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; QueryValue oValue = null; HashMap oColumns = null; Iterator itrBean = arylstList.iterator(); while (itrBean.hasNext()) { oRow = itrBean.next(); sStatus = oRow.get("APPROVAL_FLAG").getString(); } return sStatus; } private ArrayList checkLOVConstraint(ArrayList arylstList) throws EnrgiseSystemException { LOVBean def = null; ArrayList arylstNewList = new ArrayList(); Iterator itrBean = arylstList.iterator(); while (itrBean.hasNext()) { def = itrBean.next(); String sTxnId = def.getDetailField1(); String sChngFlag = getChngStatusInfo(sTxnId); if (sChngFlag != null) { if (sChngFlag.equalsIgnoreCase("R")) arylstNewList.add(def); continue; } String sCnclFlag = getCnclStatusInfo(sTxnId); if (sCnclFlag == null) { arylstNewList.add(def); continue; } if (sCnclFlag.equalsIgnoreCase("R") || sCnclFlag.equalsIgnoreCase("A")) arylstNewList.add(def); } return arylstNewList; } public void additionalBusinessValidationImpl(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstErrorList = new ArrayList(); HrmLvCancHdrBean oHrmLvCancHdrBean = (HrmLvCancHdrBean)oBaseHeaderBean; if (bHeaderDataChanged) { if (!sScreenMode.equalsIgnoreCase("D")) { if (sScreenMode.equalsIgnoreCase("N")) checkHeaderConstraint((HrmLvCancHdrBean)oBaseHeaderBean); if (sScreenMode.equalsIgnoreCase("U")) if (oHrmLvCancHdrBean.getCancelStatus() == null) { checkHeaderConstraint((HrmLvCancHdrBean)oBaseHeaderBean); } else if (oHrmLvCancHdrBean.getCancelStatus().equalsIgnoreCase("N")) { checkHeaderConstraint((HrmLvCancHdrBean)oBaseHeaderBean); } else { arylstErrorList.add(new EnrgiseApplicationException("wenrgise.common.updation.mode")); } } if (sScreenMode.equalsIgnoreCase("D")) if (!oHrmLvCancHdrBean.getCancelStatus().equalsIgnoreCase("N")) { if (arylstErrorList.isEmpty()) arylstErrorList.add(new EnrgiseApplicationException("wenrgise.common.deletion.rejected")); } else if (oHrmLvCancHdrBean.getStatusOfLeave().equalsIgnoreCase("Y")) { updateTxnCnclStatus(oHrmLvCancHdrBean.getLeaveCodeId(), "N"); } } reportError(arylstErrorList); } private void checkHeaderConstraint(HrmLvCancHdrBean oHrmLvCancHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstErrorList = new ArrayList(); String sTxnId = oHrmLvCancHdrBean.getLeaveCodeId(); HrmCommonBO oBO = new HrmCommonBO(); String sCnclId = oBO.getRefList("hrm_emp_leave_cncl_txn", "lv_txn_id", sTxnId, "ID"); if (!EnrgiseUtil.checkString(sCnclId)) { if (!oHrmLvCancHdrBean.getFromCancelDate().equals(oHrmLvCancHdrBean.getFromDate()) && !oHrmLvCancHdrBean.getToCancelDate().equals(oHrmLvCancHdrBean.getToDate())) arylstErrorList.add(new EnrgiseApplicationException("wenrgise.lvCncl.value")); } else { ArrayList arylstFromTarylstList = getCancelFromDateTarylstDateDetail(sTxnId); HrmLvCancHdrBean oHdrBean = null; Iterator itrBean = arylstFromTarylstList.iterator(); while (itrBean.hasNext()) { oHdrBean = itrBean.next(); String sCnclfromDate = oHdrBean.getFromCancelDate(); System.out.println(sCnclfromDate); String sCnclToDate = oHdrBean.getToCancelDate(); System.out.println(sCnclToDate); HrmCommonBO b = new HrmCommonBO(); if (EnrgiseUtil.compareDates(new SimpleDateFormat("dd-MMM-yyyy"), oHdrBean.getFromCancelDate(), sCnclfromDate) > 0) arylstErrorList.add(new EnrgiseApplicationException("wenrgise.lvCncl.value")); if (EnrgiseUtil.compareDates(new SimpleDateFormat("dd-MMM-yyyy"), oHdrBean.getToCancelDate(), sCnclToDate) > 0) arylstErrorList.add(new EnrgiseApplicationException("wenrgise.lvCncl.value")); if (!oHrmLvCancHdrBean.getFromCancelDate().equals(sCnclfromDate) && !oHrmLvCancHdrBean.getToCancelDate().equals(sCnclToDate)) arylstErrorList.add(new EnrgiseApplicationException("wenrgise.lvCncl.value")); if (oHrmLvCancHdrBean.getFromCancelDate().equals(sCnclfromDate) && oHrmLvCancHdrBean.getToCancelDate().equals(sCnclToDate)) updateTxnCnclStatus(oHrmLvCancHdrBean.getLeaveCodeId(), "Y"); } } reportError(arylstErrorList); } public void additionalFieldValidationImpl(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstErrorList = new ArrayList(); if (bHeaderDataChanged) if (!sScreenMode.equalsIgnoreCase("D")) checkMandatoryHeader((HrmLvCancHdrBean)oBaseHeaderBean); reportError(arylstErrorList); } private void checkMandatoryHeader(HrmLvCancHdrBean oHrmLvCancHdrBean) throws EnrgiseSystemException, EnrgiseApplicationException { ArrayList oErrorList = new ArrayList(); if (!EnrgiseUtil.checkString(oHrmLvCancHdrBean.getFromCancelDate())) { MessageKey oMessageKey = new MessageKey("hrm.HrmLeaveCancellation.fromCancelDate"); ArrayList oParams = new ArrayList(); oParams.add(oMessageKey); oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", oParams, "E")); } if (!EnrgiseUtil.checkString(oHrmLvCancHdrBean.getToCancelDate())) { MessageKey oMessageKey = new MessageKey("hrm.HrmLeaveCancellation.toCancelDate"); ArrayList oParams = new ArrayList(); oParams.add(oMessageKey); oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", oParams, "E")); } if (!EnrgiseUtil.checkString(oHrmLvCancHdrBean.getCancelDateApplied())) { MessageKey oMessageKey = new MessageKey("hrm.HrmLeaveCancellation.cancelDateApplied"); ArrayList oParams = new ArrayList(); oParams.add(oMessageKey); oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", oParams, "E")); } reportError(oErrorList); } public String saveHeaderImpl(BaseHeaderBean oBaseHeaderBean, String ScreenMode) throws EnrgiseSystemException { String returnString = null; ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); DateUtility d = new DateUtility(); String sCancelDays = null; HrmLvCancHdrBean oHrmLvCancHdrBean = (HrmLvCancHdrBean)oBaseHeaderBean; try { sCancelDays = getCancelDayCount(oHrmLvCancHdrBean.getLeaveCodeId(), oHrmLvCancHdrBean.getToCancelDate()); } catch (EnrgiseApplicationException oEx) { throw new EnrgiseSystemException(oEx); } if (ScreenMode.equalsIgnoreCase("N")) { arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, "N")); arylstParam.add(new DBObject(2, 1, 12, oHrmLvCancHdrBean.getLeaveCodeId())); arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancHdrBean.getFromCancelDate()))); arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancHdrBean.getToCancelDate()))); arylstParam.add(new DBObject(5, 1, 12, sCancelDays)); arylstParam.add(new DBObject(6, 1, 12, oHrmLvCancHdrBean.getCancellationType())); arylstParam.add(new DBObject(7, 1, 12, "P")); arylstParam.add(new DBObject(8, 1, 12, oHrmLvCancHdrBean.getCancelRemarks())); arylstParam.add(new DBObject(9, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancHdrBean.getCancelDateApplied()))); arylstParam.add(new DBObject(10, 1, 12, this.oUserInfo.getUserTypeId())); arylstParam.add(new DBObject(11, 1, 12, this.oUserInfo.getSiteId())); arylstParam.add(new DBObject(12, 1, 12, null)); arylstParam.add(new DBObject(13, 2, 12)); arylstParam.add(new DBObject(14, 2, 12)); arylstParam.add(new DBObject(15, 2, 12)); arylstParam.add(new DBObject(16, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_UpsertLeaveCncl(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); returnString = (String)oOutObject.getObject(); oBaseHeaderBean.setHeaderPrimaryKey(returnString); } else if (ScreenMode.equalsIgnoreCase("U")) { if (oHrmLvCancHdrBean.getCancelStatus() != null) if (oHrmLvCancHdrBean.getCancelStatus().equalsIgnoreCase("R")) if (oHrmLvCancHdrBean.getStatusOfLeave().equalsIgnoreCase("Y")) updateTxnCnclStatus(oHrmLvCancHdrBean.getLeaveCodeId(), "N"); arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, "u")); arylstParam.add(new DBObject(2, 1, 12, oHrmLvCancHdrBean.getLeaveCodeId())); arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancHdrBean.getFromCancelDate()))); arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancHdrBean.getToCancelDate()))); arylstParam.add(new DBObject(5, 1, 12, sCancelDays)); arylstParam.add(new DBObject(6, 1, 12, oHrmLvCancHdrBean.getCancellationType())); arylstParam.add(new DBObject(7, 1, 12, oHrmLvCancHdrBean.getCancelStatus())); arylstParam.add(new DBObject(8, 1, 12, oHrmLvCancHdrBean.getCancelRemarks())); arylstParam.add(new DBObject(9, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvCancHdrBean.getCancelDateApplied()))); arylstParam.add(new DBObject(10, 1, 12, this.oUserInfo.getUserTypeId())); arylstParam.add(new DBObject(11, 1, 12, this.oUserInfo.getSiteId())); arylstParam.add(new DBObject(12, 1, 12, oHrmLvCancHdrBean.getHeaderPrimaryKey())); arylstParam.add(new DBObject(13, 2, 12)); arylstParam.add(new DBObject(14, 2, 12)); arylstParam.add(new DBObject(15, 2, 12)); arylstParam.add(new DBObject(16, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_UpsertLeaveCncl(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); returnString = (String)oOutObject.getObject(); System.out.println(returnString); } else if (ScreenMode.equalsIgnoreCase("D")) { arylstParam.add(new DBObject(1, 1, 12, oHrmLvCancHdrBean.getHeaderPrimaryKey())); arylstParam.add(new DBObject(2, 2, 12)); arylstParam.add(new DBObject(3, 2, 12)); arylstParam.add(new DBObject(4, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_DeleteHrLvCnclDtl(?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); returnString = null; } return returnString; } public String getNextCnclDtlToDate(String sDate, String sTxnId) throws EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; String sNextDate = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 93, EnrgiseUtil.convertToSqlDate(sDate))); arylstParam.add(new DBObject(2, 1, 12, sTxnId)); arylstParam.add(new DBObject(3, 2, -10)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 12)); arylstParam.add(new DBObject(6, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_GetNextCnclDtlToDate(?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; QueryValue oValue = null; HashMap oColumns = null; Iterator itrBean = arylstList.iterator(); while (itrBean.hasNext()) { oRow = itrBean.next(); sNextDate = EnrgiseUtil.convertToString(oRow.get("NEXTCNCLDTLTODATE").getDate()); System.out.println(sNextDate); } return sNextDate; } public String getPrevCnclDtlFromDate(String sDate, String sTxnId) throws EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; String sPrevDate = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 93, EnrgiseUtil.convertToSqlDate(sDate))); arylstParam.add(new DBObject(2, 1, 12, sTxnId)); arylstParam.add(new DBObject(3, 2, -10)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 12)); arylstParam.add(new DBObject(6, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_GetPrevCnclDtlFromDate(?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; QueryValue oValue = null; HashMap oColumns = null; Iterator itrBean = arylstList.iterator(); while (itrBean.hasNext()) { oRow = itrBean.next(); sPrevDate = EnrgiseUtil.convertToString(oRow.get("PREVCNCLDTLTODATE").getDate()); System.out.println(sPrevDate); } return sPrevDate; } public void updateTxnCnclStatus(String sTxnId, String sValue) throws EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sTxnId)); arylstParam.add(new DBObject(2, 1, 12, sValue)); arylstParam.add(new DBObject(3, 2, 12)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVCANCQUERY.proc_updateTxnStatus(?,?,?,?,?)"); } public ArrayList getCancelFromDateTarylstDateDetail(String sTxnId) throws EnrgiseApplicationException, EnrgiseSystemException { ArrayList arylstParam = new ArrayList(); DBUtilitiesBean oBean = new DBUtilitiesBean(); int count = 0; QueryRow oRow = null; QueryValue oValue = null; ArrayList arylstList = null; Iterator itrBean = null; ArrayList arylstDateDetail = null; arylstParam = new ArrayList(); arylstParam.add(new DBObject(1, 1, 12, sTxnId)); arylstParam.add(new DBObject(2, 2, -10)); arylstParam.add(new DBObject(3, 2, 12)); arylstParam.add(new DBObject(4, 2, 12)); arylstParam.add(new DBObject(5, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVLOV.proc_GetCnclFromToDateInCncl(?,?,?,?,?)"); arylstList = (ArrayList)((DBObject)arylstOutArray.get(0)).getObject(); count = 0; itrBean = arylstList.iterator(); String cnclToDate = null; String cnclFromDate = null; String txnFromDate = null; String txnToDate = null; HrmLvCancHdrBean oHrmLvCancHdrBean = new HrmLvCancHdrBean(); while (itrBean.hasNext()) { if (count == 0) arylstDateDetail = new ArrayList(); count++; oRow = itrBean.next(); if (count == 1) { txnFromDate = EnrgiseUtil.convertToString(oRow.get("FROM_DATE").getDate()); txnToDate = EnrgiseUtil.convertToString(oRow.get("TO_DATE").getDate()); } String cnclDtlFromDate = EnrgiseUtil.convertToString(oRow.get("CANFROM").getDate()); String cnclDtlToDate = EnrgiseUtil.convertToString(oRow.get("CANTO").getDate()); System.out.println(cnclDtlToDate); if (txnFromDate.equals(cnclDtlFromDate)) { cnclFromDate = getNextCnclDtlToDate(cnclDtlToDate, sTxnId); System.out.println(cnclFromDate); cnclToDate = txnToDate; System.out.println(cnclToDate); txnFromDate = cnclFromDate; txnToDate = cnclToDate; continue; } cnclFromDate = txnFromDate; System.out.println(cnclFromDate); cnclToDate = getPrevCnclDtlFromDate(cnclDtlFromDate, sTxnId); txnFromDate = cnclFromDate; txnToDate = cnclToDate; } System.out.println(cnclFromDate); System.out.println(cnclToDate); oHrmLvCancHdrBean.setFromCancelDate(cnclFromDate); oHrmLvCancHdrBean.setToCancelDate(cnclToDate); arylstDateDetail.add(oHrmLvCancHdrBean); return arylstDateDetail; } public String approveLeaveCanc(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException { String sLeaveCanc = null; String sStatus = null; HrmLvCancHdrBean oHdrBean = (HrmLvCancHdrBean)oBaseHeaderBean; if (oHdrBean.getButtonName().equalsIgnoreCase("A")) { WflStatus status = null; if (!EnrgiseUtil.checkString(oBaseHeaderBean.getWorkListId())) { status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Approve", "Initiated"); } else { status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Approve", (String)null); } if (status.getStatus().equalsIgnoreCase("FinallyApproved")) { sLeaveCanc = approveLeaveCancHdr(oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, arylstDetailBeanArray, bDetailDataChanged, oDetailPicked); approveLeaveCancTxn(oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, arylstDetailBeanArray, bDetailDataChanged, oDetailPicked); } } else { WflStatus status = null; if (!EnrgiseUtil.checkString(oBaseHeaderBean.getWorkListId())) { status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Reject", "Initiated"); } else { status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Reject", (String)null); } if (status.getStatus().equalsIgnoreCase("Rejected")) { sLeaveCanc = approveLeaveCancHdr(oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, arylstDetailBeanArray, bDetailDataChanged, oDetailPicked); approveLeaveCancTxn(oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, arylstDetailBeanArray, bDetailDataChanged, oDetailPicked); } } return sLeaveCanc; } private String approveLeaveCancHdr(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException { DBUtilitiesBean oBean = null; HrmLvCancHdrBean oHrmLvCancHdrBean = (HrmLvCancHdrBean)oBaseHeaderBean; String sHeaderPrimaryKey = (null != oBaseHeaderBean) ? oBaseHeaderBean.getHeaderPrimaryKey() : ""; oBean = new DBUtilitiesBean(); ArrayList arylstParameters = new ArrayList(); arylstParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey)); arylstParameters.add(new DBObject(2, 1, 12, oHrmLvCancHdrBean.getEmployeeId())); arylstParameters.add(new DBObject(3, 1, 12, oHrmLvCancHdrBean.getLeaveCodeId())); arylstParameters.add(new DBObject(4, 1, 12, oHrmLvCancHdrBean.getCancelDays())); arylstParameters.add(new DBObject(5, 2, 12)); arylstParameters.add(new DBObject(6, 2, 12)); arylstParameters.add(new DBObject(7, 2, 4)); if (oHrmLvCancHdrBean.getButtonName().equalsIgnoreCase("A")) ArrayList arrayList = oBean.callProc(arylstParameters, "HRMLVCANCQUERY.proc_UpsertApproveLvCancHdr(?,?,?,?,?,?,?)"); return sHeaderPrimaryKey; } private void approveLeaveCancTxn(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException { DBUtilitiesBean oBean = null; HrmLvCancHdrBean oHrmLvCancHdrBean = (HrmLvCancHdrBean)oBaseHeaderBean; String sHeaderPrimaryKey = (null != oBaseHeaderBean) ? oBaseHeaderBean.getHeaderPrimaryKey() : ""; oBean = new DBUtilitiesBean(); ArrayList arylstParameters = new ArrayList(); arylstParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey)); arylstParameters.add(new DBObject(2, 1, 12, oHrmLvCancHdrBean.getEmployeeId())); arylstParameters.add(new DBObject(3, 1, 12, oHrmLvCancHdrBean.getLeaveCodeId())); arylstParameters.add(new DBObject(4, 1, 12, oHrmLvCancHdrBean.getButtonName())); arylstParameters.add(new DBObject(5, 2, 12)); arylstParameters.add(new DBObject(6, 2, 12)); arylstParameters.add(new DBObject(7, 2, 4)); ArrayList arylstPK = oBean.callProc(arylstParameters, "HRMLVCANCQUERY.proc_UpsertApproveLvCancTxn(?,?,?,?,?,?,?)"); } private String getCancelDayCount(String sTxnId, String sToDate) throws EnrgiseApplicationException, EnrgiseSystemException { DBUtilitiesBean oBean = null; oBean = new DBUtilitiesBean(); ArrayList arylstParameters = new ArrayList(); arylstParameters.add(new DBObject(1, 1, 12, sTxnId)); arylstParameters.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sToDate))); arylstParameters.add(new DBObject(3, 2, -10)); arylstParameters.add(new DBObject(4, 2, 12)); arylstParameters.add(new DBObject(5, 2, 12)); arylstParameters.add(new DBObject(6, 2, 4)); ArrayList arylstOutArray = oBean.callProc(arylstParameters, "HRMLVCANCQUERY.proc_GetCancelLeaveCount(?,?,?,?,?,?)"); DBObject oOutObject = arylstOutArray.get(0); ArrayList arylstList = (ArrayList)oOutObject.getObject(); QueryRow oRow = null; QueryValue oValue = null; HashMap oColumns = null; Iterator itrBean = arylstList.iterator(); double dFlag = 0.0D; while (itrBean.hasNext()) { oRow = itrBean.next(); int iFlag = Integer.parseInt(oRow.get("part_flag").getString()); dFlag += (iFlag == 3) ? 1.0D : 0.5D; } String sCount = String.valueOf(dFlag); return sCount; } public WflStatus callWorkFlow(BaseHeaderBean oBaseHeaderBean, ArrayList arylstDetailBeanArray, String activity, String initiatedFlag) throws EnrgiseApplicationException, EnrgiseSystemException { try { WorkFlowFacadeHome oHome = (WorkFlowFacadeHome)WorkFlowServiceLocator.getLocator().getService("WorkFlowFacade"); WorkFlowFacade workFlowFacade = oHome.create(); HrmLvCancHdrBean oHdrBean = (HrmLvCancHdrBean)oBaseHeaderBean; WflResourceImpl wflResourceImpl = new WflResourceImpl(); wflResourceImpl.setEmployeeId(this.oUserInfo.getUserTypeId()); WflSiteImpl wflSiteImpl = new WflSiteImpl(); wflSiteImpl.setSiteId(this.oUserInfo.getSiteId()); wflResourceImpl.setLoginSite((WflSite)wflSiteImpl); WflDocumentInfoImpl wflDocumentInfoImpl = new WflDocumentInfoImpl(); wflDocumentInfoImpl.setRequester((WflResource)wflResourceImpl); wflDocumentInfoImpl.setDocumentId(oHdrBean.getHeaderPrimaryKey()); wflDocumentInfoImpl.setDocumentType("Leave"); wflDocumentInfoImpl.setInitiatedFlag(initiatedFlag); String documentTypeId = workFlowFacade.getDocumentTypeId("LvCncl"); if (documentTypeId == null) throw new EnrgiseSystemException(); if (!EnrgiseUtil.checkString(initiatedFlag)) wflDocumentInfoImpl.setWorkListId(oBaseHeaderBean.getWorkListId()); String activityId = workFlowFacade.getActivityId(activity); if (activityId == null) throw new EnrgiseSystemException(); wflDocumentInfoImpl.setDocumentTypeId(documentTypeId); if (!activity.equalsIgnoreCase("Reject")) { wflDocumentInfoImpl.setDocumentNumber(String.valueOf(String.valueOf("Leave Cancellation No: ").concat(String.valueOf(oHdrBean.getHeaderPrimaryKey()))).concat(String.valueOf("is pending for approval"))); wflDocumentInfoImpl.setDocDesc(String.valueOf("The following document has been pending for approval: Leave Cancellation No:").concat(String.valueOf(oHdrBean.getHeaderPrimaryKey()))); } else if (!activity.equalsIgnoreCase("Approve")) { wflDocumentInfoImpl.setDocumentNumber(String.valueOf(String.valueOf("Leave Cancellation No: ").concat(String.valueOf(oHdrBean.getHeaderPrimaryKey()))).concat(String.valueOf("is pending for rejection"))); wflDocumentInfoImpl.setDocDesc(String.valueOf("The following document has been pending for rejection: Leave Cancellation No:").concat(String.valueOf(oHdrBean.getHeaderPrimaryKey()))); } wflDocumentInfoImpl.setModuleId("8"); wflDocumentInfoImpl.setCreator((WflResource)wflResourceImpl); wflDocumentInfoImpl.setRequesterAction(activityId); HashMap oProp = new HashMap(); oProp.put("1", "1"); wflDocumentInfoImpl.setDocumentAttributes(oProp); WflAuthorizationBean wflAuthBean = workFlowFacade.canDo((WflDocumentInfo)wflDocumentInfoImpl); if (EnrgiseUtil.checkString(wflAuthBean.getErrorCode())) throw new EnrgiseApplicationException(wflAuthBean.getErrorCode()); if (!wflAuthBean.isAuthStatus()) throw new EnrgiseApplicationException("wenrgise.workflow.submit.notauthorized"); WflStatus wflStatus = workFlowFacade.process((WflDocumentInfo)wflDocumentInfoImpl); if (wflStatus.getStatus().equals("Error")) throw new EnrgiseSystemException(); workFlowFacade.remove(); return wflStatus; } catch (RemoteException oRtEx) { throw new EnrgiseSystemException("wenrgise.workflow.connect", oRtEx); } catch (CreateException oCx) { throw new EnrgiseSystemException("wenrgise.workflow.connect", oCx); } catch (RemoveException oRx) { throw new EnrgiseSystemException("wenrgise.workflow.connect", oRx); } } }