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

1752 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.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.EnrgiseUtil;
import wenrgise.common.utility.MessageKey;
import wenrgise.common.utility.RecordMetaInfo;
import wenrgise.common.utility.UserInfo;
import wenrgise.common.utility.WorkFlowServiceLocator;
import wenrgise.common.vo.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.HrmLnAppDtlBean;
import wenrgise.hrms.bean.HrmLnAppHdrBean;
import wenrgise.hrms.bean.HrmLnDisDtlBean;
import wenrgise.hrms.bean.HrmLnHblIntDtlBean;
import wenrgise.hrms.vo.HrmLnAppQVO;
import wenrgise.workflow.bean.WflAuthorizationBean;
import wenrgise.workflow.core.WflDocumentInfo;
import wenrgise.workflow.core.WflResource;
import wenrgise.workflow.core.WflSite;
import wenrgise.workflow.core.WflStatus;
import wenrgise.workflow.core.impl.WflDocumentInfoImpl;
import wenrgise.workflow.core.impl.WflResourceImpl;
import wenrgise.workflow.core.impl.WflSiteImpl;
import wenrgise.workflow.ejb.facade.WorkFlowFacade;
import wenrgise.workflow.ejb.facade.WorkFlowFacadeHome;
public class HrmLnAppBO extends HrmBaseBO {
public HrmLnAppBO() {}
public HrmLnAppBO(UserInfo oUserInfo) {
super(oUserInfo);
}
public RecordMetaInfo getHrEmpLoanAppHdrMetaInfo(HrmLnAppQVO oHrmLnAppQVO) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList oParameters = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, oHrmLnAppQVO.getHeaderPrimaryKey()));
oParameters.add(new DBObject(2, 1, 12, oHrmLnAppQVO.getEmployeeNumber()));
oParameters.add(new DBObject(3, 1, 12, oHrmLnAppQVO.getLoanCode()));
oParameters.add(new DBObject(4, 2, -5));
oParameters.add(new DBObject(5, 2, 93));
oParameters.add(new DBObject(6, 2, 12));
oParameters.add(new DBObject(7, 2, 12));
oParameters.add(new DBObject(8, 2, 4));
ArrayList oOutArray = oBean.callProc(oParameters, "HRMLNAPPL.procHrmLnAppHdrCount(?,?,?,?,?,?,?,?)");
RecordMetaInfo oRecordMetaInfo = new RecordMetaInfo();
DBObject oTotalRecord = oOutArray.get(0);
oRecordMetaInfo.setRecordCount(((Long)oTotalRecord.getObject()).longValue());
DBObject oTimeObject = oOutArray.get(1);
oRecordMetaInfo.setOWhenPicked((Timestamp)oTimeObject.getObject());
return oRecordMetaInfo;
}
public ArrayList getHrEmpLoanAppHeader(HrmLnAppQVO oHrmLnAppQVO, long lStartPosition, long lLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList oParameters = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
QueryRow oRow = null;
QueryValue oValue = null;
ArrayList oList = null;
Iterator oIt = null;
ArrayList oEmpLoanAppDetail = null;
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, -5, new Long(lStartPosition)));
oParameters.add(new DBObject(2, 1, -5, new Long(lLastPosition)));
oParameters.add(new DBObject(3, 1, 12, oHrmLnAppQVO.getHeaderPrimaryKey()));
oParameters.add(new DBObject(4, 1, 12, oHrmLnAppQVO.getEmployeeNumber()));
oParameters.add(new DBObject(5, 1, 12, oHrmLnAppQVO.getLoanCode()));
oParameters.add(new DBObject(6, 2, -10));
oParameters.add(new DBObject(7, 2, 12));
oParameters.add(new DBObject(8, 2, 12));
oParameters.add(new DBObject(9, 2, 4));
ArrayList oOutArray = oBean.callProc(oParameters, "HRMLNAPPL.procHrmLnAppHdr(?,?,?,?,?,?,?,?,?)");
oList = (ArrayList)((DBObject)oOutArray.get(0)).getObject();
if (oList.size() == 0)
throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M");
count = 0;
oIt = oList.iterator();
while (oIt.hasNext()) {
if (count == 0)
oEmpLoanAppDetail = new ArrayList();
count++;
oRow = oIt.next();
HrmLnAppHdrBean oHrmLnAppHdrBean = new HrmLnAppHdrBean();
oHrmLnAppHdrBean.setHeaderPrimaryKey(oRow.get("ID").getString());
oHrmLnAppHdrBean.setEmpId(oRow.get("EMP_ID").getString());
oHrmLnAppHdrBean.setEmployeeNumber(oRow.get("EMP_NO").getString());
oHrmLnAppHdrBean.setFirstName(oRow.get("FIRST_NAME").getString());
oHrmLnAppHdrBean.setMiddleName(oRow.get("MIDDLE_NAME").getString());
oHrmLnAppHdrBean.setLastName(oRow.get("LAST_NAME").getString());
oHrmLnAppHdrBean.setGrade(oRow.get("GRADE").getString());
oHrmLnAppHdrBean.setDesignation(oRow.get("DESIGNATION").getString());
oHrmLnAppHdrBean.setLocation(oRow.get("LOCATION").getString());
oHrmLnAppHdrBean.setLoanCode(oRow.get("LOAN_CODE").getString());
oHrmLnAppHdrBean.setLoanDesc(oRow.get("LOAN_NAME").getString());
oHrmLnAppHdrBean.setLoanCodeId(oRow.get("LOAN_ID").getString());
oHrmLnAppHdrBean.setAppliedAmount(oRow.get("APPLIED_AMOUNT").getString());
oHrmLnAppHdrBean.setApplnDate(EnrgiseUtil.convertToString(oRow.get("APPLICATION_DATE").getDate()));
oHrmLnAppHdrBean.setEligibleAmount(oRow.get("ELIG_LOAN_AMT").getString());
oHrmLnAppHdrBean.setFullyRepaid(String.valueOf(oRow.get("FULLY_REPAID_FLAG").getString()).equalsIgnoreCase("Y") ? "on" : "off");
oHrmLnAppHdrBean.setLoanDetails(oRow.get("LOAN_DETAILS").getString());
oHrmLnAppHdrBean.setApproverNoId(oRow.get("APPROVER_ID").getString());
oHrmLnAppHdrBean.setApproverName(oRow.get("APPROVER_NAME").getString());
oHrmLnAppHdrBean.setSanctionedAmount(oRow.get("LOAN_AMOUNT").getString());
oHrmLnAppHdrBean.setSanctionDate(EnrgiseUtil.convertToString(oRow.get("SANCTION_DATE").getDate()));
oHrmLnAppHdrBean.setRemarks(oRow.get("APPROVER_REMARKS").getString());
oHrmLnAppHdrBean.setTotalInst(oRow.get("NO_OF_INSTALMENTS").getString());
oHrmLnAppHdrBean.setTotalPrincipalInst(oRow.get("NO_OF_INST_PRINCIPAL").getString());
oHrmLnAppHdrBean.setTotalInterestInst(oRow.get("NO_OF_INST_INTEREST").getString());
oHrmLnAppHdrBean.setInstAmount(oRow.get("INSTALLMENT_AMOUNT").getString());
oHrmLnAppHdrBean.setPayrollMonth(oRow.get("RECOVERY_YYYYMM").getString());
oHrmLnAppHdrBean.setNoOfInstPaid(oRow.get("NO_OF_INST_PAID").getString());
oHrmLnAppHdrBean.setNoOfInstPrincipalPaid(oRow.get("NO_OF_INST_PAID_PRINCIPAL").getString());
oHrmLnAppHdrBean.setNoOfInstInterestPaid(oRow.get("NO_OF_INST_PAID_INTEREST").getString());
oHrmLnAppHdrBean.setTotalAmountPaid(oRow.get("TOTAL_AMOUNT_PAID").getString());
oHrmLnAppHdrBean.setPrincipalPaid(oRow.get("TOTAL_PRINCIPAL_PAID").getString());
oHrmLnAppHdrBean.setInterestPaid(oRow.get("TOTAL_INTEREST_PAID").getString());
oHrmLnAppHdrBean.setTotalBalance(oRow.get("TOTAL_OUTSTG_BAL").getString());
oHrmLnAppHdrBean.setPrincipalBalance(oRow.get("OUTSTG_BAL_PRINCIPAL").getString());
oHrmLnAppHdrBean.setInterestBalance(oRow.get("OUTSTG_BAL_INTEREST").getString());
oHrmLnAppHdrBean.setHblAppliedFor(oRow.get("HBL_APPLIED_FOR").getString());
oHrmLnAppHdrBean.setHblBookNo(oRow.get("HBL_BOOK_NO").getString());
oHrmLnAppHdrBean.setHblBranhConst(oRow.get("HBL_NEAREST_BRANCH").getString());
oHrmLnAppHdrBean.setHblCity(oRow.get("HBL_CITY").getString());
oHrmLnAppHdrBean.setHblDag(oRow.get("HBL_DAG_CSPLOT").getString());
oHrmLnAppHdrBean.setHblDistrict(oRow.get("HBL_DIST").getString());
oHrmLnAppHdrBean.setHblDocSubmitted(String.valueOf(oRow.get("HBL_DOC_FLAG").getString()).equalsIgnoreCase("Y") ? "on" : "off");
oHrmLnAppHdrBean.setHblKhatian(oRow.get("HBL_KHATIAN").getString());
oHrmLnAppHdrBean.setHblMouza(oRow.get("HBL_MOUZA").getString());
oHrmLnAppHdrBean.setHblNoOfDeed(oRow.get("HBL_DEED_NO").getString());
oHrmLnAppHdrBean.setHblPageNo(oRow.get("HBL_PAGE_NO").getString());
oHrmLnAppHdrBean.setHblParentDeed(oRow.get("HBL_PARENT_DEED_NO").getString());
oHrmLnAppHdrBean.setHblPO(oRow.get("HBL_PO").getString());
oHrmLnAppHdrBean.setHblRegisteredAt(oRow.get("HBL_REGISTER_ADD").getString());
oHrmLnAppHdrBean.setHblVolOfDeed(oRow.get("HBL_DEED_VOL").getString());
oEmpLoanAppDetail.add(oHrmLnAppHdrBean);
}
return oEmpLoanAppDetail;
}
public RecordMetaInfo getHrmLnAppDtlMetaInfo(String lPrimaryKey) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, lPrimaryKey));
arylstParam.add(new DBObject(2, 2, -5));
arylstParam.add(new DBObject(3, 2, 93));
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, "HRMLNAPPL.procHrLnAppDtlCount(?,?,?,?,?,?)");
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 getHrmLnAppDtl(String lPrimaryKey, long lDetailFirstPosition, long lDetailLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
BaseDetailVO oBaseDetailVO = null;
ArrayList arrLoanApp = 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, lPrimaryKey));
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, "HRMLNAPPL.procHrLnAppDtl(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
if (arylstParam.size() == 0)
throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M");
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstParam.iterator();
HrmLnAppDtlBean oHrmLnAppDtlBean = new HrmLnAppDtlBean();
while (itrBean.hasNext()) {
if (count == 0)
arrLoanApp = new ArrayList();
count++;
oRow = (QueryRow)itrBean.next();
oHrmLnAppDtlBean.setDetailId(oRow.get("ID").getString());
oHrmLnAppDtlBean.setAppliedAmount(oRow.get("APPLIED_AMOUNT").getString());
oHrmLnAppDtlBean.setApplnDate(EnrgiseUtil.convertToString(oRow.get("APPLICATION_DATE").getDate()));
oHrmLnAppDtlBean.setApprovedFlag(oRow.get("APPROVED_FLAG").getString());
oHrmLnAppDtlBean.setEligibleAmount(oRow.get("ELIG_LOAN_AMT").getString());
oHrmLnAppDtlBean.setFirstInstDate(EnrgiseUtil.convertToString(oRow.get("FIRST_INSTAL_PAY_DATE").getDate()));
oHrmLnAppDtlBean.setFullyRepaid(String.valueOf(oRow.get("FULLY_REPAID_FLAG").getString()).equalsIgnoreCase("Y") ? "on" : "off");
oHrmLnAppDtlBean.setNoOfInstallment(oRow.get("NO_OF_INSTALMENTS").getString());
oHrmLnAppDtlBean.setPercProperty(oRow.get("PERC_PROPERTY").getString());
oHrmLnAppDtlBean.setPropertyPrice(oRow.get("PROPERTY_PRICE").getString());
oHrmLnAppDtlBean.setReason(oRow.get("REASON").getString());
oHrmLnAppDtlBean.setRemarks(oRow.get("REJECTION_REMARK").getString());
oHrmLnAppDtlBean.setSanctionedAmount(oRow.get("LOAN_AMOUNT").getString());
oHrmLnAppDtlBean.setSanctionDate(EnrgiseUtil.convertToString(oRow.get("SANCTION_DATE").getDate()));
arrLoanApp.add(oHrmLnAppDtlBean);
}
return arrLoanApp;
}
public RecordMetaInfo getHrmLnDisDtlMetaInfo(String lPrimaryKey) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, lPrimaryKey));
arylstParam.add(new DBObject(2, 2, -5));
arylstParam.add(new DBObject(3, 2, 93));
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, "HRMLNAPPL.procHrLnDisDtlCount(?,?,?,?,?,?)");
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 getHrmLnDisDtl(String lPrimaryKey, long lDetailFirstPosition, long lDetailLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
BaseDetailVO oBaseDetailVO = null;
ArrayList arrLoanDisburse = 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, lPrimaryKey));
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, "HRMLNAPPL.procHrLnDisDtl(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
if (arylstParam.size() == 0)
throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M");
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstParam.iterator();
while (itrBean.hasNext()) {
if (count == 0)
arrLoanDisburse = new ArrayList();
count++;
oRow = (QueryRow)itrBean.next();
HrmLnDisDtlBean oHrmLnDisDtlBean = new HrmLnDisDtlBean();
oHrmLnDisDtlBean.setDetailId(oRow.get("ID").getString());
oHrmLnDisDtlBean.setTentativeDisDate(EnrgiseUtil.convertToString(oRow.get("TENTATIVE_DATE").getDate()));
oHrmLnDisDtlBean.setTentativeAmt(oRow.get("TENTATIVE_AMOUNT").getString());
oHrmLnDisDtlBean.setActDisDate(EnrgiseUtil.convertToString(oRow.get("ACTUAL_DATE").getDate()));
oHrmLnDisDtlBean.setActDisAmt(oRow.get("ACTUAL_AMOUNT").getString());
arrLoanDisburse.add(oHrmLnDisDtlBean);
}
return arrLoanDisburse;
}
public RecordMetaInfo getHrmLnHblIntRateMetaInfo(String lPrimaryKey) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, lPrimaryKey));
arylstParam.add(new DBObject(2, 2, -5));
arylstParam.add(new DBObject(3, 2, 93));
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, "HRMLNAPPL.prochrlnHblIntcount(?,?,?,?,?,?)");
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 getHrmLnHblIntRateDtl(String lPrimaryKey, long lDetailFirstPosition, long lDetailLastPosition) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
int count = 0;
BaseDetailVO oBaseDetailVO = null;
ArrayList arrHblIntRate = 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, lPrimaryKey));
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, "HRMLNAPPL.prochrlnHblInt(?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
arylstParam = (ArrayList)oOutObject.getObject();
if (arylstParam.size() == 0)
throw new EnrgiseApplicationException("wenrgise.hrms.norecordfound", "M");
QueryRow oRow = null;
QueryValue oValue = null;
HashMap oColumns = null;
Iterator itrBean = arylstParam.iterator();
while (itrBean.hasNext()) {
if (count == 0)
arrHblIntRate = new ArrayList();
count++;
oRow = (QueryRow)itrBean.next();
HrmLnHblIntDtlBean oHrmLnHblIntDtlBean = new HrmLnHblIntDtlBean();
oHrmLnHblIntDtlBean.setDetailId(oRow.get("ID").getString());
oHrmLnHblIntDtlBean.setTxtFromAmount(oRow.get("amount_from").getString());
oHrmLnHblIntDtlBean.setTxtToAmount(oRow.get("amount_to").getString());
oHrmLnHblIntDtlBean.setTxtPercentage(oRow.get("int_perc").getString());
arrHblIntRate.add(oHrmLnHblIntDtlBean);
}
return arrHblIntRate;
}
public LovVO getHrmLnAppEmpNoQLOVdata(LovQueryVO oLovQueryVO) throws 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 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, "HRMLNAPPL.procGetEmpQLOVdata(?,?,?,?,?,?)");
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("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());
arylstParam.add(oLOVBean);
}
oLovVO.setDetailList(arylstParam);
return oLovVO;
}
public LovVO getHrmLnAppEmpNoLOVdata(LovQueryVO oLovQueryVO) throws 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 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, "HRMLNAPPL.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("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());
arylstParam.add(oLOVBean);
}
oLovVO.setDetailList(arylstParam);
return oLovVO;
}
public LovVO getHrmLnAppLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("Code ID");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.loanCode");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.loanDesc");
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.getSearchField1() != null)
sQuerySearch1 = oLovQueryVO.getSearchField1();
if (oLovQueryVO.getSearchField2() != null)
sQuerySearch2 = oLovQueryVO.getSearchField2();
if (oLovQueryVO.getProperty("empId") != null)
sEmpId = 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, 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, "HRMLNAPPL.procGetHrmLnAppLOVdata(?,?,?,?,?,?,?)");
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("LOAN_ID").getString());
oLOVBean.setDetailField2(oRow.get("LOAN_CODE").getString());
oLOVBean.setDetailField3(oRow.get("LOAN_NAME").getString());
arylstList.add(oLOVBean);
}
oLovVO.setDetailList(arylstList);
return oLovVO;
}
public LovVO getHrmLnAppInsLOVdata(LovQueryVO oLovQueryVO) throws EnrgiseSystemException {
String sEmpId = oLovQueryVO.getProperty("empId");
LovVO oLovVO = new LovVO();
ArrayList arylstHeaderList = new ArrayList();
arylstHeaderList.add("Code ID");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.loanCode");
arylstHeaderList.add("hrm.HrmEmpLoanAppln.loanDesc");
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, 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, "HRMLNAPPL.procGetHrmLnAppInsLOVdata(?,?,?,?,?,?,?)");
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("LOAN_ID").getString());
oLOVBean.setDetailField2(oRow.get("LOAN_CODE").getString());
oLOVBean.setDetailField3(oRow.get("LOAN_NAME").getString());
arylstList.add(oLOVBean);
}
arylstList = checkLOVConstraint(arylstList, oLovQueryVO);
oLovVO.setDetailList(arylstList);
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 sLoanId = oLOVBean.getDetailField1();
String sQuery = String.valueOf(" Select ELIG_SQL as ELIG_SQL from HRM_LOAN_DTL where ID= ").concat(String.valueOf(sLoanId));
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("empId");
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 sLoanId) 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, sLoanId));
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, "HRMLNAPPL.procGetAllFlag(?,?,?,?,?)");
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;
}
public void initializeBOImpl() {
this.headerTable = "HRM_EMP_LOAN";
}
public void saveDetailImpl(String sHeaderPrimaryKey, String sScreenName, ArrayList arylstDetailBeanArray) throws EnrgiseSystemException {
if (sScreenName.equalsIgnoreCase("HrmLnApp"))
saveHrmLnDisDtl(sHeaderPrimaryKey, arylstDetailBeanArray);
if (sScreenName.equalsIgnoreCase("HrmLnAppHblIntRate"))
saveHrmLnHblIntRate(sHeaderPrimaryKey, arylstDetailBeanArray);
}
private void saveHrmLnDisDtl(String sHeaderPrimaryKey, ArrayList arylstDetailBeanArray) throws EnrgiseSystemException {
boolean bInsert = false;
boolean bUpdate = false;
boolean bDelete = false;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = null;
DBUtilitiesBean oBean1 = null;
Iterator itrBean = arylstDetailBeanArray.iterator();
while (itrBean.hasNext()) {
HrmLnDisDtlBean oHrmLnDisDtlBean = itrBean.next();
if (oHrmLnDisDtlBean.getStatus().equals("N")) {
if (!bInsert) {
oBean = new DBUtilitiesBean();
oBean.createBatch("HRMLNAPPL.procUpsertHrmLnDisDtl(?,?,?,?,?,?,?,?,?)");
bInsert = true;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "I"));
arylstParam.add(new DBObject(2, 1, 12, null));
arylstParam.add(new DBObject(3, 1, 12, sHeaderPrimaryKey));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnDisDtlBean.getTentativeDisDate())));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnDisDtlBean.getTentativeAmt()));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnDisDtlBean.getActDisDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLnDisDtlBean.getActDisAmt()));
arylstParam.add(new DBObject(8, 1, 12, this.oUserInfo.getUserId()));
arylstParam.add(new DBObject(9, 1, 12, this.oUserInfo.getSiteId()));
oBean.addToBatch(arylstParam);
continue;
}
if (oHrmLnDisDtlBean.getStatus().equals("U")) {
if (!bUpdate) {
oBean = new DBUtilitiesBean();
oBean.createBatch("HRMLNAPPL.procUpsertHrmLnDisDtl(?,?,?,?,?,?,?,?,?)");
bUpdate = true;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "U"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLnDisDtlBean.getDetailId()));
arylstParam.add(new DBObject(3, 1, 12, sHeaderPrimaryKey));
arylstParam.add(new DBObject(4, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnDisDtlBean.getTentativeDisDate())));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnDisDtlBean.getTentativeAmt()));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnDisDtlBean.getActDisDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLnDisDtlBean.getActDisAmt()));
arylstParam.add(new DBObject(8, 1, 12, this.oUserInfo.getUserId()));
arylstParam.add(new DBObject(9, 1, 12, this.oUserInfo.getSiteId()));
oBean.addToBatch(arylstParam);
continue;
}
if (oHrmLnDisDtlBean.getStatus().equals("D")) {
if (!bDelete) {
oBean1 = new DBUtilitiesBean();
oBean1.createBatch("HRMLNAPPL.procDeleteHrmLnDisDtl(?)");
bDelete = true;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHrmLnDisDtlBean.getDetailId()));
oBean1.addToBatch(arylstParam);
}
}
if (bInsert)
oBean.executeBatch();
if (bUpdate)
oBean.executeBatch();
if (bDelete)
oBean1.executeBatch();
}
private void saveHrmLnHblIntRate(String sHeaderPrimaryKey, ArrayList arylstDetailBeanArray) throws EnrgiseSystemException {
boolean bInsert = false;
boolean bUpdate = false;
boolean bDelete = false;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = null;
DBUtilitiesBean oBean1 = null;
DBUtilitiesBean oBean2 = null;
Iterator itrBean = arylstDetailBeanArray.iterator();
while (itrBean.hasNext()) {
HrmLnHblIntDtlBean oHrmLnHblIntDtlBean = itrBean.next();
if (oHrmLnHblIntDtlBean.getStatus().equals("N")) {
if (!bInsert) {
oBean = new DBUtilitiesBean();
oBean.createBatch("HRMLNAPPL.procupserthrmHblInt(?,?,?,?,?,?,?,?)");
bInsert = true;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "I"));
arylstParam.add(new DBObject(2, 1, 12, null));
arylstParam.add(new DBObject(3, 1, 12, sHeaderPrimaryKey));
arylstParam.add(new DBObject(4, 1, 12, oHrmLnHblIntDtlBean.getTxtFromAmount()));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnHblIntDtlBean.getTxtToAmount()));
arylstParam.add(new DBObject(6, 1, 12, oHrmLnHblIntDtlBean.getTxtPercentage()));
arylstParam.add(new DBObject(7, 1, 12, this.oUserInfo.getUserId()));
arylstParam.add(new DBObject(8, 1, 12, this.oUserInfo.getSiteId()));
oBean.addToBatch(arylstParam);
continue;
}
if (oHrmLnHblIntDtlBean.getStatus().equals("U")) {
if (!bUpdate) {
oBean2 = new DBUtilitiesBean();
oBean2.createBatch("HRMLNAPPL.procupserthrmHblInt(?,?,?,?,?,?,?,?)");
bUpdate = true;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "U"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLnHblIntDtlBean.getDetailId()));
arylstParam.add(new DBObject(3, 1, 12, sHeaderPrimaryKey));
arylstParam.add(new DBObject(4, 1, 12, oHrmLnHblIntDtlBean.getTxtFromAmount()));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnHblIntDtlBean.getTxtToAmount()));
arylstParam.add(new DBObject(6, 1, 12, oHrmLnHblIntDtlBean.getTxtPercentage()));
arylstParam.add(new DBObject(7, 1, 12, this.oUserInfo.getUserId()));
arylstParam.add(new DBObject(8, 1, 12, this.oUserInfo.getSiteId()));
oBean2.addToBatch(arylstParam);
continue;
}
if (oHrmLnHblIntDtlBean.getStatus().equals("D")) {
if (!bDelete) {
oBean1 = new DBUtilitiesBean();
oBean1.createBatch("HRMLNAPPL.procdeleteLoanIntRate(?)");
bDelete = true;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, oHrmLnHblIntDtlBean.getDetailId()));
oBean1.addToBatch(arylstParam);
}
}
if (bInsert)
oBean.executeBatch();
if (bUpdate)
oBean2.executeBatch();
if (bDelete)
oBean1.executeBatch();
}
public String saveHeaderImpl(BaseHeaderBean oBaseHeaderBean, String ScreenMode) throws EnrgiseSystemException {
String returnString = null;
ArrayList arylstParam = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
String sEligAmount = calculateEligibleAmount((HrmLnAppHdrBean)oBaseHeaderBean);
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)oBaseHeaderBean;
if (ScreenMode.equalsIgnoreCase("N")) {
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "i"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLnAppHdrBean.getEmpId()));
arylstParam.add(new DBObject(3, 1, 12, oHrmLnAppHdrBean.getLoanCodeId()));
arylstParam.add(new DBObject(4, 1, 12, sEligAmount));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnAppHdrBean.getAppliedAmount()));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getApplnDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLnAppHdrBean.getLoanDetails()));
arylstParam.add(new DBObject(8, 1, 12, String.valueOf(oHrmLnAppHdrBean.getFullyRepaid()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(9, 1, 12, oHrmLnAppHdrBean.getSanctionedAmount()));
arylstParam.add(new DBObject(10, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getSanctionDate())));
arylstParam.add(new DBObject(11, 1, 12, oHrmLnAppHdrBean.getPayrollMonth()));
arylstParam.add(new DBObject(12, 1, 12, oHrmLnAppHdrBean.getTotalInst()));
arylstParam.add(new DBObject(13, 1, 12, oHrmLnAppHdrBean.getTotalPrincipalInst()));
arylstParam.add(new DBObject(14, 1, 12, oHrmLnAppHdrBean.getTotalInterestInst()));
arylstParam.add(new DBObject(15, 1, 12, oHrmLnAppHdrBean.getInstAmount()));
arylstParam.add(new DBObject(16, 1, 12, oHrmLnAppHdrBean.getApproverNoId()));
arylstParam.add(new DBObject(17, 1, 12, oHrmLnAppHdrBean.getRemarks()));
arylstParam.add(new DBObject(18, 1, 12, oHrmLnAppHdrBean.getHblAppliedFor()));
arylstParam.add(new DBObject(19, 1, 12, oHrmLnAppHdrBean.getHblBookNo()));
arylstParam.add(new DBObject(20, 1, 12, oHrmLnAppHdrBean.getHblBranhConst()));
arylstParam.add(new DBObject(21, 1, 12, oHrmLnAppHdrBean.getHblCity()));
arylstParam.add(new DBObject(22, 1, 12, oHrmLnAppHdrBean.getHblDag()));
arylstParam.add(new DBObject(23, 1, 12, oHrmLnAppHdrBean.getHblDistrict()));
arylstParam.add(new DBObject(24, 1, 12, String.valueOf(oHrmLnAppHdrBean.getHblDocSubmitted()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(25, 1, 12, oHrmLnAppHdrBean.getHblKhatian()));
arylstParam.add(new DBObject(26, 1, 12, oHrmLnAppHdrBean.getHblMouza()));
arylstParam.add(new DBObject(27, 1, 12, oHrmLnAppHdrBean.getHblNoOfDeed()));
arylstParam.add(new DBObject(28, 1, 12, oHrmLnAppHdrBean.getHblPageNo()));
arylstParam.add(new DBObject(29, 1, 12, oHrmLnAppHdrBean.getHblParentDeed()));
arylstParam.add(new DBObject(30, 1, 12, oHrmLnAppHdrBean.getHblPO()));
arylstParam.add(new DBObject(31, 1, 12, oHrmLnAppHdrBean.getHblRegisteredAt()));
arylstParam.add(new DBObject(32, 1, 12, oHrmLnAppHdrBean.getHblVolOfDeed()));
arylstParam.add(new DBObject(33, 1, 12, null));
arylstParam.add(new DBObject(34, 1, 12, null));
arylstParam.add(new DBObject(35, 1, 12, null));
arylstParam.add(new DBObject(36, 1, 12, null));
arylstParam.add(new DBObject(37, 1, 12, null));
arylstParam.add(new DBObject(38, 1, 12, null));
arylstParam.add(new DBObject(39, 1, 12, null));
arylstParam.add(new DBObject(40, 1, 12, null));
arylstParam.add(new DBObject(41, 1, 93, null));
arylstParam.add(new DBObject(42, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParam.add(new DBObject(43, 1, 12, this.oUserInfo.getSiteId()));
arylstParam.add(new DBObject(44, 1, 12, null));
arylstParam.add(new DBObject(45, 2, 12));
arylstParam.add(new DBObject(46, 2, 12));
arylstParam.add(new DBObject(47, 2, 12));
arylstParam.add(new DBObject(48, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLNAPPL.procUpsertHrmLnAppHdr(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
returnString = (String)oOutObject.getObject();
System.out.println(returnString);
} else if (ScreenMode.equalsIgnoreCase("U")) {
String sFullyRepaid = new String();
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getBulkAmount())) {
oHrmLnAppHdrBean.setBulkFlag("N");
if (EnrgiseUtil.checkString(oHrmLnAppHdrBean.getTotalBalance()))
if (Float.parseFloat(oHrmLnAppHdrBean.getTotalBalance()) == 0.0D) {
sFullyRepaid = "Y";
} else {
sFullyRepaid = "N";
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "u"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLnAppHdrBean.getEmpId()));
arylstParam.add(new DBObject(3, 1, 12, oHrmLnAppHdrBean.getLoanCodeId()));
arylstParam.add(new DBObject(4, 1, 12, sEligAmount));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnAppHdrBean.getAppliedAmount()));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getApplnDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLnAppHdrBean.getLoanDetails()));
arylstParam.add(new DBObject(8, 1, 12, sFullyRepaid));
arylstParam.add(new DBObject(9, 1, 12, oHrmLnAppHdrBean.getSanctionedAmount()));
arylstParam.add(new DBObject(10, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getSanctionDate())));
arylstParam.add(new DBObject(11, 1, 12, oHrmLnAppHdrBean.getPayrollMonth()));
arylstParam.add(new DBObject(12, 1, 12, oHrmLnAppHdrBean.getTotalInst()));
arylstParam.add(new DBObject(13, 1, 12, oHrmLnAppHdrBean.getTotalPrincipalInst()));
arylstParam.add(new DBObject(14, 1, 12, oHrmLnAppHdrBean.getTotalInterestInst()));
arylstParam.add(new DBObject(15, 1, 12, oHrmLnAppHdrBean.getInstAmount()));
arylstParam.add(new DBObject(16, 1, 12, oHrmLnAppHdrBean.getApproverNoId()));
arylstParam.add(new DBObject(17, 1, 12, oHrmLnAppHdrBean.getRemarks()));
arylstParam.add(new DBObject(18, 1, 12, oHrmLnAppHdrBean.getHblAppliedFor()));
arylstParam.add(new DBObject(19, 1, 12, oHrmLnAppHdrBean.getHblBookNo()));
arylstParam.add(new DBObject(20, 1, 12, oHrmLnAppHdrBean.getHblBranhConst()));
arylstParam.add(new DBObject(21, 1, 12, oHrmLnAppHdrBean.getHblCity()));
arylstParam.add(new DBObject(22, 1, 12, oHrmLnAppHdrBean.getHblDag()));
arylstParam.add(new DBObject(23, 1, 12, oHrmLnAppHdrBean.getHblDistrict()));
arylstParam.add(new DBObject(24, 1, 12, String.valueOf(oHrmLnAppHdrBean.getHblDocSubmitted()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(25, 1, 12, oHrmLnAppHdrBean.getHblKhatian()));
arylstParam.add(new DBObject(26, 1, 12, oHrmLnAppHdrBean.getHblMouza()));
arylstParam.add(new DBObject(27, 1, 12, oHrmLnAppHdrBean.getHblNoOfDeed()));
arylstParam.add(new DBObject(28, 1, 12, oHrmLnAppHdrBean.getHblPageNo()));
arylstParam.add(new DBObject(29, 1, 12, oHrmLnAppHdrBean.getHblParentDeed()));
arylstParam.add(new DBObject(30, 1, 12, oHrmLnAppHdrBean.getHblPO()));
arylstParam.add(new DBObject(31, 1, 12, oHrmLnAppHdrBean.getHblRegisteredAt()));
arylstParam.add(new DBObject(32, 1, 12, oHrmLnAppHdrBean.getHblVolOfDeed()));
arylstParam.add(new DBObject(33, 1, 12, oHrmLnAppHdrBean.getTotalAmountPaid()));
arylstParam.add(new DBObject(34, 1, 12, oHrmLnAppHdrBean.getPrincipalPaid()));
arylstParam.add(new DBObject(35, 1, 12, oHrmLnAppHdrBean.getTotalBalance()));
arylstParam.add(new DBObject(36, 1, 12, oHrmLnAppHdrBean.getPrincipalBalance()));
arylstParam.add(new DBObject(37, 1, 12, oHrmLnAppHdrBean.getInterestBalance()));
arylstParam.add(new DBObject(38, 1, 12, oHrmLnAppHdrBean.getInterestPaid()));
arylstParam.add(new DBObject(39, 1, 12, null));
arylstParam.add(new DBObject(40, 1, 12, oHrmLnAppHdrBean.getBulkFlag()));
arylstParam.add(new DBObject(41, 1, 93, null));
arylstParam.add(new DBObject(42, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParam.add(new DBObject(43, 1, 12, this.oUserInfo.getSiteId()));
arylstParam.add(new DBObject(44, 1, 12, oHrmLnAppHdrBean.getHeaderPrimaryKey()));
arylstParam.add(new DBObject(45, 2, 12));
arylstParam.add(new DBObject(46, 2, 12));
arylstParam.add(new DBObject(47, 2, 12));
arylstParam.add(new DBObject(48, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLNAPPL.procUpsertHrmLnAppHdr(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
returnString = (String)oOutObject.getObject();
System.out.println(returnString);
} else if (EnrgiseUtil.checkString(oHrmLnAppHdrBean.getBulkAmount())) {
oHrmLnAppHdrBean.setBulkFlag("Y");
if (Double.parseDouble(oHrmLnAppHdrBean.getTotalBalance()) == Double.parseDouble(oHrmLnAppHdrBean.getBulkAmount())) {
sFullyRepaid = "Y";
} else {
sFullyRepaid = "N";
}
double iTotalPaid = 0.0D;
double iPrincipalPaid = 0.0D;
double iTotalBalance = 0.0D;
double iPrincipalBalance = 0.0D;
double iIntBalance = 0.0D;
double iInterestPaid = 0.0D;
double bulk = Double.parseDouble(oHrmLnAppHdrBean.getBulkAmount());
if (bulk < Float.parseFloat(oHrmLnAppHdrBean.getPrincipalBalance())) {
iTotalPaid = Float.parseFloat(oHrmLnAppHdrBean.getTotalAmountPaid()) + bulk;
iPrincipalPaid = Float.parseFloat(oHrmLnAppHdrBean.getPrincipalPaid()) + bulk;
iTotalBalance = Float.parseFloat(oHrmLnAppHdrBean.getTotalBalance()) - bulk;
iPrincipalBalance = Float.parseFloat(oHrmLnAppHdrBean.getPrincipalBalance()) - bulk;
iIntBalance = Float.parseFloat(oHrmLnAppHdrBean.getInterestBalance());
iInterestPaid = Float.parseFloat(oHrmLnAppHdrBean.getInterestPaid());
} else if (bulk >= Float.parseFloat(oHrmLnAppHdrBean.getPrincipalBalance())) {
iTotalPaid = Float.parseFloat(oHrmLnAppHdrBean.getTotalAmountPaid()) + bulk;
iPrincipalPaid = (Float.parseFloat(oHrmLnAppHdrBean.getPrincipalPaid()) + Float.parseFloat(oHrmLnAppHdrBean.getPrincipalBalance()));
iTotalBalance = Float.parseFloat(oHrmLnAppHdrBean.getTotalBalance()) - bulk;
iPrincipalBalance = 0.0D;
iIntBalance = iTotalBalance;
iInterestPaid = iTotalPaid - iPrincipalPaid;
}
arylstParam = new ArrayList();
arylstParam.add(new DBObject(1, 1, 12, "u"));
arylstParam.add(new DBObject(2, 1, 12, oHrmLnAppHdrBean.getEmpId()));
arylstParam.add(new DBObject(3, 1, 12, oHrmLnAppHdrBean.getLoanCodeId()));
arylstParam.add(new DBObject(4, 1, 12, sEligAmount));
arylstParam.add(new DBObject(5, 1, 12, oHrmLnAppHdrBean.getAppliedAmount()));
arylstParam.add(new DBObject(6, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getApplnDate())));
arylstParam.add(new DBObject(7, 1, 12, oHrmLnAppHdrBean.getLoanDetails()));
arylstParam.add(new DBObject(8, 1, 12, sFullyRepaid));
arylstParam.add(new DBObject(9, 1, 12, oHrmLnAppHdrBean.getSanctionedAmount()));
arylstParam.add(new DBObject(10, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getSanctionDate())));
arylstParam.add(new DBObject(11, 1, 12, oHrmLnAppHdrBean.getPayrollMonth()));
arylstParam.add(new DBObject(12, 1, 12, oHrmLnAppHdrBean.getTotalInst()));
arylstParam.add(new DBObject(13, 1, 12, oHrmLnAppHdrBean.getTotalPrincipalInst()));
arylstParam.add(new DBObject(14, 1, 12, oHrmLnAppHdrBean.getTotalInterestInst()));
arylstParam.add(new DBObject(15, 1, 12, oHrmLnAppHdrBean.getInstAmount()));
arylstParam.add(new DBObject(16, 1, 12, oHrmLnAppHdrBean.getApproverNoId()));
arylstParam.add(new DBObject(17, 1, 12, oHrmLnAppHdrBean.getRemarks()));
arylstParam.add(new DBObject(18, 1, 12, oHrmLnAppHdrBean.getHblAppliedFor()));
arylstParam.add(new DBObject(19, 1, 12, oHrmLnAppHdrBean.getHblBookNo()));
arylstParam.add(new DBObject(20, 1, 12, oHrmLnAppHdrBean.getHblBranhConst()));
arylstParam.add(new DBObject(21, 1, 12, oHrmLnAppHdrBean.getHblCity()));
arylstParam.add(new DBObject(22, 1, 12, oHrmLnAppHdrBean.getHblDag()));
arylstParam.add(new DBObject(23, 1, 12, oHrmLnAppHdrBean.getHblDistrict()));
arylstParam.add(new DBObject(24, 1, 12, String.valueOf(oHrmLnAppHdrBean.getHblDocSubmitted()).equalsIgnoreCase("on") ? "Y" : "N"));
arylstParam.add(new DBObject(25, 1, 12, oHrmLnAppHdrBean.getHblKhatian()));
arylstParam.add(new DBObject(26, 1, 12, oHrmLnAppHdrBean.getHblMouza()));
arylstParam.add(new DBObject(27, 1, 12, oHrmLnAppHdrBean.getHblNoOfDeed()));
arylstParam.add(new DBObject(28, 1, 12, oHrmLnAppHdrBean.getHblPageNo()));
arylstParam.add(new DBObject(29, 1, 12, oHrmLnAppHdrBean.getHblParentDeed()));
arylstParam.add(new DBObject(30, 1, 12, oHrmLnAppHdrBean.getHblPO()));
arylstParam.add(new DBObject(31, 1, 12, oHrmLnAppHdrBean.getHblRegisteredAt()));
arylstParam.add(new DBObject(32, 1, 12, oHrmLnAppHdrBean.getHblVolOfDeed()));
arylstParam.add(new DBObject(33, 1, 12, String.valueOf(iTotalPaid)));
arylstParam.add(new DBObject(34, 1, 12, String.valueOf(iPrincipalPaid)));
arylstParam.add(new DBObject(35, 1, 12, String.valueOf(iTotalBalance)));
arylstParam.add(new DBObject(36, 1, 12, String.valueOf(iPrincipalBalance)));
arylstParam.add(new DBObject(37, 1, 12, String.valueOf(iIntBalance)));
arylstParam.add(new DBObject(38, 1, 12, String.valueOf(iInterestPaid)));
arylstParam.add(new DBObject(39, 1, 12, String.valueOf(bulk)));
arylstParam.add(new DBObject(40, 1, 12, oHrmLnAppHdrBean.getBulkFlag()));
arylstParam.add(new DBObject(41, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getBulkPaymentDate())));
arylstParam.add(new DBObject(42, 1, 12, this.oUserInfo.getUserTypeId()));
arylstParam.add(new DBObject(43, 1, 12, this.oUserInfo.getSiteId()));
arylstParam.add(new DBObject(44, 1, 12, oHrmLnAppHdrBean.getHeaderPrimaryKey()));
arylstParam.add(new DBObject(45, 2, 12));
arylstParam.add(new DBObject(46, 2, 12));
arylstParam.add(new DBObject(47, 2, 12));
arylstParam.add(new DBObject(48, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam, "HRMLNAPPL.procUpsertHrmLnAppHdr(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
returnString = (String)oOutObject.getObject();
System.out.println(returnString);
}
}
return returnString;
}
private String calculateEligibleAmount(HrmLnAppHdrBean oHrmLnAppHdrBean) throws EnrgiseSystemException {
ArrayList oList = new ArrayList();
int count = 0;
ArrayList oParameters = new ArrayList();
ArrayList oOutArray = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
QueryRow oRow = null;
String sEligAmount = new String();
String sGrLsFlag = new String();
String sFlatAmt = new String();
String sMaxLnPerc = new String();
String sNoOfMnthSal = new String();
String sPeriodLeft = new String();
String sPeriodCompleted = new String();
String sSalary = new String();
String sBasic = new String();
int count1 = 0;
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, oHrmLnAppHdrBean.getLoanCodeId()));
oParameters.add(new DBObject(2, 1, 12, oHrmLnAppHdrBean.getEmpId()));
oParameters.add(new DBObject(3, 2, -10));
oParameters.add(new DBObject(4, 2, 12));
oParameters.add(new DBObject(5, 2, 12));
oParameters.add(new DBObject(6, 2, 4));
oOutArray = oBean.callProc(oParameters, "HRMLNAPPL.procCalculateEligibleAmount(?,?,?,?,?,?)");
oList = (ArrayList)((DBObject)oOutArray.get(0)).getObject();
count1 = 0;
Iterator oIt = oList.iterator();
while (oIt.hasNext()) {
count1++;
oRow = oIt.next();
sGrLsFlag = oRow.get("GREATER_LESSER_FLAG").getString();
sFlatAmt = oRow.get("FLAT_AMOUNT").getString();
sMaxLnPerc = oRow.get("MAX_LOAN_PERC").getString();
sNoOfMnthSal = oRow.get("NO_OF_MTHS_SALARY").getString();
sPeriodLeft = oRow.get("MIN_YR_SERVICE_LEFT").getString();
sPeriodCompleted = oRow.get("MIN_YEAR_IN_SERVICE").getString();
sBasic = oRow.get("BASIC").getString();
}
if (String.valueOf(oRow.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("G")) {
sSalary = String.valueOf(Float.parseFloat(sNoOfMnthSal) * Float.parseFloat(sBasic) * Float.parseFloat(sMaxLnPerc) / 100);
if (Float.parseFloat(sSalary) - Float.parseFloat(sFlatAmt) > false) {
sEligAmount = String.valueOf(sSalary);
} else if (Float.parseFloat(sFlatAmt) - Float.parseFloat(sSalary) > false) {
sEligAmount = String.valueOf(sFlatAmt);
} else {
sEligAmount = String.valueOf(sFlatAmt);
}
}
if (String.valueOf(oRow.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("L")) {
sSalary = String.valueOf(Float.parseFloat(sNoOfMnthSal) * Float.parseFloat(sBasic) * Float.parseFloat(sMaxLnPerc) / 100);
if (Float.parseFloat(sSalary) - Float.parseFloat(sFlatAmt) > false) {
sEligAmount = String.valueOf(sFlatAmt);
} else if (Float.parseFloat(sFlatAmt) - Float.parseFloat(sSalary) > false) {
sEligAmount = String.valueOf(sSalary);
} else {
sEligAmount = String.valueOf(sFlatAmt);
}
}
if (String.valueOf(oRow.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("F"))
sEligAmount = sFlatAmt;
if (String.valueOf(oRow.get("GREATER_LESSER_FLAG").getString()).equalsIgnoreCase("S"))
sEligAmount = String.valueOf(Float.parseFloat(sNoOfMnthSal) * Float.parseFloat(sBasic) * Float.parseFloat(sMaxLnPerc) / 100);
return sEligAmount;
}
public void updateHeaderImpl(BaseHeaderBean oBaseHeaderBean) throws EnrgiseSystemException {
System.out.println("To Be Done");
}
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 additionalFieldValidationImpl(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)oBaseHeaderBean;
if (bHeaderDataChanged)
if (!sScreenMode.equalsIgnoreCase("D"))
checkMandatoryHeader((HrmLnAppHdrBean)oBaseHeaderBean);
if (bDetailDataChanged)
if (!sScreenMode.equalsIgnoreCase("D")) {
if (sScreenName.equalsIgnoreCase("HrmLnApp"))
if (arylstDetailBeanArray.size() != 0) {
Iterator itrBean1 = arylstDetailBeanArray.iterator();
int rowCount = 1;
while (itrBean1.hasNext()) {
HrmLnDisDtlBean oHrmLnDisDtlBean = itrBean1.next();
if (!oHrmLnDisDtlBean.getStatus().equalsIgnoreCase("D"))
checkMandatoryDisDtl(oHrmLnDisDtlBean, rowCount);
}
rowCount++;
}
if (sScreenName.equalsIgnoreCase("HrmLnDisDtl"))
if (arylstDetailBeanArray.size() != 0) {
Iterator itrBean1 = arylstDetailBeanArray.iterator();
int rowCount = 0;
while (itrBean1.hasNext()) {
HrmLnDisDtlBean oHrmLnDisDtlBean = itrBean1.next();
if (!oHrmLnDisDtlBean.getStatus().equalsIgnoreCase("D"))
checkMandatoryDisDtl(oHrmLnDisDtlBean, rowCount);
}
rowCount++;
}
if (sScreenName.equalsIgnoreCase("HrmLnAppHblIntRate"))
if (arylstDetailBeanArray.size() != 0) {
Iterator itrBean1 = arylstDetailBeanArray.iterator();
int rowCount = 0;
while (itrBean1.hasNext()) {
HrmLnHblIntDtlBean oHrmLnHblIntDtlBean = itrBean1.next();
if (!oHrmLnHblIntDtlBean.getStatus().equalsIgnoreCase("D")) {
checkMandatoryHblIntDtl(oHrmLnHblIntDtlBean, rowCount);
checkNumericFields(oHrmLnHblIntDtlBean, rowCount);
}
rowCount++;
}
}
}
}
private void checkMandatoryHeader(HrmLnAppHdrBean oHrmLnAppHdrBean) throws EnrgiseSystemException, EnrgiseApplicationException {
ArrayList oParams = new ArrayList();
ArrayList oErrorList = new ArrayList();
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getEmployeeNumber())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.employeeNumber");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getLoanCode())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.loanCode");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.header.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getAppliedAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.appliedAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getApplnDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.applnDate");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getSanctionedAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.sanctionedAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getSanctionDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.sanctionDate");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getTotalInst())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.noOfInstallment");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getTotalInterestInst())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.totalInterestInst");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getTotalPrincipalInst())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.totalPrincipalInst");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getInstAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.instAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
if (EnrgiseUtil.checkString(oHrmLnAppHdrBean.getMode()))
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getBulkAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppln.bulkAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.onlyDetail.mandatoryFieldMissing", oParams, "E"));
}
reportError(oErrorList);
}
private void checkMandatoryDisDtl(HrmLnDisDtlBean oHrmLnDisDtlBean, int rowCount) throws EnrgiseSystemException, EnrgiseApplicationException {
ArrayList oErrorList = new ArrayList();
ArrayList oParams = new ArrayList();
rowCount++;
if (!EnrgiseUtil.checkString(oHrmLnDisDtlBean.getActDisAmt())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppDisbur.actDisAmt");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnDisDtlBean.getActDisDate())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppDisbur.actDisDate");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
reportError(oErrorList);
}
private void checkMandatoryHblIntDtl(HrmLnHblIntDtlBean oHrmLnHblIntDtlBean, int rowCount) throws EnrgiseSystemException, EnrgiseApplicationException {
ArrayList oErrorList = new ArrayList();
ArrayList oParams = new ArrayList();
rowCount++;
if (!EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtFromAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppHblIntRate.fromAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtToAmount())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppHblIntRate.toAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
if (!EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtPercentage())) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppHblIntRate.percentage");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.mandatoryFieldMissing", oParams, "E"));
}
reportError(oErrorList);
}
private void checkNumericFields(HrmLnHblIntDtlBean oHrmLnHblIntDtlBean, int rowCount) throws EnrgiseSystemException, EnrgiseApplicationException {
ArrayList oErrorList = new ArrayList();
ArrayList oParams = new ArrayList();
rowCount++;
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtFromAmount()))
if (!EnrgiseUtil.checkNumber(oHrmLnHblIntDtlBean.getTxtFromAmount(), 15, 2, "P")) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppHblIntRate.fromAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.invalidNumber", oParams, "E"));
}
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtToAmount()))
if (!EnrgiseUtil.checkNumber(oHrmLnHblIntDtlBean.getTxtFromAmount(), 15, 2, "P")) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppHblIntRate.toAmount");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.invalidNumber", oParams, "E"));
}
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtPercentage()))
if (!EnrgiseUtil.checkNumber(oHrmLnHblIntDtlBean.getTxtFromAmount(), 15, 2, "P")) {
MessageKey oMessageKey = new MessageKey("hrm.HrmEmpLoanAppHblIntRate.percentage");
oParams = new ArrayList();
oParams.add(oMessageKey);
oParams.add(String.valueOf(rowCount));
oErrorList.add(new EnrgiseMessageKeyException("wenrgise.common.detail.invalidNumber", oParams, "E"));
}
reportError(oErrorList);
}
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();
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)oBaseHeaderBean;
if (bHeaderDataChanged)
if (!sScreenMode.equalsIgnoreCase("D")) {
if (!sScreenMode.equalsIgnoreCase("U"))
if (EnrgiseUtil.checkString(oHrmLnAppHdrBean.getPayrollMonth()))
checkRecoveryYearMonth((HrmLnAppHdrBean)oBaseHeaderBean, sScreenMode);
if (EnrgiseUtil.checkString(oHrmLnAppHdrBean.getBulkAmount()))
checkBulkAmount((HrmLnAppHdrBean)oBaseHeaderBean);
checkNoOfInstallment((HrmLnAppHdrBean)oBaseHeaderBean);
checkServicePeriod((HrmLnAppHdrBean)oBaseHeaderBean);
}
if (bDetailDataChanged) {
if (sScreenName.equalsIgnoreCase("HrmLnApp")) {
if (oHrmLnAppHdrBean.getLoanCode().equalsIgnoreCase("99")) {
String sQuery = String.valueOf("Select id from hrm_loan_int_rate m where m.emp_loan_id = ").concat(String.valueOf(oHrmLnAppHdrBean.getHeaderPrimaryKey()));
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstList = oBean.executeQuery(sQuery);
if (arylstList.size() == 0) {
ArrayList arylstParam = new ArrayList();
arylstParam.add("");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.DisbSaveError", arylstParam));
}
}
Iterator itrBean1 = arylstDetailBeanArray.iterator();
int rowCount = 1;
while (itrBean1.hasNext()) {
HrmLnDisDtlBean oHrmLnDisDtlBean = itrBean1.next();
if (!oHrmLnDisDtlBean.getStatus().equals("D")) {
compareLoanAmount(oHrmLnAppHdrBean, arylstDetailBeanArray);
checkDatesConstraint(oHrmLnAppHdrBean, arylstDetailBeanArray, arylstErrorList);
}
if (oHrmLnDisDtlBean.getStatus().equals("D"))
checkPayrollFlag(oHrmLnAppHdrBean, arylstDetailBeanArray, arylstErrorList);
}
rowCount++;
}
if (sScreenName.equalsIgnoreCase("HrmLnAppHblIntRate")) {
Iterator itrBean2 = arylstDetailBeanArray.iterator();
int rowCount = 1;
while (itrBean2.hasNext()) {
HrmLnHblIntDtlBean oHrmLnHblIntDtlBean = itrBean2.next();
if (!oHrmLnHblIntDtlBean.getStatus().equals("D")) {
checkFromNToAmount(oHrmLnHblIntDtlBean, rowCount, arylstErrorList);
checkPercentage(oHrmLnHblIntDtlBean, rowCount, arylstErrorList);
}
rowCount++;
}
}
}
reportError(arylstErrorList);
}
private void checkFromNToAmount(HrmLnHblIntDtlBean oHrmLnHblIntDtlBean, int rowCount, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList oParams = new ArrayList();
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtFromAmount()))
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtToAmount()))
if (Long.parseLong(oHrmLnHblIntDtlBean.getTxtFromAmount()) > Long.parseLong(oHrmLnHblIntDtlBean.getTxtToAmount())) {
oParams = new ArrayList();
oParams.add(String.valueOf(rowCount));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppHblIntRate.AmountError", oParams, "E"));
}
}
private void checkPercentage(HrmLnHblIntDtlBean oHrmLnHblIntDtlBean, int rowCount, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList oParams = new ArrayList();
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtFromAmount()))
if (EnrgiseUtil.checkString(oHrmLnHblIntDtlBean.getTxtToAmount()))
if (Double.parseDouble(oHrmLnHblIntDtlBean.getTxtPercentage()) >= 100) {
oParams = new ArrayList();
oParams.add(String.valueOf(rowCount));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppHblIntRate.PercentError", oParams, "E"));
}
}
private void checkPayrollFlag(HrmLnAppHdrBean oHrmLnAppHdrBean, ArrayList arylstDetailBeanArray, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
int count = 0;
Iterator itrBean1 = arylstDetailBeanArray.iterator();
while (itrBean1.hasNext()) {
HrmLnDisDtlBean oHrmLnDisDtlBean = itrBean1.next();
String sQuery = String.valueOf(" Select ID as ID from HRM_LOAN_DISB_DTL where PAYROLL_YYYYMM is null and ID=").concat(String.valueOf(oHrmLnDisDtlBean.getDetailId()));
System.out.println(sQuery);
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstList = oBean.executeQuery(sQuery);
if (arylstList.size() == 0) {
arylstParam = new ArrayList();
arylstParam.add("");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppDisbur.deleteNotPossible", arylstParam));
}
reportError(arylstErrorList);
}
}
private void checkDatesConstraint(HrmLnAppHdrBean oHrmLnAppHdrBean, ArrayList arylstDetailBeanArray, ArrayList arylstErrorList) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
int n = arylstDetailBeanArray.size();
HrmLnDisDtlBean oHrmLnDisDtlBean = arylstDetailBeanArray.get(n - 1);
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
if (EnrgiseUtil.checkString(oHrmLnDisDtlBean.getActDisDate())) {
int dateFlag = EnrgiseUtil.compareDates(dateFormat, oHrmLnDisDtlBean.getActDisDate(), oHrmLnAppHdrBean.getSanctionDate());
if (dateFlag == -1 && dateFlag != -2)
if (arylstErrorList.isEmpty()) {
arylstParam = new ArrayList();
arylstParam.add("");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppDisbur.disDateValidation", arylstParam));
}
}
}
private void checkNoOfInstallment(HrmLnAppHdrBean oHrmLnAppHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
ArrayList arylstErrorList = new ArrayList();
String sNoOfInstallments = new String();
String sPrincipalInstallments = new String();
String sInterestInstallments = new String();
String sNoOfMonths = new String();
ArrayList oParameters = new ArrayList();
ArrayList oOutArray = new ArrayList();
ArrayList oList = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
QueryRow oRow = null;
int count1 = 0;
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, oHrmLnAppHdrBean.getEmpId()));
oParameters.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getApplnDate())));
oParameters.add(new DBObject(3, 2, -10));
oParameters.add(new DBObject(4, 2, 12));
oParameters.add(new DBObject(5, 2, 12));
oParameters.add(new DBObject(6, 2, 4));
oOutArray = oBean.callProc(oParameters, "HRMLNAPPL.procGetMonthsRemaining(?,?,?,?,?,?)");
oList = (ArrayList)((DBObject)oOutArray.get(0)).getObject();
count1 = 0;
Iterator oIt = oList.iterator();
while (oIt.hasNext()) {
count1++;
oRow = oIt.next();
sNoOfMonths = oRow.get("NO_OF_MONTHS").getString();
}
sNoOfInstallments = oHrmLnAppHdrBean.getTotalInst();
sPrincipalInstallments = oHrmLnAppHdrBean.getTotalInterestInst();
sInterestInstallments = oHrmLnAppHdrBean.getTotalPrincipalInst();
if (Float.parseFloat(sNoOfInstallments) > Float.parseFloat(sPrincipalInstallments) + Float.parseFloat(sInterestInstallments) || Float.parseFloat(sNoOfInstallments) < Float.parseFloat(sPrincipalInstallments) + Float.parseFloat(sInterestInstallments)) {
arylstParam = new ArrayList();
arylstParam.add("Loan Application: No Of Installment");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkNoOfInst", arylstParam));
}
if (Float.parseFloat(sNoOfInstallments) > Float.parseFloat(sNoOfMonths)) {
arylstParam = new ArrayList();
arylstParam.add("Loan Application: No Of Installment");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.noOfInstError", arylstParam));
}
reportError(arylstErrorList);
}
private void checkRecoveryYearMonth(HrmLnAppHdrBean oHrmLnAppHdrBean, String sScreenMode) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
ArrayList arylstErrorList = new ArrayList();
String sPayrollMonth = new String();
String sMonth = new String();
sPayrollMonth = oHrmLnAppHdrBean.getPayrollMonth();
if (Float.parseFloat(sPayrollMonth.substring(4, 6)) < true || Float.parseFloat(sPayrollMonth.substring(4, 6)) > 12) {
arylstParam.add("Loan Application: Year Month");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkPayrollMonth", arylstParam));
}
if (Float.parseFloat(sPayrollMonth.substring(0, 1)) == false) {
arylstParam.add("Loan Application: Year Month");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkPayrollYear", arylstParam));
}
HrmCommonBO oBO = new HrmCommonBO();
String sysDate = oBO.getSysDate();
String sYYYYMM = String.valueOf(sysDate.substring(6, sysDate.length())).concat(String.valueOf(sysDate.substring(3, 5)));
DBUtilitiesBean oBean = new DBUtilitiesBean();
ArrayList arylstParam1 = new ArrayList();
arylstParam1.add(new DBObject(1, 1, 12, oHrmLnAppHdrBean.getHeaderPrimaryKey()));
arylstParam1.add(new DBObject(2, 2, 4));
arylstParam1.add(new DBObject(3, 2, 4));
arylstParam1.add(new DBObject(4, 2, 12));
arylstParam1.add(new DBObject(5, 2, 12));
arylstParam1.add(new DBObject(6, 2, 4));
ArrayList arylstOutArray = oBean.callProc(arylstParam1, "hrmlnappl.procgetpayrollinfo(?,?,?,?,?,?)");
DBObject oOutObject = arylstOutArray.get(0);
DBObject oOutObject1 = arylstOutArray.get(1);
int iVal = ((Integer)oOutObject.getObject()).intValue();
int yearMonth = ((Integer)oOutObject1.getObject()).intValue();
int year = Integer.parseInt(String.valueOf(yearMonth).substring(0, 4));
int month = Integer.parseInt(String.valueOf(yearMonth).substring(4, 6));
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getBulkAmount())) {
if (year > Integer.parseInt(sPayrollMonth.substring(0, 4))) {
arylstParam.add("Loan Application: Year Month");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkPayrollMonth1", arylstParam));
}
if (year == Integer.parseInt(sPayrollMonth.substring(0, 4)))
if (month > Integer.parseInt(sPayrollMonth.substring(4, 6))) {
arylstParam.add("Loan Application: Year Month");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkPayrollMonth1", arylstParam));
}
}
if (iVal != 1) {
arylstParam.add("Loan Application: Year Month");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkPayrollMonth2", arylstParam));
}
reportError(arylstErrorList);
}
private void checkBulkAmount(HrmLnAppHdrBean oHrmLnAppHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
ArrayList arylstErrorList = new ArrayList();
if (!EnrgiseUtil.checkString(oHrmLnAppHdrBean.getTotalBalance())) {
arylstParam.add("Loan Application: Bulk Amount");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkBulk", arylstParam));
} else {
if (Double.parseDouble(oHrmLnAppHdrBean.getBulkAmount()) == 0.0D) {
arylstParam.add("Loan Application: Bulk Amount");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkBulkAmount", arylstParam));
}
if (Double.parseDouble(oHrmLnAppHdrBean.getBulkAmount()) > Double.parseDouble(oHrmLnAppHdrBean.getTotalBalance())) {
arylstParam.add("Loan Application: Bulk Amount");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.checkBulkAmount1", arylstParam));
}
}
reportError(arylstErrorList);
}
private void checkServicePeriod(HrmLnAppHdrBean oHrmLnAppHdrBean) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
ArrayList arylstErrorList = new ArrayList();
String sMinSerPeriod = new String();
String sRemainingSerPeriod = new String();
String sNoOfMonthsInService = new String();
String sNoOfMonthsRemaining = new String();
ArrayList oParameters = new ArrayList();
ArrayList oOutArray = new ArrayList();
ArrayList oList = new ArrayList();
DBUtilitiesBean oBean = new DBUtilitiesBean();
QueryRow oRow = null;
int count1 = 0;
oParameters = new ArrayList();
oParameters.add(new DBObject(1, 1, 12, oHrmLnAppHdrBean.getEmpId()));
oParameters.add(new DBObject(2, 1, 93, EnrgiseUtil.convertToSqlDate(oHrmLnAppHdrBean.getApplnDate())));
oParameters.add(new DBObject(3, 2, -10));
oParameters.add(new DBObject(4, 2, 12));
oParameters.add(new DBObject(5, 2, 12));
oParameters.add(new DBObject(6, 2, 4));
oOutArray = oBean.callProc(oParameters, "HRMLNAPPL.procGetServicePeriod(?,?,?,?,?,?)");
oList = (ArrayList)((DBObject)oOutArray.get(0)).getObject();
count1 = 0;
Iterator oIt = oList.iterator();
while (oIt.hasNext()) {
count1++;
oRow = oIt.next();
sNoOfMonthsInService = oRow.get("NO_OF_MONTHS").getString();
sNoOfMonthsRemaining = oRow.get("REMAINING_MONTHS").getString();
}
ArrayList oParameters1 = new ArrayList();
ArrayList oOutArray1 = new ArrayList();
ArrayList oList1 = new ArrayList();
DBUtilitiesBean oBean1 = new DBUtilitiesBean();
QueryRow oRow1 = null;
int count2 = 0;
oParameters1 = new ArrayList();
oParameters1.add(new DBObject(1, 1, 12, oHrmLnAppHdrBean.getLoanCodeId()));
oParameters1.add(new DBObject(2, 1, 12, oHrmLnAppHdrBean.getEmpId()));
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, "HRMLNAPPL.procCalculateEligibleAmount(?,?,?,?,?,?)");
oList1 = (ArrayList)((DBObject)oOutArray1.get(0)).getObject();
count2 = 0;
Iterator oIt1 = oList1.iterator();
while (oIt1.hasNext()) {
count2++;
oRow1 = oIt1.next();
sMinSerPeriod = oRow1.get("MIN_YEAR_IN_SERVICE").getString();
sRemainingSerPeriod = oRow1.get("MIN_YR_SERVICE_LEFT").getString();
}
if (EnrgiseUtil.checkString(sMinSerPeriod) && EnrgiseUtil.checkString(sRemainingSerPeriod)) {
if (Float.parseFloat(sMinSerPeriod) * 12 > Float.parseFloat(sNoOfMonthsInService)) {
arylstParam = new ArrayList();
arylstParam.add("Loan Application: Service Period");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.minServicePeriodError", arylstParam));
}
if (Float.parseFloat(sRemainingSerPeriod) * 12 > Float.parseFloat(sNoOfMonthsRemaining)) {
arylstParam = new ArrayList();
arylstParam.add("Loan Application: Service Period");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.maxServicePeriodError", arylstParam));
}
}
reportError(arylstErrorList);
}
private void compareLoanAmount(HrmLnAppHdrBean oHrmLnAppHdrBean, ArrayList arylstDetailBeanArray) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParam = new ArrayList();
ArrayList arylstErrorList = new ArrayList();
int count = 0;
Iterator itrBean = arylstDetailBeanArray.iterator();
double totalAmount = 0.0D;
double amount = 0.0D;
while (itrBean.hasNext()) {
HrmLnDisDtlBean oHrmLnDisDtlBean = arylstDetailBeanArray.get(count);
if (EnrgiseUtil.checkString(oHrmLnDisDtlBean.getActDisAmt()))
amount = Float.parseFloat(oHrmLnDisDtlBean.getActDisAmt());
totalAmount += amount;
count++;
itrBean.next();
}
ArrayList oParameters1 = new ArrayList();
ArrayList oOutArray1 = new ArrayList();
ArrayList oList1 = new ArrayList();
Iterator oIt1 = arylstDetailBeanArray.iterator();
DBUtilitiesBean oBean1 = new DBUtilitiesBean();
QueryRow oRow1 = null;
String sEligAmount = null;
int count2 = 0;
oParameters1 = new ArrayList();
oParameters1.add(new DBObject(1, 1, 12, oHrmLnAppHdrBean.getHeaderPrimaryKey()));
oParameters1.add(new DBObject(2, 2, -10));
oParameters1.add(new DBObject(3, 2, 12));
oParameters1.add(new DBObject(4, 2, 12));
oParameters1.add(new DBObject(5, 2, 4));
oOutArray1 = oBean1.callProc(oParameters1, "HRMLNAPPL.procGetLoanAmount(?,?,?,?,?)");
oList1 = (ArrayList)((DBObject)oOutArray1.get(0)).getObject();
count2 = 0;
oIt1 = oList1.iterator();
while (oIt1.hasNext()) {
count2++;
oRow1 = (QueryRow)oIt1.next();
sEligAmount = oRow1.get("LOAN_AMOUNT").getString();
}
if (totalAmount > Float.parseFloat(sEligAmount)) {
arylstParam = new ArrayList();
arylstParam.add("Loan Disbursement: Disbursed Amount");
arylstParam.add(new Integer(0));
arylstErrorList.add(new EnrgiseMessageKeyException("hrm.HrmEmpLoanAppln.disDtlTenAmt", arylstParam));
}
reportError(arylstErrorList);
}
public String submitLnAppln(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParameters = new ArrayList();
DBUtilitiesBean oBean = null;
ArrayList arylstList = new ArrayList();
ArrayList arylstParam = new ArrayList();
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)oBaseHeaderBean;
String sHeaderPrimaryKey = (null != oBaseHeaderBean) ? oBaseHeaderBean.getHeaderPrimaryKey() : "";
WflStatus status = null;
if (!EnrgiseUtil.checkString(oBaseHeaderBean.getWorkListId()))
status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Approve", "Initiated");
if (status.getStatus().equalsIgnoreCase("Pending")) {
String sAppliedAmount = null;
String sEligAmount = null;
String sAmount = null;
oBean = new DBUtilitiesBean();
arylstParameters = new ArrayList();
sAppliedAmount = oHrmLnAppHdrBean.getAppliedAmount();
sEligAmount = oHrmLnAppHdrBean.getEligibleAmount();
if (Float.parseFloat(sAppliedAmount) >= Float.parseFloat(sEligAmount)) {
sAmount = sEligAmount;
} else if (Float.parseFloat(sAppliedAmount) < Float.parseFloat(sEligAmount)) {
sAmount = sAppliedAmount;
}
arylstParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey));
arylstParameters.add(new DBObject(2, 1, 12, sAmount));
arylstParameters.add(new DBObject(3, 2, 12));
arylstParameters.add(new DBObject(4, 2, 12));
arylstParameters.add(new DBObject(5, 2, 4));
ArrayList arrayList = oBean.callProc(arylstParameters, "HRMLNAPPL.procSubmitLnAppln(?,?,?,?,?)");
}
return sHeaderPrimaryKey;
}
public String approveLnAppln(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParameters = new ArrayList();
DBUtilitiesBean oBean = null;
ArrayList arylstList = new ArrayList();
ArrayList arylstParam = new ArrayList();
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)oBaseHeaderBean;
String sHeaderPrimaryKey = (null != oBaseHeaderBean) ? oBaseHeaderBean.getHeaderPrimaryKey() : "";
WflStatus status = null;
if (!EnrgiseUtil.checkString(oBaseHeaderBean.getWorkListId())) {
status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Approve", "Initiated");
} else {
status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Approve", (String)null);
}
if (status.getStatus().equalsIgnoreCase("FinallyApproved")) {
oBean = new DBUtilitiesBean();
arylstParameters = new ArrayList();
arylstParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey));
arylstParameters.add(new DBObject(2, 2, 12));
arylstParameters.add(new DBObject(3, 2, 12));
arylstParameters.add(new DBObject(4, 2, 4));
ArrayList arrayList = oBean.callProc(arylstParameters, "HRMLNAPPL.procApproveLnAppln(?,?,?,?)");
}
return sHeaderPrimaryKey;
}
public String rejectLnAppln(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList arylstDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws EnrgiseApplicationException, EnrgiseSystemException {
ArrayList arylstParameters = new ArrayList();
DBUtilitiesBean oBean = null;
ArrayList arylstList = new ArrayList();
ArrayList arylstParam = new ArrayList();
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)oBaseHeaderBean;
String sHeaderPrimaryKey = (null != oBaseHeaderBean) ? oBaseHeaderBean.getHeaderPrimaryKey() : "";
WflStatus status = null;
status = callWorkFlow(oBaseHeaderBean, arylstDetailBeanArray, "Reject", (String)null);
if (status.getStatus().equalsIgnoreCase("Rejected")) {
oBean = new DBUtilitiesBean();
arylstParameters = new ArrayList();
arylstParameters.add(new DBObject(1, 1, 12, sHeaderPrimaryKey));
arylstParameters.add(new DBObject(2, 2, 12));
arylstParameters.add(new DBObject(3, 2, 12));
arylstParameters.add(new DBObject(4, 2, 4));
ArrayList arrayList = oBean.callProc(arylstParameters, "HRMLNAPPL.procRejectLnAppln(?,?,?,?)");
}
return sHeaderPrimaryKey;
}
public WflStatus callWorkFlow(BaseHeaderBean oBaseHeaderBean, ArrayList arylstDetailBeanArray, String activity, String initiatedFlag) throws EnrgiseApplicationException, EnrgiseSystemException {
try {
WorkFlowFacadeHome oHome = (WorkFlowFacadeHome)WorkFlowServiceLocator.getLocator().getService("WorkFlowFacade");
WorkFlowFacade workFlowFacade = oHome.create();
HrmLnAppHdrBean oHrmLnAppHdrBean = (HrmLnAppHdrBean)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(oHrmLnAppHdrBean.getHeaderPrimaryKey());
wflDocumentInfoImpl.setDocumentType("Loan");
wflDocumentInfoImpl.setInitiatedFlag(initiatedFlag);
String documentTypeId = workFlowFacade.getDocumentTypeId("LoanAppln");
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("Loan Application No:").concat(String.valueOf(oHrmLnAppHdrBean.getHeaderPrimaryKey()))).concat(String.valueOf("is pending for approval")));
wflDocumentInfoImpl.setDocDesc(String.valueOf("The following document has been pending for approval:Loan Application No:").concat(String.valueOf(oHrmLnAppHdrBean.getHeaderPrimaryKey())));
} else if (!activity.equalsIgnoreCase("Approve")) {
wflDocumentInfoImpl.setDocumentNumber(String.valueOf(String.valueOf("Loan Application No:").concat(String.valueOf(oHrmLnAppHdrBean.getHeaderPrimaryKey()))).concat(String.valueOf("is pending for rejection")));
wflDocumentInfoImpl.setDocDesc(String.valueOf("The following document has been pending for rejection:Loan Application No:").concat(String.valueOf(oHrmLnAppHdrBean.getHeaderPrimaryKey())));
}
wflDocumentInfoImpl.setModuleId("8");
wflDocumentInfoImpl.setCreator((WflResource)wflResourceImpl);
wflDocumentInfoImpl.setRequesterAction(activityId);
String sLoanAmt = oHrmLnAppHdrBean.getAppliedAmount();
HashMap oProp = new HashMap();
oProp.put("Loan_Amt", sLoanAmt);
wflDocumentInfoImpl.setDocumentAttributes(oProp);
WflAuthorizationBean wflAuthBean = workFlowFacade.canDo((WflDocumentInfo)wflDocumentInfoImpl);
if (EnrgiseUtil.checkString(wflAuthBean.getErrorCode()))
throw new EnrgiseApplicationException(wflAuthBean.getErrorCode());
if (!wflAuthBean.isAuthStatus())
throw new EnrgiseApplicationException("wenrgise.workflow.submit.notauthorized");
WflStatus wflStatus = workFlowFacade.process((WflDocumentInfo)wflDocumentInfoImpl);
if (wflStatus.getStatus().equals("Error"))
throw new EnrgiseSystemException();
workFlowFacade.remove();
return wflStatus;
} catch (RemoteException oRtEx) {
throw new EnrgiseSystemException("wenrgise.workflow.connect", oRtEx);
} catch (CreateException oCx) {
throw new EnrgiseSystemException("wenrgise.workflow.connect", oCx);
} catch (RemoveException oRx) {
throw new EnrgiseSystemException("wenrgise.workflow.connect", oRx);
}
}
}