Commit e67999e3 authored by sghate's avatar sghate

Updated component on 24/02/2020

StatusChangeConfirm.java
StatusChangeConfirmLocal.java
StatusChangeConfirmRemote.java
StatusChangeRej.java
StatusChangeRejLocal.java
StatusChangeRejRemote.java


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@217047 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 44f2d615
package ibase.webitm.ejb.adm.adv;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.adm.AdmCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
public class StatusChangeConfirm extends ActionHandlerEJB implements StatusChangeConfirmLocal, StatusChangeConfirmRemote
{
E12GenericUtility genericUtility = new E12GenericUtility();
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
AdmCommon admCommon = new AdmCommon();
UtilMethods utilMethod = new UtilMethods();
public String confirm(String tranId, String xtraParams, String forcedFlag) throws RemoteException,ITMException
{
String retString = null;
Connection conn = null;
String userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
try
{
conn = getConnection();
retString = gbfPostLogic(tranId,tranId,xtraParams,forcedFlag,conn);
System.out.println("returning String from StatusChangeConfirm :confirm():==>[" + retString + "]");
if(retString == null || retString.trim().length() == 0)
{
System.out.println("commit========");
conn.commit();
retString = itmDBAccessEJB.getErrorString("", "VTMCONF2", userId, "", conn);
return retString;
}
else
{
conn.rollback();
}
}
catch(Exception e)
{
System.out.println("Exception :StatusChangeConfirm :confirm() :" + e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(conn != null)
{
conn.close();
conn = null;
}
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
@Override
public String gbfPostLogic(String asTranIdFr,String asTranIdTo, String xtraParams, String forcedFlag,Connection conn) throws ITMException
{
String lsDate = "";
String lsKeyVal = "";
String lsErrcode = "";
Timestamp ldTranDate = null;
String tranId = "";
String lsRemarks = "";
int liCnt = 0;
String sql = "";
String empCode = "";
String refSer = "";
String objSignTrans = "";
String wfPrcStatus = "";
String empStatuschg = "";
String errString = "";
int cnt = 0;
SimpleDateFormat sdf = null;
String userId = "";
String loginEmpCode = "";
String runMode = "";
String chgTerm = "";
String termId = "" , confirm = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
System.out.println("Inside Post Logic Method..!!!!");
sdf =new SimpleDateFormat(genericUtility.getApplDateFormat());
userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
chgTerm = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
loginEmpCode = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
runMode = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "runMode"));
System.out.println("userId["+userId+"]\t chgTerm["+chgTerm+"]\t loginEmpCode["+loginEmpCode+"]\t runMode["+runMode+"]");
if(asTranIdFr.equalsIgnoreCase(asTranIdTo))
{
lsKeyVal = asTranIdFr;
System.out.println("Initial lsKeyVal==>::[" + lsKeyVal + "]");
String[] tempArr = lsKeyVal.split(":");
if(tempArr != null && tempArr.length > 0 )
{
empCode = tempArr[0];
lsDate = tempArr[1];
}
System.out.println("lsKeyVal==>" + lsKeyVal + " empCode==>" + empCode + " lsDate==>" + lsDate);
ldTranDate = Timestamp.valueOf(genericUtility.getValidDateString(lsDate, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()) + " 00:00:00.0");
System.out.println("ldTranDate==>" + ldTranDate);
sql = "select nvl(confirm,'N') as ls_conf , tran_id , remarks from emp_statuschg "+
"where emp_code = ? and tran_date = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCode);
pstmt.setTimestamp(2, ldTranDate);
rs = pstmt.executeQuery();
if(rs.next())
{
confirm = checkNull(rs.getString("ls_conf"));
tranId = checkNull(rs.getString("tran_id"));
lsRemarks = checkNull(rs.getString("remarks"));
}
System.out.println("====confirm===="+confirm);
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if("N".equalsIgnoreCase(confirm))
{
lsErrcode = gbfStatusChg(empCode, ldTranDate,xtraParams , "Y" , conn);
System.out.println("lsErrcode :: "+ lsErrcode);
if(lsErrcode != null && lsErrcode.trim().length() > 0)
{
errString = itmDBAccessEJB.getErrorString("", lsErrcode, userId, "", conn);
return errString;
}
}
else if("X".equalsIgnoreCase(confirm))
{
errString = itmDBAccessEJB.getErrorString("", "VTEMPSTS02", userId, "", conn);
return errString;
}
else
{
errString = itmDBAccessEJB.getErrorString("", "VTMCONF1", userId, "", conn);
return errString;
}
}
if(errString == null || errString.trim().length() == 0)
{
if(tranId != null && tranId.trim().length() > 0)
{
liCnt = 0;
sql = "select count(1) as li_cnt "
+ "from wf_prc_status "
+ "where "
+ "ref_ser = 'TPCEMP' "
+ "and ref_id = ? "
+ "and process_status < 3";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
liCnt = rs.getInt("li_cnt");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(liCnt > 0)
{
liCnt = 0;
sql = "select count(1) as li_cnt "
+ "from obj_sign_trans "
+ "where ref_ser = 'TPCEMP' "
+ "and ref_id = ? "
+ "and sign_status = 'U'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
liCnt = rs.getInt("li_cnt");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(liCnt > 0)
{
liCnt = 0;
sql = "update obj_sign_trans "
+ "set sign_status = 'S', "
+ "sign_remarks = 'Approved from ERP' "
+ "where "
+ "ref_ser = 'TPCEMP' "
+ "and ref_id = ? "
+ "and sign_status = 'U'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
cnt = pstmt.executeUpdate();
if(cnt > 0)
{
System.out.println("Data Updated in obj_sign_trans table..");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}/*
else
{
errString = itmDBAccessEJB.getErrorString("", "DS000", userId, "", conn);
return errString;
}*/
}
/*else
{
errString = itmDBAccessEJB.getErrorString("", "DS000", userId, "", conn);
return errString;
}*/
sql = "update wf_prc_status "
+ "set "
+ "process_status = 3, "
+ "STATUS_REMARKS = 'Approved from ERP' "
+ "where ref_ser = 'TPCEMP' "
+ "and ref_id = ? "
+ "and process_status < 3";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
int cnt1 = pstmt.executeUpdate();
if(cnt1 > 0)
{
System.out.println("Data Updated in wf_prc_status table..");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(lsRemarks == null || lsRemarks.trim().length() == 0)
{
lsRemarks = "";
}
else
{
lsRemarks = lsRemarks.trim();
}
lsRemarks = "Approved from ERP."+ lsRemarks;
if(lsRemarks != null && lsRemarks.length() > 1500)
{
lsRemarks = utilMethod.mid(lsRemarks, 1, 1500);
sql = "update emp_statuschg "
+ "set remarks = ? "
+ "where "
+ "emp_code = ? "
+ "and tran_date = ? "
+ "and tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, lsRemarks);
pstmt.setString(2, empCode);
pstmt.setTimestamp(3, ldTranDate);
pstmt.setString(4, tranId);
cnt = pstmt.executeUpdate();
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
System.out.println(":::::l13123323:::");
}
}
}
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 e1)
{
e1.printStackTrace();
throw new ITMException(e1);
}
}
return errString;
}
private String gbfStatusChg(String empCode, Timestamp tranDate,String xtraParams, String as_ediopt , Connection conn) throws RemoteException,ITMException
{
String lsEmpAprv = "";
String lsEligibleOt = "";
Timestamp mduedtchg = null;
Timestamp mduedt = null;
Timestamp meffdate = null;
Timestamp ldConf = null;
Timestamp ldConfDate = null;
int mmonth = 0;
int mVal = 0;
int mextprd = 0;
int liProbprd = 0;
double lcNoticePrd = 0.0;
String lsConfFlag = "";
String sql = "";
String mexten = "";
String mstatus = "";
String lsGrade = "";
String lsCadre = "";
String lsDesign = "";
String lsDesignation = "";
String empCodeAprv = "";
String lsErrcode = "";
String probation = "";
int cnt = 0;
int trainingPrd = 0;
SimpleDateFormat sdf = null;
String userId = "";
String loginEmpCode = "";
String runMode = "";
String termId = "";
UtilMethods utilmethod = new UtilMethods();
java.sql.Timestamp ldToday = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
sdf=new SimpleDateFormat(genericUtility.getApplDateFormat());
ldToday = utilMethod.dateTime(utilMethod.today() , utilMethod.stringToTime("00:00"));
userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
termId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"));
sql = "select "
+ "extend ,"
+ "status_type ,"
+ "date__due_chg ,"
+ "months_extend ,"
+ "notice_prd ,"
+ "date__effchg ,"
+ "grade_n , "
+ "cadre_n , "
+ "design_code_n , "
+ "designation_n , "
+ "emp_code__aprv , "
+ "conf_date , "
+ "eligible_ot ,"
+ "case when confirm is null then 'N' else confirm end as confirm "
+ "from emp_statuschg "
+ "where "
+ "emp_code = ? "
+ "and tran_date= ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCode);
pstmt.setTimestamp(2, tranDate);
rs = pstmt.executeQuery();
if(rs.next())
{
mexten = rs.getString("extend");
mstatus = rs.getString("status_type");
mduedtchg = rs.getTimestamp("date__due_chg");
mmonth = rs.getInt("months_extend");
lcNoticePrd = rs.getDouble("notice_prd");
meffdate = rs.getTimestamp("date__effchg");
lsGrade = rs.getString("grade_n");
lsCadre = rs.getString("cadre_n");
lsDesign = rs.getString("design_code_n");
lsDesignation = rs.getString("designation_n");
lsEmpAprv = rs.getString("emp_code__aprv");
ldConfDate = rs.getTimestamp("conf_date");
lsEligibleOt = rs.getString("eligible_ot");
lsConfFlag = rs.getString("confirm");
}
System.out.println("extend["+mexten+"]\t status_type["+mstatus+"]\t date__due_chg["+mduedtchg+"]\t months_extend["+mmonth+"]\t "
+ "notice_prd["+lcNoticePrd+"]\t date__effchg ["+meffdate+"]\t grade_n["+lsGrade+"]\t "
+ "cadre_n["+lsCadre+"]\t design_code_n["+lsDesign+"]\t designation_n["+lsDesignation+"]\t "
+ "emp_code__aprv["+lsEmpAprv+"]\t conf_date["+ldConfDate+"]\t eligible_ot["+lsEligibleOt+"]");
System.out.println(":::::confirm:::"+lsConfFlag);
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if("X".equalsIgnoreCase(lsConfFlag))
{
lsErrcode = itmDBAccessEJB.getErrorString("", "VTEMPSTS02", userId, "", conn);
return lsErrcode;
}
if("N".equalsIgnoreCase(mexten))
{
if("P".equalsIgnoreCase(mstatus))
{
sql = "select probation_prd as li_probprd "
+ "from "
+ "employee "
+ "where emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCode);
rs = pstmt.executeQuery();
if(rs.next())
{
liProbprd = rs.getInt("li_probprd");
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
ldConf = utilmethod.AddMonths(meffdate, liProbprd);
System.out.println("ldConf :: ["+ldConf+"]");
sql = "UPDATE employee "
+ "set probation = 'Y', "
+ "probation_date = ? ,"
+ "notice_prd = ? ,"
+ "date_conf = ? ,"
+ "grade = ? , "
+ "cadre = ? ,"
+ "design_code = ? ,"
+ "designation = ? ,"
+ "chg_date = ? ,"
+ "chg_user = ? ,"
+ "chg_term = ? ,"
+ "eligible_ot = ? "
+ "where emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,meffdate);
pstmt.setDouble(2,lcNoticePrd);
pstmt.setTimestamp(3,ldConfDate);
pstmt.setString(4,lsGrade);
pstmt.setString(5,lsCadre);
pstmt.setString(6,lsDesign);
pstmt.setString(7,lsDesignation);
pstmt.setTimestamp(8,ldToday);
pstmt.setString(9,userId);
pstmt.setString(10,termId);
pstmt.setString(11,lsEligibleOt);
pstmt.setString(12,empCode);
cnt = pstmt.executeUpdate();
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if (liProbprd == 0)
{
sql = "update employee "
+ "set "
+ "confirmed = 'Y', "
+ "grade = ? , "
+ "cadre = ? , "
+ "design_code = ? ,"
+ "designation = ? , "
+ "notice_prd = ? , "
+ "chg_date= ? , "
+ "chg_user = ? ,"
+ "chg_term = ? ,"
+ "eligible_ot = ? "
+ "where "
+ "emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,lsGrade);
pstmt.setString(2,lsCadre);
pstmt.setString(3,lsDesign);
pstmt.setString(4,lsDesignation);
pstmt.setDouble(5,lcNoticePrd);
pstmt.setTimestamp(6,ldToday);
pstmt.setString(7,userId);
pstmt.setString(8,termId);
pstmt.setString(9,lsEligibleOt);
pstmt.setString(10,empCode);
int cnt2 = pstmt.executeUpdate();
if(cnt2 > 0)
{
System.out.println("Data Updated for employee");
}
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
else
{
if("C".equalsIgnoreCase(mstatus))
{
sql = "UPDATE employee "
+ "set "
+ "confirmed = 'Y',"
+ "date_conf = ? ,"
+ "notice_prd = ? ,"
+ "grade = ? ,"
+ "cadre = ? ,"
+ "design_code = ? ,"
+ "designation = ? ,"
+ "chg_date= ? ,"
+ "chg_user = ? ,"
+ "chg_term = ? ,"
+ "eligible_ot = ? "
+ "where "
+ "emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,meffdate);
pstmt.setDouble(2,lcNoticePrd);
pstmt.setString(3,lsGrade);
pstmt.setString(4,lsCadre);
pstmt.setString(5,lsDesign);
pstmt.setString(6,lsDesignation);
pstmt.setTimestamp(7,ldToday);
pstmt.setString(8,userId);
pstmt.setString(9,termId);
pstmt.setString(10,lsEligibleOt);
pstmt.setString(11,empCode);
cnt = pstmt.executeUpdate();
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
}
else
{
if("Y".equalsIgnoreCase(mexten))
{
sql = "update "
+ "emp_statuschg "
+ "set date__effchg = ? "
+ "where "
+ "emp_code = ? "
+ "and tran_date = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,mduedtchg);
pstmt.setString(2,empCode);
pstmt.setTimestamp(3,tranDate);
int cnt3 = pstmt.executeUpdate();
if(cnt3 > 0)
{
System.out.println("Data Updated for emp_statuschg");
}
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if("P".equalsIgnoreCase(mstatus))
{
mduedt = utilmethod.AddMonths(mduedtchg, mmonth);
System.out.println("mduedt is ["+mduedt+"]");
sql = "select "
+ "training_prd, "
+ "date_conf "
+ "from "
+ "employee "
+ "where "
+ "emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCode);
rs = pstmt.executeQuery();
if(rs.next())
{
mVal = rs.getInt("training_prd");
ldConf = rs.getTimestamp("date_conf");
}
if(rs != null)
{
rs.close();
rs.next();
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
mextprd = mmonth + mVal;
ldConf = utilmethod.AddMonths(ldConf, mmonth);
System.out.println("mextprd ["+mextprd+"] \t ldConf ["+ldConf+"]");
sql = "Update "
+ "employee "
+ "set "
+ "probation_date = ? ,"
+ "training_prd = ? , "
+ "grade = ? ,"
+ "cadre = ?"
+ "design_code = ? ,"
+ "designation = ? ,"
+ "notice_prd = ? ,"
+ "chg_date= ? ,"
+ "chg_user = ? ,"
+ "chg_term = ? ,"
+ "eligible_ot = ? "
+ "Where "
+ "emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,mduedt);
pstmt.setInt(2,mextprd);
pstmt.setString(3,lsGrade);
pstmt.setString(4,lsCadre);
pstmt.setString(5,lsDesign);
pstmt.setString(6,lsDesignation);
pstmt.setDouble(7,lcNoticePrd);
pstmt.setTimestamp(8,ldToday);
pstmt.setString(9,userId);
pstmt.setString(10,termId);
pstmt.setString(11,lsEligibleOt);
pstmt.setString(12,empCode);
int cnt4 = pstmt.executeUpdate();
if(cnt4 > 0)
{
System.out.println("Data Updated for emp_statuschg");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
else
{
if("C".equalsIgnoreCase(mstatus))
{
mduedt = utilmethod.AddMonths(mduedtchg, mmonth);
sql = "select "
+ "probation_prd "
+ "from "
+ "employee "
+ "where "
+ "emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, empCode);
rs = pstmt.executeQuery();
if(rs.next())
{
mVal = rs.getInt("probation_prd");
}
if(rs != null)
{
rs.close();
rs.next();
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
mextprd = mmonth + mVal;
System.out.println("mextprd ::: ["+mextprd+"]");
sql = "Update "
+ "employee "
+ "set "
+ "date_conf = ? , "
+ "probation_prd = ? ,"
+ "grade = ? ,"
+ "cadre = ? ,"
+ "design_code = ? ,"
+ "designation = ? , "
+ "notice_prd = ? ,"
+ "chg_date= ? ,"
+ "chg_user = ? , "
+ "chg_term = ? ,"
+ "eligible_ot = ? "
+ "where "
+ "emp_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,mduedt);
pstmt.setInt(2,mextprd);
pstmt.setString(3,lsGrade);
pstmt.setString(4,lsCadre);
pstmt.setString(5,lsDesign);
pstmt.setString(6,lsDesignation);
pstmt.setDouble(7,lcNoticePrd);
pstmt.setTimestamp(8,ldToday);
pstmt.setString(9,userId);
pstmt.setString(10,termId);
pstmt.setString(11,lsEligibleOt);
pstmt.setString(12,empCode);
int cnt5 = pstmt.executeUpdate();
if(cnt5 > 0)
{
System.out.println("Data Updated for employee");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
}
sql = "update "
+ "emp_statuschg "
+ "set "
+ "confirm = 'Y' , "
+ "conf_date = ? , "
+ "emp_code__aprv = ? "
+ "where "
+ "emp_code = ? "
+ "and "
+ "tran_date = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,ldConfDate);
pstmt.setString(2,lsEmpAprv);
pstmt.setString(3,empCode);
pstmt.setTimestamp(4,tranDate);
int cnt6 = pstmt.executeUpdate();
if(cnt6 > 0)
{
System.out.println("Data Updated for emp_statuschg");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
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)
{
e.printStackTrace();
throw new ITMException(e);
}
}
return lsErrcode;
}
private String checkNull(String input)
{
if (input == null)
{
input = "";
}
else
{
input = input.trim();
}
return input;
}
}
package ibase.webitm.ejb.adm.adv;
import java.rmi.RemoteException;
import java.sql.Connection;
import ibase.webitm.utility.ITMException;
public interface StatusChangeConfirmLocal
{
public String confirm(String tranId, String xtraParams, String forcedFlag)throws RemoteException,ITMException;
public String gbfPostLogic(String asTranIdFr,String asTranIdTo, String xtraParams, String forcedFlag,Connection conn) throws ITMException;
}
package ibase.webitm.ejb.adm.adv;
import java.rmi.RemoteException;
import java.sql.Connection;
import ibase.webitm.utility.ITMException;
public interface StatusChangeConfirmRemote
{
public String confirm(String tranId, String xtraParams, String forcedFlag)throws RemoteException,ITMException;
public String gbfPostLogic(String asTranIdFr,String asTranIdTo, String xtraParams, String forcedFlag,Connection conn) throws ITMException;
}
package ibase.webitm.ejb.adm.adv;
import ibase.system.config.AppConnectParm;
//import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
//import ibase.webitm.ejb.ITMDBAccessLocal;
//import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
//import java.util.Date;
import java.util.Properties;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
@Stateless
public class StatusChangeRej extends ActionHandlerEJB implements StatusChangeRejLocal, StatusChangeRejRemote
{
public String confirm() throws RemoteException, ITMException
{
return "";
}
public String confirm( String tranId, String xtraParams,String forcedFlag )throws RemoteException, ITMException
{
String resultStr = "";
Connection conn = null;
try
{
//Modified by Sana S on 04/09/2019 [start]
/*ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);*/
conn=getConnection();
//Modified by Sana S on 04/09/2019 [end]
resultStr = confirm(tranId, xtraParams, forcedFlag, conn);
System.out.println("resultStr:::::"+resultStr);
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
System.out.println("Exception [01][confirm]::"+e.getMessage());
e.printStackTrace();
System.out.println("Exception ::"+e.getMessage());
throw new ITMException(e);
}
finally
{
if(conn != null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
System.out.println("Returning Result from confirm::"+resultStr);
return resultStr;
}
public String confirm(String tranId,String xtraParams, String forcedFlag , Connection conn) throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null ;
PreparedStatement pstmt1 = null;
//Added by Suraj [26-02-2016][A15DSUN006][To define PreparedStatement and ResultSet variables][Start]
PreparedStatement pstmtNew=null;
ResultSet rsNew = null ;
//Added by Suraj [26-02-2016][A15DSUN006][To define PreparedStatement and ResultSet variables][End]
ResultSet rs1 = null ;
String errString = "";
String conf="",procId="",instanceId="",activityId="",seqId="";
String status="";
boolean isError =false;
String retString="";
String sqlconstat = "",sqlWfPrc="",sqlWfPrcSelect="",sqlconstat1="";
//Modified by Sana S on 04/09/2019 [start]
//ITMDBAccessLocal itmdbAccessLocal = null ;
ITMDBAccessEJB itmdbAccess= null ;
//Modified by Sana S on 04/09/2019 [end]
String empCode="",tDate="",remarks="";
java.sql.Date tranDate=null , tranDateChg=null;
int updateCnt=0;
// Modified by Piyush on 26/02/2016 [To Make workable in browser-workflow as well in ERP, as logical primary key is different for workflow and ERP].Start
Boolean isMultiKey = true;
String wfRefID = "";
String wfRefSer = "TPCEMP",wfRefSerField="";
String sqlCountObjSign="";
int rowCount=0, rowCountSchg = 0;
String sqlCountWfPrc="";
PreparedStatement pstmt2 = null;
ResultSet rs2 = null;
String empCodeChg="",tDateChg="",remarksChg="" ,statusChg = "", confChg = "",wfRefIDChg= "";
String refIdSchg = "" ;
String sqlUptstat1 = "";
// Modified by Piyush on 26/02/2016 [To Make workable in browser-workflow as well in ERP, as logical primary key is different for workflow and ERP].End
//Modified by Sana S on 04/09/2019 [start]
//GenericUtility genericUtility = GenericUtility.getInstance();
E12GenericUtility genericUtility=new E12GenericUtility();
//Modified by Sana S on 04/09/2019 [end]
System.out.println("INSIDE StatusChangeRej:::::::"+tranId);
try
{
SimpleDateFormat dbsdf = new SimpleDateFormat(genericUtility.getDBDateFormat());
//ConnDriver connDriver = new ConnDriver();
//conn = connDriver.getConnectDB("DriverValidator");
AppConnectParm appConnect = new AppConnectParm();
Properties p = appConnect.getProperty();
System.out.println("INSIDE StatusChangeRej TRY{:::::::");
InitialContext ctx = new InitialContext(p);
//Modified by Sana S on 04/09/2019 [start]
//itmdbAccessLocal = (ITMDBAccessLocal)ctx.lookup("ibase/ITMDBAccessEJB/local");
itmdbAccess = new ITMDBAccessEJB();
//Modified by Sana S on 04/09/2019 [end]
String dbName= checkNull(CommonConstants.DB_NAME);
System.out.println("dbName:::::::"+dbName);
String tranSql = "select ref_ser from transetup WHERE tran_window = 'w_emp_statuschg_field' ";
pstmt = conn.prepareStatement(tranSql);
rs = pstmt.executeQuery();
if(rs.next())
{
wfRefSerField = rs.getString("ref_ser");
}
if(rs!=null)
{
rs.close();
rs=null;
}
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
tranSql = "select ref_ser from transetup WHERE tran_window = 'w_emp_statuschg' ";
pstmt = conn.prepareStatement(tranSql);
rs = pstmt.executeQuery();
if(rs.next())
{
wfRefSer = rs.getString("ref_ser");
}
if(rs!=null)
{
rs.close();
rs=null;
}
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
//Modified by Suraj [06/01/2016][To Split tran_id to get emp_code and tran_date][Start]
if(tranId != null && tranId.trim().length() > 0)
{
//Modified By Suraj [26-02-2016][To check for : to avoid arrayIndexOutOfBound exception][A15DSUN006][Start]
boolean isContain = tranId.contains(":");
// Modified by Piyush on 09/03/2016
String[] tranIdArr = tranId.split(":");
if(isContain)
{
//Modified By Suraj [26-02-2016][To check for : to avoid arrayIndexOutOfBound exception][A15DSUN006][End]
try//System.out.println("Error message 1::::::"+e);//Added By Suraj [26-02-2016][To catch exception]
{
// Modified by Piyush on 09/03/2016.Start
/*
String[] tranIdArr = tranId.split(":");
empCode = tranIdArr[0].trim();
tDate = tranIdArr[1].trim();
*/
empCode = tranIdArr[0] == null?"":tranIdArr[0].trim();
tDate = tranIdArr[1] == null?"":tranIdArr[1].trim();
System.out.println("Employee code in reject::"+empCode);
System.out.println("Transaction date in reject::"+tDate);
// Modified by Piyush on 09/03/2016.End
}
//System.out.println("Error message 1::::::"+e);//Added By Suraj [26-02-2016][To catch exception][Start]
catch(Exception e)
{
System.out.println("Error message 1::::::"+e);
// Modified by Piyush on 09/03/2016.Start
isError = true;
//errString = itmdbAccessLocal.getErrorString("","STATCHGRJ4","");
// errString = itmdbAccessLocal.getErrorString("","STATCHGRJ4","");
errString = itmdbAccess.getErrorString("","STATCHGRJ4","","",conn); ////Modified by Sana S on 04/09/2019
return errString;
// Modified by Piyush on 09/03/2016.End
}
//Added By Suraj [26-02-2016][To catch exception][End]
if(tDate != null && tDate.trim().length() > 0 )
{
try
{
tranDate = java.sql.Date.valueOf(genericUtility.getValidDateString(tDate, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()));
System.out.println("tranDate in try is::::"+tranDate);
}
catch(Exception e)
{
//throw new ITMException(e);
System.out.println("Error message 1::::::"+e);//Added By Suraj [26-02-2016][To print error message][A15DSUN006]
// Modified by Piyush on 09/03/2016.Start
isError = true;
//errString = itmdbAccessLocal.getErrorString("","STATCHGRJ4","");
errString = itmdbAccess.getErrorString("","STATCHGRJ4","","",conn);////Modified by Sana S on 04/09/2019
return errString;
// Modified by Piyush on 09/03/2016.End
}
}
//Added By Suraj [26-02-2016][To make multiple key false][A15DSUN006][Start]
else
{
isMultiKey=false;
// Modified by Piyush on 09/03/2016
tranId = tranIdArr[0] == null?"":tranIdArr[0].trim();
}
}
else
{
isMultiKey=false;
}
//Added By Suraj [26-02-2016][To make multiple key false][A15DSUN006][End]
}
//Modified by Suraj [06/01/2016][To Split tran_id to get emp_code and tran_date][End]
if(dbName.trim().equalsIgnoreCase("oracle"))
{
System.out.println(" INSIDE dbName::ORACLE Start");
//Modified by Suraj [06/01/2016][To change where clause to run on erp][Start]
//Modified by Suraj [26/02/2016][To select on the basis of single key and multiple key][A15DSUN006][Start]
if(isMultiKey)
{
//sqlconstat="SELECT CONFIRM,STATUS FROM EMP_STATUSCHG WHERE EMP_CODE=? AND TRAN_DATE=? FOR UPDATE NOWAIT";
//sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS FROM EMP_STATUSCHG WHERE EMP_CODE=?"
// + " AND TRAN_DATE=? FOR UPDATE NOWAIT";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][Start]
sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG WHERE EMP_CODE=?"
+ " AND TRAN_DATE=? FOR UPDATE NOWAIT";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][End]
pstmt1=conn.prepareStatement(sqlconstat);
pstmt1.setString(1, empCode);
pstmt1.setDate(2, tranDate);
sqlconstat1="SELECT count(1) as ROWCNT FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG in (select tran_id from emp_statuschg where emp_code = ? and tran_date = ?) ";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, empCode);
pstmt2.setDate(2, tranDate);
rs = pstmt2.executeQuery();
if (rs.next())
{
rowCountSchg = rs.getInt("ROWCNT");
System.out.println("Inside rowCount value["+rowCountSchg+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
if(rowCountSchg > 0)
{
sqlconstat1="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG in (select tran_id from emp_statuschg where emp_code = ? and tran_date = ?) FOR UPDATE NOWAIT";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, empCode);
pstmt2.setDate(2, tranDate);
}
}
//Modified by Suraj [06/01/2016][To change where clause to run on erp][End]
else
{
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][Start]
//sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS FROM EMP_STATUSCHG WHERE TRAN_ID=? FOR UPDATE NOWAIT";
sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG WHERE TRAN_ID=? FOR UPDATE NOWAIT";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][End]
pstmt1=conn.prepareStatement(sqlconstat);
pstmt1.setString(1, tranId);
sqlconstat1="SELECT count(1) as ROWCNT FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG = ? ";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, tranId);
rs = pstmt2.executeQuery();
if (rs.next())
{
rowCountSchg = rs.getInt("ROWCNT");
System.out.println("Inside rowCount value["+rowCountSchg+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
if(rowCountSchg > 0)
{
sqlconstat1="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG = ? FOR UPDATE NOWAIT";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, tranId);
}
}
//Modified by Suraj [26/02/2016][To select on the basis of single key and multiple key][A15DSUN006][End]
}
else
{
System.out.println(" INSIDE dbName::mysql start");
//Modified by Suraj [06/01/2016][To change where clause to run on erp][Start]
//Modified by Suraj [26/02/2016][To select on the basis of single key and multiple key][A15DSUN006][Start]
if(isMultiKey)
{
//sqlconstat="SELECT CONFIRM,STATUS FROM EMP_STATUSCHG WHERE EMP_CODE=? AND TRAN_DATE=? FOR UPDATE";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][Start]
//sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS FROM EMP_STATUSCHG WHERE EMP_CODE=?"
// + " AND TRAN_DATE=? FOR UPDATE";
sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG WHERE EMP_CODE=?"
+ " AND TRAN_DATE=? FOR UPDATE";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][End]
pstmt1=conn.prepareStatement(sqlconstat);
pstmt1.setString(1, empCode);
pstmt1.setDate(2,tranDate);
//Modified by Suraj [06/01/2016][To change where clause to run on erp][End]
sqlconstat1="SELECT count(1) as ROWCNT FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG in (select tran_id from emp_statuschg where emp_code = ? and tran_date = ?) ";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, empCode);
pstmt2.setDate(2, tranDate);
rs = pstmt2.executeQuery();
if (rs.next())
{
rowCountSchg = rs.getInt("ROWCNT");
System.out.println("Inside rowCount value["+rowCountSchg+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
if(rowCountSchg > 0)
{
sqlconstat1="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG in (select tran_id from emp_statuschg where emp_code = ? and tran_date = ?) FOR UPDATE";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, empCode);
pstmt2.setDate(2, tranDate);
}
}
else
{
// Modified by Piyush on 09/03/2016
// sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS FROM EMP_STATUSCHG WHERE TRAN_ID=? FOR UPDATE NOWAIT";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][Start]
//sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS FROM EMP_STATUSCHG WHERE TRAN_ID=? FOR UPDATE";
sqlconstat="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG WHERE TRAN_ID=? FOR UPDATE";
//Modified by Suraj [A15DSUN006][15/03/2016][To select remarks value][End]
pstmt1=conn.prepareStatement(sqlconstat);
pstmt1.setString(1, tranId);
sqlconstat1="SELECT count(1) as ROWCNT FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG = ? ";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, tranId);
rs = pstmt2.executeQuery();
if (rs.next())
{
rowCountSchg = rs.getInt("ROWCNT");
System.out.println("Inside rowCount value["+rowCountSchg+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
if(rowCountSchg > 0)
{
sqlconstat1="SELECT TRAN_ID,TRAN_DATE,EMP_CODE,CONFIRM,STATUS,REMARKS FROM EMP_STATUSCHG_FIELD WHERE "
+ "REF_ID__SCHG = ? FOR UPDATE";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1, tranId);
}
}
System.out.println(" INSIDE dbName::mysql end");
}
rs1=pstmt1.executeQuery();
while(rs1.next())
{
wfRefID=checkNull(rs1.getString("TRAN_ID"));
System.out.println("wfRefID-1::::::::::"+wfRefID);
tranDate = rs1.getDate("TRAN_DATE");
empCode=checkNull(rs1.getString("EMP_CODE"));
conf=checkNull(rs1.getString("CONFIRM"));
status=checkNull(rs1.getString("STATUS"));
remarks=checkNull(rs1.getString("REMARKS"));//Modified by Suraj [A15DSUN006][15/03/2016][To get remarks value]
}
close(pstmt1, rs1);
//Modified by Suraj [26/02/2016][To select on the basis of single key and multiple key][A15DSUN006][End]
if(rowCountSchg > 0)
{
rs2=pstmt2.executeQuery();
while(rs2.next())
{
wfRefIDChg = checkNull(rs2.getString("TRAN_ID"));
System.out.println("wfRefID-1::::::::::"+wfRefIDChg);
tranDateChg = rs2.getDate("TRAN_DATE");
empCodeChg = checkNull(rs2.getString("EMP_CODE"));
confChg = checkNull(rs2.getString("CONFIRM"));
statusChg = checkNull(rs2.getString("STATUS"));
System.out.println("Statuschg::::::::::"+statusChg);
remarksChg = checkNull(rs2.getString("REMARKS"));
}
close(pstmt2, rs2);
}
if(conf.trim().equalsIgnoreCase("Y"))
{
isError = true;
// errString = itmdbAccessLocal.getErrorString("","STATCHGRJ1","");
errString = itmdbAccess.getErrorString("","STATCHGRJ1","");//Modified by Sana S on 04/09/2019
return errString;
}
else if(conf.trim().equalsIgnoreCase("X"))
{
isError = true;
//errString = itmdbAccessLocal.getErrorString("","STATCHGRJ2","");
errString = itmdbAccess.getErrorString("","STATCHGRJ2","","",conn);//Modified by Sana S on 04/09/2019
return errString;
}
else
{
//Modified by Suraj [A15DSUN006][15/03/2016][To maintain previous remarks][Start]
remarks = "Cancelled."+" "+remarks.trim();
int remarksInt =remarks.length();
if(remarksInt > 1500)
{
remarks = remarks.substring(0,1500);
}
//Modified by Suraj [A15DSUN006][15/03/2016][To maintain previous remarks][End]
//Added by Suraj [26-02-2016][To update OBJ_SIGN_TRANS & EMP_STATUSCHG table][A15DSUN006][Start]
// Modified by Piyush on 09/03/2016
// String sqlObjSign="UPDATE OBJ_SIGN_TRANS SET SIGN_REMARKS = 'Cancelled in ERP',"
// + "SIGN_STATUS='S' WHERE REF_ID=? AND REF_SER=? ";
//added by kuldeep on 30/07/19 start
sqlCountObjSign="SELECT count(1) as ROWCNT FROM OBJ_SIGN_TRANS WHERE "
+ "REF_ID=? AND REF_SER=? AND SIGN_STATUS = 'U'";
pstmt=conn.prepareStatement(sqlCountObjSign);
pstmt.setString(1,wfRefID);
//pstmt.setString(1,tranId);
pstmt.setString(2,wfRefSer);
rs = pstmt.executeQuery();
rowCount=0;
if (rs.next())
{
rowCount = rs.getInt("ROWCNT");
System.out.println("rowCount value is["+rowCount+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if(rowCount>0)
{
String sqlObjSign="UPDATE OBJ_SIGN_TRANS SET SIGN_REMARKS = 'Cancelled',"
+ "SIGN_STATUS='S' WHERE REF_ID=? AND REF_SER=? AND SIGN_STATUS = 'U'";
pstmt=conn.prepareStatement(sqlObjSign);
pstmt.setString(1,wfRefID);
//pstmt.setString(1,tranId);
pstmt.setString(2,wfRefSer);
updateCnt = 0;
updateCnt=pstmt.executeUpdate();
System.out.println("UPDATE OBJ_SIGN_TRANS COUNT:::::"+updateCnt);
//close(pstmt, rs);
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
}
if(rowCountSchg > 0)
{
sqlconstat1="SELECT count(1) as ROWCNT FROM OBJ_SIGN_TRANS WHERE "
+ " REF_ID=? AND REF_SER=? AND SIGN_STATUS = 'U'";
pstmt2=conn.prepareStatement(sqlconstat1);
pstmt2.setString(1,wfRefIDChg);
/*pstmt2.setString(1,tranId);*/
pstmt2.setString(2,wfRefSerField);
rs = pstmt2.executeQuery();
rowCount=0;
if (rs.next())
{
rowCount = rs.getInt("ROWCNT");
System.out.println("rowCount value is["+rowCount+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
if(rowCount>0)
{
String sqlObjSign="UPDATE OBJ_SIGN_TRANS SET SIGN_REMARKS = 'Cancelled',"
+ "SIGN_STATUS='S' WHERE REF_ID=? AND REF_SER=? AND SIGN_STATUS = 'U'";
pstmt=conn.prepareStatement(sqlObjSign);
pstmt.setString(1,wfRefIDChg);
/*pstmt.setString(1,tranId);*/
pstmt.setString(2,wfRefSerField);
updateCnt = 0;
updateCnt=pstmt.executeUpdate();
//added by kuldeep on 20/06/2019 start
if (updateCnt >= 1)
{
//conn.commit();
// retString = itmdbAccessLocal.getErrorString("","STATCHGRJ3","");
retString = itmdbAccess.getErrorString("","STATCHGRJ3","");//Modified by Sana S on 04/09/2019
}
// added by kuldeep on 20/06/2019 end
System.out.println("UPDATE OBJ_SIGN_TRANS COUNT:::::"+updateCnt);
//close(pstmt, rs);
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
}
}
if(isMultiKey)
{
//Modified by Suraj [A15DSUN006][15/03/2016][To update remarks value][Start]
//String sqlUptstat = "UPDATE EMP_STATUSCHG SET CONFIRM='X',STATUS='C',REMARKS = 'Cancelled in ERP' WHERE EMP_CODE=? AND TRAN_DATE=?";
String sqlUptstat = "UPDATE EMP_STATUSCHG SET CONFIRM='X',STATUS='C',REMARKS =? WHERE EMP_CODE=? AND TRAN_DATE=?";
pstmt=conn.prepareStatement(sqlUptstat);
//pstmt.setString(1, empCode);
//pstmt.setDate(2,tranDate);
pstmt.setString(1, remarks);
pstmt.setString(2, empCode);
pstmt.setDate(3,tranDate);
//Modified by Suraj [A15DSUN006][15/03/2016][To update remarks value][End]
if(rowCountSchg > 0)
{
sqlUptstat1 = "UPDATE EMP_STATUSCHG_FIELD SET CONFIRM='X',STATUS='C',REMARKS =? WHERE TRAN_ID=?";
pstmt1=conn.prepareStatement(sqlUptstat1);
//pstmt1.setString(1, remarksChg);
pstmt1.setString(1, remarks);
//pstmt1.setString(2, tranId);
pstmt1.setString(2, wfRefIDChg);
updateCnt = 0;
updateCnt=pstmt1.executeUpdate();
//added by kuldeep start
if (updateCnt >= 1)
{
//conn.commit();
//retString = itmdbAccessLocal.getErrorString("","STATCHGRJ3","");
retString = itmdbAccess.getErrorString("","STATCHGRJ3","","",conn);//Modified by Sana S on 04/09/2019
}
// added by kuldeep end
System.out.println("UPDATE EMP_STATUSCHG COUNT multikey1:::::"+updateCnt);
//close(pstmt1, rs);
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
}
}
else
{
//Modified by Suraj [A15DSUN006][15/03/2016][To update remarks value][Start]
//String sqlUptstat = "UPDATE EMP_STATUSCHG SET CONFIRM='X',STATUS='C',REMARKS = 'Cancelled in ERP' WHERE TRAN_ID=?";
String sqlUptstat = "UPDATE EMP_STATUSCHG SET CONFIRM='X',STATUS='C',REMARKS =? WHERE TRAN_ID=?";
pstmt=conn.prepareStatement(sqlUptstat);
//pstmt.setString(1, tranId);
pstmt.setString(1, remarks);
pstmt.setString(2, tranId);
//Modified by Suraj [A15DSUN006][15/03/2016][To update remarks value][End]
if(rowCountSchg > 0)
{
sqlUptstat1 = "UPDATE EMP_STATUSCHG_FIELD SET CONFIRM='X',STATUS='C',REMARKS =? WHERE TRAN_ID=?";
pstmt2=conn.prepareStatement(sqlUptstat1);
//pstmt1.setString(1, remarksChg);
pstmt2.setString(1, remarks);
//pstmt1.setString(2, tranId);
pstmt2.setString(2, wfRefIDChg);
updateCnt = 0;
updateCnt=pstmt2.executeUpdate();
//added by kuldeep start
if (updateCnt >= 1)
{
//conn.commit();
// retString = itmdbAccessLocal.getErrorString("","STATCHGRJ3","");
retString = itmdbAccess.getErrorString("","STATCHGRJ3","","",conn);//Modified by Sana S on 04/09/2019
}
// added by kuldeep end
System.out.println("UPDATE EMP_STATUSCHG COUNT multikey1:::::"+updateCnt);
//close(pstmt1, rs);
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
}
}
updateCnt = 0;
updateCnt=pstmt.executeUpdate();
System.out.println("UPDATE EMP_STATUSCHG COUNT:::::"+updateCnt);
//close(pstmt, rs);
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
//Added by Suraj [26-02-2016][To update OBJ_SIGN_TRANS & EMP_STATUSCHG table][A15DSUN006][End]
if(wfRefID.trim().length() != 0)//Modified By Suraj[26-02-2016][To Check for empty tran_id][A15DSUN006]
{
if(dbName.trim().equalsIgnoreCase("oracle"))
{
System.out.println("after update 2.1::::::::");
// Modified by Piyush on 09/03/2016.Start
/*
sqlWfPrcSelect="SELECT PROCESS_ID,INSTANCE_ID,ACTIVITY_ID,SEQ_ID FROM WF_PRC_STATUS WHERE REF_ID=? "
+ "FOR UPDATE NOWAIT";
pstmtNew=conn.prepareStatement(sqlWfPrcSelect);
pstmtNew.setString(1, wfRefID);
*/
sqlCountWfPrc="SELECT count(1) as ROWCNT FROM WF_PRC_STATUS WHERE REF_ID=? AND REF_SER = ? AND PROCESS_STATUS < 3";
pstmt=conn.prepareStatement(sqlCountWfPrc);
pstmt.setString(1, wfRefID);
pstmt.setString(2, wfRefSer);
rs=pstmt.executeQuery();
rowCount=0;
if (rs.next())
{
rowCount = rs.getInt("ROWCNT");
System.out.println("rowCount value is["+rowCount+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if(rowCount>0)
{
sqlWfPrcSelect="SELECT PROCESS_ID,INSTANCE_ID,ACTIVITY_ID,SEQ_ID FROM WF_PRC_STATUS WHERE REF_ID=? AND REF_SER = ? AND PROCESS_STATUS < 3 ORDER BY PROCESS_ID, INSTANCE_ID, SEQ_ID FOR UPDATE NOWAIT";
pstmtNew=conn.prepareStatement(sqlWfPrcSelect);
pstmtNew.setString(1, wfRefID);
pstmtNew.setString(2, wfRefSer);
rsNew=pstmtNew.executeQuery();
// Modified by Piyush on 09/03/2016.End
//Added By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][Start]
//Added by kuldeep on 30/07/19 start
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3, STATUS_REMARKS = 'Cancelled' WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND PROCESS_ID=? AND INSTANCE_ID=? AND ACTIVITY_ID=? AND SEQ_ID=? AND REF_SER=?";
pstmt=conn.prepareStatement(sqlWfPrc);
//Added By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][End]
while(rsNew.next())
{
procId=checkNull(rsNew.getString("PROCESS_ID"));
instanceId=checkNull(rsNew.getString("INSTANCE_ID"));
activityId=checkNull(rsNew.getString("ACTIVITY_ID"));
seqId=checkNull(rsNew.getString("SEQ_ID"));
//Modified By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][Start]
pstmt.setString(1,wfRefID);
pstmt.setString(2,procId);
pstmt.setString(3,instanceId);
pstmt.setString(4,activityId);
pstmt.setString(5,seqId);
pstmt.setString(6,wfRefSer);
if(procId != null && procId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND PROCESS_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,tranId);
pstmt1.setString(2,procId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE procId");
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
//close(pstmt1, rs);
}
if(instanceId != null && instanceId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND INSTANCE_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,tranId);
pstmt1.setString(2,instanceId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE instanceId");
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
//close(pstmt1, rs);
}
if(activityId != null && activityId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND ACTIVITY_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,tranId);
pstmt1.setString(2,activityId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE activityId");
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
//close(pstmt1, rs);
}
if(seqId != null && seqId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND SEQ_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,tranId);
pstmt1.setString(2,seqId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE seqId");
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
//close(pstmt1, rs);
}
}
updateCnt = 0;
updateCnt=pstmt.executeUpdate();
System.out.println("WORKFLOW UPDATE WF_PRC_STATUS COUNR:::"+updateCnt);
close(pstmt, rs);
//Modified By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][End]
close(pstmtNew, rsNew);
System.out.println(" INSIDE WF dbName::ORACLE");
}
if(rowCountSchg > 0)
{
sqlCountWfPrc="SELECT count(1) as ROWCNT FROM WF_PRC_STATUS WHERE REF_ID=? AND REF_SER = ? AND PROCESS_STATUS < 3";
pstmt=conn.prepareStatement(sqlCountWfPrc);
pstmt.setString(1, wfRefIDChg);
pstmt.setString(2, wfRefSerField);
/*pstmt.setString(1, wfRefID);
pstmt.setString(2, wfRefSer);*/
rs=pstmt.executeQuery();
rowCount=0;
if (rs.next())
{
rowCount = rs.getInt("ROWCNT");
System.out.println("rowCount value is["+rowCount+"]");
}
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if(rowCount>0)
{
sqlWfPrcSelect="SELECT PROCESS_ID,INSTANCE_ID,ACTIVITY_ID,SEQ_ID FROM WF_PRC_STATUS WHERE REF_ID=? AND REF_SER = ? AND PROCESS_STATUS < 3 ORDER BY PROCESS_ID, INSTANCE_ID, SEQ_ID FOR UPDATE NOWAIT";
pstmtNew=conn.prepareStatement(sqlWfPrcSelect);
pstmtNew.setString(1, wfRefIDChg);
pstmtNew.setString(2, wfRefSerField);
rsNew=pstmtNew.executeQuery();
// Modified by Piyush on 09/03/2016.End
//Added By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][Start]
//Added by kuldeep on 30/07/19 start
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3, STATUS_REMARKS = 'Cancelled' WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND PROCESS_ID=? AND INSTANCE_ID=? AND ACTIVITY_ID=? AND SEQ_ID=? AND REF_SER=?";
pstmt=conn.prepareStatement(sqlWfPrc);
//Added By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][End]
while(rsNew.next())
{
procId=checkNull(rsNew.getString("PROCESS_ID"));
instanceId=checkNull(rsNew.getString("INSTANCE_ID"));
activityId=checkNull(rsNew.getString("ACTIVITY_ID"));
seqId=checkNull(rsNew.getString("SEQ_ID"));
//Modified By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][Start]
pstmt.setString(1,wfRefIDChg);
pstmt.setString(2,procId);
pstmt.setString(3,instanceId);
pstmt.setString(4,activityId);
pstmt.setString(5,seqId);
pstmt.setString(6,wfRefSerField);
if(procId != null && procId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND PROCESS_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,wfRefIDChg);
pstmt1.setString(2,procId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE procId");
close(pstmt1, rs);
}
if(instanceId != null && instanceId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND INSTANCE_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,wfRefIDChg);
pstmt1.setString(2,instanceId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE instanceId");
close(pstmt1, rs);
}
if(activityId != null && activityId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND ACTIVITY_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,wfRefIDChg);
pstmt1.setString(2,activityId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE activityId");
close(pstmt1, rs);
}
if(seqId != null && seqId.trim().length() > 0)
{
sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND SEQ_ID=?";
pstmt1=conn.prepareStatement(sqlWfPrc);
pstmt1.setString(1,wfRefIDChg);
pstmt1.setString(2,seqId);
pstmt1.executeUpdate();
System.out.println(" INSIDE WF ORACLE seqId");
close(pstmt1, rs);
}
}
updateCnt = 0;
updateCnt=pstmt.executeUpdate();
System.out.println("WORKFLOW UPDATE WF_PRC_STATUS COUNR:::"+updateCnt);
close(pstmt, rs);
//Modified By Suraj [26-02-2016][To optimize code and write the correct query][A15DSUN006][End]
close(pstmtNew, rsNew);
System.out.println(" INSIDE WF dbName::ORACLE");
}
}
}
System.out.println("after update 2.1::::::::");
// Modified by Piyush on 09/03/2016.Start
/*
sqlWfPrcSelect="SELECT PROCESS_ID,INSTANCE_ID,ACTIVITY_ID,SEQ_ID FROM WF_PRC_STATUS WHERE REF_ID=? "
+ "FOR UPDATE NOWAIT";
pstmtNew=conn.prepareStatement(sqlWfPrcSelect);
pstmtNew.setString(1, wfRefID);
*/
}
/*sqlWfPrc="UPDATE WF_PRC_STATUS SET PROCESS_STATUS = 3 WHERE PROCESS_STATUS < 3 "
+ "AND REF_ID = ? AND PROCESS_ID='EMPSTATUSCHG'";
pstmt=conn.prepareStatement(sqlWfPrc);
pstmt.setString(1,tranId);
pstmt.executeUpdate();
close(pstmt, rs);*/
//Commented by Suraj [26-02-2016][A15DSUN006][Start]
/*String sqlObjSign="UPDATE OBJ_SIGN_TRANS SET SIGN_REMARKS = 'Cancelled in ERP',"
+ "SIGN_STATUS='S' WHERE REF_ID=?";
pstmt=conn.prepareStatement(sqlObjSign);
pstmt.setString(1,tranId);
pstmt.executeUpdate();
close(pstmt, rs);
//Modified by Suraj [06/01/2016][To change where clause to run on erp][Start]
String sqlUptstat = "UPDATE EMP_STATUSCHG SET CONFIRM='X',STATUS='C',REMARKS = 'Cancelled in ERP' WHERE EMP_CODE=? AND TRAN_DATE=?";
pstmt=conn.prepareStatement(sqlUptstat);
pstmt.setString(1, empCode);
pstmt.setDate(2,tranDate);
//Modified by Suraj [06/01/2016][To change where clause to run on erp][End]
pstmt.executeUpdate();
close(pstmt, rs);
System.out.println("after update 1::::::::");*/
//Commented by Suraj [26-02-2016][A15DSUN006][End]
}
}
catch(Exception ex)
{
System.out.println("Exception :REJECT:==>\n" + ex);
isError = true;
throw new ITMException(ex);
}
finally
{
try
{
if( conn != null )
{
if (rs != null) {
rs.close();
rs = null;
}
if (pstmt2 != null) {
pstmt2.close();
pstmt2 = null;
}
if (pstmt1 != null) {
pstmt1.close();
pstmt1 = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if( isError )
{
System.out.println("Rolling Back Changes......");
conn.rollback();
}
else
{
System.out.println("Commiting Changes......");
conn.commit();
// errString = itmdbAccessLocal.getErrorString("","STATCHGRJ3","");
errString = itmdbAccess.getErrorString("","STATCHGRJ3","","",conn);//Modifeid by Sana S on 04/09/2019
return errString;
}
}
}
catch(Exception e)
{
System.out.println("Exception :REJECT:==>\n" + e);
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
private void close(PreparedStatement pstmt , ResultSet rs) throws Exception
{
try
{
if ( rs != null )
{
rs.close();
rs = null;
}
if ( pstmt != null )
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
throw new Exception(e);
}
}
private String checkNull( String input )
{
if (input == null)
{
input = "";
}
else
{
input = input.trim();
}
return input;
}
}
package ibase.webitm.ejb.adm.adv;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import javax.ejb.Local;
@Local
public interface StatusChangeRejLocal
{
public String confirm( String tranID, String xtraParams,String forcedFlag )throws RemoteException, ITMException;
public String confirm(String tranId,String xtraParams, String forcedFlag , Connection conn) throws RemoteException,ITMException;
}
package ibase.webitm.ejb.adm.adv;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import javax.ejb.Remote;
@Remote
public interface StatusChangeRejRemote
{
public String confirm( String tranID, String xtraParams,String forcedFlag )throws RemoteException, ITMException;
public String confirm(String tranId,String xtraParams, String forcedFlag , Connection conn) throws RemoteException,ITMException;
}
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