Files
HRMS/hrmsEjb/wenrgise/hrms/ejb/business/HrmLvApplnBO.java
2025-07-28 13:56:49 +05:30

1777 lines
92 KiB
Java

package wenrgise.hrms.ejb.business;
import java.rmi.RemoteException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
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.WorkFlowServiceLocator2;
import wenrgise.common.vo.BaseDetailVO;
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.HrmLvApplnDtlBean;
import wenrgise.hrms.bean.HrmLvApplnHdrBean;
import wenrgise.hrms.bean.HrmLvApplnQueryDtlBean;
import wenrgise.hrms.bean.HrmLvMstHdrBean;
import wenrgise.hrms.vo.HrmLvApplnQVO;
import wenrgise.hrms.vo.HrmLvApplnQueryQVO;
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.WorkFlowFacade2;
import wenrgise.workflow.ejb.facade.WorkFlowFacade2Home;
public class HrmLvApplnBO extends HrmBaseBO {
private ArrayList arylstDtlBean;
private boolean bNoDetailView = false;
public HrmLvApplnBO() {}
public HrmLvApplnBO(UserInfo oUserInfo) {
super(oUserInfo);
}
public RecordMetaInfo getEmpLeaveApplicationQueryDetailMetaInfo(HrmLvApplnQueryQVO oHrmLvApplnQueryQVO) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String lvType = oHrmLvApplnQueryQVO.getLeaveCode();
String empNo = oHrmLvApplnQueryQVO.getEmployeeNo();
String status = oHrmLvApplnQueryQVO.getStatusOfLeave();
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(oHrmLvApplnQueryQVO.getFromDate())));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnQueryQVO.getToDate())));
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, "HRMLVAPPLN.proc_HrLeaveAppQueryDtlCount(?,?,?,?,?,?,?,?,?,?)");
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 getHrEmpLeaveApplicationQueryDetail(HrmLvApplnQueryQVO oHrmLvApplnQueryQVO, long lDetailFirstPosition, long lDetailLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String lvType = oHrmLvApplnQueryQVO.getLeaveCode();
String empNo = oHrmLvApplnQueryQVO.getEmployeeNo();
String status = oHrmLvApplnQueryQVO.getStatusOfLeave();
QueryRow oRow = null;
QueryValue oValue = null;
ArrayList arylstList = null;
Iterator itrBean = null;
ArrayList arylstEmpLeaveApplQueryDetail = 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(oHrmLvApplnQueryQVO.getFromDate())));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnQueryQVO.getToDate())));
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, "HRMLVAPPLN.proc_HrLeaveAppQueryDtl(?,?,?,?,?,?,?,?,?,?,?)");
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)
arylstEmpLeaveApplQueryDetail = new ArrayList();
count++;
oRow = itrBean.next();
HrmLvApplnQueryDtlBean oHrmLvApplnQueryDtlBean = new HrmLvApplnQueryDtlBean();
oHrmLvApplnQueryDtlBean.setTxtTransId(oRow.get("ID").getString());
oHrmLvApplnQueryDtlBean.setTxtLeaveCodes(oRow.get("LEAVE_DESCRIPTION").getString());
oHrmLvApplnQueryDtlBean.setTxtLeaveStatus(oRow.get("APPROVED_FLAG").getString());
oHrmLvApplnQueryDtlBean.setTxtAppliedLeaveDate(EnrgiseUtil.convertToString(oRow.get("DATE_APPLIED").getDate()));
arylstEmpLeaveApplQueryDetail.add(oHrmLvApplnQueryDtlBean);
}
return arylstEmpLeaveApplQueryDetail;
}
public RecordMetaInfo getEmpLeaveApplicationQueryScreenDetailMetaInfo(HrmLvApplnQVO oHrmLvApplnQVO) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sTransId = oHrmLvApplnQVO.getTransId();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHrmLvApplnQVO.getHeaderPrimaryKey()));
arylstParam.add(new DBObject(2, 1, 12, sTransId));
arylstParam.add(new DBObject(3, 1, 12, oHrmLvApplnQVO.getLeaveCodes()));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnQVO.getFromAppDate())));
arylstParam.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnQVO.getToAppDate())));
arylstParam.add(new DBObject(6, 1, 12, oHrmLvApplnQVO.getEmployeeNumber()));
arylstParam.add(new DBObject(7, 2, -5));
arylstParam.add(new DBObject(8, 2, 93));
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, "HRMLVAPPLN.proc_HrLeaveAppQryScreenDtlCnt(?,?,?,?,?,?,?,?,?,?,?)");
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 getHrEmpLeaveApplicationQueryScreenDetail(HrmLvApplnQVO oHrmLvApplnQVO, long lStartPosition, long lLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sTransId = oHrmLvApplnQVO.getTransId();
QueryRow oRow = null;
QueryValue oValue = null;
ArrayList arylstList = null;
Iterator itrBean = null;
ArrayList arylstEmpLeaveApplQueryScreenDetail = 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, oHrmLvApplnQVO.getHeaderPrimaryKey()));
arylstParam.add(new DBObject(4, 1, 12, sTransId));
arylstParam.add(new DBObject(5, 1, 12, oHrmLvApplnQVO.getLeaveCodes()));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnQVO.getFromAppDate())));
arylstParam.add(new DBObject(7, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnQVO.getToAppDate())));
arylstParam.add(new DBObject(8, 1, 12, oHrmLvApplnQVO.getEmployeeNumber()));
arylstParam.add(new DBObject(9, 2, -10));
arylstParam.add(new DBObject(10, 2, 12));
arylstParam.add(new DBObject(11, 2, 12));
arylstParam.add(new DBObject(12, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVAPPLN.proc_HrLeaveAppQueryScreenDtl(?,?,?,?,?,?,?,?,?,?,?,?)");
arylstList = (ArrayList)((DBObject)arylstOutArray.get(0)).getObject();
if (arylstList.size() == 0)
throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M");
count = 0;
itrBean = arylstList.iterator();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
while (itrBean.hasNext()) {
if (count == 0)
arylstEmpLeaveApplQueryScreenDetail = new ArrayList();
count++;
oRow = itrBean.next();
HrmLvApplnHdrBean oHrmLvApplnHdrBean = new HrmLvApplnHdrBean();
oHrmLvApplnHdrBean.setEmployeeNumber(oRow.get("EMP_NO").getString());
oHrmLvApplnHdrBean.setFirstName(oRow.get("FIRST_NAME").getString());
oHrmLvApplnHdrBean.setMiddleName(oRow.get("MIDDLE_NAME").getString());
oHrmLvApplnHdrBean.setLastName(oRow.get("LAST_NAME").getString());
oHrmLvApplnHdrBean.setGrade(oRow.get("GRADE").getString());
oHrmLvApplnHdrBean.setLocation(oRow.get("LOCATION").getString());
oHrmLvApplnHdrBean.setDesignation(oRow.get("DESIGNATION").getString());
oHrmLvApplnHdrBean.setSiteId(oRow.get("SITE_ID").getString());
oHrmLvApplnHdrBean.setHeaderPrimaryKey(oRow.get("ID").getString());
oHrmLvApplnHdrBean.setTransacId(oRow.get("ID").getString());
oHrmLvApplnHdrBean.setLeaveCodes(oRow.get("LEAVE_DESCRIPTION").getString());
oHrmLvApplnHdrBean.setLeaveTypeId(oRow.get("lv_attr_id").getString());
oHrmLvApplnHdrBean.setDescription(oRow.get("NAME").getString());
oHrmLvApplnHdrBean.setEligAmount(oRow.get("ELIG_AMT").getString());
oHrmLvApplnHdrBean.setDateApplied(EnrgiseUtil.convertToString(oRow.get("DATE_APPLIED").getDate()));
oHrmLvApplnHdrBean.setFromAppDate(EnrgiseUtil.convertToString(oRow.get("FROM_DATE").getDate()));
oHrmLvApplnHdrBean.setToAppDate(EnrgiseUtil.convertToString(oRow.get("TO_DATE").getDate()));
double dDays = Double.parseDouble(oRow.get("NO_OF_DAYS").getString());
oHrmLvApplnHdrBean.setDays(String.valueOf(dDays));
oHrmLvApplnHdrBean.setEmployeeId(oRow.get("E_PER_DTL_ID").getString());
oHrmLvApplnHdrBean.setPurpose(oRow.get("PURPOSE").getString());
oHrmLvApplnHdrBean.setStatusOfLeaves(oRow.get("APPROVED_FLAG").getString());
oHrmLvApplnHdrBean.setRemarks(oRow.get("REJECTION_REMARK").getString());
oHrmLvApplnHdrBean.setAddress(oRow.get("ADDRESS_FOR_COMM").getString());
oHrmLvApplnHdrBean.setPhone(oRow.get("PHONE").getString());
oHrmLvApplnHdrBean.setLtaFlag(String.valueOf(oRow.get("LTA_FLAG").getString()).equalsIgnoreCase("Y") ? "on" : "off");
oHrmLvApplnHdrBean.setLtaAmount(oRow.get("LTA_AMT").getString());
oHrmLvApplnHdrBean.setItPercentage(oRow.get("IT_PERC").getString());
oHrmLvApplnHdrBean.setOptedFor(oRow.get("OPTED_FOR").getString());
oHrmLvApplnHdrBean.setFromYear(oRow.get("LTA_FROM_YEAR").getString());
oHrmLvApplnHdrBean.setMedFlag(String.valueOf(oRow.get("MED_FLAG").getString()).equalsIgnoreCase("Y") ? "on" : "off");
arylstEmpLeaveApplQueryScreenDetail.add(oHrmLvApplnHdrBean);
}
return arylstEmpLeaveApplQueryScreenDetail;
}
public void initializeBOImpl() {
this.headerTable = "HRM_EMP_LEAVE_TXN";
}
public void saveDetailImpl(String sHeaderPrimaryKey, String sScreenName, ArrayList arylstDetailBeanArray) throws EnrgiseSystemException {
ArrayList oParameters = null;
DBUtilitiesBean oBean = null;
Iterator oIt = arylstDetailBeanArray.iterator();
oBean = new DBUtilitiesBean();
oBean.createBatch("HRMLVAPPLN.proc_InsertLvApplnBreakup(?,?,?,?,?,?)");
while (oIt.hasNext()) {
HrmLvApplnDtlBean oDtlBean = oIt.next();
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey));
oParameters.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(oDtlBean.getTxtDate())));
oParameters.add(new DBObject(3, 1, 12, oDtlBean.getTxtHolidayFlag()));
oParameters.add(new DBObject(4, 1, 4, oDtlBean.getTxtHalfDayFlag()));
oParameters.add(new DBObject(5, 1, 12, this.oUserInfo.getUserTypeId()));
oParameters.add(new DBObject(6, 1, 12, this.oUserInfo.getSiteId()));
oBean.addToBatch(oParameters);
}
oBean.executeBatch();
}
public void updateHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException {}
public String saveNewHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException {
return new String();
}
public void additionalTimestampValidationImpl(BaseHeaderBean param1, Timestamp param2, String param3, String param4, boolean param5, ArrayList param6, boolean param7, Timestamp param8) {}
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();
HrmLvApplnHdrBean oHrmLvApplnHdrBean = (HrmLvApplnHdrBean)oBaseHeaderBean;
this.arylstDtlBean = oHrmLvApplnHdrBean.getDetailArray();
if (this.arylstDtlBean.size() == 0) {
arylstErrorList.add(new EnrgiseApplicationException("hrm.HrmLvAppln.checkBreakUp"));
} else {
processSaveValidation(arylstErrorList, oHrmLvApplnHdrBean.getEmployeeId(), oHrmLvApplnHdrBean.getLeaveTypeId(), oHrmLvApplnHdrBean.getDays(), oHrmLvApplnHdrBean);
}
if (arylstErrorList.size() != 0)
reportError(arylstErrorList);
if (bHeaderDataChanged) {
if (!sScreenMode.equalsIgnoreCase("D")) {
checkUniqueHeader((HrmLvApplnHdrBean)oBaseHeaderBean);
checkDatesConstraint((HrmLvApplnHdrBean)oBaseHeaderBean, arylstErrorList);
checkHeaderConstraint((HrmLvApplnHdrBean)oBaseHeaderBean, arylstErrorList);
if (EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getLtaFlag()))
if (String.valueOf(oHrmLvApplnHdrBean.getLtaFlag()).equalsIgnoreCase("on"))
checkLtaEligibility((HrmLvApplnHdrBean)oBaseHeaderBean, arylstErrorList);
}
if (sScreenMode.equalsIgnoreCase("D"))
if (!oHrmLvApplnHdrBean.getStatusOfLeaves().equalsIgnoreCase("N"))
if (arylstErrorList.isEmpty())
arylstErrorList.add(new EnrgiseApplicationException("wenrgise.common.deletion.rejected"));
}
if (arylstErrorList.size() != 0)
reportError(arylstErrorList);
}
private void checkUniqueHeader(HrmLvApplnHdrBean oHrmLvApplnHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {}
public LovVO getHrmLvAppQryEmpNoLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.employeeNo");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.employeeName");
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();
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, 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_GetLvAppQryEmpLOV(?,?,?,?,?,?)");
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 getHrmLvAppQryLvCdLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.leaveCode");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.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();
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, 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_GetLvAppQryLeaveCdLOV(?,?,?,?,?,?)");
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 LovVO getHrmEmpLvAppLvCdLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.leaveCode");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.leaveDescription");
oLovVO.setHeaderList(arylstHeaderList);
ArrayList arylstVisibility = new ArrayList();
arylstVisibility.add("H");
arylstVisibility.add("V");
arylstVisibility.add("V");
oLovVO.setVisibilityList(arylstVisibility);
int count = 0;
String employeeNumber = null;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sQuerySearch1 = new String();
String sQuerySearch2 = new String();
if (oLovQueryVO.getSearchField1() != null)
sQuerySearch1 = oLovQueryVO.getSearchField1();
if (oLovQueryVO.getSearchField2() != null)
sQuerySearch2 = oLovQueryVO.getSearchField2();
if (oLovQueryVO.getProperty("empId") != null)
employeeNumber = oLovQueryVO.getProperty("empId");
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, employeeNumber));
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, "HRMLVLOV.proc_GetEmpLvAppLeaveCdLOV(?,?,?,?,?,?,?)");
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 String getGenderInfo(String sEmpNo) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sGender = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpNo));
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, "HRMLVAPPLN.proc_GetGenderInfo(?,?,?,?,?)");
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();
sGender = oRow.get("SEX").getString();
}
return sGender;
}
public LovVO getHrmEmpLvAppLvCdInsLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
String sEmpNo = oLovQueryVO.getProperty("empId");
String sSex = getGenderInfo(sEmpNo);
DateUtility d = new DateUtility();
String str = d.getSysDate();
String monOfSysDate = str.substring(3, 5);
String yearOfSysDate = str.substring(6, 10);
String yyyymm = String.valueOf(yearOfSysDate).concat(String.valueOf(monOfSysDate));
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.leaveCode");
arylstHeaderList.add("hrm.HrmLeaveApplicationQuery.leaveDescription");
oLovVO.setHeaderList(arylstHeaderList);
ArrayList arylstVisibility = new ArrayList();
arylstVisibility.add("H");
arylstVisibility.add("V");
arylstVisibility.add("V");
oLovVO.setVisibilityList(arylstVisibility);
int count = 0;
String employeeNumber = null;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sQuerySearch1 = new String();
String sQuerySearch2 = new String();
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, sSex));
arylstParam.add(new DBObject(4, 1, 12, yyyymm));
arylstParam.add(new DBObject(5, 1, 12, sEmpNo));
arylstParam.add(new DBObject(6, 2, -10));
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, "HRMLVLOV.proc_GetLvAppQryLeaveCdInsLOV(?,?,?,?,?,?,?,?,?)");
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("CODE").getString());
oLOVBean.setDetailField3(oRow.get("NAME").getString());
arylstList.add(oLOVBean);
}
arylstList = checkLOVConstraint(arylstList, oLovQueryVO);
oLovVO.setDetailList(arylstList);
return oLovVO;
}
public String saveHeaderImpl(BaseHeaderBean oBaseHeaderBean, String ScreenMode) throws EnrgiseApplicationException, EnrgiseSystemException {
String returnString = null;
String errorMsgFromDB = null;
String sNetAmount = new String();
String sLTAAmount = new String();
ArrayList arylstErrorList = new ArrayList();
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
DateUtility d = new DateUtility();
HrmLvApplnHdrBean oHrmLvApplnHdrBean = (HrmLvApplnHdrBean)oBaseHeaderBean;
if (String.valueOf(oHrmLvApplnHdrBean.getLtaFlag()).equalsIgnoreCase("on")) {
sLTAAmount = calculateLTA(oHrmLvApplnHdrBean);
if (EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getItPercentage())) {
String sIT = oHrmLvApplnHdrBean.getItPercentage();
sNetAmount = String.valueOf(Double.parseDouble(sLTAAmount) - Double.parseDouble(sIT));
} else {
sNetAmount = String.valueOf(Double.parseDouble(sLTAAmount));
}
}
ArrayList arylstDetailArray = oHrmLvApplnHdrBean.getDetailArray();
if (arylstDetailArray.size() == 0)
try {
arylstDetailArray = getLeaveDates(oHrmLvApplnHdrBean);
oHrmLvApplnHdrBean.setDays(getHolidayCount(arylstDetailArray));
this.bNoDetailView = true;
} catch (EnrgiseApplicationException enrgiseApplicationException) {}
if (ScreenMode.equalsIgnoreCase("N")) {
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "N"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLvApplnHdrBean.getEmployeeId()));
arylstParam.add(new DBObject(3, 1, 12, oHrmLvApplnHdrBean.getLeaveTypeId()));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getDateApplied())));
arylstParam.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getFromAppDate())));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getToAppDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLvApplnHdrBean.getDays()));
arylstParam.add(new DBObject(8, 1, 12, oHrmLvApplnHdrBean.getAddress()));
arylstParam.add(new DBObject(9, 1, 12, oHrmLvApplnHdrBean.getPhone()));
arylstParam.add(new DBObject(10, 1, 12, oHrmLvApplnHdrBean.getPurpose()));
arylstParam.add(new DBObject(11, 1, 12, oHrmLvApplnHdrBean.getRemarks()));
arylstParam.add(new DBObject(12, 1, 12, String.valueOf(oHrmLvApplnHdrBean.getLtaFlag()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(13, 1, 12, oHrmLvApplnHdrBean.getOptedFor()));
arylstParam.add(new DBObject(14, 1, 12, oHrmLvApplnHdrBean.getFromYear()));
arylstParam.add(new DBObject(15, 1, 12, oHrmLvApplnHdrBean.getItPercentage()));
arylstParam.add(new DBObject(16, 1, 12, sNetAmount));
arylstParam.add(new DBObject(17, 1, 12, sLTAAmount));
arylstParam.add(new DBObject(18, 1, 12, String.valueOf(oHrmLvApplnHdrBean.getMedFlag()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(19, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParam.add(new DBObject(20, 1, 12, this.oUserInfo.getSiteId()));
arylstParam.add(new DBObject(21, 1, 12, null));
arylstParam.add(new DBObject(22, 2, 12));
arylstParam.add(new DBObject(23, 2, 12));
arylstParam.add(new DBObject(24, 2, 12));
arylstParam.add(new DBObject(25, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVAPPLN.proc_UpsertHrEmpLeaveAppHdr(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
returnString = (String)oOutObject.getObject();
errorMsgFromDB = (String)((DBObject)arylstOutArray.get(2)).getObject();
} else if (ScreenMode.equalsIgnoreCase("U")) {
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "u"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLvApplnHdrBean.getEmployeeId()));
arylstParam.add(new DBObject(3, 1, 12, oHrmLvApplnHdrBean.getLeaveTypeId()));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getDateApplied())));
arylstParam.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getFromAppDate())));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getToAppDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLvApplnHdrBean.getDays()));
arylstParam.add(new DBObject(8, 1, 12, oHrmLvApplnHdrBean.getAddress()));
arylstParam.add(new DBObject(9, 1, 12, oHrmLvApplnHdrBean.getPhone()));
arylstParam.add(new DBObject(10, 1, 12, oHrmLvApplnHdrBean.getPurpose()));
arylstParam.add(new DBObject(11, 1, 12, oHrmLvApplnHdrBean.getRemarks()));
arylstParam.add(new DBObject(12, 1, 12, String.valueOf(oHrmLvApplnHdrBean.getLtaFlag()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(13, 1, 12, oHrmLvApplnHdrBean.getOptedFor()));
arylstParam.add(new DBObject(14, 1, 12, oHrmLvApplnHdrBean.getFromYear()));
arylstParam.add(new DBObject(15, 1, 12, oHrmLvApplnHdrBean.getItPercentage()));
arylstParam.add(new DBObject(16, 1, 12, sNetAmount));
arylstParam.add(new DBObject(17, 1, 12, sLTAAmount));
arylstParam.add(new DBObject(18, 1, 12, String.valueOf(oHrmLvApplnHdrBean.getMedFlag()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(19, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParam.add(new DBObject(20, 1, 12, this.oUserInfo.getSiteId()));
arylstParam.add(new DBObject(21, 1, 12, null));
arylstParam.add(new DBObject(22, 2, 12));
arylstParam.add(new DBObject(23, 2, 12));
arylstParam.add(new DBObject(24, 2, 12));
arylstParam.add(new DBObject(25, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLVAPPLN.proc_UpsertHrEmpLeaveAppHdr(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
returnString = (String)oOutObject.getObject();
errorMsgFromDB = (String)((DBObject)arylstOutArray.get(2)).getObject();
} else if (ScreenMode.equalsIgnoreCase("D")) {
arylstParam.add(new DBObject(1, 1, 12, oHrmLvApplnHdrBean.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, "HRMLVAPPLN.proc_DelHrEmpLeaveAppHdr(?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
returnString = null;
}
System.out.println(String.valueOf("value of error msg from database :").concat(String.valueOf(errorMsgFromDB)));
if (errorMsgFromDB != null && errorMsgFromDB.equalsIgnoreCase("NtElgLTA")) {
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLeaveApplication.notEligibleLTA", null, "E"));
} else if (errorMsgFromDB != null && errorMsgFromDB.equalsIgnoreCase("NtElig2YrLTA")) {
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLeaveApplication.notEligible2YearLTA", null, "E"));
} else if (errorMsgFromDB != null && errorMsgFromDB.equalsIgnoreCase("DupLTA")) {
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLeaveApplication.duplicateLTA", null, "E"));
} else {
oBaseHeaderBean.setHeaderPrimaryKey(returnString);
saveDetailImpl(returnString, (String)null, arylstDetailArray);
}
if (arylstErrorList.size() != 0)
reportError(arylstErrorList);
return returnString;
}
private String calculateLTA(HrmLvApplnHdrBean oHrmLvApplnHdrBean) throws EnrgiseSystemException {
String sLtaAmount = new String();
String sGrossLtaAmount = new String();
int iTotal = 0;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstList = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHrmLvApplnHdrBean.getEmployeeId()));
arylstParam.add(new DBObject(2, 1, 12, oHrmLvApplnHdrBean.getOptedFor()));
arylstParam.add(new DBObject(3, 2, 12));
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, "HRMLVAPPLN.proccalculateltaamount(?,?,?,?,?,?)");
DBObject oLta = arylstOutArray.get(0);
sLtaAmount = ((String)oLta.getObject()).toString();
return sLtaAmount;
}
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();
checkMandatoryHeader((HrmLvApplnHdrBean)oBaseHeaderBean);
if (arylstErrorList.size() != 0)
reportError(arylstErrorList);
}
private void checkMandatoryHeader(HrmLvApplnHdrBean oHrmLvApplnHdrBean) throws EnrgiseSystemException, EnrgiseApplicationException {
ArrayList arylstErrorList = new ArrayList();
ArrayList arylstParams = new ArrayList();
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getLeaveCodes())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.leaveCodes");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", arylstParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getDateApplied())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.dateApplied");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", arylstParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getFromAppDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.fromAppDate");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", arylstParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getToAppDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.toAppDate");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", arylstParams, "E"));
}
if (EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getLtaFlag()))
if (oHrmLvApplnHdrBean.getLtaFlag().equalsIgnoreCase("on")) {
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getOptedFor())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.optedFor");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", arylstParams, "E"));
}
String dateAppliedYear = oHrmLvApplnHdrBean.getDateApplied().substring(7, 11);
int prevYear = Integer.valueOf(dateAppliedYear).intValue() - 1;
String fromYear = oHrmLvApplnHdrBean.getFromYear();
String optedFor = oHrmLvApplnHdrBean.getOptedFor();
if (fromYear.equals(dateAppliedYear) && optedFor.equals("2")) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.dateApplied");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstParams.add(new MessageKey("hrm.HrmLvAppln.fromYear"));
arylstParams.add(new MessageKey("hrm.HrmLvAppln.optedFor"));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLeaveApplication.fromYear.optedFor.validation", arylstParams, "E"));
}
if (!fromYear.equalsIgnoreCase(dateAppliedYear) && !fromYear.equalsIgnoreCase(String.valueOf(prevYear))) {
arylstParams = new ArrayList();
arylstParams.add(new MessageKey("hrm.HrmLvAppln.fromYear"));
arylstParams.add(String.valueOf(prevYear));
arylstParams.add(dateAppliedYear);
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLeaveApplication.fromYear.prevYear.validation", arylstParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getFromYear())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.fromYear");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", arylstParams, "E"));
}
}
if (arylstErrorList.size() != 0)
reportError(arylstErrorList);
}
private void checkLtaEligibility(HrmLvApplnHdrBean oHrmLvApplnHdrBean, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {
if (Float.parseFloat(oHrmLvApplnHdrBean.getDays()) < 5.0D)
arylstErrorList.add(new EnrgiseApplicationException("hrm.HrmLvAppln.ltaElig"));
}
private void checkDatesConstraint(HrmLvApplnHdrBean oHrmLvApplnHdrBean, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
String sAttrId = oHrmLvApplnHdrBean.getLeaveTypeId();
String sCalId = getCalId(sAttrId);
HrmCommonBO oBO = new HrmCommonBO();
String sStartDate = oBO.getStartDate(sCalId, oHrmLvApplnHdrBean.getDateApplied());
String sEndDate = oBO.getEndDate(sCalId, oHrmLvApplnHdrBean.getDateApplied());
if (!oHrmLvApplnHdrBean.getDateApplied().equals(sStartDate)) {
int dateFlag = EnrgiseUtil.compareDates(dateFormat, oHrmLvApplnHdrBean.getDateApplied(), sStartDate);
if (dateFlag == -1 && dateFlag != -2)
arylstErrorList.add(new EnrgiseApplicationException("wenrgise.dateApplied.dateConstraintViolated"));
if (!oHrmLvApplnHdrBean.getDateApplied().equals(sEndDate)) {
int dateFlag1 = EnrgiseUtil.compareDates(dateFormat, sEndDate, oHrmLvApplnHdrBean.getDateApplied());
if (dateFlag1 == -1 && dateFlag1 != -2)
arylstErrorList.add(new EnrgiseApplicationException("wenrgise.dateApplied.dateConstraintViolated"));
}
}
if (!oHrmLvApplnHdrBean.getToAppDate().equals(oHrmLvApplnHdrBean.getFromAppDate())) {
int dateFlag = EnrgiseUtil.compareDates(dateFormat, oHrmLvApplnHdrBean.getToAppDate(), oHrmLvApplnHdrBean.getFromAppDate());
if (dateFlag == -1 && dateFlag != -2)
arylstErrorList.add(new EnrgiseApplicationException("wenrgise.common.dateConstraintViolated"));
}
if (EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getDateApplied())) {
int dateFlag2 = EnrgiseUtil.compareDates(dateFormat, EnrgiseUtil.convertToString(EnrgiseUtil.getSysDate()), oHrmLvApplnHdrBean.getDateApplied());
if (dateFlag2 == -1 && dateFlag2 != -2)
arylstErrorList.add(new EnrgiseApplicationException("hrm.HrmEmpEncash.dateConstraintViolated2"));
}
}
public String getAllFlagInfo(String sAttrId) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sAllFlag = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sAttrId));
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, "HRMLVAPPLN.proc_GetAllFlag(?,?,?,?,?)");
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();
sAllFlag = oRow.get("ALL_FLAG").getString();
}
return sAllFlag;
}
private String getCalId(String sAttrId) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sCalId = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sAttrId));
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, "HRMLVAPPLN.proc_GetCalId(?,?,?,?,?)");
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();
sCalId = oRow.get("CAL_MST_ID").getString();
}
return sCalId;
}
private ArrayList checkLOVConstraint(ArrayList arylstList, LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LOVBean oLOVBean = null;
ArrayList arylstNewList = new ArrayList();
Iterator itrBean = arylstList.iterator();
while (itrBean.hasNext()) {
oLOVBean = itrBean.next();
String sId = oLOVBean.getDetailField1();
String sCode = oLOVBean.getDetailField2();
String sAllFlag = getAllFlagInfo(sId);
if (sAllFlag.equalsIgnoreCase("Y")) {
arylstNewList.add(oLOVBean);
continue;
}
if (sCode.equalsIgnoreCase("CL")) {
arylstNewList.add(oLOVBean);
continue;
}
String sAttrId = oLOVBean.getDetailField1();
String sQuery = String.valueOf(" Select ELIG_SQL as ELIG_SQL from HRM_LEAVE_ATTR_DTL where ID= ").concat(String.valueOf(sAttrId));
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstList1 = oBean.executeQuery(sQuery);
Iterator itrBean1 = arylstList1.iterator();
if (itrBean1.hasNext()) {
QueryRow oRow = itrBean1.next();
String sSql = oRow.get("ELIG_SQL").getString();
if (EnrgiseUtil.checkString(sSql)) {
String sEmpNo = oLovQueryVO.getProperty("employeeNumber");
HrmCommonBO oBO = new HrmCommonBO();
String sEmpId = oBO.getRefList1("HRM_EMP_PERS", "EMP_NO", sEmpNo, "ID");
StringBuffer s = new StringBuffer(sSql);
s.replace(s.lastIndexOf("?"), s.lastIndexOf("?") + 1, sEmpId);
ArrayList arylstList2 = oBean.executeQuery(s.toString());
if (arylstList2.size() != 0)
arylstNewList.add(oLOVBean);
}
}
}
return arylstNewList;
}
public ArrayList getHrLeaveFlagInfo(String sAttrId) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
BaseDetailVO oBaseDetailVO = null;
ArrayList arylstFlagDetail = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sAttrId));
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, "HRMLVAPPLN.proc_GetPreSufIntFlag(?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
ArrayList arylstList = (ArrayList)oOutObject.getObject();
if (arylstList.size() == 0)
arylstFlagDetail = new ArrayList();
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstList.iterator();
while (itrBean.hasNext()) {
if (count == 0)
arylstFlagDetail = new ArrayList();
count++;
oRow = itrBean.next();
HrmLvMstHdrBean oHrmLvMstHdrBean = new HrmLvMstHdrBean();
oHrmLvMstHdrBean.setIntermediateHoliday(oRow.get("intrmdt_hldy_allwd").getString());
oHrmLvMstHdrBean.setPrefixSuffix(oRow.get("prefix_flag").getString());
oHrmLvMstHdrBean.setSuffix(oRow.get("suffix_flag").getString());
oHrmLvMstHdrBean.setMinLeave(oRow.get("min_leave").getString());
arylstFlagDetail.add(oHrmLvMstHdrBean);
}
return arylstFlagDetail;
}
private ArrayList getPrefixDates(String sEmpId, String sWrkgrpId, String sSiteId, String sDate) throws EnrgiseApplicationException, EnrgiseSystemException {
HrmCommonBO oBo = new HrmCommonBO();
ArrayList arylstPrefixList = new ArrayList();
String sPrefixDt = sDate;
Date dDate = oBo.getPreviousDay(sPrefixDt, 1);
sPrefixDt = EnrgiseUtil.convertToString(dDate);
int iHolidayType = 0;
while ((iHolidayType = isHoliday(sEmpId, sWrkgrpId, sSiteId, sPrefixDt)) != 0) {
HrmLvApplnDtlBean oDtlBean = new HrmLvApplnDtlBean();
oDtlBean.setTxtDate(sPrefixDt);
oDtlBean.setDisabtxtDate("true");
String sHolType = Integer.toString(iHolidayType);
oDtlBean.setTxtHalfDayFlag(sHolType);
oDtlBean.setDisabtxtHalfDayFlag("true");
oDtlBean.setTxtHolidayFlag("P");
oDtlBean.setDisabtxtHolidayFlag("true");
oDtlBean.setStatus("N");
arylstPrefixList.add(oDtlBean);
dDate = oBo.getPreviousDay(sPrefixDt, 1);
sPrefixDt = EnrgiseUtil.convertToString(dDate);
}
return arylstPrefixList;
}
private ArrayList getSuffixDates(String sEmpId, String sWrkgrpId, String sSiteId, String sDate) throws EnrgiseApplicationException, EnrgiseSystemException {
HrmCommonBO oBo = new HrmCommonBO();
ArrayList arylstSuffixList = new ArrayList();
String sSuffixDt = sDate;
Date dDate = oBo.getNextDay(sSuffixDt, 1);
sSuffixDt = EnrgiseUtil.convertToString(dDate);
int iHolidayType = 0;
while ((iHolidayType = isHoliday(sEmpId, sWrkgrpId, sSiteId, sSuffixDt)) != 0) {
HrmLvApplnDtlBean oDtlBean = new HrmLvApplnDtlBean();
oDtlBean.setTxtDate(sSuffixDt);
oDtlBean.setDisabtxtDate("true");
String sHolType = Integer.toString(iHolidayType);
oDtlBean.setTxtHalfDayFlag(sHolType);
oDtlBean.setDisabtxtHalfDayFlag("true");
oDtlBean.setTxtHolidayFlag("S");
oDtlBean.setDisabtxtHolidayFlag("true");
oDtlBean.setStatus("N");
arylstSuffixList.add(oDtlBean);
dDate = oBo.getNextDay(sSuffixDt, 1);
sSuffixDt = EnrgiseUtil.convertToString(dDate);
}
return arylstSuffixList;
}
private ArrayList getInterDates(String sEmpId, String sWrkgrpId, String sSiteId, String sDate, int iDateDiff, double dMinLeave, String sInterFlag) throws EnrgiseApplicationException, EnrgiseSystemException {
HrmCommonBO oBO = new HrmCommonBO();
ArrayList arylstInterDtlList = new ArrayList();
DateUtility oDateUtil = new DateUtility();
String sInterDate = sDate;
Date dDate = oBO.getNextDay(sInterDate, 0);
while (iDateDiff-- >= 0) {
int iHolidayType = isHoliday(sEmpId, sWrkgrpId, sSiteId, sInterDate);
if (iHolidayType != 0) {
HrmLvApplnDtlBean oDtlBean = new HrmLvApplnDtlBean();
sInterDate = EnrgiseUtil.convertToString(dDate);
if (sInterFlag.equalsIgnoreCase("Y")) {
oDtlBean.setTxtDate(sInterDate);
oDtlBean.setDisabtxtDate("true");
oDtlBean.setTxtHalfDayFlag(Integer.toString(iHolidayType));
if (dMinLeave < 1.0D) {
oDtlBean.setDisabtxtHalfDayFlag("true");
} else {
oDtlBean.setDisabtxtHalfDayFlag("true");
}
oDtlBean.setDisabtxtHalfDayFlag("true");
oDtlBean.setTxtHolidayFlag("I");
oDtlBean.setDisabtxtHolidayFlag("true");
oDtlBean.setStatus("N");
} else {
oDtlBean.setTxtDate(sInterDate);
oDtlBean.setDisabtxtDate("true");
oDtlBean.setTxtHalfDayFlag("3");
oDtlBean.setDisabtxtHalfDayFlag("true");
oDtlBean.setTxtHolidayFlag("H");
oDtlBean.setDisabtxtHolidayFlag("true");
oDtlBean.setStatus("N");
}
arylstInterDtlList.add(oDtlBean);
} else {
HrmLvApplnDtlBean oDtlBean = new HrmLvApplnDtlBean();
sInterDate = EnrgiseUtil.convertToString(dDate);
oDtlBean.setTxtDate(sInterDate);
oDtlBean.setTxtHalfDayFlag("3");
oDtlBean.setTxtHolidayFlag("W");
oDtlBean.setStatus("N");
arylstInterDtlList.add(oDtlBean);
}
dDate = oBO.getNextDay(sInterDate, 1);
sInterDate = EnrgiseUtil.convertToString(dDate);
}
return arylstInterDtlList;
}
public String getHolCalMstId(String sSiteId, String sFromDate, String sToDate) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sHolCalMstId = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sSiteId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sFromDate)));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sToDate)));
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, "HRMLVAPPLN.proc_GetHolCalId(?,?,?,?,?,?,?)");
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();
sHolCalMstId = oRow.get("ID").getString();
}
return sHolCalMstId;
}
public String getBetHolCount(String sHolCalId, String sFromDate, String sToDate) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sCount = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sHolCalId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sFromDate)));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sToDate)));
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, "HRMLVAPPLN.proc_GetBetHolCount(?,?,?,?,?,?,?)");
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();
sCount = oRow.get("COUNT").getString();
}
return sCount;
}
public String getOutStandingLeaves(String sEmpId, String sLeaveId) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
String sCount = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 12, sLeaveId));
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, "HRMLVAPPLN.procgetempleaves(?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
ArrayList arylstList = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstList.iterator();
if (arylstList.size() == 0) {
sCount = "0";
} else {
while (itrBean.hasNext()) {
oRow = itrBean.next();
sCount = oRow.get("COUNT").getString();
}
}
return sCount;
}
private void checkHeaderConstraint(HrmLvApplnHdrBean oHrmLvApplnHdrBean, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {}
public String approveLeaveAppln(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
String sLeaveAppl = null;
String sStatus = null;
ArrayList arylstErrorList = new ArrayList();
ArrayList arylstParameters = new ArrayList();
HrmLvApplnHdrBean oHdrBean = (HrmLvApplnHdrBean)oBaseHeaderBean;
DBUtilitiesBean oBean = new DBUtilitiesBean();
arylstParameters.add(new DBObject(1, 1, 12, oBaseHeaderBean.getHeaderPrimaryKey()));
arylstParameters.add(new DBObject(2, 1, 12, oHdrBean.getButtonName()));
arylstParameters.add(new DBObject(3, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParameters.add(new DBObject(4, 1, 12, this.oUserInfo.getSiteId()));
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, "HRMLVAPPLN.proc_ApproveEmpLeave(?,?,?,?,?,?,?)");
sLeaveAppl = oBaseHeaderBean.getHeaderPrimaryKey();
return sLeaveAppl;
}
private void processApproveValidation(ArrayList arylstErrorList, String sEmpId, String sLeaveAttrId, String sDays) throws EnrgiseApplicationException, EnrgiseSystemException {
String sStartDate = ((HrmLvApplnDtlBean)this.arylstDtlBean.get(0)).getTxtDate();
String sEndDate = ((HrmLvApplnDtlBean)this.arylstDtlBean.get(this.arylstDtlBean.size() - 1)).getTxtDate();
if (isLeaveOverlappingApprove(sEmpId, sStartDate, sEndDate)) {
ArrayList arylstParams = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.overlappingLeave", arylstParams, "E"));
}
}
public String cancelLeaveAppln(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
String sLeaveAppl = null;
String sStatus = null;
HrmLvApplnHdrBean oHdrBean = (HrmLvApplnHdrBean)oBaseHeaderBean;
if (oHdrBean.getButtonName().equalsIgnoreCase("R")) {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList oErrorList = new ArrayList();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHdrBean.getHeaderPrimaryKey()));
arylstParam.add(new DBObject(2, 2, 12));
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, "HRMLVAPPLN.proccheckcancellation(?,?,?,?,?)");
DBObject oErr = arylstOutArray.get(0);
String sErr = ((String)oErr.getObject()).toString();
if (Integer.parseInt(sErr) == 0) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpEncash.daysEncashed");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.cancellationError", oParams, "E"));
reportError(oErrorList);
} else {
sLeaveAppl = cancelLeaveApplnTxn(oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, arylstDetailBeanArray, bDetailDataChanged, oDetailPicked);
}
}
return sLeaveAppl;
}
private String cancelLeaveApplnTxn(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = null;
HrmLvApplnHdrBean oHrmLvApplnHdrBean = (HrmLvApplnHdrBean)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, oHrmLvApplnHdrBean.getEmployeeId()));
arylstParameters.add(new DBObject(3, 1, 12, oHrmLvApplnHdrBean.getLeaveTypeId()));
arylstParameters.add(new DBObject(4, 1, 12, oHrmLvApplnHdrBean.getDays()));
arylstParameters.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLvApplnHdrBean.getDateApplied())));
arylstParameters.add(new DBObject(6, 2, 12));
arylstParameters.add(new DBObject(7, 2, 12));
arylstParameters.add(new DBObject(8, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParameters, "HRMLVAPPLN.cancelLeave(?,?,?,?,?,?,?,?)");
return sHeaderPrimaryKey;
}
private String approveLeaveApplHdr(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = null;
HrmLvApplnHdrBean oHrmLvApplnHdrBean = (HrmLvApplnHdrBean)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, oHrmLvApplnHdrBean.getEmployeeId()));
arylstParameters.add(new DBObject(3, 1, 12, oHrmLvApplnHdrBean.getLeaveTypeId()));
arylstParameters.add(new DBObject(4, 1, 12, oHrmLvApplnHdrBean.getDays()));
arylstParameters.add(new DBObject(5, 2, 12));
arylstParameters.add(new DBObject(6, 2, 12));
arylstParameters.add(new DBObject(7, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParameters, "HRMLVAPPLN.proc_UpsertApproveLvApplnHdr(?,?,?,?,?,?,?)");
return sHeaderPrimaryKey;
}
private void approveLeaveApplTxn(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = null;
HrmLvApplnHdrBean oHrmLvApplnHdrBean = (HrmLvApplnHdrBean)oBaseHeaderBean;
String sHeaderPrimaryKey = (null != oBaseHeaderBean) ? oBaseHeaderBean.getHeaderPrimaryKey() : "";
oBean = new DBUtilitiesBean();
ArrayList arylstParameters = new ArrayList();
String sFlag = oHrmLvApplnHdrBean.getButtonName();
arylstParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey));
arylstParameters.add(new DBObject(2, 1, 12, oHrmLvApplnHdrBean.getEmployeeId()));
arylstParameters.add(new DBObject(3, 1, 12, oHrmLvApplnHdrBean.getLeaveTypeId()));
arylstParameters.add(new DBObject(4, 1, 12, oHrmLvApplnHdrBean.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, "HRMLVAPPLN.proc_UpsertApproveLvApplnTxn(?,?,?,?,?,?,?)");
}
public ArrayList getLeaveDates(HrmLvApplnHdrBean oHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
if (oHdrBean.getStatusOfLeaves() != null)
if (!oHdrBean.getStatusOfLeaves().equals("N"))
return getAppliedLeaves(oHdrBean.getHeaderPrimaryKey());
HrmCommonBO oBO = new HrmCommonBO();
ArrayList arylstPrefixDtlBean = new ArrayList();
ArrayList arylstIntDtlBean = new ArrayList();
ArrayList arylstSuffixDtlBean = new ArrayList();
ArrayList arylstErrorList = new ArrayList();
ArrayList arylstParams = new ArrayList();
String sFromDate = oHdrBean.getFromAppDate();
String sToDate = oHdrBean.getToAppDate();
String sWrkgrpId = oHdrBean.getDepartment();
String sLeaveAttrId = oHdrBean.getLeaveTypeId();
String sLeaveCode = oHdrBean.getLeaveCodes();
String sCalId = getCalId(sLeaveAttrId);
String sEmpId = oHdrBean.getEmployeeId();
String sSiteId = oHdrBean.getSiteId();
DateUtility oDateUtil = new DateUtility();
int iDateDiff = oDateUtil.dateDiff(oBO.getddmmyyyyDateFormat(sFromDate), oBO.getddmmyyyyDateFormat(sToDate));
if (sFromDate.equals(sToDate))
iDateDiff = 0;
if (arylstErrorList.size() != 0)
reportError(arylstErrorList);
ArrayList arylstFlags = getHrLeaveFlagInfo(sLeaveAttrId);
if (arylstFlags != null) {
HrmLvMstHdrBean oHrmLvMstHdrBean = arylstFlags.get(0);
if (oHrmLvMstHdrBean != null) {
double dMinLeave = Double.parseDouble((oHrmLvMstHdrBean.getMinLeave() == null) ? "0" : oHrmLvMstHdrBean.getMinLeave());
if (oHrmLvMstHdrBean.getPrefixSuffix().equals("Y"))
arylstPrefixDtlBean = getPrefixDates(sEmpId, sWrkgrpId, sSiteId, sFromDate);
if (oHrmLvMstHdrBean.getSuffix().equals("Y"))
arylstSuffixDtlBean = getSuffixDates(sEmpId, sWrkgrpId, sSiteId, sToDate);
String sInterFlag = oHrmLvMstHdrBean.getIntermediateHoliday();
arylstIntDtlBean = getInterDates(sEmpId, sWrkgrpId, sSiteId, sFromDate, iDateDiff, dMinLeave, sInterFlag);
}
}
this.arylstDtlBean = new ArrayList();
for (int iIndex = arylstPrefixDtlBean.size() - 1; iIndex >= 0; iIndex--)
this.arylstDtlBean.add(arylstPrefixDtlBean.get(iIndex));
this.arylstDtlBean.addAll(arylstIntDtlBean);
this.arylstDtlBean.addAll(arylstSuffixDtlBean);
return this.arylstDtlBean;
}
private int isHoliday(String sEmpId, String sWrkgrpId, String sSiteId, String sDate) throws EnrgiseApplicationException, EnrgiseSystemException {
if (isCalendarHoliday(sEmpId, sDate))
return 3;
return isEmployeeHoliday(sEmpId, sDate);
}
private boolean isCalendarHoliday(String sEmpId, String sDate) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sDate)));
arylstParam.add(new DBObject(3, 2, 4));
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, "HRMLVAPPLN.proc_getcalhol(?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iHolCount = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = !(iHolCount == 0);
return sReturnValue;
}
private int isEmployeeHoliday(String sEmpId, String sDate) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sDate)));
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, "HRMLVAPPLN.proc_GetEmpHol(?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
ArrayList arylstList = (ArrayList)oOutObject.getObject();
if (arylstList == null);
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstList.iterator();
HrmCommonBO oComBO = new HrmCommonBO();
int iDayOfWeek = oComBO.getDayOfWeek(sDate);
int iWeekOfMonth = oComBO.getWeekOfMonth(sDate);
while (itrBean.hasNext()) {
oRow = itrBean.next();
if (iDayOfWeek == Integer.parseInt(oRow.get("rest_day1").getString()))
return 3;
if (iDayOfWeek == Integer.parseInt(oRow.get("rest_day2").getString()))
return 3;
if (iDayOfWeek == Integer.parseInt(oRow.get("half_day1").getString()))
return 2;
if (iDayOfWeek == Integer.parseInt(oRow.get("half_day2").getString()))
return 2;
if (iDayOfWeek == Integer.parseInt(oRow.get("rest_week_day1").getString()) && iWeekOfMonth == Integer.parseInt(oRow.get("rest_week1").getString()))
return 3;
if (iDayOfWeek == Integer.parseInt(oRow.get("rest_week_day2").getString()) && iWeekOfMonth == Integer.parseInt(oRow.get("rest_week2").getString()))
return 3;
}
return 0;
}
private int isWorkgroupHoliday(String sWrkgrpId, String sSiteId, String sDate) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sWrkgrpId));
arylstParam.add(new DBObject(2, 1, 12, sSiteId));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sDate)));
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, "HRMLVAPPLN.proc_GetWrkgrpHol(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
ArrayList arylstList = (ArrayList)oOutObject.getObject();
if (arylstList == null);
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstList.iterator();
HrmCommonBO oComBO = new HrmCommonBO();
int iDayOfWeek = oComBO.getDayOfWeek(sDate);
int iWeekOfMonth = oComBO.getWeekOfMonth(sDate);
while (itrBean.hasNext()) {
oRow = itrBean.next();
if (iDayOfWeek == oRow.get("rest_day1").getInt())
return 3;
if (iDayOfWeek == oRow.get("rest_day2").getInt())
return 3;
if (iDayOfWeek == oRow.get("half_day1").getInt())
return 2;
if (iDayOfWeek == oRow.get("half_day2").getInt())
return 2;
if (iDayOfWeek == oRow.get("rest_week_day1").getInt() && iWeekOfMonth == oRow.get("rest_week1").getInt())
return 3;
if (iDayOfWeek == oRow.get("rest_week_day2").getInt() && iWeekOfMonth == oRow.get("rest_week2").getInt())
return 3;
}
return 0;
}
private void processSaveValidation(ArrayList arylstErrorList, String sEmpId, String sLeaveAttrId, String sDays, HrmLvApplnHdrBean oHrmLvApplnHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
if (this.arylstDtlBean == null)
return;
if (this.arylstDtlBean.size() == 0)
return;
if (sLeaveAttrId.equalsIgnoreCase("100200500000662") || sLeaveAttrId.equalsIgnoreCase("200608000000682") || sLeaveAttrId.equalsIgnoreCase("200609000000705"))
if (Float.parseFloat(getOutStandingLeaves(sEmpId, sLeaveAttrId)) < Float.parseFloat(sDays)) {
ArrayList arrayList = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.leaveBalance", arrayList, "E"));
}
if (sLeaveAttrId.equalsIgnoreCase("100200500000662"))
if (Float.parseFloat(sDays) > 4.0D) {
ArrayList arrayList = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.clError", arrayList, "E"));
}
if (sLeaveAttrId.equalsIgnoreCase("200609000000705"))
if (Float.parseFloat(sDays) > 3.0D)
if (!EnrgiseUtil.checkString(oHrmLvApplnHdrBean.getMedFlag()) || !oHrmLvApplnHdrBean.getMedFlag().equalsIgnoreCase("on")) {
ArrayList arrayList = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.slMedError", arrayList, "E"));
}
String sStartDate = ((HrmLvApplnDtlBean)this.arylstDtlBean.get(0)).getTxtDate();
String sEndDate = ((HrmLvApplnDtlBean)this.arylstDtlBean.get(this.arylstDtlBean.size() - 1)).getTxtDate();
if (isLeaveOverlapping(sEmpId, sStartDate, sEndDate)) {
ArrayList arrayList = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.overlappingLeave", arrayList, "E"));
}
if (!isPrefixAssociated(arylstErrorList, sEmpId, sStartDate, sLeaveAttrId, sDays, oHrmLvApplnHdrBean)) {
ArrayList arrayList = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.prefixAssocNotAllowed", arrayList, "E"));
}
if (!isSuffixAssociated(arylstErrorList, sEmpId, sEndDate, sLeaveAttrId, sDays, oHrmLvApplnHdrBean)) {
ArrayList arrayList = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.suffixAssocNotAllowed", arrayList, "E"));
}
String sFromDate = oHrmLvApplnHdrBean.getFromAppDate();
String sToDate = oHrmLvApplnHdrBean.getToAppDate();
String sWrkgrpId = oHrmLvApplnHdrBean.getDepartment();
String sCalId = getCalId(sLeaveAttrId);
String sSiteId = oHrmLvApplnHdrBean.getSiteId();
ArrayList arylstParams = new ArrayList();
HrmCommonBO oBO = new HrmCommonBO();
if (EnrgiseUtil.checkString(sDays))
if (Double.parseDouble(sDays) <= 4) {
if (EnrgiseUtil.compareDates(new SimpleDateFormat("dd-MMM-yyyy"), sToDate, sFromDate) < 0) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.fromAppDate");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.header.dateValidation", arylstParams, "E"));
}
String sCalStartDtForFromDate = oBO.getStartDate(sCalId, sFromDate);
String sCalStartDtForToDate = oBO.getStartDate(sCalId, sToDate);
if (isHoliday(sEmpId, sWrkgrpId, sSiteId, sFromDate) != 0) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.fromAppDate");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.header.startDateHoliday", arylstParams, "E"));
}
if (isHoliday(sEmpId, sWrkgrpId, sSiteId, sToDate) != 0) {
MessageKey oMessageKey = new MessageKey("hrm.HrmLvAppln.fromAppDate");
arylstParams = new ArrayList();
arylstParams.add(oMessageKey);
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.header.endDateHoliday", arylstParams, "E"));
}
}
if (isApproverAbsent(sEmpId))
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.approverNotFound", arylstParams, "E"));
if (isNotEligible(sEmpId, sStartDate, sLeaveAttrId))
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.notEligible", arylstParams, "E"));
Iterator itrDtlArray = this.arylstDtlBean.iterator();
while (itrDtlArray.hasNext()) {
HrmLvApplnDtlBean oDtlBean = itrDtlArray.next();
oDtlBean.getTxtDate();
}
}
private boolean isNotEligible(String sEmpId, String sStartDate, String sLeaveAttrId) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sStartDate)));
arylstParam.add(new DBObject(3, 1, 12, sLeaveAttrId));
arylstParam.add(new DBObject(4, 2, 4));
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, "HRMLVAPPLN.procGetEligibility(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = (iVal == 0);
return sReturnValue;
}
private boolean isApproverAbsent(String sEmpId) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 2, 4));
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, "HRMLVAPPLN.proc_GetApproverId(?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = (iVal == 0);
return sReturnValue;
}
private boolean isLeaveOverlappingApprove(String sEmpId, String sStartDate, String sEndDate) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sStartDate)));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sEndDate)));
arylstParam.add(new DBObject(4, 2, 4));
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, "HRMLVAPPLN.proc_GetOverlappingHolApprove(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = !(iVal == 0);
return sReturnValue;
}
private boolean isLeaveOverlapping(String sEmpId, String sStartDate, String sEndDate) throws EnrgiseApplicationException, EnrgiseSystemException {
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(sStartDate)));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sEndDate)));
arylstParam.add(new DBObject(4, 2, 4));
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, "HRMLVAPPLN.proc_GetOverlappingHol(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = !(iVal == 0);
return sReturnValue;
}
private boolean isPrefixAssociated(ArrayList arylstErrorList, String sEmpId, String sStartDate, String sLeaveAttrId, String sDays, HrmLvApplnHdrBean oHrmLvApplnHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
HrmCommonBO oBo = new HrmCommonBO();
Date dDate = oBo.getPreviousDay(sStartDate, 1);
String sDate = EnrgiseUtil.convertToString(dDate);
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 12, sLeaveAttrId));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sDate)));
arylstParam.add(new DBObject(4, 1, 12, sDays));
arylstParam.add(new DBObject(5, 1, 12, String.valueOf(oHrmLvApplnHdrBean.getMedFlag()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(6, 2, 4));
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, "HRMLVAPPLN.proc_getassociatedholPref(?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = !(iVal == 0);
if (iVal == 2) {
ArrayList arylstParams = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.prefixAssocNotAllowedCL", arylstParams, "E"));
}
if (iVal == 3) {
ArrayList arylstParams = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.MedicalErr", arylstParams, "E"));
}
return sReturnValue;
}
private boolean isSuffixAssociated(ArrayList arylstErrorList, String sEmpId, String sEndDate, String sLeaveAttrId, String sDays, HrmLvApplnHdrBean oHrmLvApplnHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
HrmCommonBO oBo = new HrmCommonBO();
Date dDate = oBo.getNextDay(sEndDate, 1);
String sDate = EnrgiseUtil.convertToString(dDate);
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sEmpId));
arylstParam.add(new DBObject(2, 1, 12, sLeaveAttrId));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(sDate)));
arylstParam.add(new DBObject(4, 1, 12, sDays));
arylstParam.add(new DBObject(5, 1, 12, String.valueOf(oHrmLvApplnHdrBean.getMedFlag()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(6, 2, 4));
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, "HRMLVAPPLN.proc_getassociatedholSuf(?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = !(iVal == 0);
if (iVal == 2) {
ArrayList arylstParams = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.suffixAssocNotAllowedCL", arylstParams, "E"));
}
if (iVal == 3) {
ArrayList arylstParams = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.MedicalErr", arylstParams, "E"));
}
if (iVal == 4) {
ArrayList arylstParams = new ArrayList();
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmLvAppln.onlysicklvallowed", arylstParams, "E"));
}
return sReturnValue;
}
public ArrayList getAppliedLeaves(String sHdrPK) throws EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sHdrPK));
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, "HRMLVAPPLN.proc_GetAppliedLeaves(?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
ArrayList arylstList = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstList.iterator();
ArrayList arylstDtlBean = new ArrayList();
while (itrBean.hasNext()) {
oRow = itrBean.next();
HrmLvApplnDtlBean oDtlBean = new HrmLvApplnDtlBean();
oDtlBean.setDisabtxtDate("true");
oDtlBean.setDisabtxtHolidayFlag("true");
oDtlBean.setDisabtxtHalfDayFlag("true");
oDtlBean.setDetailId(oRow.get("ID").getString());
oDtlBean.setTxtDate(EnrgiseUtil.convertToString(oRow.get("EFFECT_DATE").getDate()));
oDtlBean.setTxtHolidayFlag(oRow.get("WORK_DAY_FLAG").getString());
oDtlBean.setTxtHalfDayFlag(oRow.get("PART_FLAG").getString());
arylstDtlBean.add(oDtlBean);
}
return arylstDtlBean;
}
private String getHolidayCount(ArrayList arylstDtl) {
double dHolidayCount = 0.0D;
if (arylstDtl != null) {
Iterator itrDtlList = arylstDtl.iterator();
while (itrDtlList.hasNext()) {
HrmLvApplnDtlBean oDtlBean = itrDtlList.next();
if (!oDtlBean.getTxtHolidayFlag().equalsIgnoreCase("H")) {
if (!oDtlBean.getTxtHalfDayFlag().equalsIgnoreCase("3")) {
dHolidayCount += 0.5D;
continue;
}
dHolidayCount++;
}
}
}
return Double.toString(dHolidayCount);
}
public WflStatus callWorkFlow(BaseHeaderBean oBaseHeaderBean, ArrayList arylstDetailBeanArray, String activity, String initiatedFlag) throws EnrgiseApplicationException, EnrgiseSystemException {
try {
WorkFlowFacade2Home oHome = (WorkFlowFacade2Home)WorkFlowServiceLocator2.getLocator().getService("WorkFlowFacade2");
WorkFlowFacade2 workFlowFacade = oHome.create();
HrmLvApplnHdrBean oHdrBean = (HrmLvApplnHdrBean)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("Leave");
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 Application For: ").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 Application For:").concat(String.valueOf(oHdrBean.getHeaderPrimaryKey())));
} else if (!activity.equalsIgnoreCase("Approve")) {
wflDocumentInfoImpl.setDocumentNumber(String.valueOf(String.valueOf("Leave Application For: ").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 Application For:").concat(String.valueOf(oHdrBean.getHeaderPrimaryKey())));
}
wflDocumentInfoImpl.setModuleId("8");
wflDocumentInfoImpl.setCreator((WflResource)wflResourceImpl);
wflDocumentInfoImpl.setRequesterAction(activityId);
HashMap oProp = new HashMap();
oProp.put("Leave", oHdrBean.getLeaveTypeId());
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) {
System.out.println(String.valueOf(String.valueOf(String.valueOf("The prblem is ").concat(String.valueOf(oRtEx.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oRtEx.getClass().getName())));
throw new EnrgiseSystemException("wenrgise.workflow.connect", oRtEx);
} catch (CreateException oCx) {
System.out.println(String.valueOf(String.valueOf(String.valueOf("The prblem is ").concat(String.valueOf(oCx.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oCx.getClass().getName())));
throw new EnrgiseSystemException("wenrgise.workflow.connect", oCx);
} catch (RemoveException oRx) {
System.out.println(String.valueOf(String.valueOf(String.valueOf("The prblem is ").concat(String.valueOf(oRx.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oRx.getClass().getName())));
throw new EnrgiseSystemException("wenrgise.workflow.connect", oRx);
} catch (Exception oEx) {
System.out.println(String.valueOf(String.valueOf(String.valueOf("The prblem is ").concat(String.valueOf(oEx.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oEx.getClass().getName())));
throw new EnrgiseSystemException("wenrgise.workflow.connect", oEx);
}
}
public LovVO getHrmLvApplnEmpNoNLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseApplicationException, EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.employeeNo");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.firstName");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.middleName");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.lastName");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.grade");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.designation");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.location");
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");
oLovVO.setVisibilityList(arylstVisibility);
int count = 0;
ArrayList oParameters = new ArrayList();
ArrayList oList = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sQuerySearch1 = new String();
String sQuerySearch2 = new String();
if (oLovQueryVO.getSearchField1() != null)
sQuerySearch1 = oLovQueryVO.getSearchField1();
if (oLovQueryVO.getSearchField2() != null)
sQuerySearch2 = oLovQueryVO.getSearchField2();
String sSiteId = oLovQueryVO.getProperty("ListSiteId");
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, sQuerySearch1));
oParameters.add(new DBObject(2, 1, 12, sQuerySearch2));
oParameters.add(new DBObject(3, 1, 12, sSiteId));
oParameters.add(new DBObject(4, 2, -10));
oParameters.add(new DBObject(5, 2, 12));
oParameters.add(new DBObject(6, 2, 12));
oParameters.add(new DBObject(7, 2, 4));
ArrayList oOutArray = oBean.callProc(oParameters, "hrmlvappln.procGetEmpLOVN(?,?,?,?,?,?,?)");
DBObject oOutObject = oOutArray.get(0);
oList = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
Iterator iter = oList.iterator();
while (iter.hasNext()) {
if (count == 0)
oList = 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("FIRST_NAME").getString());
oLOVBean.setDetailField4(oRow.get("MIDDLE_NAME").getString());
oLOVBean.setDetailField5(oRow.get("LAST_NAME").getString());
oLOVBean.setDetailField6(oRow.get("GRADE").getString());
oLOVBean.setDetailField7(oRow.get("DESIGNATION").getString());
oLOVBean.setDetailField8(oRow.get("LOCATION").getString());
oList.add(oLOVBean);
}
oLovVO.setDetailList(oList);
return oLovVO;
}
public LovVO getHrmLvApplnEmpNoQLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseApplicationException, EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.employeeNo");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.firstName");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.middleName");
arylstHeaderList.add("hrm.HrmEmpPersonalDetails.lastName");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.grade");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.designation");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.location");
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");
oLovVO.setVisibilityList(arylstVisibility);
int count = 0;
ArrayList oParameters = new ArrayList();
ArrayList oList = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sQuerySearch1 = new String();
String sQuerySearch2 = new String();
String sSiteId = new String();
if (oLovQueryVO.getSearchField1() != null)
sQuerySearch1 = oLovQueryVO.getSearchField1();
if (oLovQueryVO.getSearchField2() != null)
sQuerySearch2 = oLovQueryVO.getSearchField2();
sSiteId = oLovQueryVO.getProperty("ListSiteId");
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, sQuerySearch1));
oParameters.add(new DBObject(2, 1, 12, sQuerySearch2));
oParameters.add(new DBObject(3, 1, 12, sSiteId));
oParameters.add(new DBObject(4, 2, -10));
oParameters.add(new DBObject(5, 2, 12));
oParameters.add(new DBObject(6, 2, 12));
oParameters.add(new DBObject(7, 2, 4));
ArrayList oOutArray = oBean.callProc(oParameters, "hrmlvappln.procGetEmpLOVQ(?,?,?,?,?,?,?)");
DBObject oOutObject = oOutArray.get(0);
oList = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
Iterator iter = oList.iterator();
while (iter.hasNext()) {
if (count == 0)
oList = 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("FIRST_NAME").getString());
oLOVBean.setDetailField4(oRow.get("MIDDLE_NAME").getString());
oLOVBean.setDetailField5(oRow.get("LAST_NAME").getString());
oLOVBean.setDetailField6(oRow.get("GRADE").getString());
oLOVBean.setDetailField7(oRow.get("DESIGNATION").getString());
oLOVBean.setDetailField8(oRow.get("LOCATION").getString());
oList.add(oLOVBean);
}
oLovVO.setDetailList(oList);
return oLovVO;
}
}