Commit d32a4528 authored by ssalve's avatar ssalve

Sarita : Source Code PerkClaimWOLoanAdj on 31 JANUARY 2018

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@196484 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 94338d84
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import javax.ejb.Stateless;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
@Stateless
public class PerkClaimWOLoanAdjIC extends ValidatorEJB implements PerkClaimWOLoanAdjICRemote, PerkClaimWOLoanAdjICLocal
{
// VALIDATION START
public String wfValData() throws RemoteException, ITMException
{
return "";
}
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException, ITMException
{
Document dom = null;
Document dom1 = null;
Document dom2 = null;
String errString = "";
E12GenericUtility genericUtility = new E12GenericUtility();
try
{
System.out.println("In Validation ["+xmlString+"]");
if (xmlString != null && xmlString.trim().length() != 0)
{
dom = parseString(xmlString);
}
if (xmlString1 != null && xmlString1.trim().length() != 0)
{
dom1 = parseString(xmlString1);
}
if (xmlString2 != null && xmlString2.trim().length() > 0)
{
dom2 = parseString(xmlString2);
}
errString = wfValData(dom, dom1, dom2, objContext, editFlag, xtraParams);
}
catch (Exception e)
{
System.out.println("Exception : FinEntAcctPrd : wfValData(String xmlString) : ==>" + e.getMessage());
errString = genericUtility.createErrorString(e);
e.printStackTrace();
}
return (errString);
}
public String wfValData(Document dom, Document dom1, Document dom2, String objContext, String editFlag, String xtraParams) throws RemoteException, ITMException
{
String errString = "",childNodeName = "", childNodeValue = "",errCode="",errFldName="",userId="",msgType="";
int currentFormNo = 0 , childNodeListLength = 0 , ctr = 0,count = 0;
Connection conn = null;
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
String claimDate = "",siteCodeFr = "",siteCodeTo = "",procGroupFr = "",procGroupTo = "",adCode = "",lsVarVal = "",empCodeFr = "",empCodeTo = "";
String payrollVoucher = "", payrollPrd = "";
ArrayList<String> errList = new ArrayList<String>();
ArrayList<String> errFields = new ArrayList<String>();
ibase.utility.E12GenericUtility genericUtility= new ibase.utility.E12GenericUtility();
AdmCommon admCommon = new AdmCommon();
UtilMethods utilMethods = new UtilMethods();
String sql = "",payable = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
conn = getConnection();
if(objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
}
System.out.println(" ***********Validation for PerkClaimWOLoanAdjIC "+currentFormNo);
switch(currentFormNo)
{
case 1 :
{
System.out.println("...........Validation for PerkClaimWOLoanAdjIC..........");
parentNodeList = dom.getElementsByTagName("Detail1");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
for(ctr = 0; ctr < childNodeListLength; ctr++)
{
childNode = childNodeList.item(ctr);
System.out.println("childNode"+childNode);
if( childNode.getNodeType() != Node.ELEMENT_NODE )
{
continue;
}
childNodeName = childNode.getNodeName();
if(childNode.getFirstChild()!= null)
{
childNodeValue = childNode.getFirstChild().getNodeValue();
}
if("claim_date".equalsIgnoreCase(childNodeName))
{
claimDate = checkNullAndTrim(genericUtility.getColumnValue("claim_date", dom));
System.out.println("Claim Date is ===> ["+claimDate+"]");
if(claimDate == null || claimDate.trim().length() == 0)
{
errCode = "INVCLAIMDT";//Claim date can not be null
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}//end of validation for claim_date
else if("site_code__fr".equalsIgnoreCase(childNodeName))
{
siteCodeFr = checkNullAndTrim(genericUtility.getColumnValue("site_code__fr", dom));
System.out.println("siteCodeFr is ===> ["+siteCodeFr+"]");
if(siteCodeFr == null || siteCodeFr.trim().length() == 0)
{
setNodeValue( dom, "site_code__fr", "0");
}
else
{
count = 0;
siteCodeFr = checkNullAndTrim(genericUtility.getColumnValue("site_code__fr", dom));
siteCodeTo = checkNullAndTrim(genericUtility.getColumnValue("site_code__to", dom));
System.out.println("1. site_code__fr ["+siteCodeFr+"] \t site_code__to ["+siteCodeTo+"]");
sql ="select count(*) as cnt from employee where pay_site between ? and ? order by pay_site";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCodeFr);
pstmt.setString(2, siteCodeTo);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count for [site_code__fr/site_code__to] :: ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VTRANGE";//Not Valid Range
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}//end of Validation for site_code__fr
else if("site_code__to".equalsIgnoreCase(childNodeName))
{
siteCodeTo = checkNullAndTrim(genericUtility.getColumnValue("site_code__to", dom));
System.out.println("siteCodeTo is ===> ["+siteCodeTo+"]");
if(siteCodeTo == null || siteCodeTo.trim().length() == 0)
{
setNodeValue( dom, "site_code__to", "ZZ");
}
else
{
count = 0;
siteCodeFr = checkNullAndTrim(genericUtility.getColumnValue("site_code__fr", dom));
siteCodeTo = checkNullAndTrim(genericUtility.getColumnValue("site_code__to", dom));
sql ="select count(*) as cnt from employee where pay_site between ? and ? order by pay_site";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCodeFr);
pstmt.setString(2, siteCodeTo);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count for [site_code__fr/site_code__to] :: ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VTRANGE";//Not Valid Range
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}//end of Validation for site_code__to
else if("proc_group__fr".equalsIgnoreCase(childNodeName))
{
procGroupFr = checkNullAndTrim(genericUtility.getColumnValue("proc_group__fr", dom));
System.out.println("procGroupFr is ===> ["+procGroupFr+"]");
if(procGroupFr == null || procGroupFr.trim().length() == 0)
{
setNodeValue( dom, "proc_group__fr", "0");
}
else
{
count = 0;
procGroupFr = checkNullAndTrim(genericUtility.getColumnValue("proc_group__fr", dom));
procGroupTo = checkNullAndTrim(genericUtility.getColumnValue("proc_group__to", dom));
System.out.println("1. proc_group__fr ["+procGroupFr+"] \t proc_group__to ["+procGroupTo+"]");
sql ="select count(*) as cnt from employee where proc_group between ? and ? order by proc_group";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, procGroupFr);
pstmt.setString(2, procGroupTo);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count for [proc_code__fr/proc_code__to] :: ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VTRANGE";//Not Valid Range
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}//end of Validation for proc_group__fr
else if("proc_group__to".equalsIgnoreCase(childNodeName))
{
procGroupTo = checkNullAndTrim(genericUtility.getColumnValue("proc_group__to", dom));
if(procGroupTo == null || procGroupTo.trim().length() == 0)
{
setNodeValue( dom, "proc_group__to", "ZZ");
}
else
{
count = 0;
procGroupFr = checkNullAndTrim(genericUtility.getColumnValue("proc_group__fr", dom));
procGroupTo = checkNullAndTrim(genericUtility.getColumnValue("proc_group__to", dom));
System.out.println("2. proc_group__fr ["+procGroupFr+"] \t proc_group__to ["+procGroupTo+"]");
sql ="select count(*) as cnt from employee where proc_group between ? and ? order by proc_group";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, procGroupFr);
pstmt.setString(2, procGroupTo);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count for [proc_code__fr/proc_code__to] :: ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VTRANGE";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}//end of Validation for proc_group__to
else if("ad_code".equalsIgnoreCase(childNodeName))
{
adCode = checkNullAndTrim(genericUtility.getColumnValue("ad_code", dom));
System.out.println("ad_code is ===> ["+adCode+"]");
lsVarVal = admCommon.getEnv("999999", "CLAIMAD_WO_LOANADJ", conn);
System.out.println("lsVarVal is ===> ["+lsVarVal+"]");
if(lsVarVal != null && lsVarVal.trim().length() > 0 && !("NULLFOUND".equalsIgnoreCase(lsVarVal)))
{
lsVarVal = checkNullAndTrim(lsVarVal) + ",";
System.out.println("1111"+lsVarVal+"***"+utilMethods.pos(lsVarVal, adCode + ","));
if((utilMethods.pos(lsVarVal, adCode + ",") == 0))
{
errCode = "VSENVAR1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
else
{
count = 0;
sql = "select count(*) as cnt, payable from allwdedn where ad_code=? group by payable";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, adCode);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt");
payable = rs.getString("payable");
System.out.println("count is ["+count+"] \t payable ["+payable+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VMADC1";//Code Not Found !!!
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
if("D".equalsIgnoreCase(payable))
{
errCode = "VTADTYPE";//Payable should not be deduction type.
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}
else
{
errCode = "VSENVAR1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}//end of validation for ad_code
else if("emp_code__fr".equalsIgnoreCase(childNodeName))
{
empCodeFr = checkNullAndTrim(genericUtility.getColumnValue("emp_code__fr", dom));
System.out.println("empCodeFr is ===> ["+empCodeFr+"]");
if(empCodeFr == null || empCodeFr.trim().length() == 0)
{
setNodeValue( dom, "emp_code__fr", "0");
}
else
{
empCodeFr = checkNullAndTrim(genericUtility.getColumnValue("emp_code__fr", dom));
empCodeTo = checkNullAndTrim(genericUtility.getColumnValue("emp_code__to", dom));
System.out.println("1. emp_code__fr ["+empCodeFr+"] \t emp_code__to ["+empCodeTo+"]");
sql ="select count(*) as cnt from employee where emp_code between ? and ? order by emp_code";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCodeFr);
pstmt.setString(2, empCodeTo);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count for [emp_code__fr/emp_code__to] :: ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VTRANGE";//Not Valid Range
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}//end of validation for emp_code__fr
else if("emp_code__to".equalsIgnoreCase(childNodeName))
{
empCodeTo = checkNullAndTrim(genericUtility.getColumnValue("emp_code__to", dom));
if(empCodeTo == null || empCodeTo.trim().length() == 0)
{
setNodeValue( dom, "emp_code__fr", "ZZ");
}
else
{
empCodeFr = checkNullAndTrim(genericUtility.getColumnValue("emp_code__fr", dom));
empCodeTo = checkNullAndTrim(genericUtility.getColumnValue("emp_code__to", dom));
System.out.println("2. emp_code__fr ["+empCodeFr+"] \t emp_code__to ["+empCodeTo+"]");
sql ="select count(*) as cnt from employee where emp_code between ? and ? order by emp_code";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCodeFr);
pstmt.setString(2, empCodeTo);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count for [emp_code__fr/emp_code__to] :: ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VTRANGE";//Not Valid Range
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}//end of validation for emp_code__to
else if("payroll_prd".equalsIgnoreCase(childNodeName))
{
payrollVoucher = checkNullAndTrim(genericUtility.getColumnValue("payroll_voucher", dom));
payrollPrd = checkNullAndTrim(genericUtility.getColumnValue("payroll_prd", dom));
System.out.println("payrollVoucher is ===> ["+payrollVoucher+"] \t payrollPrd ===> ["+payrollPrd+"]");
if("P".equalsIgnoreCase(payrollVoucher))
{
if(payrollPrd == null || payrollPrd.trim().length() == 0)
{
errCode = "VPCLMWLN01";//Payroll period can not blank in case of claim through payroll. Please specify payroll period
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
else
{
count = 0;
sql = "select count(*) as cnt from period where code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, payrollPrd);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt");
System.out.println("Count to check Period code existance is ===> ["+count+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errCode = "VPCLMWLN02";//Invalid Period!
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}
}//end of validation payroll_prd
}//end of for loop
}//end of case1
break;
}//end of switch statement
StringBuffer errStringXml = new StringBuffer("<?xml version=\"1.0\"?>\r\n<Root><Errors>");
if ( errList != null && errList.size() > 0 )
{
int errListSize = errList.size();
System.out.println("errListSize:::::::["+errListSize+"]");
System.out.println("in error::::::::::");
for (int i = 0; i < errListSize; i++ )
{
System.out.println("in error For:::::::::::::::");
errCode = (String)errList.get(i);
errFldName = (String)errFields.get(i);
System.out.println("errCode .........."+errCode);
errString = getErrorString( errFldName, errCode, userId );
System.out.println("errString is : ::::>>>> " + errString);
msgType = errorType( conn , errCode );
if ( errString.length() > 0)
{
String bifurErrString = errString.substring( errString.indexOf("<Errors>") + 8,errString.indexOf("<trace>"));
bifurErrString =bifurErrString+errString.substring( errString.indexOf("</trace>") + 8,errString.indexOf("</Errors>"));
errStringXml.append(bifurErrString);
System.out.println("errStringXml .........."+errStringXml);
errString = "";
}
if ( msgType.equalsIgnoreCase("E"))
{
break;
}
}
errList.clear();
errList = null;
errFields.clear();
errFields = null;
errStringXml.append("</Errors></Root>\r\n");
}
else
{
errStringXml = new StringBuffer( "" );
}
errString = errStringXml.toString();
}
catch(Exception e)
{
System.out.println(":::" + getClass().getSimpleName() + "::" + e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if (conn != null)
{
conn.close();
conn = null;
}
if (rs != null)
{
rs.close();
rs = null;
}
if (pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch (Exception e)
{
System.out.println("Exception in EJB[" + getClass().getSimpleName() + "]::itemChanged::[" + e.getMessage() + "]");
throw new ITMException(e);
}
}
return errString;
}// END OF VALIDATION
// ITEMCHANGE START
public String itemChanged() throws RemoteException, ITMException
{
return "";
}
public String itemChanged(String xmlString, String xmlString1, String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException
{
Document dom = null;
Document dom1 = null;
Document dom2 = null;
String valueXmlString = "";
try
{
System.out.println("In ItemChanged ["+xmlString+"]");
if (xmlString != null && xmlString.trim().length() != 0)
{
dom = parseString(xmlString);
}
if (xmlString1 != null && xmlString1.trim().length() != 0)
{
dom1 = parseString(xmlString1);
}
if (xmlString2 != null && xmlString2.trim().length() > 0)
{
dom2 = parseString(xmlString2);
}
valueXmlString = itemChanged(dom, dom1, dom2, objContext, currentColumn, editFlag, xtraParams);
System.out.println("valueXmlString in Itemchange is \n" +valueXmlString);
}
catch (Exception e)
{
System.out.println("Exception : FinEntAcctPrd : [itemChanged(String,String)] :==>\n" + e.getMessage());
throw new ITMException(e);
}
return valueXmlString;
}
public String itemChanged(Document dom, Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException
{
StringBuffer valueXmlString = new StringBuffer();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
SimpleDateFormat sdf1 = null;
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
E12GenericUtility genericUtility = new E12GenericUtility();
String sql = "", userId = "",loginSite = "",childNodeName = "",adCode = "",adCodeDescr = "",payrollVoucher = "";
java.sql.Timestamp today = null;
String currentDate = null;
int currentFormNo = 0 , ctr = 0 , childNodeListLength = 0, userLev = 0;
String fullAmt = "Y" , payrollVouch = "V" , resigned = "N";
try
{
conn = getConnection();
today = new java.sql.Timestamp(System.currentTimeMillis()) ;
sdf1 = new SimpleDateFormat(genericUtility.getApplDateFormat());
currentDate = sdf1.format(today);
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
loginSite = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
System.out.println("currentDate is ["+currentDate+"] \t userId is ["+userId+"] \t loginSite is ["+loginSite+"]");
if (objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
}
System.out.println("[EmpITConfirmationIC] [itemChanged] :currentFormNo ["+currentFormNo+"] \t Current Column ["+currentColumn+"]" );
valueXmlString = new StringBuffer("<?xml version=\"1.0\"?><Root><header><editFlag>");
valueXmlString.append(editFlag).append("</editFlag></header>");
switch (currentFormNo)
{
case 1:
{
parentNodeList = dom.getElementsByTagName("Detail1");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
valueXmlString.append("<Detail1>");
ctr = 0;
childNodeListLength = childNodeList.getLength();
do
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equals(currentColumn))
{
if(childNode.getFirstChild() != null)
{
}
}
ctr ++;
}while(ctr < childNodeListLength && ! childNodeName.equals(currentColumn));
if ("itm_default".equalsIgnoreCase(currentColumn))
{
valueXmlString.append("<claim_date>").append("<![CDATA[" + currentDate + "]]>").append("</claim_date>");
sql = "select usr_lev from users where code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userId);
rs = pstmt.executeQuery();
if (rs.next())
{
userLev = rs.getInt("usr_lev"); System.out.println("User Level is ["+userLev+"]");
}
if (rs != null)
{
rs.close();
rs = null;
}
if (pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(userLev > 0)
{
valueXmlString.append("<site_code__fr protect='1'>").append("<![CDATA[]]>").append("</site_code__fr>");
valueXmlString.append("<site_code__to protect='1'>").append("<![CDATA[]]>").append("</site_code__to>");
}
if(loginSite != null && loginSite.trim().length() > 0)
{
valueXmlString.append("<site_code__fr>").append("<![CDATA[" + loginSite + "]]>").append("</site_code__fr>");
valueXmlString.append("<site_code__to>").append("<![CDATA[" + loginSite + "]]>").append("</site_code__to>");
}
valueXmlString.append("<full_amt>").append("<![CDATA[" + fullAmt + "]]>").append("</full_amt>");
valueXmlString.append("<payroll_voucher>").append("<![CDATA[" + payrollVouch + "]]>").append("</payroll_voucher>");
valueXmlString.append("<resigned>").append("<![CDATA[" + resigned + "]]>").append("</resigned>");
valueXmlString.append("<payroll_prd protect=\"1\">").append("<![CDATA[]]>").append("</payroll_prd>");
}//end of itemchanged for itm_default
else if("ad_code".equalsIgnoreCase(currentColumn))
{
adCode = checkNullAndTrim(genericUtility.getColumnValue("ad_code", dom));
System.out.println("adCode is ===> ["+adCode+"]");
sql = "select descr from allwdedn where ad_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, adCode);
rs = pstmt.executeQuery();
if (rs.next())
{
adCodeDescr = rs.getString("descr"); System.out.println("adCodeDescr :: ["+adCodeDescr+"]");
}
if (rs != null)
{
rs.close();
rs = null;
}
if (pstmt != null)
{
pstmt.close();
pstmt = null;
}
valueXmlString.append("<ad_descr>").append("<![CDATA[" + adCodeDescr + "]]>").append("</ad_descr>");
}//end of itemchange for ad_code
else if("payroll_voucher".equalsIgnoreCase(currentColumn))
{
payrollVoucher = checkNullAndTrim(genericUtility.getColumnValue("payroll_voucher", dom));
System.out.println("payrollVoucher is ===> ["+payrollVoucher+"]");
if("P".equalsIgnoreCase(payrollVoucher))
{
valueXmlString.append("<payroll_prd protect=\"0\">").append("<![CDATA[]]>").append("</payroll_prd>");
}
else
{
valueXmlString.append("<payroll_prd protect=\"1\">").append("<![CDATA[]]>").append("</payroll_prd>");
}
}//end of itemchange for payroll_voucher
valueXmlString.append ("</Detail1>\r\n");
}
break;
}
valueXmlString.append("</Root>\r\n");
}
catch(Exception e)
{
System.out.println(":::" + getClass().getSimpleName() + "::" + e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if (conn != null)
{
conn.close();
conn = null;
}
if (rs != null)
{
rs.close();
rs = null;
}
if (pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch (Exception e)
{
System.out.println("Exception in EJB[" + getClass().getSimpleName() + "]::itemChanged::[" + e.getMessage() + "]");
throw new ITMException(e);
}
}
System.out.println("valueXmlString in Itemchange is1 \n" +valueXmlString.toString());
return valueXmlString.toString();
}
// END OF ITEMCHANGE
private String errorType(Connection conn, String errorCode) throws ITMException
{
String msgType = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
String sql = " SELECT MSG_TYPE FROM MESSAGES WHERE MSG_NO = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, errorCode);
rs = pstmt.executeQuery();
while (rs.next())
{
msgType = rs.getString("MSG_TYPE");
}
}
catch (Exception ex)
{
ex.printStackTrace();
throw new ITMException(ex);
}
finally
{
try
{
if (rs != null)
{
rs.close();
rs = null;
}
if (pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
return msgType;
}
private String checkNullAndTrim(String input)
{
if (input == null)
{
input = "";
}
else
{
input = input.trim();
}
return input;
}
private static void setNodeValue( Document dom, String nodeName, String nodeVal ) throws Exception
{
Node tempNode = dom.getElementsByTagName( nodeName ).item(0);
if( tempNode != null )
{
if( tempNode.getFirstChild() == null )
{
CDATASection cDataSection = dom.createCDATASection( nodeVal );
tempNode.appendChild( cDataSection );
}
else
{
tempNode.getFirstChild().setNodeValue(nodeVal);
}
}
tempNode = null;
}
}
package ibase.webitm.ejb.adm;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
import org.w3c.dom.Document;
@Local
public interface PerkClaimWOLoanAdjICLocal extends ValidatorLocal
{
public String wfValData() throws RemoteException, ITMException;
public String wfValData(String xmlString, String xmlString1,String xmlString2, String objContext, String editFlag,String xtraParams) throws RemoteException, ITMException;
public String wfValData(Document dom, Document dom1, Document dom2,String objContext, String editFlag, String xtraParams)throws RemoteException, ITMException;
public String itemChanged() throws RemoteException, ITMException;
public String itemChanged(String xmlString, String xmlString1,String xmlString2, String objContext, String currentColumn,String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1, Document dom2,String objContext, String currentColumn, String editFlag,String xtraParams) throws RemoteException, ITMException;
}
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import javax.ejb.Remote;
import org.w3c.dom.Document;
@Remote
public interface PerkClaimWOLoanAdjICRemote extends ValidatorRemote
{
public String wfValData() throws RemoteException, ITMException;
public String wfValData(String xmlString, String xmlString1,String xmlString2, String objContext, String editFlag,String xtraParams) throws RemoteException, ITMException;
public String wfValData(Document dom, Document dom1, Document dom2,String objContext, String editFlag, String xtraParams)throws RemoteException, ITMException;
public String itemChanged() throws RemoteException, ITMException;
public String itemChanged(String xmlString, String xmlString1,String xmlString2, String objContext, String currentColumn,String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1, Document dom2,String objContext, String currentColumn, String editFlag,String xtraParams) throws RemoteException, ITMException;
}
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import javax.ejb.Stateless;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ProcessEJB;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
@Stateless
public class PerkClaimWOLoanAdjPrc extends ProcessEJB implements PerkClaimWOLoanAdjPrcLocal,PerkClaimWOLoanAdjPrcRemote //SessionBean
{
E12GenericUtility genericUtility = new E12GenericUtility();
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
UtilMethods utilMethod = new UtilMethods();
AdmCommon objAdmCommon = new AdmCommon();
DistCommon disCommon = new DistCommon();
public String getData(String xmlString, String xmlString2, String xtraParams) throws RemoteException,ITMException
{
String rtrStr = "";
Document headerDom = null;
Document detailDom = null;
try
{
if(xmlString != null && xmlString.trim().length()!=0)
{
headerDom = genericUtility.parseString(xmlString);
}
if(xmlString2 != null && xmlString2.trim().length()!=0)
{
detailDom = genericUtility.parseString(xmlString2);
}
rtrStr = getData(headerDom, detailDom, xtraParams);
System.out.println("Inside getDate returnString is :::"+rtrStr);
}
catch (Exception e)
{
System.out.println("Exception :PerkClaimWOLoanAdjPrc :getData(String xmlString, String xmlString2, String windowName, String xtraParams):" + e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
return rtrStr;
}//END OF GETDATA(1)
public String getData(Document headerDom, Document detailDom, String xtraParams) throws Exception
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
boolean isError = false;
String resultString = "",lsSiteFr = "",lsSiteTo = "",lsProcfr = "",lsProcto = "";
String sql = "",lsEmpCodeFr = "", lsEmpCodeTo = "", lsAdCode = "", lsFAmtFlag = "", lsClaimDate = "",lsResignedFlag = "";
String fullClaim = "",lsEnvName="",lsCanClaimInSameYear = "";
String empCode = "", empFname = "", empMname = "", empLname = "", adCode = "", paySite = "", cadre = "", grade = "";
double amount = 0.0 , amtBal = 0.0;
String errprString = "",errLine = "";
java.sql.Timestamp startDate = null , endDate = null,claimDate = null;
String startDateStr = "", endDateStr = "";
AdmCommon objAdmCommon = new AdmCommon();
UtilMethods utilMethod = new UtilMethods();
SimpleDateFormat sdf1 = new SimpleDateFormat(genericUtility.getApplDateFormat());
try
{
System.out.println("Inside getData method ");
conn = getConnection();
lsSiteFr = checkNullAndTrim(genericUtility.getColumnValue("site_code__fr",headerDom));
lsSiteTo = checkNullAndTrim(genericUtility.getColumnValue("site_code__to",headerDom));
lsProcfr = checkNullAndTrim(genericUtility.getColumnValue("proc_group__fr",headerDom));
lsProcto = checkNullAndTrim(genericUtility.getColumnValue("proc_group__to",headerDom));
lsEmpCodeFr = checkNullAndTrim(genericUtility.getColumnValue("emp_code__fr",headerDom));
lsEmpCodeTo = checkNullAndTrim(genericUtility.getColumnValue("emp_code__to",headerDom));
lsAdCode = checkNullAndTrim(genericUtility.getColumnValue("ad_code",headerDom));
lsFAmtFlag = checkNullAndTrim(genericUtility.getColumnValue("full_amt",headerDom));
lsClaimDate = checkNullAndTrim(genericUtility.getColumnValue("claim_date",headerDom));
lsResignedFlag = checkNullAndTrim(genericUtility.getColumnValue("resigned",headerDom));
if(lsClaimDate != null && lsClaimDate.trim().length() > 0)
{
claimDate = java.sql.Timestamp.valueOf(genericUtility.getValidDateString(lsClaimDate, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
if(lsEmpCodeFr == null || lsEmpCodeFr.trim().length() == 0)
{
lsEmpCodeFr = "0";
}
if(lsEmpCodeTo == null || lsEmpCodeTo.trim().length() == 0)
{
lsEmpCodeTo = "ZZZZZZZZZZ";
}
if(lsSiteFr == null || lsSiteFr.trim().length() == 0)
{
lsSiteFr = "0";
}
if(lsSiteTo == null || lsSiteTo.trim().length() == 0)
{
lsSiteTo = "ZZZZZ";
}
if(lsProcfr == null || lsProcfr.trim().length() == 0)
{
lsProcfr = "0";
}
if(lsProcto == null || lsProcto.trim().length() == 0)
{
lsProcto = "ZZZZZ";
}
StringBuffer retTabSepStrBuff = new StringBuffer("<?xml version = \"1.0\"?>");
retTabSepStrBuff.append("<DocumentRoot>");
retTabSepStrBuff.append("<description>").append("Datawindow Root").append("</description>");
retTabSepStrBuff.append("<group0>");
retTabSepStrBuff.append("<description>").append("Group0 description").append("</description>");
retTabSepStrBuff.append("<Header0>");
/* if("Y".equalsIgnoreCase(lsFAmtFlag))
{
retTabSepStrBuff.append("<claim_amt protect='1'>").append("<![CDATA[]]>").append("</claim_amt>\r\n");
}
else
{
retTabSepStrBuff.append("<claim_amt protect='0'>").append("<![CDATA[]]>").append("</claim_amt>\r\n");
}
*/
if("Y".equalsIgnoreCase(lsResignedFlag))
{
lsResignedFlag = "S";
}
else
{
lsResignedFlag = " ";
}
sql = "SELECT allowdedn_bal.emp_code, "
+ "employee.emp_fname, "
+ "employee.emp_mname, "
+ "employee.emp_lname, "
+ "allowdedn_bal.ad_code, "
+ "allowdedn_bal.start_date, "
+ "allowdedn_bal.end_date, "
+ "employee.pay_site, "
+ "employee.cadre, "
+ "employee.grade, "
+ "allowdedn_bal.amount , "
+ "allowdedn_bal.amt_bal "
+ "FROM allowdedn_bal, employee "
+ "WHERE allowdedn_bal.emp_code = employee.emp_code "
+ "AND allowdedn_bal.emp_code BETWEEN ? AND ? "
+ "AND allowdedn_bal.ad_code = ? "
+ "AND allowdedn_bal.amt_bal <> 0 "
+ "AND allowdedn_bal.ref_type = 'K' "
+ "AND employee.pay_site BETWEEN ? AND ? "
+ "AND employee.proc_group BETWEEN ? AND ? "
+ "AND CASE WHEN relieve_date IS NULL THEN ' ' ELSE 'S' END = ? "
+ "AND CASE WHEN status IS NULL THEN ' ' ELSE status END <> 'S' "
+ "AND (exp_date IS NULL OR exp_date >= ? ) "
+ "ORDER BY allowdedn_bal.emp_code, "
+ "allowdedn_bal.start_date";
System.out.println("sql..."+ sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsEmpCodeFr );
pstmt.setString(2,lsEmpCodeTo);
pstmt.setString(3,lsAdCode);
pstmt.setString(4,lsSiteFr);
pstmt.setString(5,lsSiteTo);
pstmt.setString(6,lsProcfr );
pstmt.setString(7,lsProcto);
pstmt.setString(8,lsResignedFlag);
pstmt.setString(9,lsClaimDate);
rs = pstmt.executeQuery();
while(rs.next())
{
empCode = checkNullAndTrim(rs.getString("emp_code"));
empFname = checkNullAndTrim(rs.getString("emp_fname"));
empMname = checkNullAndTrim(rs.getString("emp_mname"));
empLname = checkNullAndTrim(rs.getString("emp_lname"));
adCode = checkNullAndTrim(rs.getString("ad_code"));
startDate=rs.getTimestamp("start_date");
endDate = rs.getTimestamp("end_date");
paySite = checkNullAndTrim(rs.getString("pay_site"));
cadre = checkNullAndTrim(rs.getString("cadre"));
grade = checkNullAndTrim(rs.getString("grade"));
amount = rs.getDouble("amount");
amtBal = rs.getDouble("amt_bal");
System.out.println("empCode ["+empCode+"] \t empFname ["+empFname+"] \t empMname ["+empMname+"] \t empLname ["+empLname+"] \t adCode["+adCode+"] \t startDate["+startDate+"] \t endDate ["+endDate+"] \t paySite ["+paySite+"] \t cadre ["+cadre+"] \t grade ["+grade+"] \t amount ["+amount+"] \t amtBal ["+amtBal+"]");
lsEnvName = lsAdCode.toUpperCase()+"_CLAIMCURRPRD";
lsCanClaimInSameYear = objAdmCommon.getAdmEnv(paySite, cadre, grade, lsEnvName,claimDate, conn);
System.out.println("lsEnvName :: ["+lsEnvName+"] =====\n lsCanClaimInSameYear :: ["+lsCanClaimInSameYear+"]");
if(startDate != null)
{
startDateStr = sdf1.format(startDate);
}
if(endDate != null)
{
endDateStr = sdf1.format(endDate);
}
System.out.println(">>>>> ["+startDateStr+"] \t ["+endDateStr+"]");
if((lsCanClaimInSameYear != null && lsCanClaimInSameYear.trim().length() > 0) && ("NULLFOUND".equalsIgnoreCase(lsCanClaimInSameYear)))
{
lsCanClaimInSameYear = objAdmCommon.getEnv("999999", lsEnvName, conn);
System.out.println("lsCanClaimInSameYear :: ["+lsCanClaimInSameYear+"]");
if((lsCanClaimInSameYear != null && lsCanClaimInSameYear.trim().length() > 0) && ("NULLFOUND".equalsIgnoreCase(lsCanClaimInSameYear)))
{
isError = true;
errprString = "Employee" + empCode + " not processed due to Variable ("+ lsEnvName +") is not defined properly";
System.out.println("errprString1 is ["+errprString+"]");
}
}
else if(utilMethod.left(lsCanClaimInSameYear , 4).equals("ERR~t"))
{
isError = true;
errprString = utilMethod.mid(lsCanClaimInSameYear , 5) + "Employee '"+empCode+"' not processed due to Could not fetch environment (" + lsEnvName + ") from site_env table";
System.out.println("errprString2 is ["+errprString+"]");
}
else
{
lsCanClaimInSameYear = lsCanClaimInSameYear.toUpperCase();
if("S".equalsIgnoreCase(lsResignedFlag) == false)
{
if(!("Y".equalsIgnoreCase(lsCanClaimInSameYear)) && (claimDate.before(endDate)))
{
isError = true;
errprString = "Employee "+ empCode +" not processed because of could not claim after claim date";
System.out.println("errprString3 is ["+errprString+"]");
}
}
}
if(errprString != null && errprString.trim().length() > 0)
{
errLine = errLine + errprString;
resultString = getErrorXml(errLine);
System.out.println("resultString--["+resultString+"]");
return resultString;
}
retTabSepStrBuff.append("<Detail2>");
retTabSepStrBuff.append("<emp_code>").append("<![CDATA[" + empCode + "]]>").append("</emp_code>\r\n");
retTabSepStrBuff.append("<ad_code>").append("<![CDATA[" + adCode + "]]>").append("</ad_code>\r\n");
retTabSepStrBuff.append("<start_date>").append("<![CDATA[" + startDateStr + "]]>").append("</start_date>\r\n");
retTabSepStrBuff.append("<end_date>").append("<![CDATA[" + endDateStr + "]]>").append("</end_date>\r\n");
retTabSepStrBuff.append("<amt_bal>").append("<![CDATA[" + amtBal + "]]>").append("</amt_bal>\r\n");
retTabSepStrBuff.append("<amount>").append("<![CDATA[" + amount + "]]>").append("</amount>\r\n");
retTabSepStrBuff.append("<emp_fname>").append("<![CDATA[" + empFname + "]]>").append("</emp_fname>\r\n");
retTabSepStrBuff.append("<emp_mname>").append("<![CDATA[" + empMname + "]]>").append("</emp_mname>\r\n");
retTabSepStrBuff.append("<emp_lname>").append("<![CDATA[" + empLname + "]]>").append("</emp_lname>\r\n");
//retTabSepStrBuff.append("<claim_amt>").append("<![CDATA[" + amtBal + "]]>").append("</claim_amt>\r\n");
if("Y".equalsIgnoreCase(lsFAmtFlag))
{
fullClaim = "Y";
retTabSepStrBuff.append("<claim_amt protect=\"1\">").append("<![CDATA[" + amtBal + "]]>").append("</claim_amt>\r\n");
retTabSepStrBuff.append("<full_claim>").append("<![CDATA[" + fullClaim + "]]>").append("</full_claim>\r\n");
}
else
{
fullClaim = "N";
retTabSepStrBuff.append("<claim_amt protect=\"0\">").append("<![CDATA[" + amtBal + "]]>").append("</claim_amt>\r\n");
retTabSepStrBuff.append("<full_claim>").append("<![CDATA[" + fullClaim + "]]>").append("</full_claim>\r\n");
}
retTabSepStrBuff.append("</Detail2>");
}
retTabSepStrBuff.append("</Header0>\r\n");
retTabSepStrBuff.append("</group0>\r\n");
retTabSepStrBuff.append("</DocumentRoot>\r\n");
if(rs != null)
{
rs.close();
rs=null;
}
if(pstmt != null)
{
pstmt.close();
pstmt=null;
}
resultString = retTabSepStrBuff.toString();
System.out.println("ResultString....." + resultString);
}
catch (Exception e)
{
System.out.println("Exception :PerkClaimWOLoanAdjPrc :getData(Document headerDom, Document detailDom, String windowName, String xtraParams):" + e.getMessage() + ":");
e.printStackTrace();
try
{
conn.rollback();
}
catch(Exception d) {throw new ITMException(d);}
}
finally
{
try
{
if(isError)
{
conn.rollback();
}
else
{
conn.commit();
conn.close();
conn = null;
}
if(rs != null)
{
rs.close();
rs=null;
}
if(pstmt != null)
{
pstmt.close();
pstmt=null;
}
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
return resultString;
}//END OF GETDATA(2)
public String process(String xmlString, String xmlString2, String xtraParams) throws RemoteException,ITMException
{
Document detailDom = null;
Document headerDom = null;
Connection conn = null;
String retStr = "";
boolean isError = false;
try
{
conn = getConnection();
if(xmlString != null && xmlString.trim().length() > 0)
{
headerDom = genericUtility.parseString(xmlString);
}
if(xmlString2 != null && xmlString2.trim().length() > 0)
{
detailDom = genericUtility.parseString(xmlString2);
}
retStr = process(headerDom, detailDom, xtraParams,conn);
System.out.println("Process forEmpITConfPrc ::"+retStr);
if ((retStr != null && retStr.trim().length() > 0) && (retStr.indexOf("Errors") != -1)) //Error
{
isError = true;
return retStr;
}
else
{
retStr = itmDBAccessEJB.getErrorString("","VPPRKWPRS9","","",conn);//Success
isError = false;
return retStr;
}
}
catch (Exception e)
{
System.out.println("Exception :PerkClaimWOLoanAdjPrc :process(String xmlString2, String xmlString2, String xtraParams):" + e.getMessage() + ":");
e.printStackTrace();
try
{
conn.rollback();
}
catch(Exception d)
{
throw new ITMException(d);
}
}
finally
{
try
{
if(isError)
{
conn.rollback();
}
else
{
conn.commit();
conn.close();
conn = null;
}
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
return retStr;
}//END OF PROCESS (1)
public String process(Document headerDom, Document detailDom, String xtraParams,Connection conn) throws RemoteException,ITMException
{
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
boolean isError = false;
Timestamp currentDate = null, ldFrdt = null, ldTodt = null,ldStartDt = null , ldEndDt = null,startDate = null , endDate = null;
java.util.Date claimDate = null;
String lsPayrollVouch = "",lsPayRollPrd = "",ldclaimDate = "", lsBankParm = "", lsPayModeParm = "", lsAdCode = "";
String errString="",childNodeName="",lsEmp = "", lsAdCd = "",userId = "", chgTerm = "";
String lsBankEnv = "",lsAd = "",lsPyrlAdclaim = "",keyString = "",sql = "",lsMonth = "";
String lsEmpCode = "",lcStartDate = "",lcEndDate="",lcAdCode="",lsfullClaim = "",lsPrevEmp = " ",lsTranId = "";
String paySite = "",finEntity = "",deptCode = "",payMode = "",currCode = "",bankCode = "",acctCode = "", cctrCode = "",tranIdGenerate = "";
String lsadCodeProc = "", lsAdCodeDet = "", lsRndOff = "",lsPostYN = "",lsAdShdescr="";
double lcBalAmt1= 0.0 , lcClaimAmt1 = 0.0,lcTempBal = 0.0,lcTotClaimAmt = 0.0,lcVouchHdrAmt =0.0;
double lcBaseAmt = 0.0 , lcSlabAmt = 0.0, lcResultAmt = 0.0, lcCalcAmt = 0.0, lcAmt = 0.0, lcRndTo = 0.0;
int liClaimDet = 0,count = 0,liSeqNo = 0, liLineNo = 0,parentNodeListLength = 0 , childNodeListLength = 0,cnt1 = 0;
HashMap<String , String> headerDomValues = new HashMap<>();
HashMap dwPayrvHdr = new HashMap();
HashMap<String, String> dwPerkProcessDet = new HashMap<>();
ArrayList payDetList = new ArrayList();
HashMap payDet = null;
String erroCode = "",lsAdname = "",lcBalAmtStr = "", lcClaimAmtStr = "";
int cntr = 0;
SimpleDateFormat sdf = null;
try
{
sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
System.out.println("Inside process method for [HEADER DOM] ["+genericUtility.serializeDom(headerDom)+"] \n "
+ "[DETAIL DOM]"+genericUtility.serializeDom(detailDom)+"]");
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"loginCode");
chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"termId");
System.out.println("userId ["+userId+"] \t chgTerm ["+chgTerm+"]");
currentDate = utilMethod.dateTime(utilMethod.todaySqlDate(),utilMethod.now());
cnt1 = getNumOfNonDelDetail(detailDom,2);
System.out.println("parentNodeListLength::["+parentNodeListLength+"] \n cnt1 is ["+cnt1+"]");
if(cnt1 == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTBLNKDTL",userId,"",conn);
return errString;
}
headerDomValues = getHeaderDomValues(headerDom);
for(String keys : headerDomValues.keySet())
{
lsPayrollVouch = checkNullAndTrim(headerDomValues.get("payroll_voucher"));
lsPayRollPrd = checkNullAndTrim(headerDomValues.get("payroll_prd"));
ldclaimDate = checkNullAndTrim(headerDomValues.get("claim_date"));
lsBankParm = checkNullAndTrim(headerDomValues.get("bank_code"));
lsPayModeParm = checkNullAndTrim(headerDomValues.get("pay_mode"));
lsAdCode = checkNullAndTrim(headerDomValues.get("ad_code"));
}
System.out.println("payroll_voucher ["+lsPayrollVouch+"] \t payroll_prd ["+lsPayRollPrd+"] \t claim_date ["+ldclaimDate+"] \t bank_code ["+lsBankParm+"] \t pay_mode ["+lsPayModeParm+"] \t ad_code ["+lsAdCode+"]");
if(ldclaimDate != null && ldclaimDate.trim().length() > 0)
{
claimDate = sdf.parse(ldclaimDate);
}
System.out.println("Claim Date is ["+claimDate+"] \t Current Date is ["+currentDate+"]");
lsBankEnv = objAdmCommon.getEnv("999999", "BANKCODE", conn);
System.out.println("lsBankEnv ["+lsBankEnv+"]");
if((lsBankEnv != null && lsBankEnv.trim().length() >0) && ("NULLFOUND".equalsIgnoreCase(lsBankEnv)))
{
errString = itmDBAccessEJB.getErrorString("","VSENVAR1","","",conn);
return errString;
}
// --------------------- PB Code Not Migrated -------------------- [START] ----------------
/*
// Modified by Piyush on 20/05/2011 [AD1BSUN002].Start
nvo_datastore lds_empadclaimdedndet
lds_empadclaimdedndet = create nvo_datastore
lds_empadclaimdedndet.dataobject = 'd_empad_claim_othdedn_brow'
lds_empadclaimdedndet.settransobject(sqlca)
dw_perk_process = create datastore
dw_perk_process.dataobject = 'd_perk_claim_oth_dedn'
dw_perk_process.settransobject(sqlca)
dw_perk_ad1 = create datastore
dw_perk_ad1.dataobject = 'd_perk_claim_oth_dedn'
dw_perk_ad1.settransobject(sqlca)
dw_perk_ad = create datastore
dw_perk_ad.dataobject = 'd_perk_allwdedn'
dw_perk_ad.settransobject(sqlca)
dw_perk_process_det = create datastore
dw_perk_process_det.dataobject = 'd_empad_claim_othdedn_brow'
dw_perk_process_det.settransobject(sqlca)
declare adcodes cursor for select ad_code from allwdedn;
open adcodes;
fetch adcodes into :ls_adname;
do while sqlca.sqlcode = 0
ls_adname = trim(ls_adname)
ls_modstr = 'Create compute(band=detail alignment="0" expression="0"border="0" color="0" x="6515" y="8" height="65" width="179" format="[GENERAL]" name='+ls_adname+'_b font.face="Times New Roman" font.height="-10" font.weight="400" font.family="1" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" )'
if len(dw_perk_ad1.modify(ls_modstr)) > 0 then
errcode = 'VSPAYFORB'
exit
end if
ls_modstr = 'Create compute(band=detail alignment="0" expression="0"border="0" color="0" x="6515" y="8" height="65" width="179" format="[GENERAL]" name='+ls_adname+'_s font.face="Times New Roman" font.height="-10" font.weight="400" font.family="1" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" )'
if len(dw_perk_ad1.modify(ls_modstr)) > 0 then
errcode = 'VSPAYFORS'
exit
end if
ls_modstr = 'Create compute(band=detail alignment="0" expression="0"border="0" color="0" x="6515" y="8" height="65" width="179" format="[GENERAL]" name='+ls_adname+' font.face="Times New Roman" font.height="-10" font.weight="400" font.family="1" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" )'
if len(dw_perk_ad1.modify(ls_modstr)) > 0 then
errcode = 'VSPAYFOR'
exit
end if
fetch next adcodes into :ls_adname;
loop
close adcodes;
if len(trim(errcode)) <> 0 then
goto errfound
end if
ls_perksyntax = dw_perk_ad1.describe("Datawindow.syntax")
select code into :ls_prd from period
where :ld_claim between fr_date and to_date;
gf_set_env_var_nvo('999999', 'w_perk_process',env_var_str[],env_var_date[],env_var_num[])
(ls_prd, 'w_perk_process',env_var_str[],env_var_date[],env_var_num[])
// Modified by Piyush on 20/05/2011 [AD1BSUN002].End
*/
// --------------------- PB Code Not Migrated -------------------- [END] ------------------
lsAd = lsAdCode;
System.out.println("lsAd ["+lsAd+"]");
sql = "select sh_descr from allwdedn where ad_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsAdCode);
rs = pstmt.executeQuery();
if(rs.next())
{
lsAdShdescr = rs.getString("sh_descr");
//setNodeValue( detailDom, "emp_code", "ZZZZZZZZZZ" );
}
System.out.println("lsAdShdescr ["+lsAdShdescr+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if("P".equalsIgnoreCase(lsPayrollVouch))
{
lsPyrlAdclaim = objAdmCommon.getEnv("999999", lsAd.trim()+"_CLAIMAD", conn);
System.out.println("lsPyrlAdclaim ["+lsPyrlAdclaim+"]");
if((lsPyrlAdclaim == null || lsPyrlAdclaim.trim().length() == 0) || ("NULLFOUND".equalsIgnoreCase(lsPyrlAdclaim)))
{
errString = itmDBAccessEJB.getErrorString("","VSENVAR1",userId,"",conn);
return errString;
}
sql = "select fr_date, to_date from period where code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsPayRollPrd);
rs = pstmt.executeQuery();
if(rs.next())
{
ldFrdt = rs.getTimestamp("fr_date");
ldTodt = rs.getTimestamp("to_date");
System.out.println("fr_date ["+ldFrdt+"] \t to_date ["+ldTodt+"] ");
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTPED1","","",conn);//VTPED1 code not in database
return errString;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}//end for checking lsPayrollVouch == "P"
lsMonth = utilMethod.right(lsPayRollPrd,2);
System.out.println("lsMonth ["+lsMonth+"]");
sql = "select key_string as keystr from transetup where upper(tran_window) = 'T_EMP_ADCLAIM'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next())
{
keyString = checkNullAndTrim(rs.getString("keystr"));
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTSEQ","","",conn);//VTPED1 code not in database
return errString;
}
System.out.println("keyString"+keyString);
if( rs != null)
{
rs.close();
rs = null;
}
if( pstmt != null)
{
pstmt.close();
pstmt = null;
}
//For Loop to get Selected Details Data Values [START]
parentNodeList = detailDom.getElementsByTagName("Detail2");
parentNodeListLength = parentNodeList.getLength();
System.out.println("parentNodeListLength::["+parentNodeListLength+"]");
for (int selectedRow = 0; selectedRow < parentNodeListLength; selectedRow++)
{
parentNode = parentNodeList.item(selectedRow);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
for (int childRow = 0; childRow < childNodeListLength; childRow++)
{
childNode = childNodeList.item(childRow);
childNodeName = childNode.getNodeName();
System.out.println("childNodeListLength-->>["+childNodeListLength+"] \n childNodeName---->>["+childNodeName+"] ");
if("emp_code".equalsIgnoreCase(childNodeName))
{
lsEmpCode = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lsEmpCode = checkNullAndTrim(genericUtility.getColumnValue("emp_code",detailDom));
}
if("amt_bal".equalsIgnoreCase(childNodeName))
{
lcBalAmtStr = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lcBalAmtStr = genericUtility.getColumnValue("amt_bal",detailDom);
}
if("claim_amt".equalsIgnoreCase(childNodeName))
{
lcClaimAmtStr = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lcClaimAmtStr = genericUtility.getColumnValue("claim_amt",detailDom);
}
if("start_date".equalsIgnoreCase(childNodeName))
{
lcStartDate = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lcStartDate = checkNullAndTrim(genericUtility.getColumnValue("start_date",detailDom));
}
if("end_date".equalsIgnoreCase(childNodeName))
{
lcEndDate = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lcEndDate = checkNullAndTrim(genericUtility.getColumnValue("end_date",detailDom));
}
if("ad_code".equalsIgnoreCase(childNodeName))
{
lcAdCode = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lcAdCode = checkNullAndTrim(genericUtility.getColumnValue("ad_code",detailDom));
}
if("full_claim".equalsIgnoreCase(childNodeName))
{
lsfullClaim = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
//lsfullClaim = checkNullAndTrim(genericUtility.getColumnValue("full_claim",detailDom));
}
try{lcBalAmt1 = Double.valueOf(lcBalAmtStr);}catch(Exception e) {lcBalAmt1 = 0.0;};
try{lcClaimAmt1 = Double.valueOf(lcClaimAmtStr);}catch(Exception e) {lcClaimAmt1 = 0.0;};
if(lcStartDate != null && lcStartDate.trim().length() > 0)
{
startDate = Timestamp.valueOf(genericUtility.getValidDateString(lcStartDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
if(lcEndDate != null && lcEndDate.trim().length() > 0)
{
endDate = Timestamp.valueOf(genericUtility.getValidDateString(lcEndDate, genericUtility.getApplDateFormat(),genericUtility.getDBDateFormat()) + " 00:00:00.0");
}
}//End of First For Loop
System.out.print("selectedRow11 ["+selectedRow+"] \t emp_code ["+lsEmpCode+"] \t amt_bal ["+lcBalAmt1+"] \t claim_amt ["+lcClaimAmt1+"] \t start_date ["+lcStartDate+"] ["+startDate+"] \t end_date ["+lcEndDate+"] ["+endDate+"] \t ad_code ["+lcAdCode+"] \t full_claim ["+lsfullClaim+"]" );
//IF BLOCK for Claim Amount and Balance Amount CHECK [START]
if(lcBalAmt1 < 0)
{
if(lcClaimAmt1 > 0)
{
errString = itmDBAccessEJB.getErrorString("","VTCLAIMAM1","","",conn);
return errString;
}
else
{
if(lcClaimAmt1 < lcBalAmt1)
{
errString = itmDBAccessEJB.getErrorString("","VTCLAIMAM2","","",conn);
return errString;
}
}
}
else if(lcClaimAmt1 > lcBalAmt1)
{
errString = itmDBAccessEJB.getErrorString("","VTCLAIMAMT","","",conn);
return errString;
}
else if(lcClaimAmt1 < 0)
{
errString = itmDBAccessEJB.getErrorString("","VPCLMWLN03","","",conn);
return errString;
}
//IF BLOCK for Claim Amount and Balance Amount CHECK [END]
//lsPrevEmp = lsEmpCode;
sql = "select pay_site, site.fin_entity, dept_code, pay_mode, curr_code, employee.bank_code "
+ "from employee, site, finent where employee.pay_site = site.site_code and "
+ "site.fin_entity = finent.fin_entity and emp_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsEmpCode);
rs = pstmt.executeQuery();
if(rs.next())
{
paySite = checkNullAndTrim(rs.getString("pay_site"));
finEntity = checkNullAndTrim(rs.getString("fin_entity"));
deptCode= checkNullAndTrim(rs.getString("dept_code"));
payMode = checkNullAndTrim(rs.getString("pay_mode"));
currCode = checkNullAndTrim(rs.getString("curr_code"));
bankCode = checkNullAndTrim(rs.getString("bank_code"));
}
else
{
errString = itmDBAccessEJB.getErrorString("","VMEMPCD","","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
System.out.println("pay_site ["+paySite+"] \t fin_entity ["+finEntity+"] \t dept_code ["+deptCode+"] \t pay_mode ["+payMode+"] \t curr_code ["+currCode+"] \t bank_code ["+bankCode+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
sql = " select acct_code, cctr_code from department where dept_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, deptCode);
rs = pstmt.executeQuery();
if(rs.next())
{
acctCode = checkNullAndTrim(rs.getString("acct_code"));
cctrCode = checkNullAndTrim(rs.getString("cctr_code"));
}
System.out.println("acctCode is ["+acctCode+"] \t cctrCode is ["+cctrCode+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
String xmlValues = "";
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<tran_date>" + ldclaimDate + "</tran_date>";
xmlValues = xmlValues + "<site_code>" + paySite + "</site_code>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues for emp_adclaimhdr :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "SYSTEM", CommonConstants.DB_NAME);
tranIdGenerate = tg.generateTranSeqID("ECLAIM", "tran_id", keyString, conn);
System.out.println("tranIdGenerate for emp claim = "+tranIdGenerate); //working properly...
if(tranIdGenerate == null || tranIdGenerate.trim().length() == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTTRANID","","",conn);
return errString;
}
// [To locak allowdedn_bal table before processing as per multiple voucher case reported from Sun].Start
sql = "select amt_bal "
+ "from allowdedn_bal "
+ "where emp_code = ? "
+ "and ad_code = ? "
+ "and start_date = ? "
+ "and end_date = ? "
+ "for update nowait";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsEmpCode);
pstmt.setString(2,lcAdCode);
pstmt.setTimestamp(3,startDate);//need to check
pstmt.setTimestamp(4,endDate);//need to check
rs = pstmt.executeQuery();
if(rs.next())
{
lcTempBal = rs.getDouble("amt_bal");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
System.out.println("lcTempBal :: ["+lcTempBal+"] \t lcBalAmt1 :: ["+lcBalAmt1+"]");
if(lcTempBal != lcBalAmt1)
{
errString = itmDBAccessEJB.getErrorString("","VTCLAIMAMT","","",conn);
return errString;
}
// [To locak allowdedn_bal table before processing as per multiple voucher case reported from Sun].End
// Modified by Piyush on 13/02/2015 [To check the claim amount in case of full_claim = "Y"].Start
if(("Y".equalsIgnoreCase(lsfullClaim)) && (utilMethod.abs(lcBalAmt1) != utilMethod.abs(lcClaimAmt1)))
{
errString = itmDBAccessEJB.getErrorString("","VPCLMWOLN1","","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
// Modified by Piyush on 13/02/2015 [To check the claim amount in case of full_claim = "Y"].End
//If block for checking employee code with previous employee [START]
System.out.println("Employee ["+lsEmpCode+"] \t Previous Employee ["+lsPrevEmp+"] \t liClaimDet ["+liClaimDet+"] \t lsPayrollVouch ["+lsPayrollVouch+"] \t lcTotClaimAmt ["+lcTotClaimAmt+"]");
if(!(lsEmpCode.equalsIgnoreCase(lsPrevEmp)))
{
if(liClaimDet > 0)
{
if("P".equalsIgnoreCase(lsPayrollVouch))
{
if(lcTotClaimAmt != 0)
{
count = 0;
sql = "select count(*) as cnt "
+ "from employee_mthad "
+ "where emp_code = ? "
+ "and ad_code = ? "
+ "and eff_date = ? "
+ "and exp_date = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsPrevEmp);
pstmt.setString(2,lsPyrlAdclaim);
pstmt.setTimestamp(3,ldFrdt);
pstmt.setTimestamp(4,ldTodt);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt");
}
System.out.println("COUNT ["+count+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count > 0)
{
count = 0;
sql = "update employee_mthad set "
+ "type = 'F' , "
+ "amount = amount + ? , "
+ "ref_type = 'C' , "
+ "ref_no = ?, "
+ "prop_yn = 'N' "
+ "where emp_code = ? "
+ "and ad_code = ? "
+ "and eff_date = ? "
+ "and exp_date = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,lcTotClaimAmt);
pstmt.setString(2,tranIdGenerate);
pstmt.setString(3,lsPrevEmp);
pstmt.setString(4,lsPyrlAdclaim);
pstmt.setTimestamp(5,ldFrdt);
pstmt.setTimestamp(6,ldTodt);
count = pstmt.executeUpdate();
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
}
else
{
count = 0;
sql = "insert into employee_mthad (emp_code, month_code, ad_code, eff_date, exp_date, type, amount,"
+ "chg_date, chg_user, chg_term, ref_type, ref_no, prop_yn) "
+ "Values(?,?,?,?,?,'F',?,?,?,?,'C',?,'N')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsPrevEmp);
pstmt.setString(2,lsMonth);
pstmt.setString(3,lsPyrlAdclaim);
pstmt.setTimestamp(4, ldFrdt);
pstmt.setTimestamp(5, ldTodt);
pstmt.setDouble(6, lcTotClaimAmt);
pstmt.setTimestamp(7, currentDate);
pstmt.setString(8, userId);
pstmt.setString(9, chgTerm);
pstmt.setString(10, tranIdGenerate);
count = pstmt.executeUpdate();
System.out.println("no of row inserted employee_mthad = "+count);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
}
}//END ----if(lcTotClaimAmt != 0)
}//END IF----if("P".equalsIgnoreCase(lsPayrollVouch))
}//END ----(liClaimDet > 0)
lsPrevEmp = lsEmpCode;
if(lsBankParm != null && lsBankParm.trim().length() > 0)
{
bankCode = lsBankParm;
}
if(lsPayModeParm != null && lsPayModeParm.trim().length() > 0)
{
payMode = lsPayModeParm;
}
if(bankCode == null || bankCode.trim().length() == 0)
{
bankCode = lsBankEnv;
}
lcVouchHdrAmt = 0.0;
lcTotClaimAmt = 0.0;
liClaimDet = 0;
count = 0;
sql = " insert into emp_adclaimhdr (tran_id, tran_date, emp_code, claim_amt, loan_adjamt,"
+ " payroll_voucher, prd_code__payroll, chg_date, chg_user, chg_term, ad_code,confirmed) "
+ " values (?, ?,?,0,0,?,?,?,?,?,?,'Y')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranIdGenerate);
pstmt.setDate(2,claimDate ==null?null:new java.sql.Date(claimDate.getTime()));
pstmt.setString(3, lsEmpCode);
pstmt.setString(4, lsPayrollVouch);
pstmt.setString(5, lsPayRollPrd);
pstmt.setTimestamp(6, currentDate);
pstmt.setString(7, userId);
pstmt.setString(8, chgTerm);
pstmt.setString(9, lsAdCode);
count = pstmt.executeUpdate();
System.out.println("no of row inserted emp_adclaimhdr = "+count);
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
}//END ----(!(lsEmpCode.equalsIgnoreCase(lsPrevEmp)))
liClaimDet ++;
lcTotClaimAmt = lcTotClaimAmt + lcClaimAmt1;
lcVouchHdrAmt = lcVouchHdrAmt + lcClaimAmt1;
System.out.println("liClaimDet ["+liClaimDet+"] \t lcTotClaimAmt ["+lcTotClaimAmt+"] \t lcVouchHdrAmt["+lcVouchHdrAmt+"]");
if("V".equalsIgnoreCase(lsPayrollVouch))
{
String remarks = checkNullAndTrim(lsAdShdescr) + " Claim("+checkNullAndTrim(lsAdCode)+") on" + "("+utilMethod.day(claimDate)+")" ;
System.out.println("Remarks ["+remarks+"]");
dwPayrvHdr.put("tran_date", claimDate); //1
dwPayrvHdr.put("tran_type", "PRK"); //2
dwPayrvHdr.put("eff_date", claimDate); //3
dwPayrvHdr.put("emp_code", lsEmpCode); //4
dwPayrvHdr.put("ref_no", tranIdGenerate); //5
dwPayrvHdr.put("ref_date", claimDate); //6
dwPayrvHdr.put("bank_code", bankCode); //7
dwPayrvHdr.put("auto_pay", "Y"); //8
dwPayrvHdr.put("site_code", paySite); //9
dwPayrvHdr.put("fin_entity", finEntity); //10
dwPayrvHdr.put("tot_amt", 0.0); //11
dwPayrvHdr.put("anal_code", ""); //12
dwPayrvHdr.put("confirmed", "N"); //13
dwPayrvHdr.put("paid", "N"); //14
dwPayrvHdr.put("acct_code__pay", acctCode); //15
dwPayrvHdr.put("cctr_code__pay", cctrCode); //16
dwPayrvHdr.put("pay_mode", payMode); //17
dwPayrvHdr.put("batch_no", paySite+lsAdCode); //18
dwPayrvHdr.put("vouch_type", "O"); //19
dwPayrvHdr.put("curr_code", currCode); //20
dwPayrvHdr.put("exch_rate", 1.0); //21
dwPayrvHdr.put("remarks", remarks); //22
dwPayrvHdr.put("chg_date", currentDate); //23
dwPayrvHdr.put("chg_user", userId); //24
dwPayrvHdr.put("chg_term", chgTerm);
payDet = new HashMap<>();
payDet.put("ad_code", lsAdCode);
payDet.put("amount", lcClaimAmt1);
payDetList.add(payDet);
System.out.println("HashMap [dwPayrvHdr] ::: ["+dwPayrvHdr+"] \n payDetList is ::: ["+payDetList+"]");
// --------------------- PB Code Not Migrated -------------------- [START] ----------------
/*
// Modified by Piyush on 20/05/2011 to support other deduction [AD1BSUN002].Start
errcode = gbf_calc_oth_dedn(ls_emp , ls_ad , ld_start , ld_claim , lc_claimamt , 0 , ls_tranid , ls_perksyntax)
if not isnull(errcode) and len(trim(errcode)) > 0 then exit
ll_othdedn_rowcnt = dw_perk_process_det.rowcount()
if ll_othdedn_rowcnt > 0 then
for ll_1 = 1 to ll_othdedn_rowcnt
// Modified by Piyush on 01/10/2011 to create proper line no for emp_adclaim_dedn insertion
//li_line_no = li_line_no + ll_1
li_line_no = li_line_no + 1
ls_ad_code__proc = dw_perk_process_det.getitemstring(ll_1 , "ad_code__proc")
ls_ad_code_det = dw_perk_process_det.getitemstring(ll_1 , "ad_code")
lc_base_amt = dw_perk_process_det.getitemdecimal(ll_1 , "base_amt")
lc_slab_amt = dw_perk_process_det.getitemdecimal(ll_1 , "slab_amt")
lc_result_amt = dw_perk_process_det.getitemdecimal(ll_1 , "result_amt")
lc_calc_amt = dw_perk_process_det.getitemdecimal(ll_1 , "calc_amt")
lc_amt = dw_perk_process_det.getitemdecimal(ll_1 , "amount")
li_seq_no = integer(dw_perk_process_det.getitemstring(ll_1 , "seq_no"))
lc_rnd_to = dw_perk_process_det.getitemdecimal(ll_1 , "rnd_to")
ls_rnd_off = dw_perk_process_det.getitemstring(ll_1 , "rnd_off")
ls_post_yn = "N"
select case when post_yn is null then 'N' when post_yn = 'Y' then 'Y' else 'N' end into :ls_post_yn from allwdedn where ad_code = :ls_ad_code_det;
if get_sqlcode() < 0 then
errcode = "DS000" + trim(string(sqlca.sqldbcode)) + "~t" + sqlca.sqlerrtext
exit
else
if ls_post_yn = "Y" then
li_claim_det++
dw_payrv_det.insertrow(0)
dw_payrv_det.setitem(li_claim_det, "ad_code", ls_ad_code_det)
dw_payrv_det.setitem(li_claim_det, "amount", lc_amt)
lc_vouch_hdr_amt = lc_vouch_hdr_amt + lc_amt
end if
insert into emp_adclaim_dedn( tran_id , line_no , emp_code , ad_code__claim , eff_date , claim_amt , ad_code__proc ,
ad_code , base_amt , slab_amt , result_amt , calc_amt , amount , seq_no , rnd_off , rnd_to , post_yn)
values (:ls_tranid , :li_line_no , :ls_emp , :ls_ad , :ld_start , :lc_claimamt , :ls_ad_code__proc ,
:ls_ad_code_det , :lc_base_amt , :lc_slab_amt , :lc_result_amt , :lc_calc_amt , :lc_amt ,
:li_seq_no , :ls_rnd_off , :lc_rnd_to, :ls_post_yn);
if get_sqlcode() < 0 then
errcode = "DS000" + trim(string(sqlca.sqldbcode)) + "~t" + sqlca.sqlerrtext
exit
end if
end if
next
if not isnull(errcode) and len(trim(errcode)) > 0 then
exit
end if
end if
// Modified by Piyush on 20/05/2011 to support other deduction [AD1BSUlsfullClaimN002].End
*/
// --------------------- PB Code Not Migrated -------------------- [END] ----------------
count = 0;
sql = "update emp_adclaimhdr set claim_amt = ? where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,lcTotClaimAmt);
pstmt.setString(2,tranIdGenerate);
count = pstmt.executeUpdate();
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
System.out.println("Updated ["+count+"] rows for emp_adclaimhdr table");
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//Claimed amount should be same as balance amount in case of full claim
return errString;
}
PerkClaimProcessComm pclaim = new PerkClaimProcessComm();
errString = pclaim.payrollVoucher(dwPayrvHdr,payDetList, "dw_claim",xtraParams,conn);
System.out.println("errString 625=="+errString);
if(errString != null && errString.trim().length() > 0)
{
//errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);
return errString;
}
}
System.out.println("lcAdCode["+lcAdCode+"] \n lsEmpCode["+lsEmpCode+"] \n startDate["+startDate+"]\n endDate["+endDate+"]\n lcClaimAmt1["+lcClaimAmt1+"]\n ");
erroCode = gbfClaimProc(lcAdCode, lsEmpCode, startDate, endDate, lcClaimAmt1, conn);//need to check
if((erroCode != null && erroCode.trim().length() > 0) && (erroCode.indexOf("Error") != -1))
{
errString = itmDBAccessEJB.getErrorString("",erroCode,"","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
count = 0;
sql = " INSERT INTO EMP_ADCLAIM"
+ " (TRAN_ID, EMP_CODE, AD_CODE,"
+ " EFF_DATE, BAL_AMT, CLAIM_AMT)"
+ " VALUES(?,?,?,?,?,?)";
System.out.println("EMP_ADCLAIM ::: "+sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIdGenerate);
pstmt.setString(2,lsEmpCode);
pstmt.setString(3,lsAd);
pstmt.setTimestamp(4,startDate);
pstmt.setDouble(5,lcBalAmt1);
pstmt.setDouble(6,lcClaimAmt1);
count = pstmt.executeUpdate();
System.out.println("NO Of Record Insert the EMP_ADCLAIM is ["+count+"]");
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//Claimed amount should be same as balance amount in case of full claime
return errString;
}
}//For Loop to get Selected Details Data Values [START]
}
catch(Exception e)
{
System.out.println("Exception :PerkClaimWOLoanAdjPrc :process(String xmlString2, String xmlString2, String xtraParams):" + e.getMessage() + ":");
e.printStackTrace();
try
{
conn.rollback();
}
catch(Exception d)
{
d.printStackTrace();
throw new ITMException(d);
}
errString = objAdmCommon.getErrorMessage(e, "");
System.out.println("errString ["+errString+"]");
//throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
errString = e.getMessage();
e.printStackTrace();
throw new ITMException(e);
}
}
System.out.println("Error Message=>"+errString.toString());
return errString;
}//END OF PROCESS(2)
public String checkNullAndTrim( String inputVal )
{
if ( inputVal == null )
{
inputVal = "";
}
else
{
inputVal = inputVal.trim();
}
return inputVal;
}
private String checkDouble(String input)
{
if(input == null || input.trim().length() == 0)
{
return "0";
}
else
{
return input.trim();
}
}
// Method [getNumOfNonDelDetail] --- START
private int getNumOfNonDelDetail(Document dom2,int detailNo)
{
Node childNode = null;
NodeList updateList;
String childNodeName = "";
String updateFlag="";
int cntr=0;
System.out.println("Inside getXmlDocument method!!!!!!!!!!!!!!");
try
{
System.out.println("detailString value is =="+genericUtility.serializeDom(dom2));
NodeList detailNoteList = dom2.getElementsByTagName("Detail"+detailNo);
for(int cnt = 0;cnt<detailNoteList.getLength();cnt++)
{
Node pNode=detailNoteList.item(cnt);
childNodeName = pNode.getNodeName();
updateFlag = getAttributeVal(pNode,"updateFlag");
System.out.println("updateFlag [" + updateFlag + "]");
if(!updateFlag.equalsIgnoreCase("D"))
{
cntr++;
}
System.out.println("Counter is ==="+cntr);
}
}
catch(Exception e)
{
System.out.println("Exception : : getNumOfNonDelDetail :"+e);
e.printStackTrace();
}
return cntr;
}
// Method [getNumOfNonDelDetail] --- END
// Method [getAttributeVal] --- START
private String getAttributeVal(Node dom, String attribName )throws ITMException
{
String AttribValue = null;
try
{
NodeList detailList = dom.getChildNodes();
int detListLength = detailList.getLength();
for(int ctr = 0; ctr < detListLength; ctr++)
{
Node curDetail = detailList.item(ctr);
if(curDetail.getNodeName().equals("attribute"))
{
AttribValue = curDetail.getAttributes().getNamedItem(attribName).getNodeValue();
break;
}
else
{
continue;
}
}
}
catch (Exception e)
{
System.out.println("Exception : : searchNode :"+e);
throw new ITMException(e);
}
return AttribValue;
}
// Method [getAttributeVal] --- END
// Method [getErrorXml] --- START
private String getErrorXml(String retXml)
{
System.out.println("retXml------["+ retXml + "]");
E12GenericUtility genericUtility = null;
NodeList parentNodeList = null;
Node parentNode = null;
NodeList childNodeList = null;
Node childNode = null;
String childNodeName = "";
String message = "";
String description = "";
String errId = "";
String msgType = "";
int childNodeLength = 0;
int ctr=0;
try
{
if(retXml.indexOf("<root>") != -1 || retXml.indexOf("<Root>") != -1 )
{
System.out.println("Inside root condition......");
genericUtility = new E12GenericUtility();
Document errDom = genericUtility.parseString(retXml);
parentNodeList = errDom.getElementsByTagName("root");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
childNodeLength = childNodeList.getLength();
for(ctr = 0; ctr < childNodeLength; ctr++)
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if("error".equalsIgnoreCase(childNodeName))
{
errId = childNode.getAttributes().getNamedItem("id").getNodeValue();
System.out.println("Error code -----["+ errId +"]");
msgType = childNode.getAttributes().getNamedItem("type").getNodeValue();
System.out.println("msgType--["+msgType+"]");
}
else if("message".equalsIgnoreCase(childNodeName))
{
message = genericUtility.getColumnValue("message", errDom);
System.out.println("message--["+message+"]");
}
else if("description".equalsIgnoreCase(childNodeName))
{
description = genericUtility.getColumnValue("description", errDom);
System.out.println("description--["+description+"]");
}
}
retXml = getErrorXML(message, description, errId, "",msgType);
System.out.println("retXml----[" + retXml + "]");
}
else
{
retXml = getErrorXML("Message", retXml, "VTCONFTRAN", "","P");
}
}
catch(Exception e)
{
System.out.println("Exception from getErrorXml---["+ e.getMessage() +"]");
e.printStackTrace();
return retXml;
}
return retXml;
}
// Method [getErrorXml] --- END
// Method [getErrorXML] --- START
public String getErrorXML(String message,String messageValue,String errorId, String traceInfo ,String type) throws RemoteException,ITMException
{
System.out.println("getErrorXML..........");
String errString = "";
try
{
errString = "";
StringBuffer valueXmlErrorString = new StringBuffer( "<?xml version=\"1.0\"?>\r\n<Root>\r\n<Header>\r\n<Errors>\r\n" );
valueXmlErrorString.append("<error id=\"").append(errorId).append("\" type=\""+type+"\"").append(" column_name=\"description\"").append(">");
//valueXmlErrorString.append("<message><![CDATA[").append(message).append("]]></message>\r\n");
valueXmlErrorString.append("<message><![CDATA[").append(message).append("]]></message>\r\n");
valueXmlErrorString.append("<description><![CDATA[").append(messageValue).append("]]></description>\r\n");
valueXmlErrorString.append("<type>"+type+"</type>\r\n");
valueXmlErrorString.append("<option></option>\r\n");
valueXmlErrorString.append("<time></time>\r\n");
valueXmlErrorString.append("<alarm></alarm>\r\n");
valueXmlErrorString.append("<source></source>\r\n");
valueXmlErrorString.append("<trace>Error : "+traceInfo+" </trace>\r\n");
valueXmlErrorString.append("<redirect>1</redirect>\r\n");
valueXmlErrorString.append("</error>\r\n");
valueXmlErrorString.append("</Errors>\r\n");
valueXmlErrorString.append("</Header>\r\n");
valueXmlErrorString.append( "</Root>\r\n" );
System.out.println( "\n****valueXmlErrorString :" + valueXmlErrorString.toString() + ":********" );
errString =valueXmlErrorString.toString();
System.out.println("Modified error string"+errString);
}
catch (Exception ex)
{
ex.printStackTrace();
}
return errString;
}
// Method [getErrorXML] --- END
//Migration of Method gbf_calc_oth_dedn (string as_empcode, string as_ad_code_claim, datetime ad_eff_date, datetime ad_claim_date, decimal ac_claim_amt, decimal ac_tot_claim_amt, string as_tran_id, string as_perk_ad1_syntax)[START]
private String gbfCalcOthDedn (String asEmpcode, String asAdCodeClaim, Timestamp adEffDate, Timestamp adClaimDate, Double acClaimAmt, Double acTotClaimAmt, String asTranId, String asPerkAd1Syntax,Connection conn) throws ITMException
{
String errorString = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
Timestamp ldchgDate = null;
String isPerkElig = "", lsEmpFname = "", lsEmpLname = "", empGrade = "", lsEmpCadre = "", empPaySite = "",
empDeptCode = "", stanCodeHq = "",lsAdCodePerk = "";
Timestamp empJoinDate = null;
double empBasic = 0.0;
int count = 0, getStatStanPaytable = 0;
String errorCode = "";
HashMap<String,String> dwPerkProcess = new HashMap<>();
HashMap dPerkAd = new HashMap<>();
HashMap dPerkAd1 = new HashMap<>();
HashMap dPerkProcessDet = new HashMap<>();
try
{
ldchgDate = utilMethod.dateTime(utilMethod.todaySqlDate(),utilMethod.now()); System.out.println("ldchgDate is ["+ldchgDate+"]");
isPerkElig = "N";
sql = "select emp_fname, emp_lname, grade, "
+ "cadre, date_join, pay_site, dept_code, "
+ "basic, stan_code__hq "
+ "from employee "
+ "where emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,asEmpcode);
rs = pstmt.executeQuery();
if(rs.next())
{
lsEmpFname = rs.getString("emp_fname");
lsEmpLname = rs.getString("emp_lname");
empGrade = rs.getString("grade");
lsEmpCadre = rs.getString("cadre");
empJoinDate = rs.getTimestamp("date_join");
empPaySite = rs.getString("pay_site");
empDeptCode = rs.getString("dept_code");
empBasic = rs.getDouble("basic");
stanCodeHq = rs.getString("stan_code__hq");
}
else
{
errorString = itmDBAccessEJB.getErrorString("","DS000","","",conn);
return errorString;
}
System.out.println("lsEmpFname ["+lsEmpFname+"] \t lsEmpLname ["+lsEmpLname+"] \t empGrade ["+empGrade+"] \t "+ "lsEmpCadre ["+lsEmpCadre+"] \t empJoinDate ["+empJoinDate+"] \t empPaySite ["+empPaySite+"] "+ "\t empDeptCode ["+empDeptCode+"] \t empBasic ["+empBasic+"] \t stanCodeHq ["+stanCodeHq+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
lsAdCodePerk = objAdmCommon.getAdmEnv(empPaySite, lsEmpCadre, empGrade, asAdCodeClaim.trim().toUpperCase()+"_PERKMAP_AD", adClaimDate, conn);
System.out.println("lsAdCodePerk ["+lsAdCodePerk+"]");
if("ERR~t<NULLFOUND>".equals(lsAdCodePerk))
{
errorString = objAdmCommon.getEnv("999999", asAdCodeClaim.trim().toUpperCase()+"_PERKMAP_AD", conn);
if("NULLFOUND".equalsIgnoreCase(lsAdCodePerk))
{
errorString = "";
lsAdCodePerk = "";
}
}
else if(utilMethod.left(lsAdCodePerk , 4).equals("ERR~t"))
{
errorString = utilMethod.mid(lsAdCodePerk , 5) + "Could not fetch environment <PROCESS_ATTD> from site_env table";
System.out.println("errorString is ["+errorString+"]");
lsAdCodePerk = "";
}
if(lsAdCodePerk == null || lsAdCodePerk.trim().length() == 0)
{
errorString = "";
return errorString;
}
sql = "select count(*) as cnt from allwdedn where ad_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsAdCodePerk);
rs = pstmt.executeQuery();
if(rs.next())
{
count = rs.getInt("cnt"); System.out.println("Count Value is ["+count+"]");
}
else
{
errorString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//VTPED1 code not in database
return errorString;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
String isPerk = "";
isPerk = lsAdCodePerk;
getStatStanPaytable = gfGetStatStanPaytable(empDeptCode,empPaySite,stanCodeHq,"",conn);//payTable Value
if(getStatStanPaytable != 0)
{
errorString = itmDBAccessEJB.getErrorString("","VMPYTAB2","","",conn);//VTPED1 code not in database
return errorString;
}
dwPerkProcess.put("tran_id", asTranId);
dwPerkProcess.put("emp_code", asEmpcode);
dwPerkProcess.put("ad_code", isPerk);
dwPerkProcess.put("proc_date", String.valueOf(adClaimDate));
dwPerkProcess.put("cadre_code", lsEmpCadre);
dwPerkProcess.put("grade_code", empGrade);
dwPerkProcess.put("dept_code", empDeptCode);
dwPerkProcess.put("pay_table", "");//pay_table need to check
dwPerkProcess.put("basic_amt", String.valueOf(acClaimAmt));
dwPerkProcess.put("net_amt", String.valueOf(acTotClaimAmt));
dwPerkProcess.put("prd_code", "");//prd_code need to check
dwPerkProcess.put("ad_code__claim", asAdCodeClaim);
dwPerkProcess.put("eff_date", String.valueOf(adEffDate));
errorCode = gbfCadrePerk(dwPerkProcess ,lsAdCodePerk,adClaimDate,conn);
if(errorCode != null && errorCode.trim().length() > 0)
{
errorString = itmDBAccessEJB.getErrorString("",errorCode,"","",conn);//VTPED1 code not in database
return errorString;
}
errorCode = gbfGradePerk(dwPerkProcess ,lsAdCodePerk,adClaimDate,conn);
if(errorCode != null && errorCode.trim().length() > 0)
{
errorString = itmDBAccessEJB.getErrorString("",errorCode,"","",conn);//VTPED1 code not in database
return errorString;
}
errorCode = gbfEmployeePerk(dwPerkProcess ,lsAdCodePerk,adClaimDate,conn);
if(errorCode != null && errorCode.trim().length() > 0)
{
errorString = itmDBAccessEJB.getErrorString("",errorCode,"","",conn);//VTPED1 code not in database
return errorString;
}
//----------------------------- NOT MIGRATED ---------------------------------------
/* is_perk_elig = 'N' then
dw_perk_process.reset()
dw_perk_process_det.reset()
return ""
end if
if dw_perk_ad1.create(as_perk_ad1_syntax,errcode) <> 1 then
errcode = "DWCRTERR~t"+errcode
exit
end if
dw_perk_process.RowsCopy(dw_perk_process.GetRow(),dw_perk_process.GetRow(),Primary!,dw_perk_ad1,1,Primary!) */
errorCode = gbfPerkCalc(dwPerkProcess,dPerkAd,dPerkAd1,asEmpcode,adClaimDate , dPerkProcessDet , isPerk ,asAdCodeClaim);
if(errorCode != null && errorCode.trim().length() > 0)
{
errorString = itmDBAccessEJB.getErrorString("",errorCode,"","",conn);//VTPED1 code not in database
return errorString;
}
}
catch(Exception e)
{
System.out.println("Inside Method [gbfCalcOthDedn] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("::::::: ["+e.getMessage()+"]");
}
}
return errorString;
}
//Migration of Method gbf_calc_oth_dedn (string as_empcode, string as_ad_code_claim, datetime ad_eff_date, datetime ad_claim_date, decimal ac_claim_amt, decimal ac_tot_claim_amt, string as_tran_id, string as_perk_ad1_syntax)[END]
//Migration of Method gf_get_stat_stan_paytable (string mdeptcode, string msitecode, string as_stan_code__hq, ref string as_paytable) [START]
private int gfGetStatStanPaytable (String mdeptcode, String msitecode, String asStanCodeHq, String asPaytable,Connection conn) throws ITMException
{
int retval = 0;
String lsStateCodeHq = "" , lsPayTable = "", sql = "",sql1 = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
int count = 0;
try
{
System.out.println("mdeptcode ["+mdeptcode+"] \t msitecode ["+msitecode+"] \t asStanCodeHq ["+asStanCodeHq+"] \t asStanCodeHq ["+asStanCodeHq+"]");
sql1 = "select pay_table from site_stan_paytbl where site_code = ? and state_code = ? and stan_code = ?";
if(asStanCodeHq != null && asStanCodeHq.trim().length() > 0)
{
sql = "select state_code from station where stan_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,asStanCodeHq);
rs = pstmt.executeQuery();
if(rs.next())
{
count++;
lsStateCodeHq = rs.getString("state_code");
}
System.out.println("state_code >>>>>>>>> ["+lsStateCodeHq+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
retval = -1;
}
else
{
count = 0;
pstmt = conn.prepareStatement(sql1);
pstmt.setString(1,msitecode);
pstmt.setString(2,lsStateCodeHq);
pstmt.setString(3,asStanCodeHq);
rs = pstmt.executeQuery();
if(rs.next())
{
count++;
lsPayTable = checkNullAndTrim(rs.getString("pay_table"));
}
else if(lsPayTable == null || lsPayTable.trim().length() == 0)
{
count = 0;
pstmt = conn.prepareStatement(sql1);
pstmt.setString(1,msitecode);
pstmt.setString(2,lsStateCodeHq);
pstmt.setString(3," ");
rs = pstmt.executeQuery();
if(rs.next())
{
count++;
lsPayTable = checkNullAndTrim(rs.getString("pay_table"));
}
}
System.out.println("PAY_TABLE is ["+lsPayTable+"]");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
retval = -1;
}
}//asStanCodeHq is NOT NULL
if(retval != -1)
{
count = 0;
if(lsPayTable == null || lsPayTable.trim().length() == 0)
{
sql = "select pay_table from department where dept_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,mdeptcode);
rs = pstmt.executeQuery();
if(rs.next())
{
count++;
lsPayTable = checkNullAndTrim(rs.getString("pay_table"));
}
System.out.println("[pay_table] >> ["+lsPayTable+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
retval = -1;
}
else if(lsPayTable == null || lsPayTable.trim().length() == 0)
{
sql = "select pay_table from site where site_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,msitecode);
rs = pstmt.executeQuery();
if(rs.next())
{
count++;
lsPayTable = checkNullAndTrim(rs.getString("pay_table"));
}
System.out.println("[pay_table] >> ["+lsPayTable+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
retval = -1;
}
}
}
}//End of if for if(retval != -1)
}
catch(Exception e)
{
System.out.println("Inside Method [gfGetStatStanPaytable] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Finally ["+e.getMessage()+"]");
}
}
System.out.println("retval is ["+retval+"]");
return retval;
}
//Migration of Method gf_get_stat_stan_paytable (string mdeptcode, string msitecode, string as_stan_code__hq, ref string as_paytable) [END]
//Migration of Method gbf_cadre_perk (datastore dwname, string as_claimed_ad, datetime ad_claim_date) [START]
private String gbfCadrePerk(HashMap<String,String> dwname, String asClaimedAd, Timestamp asClaimDate,Connection conn) throws ITMException
{
String erroString = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
String isPaytable = "", isCadre = "";
String adCode = "", type = "",typeP = "";
double amount = 0.0, cycleTime = 0.0, cycleStart = 0.0,validityPeriod = 0.0,rndTo=0.0;
Timestamp lastProcFor = null, nextProcDate = null;
String rndOff = "",propYN = "",propOn = "",baseFormula="",payable="",postPN="",seqNo="",acctCodeSal="",isPerkElig="",
cctrCodeSal="", slabOption="",slabFormula="",resFormula="",balOpt="",forCondn="",sqlExpr="",sqlInput="",minVal="",maxVal="",itProj="";
HashMap<String,String> cadrePerkData = new HashMap<>();
try
{
System.out.println(" ------------- Inside gbfCadrePerk method ----------------- ");
//Iterate HashMap dwname [START]
for (String keys : dwname.keySet())
{
if("pay_table".equalsIgnoreCase(keys))
{
isPaytable = dwname.get("pay_table");
}
if("cadre_code".equalsIgnoreCase(keys))
{
isCadre = dwname.get("cadre_code");
}
}
//Iterate HashMap dwname [END]
sql = "select ad_code, type, amount,cycle_time, cycle_start, "
+ "last_proc_for, next_proc_date,validity_period "
+ "from cadre_perk where "
+ "pay_table = ? "
+ "and cadre_code = ? "
+ "and ad_code__main = ? "
+ "and ? >= eff_date and ? <= exp_date";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,isPaytable);
pstmt.setString(2,isCadre);
pstmt.setString(3,asClaimedAd);
pstmt.setTimestamp(4,asClaimDate);
pstmt.setTimestamp(5,asClaimDate);
rs = pstmt.executeQuery();
if(rs.next())
{
adCode = checkNullAndTrim(rs.getString("ad_code"));
typeP = checkNullAndTrim(rs.getString("type"));
amount = rs.getDouble("amount");
cycleTime = rs.getDouble("cycle_time");
cycleStart = rs.getDouble("cycle_start");
lastProcFor = rs.getTimestamp("last_proc_for");
nextProcDate = rs.getTimestamp("next_proc_date");
validityPeriod = rs.getDouble("validity_period");
}
System.out.println("ad_code["+adCode+"]\t type["+type+"]\t amount["+amount+"]\t cycle_time["+cycleTime+"]\t cycle_start["+cycleStart+"]\t last_proc_for["+lastProcFor+"]\t next_proc_date["+nextProcDate+"]\t validity_period["+validityPeriod+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
isPerkElig = "Y";
sql = "select type, rnd_off, prop_yn, prop_on, rnd_to, "
+ "base_formula, payable, post_yn, seq_no, acct_code__sal, "
+ "cctr_code__sal, slab_option, slab_formula, res_formula, bal_opt, "
+ "for_condn, sql_expr, sql_input, min_val, "
+ "max_val, it_proj "
+ "from allwdedn "
+ "where ad_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,adCode);
rs = pstmt.executeQuery();
if(rs.next())
{
type = checkNullAndTrim(rs.getString("type"));
rndOff = rs.getString("rnd_off");
propYN = rs.getString("prop_yn");
propOn = rs.getString("prop_on");
rndTo = rs.getDouble("rnd_to");
baseFormula = rs.getString("base_formula");
payable = rs.getString("payable");
postPN = rs.getString("post_yn");
seqNo = rs.getString("seq_no");
acctCodeSal = rs.getString("acct_code__sal");
cctrCodeSal = rs.getString("cctr_code__sal");
slabOption = rs.getString("slab_option");
slabFormula = rs.getString("slab_formula");
resFormula = rs.getString("res_formula");
balOpt = rs.getString("bal_opt");
forCondn = rs.getString("for_condn");
sqlExpr = rs.getString("sql_expr");
sqlInput = rs.getString("sql_input");
minVal = rs.getString("min_val");
maxVal = rs.getString("max_val");
itProj = rs.getString("it_proj");
}
else
{
erroString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//VTPED1 code not in database
return erroString;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
cadrePerkData.put("ad_code", adCode);
cadrePerkData.put("type", type);
cadrePerkData.put("rnd_off", rndOff);
cadrePerkData.put("prop_yn", propYN);
cadrePerkData.put("prop_on", propOn);
cadrePerkData.put("rnd_to", String.valueOf(rndTo));
cadrePerkData.put("base_formula", baseFormula);
cadrePerkData.put("payable", payable);
cadrePerkData.put("post_yn", postPN);
cadrePerkData.put("seq_no", seqNo);
cadrePerkData.put("acct_code__sal", acctCodeSal);
cadrePerkData.put("cctr_code__sal", cctrCodeSal);
cadrePerkData.put("slab_option", slabOption);
cadrePerkData.put("slab_formula", slabFormula);
cadrePerkData.put("res_formula", resFormula);
cadrePerkData.put("bal_opt", balOpt);
cadrePerkData.put("for_condn", forCondn);
cadrePerkData.put("sql_expr", sqlExpr);
cadrePerkData.put("sql_input", sqlInput);
cadrePerkData.put("min_val", minVal);
cadrePerkData.put("max_val", maxVal);
cadrePerkData.put("it_proj", itProj);
cadrePerkData.put("type_p", typeP);
cadrePerkData.put("amount", String.valueOf(amount));
cadrePerkData.put("cycle_time", String.valueOf(cycleTime));
cadrePerkData.put("cycle_start", String.valueOf(cycleStart));
cadrePerkData.put("last_proc_for", String.valueOf(lastProcFor));
cadrePerkData.put("next_proc_date", String.valueOf(nextProcDate));
}//End of Try block
catch(Exception e)
{
System.out.println("Inside Method [gfGetStatStanPaytable] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Finally ["+e.getMessage()+"]");
}
}
return erroString;
}
//Migration of Method gbf_cadre_perk (datastore dwname, string as_claimed_ad, datetime ad_claim_date) [END]
//Migration of Method public function string gbf_grade_perk (datastore dwname, string as_claimed_ad, datetime ad_claim_date) [START]
private String gbfGradePerk (HashMap<String,String> dwname, String asClaimedAd, Timestamp adClaimDate,Connection conn) throws ITMException
{
String erroString = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
String isPaytable = "", isGrade = ""; //need to check
String adCode = "", type = "";
Timestamp lastProcFor = null, nextProcDate = null;
double amount = 0.0, cycleTime = 0.0, cycleStart = 0.0,validityPeriod = 0.0,rndTo = 0.0;
String allwType = "" , rndOff = "",propYN = "",propOn = "",baseFormula="",payable="",postPN="",seqNo="",acctCodeSal="",isPerkElig = "",
cctrCodeSal="", slabOption="",slabFormula="",resFormula="",balOpt="",forCondn="",sqlExpr="",sqlInput="",minVal="",maxVal="",itProj="";
HashMap<String,String> gradePerkData = new HashMap<>();
try
{
System.out.println("Inside gbfGradePerk method ");
//Iterate HashMap dwname [START]
for (String keys : dwname.keySet())
{
if("pay_table".equalsIgnoreCase(keys))
{
isPaytable = dwname.get("pay_table");
}
if("grade_code".equalsIgnoreCase(keys))
{
isGrade = dwname.get("grade_code");
}
System.out.println("pay_table ["+isPaytable+"] \t grade_code ["+isGrade+"]");
}
//Iterate HashMap dwname [END]
sql = "select ad_code, type, amount,cycle_time, cycle_start, "
+ "last_proc_for, next_proc_date,validity_period "
+ "from grade_perk where "
+ "pay_table = ? "
+ "and grade_code = ? "
+ "and ad_code__main = ? "
+ "and ? >= eff_date and ? <= exp_date";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,isPaytable);
pstmt.setString(2,isGrade);
pstmt.setString(3,asClaimedAd);
pstmt.setTimestamp(4,adClaimDate);
pstmt.setTimestamp(5,adClaimDate);
rs = pstmt.executeQuery();
if(rs.next())
{
adCode = rs.getString("ad_code");
type = rs.getString("type");
amount = rs.getDouble("amount");
cycleTime = rs.getDouble("cycle_time");
cycleStart = rs.getDouble("cycle_start");
lastProcFor = rs.getTimestamp("last_proc_for");
nextProcDate = rs.getTimestamp("next_proc_date");
validityPeriod = rs.getDouble("validity_period");
}
System.out.println("[111111] ad_code["+adCode+"]\t type["+type+"]\t amount["+amount+"]\t cycle_time["+cycleTime+"]\t cycle_start["+cycleStart+"]\t last_proc_for["+lastProcFor+"]\t next_proc_date["+nextProcDate+"]\t validity_period["+validityPeriod+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
isPerkElig = "Y";
sql = "select type, rnd_off, prop_yn, prop_on, rnd_to, "
+ "base_formula, payable, post_yn, seq_no, acct_code__sal, "
+ "cctr_code__sal, slab_option, slab_formula, res_formula, bal_opt, "
+ "for_condn, sql_expr, sql_input, min_val, "
+ "max_val, it_proj "
+ "from allwdedn "
+ "where ad_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,adCode);
rs = pstmt.executeQuery();
if(rs.next())
{
allwType = rs.getString("type");
rndOff = rs.getString("rnd_off");
propYN = rs.getString("prop_yn");
propOn = rs.getString("prop_on");
rndTo = rs.getDouble("rnd_to");
baseFormula = rs.getString("base_formula");
payable = rs.getString("payable");
postPN = rs.getString("post_yn");
seqNo = rs.getString("seq_no");
acctCodeSal = rs.getString("acct_code__sal");
cctrCodeSal = rs.getString("cctr_code__sal");
slabOption = rs.getString("slab_option");
slabFormula = rs.getString("slab_formula");
resFormula = rs.getString("res_formula");
balOpt = rs.getString("bal_opt");
forCondn = rs.getString("for_condn");
sqlExpr = rs.getString("sql_expr");
sqlInput = rs.getString("sql_input");
minVal = rs.getString("min_val");
maxVal = rs.getString("max_val");
itProj = rs.getString("it_proj");
}
else
{
erroString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//VTPED1 code not in database
return erroString;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
gradePerkData.put("ad_code", adCode);
gradePerkData.put("type", allwType);
gradePerkData.put("rnd_off", rndOff);
gradePerkData.put("prop_yn", propYN);
gradePerkData.put("prop_on", propOn);
gradePerkData.put("rnd_to", String.valueOf(rndTo));
gradePerkData.put("base_formula", baseFormula);
gradePerkData.put("payable", payable);
gradePerkData.put("post_yn", postPN);
gradePerkData.put("seq_no", seqNo);
gradePerkData.put("acct_code__sal", acctCodeSal);
gradePerkData.put("cctr_code__sal", cctrCodeSal);
gradePerkData.put("slab_option", slabOption);
gradePerkData.put("slab_formula", slabFormula);
gradePerkData.put("res_formula", resFormula);
gradePerkData.put("bal_opt", balOpt);
gradePerkData.put("for_condn", forCondn);
gradePerkData.put("sql_expr", sqlExpr);
gradePerkData.put("sql_input", sqlInput);
gradePerkData.put("min_val", minVal);
gradePerkData.put("max_val", maxVal);
gradePerkData.put("it_proj", itProj);
gradePerkData.put("type_p", type);
gradePerkData.put("amount", String.valueOf(amount));
gradePerkData.put("cycle_time", String.valueOf(cycleTime));
gradePerkData.put("cycle_start", String.valueOf(cycleStart));
gradePerkData.put("last_proc_for", String.valueOf(lastProcFor));
gradePerkData.put("next_proc_date", String.valueOf(nextProcDate));
}//END OF TRY BLOCK
catch(Exception e)
{
System.out.println("Inside Method [gfGetStatStanPaytable] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Finally ["+e.getMessage()+"]");
}
}
return erroString;
}
//Migration of Method public function string gbf_grade_perk (datastore dwname, string as_claimed_ad, datetime ad_claim_date) [END]
//Migration of Method public function string gbf_employee_perk (datastore dwname, string as_emp_code, string as_claimed_ad, datetime ad_claim_date) [START]
private String gbfEmployeePerk(HashMap<String,String> dwname, String asClaimedAd, Timestamp adClaimDate,Connection conn) throws ITMException
{
String erroString = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
String asEmpCode = "";
String adCode = "", type = "";
Timestamp lastProcFor = null, nextProcDate = null;
double amount = 0.0, cycleTime = 0.0, cycleStart = 0.0,validityPeriod = 0.0,rndTo = 0.0;
String allwType = "",rndOff = "",propYN = "",propOn = "",baseFormula="",payable="",postPN="",seqNo="",acctCodeSal="",
cctrCodeSal="", slabOption="",slabFormula="",resFormula="",balOpt="",forCondn="",sqlExpr="",sqlInput="",minVal="",maxVal="",itProj="";
HashMap<String,String> empPerkData = new HashMap<>();
try
{
System.out.println("Inside gbfEmployeePerk method ");
//Iterate HashMap dwname [START]
for (String keys : dwname.keySet())
{
if("emp_code".equalsIgnoreCase(keys))
{
asEmpCode = dwname.get("emp_code");
}
System.out.println("emp_code ["+asEmpCode+"]");
}
//Iterate HashMap dwname [END]
sql = "select ad_code, type, amount,cycle_time, cycle_start, "
+ "last_proc_for, next_proc_date,validity_period "
+ "from employee_perk where "
+ "emp_code = ? "
+ "and ad_code__main = ? "
+ "and ? >= eff_date and ? <= exp_date";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,asEmpCode);
pstmt.setString(2,asClaimedAd);
pstmt.setTimestamp(3,adClaimDate);
pstmt.setTimestamp(4,adClaimDate);
rs = pstmt.executeQuery();
if(rs.next())
{
adCode = rs.getString("ad_code");
type = rs.getString("type");
amount = rs.getDouble("amount");
cycleTime = rs.getDouble("cycle_time");
cycleStart = rs.getDouble("cycle_start");
lastProcFor = rs.getTimestamp("last_proc_for");
nextProcDate = rs.getTimestamp("next_proc_date");
validityPeriod = rs.getDouble("validity_period");
}
System.out.println("[22222] ad_code["+adCode+"]\t type["+type+"]\t amount["+amount+"]\t cycle_time["+cycleTime+"]\t cycle_start["+cycleStart+"]\t last_proc_for["+lastProcFor+"]\t next_proc_date["+nextProcDate+"]\t validity_period["+validityPeriod+"]");
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
sql = "select type, rnd_off, prop_yn, prop_on, rnd_to, "
+ "base_formula, payable, post_yn, seq_no, acct_code__sal, "
+ "cctr_code__sal, slab_option, slab_formula, res_formula, bal_opt, "
+ "for_condn, sql_expr, sql_input, min_val, "
+ "max_val, it_proj "
+ "from allwdedn "
+ "where ad_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,adCode);
rs = pstmt.executeQuery();
if(rs.next())
{
allwType = rs.getString("type");
rndOff = rs.getString("rnd_off");
propYN = rs.getString("prop_yn");
propOn = rs.getString("prop_on");
rndTo = rs.getDouble("rnd_to");
baseFormula = rs.getString("base_formula");
payable = rs.getString("payable");
postPN = rs.getString("post_yn");
seqNo = rs.getString("seq_no");
acctCodeSal = rs.getString("acct_code__sal");
cctrCodeSal = rs.getString("cctr_code__sal");
slabOption = rs.getString("slab_option");
slabFormula = rs.getString("slab_formula");
resFormula = rs.getString("res_formula");
balOpt = rs.getString("bal_opt");
forCondn = rs.getString("for_condn");
sqlExpr = rs.getString("sql_expr");
sqlInput = rs.getString("sql_input");
minVal = rs.getString("min_val");
maxVal = rs.getString("max_val");
itProj = rs.getString("it_proj");
}
else
{
erroString = itmDBAccessEJB.getErrorString("","DS000","","",conn);//VTPED1 code not in database
return erroString;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
empPerkData.put("ad_code", adCode);
empPerkData.put("type", allwType);
empPerkData.put("rnd_off", rndOff);
empPerkData.put("prop_yn", propYN);
empPerkData.put("prop_on", propOn);
empPerkData.put("rnd_to", String.valueOf(rndTo));
empPerkData.put("base_formula", baseFormula);
empPerkData.put("payable", payable);
empPerkData.put("post_yn", postPN);
empPerkData.put("seq_no", seqNo);
empPerkData.put("acct_code__sal", acctCodeSal);
empPerkData.put("cctr_code__sal", cctrCodeSal);
empPerkData.put("slab_option", slabOption);
empPerkData.put("slab_formula", slabFormula);
empPerkData.put("res_formula", resFormula);
empPerkData.put("bal_opt", balOpt);
empPerkData.put("for_condn", forCondn);
empPerkData.put("sql_expr", sqlExpr);
empPerkData.put("sql_input", sqlInput);
empPerkData.put("min_val", minVal);
empPerkData.put("max_val", maxVal);
empPerkData.put("it_proj", itProj);
empPerkData.put("type_p", type);
empPerkData.put("amount", String.valueOf(amount));
empPerkData.put("cycle_time", String.valueOf(cycleTime));
empPerkData.put("cycle_start", String.valueOf(cycleStart));
empPerkData.put("last_proc_for", String.valueOf(lastProcFor));
empPerkData.put("next_proc_date", String.valueOf(nextProcDate));
}//end of try block
catch(Exception e)
{
System.out.println("Inside Method [gfGetStatStanPaytable] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Finally ["+e.getMessage()+"]");
}
}
return erroString;
}
//Migration of Method public function string gbf_employee_perk (datastore dwname, string as_emp_code, string as_claimed_ad, datetime ad_claim_date) [END]
//Migration of Method function boolean gf_set_env_var_nvo (string periodcd, string as_classname, ref string env_var_str[], ref datetime env_var_date[], ref decimal env_var_num[]); [START]
private boolean gfSetEnvVarNVO(String periodcd, String as_classname,String envVarStr[],Timestamp envVarDate[], double envVarNum[],Connection conn) throws ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
String varValue = "", varType = "";
int varSubs = 0;
try
{
sql = "select var_value, var_type, var_subs "
+ "from payrparm "
+ "where prd_code = ? "
+ "and var_subs > 0";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,periodcd);
rs = pstmt.executeQuery();
while(rs.next())
{
varValue = rs.getString("var_value");
varType = rs.getString("var_type");
varSubs = rs.getInt("var_subs");
System.out.println("varValue ["+varValue+"] \t varType ["+varType+"] \t varSubs ["+varSubs+"]");
switch (varType)
{
case "S":
{
envVarStr[varSubs] = varValue;
}
break;
case "C":
{
envVarStr[varSubs] = varValue;
}
break;
case "D":
{
envVarDate[varSubs] = utilMethod.dateTime(utilMethod.date(Date.valueOf(varValue)));
}
break;
case "N":
{
envVarNum[varSubs] = Double.valueOf(varValue);
}
break;
}
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Method [gfGetStatStanPaytable] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
throw new ITMException(e);
}
return true;
}
//Migration of Method function boolean gf_set_env_var_nvo (string periodcd, string as_classname, ref string env_var_str[], ref datetime env_var_date[], ref decimal env_var_num[]); [END]
//Migration of Method function string gbf_claim_proc (string ls_ad, string ls_emp, datetime ld_start, datetime ld_end, decimal lc_claimamt) [START]
private String gbfClaimProc (String lsAd, String lsEmp, Timestamp ldStartDt, Timestamp ldEndDt, double lcClaimAmt , Connection conn) throws ITMException
{
String errorString = "";
PreparedStatement pstmt = null;
String sql = "";
int count = 0;
try
{
sql = "update allowdedn_bal "
+ "set "
+ "amt_bal = amt_bal - ? ,"
+ "amt_adj = amt_adj + ? "
+ "where "
+ "emp_code = ? "
+ "and ad_code = ? "
+ "and start_date = ? "
+ "and end_date = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1,lcClaimAmt);
pstmt.setDouble(2,lcClaimAmt);
pstmt.setString(3,lsEmp);
pstmt.setString(4,lsAd);
pstmt.setTimestamp(5,ldStartDt);
pstmt.setTimestamp(6,ldEndDt);
count = pstmt.executeUpdate();
System.out.println("Update ["+count+"] rows in Table allowdedn_bal");
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(count == 0)
{
errorString = itmDBAccessEJB.getErrorString("","DS000NR","","",conn);
return errorString;
}
}
catch(Exception e)
{
System.out.println("Inside Method [gbfClaimProc] of class [PerkClaimWOLoanAdjPrc] ::: "+e.getMessage());
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Finally[gbf_claim_proc] Method ["+e.getMessage()+"]");
throw new ITMException(e);
}
}
return errorString;
}
//Migration of Method function string gbf_claim_proc (string ls_ad, string ls_emp, datetime ld_start, datetime ld_end, decimal lc_claimamt) [END]
//Method getHeaderDomValues made to get Header[Detail1] Values in HashMap [START]
private HashMap<String,String> getHeaderDomValues(Document HeaderDom) throws ITMException
{
System.out.println("Inside getHeaderDomValues");
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
int childNodeListLength = 0;
HashMap<String , String> headerDomValues = new HashMap<>();
String childNodeName = "";
String lsPayrollVouch = "",lsPayRollPrd = "",ldclaimDate = "", lsBankParm = "", lsPayModeParm = "", lsAdCode = "";
try
{
parentNodeList = HeaderDom.getElementsByTagName("Detail1");
int parentNodeListLength = parentNodeList.getLength();
for (int selectedRow = 0; selectedRow < parentNodeListLength; selectedRow++)
{
parentNode = parentNodeList.item(selectedRow);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
for (int childRow = 0; childRow < childNodeListLength; childRow++)
{
childNode = childNodeList.item(childRow);
childNodeName = childNode.getNodeName();
System.out.println("childNodeListLength-->>["+childNodeListLength+"] \n childNodeName---->>["+childNodeName+"] ");
if("payroll_voucher".equalsIgnoreCase(childNodeName))
{
lsPayrollVouch = checkNullAndTrim(genericUtility.getColumnValue("payroll_voucher",HeaderDom));
headerDomValues.put("payroll_voucher", lsPayrollVouch);
}
if("payroll_prd".equalsIgnoreCase(childNodeName))
{
lsPayRollPrd = checkNullAndTrim(genericUtility.getColumnValue("payroll_prd",HeaderDom));
headerDomValues.put("payroll_prd", lsPayRollPrd);
}
if("claim_date".equalsIgnoreCase(childNodeName))
{
ldclaimDate = checkNullAndTrim(genericUtility.getColumnValue("claim_date",HeaderDom));
headerDomValues.put("claim_date", ldclaimDate);
}
if("bank_code".equalsIgnoreCase(childNodeName))
{
lsBankParm = checkNullAndTrim(genericUtility.getColumnValue("bank_code",HeaderDom));
headerDomValues.put("bank_code", lsBankParm);
}
if("pay_mode".equalsIgnoreCase(childNodeName))
{
lsPayModeParm = checkNullAndTrim(genericUtility.getColumnValue("pay_mode",HeaderDom));
headerDomValues.put("pay_mode", lsPayModeParm);
}
if("ad_code".equalsIgnoreCase(childNodeName))
{
lsAdCode = checkNullAndTrim(genericUtility.getColumnValue("ad_code",HeaderDom));
headerDomValues.put("ad_code", lsAdCode);
}
}//End of For Loop
}//End of Main For Loop
}
catch(Exception e)
{
System.out.println("Inside Method[getHeaderDomValues] Method ["+e.getMessage()+"]");
throw new ITMException(e);
}
System.out.println("headerDomValues ["+headerDomValues.toString()+"]");
return headerDomValues;
}
//Method getHeaderDomValues made to get Header[Detail1] Values in HashMap [END]
private static void setNodeValue( Document dom, String nodeName, String nodeVal ) throws Exception
{
Node tempNode = dom.getElementsByTagName( nodeName ).item(0);
if( tempNode != null )
{
if( tempNode.getFirstChild() == null )
{
CDATASection cDataSection = dom.createCDATASection( nodeVal );
tempNode.appendChild( cDataSection );
}
else
{
tempNode.getFirstChild().setNodeValue(nodeVal);
}
}
tempNode = null;
}
private String gbfPerkCalc(HashMap<String,String> dPerkProcess , HashMap<String,String> dPerkAd , HashMap<String,String> dPerkAd1 , String mempcode, Timestamp adClaimedDate, HashMap<String,String> dPerkProcessDet, String asAdCodeProc, String asAdCodeClaim) throws ITMException
{
String errString = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String lsCurrentTranid = "", lsAdname = "", lsBaseOpt = "", lsSlabOpt = "", lsResForm = "", lcAmount = "", lsType = "", lsProp = "",
lsPropon = "", lsSlabForm = "", lsRndoff = "", lcRndto = "";
double amt = 0.0 , lcBaseAmt = 0.0 , lcSlabAmt = 0.0, lcResult = 0.0,rmdTo = 0.0,lcAmount1 = 0.0,lsAdName1 = 0.0;
String lsModStr = "";
try
{
//Iterate HashMap dwname [START]
for (String keys : dPerkProcess.keySet())
{
if("tran_id".equalsIgnoreCase(keys))
{
lsCurrentTranid = dPerkProcess.get("tran_id");
}
System.out.println("tran_id ["+lsCurrentTranid+"]");
}
//Iterate HashMap dwname [END]
for (String keys : dPerkAd.keySet())
{
lsAdname = checkNullAndTrim(dPerkAd.get("ad_code"));
lsBaseOpt = checkNullAndTrim(dPerkAd.get("base_formula"));
lsSlabOpt = checkNullAndTrim(dPerkAd.get("slab_option"));
lsSlabForm = checkNullAndTrim(dPerkAd.get("slab_formula"));
lsResForm = checkNullAndTrim(dPerkAd.get("res_formula"));
lcAmount = checkDouble(dPerkAd.get("ad_code"));
lsType = checkNullAndTrim(dPerkAd.get("type_p"));
lsProp = checkNullAndTrim(dPerkAd.get("prop_yn"));
lsPropon = checkNullAndTrim(dPerkAd.get("prop_on"));
lsRndoff = checkNullAndTrim(dPerkAd.get("rnd_off"));
lcRndto = checkNullAndTrim(dPerkAd.get("rnd_to"));
if(lsBaseOpt != null && lsBaseOpt.trim().length() > 0)
{
lsModStr = lsAdname + "_b.expression= '" + lsBaseOpt + "'";
/*
----------- NOT MIGRATED ---------------
if len(d_perk_ad1.modify(ls_modstr)) > 0 then
ls_errcode = 'VSPAYFORB'
exit
end if
----------- NOT MIGRATED ---------------
*/
}
if("D".equalsIgnoreCase(lsSlabOpt) || "C".equalsIgnoreCase(lsSlabOpt))
{
if(lsSlabForm != null && lsSlabForm.trim().length() > 0)
{
lsModStr = lsAdname + "_s.expression= '" + lsSlabOpt + "'";
/*
------------------ NOT MIGRATED ----------------
if len(d_perk_ad1.modify(ls_modstr)) > 0 then
ls_errcode = 'VSPAYFORS'
end if
lc_advals = d_perk_ad1.GetItemDecimal(1,ls_adname+"_s")
lc_advalb = d_perk_ad1.GetItemDecimal(1,ls_adname+"_b")
lc_advals = gf_getslabamt(ls_adname,ad_claimed_date,ls_slabopt,lc_advals,lc_advalb)
ls_modstr = ls_adname + "_s.expression='"+String(lc_advals)+"'"
if len(d_perk_ad1.modify(ls_modstr)) > 0 then
ls_errcode = 'VSPAYFORS'
exit
end if
*/
//------------------ NOT MIGRATED ----------------
}
}//end if for lsSlabOpt
try{ amt = Double.parseDouble(lcAmount);}catch(Exception e) {amt = 0;}
if("F".equalsIgnoreCase(lsType) || (("P".equalsIgnoreCase(lsType)) && (amt != 0)))
{
for(String s : dPerkAd1.keySet())
{
lcBaseAmt = Double.valueOf(dPerkAd1.get(lsAdname+"_b"));
lcSlabAmt = Double.valueOf(dPerkAd1.get(lsAdname+"_s"));
}
lcResult = amt;
if("P".equalsIgnoreCase(lsType))
{
lcResult = (lcBaseAmt * lcSlabAmt) / 100;
}
if(lcResult == 0)
{
lsModStr = lsAdname + ".expression= '" + lsSlabOpt + "'";
//------------------ NOT MIGRATED ----------------------------
/* if len(d_perk_ad1.modify(ls_modstr)) > 0 then
ls_errcode = 'VSPAYFORR'
exit*/
//------------------ NOT MIGRATED ----------------------------
}
else if(lsResForm != null && lsResForm.trim().length() > 0)
{
if(!("select".equalsIgnoreCase(utilMethod.left(lsResForm,6))))
{
lsModStr = lsAdname + ".expression='"+lsResForm+"'";
//-------------------------- NOT MIGRATED ------------------
/*
if len(d_perk_ad1.modify(ls_modstr)) > 0 then
ls_errcode = 'VSPAYFORR'
exit
end if
lc_retval = d_perk_ad1.getitemdecimal(1,ls_adname)
else
lc_retval = gf_get_ressql_nvo(ls_resform, d_perk_ad.GetItemString(xx,"sql_input"), d_perk_ad1,"w_perk_process",env_var_str[],env_var_date[],env_var_num[])// Version No - 1.00 - Added by Rajesh on 24-03-05 - Instruction from Sachin sir
if lc_retval = -9999999 then
ls_errcode = 'CONFIGUREERR'
exit
end if
if isnull(lc_retval) then lc_retval = 0
ls_modstr = ls_adname + ".expression='" + string(lc_retval) + "'"
if len(d_perk_ad1.modify(ls_modstr)) > 0 then
end if
end if
*/
//-------------------------- NOT MIGRATED ------------------
}
}
try{rmdTo = Double.parseDouble(lcRndto);}catch(Exception e){rmdTo = 0.0;}
if("N".equalsIgnoreCase(lsRndoff))
{
lcAmount1 = disCommon.getRndamt(lsAdName1, lsRndoff, rmdTo);
}
else
{
lcAmount1 = lsAdName1;
lcAmount1 = roundValue(lcAmount1,2);
System.out.println("lcAmount1 ["+lcAmount1+"]");
}
int lcPrevAmount = 0 ,lcPrevBaseAmt = 0,lcPrevSlabAmt = 0,lcPrevCalcAmt = 0,lcPrevResultAmt = 0;
//--------------------- NOT MIGRATED ------------------------------
/*
lc_prev_amount = 0
lc_prev_base_amt = 0
lc_prev_slab_amt = 0
lc_prev_calc_amt = 0
lc_prev_result_amt = 0
lc_base_amt = d_perk_ad1.getitemdecimal(1, ls_adname + "_b")
lc_slab_amt = d_perk_ad1.getitemdecimal(1, ls_adname + "_s")
lc_result_amt = d_perk_ad1.getitemdecimal(1, ls_adname)
lc_calc_amt = lc_amount1
if isnull(lc_base_amt) then lc_base_amt = 0.00
if isnull(lc_slab_amt) then lc_slab_amt = 0.00
if isnull(lc_result_amt) then lc_result_amt = 0.00
if isnull(lc_calc_amt) then lc_calc_amt = 0.00
ls_det_findstr = 'tran_id = "' + ls_current_tranid + '" and ad_code = "' + ls_adname + '"'
ll_det_row = d_perk_process_det.find(ls_det_findstr, 1 , d_perk_process_det.rowcount())
if ll_det_row > 0 then
else
ls_seq = d_perk_ad.getitemstring(xx, "seq_no")
ll_det_row = d_perk_process_det.insertrow(0)
d_perk_process_det.setitem(ll_det_row , "tran_id" , ls_current_tranid)
d_perk_process_det.setitem(ll_det_row , "ad_code" , ls_adname)
d_perk_process_det.setitem(ll_det_row , "ad_code__proc" , as_ad_code_proc)
d_perk_process_det.setitem(ll_det_row , "ad_code__claim" , as_ad_code_claim)
d_perk_process_det.setitem(ll_det_row , "base_amt" , lc_base_amt)
d_perk_process_det.setitem(ll_det_row , "slab_amt" , lc_slab_amt)
d_perk_process_det.setitem(ll_det_row , "result_amt" , lc_result_amt)
d_perk_process_det.setitem(ll_det_row , "calc_amt" , lc_calc_amt)
d_perk_process_det.setitem(ll_det_row , "amount" , lc_amount1)
d_perk_process_det.setitem(ll_det_row , "rnd_off" , ls_rndoff)
d_perk_process_det.setitem(ll_det_row , "rnd_to" , lc_rndto)
d_perk_process_det.setitem(ll_det_row , "seq_no" , ls_seq)
end if
*/
//--------------------- NOT MIGRATED ------------------------------
}
}//End of for HashMap<String,String> dPerkAd
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Inside Finally ["+e.getMessage()+"]");
throw new ITMException(e);
}
}
return errString;
}
private double roundValue(double round, int scale)
{
return Math.round(round * Math.pow(10, scale)) / Math.pow(10, scale);
}
}
/*
Title : DistIssPrcRemote
Date : 07/03/11
Developer: Chandni Shah
*/
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
//import javax.ejb.EJBObject;
import org.w3c.dom.*;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.ProcessLocal;
import javax.ejb.Local; // added for ejb3
@Local // added for ejb3
public interface PerkClaimWOLoanAdjPrcLocal extends ibase.webitm.ejb.ProcessLocal//, EJBObject
{
public String getData(String xmlString, String xmlString2, String xtraParams) throws RemoteException,ITMException;
public String process() throws RemoteException,ITMException;
public String process(String xmlString, String xmlString2, String xtraParams) throws RemoteException,ITMException;
}
\ No newline at end of file
/*
Title : DistIssPrcRemote
Date : 07/03/11
Developer: Chandni Shah
*/
package ibase.webitm.ejb.adm;
import java.rmi.RemoteException;
//import javax.ejb.EJBObject;
import org.w3c.dom.*;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.ProcessLocal;
import javax.ejb.Remote; // added for ejb3
@Remote // added for ejb3
public interface PerkClaimWOLoanAdjPrcRemote extends ibase.webitm.ejb.ProcessRemote//, EJBObject
{
public String getData(String xmlString, String xmlString2, String xtraParams) throws RemoteException,ITMException;
public String process() throws RemoteException,ITMException;
public String process(String xmlString, String xmlString2, String xtraParams) throws RemoteException,ITMException;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment