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

698 lines
34 KiB
Java

package wenrgise.hrms.ejb.business;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
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.EnrgiseUtil;
import wenrgise.common.utility.MessageKey;
import wenrgise.common.utility.RecordMetaInfo;
import wenrgise.common.utility.UserInfo;
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.HrmEmpClaimDtlBean;
import wenrgise.hrms.bean.HrmEmpClaimHdrBean;
import wenrgise.hrms.vo.HrmEmpClaimQVO;
public class HrmEmpClaimBO extends HrmBaseBO {
public HrmEmpClaimBO() {}
public HrmEmpClaimBO(UserInfo oUserInfo) {
super(oUserInfo);
}
public RecordMetaInfo getHrmEmpClaimDetailMetaInfo(HrmEmpClaimQVO oHrmEmpClaimQVO) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
if (EnrgiseUtil.checkString(oHrmEmpClaimQVO.getHeaderPrimaryKey())) {
String[] sPrimaryKey = oHrmEmpClaimQVO.getHeaderPrimaryKey().split(",");
System.out.println(sPrimaryKey[0]);
System.out.println(sPrimaryKey[1]);
oHrmEmpClaimQVO.setClaimCodeId(sPrimaryKey[0]);
oHrmEmpClaimQVO.setStartDate(sPrimaryKey[1]);
oHrmEmpClaimQVO.setEndDate(sPrimaryKey[2]);
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHrmEmpClaimQVO.getEmpId()));
arylstParam.add(new DBObject(2, 1, 12, oHrmEmpClaimQVO.getClaimCodeId()));
arylstParam.add(new DBObject(3, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimQVO.getStartDate())));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimQVO.getEndDate())));
arylstParam.add(new DBObject(5, 1, 12, oHrmEmpClaimQVO.getClaimNo()));
arylstParam.add(new DBObject(6, 1, 12, oHrmEmpClaimQVO.getPeriod()));
arylstParam.add(new DBObject(7, 1, 12, oHrmEmpClaimQVO.getEmpDtlId()));
arylstParam.add(new DBObject(8, 2, -5));
arylstParam.add(new DBObject(9, 2, 93));
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, "HRMEMPCLAIM.procHrmEmpClaimDtlCount(?,?,?,?,?,?,?,?,?,?,?,?)");
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 getHrmEmpClaimDetail(HrmEmpClaimQVO oHrmEmpClaimQVO, long lDetailFirstPosition, long lDetailLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
if (EnrgiseUtil.checkString(oHrmEmpClaimQVO.getHeaderPrimaryKey())) {
String[] sPrimaryKey = oHrmEmpClaimQVO.getHeaderPrimaryKey().split(",");
System.out.println(sPrimaryKey[0]);
System.out.println(sPrimaryKey[1]);
oHrmEmpClaimQVO.setClaimCodeId(sPrimaryKey[0]);
oHrmEmpClaimQVO.setStartDate(sPrimaryKey[1]);
oHrmEmpClaimQVO.setEndDate(sPrimaryKey[2]);
}
QueryRow oRow = null;
QueryValue oValue = null;
ArrayList arylstList = null;
Iterator itrBean = null;
ArrayList arylstHrmEmpClaim = null;
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHrmEmpClaimQVO.getEmpId()));
arylstParam.add(new DBObject(2, 1, -5, new Long(lDetailFirstPosition)));
arylstParam.add(new DBObject(3, 1, -5, new Long(lDetailLastPosition)));
arylstParam.add(new DBObject(4, 1, 12, oHrmEmpClaimQVO.getClaimCodeId()));
arylstParam.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimQVO.getStartDate())));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimQVO.getEndDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmEmpClaimQVO.getClaimNo()));
arylstParam.add(new DBObject(8, 1, 12, oHrmEmpClaimQVO.getPeriod()));
arylstParam.add(new DBObject(9, 1, 12, oHrmEmpClaimQVO.getEmpDtlId()));
arylstParam.add(new DBObject(10, 2, -10));
arylstParam.add(new DBObject(11, 2, 12));
arylstParam.add(new DBObject(12, 2, 12));
arylstParam.add(new DBObject(13, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMEMPCLAIM.prochrmempclaimdetail(?,?,?,?,?,?,?,?,?,?,?,?,?)");
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)
arylstHrmEmpClaim = new ArrayList();
count++;
oRow = itrBean.next();
HrmEmpClaimDtlBean oHrmEmpClaimDtlBean = new HrmEmpClaimDtlBean();
oHrmEmpClaimDtlBean.setDetailId(oRow.get("ID").getString());
oHrmEmpClaimDtlBean.setTxtApplnDate(EnrgiseUtil.convertToString(oRow.get("APPLICATION_DATE").getDate()));
oHrmEmpClaimDtlBean.setTxtApprovalDate(EnrgiseUtil.convertToString(oRow.get("SANCTION_DATE").getDate()));
oHrmEmpClaimDtlBean.setTxtAppliedAmount(oRow.get("APPLIED_AMOUNT").getString());
oHrmEmpClaimDtlBean.setTxtApprovedAmount(oRow.get("SANCTIONED_AMOUNT").getString());
oHrmEmpClaimDtlBean.setTxtApproverId(oRow.get("APPROVED_BY").getString());
oHrmEmpClaimDtlBean.setTxtApprovedBy(oRow.get("APPROVER_NAME").getString());
oHrmEmpClaimDtlBean.setTxtEligibleAmount(oRow.get("ELIG_AMT").getString());
oHrmEmpClaimDtlBean.setTxtEmpId(oRow.get("E_PER_DTL_ID").getString());
oHrmEmpClaimDtlBean.setTxtEmployeeName(oRow.get("EMPNAME").getString());
oHrmEmpClaimDtlBean.setTxtEmployeeNo(oRow.get("EMP_NO").getString());
oHrmEmpClaimDtlBean.setTxtPayrollFlag(oRow.get("PAYROLL_FLAG").getString());
oHrmEmpClaimDtlBean.setTxtReimbursementTillDate(oRow.get("REIMBURSED_TILL_DATE").getString());
oHrmEmpClaimDtlBean.setTxtClaimDtlId(oRow.get("CLAIM_DTL_ID").getString());
oHrmEmpClaimDtlBean.setTxtClaimCode(oRow.get("DESCRIPTION").getString());
oHrmEmpClaimDtlBean.setTxtClaimNo(oRow.get("CLAIM_NO").getString());
oHrmEmpClaimDtlBean.setTxtNewRemarks(oRow.get("APPROVER_REMARKS").getString());
arylstHrmEmpClaim.add(oHrmEmpClaimDtlBean);
}
return arylstHrmEmpClaim;
}
public void initializeBOImpl() {
this.headerTable = "HRM_CLAIM_DTL";
}
public void saveDetailImpl(String sHeaderPrimaryKey, String sScreenName, ArrayList oDetailBeanArray) throws EnrgiseSystemException {}
public void saveDetailImpl(BaseHeaderBean oBaseHeaderBean, String sScreenName, ArrayList oDetailBeanArray) throws EnrgiseApplicationException, EnrgiseSystemException {
if (sScreenName.equalsIgnoreCase("HrmEmpClaim"))
saveHrmEmpClaimDetail(oBaseHeaderBean, oDetailBeanArray);
}
public String saveHrmEmpClaimDetail(BaseHeaderBean oBaseHeaderBean, ArrayList arylstDetailBeanArray) throws EnrgiseSystemException {
boolean bInsert = false;
boolean bUpdate = false;
boolean bDelete = false;
ArrayList arylstParameters = new ArrayList();
DBUtilitiesBean oBean1 = null;
DBUtilitiesBean oBean2 = null;
DBUtilitiesBean oBean3 = null;
HrmEmpClaimHdrBean oHrmEmpClaimHdrBean = (HrmEmpClaimHdrBean)oBaseHeaderBean;
Iterator itrBean = arylstDetailBeanArray.iterator();
while (itrBean.hasNext()) {
HrmEmpClaimDtlBean oHrmEmpClaimDtlBean = itrBean.next();
String sEligibleAmount = calculateEligibleAmount(oHrmEmpClaimDtlBean);
String sReimbursedAmount = calculateReimbursedAmount(oHrmEmpClaimHdrBean.getPeriod(), oHrmEmpClaimDtlBean);
if (oHrmEmpClaimDtlBean.getStatus().equals("N")) {
if (!bInsert) {
oBean1 = new DBUtilitiesBean();
oBean1.createBatch("HrmEmpClaim.procupserthrmempclaimdtl(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
bInsert = true;
}
arylstParameters = new ArrayList();
arylstParameters.add(new DBObject(1, 1, 12, "N"));
arylstParameters.add(new DBObject(2, 1, 12, oHrmEmpClaimDtlBean.getTxtClaimDtlId()));
arylstParameters.add(new DBObject(3, 1, 12, null));
arylstParameters.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimDtlBean.getTxtApplnDate())));
arylstParameters.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimDtlBean.getTxtApprovalDate())));
arylstParameters.add(new DBObject(6, 1, 12, oHrmEmpClaimDtlBean.getTxtAppliedAmount()));
arylstParameters.add(new DBObject(7, 1, 12, oHrmEmpClaimDtlBean.getTxtApprovedAmount()));
arylstParameters.add(new DBObject(8, 1, 12, sEligibleAmount));
arylstParameters.add(new DBObject(9, 1, 12, oHrmEmpClaimDtlBean.getTxtApproverId()));
arylstParameters.add(new DBObject(10, 1, 12, oHrmEmpClaimDtlBean.getTxtEmpId()));
arylstParameters.add(new DBObject(11, 1, 12, oHrmEmpClaimDtlBean.getTxtPayrollFlag()));
arylstParameters.add(new DBObject(12, 1, 12, sReimbursedAmount));
arylstParameters.add(new DBObject(13, 1, 12, oHrmEmpClaimDtlBean.getTxtNewRemarks()));
arylstParameters.add(new DBObject(14, 1, 12, oHrmEmpClaimHdrBean.getPeriod()));
arylstParameters.add(new DBObject(15, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParameters.add(new DBObject(16, 1, 12, this.oUserInfo.getSiteId()));
oBean1.addToBatch(arylstParameters);
continue;
}
if (oHrmEmpClaimDtlBean.getStatus().equals("U")) {
if (!bUpdate) {
oBean2 = new DBUtilitiesBean();
oBean2.createBatch("HrmEmpClaim.procupserthrmempclaimdtl(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
bUpdate = true;
}
arylstParameters = new ArrayList();
arylstParameters.add(new DBObject(1, 1, 12, "U"));
arylstParameters.add(new DBObject(2, 1, 12, oHrmEmpClaimDtlBean.getTxtClaimDtlId()));
arylstParameters.add(new DBObject(3, 1, 12, oHrmEmpClaimDtlBean.getDetailId()));
arylstParameters.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimDtlBean.getTxtApplnDate())));
arylstParameters.add(new DBObject(5, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimDtlBean.getTxtApprovalDate())));
arylstParameters.add(new DBObject(6, 1, 12, oHrmEmpClaimDtlBean.getTxtAppliedAmount()));
arylstParameters.add(new DBObject(7, 1, 12, oHrmEmpClaimDtlBean.getTxtApprovedAmount()));
arylstParameters.add(new DBObject(8, 1, 12, sEligibleAmount));
arylstParameters.add(new DBObject(9, 1, 12, oHrmEmpClaimDtlBean.getTxtApproverId()));
arylstParameters.add(new DBObject(10, 1, 12, oHrmEmpClaimDtlBean.getTxtEmpId()));
arylstParameters.add(new DBObject(11, 1, 12, oHrmEmpClaimDtlBean.getTxtPayrollFlag()));
arylstParameters.add(new DBObject(12, 1, 12, sReimbursedAmount));
arylstParameters.add(new DBObject(13, 1, 12, oHrmEmpClaimDtlBean.getTxtNewRemarks()));
arylstParameters.add(new DBObject(14, 1, 12, oHrmEmpClaimHdrBean.getPeriod()));
arylstParameters.add(new DBObject(15, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParameters.add(new DBObject(16, 1, 12, this.oUserInfo.getSiteId()));
oBean2.addToBatch(arylstParameters);
continue;
}
if (oHrmEmpClaimDtlBean.getStatus().equals("D")) {
if (!bDelete) {
oBean3 = new DBUtilitiesBean();
oBean3.createBatch("HrmEmpClaim.procdeletehrmempclaimdtl(?)");
bDelete = true;
}
arylstParameters = new ArrayList();
arylstParameters.add(new DBObject(1, 1, 12, oHrmEmpClaimDtlBean.getDetailId()));
oBean3.addToBatch(arylstParameters);
}
}
if (bInsert)
oBean1.executeBatch();
if (bUpdate)
oBean2.executeBatch();
if (bDelete)
oBean3.executeBatch();
return String.valueOf(String.valueOf(String.valueOf(String.valueOf(oHrmEmpClaimHdrBean.getClaimCodeId()).concat(String.valueOf(","))).concat(String.valueOf(oHrmEmpClaimHdrBean.getStartDate()))).concat(String.valueOf(","))).concat(String.valueOf(oHrmEmpClaimHdrBean.getEndDate()));
}
public void additionalFieldValidationImpl(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList oDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList oErrorList = new ArrayList();
if (bDetailDataChanged)
if (sScreenName.equalsIgnoreCase("HrmEmpClaim")) {
Iterator oIt1 = oDetailBeanArray.iterator();
int rowCount = 1;
while (oIt1.hasNext()) {
HrmEmpClaimDtlBean oHrmEmpClaimDtlBean = oIt1.next();
if (!oHrmEmpClaimDtlBean.getStatus().equalsIgnoreCase("D"))
checkMandatoryDtls(oHrmEmpClaimDtlBean, rowCount, oErrorList);
rowCount++;
}
}
reportError(oErrorList);
}
private void checkMandatoryDtls(HrmEmpClaimDtlBean oHrmEmpClaimDtlBean, int rowCount, ArrayList oErrorList) throws EnrgiseSystemException, EnrgiseApplicationException {
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtAppliedAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtAppliedAmount");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtApplnDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtApplnDate");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtApprovedAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtApprovedAmount");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtApprovalDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtApprovalDate");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtApproverId())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtApprovedBy");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtPayrollFlag())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtPayrollFlag");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtEmployeeNo())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.txtEmployeeNo");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtClaimDtlId())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpClaim.claimCode");
ArrayList oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(new Integer(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
}
public String saveHeaderImpl(BaseHeaderBean oBaseHeaderBean, String param1) 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 updateHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException {}
public String saveNewHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException {
return new String();
}
public void additionalBusinessValidationImpl(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList oDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList oList = new ArrayList();
HrmEmpClaimHdrBean oHrmEmpClaimHdrBean = (HrmEmpClaimHdrBean)oBaseHeaderBean;
if (bDetailDataChanged) {
if (!isCheckDate(oHrmEmpClaimHdrBean.getPeriod())) {
ArrayList arylstParams = new ArrayList();
oList.add(new EnrgiseMessageKeyException("hrm.HrmEmpClaim.notAllowed", arylstParams, "E"));
}
if (sScreenName.equalsIgnoreCase("HrmEmpClaim")) {
Iterator oIt1 = oDetailBeanArray.iterator();
int n = oDetailBeanArray.size();
int rowCount = 1;
while (oIt1.hasNext()) {
HrmEmpClaimDtlBean oHrmEmpClaimDtlBean = oIt1.next();
if (oHrmEmpClaimDtlBean.getStatus().equalsIgnoreCase("N")) {
String sElig = calculateEligibleAmount(oHrmEmpClaimDtlBean);
String sReim = calculateReimbursedAmount(oHrmEmpClaimHdrBean.getPeriod(), oHrmEmpClaimDtlBean);
String sApp = oHrmEmpClaimDtlBean.getTxtAppliedAmount();
String sSanc = oHrmEmpClaimDtlBean.getTxtApprovedAmount();
double reimbTillDate = Double.parseDouble(sReim) - Double.parseDouble(sSanc);
if (Double.parseDouble(sElig) < Double.parseDouble(sReim)) {
MessageKey oMessageKey = new MessageKey();
ArrayList oParams = new ArrayList();
ArrayList oParams1 = new ArrayList();
oParams.add(String.valueOf(rowCount));
oParams1.add(String.valueOf(sElig));
oParams1.add(String.valueOf(reimbTillDate));
oList.add(new EnrgiseMessageKeyException("hrm.HrmEmpClaim.validate", oParams, "E"));
oList.add(new EnrgiseMessageKeyException("hrm.HrmEmpClaim.validate2", oParams1, "E"));
}
if (Double.parseDouble(sSanc) > Double.parseDouble(sApp)) {
MessageKey oMessageKey = new MessageKey();
ArrayList oParams = new ArrayList();
oParams.add(String.valueOf(rowCount));
oList.add(new EnrgiseMessageKeyException("hrm.HrmEmpClaim.validate1", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmEmpClaimDtlBean.getTxtApprovalDate()))
if (rowCount < n - 1) {
HrmEmpClaimDtlBean oHrmEmpClaimDtlBean1 = oDetailBeanArray.get(rowCount + 1);
if (EnrgiseUtil.checkString(oHrmEmpClaimDtlBean1.getTxtApplnDate()))
oList.add(new EnrgiseApplicationException("hrm.HrmEmpClaim.date.value"));
}
}
rowCount++;
}
reportError(oList);
}
}
}
private boolean isCheckDate(String period) throws EnrgiseApplicationException, EnrgiseSystemException {
HrmCommonBO oBo = new HrmCommonBO();
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, period));
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, "HRMEMPCLAIM.procCheckDate(?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
int iVal = ((Integer)oOutObject.getObject()).intValue();
boolean sReturnValue = !(iVal == 0);
return sReturnValue;
}
public LovVO getHrmEmpClaimDtlCodeLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmEmpClaim.claimCode");
oLovVO.setHeaderList(arylstHeaderList);
ArrayList arylstVisibility = new ArrayList();
arylstVisibility.add("H");
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, "HRMEMPCLAIM.procGetClaimCodeLOVdata(?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
Iterator iter = arylstParam.iterator();
while (iter.hasNext()) {
if (count == 0)
arylstParam = new ArrayList();
count++;
oRow = (QueryRow)iter.next();
LOVBean oLOVBean = new LOVBean();
oLOVBean.setDetailField1(oRow.get("ID").getString());
oLOVBean.setDetailField2(oRow.get("CLAIM_CODE").getString());
arylstParam.add(oLOVBean);
}
oLovVO.setDetailList(arylstParam);
return oLovVO;
}
public LovVO getHrmEmpClaimEmpLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmEmpClaim.txtEmployeeNo");
arylstHeaderList.add("hrm.HrmEmpClaim.txtEmployeeName");
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();
String sEmpId = new String();
if (oLovQueryVO.getProperty("SelUser") != null)
sEmpId = oLovQueryVO.getProperty("SelUser");
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, sEmpId));
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, "HRMEMPCLAIM.procGetEmpLOVdata(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
Iterator iter = arylstParam.iterator();
while (iter.hasNext()) {
if (count == 0)
arylstParam = new ArrayList();
count++;
oRow = (QueryRow)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());
arylstParam.add(oLOVBean);
}
oLovVO.setDetailList(arylstParam);
return oLovVO;
}
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 sAllFlag = getAllFlagInfo(sId);
System.out.println(sAllFlag);
if (sAllFlag.equalsIgnoreCase("Y")) {
arylstNewList.add(oLOVBean);
continue;
}
String sClaimId = oLOVBean.getDetailField1();
String sQuery = String.valueOf(" Select ELIG_SQL as ELIG_SQL from HRM_CLAIM_DTL where ID= ").concat(String.valueOf(sClaimId));
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 sEmpId = oLovQueryVO.getProperty("txtEmpId");
StringBuffer s = new StringBuffer(sSql);
s.replace(s.lastIndexOf("?"), s.lastIndexOf("?") + 1, sEmpId);
System.out.println(s);
ArrayList arylstList2 = oBean.executeQuery(s.toString());
if (arylstList2.size() != 0)
arylstNewList.add(oLOVBean);
}
}
}
return arylstNewList;
}
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, "HRMEMPCLAIM.proc_GetAllFlag(?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
ArrayList oList = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = oList.iterator();
while (itrBean.hasNext()) {
oRow = itrBean.next();
sAllFlag = oRow.get("ALL_FLAG").getString();
}
return sAllFlag;
}
public LovVO getHrmEmpClaimCodeLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("ID");
arylstHeaderList.add("hrm.HrmEmpClaim.claimCode");
oLovVO.setHeaderList(arylstHeaderList);
ArrayList arylstVisibility = new ArrayList();
arylstVisibility.add("H");
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, "HRMEMPCLAIM.procGetClaimCodeLOVdata(?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
Iterator iter = arylstParam.iterator();
while (iter.hasNext()) {
if (count == 0)
arylstParam = new ArrayList();
count++;
oRow = (QueryRow)iter.next();
LOVBean oLOVBean = new LOVBean();
oLOVBean.setDetailField1(oRow.get("ID").getString());
oLOVBean.setDetailField2(oRow.get("CLAIM_CODE").getString());
arylstParam.add(oLOVBean);
}
oLovVO.setDetailList(arylstParam);
return oLovVO;
}
public LovVO getHrmEmpClaimNoLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("hrm.HrmEmpClaim.txtClaimNo");
oLovVO.setHeaderList(arylstHeaderList);
ArrayList arylstVisibility = new ArrayList();
arylstVisibility.add("V");
oLovVO.setVisibilityList(arylstVisibility);
int count = 0;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sQuerySearch1 = new String();
if (oLovQueryVO.getSearchField1() != null)
sQuerySearch1 = oLovQueryVO.getSearchField1();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, sQuerySearch1));
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, "HRMEMPCLAIM.procGetClaimNoLOVdata(?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
QueryRow oRow = null;
Iterator iter = arylstParam.iterator();
while (iter.hasNext()) {
if (count == 0)
arylstParam = new ArrayList();
count++;
oRow = (QueryRow)iter.next();
LOVBean oLOVBean = new LOVBean();
oLOVBean.setDetailField1(oRow.get("CLAIM_NO").getString());
arylstParam.add(oLOVBean);
}
oLovVO.setDetailList(arylstParam);
return oLovVO;
}
private String calculateEligibleAmount(HrmEmpClaimDtlBean oHrmEmpClaimDtlBean) throws EnrgiseSystemException {
ArrayList oList = new ArrayList();
ArrayList oList1 = new ArrayList();
ArrayList oParameters1 = new ArrayList();
ArrayList oOutArray1 = new ArrayList();
DBUtilitiesBean oBean1 = new DBUtilitiesBean();
QueryRow oRow1 = null;
String sEligAmount = new String();
String sEligFactor = new String();
String sFlatAmt = new String();
String sMaxAmt = new String();
String sClaimCodeId = oHrmEmpClaimDtlBean.getTxtClaimDtlId();
int count2 = 0;
oParameters1 = new ArrayList();
oParameters1.add(new DBObject(1, 1, 12, oHrmEmpClaimDtlBean.getTxtEmpId()));
oParameters1.add(new DBObject(2, 1, 12, sClaimCodeId));
oParameters1.add(new DBObject(3, 2, -10));
oParameters1.add(new DBObject(4, 2, 12));
oParameters1.add(new DBObject(5, 2, 12));
oParameters1.add(new DBObject(6, 2, 4));
oOutArray1 = oBean1.callProc(oParameters1, "HRMEMPCLAIM.procCalculateEligAmt(?,?,?,?,?,?)");
oList1 = (ArrayList)((DBObject)oOutArray1.get(0)).getObject();
if (oList1.size() == 0)
return "0";
count2 = 0;
Iterator oIt1 = oList1.iterator();
while (oIt1.hasNext()) {
count2++;
oRow1 = oIt1.next();
sEligFactor = oRow1.get("GREATER_LESSER_FLAG").getString();
sFlatAmt = oRow1.get("FLAT_AMOUNT").getString();
sMaxAmt = oRow1.get("MAX_AMT").getString();
}
if (String.valueOf(oRow1.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("F"))
sEligAmount = sFlatAmt;
if (String.valueOf(oRow1.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("G"))
if (Integer.parseInt(sFlatAmt) > Integer.parseInt(sMaxAmt)) {
sEligAmount = sFlatAmt;
} else {
sEligAmount = sMaxAmt;
}
if (String.valueOf(oRow1.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("L"))
if (Integer.parseInt(sFlatAmt) < Integer.parseInt(sMaxAmt)) {
sEligAmount = sFlatAmt;
} else {
sEligAmount = sMaxAmt;
}
return sEligAmount;
}
private String calculateReimbursedAmount(String period, HrmEmpClaimDtlBean oHrmEmpClaimDtlBean) throws EnrgiseSystemException {
ArrayList oList = new ArrayList();
ArrayList oList1 = new ArrayList();
ArrayList oParameters1 = new ArrayList();
ArrayList oOutArray1 = new ArrayList();
DBUtilitiesBean oBean1 = new DBUtilitiesBean();
QueryRow oRow1 = null;
String sReimAmount = new String();
String sClaimCodeId = oHrmEmpClaimDtlBean.getTxtClaimDtlId();
oParameters1 = new ArrayList();
oParameters1.add(new DBObject(1, 1, 12, oHrmEmpClaimDtlBean.getTxtEmpId()));
oParameters1.add(new DBObject(2, 1, 12, sClaimCodeId));
oParameters1.add(new DBObject(3, 1, 12, oHrmEmpClaimDtlBean.getTxtApprovedAmount()));
oParameters1.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmEmpClaimDtlBean.getTxtApplnDate())));
oParameters1.add(new DBObject(5, 1, 12, oHrmEmpClaimDtlBean.getDetailId()));
oParameters1.add(new DBObject(6, 1, 12, period));
oParameters1.add(new DBObject(7, 2, 12));
oParameters1.add(new DBObject(8, 2, 12));
oParameters1.add(new DBObject(9, 2, 12));
oParameters1.add(new DBObject(10, 2, 4));
oOutArray1 = oBean1.callProc(oParameters1, "HRMEMPCLAIM.procCalculateReimbursedAmt(?,?,?,?,?,?,?,?,?,?)");
DBObject oObj = oOutArray1.get(0);
sReimAmount = oObj.getObject().toString();
return sReimAmount;
}
}