Commit e9872038 authored by vvengurlekar's avatar vvengurlekar

EmpLeaveConf.java - commit statement written outside confirm method

EmpLvePrkBalTrfCanc.java
EmpLvePrkBalTrfConf.java - changes done for emp lve and prk transfer
EmpLvePrkBalTrfIC.java - 


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@188700 ce508802-f39f-4f6c-b175-0d175dae99d5
parent b3ec1f5f
...@@ -3,7 +3,6 @@ package ibase.webitm.ejb.adm; ...@@ -3,7 +3,6 @@ package ibase.webitm.ejb.adm;
import ibase.system.config.AppConnectParm; import ibase.system.config.AppConnectParm;
import ibase.system.config.ConnDriver; import ibase.system.config.ConnDriver;
import ibase.utility.E12GenericUtility;//Modified By Hemlata on[20/11/2014] [As per changes in framework to use genericUtility ] import ibase.utility.E12GenericUtility;//Modified By Hemlata on[20/11/2014] [As per changes in framework to use genericUtility ]
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ITMDBAccessLocal; import ibase.webitm.ejb.ITMDBAccessLocal;
import ibase.webitm.ejb.ValidatorEJB; import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
...@@ -534,6 +533,7 @@ public class EmpLvePrkBalTrfIC extends ValidatorEJB implements EmpLvePrkBalTrfIC ...@@ -534,6 +533,7 @@ public class EmpLvePrkBalTrfIC extends ValidatorEJB implements EmpLvePrkBalTrfIC
String siteCodeFrom = ""; String siteCodeFrom = "";
String siteCodeTo = ""; String siteCodeTo = "";
java.util.Date joinDate = null ; java.util.Date joinDate = null ;
Date currentDate = new Date();
String tranMode = "", joinDateStr="", retString = ""; String tranMode = "", joinDateStr="", retString = "";
E12GenericUtility genericUtility = new E12GenericUtility(); E12GenericUtility genericUtility = new E12GenericUtility();
...@@ -694,7 +694,16 @@ public class EmpLvePrkBalTrfIC extends ValidatorEJB implements EmpLvePrkBalTrfIC ...@@ -694,7 +694,16 @@ public class EmpLvePrkBalTrfIC extends ValidatorEJB implements EmpLvePrkBalTrfIC
retString = itmDBAccess.getErrorString( "", "VTELPTRF05", userId, "", conn ); retString = itmDBAccess.getErrorString( "", "VTELPTRF05", userId, "", conn );
return retString; return retString;
} }
//Added by Varsha V on 16-07-18 for adding condition of relieving date should less than current date
currentDate = new java.util.Date();
System.out.println("currentDate:::["+currentDate+"] relieveDate:::["+relieveDate+"]");
if(relieveDate.after(currentDate))
{
System.out.println("relieveDate is not greater than currentDate ::::");
retString = itmDBAccess.getErrorString( "", "VTELPTRF22", userId, "", conn );
return retString;
}
//Ended by Varsha V on 16-07-18 for adding condition of relieving date should less than current date
sql = "SELECT USR_LEV FROM USERS WHERE CODE = ? "; sql = "SELECT USR_LEV FROM USERS WHERE CODE = ? ";
pstmt = conn.prepareStatement( sql ); pstmt = conn.prepareStatement( sql );
pstmt.setString( 1, loginCode ); pstmt.setString( 1, loginCode );
......
...@@ -98,6 +98,16 @@ public class EmpLeaveConf extends ActionHandlerEJB implements EmpLeaveConfLocal, ...@@ -98,6 +98,16 @@ public class EmpLeaveConf extends ActionHandlerEJB implements EmpLeaveConfLocal,
try try
{ {
retString = confirm( tranId, xtraParams, forcedFlag, 2, conn); retString = confirm( tranId, xtraParams, forcedFlag, 2, conn);
//Added by varsha V on 03-08-18 for Commit statement
if(retString.contains("VTSUCC1"))
{
conn.commit();
}
else
{
conn.rollback();
}
//Ended by varsha V on 03-08-18 for Commit statement
} }
catch(Exception e) catch(Exception e)
{ {
...@@ -214,7 +224,8 @@ public class EmpLeaveConf extends ActionHandlerEJB implements EmpLeaveConfLocal, ...@@ -214,7 +224,8 @@ public class EmpLeaveConf extends ActionHandlerEJB implements EmpLeaveConfLocal,
} }
if (errString == null || errString.trim().length() == 0) if (errString == null || errString.trim().length() == 0)
{ {
conn.commit(); //commented commit statement by varsha V on 03-08-18
//conn.commit();
/*Modified by Anjali Rawankar on[22/08/2017][Start] /*Modified by Anjali Rawankar on[22/08/2017][Start]
*[Added for itmDbAccess]*/ *[Added for itmDbAccess]*/
//errString = getErrorString( "", "VTSUCC1" , this.userId ); //errString = getErrorString( "", "VTSUCC1" , this.userId );
...@@ -225,10 +236,11 @@ public class EmpLeaveConf extends ActionHandlerEJB implements EmpLeaveConfLocal, ...@@ -225,10 +236,11 @@ public class EmpLeaveConf extends ActionHandlerEJB implements EmpLeaveConfLocal,
/*[Added for itmDbAccess] /*[Added for itmDbAccess]
*Modified by Anjali Rawankar on[22/08/2017][End]*/ *Modified by Anjali Rawankar on[22/08/2017][End]*/
} }
else //commented rollback statement by varsha V on 03-08-18
/*else
{ {
conn.rollback(); conn.rollback();
} }*/
} }
catch(Exception e) catch(Exception e)
{ {
......
...@@ -138,11 +138,14 @@ public class EmpLvePrkBalTrfCanc extends ActionHandlerEJB implements EmpLvePrkBa ...@@ -138,11 +138,14 @@ public class EmpLvePrkBalTrfCanc extends ActionHandlerEJB implements EmpLvePrkBa
} }
else else
{ {
sql=" UPDATE EMP_LVEPRKBAL_TRFHDR SET STATUS = ?, STATUS_DATE = ? WHERE TRAN_ID= ? "; sql=" UPDATE EMP_LVEPRKBAL_TRFHDR SET STATUS = ?, STATUS_DATE = ?, EMP_CODE__CONF = ? WHERE TRAN_ID= ? ";
pstmt = conn.prepareStatement( sql ); pstmt = conn.prepareStatement( sql );
pstmt.setString( 1, "X" ); pstmt.setString( 1, "X" );
pstmt.setTimestamp( 2, new java.sql.Timestamp( System.currentTimeMillis() ) ); pstmt.setTimestamp( 2, new java.sql.Timestamp( System.currentTimeMillis() ) );
pstmt.setString( 3, tranId ); // Added by Varsha V on 16/07/18 for updating EMP_CODE__CONF also
pstmt.setString( 3, userId );
// Ended by Varsha V on 16/07/18 for updating EMP_CODE__CONF also
pstmt.setString( 4, tranId );
pstmt.executeUpdate(); pstmt.executeUpdate();
updCnt = pstmt.executeUpdate(); updCnt = pstmt.executeUpdate();
if( updCnt > 0 ) if( updCnt > 0 )
......
package ibase.webitm.ejb.adm.adv; package ibase.webitm.ejb.adm.adv;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.sql.CallableStatement; import java.sql.CallableStatement;
import java.sql.Connection; import java.sql.Connection;
...@@ -10,7 +9,6 @@ import java.sql.SQLException; ...@@ -10,7 +9,6 @@ import java.sql.SQLException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.sql.Types; import java.sql.Types;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import javax.naming.InitialContext; import javax.naming.InitialContext;
...@@ -20,15 +18,14 @@ import ibase.utility.BaseException; ...@@ -20,15 +18,14 @@ import ibase.utility.BaseException;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB; import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;//Added by sarita on 20 JULY 18 for [ITMDBAccessEJB] import ibase.webitm.ejb.ITMDBAccessEJB;
//import ibase.webitm.ejb.ITMDBAccessLocal; import ibase.webitm.ejb.ITMDBAccessLocal;
import ibase.webitm.ejb.adm.AdmCommon; import ibase.webitm.ejb.adm.AdmCommon;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator; import ibase.webitm.utility.TransIDGenerator;
/**
/**Author: Umakanta Das * Author: Umakanta Das Desc:
* Desc:
* *
*/ */
@Stateless @Stateless
...@@ -38,53 +35,41 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa ...@@ -38,53 +35,41 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa
* @see ActionHandlerEJB#ActionHandlerEJB() * @see ActionHandlerEJB#ActionHandlerEJB()
*/ */
AdmCommon admCommon = new AdmCommon(); AdmCommon admCommon = new AdmCommon();
public EmpLvePrkBalTrfConf()
{ public EmpLvePrkBalTrfConf() {
super(); super();
} }
public String confirm( String tranId, String xtraParams, String forcedFlag ) throws RemoteException, ITMException public String confirm(String tranId, String xtraParams, String forcedFlag) throws RemoteException, ITMException {
{
Connection conn = null; Connection conn = null;
boolean errorFound = false; boolean errorFound = false;
String retStr = ""; String retStr = "";
try try {
{
conn = getConnection(); conn = getConnection();
System.out.println("tranId:::::["+tranId+"] xtraParams::::: ["+xtraParams+"] forcedFlag::::: ["+forcedFlag+"]"); System.out.println("tranId:::::[" + tranId + "] xtraParams::::: [" + xtraParams + "] forcedFlag::::: ["
retStr = confirm( tranId, xtraParams, forcedFlag, conn); + forcedFlag + "]");
System.out.println("Umakanta::retStr["+retStr+"]"); retStr = confirm(tranId, xtraParams, forcedFlag, conn);
} System.out.println("Umakanta::retStr[" + retStr + "]");
catch (Exception e) } catch (Exception e) {
{
errorFound = true; errorFound = true;
System.out.println("in confirm ["+e.getMessage()+"]" ); System.out.println("in confirm [" + e.getMessage() + "]");
e.printStackTrace(); e.printStackTrace();
} } finally {
finally try {
{ if (conn != null) {
try if (errorFound) {
{
if( conn != null )
{
if( errorFound )
{
System.out.println("Rolling Back Changes......"); System.out.println("Rolling Back Changes......");
conn.rollback(); conn.rollback();
} } else {
else
{
System.out.println("Commiting Changes......"); System.out.println("Commiting Changes......");
conn.commit(); conn.commit();
} }
conn.close(); conn.close();
conn = null; conn = null;
} }
} } catch (Exception e) {
catch(Exception e)
{
System.out.println("EmpLvePrkBalTrfConf :confirm :==>\n" + e); System.out.println("EmpLvePrkBalTrfConf :confirm :==>\n" + e);
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e); throw new ITMException(e);
...@@ -94,8 +79,7 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa ...@@ -94,8 +79,7 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa
} }
/** /**
* This method handle the confirmation logic for * This method handle the confirmation logic for leave confirmation.
* leave confirmation.
* *
* @param conn * @param conn
* @param tranId * @param tranId
...@@ -103,835 +87,803 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa ...@@ -103,835 +87,803 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa
* @param rolecodeAprv * @param rolecodeAprv
* @param prcID * @param prcID
* @param dom * @param dom
* @return * @return
* @throws RemoteException * @throws RemoteException
* @throws SQLException * @throws SQLException
* @throws BaseException * @throws BaseException
*/ */
@SuppressWarnings({ "unused", "resource" }) @SuppressWarnings({ "unused", "resource" })
public String confirm( String tranId, String xtraParams, String forcedFlag, Connection conn) throws RemoteException, ITMException public String confirm(String tranId, String xtraParams, String forcedFlag, Connection conn) throws RemoteException, ITMException {
{ String retString = "";
String retString = ""; String successString = ""; String successString = "";
ResultSet rs = null; ResultSet rs1 = null; ResultSet rs = null;
PreparedStatement pStmt = null; PreparedStatement pStmt1 = null; PreparedStatement pStmt2 = null; PreparedStatement pStmt3 = null; PreparedStatement pStmt4 = null; PreparedStatement pStmt5 = null; ResultSet rs1 = null;
CallableStatement callStmt = null; PreparedStatement pStmt = null, pStmt1 = null, pStmt2 = null, pStmt3 = null, pStmt4 = null, pStmt5 = null, pStmt6 = null;
String sql = ""; CallableStatement callStmt = null;
Timestamp tranDate = null; String sql = "";
String tranType = ""; Timestamp tranDate = null;
String tranMode = ""; String tranType = "";
String siteCodeFr = ""; String tranMode = "";
String siteCodeTo = ""; String siteCodeFr = "";
String empCodeFr = ""; String siteCodeTo = "";
String empCodeTo = ""; String empCodeFr = "";
String status = ""; String empCodeTo = "";
java.sql.Date statusDate = null; String status = "";
String empCodeConf = ""; java.sql.Date statusDate = null;
String balCodeAson = ""; String empCodeConf = "";
String balCode = ""; String balCodeAson = "";
double lveBalance = 0.0D; double perkBalance = 0.0D; String balCode = "";
Timestamp relieveDateTM = null; Timestamp joinDate = null; double lveBalance = 0.0D;
String periodCode = ""; double perkBalance = 0.0D;
String chgUser = ""; Timestamp relieveDateTM = null;
String chgTerm = ""; String periodCode = "";
String logEmpCode = ""; String chgUser = "";
String keyString = ""; String chgTerm = "";
String refSer = ""; String logEmpCode = "";
String grade = ""; String cadre = ""; String siteCode = ""; String workSite = ""; String paySite = ""; String keyString = "";
//Added & Commented by sarita to use object of ITMDBAccessEJB,EmpLeaveConf instead ITMDBAccessLocal,EmpLeaveConfLocal on 20 JULY 18.[START] String refSer = "";
/* ITMDBAccessLocal itmDBAccess = null; String grade = "";
EmpLeaveConfLocal empLeaveConf = null;*/ String cadre = "";
ITMDBAccessEJB itmDBAccess = null; String siteCode = "";
EmpLeaveConf empLeaveConf = null; String workSite = "";
//Added & Commented by sarita to use object of ITMDBAccessEJB,EmpLeaveConf instead ITMDBAccessLocal,EmpLeaveConfLocal on 20 JULY 18.[END] String paySite = "";
E12GenericUtility genericUtility = new E12GenericUtility(); ITMDBAccessEJB itmDBAccess = null;
boolean successFlag = true; EmpLeaveConf empLeaveConf = null;
StringBuffer xmlStringForID = null; E12GenericUtility genericUtility = new E12GenericUtility();
try boolean successFlag = true;
{ StringBuffer xmlStringForID = null;
System.out.println("Inside confirm method of EmpLvePrkBalTrfConf"); try {
//Added & Commented by sarita to create object instead creating lookup for ITMDBAccessEJB on 20 JULY 18 [START] System.out.println("Inside confirm method of EmpLvePrkBalTrfConf");
/* AppConnectParm appConnect = new AppConnectParm(); //Added & Commented by sarita to create object instead creating lookup for ITMDBAccessEJB on 20 JULY 18 [START]
InitialContext ctx = new InitialContext(appConnect.getProperty()); /* AppConnectParm appConnect = new AppConnectParm();
itmDBAccess = (ITMDBAccessLocal)ctx.lookup("ibase/ITMDBAccessEJB/local"); InitialContext ctx = new InitialContext(appConnect.getProperty());
empLeaveConf = (EmpLeaveConfLocal)ctx.lookup("ibase/EmpLeaveConf/local");*/ itmDBAccess = (ITMDBAccessLocal)ctx.lookup("ibase/ITMDBAccessEJB/local");
itmDBAccess = new ITMDBAccessEJB(); empLeaveConf = (EmpLeaveConfLocal)ctx.lookup("ibase/EmpLeaveConf/local");*/
empLeaveConf = new EmpLeaveConf(); itmDBAccess = new ITMDBAccessEJB();
//Added & Commented by sarita to create object instead creating lookup for ITMDBAccessEJB on 20 JULY 18 [END] empLeaveConf = new EmpLeaveConf();
SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat()); //Added & Commented by sarita to create object instead creating lookup for ITMDBAccessEJB on 20 JULY 18 [END]
java.util.Date currentDate = new java.util.Date(); SimpleDateFormat sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
String currDateStr = sdf.format(currentDate); java.util.Date currentDate = new java.util.Date();
System.out.println("currDateStr::::::[" + currDateStr + "]"); String currDateStr = sdf.format(currentDate);
Timestamp curDateTm = Timestamp.valueOf(genericUtility.getValidDateTimeString(currDateStr, genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat())); System.out.println("currDateStr::::::[" + currDateStr + "]");
System.out.println("curDateTm - [" + curDateTm + "]"); Timestamp curDateTm = Timestamp.valueOf(genericUtility.getValidDateTimeString(currDateStr,
chgUser = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"); genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat()));
chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId"); System.out.println("curDateTm - [" + curDateTm + "]");
chgUser = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
if ((chgUser == null) || (chgUser.trim().length() == 0)) chgTerm = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "termId");
{
chgUser = "SYSTEM"; if ((chgUser == null) || (chgUser.trim().length() == 0)) {
} chgUser = "SYSTEM";
if ((chgTerm == null) || (chgTerm.trim().length() == 0)) }
{ if ((chgTerm == null) || (chgTerm.trim().length() == 0)) {
chgTerm = "SYSTEM"; chgTerm = "SYSTEM";
} }
String userId = ""; String userId = "";
int count = 0; int updCnt = 0; int insrtStatus = 0; int selectCount = 0; int count = 0;
String admEnvReturn = ""; String admParameter = ""; int updCnt = 0;
int insrtStatus = 0;
Timestamp frDate = null; Timestamp toDate = null; Timestamp expDate = null; int selectCount = 0;
String admEnvReturn = "";
userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"); String admParameter = "", statusEmpLeave = "";
sql = " SELECT LEAV.TRAN_DATE, LEAV.TRAN_TYPE, LEAV.TRAN_MODE, LEAV.SITE_CODE__FR , LEAV.SITE_CODE__TO, LEAV.EMP_CODE__FR, LEAV.EMP_CODE__TO, LEAV.STATUS, LEAV.STATUS_DATE, LEAV.EMP_CODE__CONF, LEAV.BALANCE_ASON, EMP.RELIEVE_DATE, EMP.PERIOD_CODE, EMP.RELIEVE_DATE, EMP.DATE_JOIN FROM EMP_LVEPRKBAL_TRFHDR LEAV INNER JOIN EMPLOYEE EMP ON LEAV.EMP_CODE__FR = EMP.EMP_CODE WHERE LEAV.TRAN_ID = ? "; Timestamp frDate = null;
Timestamp toDate = null;
pStmt = conn.prepareStatement(sql); Timestamp expDate = null;
pStmt.setString(1, tranId);
rs = pStmt.executeQuery(); userId = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
if (rs.next())
{ sql = " SELECT LEAV.TRAN_DATE, LEAV.TRAN_TYPE, LEAV.TRAN_MODE, LEAV.SITE_CODE__FR , LEAV.SITE_CODE__TO, LEAV.EMP_CODE__FR, LEAV.EMP_CODE__TO, LEAV.STATUS, LEAV.STATUS_DATE, LEAV.EMP_CODE__CONF, LEAV.BALANCE_ASON FROM EMP_LVEPRKBAL_TRFHDR LEAV WHERE LEAV.TRAN_ID = ? FOR UPDATE NOWAIT ";
tranDate = rs.getTimestamp("TRAN_DATE");
tranType = checkNull(rs.getString("TRAN_TYPE")); pStmt = conn.prepareStatement(sql);
tranMode = checkNull(rs.getString("TRAN_MODE")); pStmt.setString(1, tranId);
siteCodeFr = checkNull(rs.getString("SITE_CODE__FR")); rs = pStmt.executeQuery();
siteCodeTo = checkNull(rs.getString("SITE_CODE__TO")); if (rs.next()) {
empCodeFr = checkNull(rs.getString("EMP_CODE__FR")); tranDate = rs.getTimestamp("TRAN_DATE");
empCodeTo = checkNull(rs.getString("EMP_CODE__TO")); tranType = checkNull(rs.getString("TRAN_TYPE"));
status = checkNull(rs.getString("STATUS")); tranMode = checkNull(rs.getString("TRAN_MODE"));
statusDate = rs.getDate("STATUS_DATE"); siteCodeFr = checkNull(rs.getString("SITE_CODE__FR"));
empCodeConf = checkNull(rs.getString("EMP_CODE__CONF")); siteCodeTo = checkNull(rs.getString("SITE_CODE__TO"));
balCodeAson = checkNull(rs.getString("BALANCE_ASON")); empCodeFr = checkNull(rs.getString("EMP_CODE__FR"));
relieveDateTM = rs.getTimestamp("RELIEVE_DATE"); empCodeTo = checkNull(rs.getString("EMP_CODE__TO"));
joinDate = rs.getTimestamp("DATE_JOIN"); status = checkNull(rs.getString("STATUS"));
periodCode = checkNull(rs.getString("PERIOD_CODE")); statusDate = rs.getDate("STATUS_DATE");
} empCodeConf = checkNull(rs.getString("EMP_CODE__CONF"));
if (rs != null) balCodeAson = checkNull(rs.getString("BALANCE_ASON"));
{
rs.close(); }
rs = null; if (rs != null) {
} rs.close();
if (pStmt != null) rs = null;
{ }
pStmt.close(); if (pStmt != null) {
pStmt = null; pStmt.close();
} pStmt = null;
String releiveDateStr = genericUtility.getValidDateTimeString(relieveDateTM.toString(), genericUtility.getDBDateFormat(), genericUtility.getApplDateFormat()); }
System.out.println("releiveDateStr:::::[" + releiveDateStr + "]");
if ("X".equalsIgnoreCase(status)) if ("X".equalsIgnoreCase(status)) {
{ retString = itmDBAccess.getErrorString("", "VTELPTRF16", userId, "", conn);
retString = itmDBAccess.getErrorString("", "VTELPTRF16", userId, "", conn); successFlag = false;
successFlag = false; return retString;
return retString; }
else if ("C".equalsIgnoreCase(status)) {
} retString = itmDBAccess.getErrorString("", "VTELPTRF17", userId, "", conn);
if ("C".equalsIgnoreCase(status)) successFlag = false;
{ return retString;
retString = itmDBAccess.getErrorString("", "VTELPTRF17", userId, "", conn); }
successFlag = false;
return retString; sql = " SELECT COUNT(*) AS ROW_CNT FROM EMP_LVEPRKBAL_TRFDET WHERE TRAN_ID = ? ";
} pStmt = conn.prepareStatement(sql);
pStmt.setString(1, tranId);
sql = " SELECT COUNT(*) AS ROW_CNT FROM EMP_LVEPRKBAL_TRFDET WHERE TRAN_ID = ? ";
pStmt = conn.prepareStatement(sql); rs = pStmt.executeQuery();
pStmt.setString(1, tranId);
if (rs.next()) {
rs = pStmt.executeQuery(); count = rs.getInt("ROW_CNT");
}
if (rs.next()) System.out.println("count:::: [" + count + "]");
{ if (rs != null) {
count = rs.getInt("ROW_CNT"); rs.close();
} rs = null;
System.out.println("count:::: [" + count + "]"); }
if (rs != null) if (pStmt != null) {
{ pStmt.close();
rs.close(); pStmt = null;
rs = null; }
}
if (pStmt != null) if (count <= 0) {
{ retString = itmDBAccess.getErrorString("", "VTELPTRF18", userId, "", conn);
pStmt.close(); successFlag = false;
pStmt = null; return retString;
} }
if (count <= 0) sql = "SELECT RELIEVE_DATE FROM EMPLOYEE WHERE EMP_CODE = ? ";
{ pStmt = conn.prepareStatement(sql);
retString = itmDBAccess.getErrorString("", "VTELPTRF18", userId, "", conn); pStmt.setString(1, empCodeFr);
successFlag = false; rs = pStmt.executeQuery();
return retString; if (rs.next()) {
} relieveDateTM = rs.getTimestamp("RELIEVE_DATE");
}
sql = "SELECT GRADE, CADRE, EMP_SITE, WORK_SITE, PAY_SITE FROM EMPLOYEE WHERE EMP_CODE = ? "; if (rs != null) {
pStmt = conn.prepareStatement(sql); rs.close();
pStmt.setString(1, empCodeTo); rs = null;
rs = pStmt.executeQuery(); }
if (rs.next()) if (pStmt != null) {
{ pStmt.close();
grade = checkNull(rs.getString("GRADE")); pStmt = null;
cadre = checkNull(rs.getString("CADRE")); }
siteCode = checkNull(rs.getString("EMP_SITE"));
workSite = checkNull(rs.getString("WORK_SITE")); String releiveDateStr = genericUtility.getValidDateTimeString(relieveDateTM.toString(),
paySite = checkNull(rs.getString("PAY_SITE")); genericUtility.getDBDateFormat(), genericUtility.getApplDateFormat());
} System.out.println("releiveDateStr:::::[" + releiveDateStr + "]");
if (rs != null) sql = "SELECT CODE FROM PERIOD WHERE ? BETWEEN FR_DATE AND TO_DATE";
{ pStmt = conn.prepareStatement(sql);
rs.close(); pStmt.setTimestamp(1, relieveDateTM);
rs = null; rs = pStmt.executeQuery();
} if (rs.next()) {
if (pStmt != null) periodCode = checkNull(rs.getString("CODE"));
{ }
pStmt.close(); if (rs != null) {
pStmt = null; rs.close();
} rs = null;
}
admParameter = "TRF" + tranType.trim() + "_BLUPD_PROC"; if (pStmt != null) {
pStmt.close();
admEnvReturn = this.admCommon.getAdmEnv(siteCode, cadre, grade, admParameter, curDateTm, conn); pStmt = null;
if ((admEnvReturn == null) || (admEnvReturn.trim().length() == 0) || (admEnvReturn.equalsIgnoreCase("NULLFOUND"))) }
{
admEnvReturn = this.admCommon.getEnv("999999", admParameter, conn); sql = "SELECT GRADE, CADRE, EMP_SITE, WORK_SITE, PAY_SITE FROM EMPLOYEE WHERE EMP_CODE = ? ";
if ((admEnvReturn == null) || (admEnvReturn.trim().length() == 0) || (admEnvReturn.equalsIgnoreCase("NULLFOUND"))) pStmt = conn.prepareStatement(sql);
{ pStmt.setString(1, empCodeTo);
admEnvReturn = ""; rs = pStmt.executeQuery();
} if (rs.next()) {
} grade = checkNull(rs.getString("GRADE"));
System.out.println("admEnvReturn:::::[" + admEnvReturn + "]"); cadre = checkNull(rs.getString("CADRE"));
if ("LVE".equalsIgnoreCase(tranType)) siteCode = checkNull(rs.getString("EMP_SITE"));
{ workSite = checkNull(rs.getString("WORK_SITE"));
sql = " select key_string as keystr, ref_ser as refser from transetup where upper(tran_window) = 'W_EMPLEAVE' "; paySite = checkNull(rs.getString("PAY_SITE"));
} }
else if (rs != null) {
{ rs.close();
sql = " select key_string as keystr, ref_ser as refser from transetup where upper(tran_window) = 'T_EMP_ADLAPSE'"; rs = null;
} }
pStmt = conn.prepareStatement(sql); if (pStmt != null) {
rs = pStmt.executeQuery(); pStmt.close();
if (rs.next()) pStmt = null;
{ }
keyString = checkNull(rs.getString("keystr"));
refSer = checkNull(rs.getString("refSer")); admParameter = "TRF" + tranType.trim() + "_BLUPD_PROC";
}
else admEnvReturn = this.admCommon.getAdmEnv(siteCode, cadre, grade, admParameter, curDateTm, conn);
{ if ((admEnvReturn == null) || (admEnvReturn.trim().length() == 0)
successFlag = false; || (admEnvReturn.equalsIgnoreCase("NULLFOUND"))) {
} admEnvReturn = this.admCommon.getEnv("999999", admParameter, conn);
if (rs != null) if ((admEnvReturn == null) || (admEnvReturn.trim().length() == 0)
{ || (admEnvReturn.equalsIgnoreCase("NULLFOUND"))) {
rs.close(); admEnvReturn = "";
rs = null; }
} }
if (pStmt != null) System.out.println("admEnvReturn:::::[" + admEnvReturn + "]");
{ if ("LVE".equalsIgnoreCase(tranType)) {
pStmt.close(); sql = " select key_string as keystr, ref_ser as refser from transetup where upper(tran_window) = 'W_EMPLEAVE' ";
pStmt = null; } else {
} sql = " select key_string as keystr, ref_ser as refser from transetup where upper(tran_window) = 'T_EMP_ADLAPSE'";
System.out.println("keyString[" + keyString + "]============= refSer[" + refSer + "]"); }
if (!successFlag) pStmt = conn.prepareStatement(sql);
{ rs = pStmt.executeQuery();
retString = itmDBAccess.getErrorString("", "VTSEQ", userId, "", conn); if (rs.next()) {
return retString; keyString = checkNull(rs.getString("keystr"));
} refSer = checkNull(rs.getString("refSer"));
} else {
logEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"); successFlag = false;
System.out.println("Umakanta::loginCode[" + logEmpCode + "]"); }
if (rs != null) {
if ("LVE".equalsIgnoreCase(tranType)) rs.close();
{ rs = null;
sql = " select sum(bal_days) as baldays from leavebal where emp_code = ? and lve_code = ? and EFF_DATE = ? and UPTO_DATE = ? and EXP_DATE >= ?"; }
if (pStmt != null) {
pStmt1 = conn.prepareStatement(sql); pStmt.close();
pStmt = null;
sql = "INSERT INTO EMPLEAVE ( EMP_CODE, LVE_DATE_FR, LVE_DATE_TO, LVE_CODE, USE_FLAG, ENCH_AMT, NO_DAYS, STATUS_DATE, PRD_CODE, CHG_DATE, CHG_USER, CHG_TERM, APPL_DATE, TRAN_ID, LEAVE_STARTS, LEAVE_ENDS ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) "; }
System.out.println("keyString[" + keyString + "]============= refSer[" + refSer + "]");
pStmt2 = conn.prepareStatement(sql); if (!successFlag) {
retString = itmDBAccess.getErrorString("", "VTSEQ", userId, "", conn);
sql = "SELECT count(*) as COUNT FROM EMPLEAVE WHERE TRAN_ID = ?"; return retString;
pStmt3 = conn.prepareStatement(sql); }
sql = " SELECT BALANCE_CODE, FROM_DATE, TO_DATE, SUM(BALANCE) AS BALANCE FROM EMP_LVEPRKBAL_TRFDET WHERE TRAN_ID = ? GROUP BY BALANCE_CODE, FROM_DATE, TO_DATE ORDER BY BALANCE_CODE, FROM_DATE, TO_DATE "; logEmpCode = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode");
System.out.println("Umakanta::loginCode[" + logEmpCode + "]");
pStmt = conn.prepareStatement(sql);
pStmt.setString(1, tranId); if ("LVE".equalsIgnoreCase(tranType)) {
rs = pStmt.executeQuery();
while (rs.next()) sql = "INSERT INTO EMPLEAVE ( EMP_CODE, LVE_DATE_FR, LVE_DATE_TO, LVE_CODE, USE_FLAG, ENCH_AMT, NO_DAYS, STATUS_DATE, PRD_CODE, CHG_DATE, CHG_USER, CHG_TERM, APPL_DATE, TRAN_ID, LEAVE_STARTS, LEAVE_ENDS ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ";
{
balCode = checkNull(rs.getString("BALANCE_CODE")); pStmt2 = conn.prepareStatement(sql);
lveBalance = rs.getDouble("BALANCE");
frDate = rs.getTimestamp("FROM_DATE"); sql = "SELECT count(*) as COUNT FROM EMPLEAVE WHERE TRAN_ID = ?";
toDate = rs.getTimestamp("TO_DATE"); pStmt3 = conn.prepareStatement(sql);
double balDays = 0.0D; sql = "SELECT STATUS FROM EMPLEAVE WHERE TRAN_ID = ?";
pStmt4 = conn.prepareStatement(sql);
pStmt1.setString(1, empCodeFr);
pStmt1.setString(2, balCode); sql = " SELECT BALANCE_CODE, FROM_DATE, TO_DATE, BALANCE FROM EMP_LVEPRKBAL_TRFDET WHERE TRAN_ID = ? ORDER BY BALANCE_CODE, FROM_DATE, TO_DATE ";
pStmt1.setTimestamp(3, frDate);
pStmt1.setTimestamp(4, toDate); pStmt = conn.prepareStatement(sql);
pStmt1.setTimestamp(5, relieveDateTM); pStmt.setString(1, tranId);
rs1 = pStmt1.executeQuery(); rs = pStmt.executeQuery();
if (rs1.next()) while (rs.next()) {
{ balCode = checkNull(rs.getString("BALANCE_CODE"));
balDays = rs1.getDouble("baldays"); lveBalance = rs.getDouble("BALANCE");
} frDate = rs.getTimestamp("FROM_DATE");
if (rs1 != null) toDate = rs.getTimestamp("TO_DATE");
{
rs1.close(); double balDays = 0.0D;
rs1 = null;
} xmlStringForID = new StringBuffer();
pStmt1.clearParameters(); xmlStringForID.append("<Root><Detail1><appl_date>" + curDateTm + "</appl_date><lve_code>" + balCode
+ "</lve_code>" + "<lve_date_fr>" + releiveDateStr + "</lve_date_fr>" + "<work_site>"
if (lveBalance > balDays) + workSite + "</work_site>" + "</Detail1></Root>");
{ System.out.println("xmlStringForID::::[" + xmlStringForID + "]");
retString = itmDBAccess.getErrorString("", "VTELPTRF20", userId, "", conn); TransIDGenerator tg = new TransIDGenerator(xmlStringForID.toString(), "SYSTEM",
successFlag = false; CommonConstants.DB_NAME);
break; String tranIdGen = tg.generateTranSeqID(refSer, "", keyString, conn);
} System.out.println("Umakanta::uniqueKey[" + tranIdGen + "]");
xmlStringForID = new StringBuffer(); pStmt2.setString(1, empCodeFr);
xmlStringForID.append("<Root><Detail1><appl_date>" + curDateTm + "</appl_date><lve_code>" + balCode + "</lve_code>" + pStmt2.setTimestamp(2, relieveDateTM);
"<lve_date_fr>" + releiveDateStr + "</lve_date_fr>" + pStmt2.setTimestamp(3, relieveDateTM);
"<work_site>" + workSite + "</work_site>" + "</Detail1></Root>"); pStmt2.setString(4, balCode);
System.out.println("xmlStringForID::::[" + xmlStringForID + "]"); pStmt2.setString(5, "A");
TransIDGenerator tg = new TransIDGenerator(xmlStringForID.toString(), "SYSTEM", CommonConstants.DB_NAME); pStmt2.setInt(6, 0);
String tranIdGen = tg.generateTranSeqID(refSer, "", keyString, conn); pStmt2.setDouble(7, lveBalance);
System.out.println("Umakanta::uniqueKey[" + tranIdGen + "]"); pStmt2.setTimestamp(8, relieveDateTM);
pStmt2.setString(9, periodCode);
pStmt2.setString(1, empCodeFr); pStmt2.setTimestamp(10, new Timestamp(System.currentTimeMillis()));
pStmt2.setTimestamp(2, relieveDateTM); pStmt2.setString(11, chgUser);
pStmt2.setTimestamp(3, relieveDateTM); pStmt2.setString(12, chgTerm);
pStmt2.setString(4, balCode); pStmt2.setTimestamp(13, curDateTm);
pStmt2.setString(5, "A"); pStmt2.setString(14, tranIdGen);
pStmt2.setInt(6, 0); pStmt2.setString(15, "B");
pStmt2.setDouble(7, lveBalance); pStmt2.setString(16, "E");
pStmt2.setTimestamp(8, relieveDateTM);
pStmt2.setString(9, periodCode); insrtStatus = pStmt2.executeUpdate();
pStmt2.setTimestamp(10, new Timestamp(System.currentTimeMillis())); System.out.println("insert executed = [" + insrtStatus + "]");
pStmt2.setString(11, chgUser); pStmt2.clearParameters();
pStmt2.setString(12, chgTerm);
pStmt2.setTimestamp(13, curDateTm); if (insrtStatus > 0) {
pStmt2.setString(14, tranIdGen); pStmt3.setString(1, tranIdGen);
pStmt2.setString(15, "B"); rs1 = pStmt3.executeQuery();
pStmt2.setString(16, "E"); if (rs1.next()) {
selectCount = rs1.getInt("COUNT");
insrtStatus = pStmt2.executeUpdate(); }
System.out.println("insert executed = [" + insrtStatus + "]"); if (rs1 != null) {
pStmt2.clearParameters(); rs1.close();
rs1 = null;
if (insrtStatus > 0) }
{ pStmt3.clearParameters();
pStmt3.setString(1, tranIdGen); System.out.println("empLeave.table::selectCount[" + selectCount + "]");
rs1 = pStmt3.executeQuery(); System.out.println("empLeave.table::tranIdGen[" + tranIdGen + "]");
if (rs1.next()) System.out.println("empLeave.table::xtraParams[" + xtraParams + "]");
{ String confirmStatus = empLeaveConf.confirm(tranIdGen, xtraParams, "Y",1, conn);
selectCount = rs1.getInt("COUNT"); System.out.println("empLeaveConf.confirm::confirmStatus[" + confirmStatus + "]");
}
if (rs1 != null) if(!confirmStatus.contains("VTSUCC1"))
{ {
rs1.close(); successFlag = false;
rs1 = null; retString = confirmStatus;
} break;
System.out.println("empLeave.table::selectCount[" + selectCount + "]"); }
System.out.println("empLeave.table::tranIdGen[" + tranIdGen + "]"); pStmt4.setString(1, tranIdGen);
System.out.println("empLeave.table::xtraParams[" + xtraParams + "]"); rs1 = pStmt4.executeQuery();
String confirmStatus = empLeaveConf.confirm(tranIdGen, xtraParams, "Y", conn); if (rs1.next()) {
System.out.println("empLeaveConf.confirm::confirmStatus[" + confirmStatus + "]"); statusEmpLeave = checkNull(rs1.getString("status"));
}
if (selectCount > 0) if (rs1 != null) {
{ rs1.close();
successFlag = true; rs1 = null;
}
successString = confirmStatus; pStmt4.clearParameters();
} System.out.println("empLeave.table::statusEmpLeave[" + statusEmpLeave + "]");
else if (statusEmpLeave.equalsIgnoreCase("A")) {
{ successFlag = true;
retString = confirmStatus; successString = confirmStatus;
successFlag = false; } else {
break; retString = confirmStatus;
} successFlag = false;
} break;
else }
{ System.out.println("::After EmpLeave status successFlag[" + successFlag + "]");
successFlag = false; } else {
break; successFlag = false;
} break;
} }
}
if (pStmt1 != null)
{ if (rs1 != null) {
pStmt1.close(); rs1.close();
pStmt1 = null; rs1 = null;
} }
if (pStmt2 != null) if (pStmt1 != null) {
{ pStmt1.close();
pStmt2.close(); pStmt1 = null;
pStmt2 = null; }
} if (pStmt2 != null) {
if (pStmt3 != null) pStmt2.close();
{ pStmt2 = null;
pStmt3.close(); }
pStmt3 = null; if (pStmt3 != null) {
} pStmt3.close();
if (rs != null) pStmt3 = null;
{ }
rs.close(); if (pStmt4 != null) {
rs = null; pStmt4.close();
} pStmt4 = null;
if (pStmt != null) }
{ if (rs != null) {
pStmt.close(); rs.close();
pStmt = null; rs = null;
} }
if ((retString != null) && (retString.trim().length() > 0)) if (pStmt != null) {
{ pStmt.close();
System.out.println("retString:::::[ " + retString + " ] "); pStmt = null;
successFlag = false; }
return retString; if ((retString != null) && (retString.trim().length() > 0)) {
} System.out.println("retString:::::[ " + retString + " ] ");
successFlag = false;
if (successFlag) return retString;
{ }
if ((admEnvReturn != null) && (admEnvReturn.trim().length() > 0) && (!admEnvReturn.equalsIgnoreCase("NULLFOUND")))
{
try
{
System.out.println("Inside callable statement");
String procSql = "{call " + admEnvReturn + "(?,?,?,?,?)}";
callStmt = conn.prepareCall(procSql);
callStmt.setString(1, tranId);
callStmt.setString(2, chgUser);
callStmt.setString(3, empCodeTo);
callStmt.setString(4, chgTerm);
callStmt.registerOutParameter(5, Types.VARCHAR);
callStmt.executeQuery();
String outParam = callStmt.getString(5);
if (callStmt != null)
{
callStmt.close();
callStmt = null;
}
System.out.println("outParam::::["+outParam+"]");
if ((outParam != null) && (outParam.trim().length() > 0))
{
retString = itmDBAccess.getErrorString("", "VTELPTRF53", userId, "", conn);
successFlag = false;
}
successFlag = true;
}
catch (SQLException se)
{
se.printStackTrace();
retString = this.admCommon.getErrorMessage(se, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
successFlag = false;
return retString;
}
}
else
{
retString = itmDBAccess.getErrorString("", "VTELPTRF52", userId, "", conn);
successFlag = false;
return retString;
}
}
}
else if ("PRK".equalsIgnoreCase(tranType))
{
if (empCodeTo.length() <= 0)
{
retString = itmDBAccess.getErrorString("", "VTELPTRF19", userId, "", conn);
successFlag = false;
return retString;
}
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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
pStmt1 = conn.prepareStatement(sql);
sql = "insert into emp_adclaim (tran_id, tran_date , payroll_voucher, emp_code, ad_code, eff_date, bal_amt, claim_amt,chg_date, chg_user, chg_term ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
pStmt2 = conn.prepareStatement(sql);
sql = " SELECT COUNT(*) AS COUNT FROM ALLOWDEDN_BAL WHERE EMP_CODE = ? AND AD_CODE = ? AND START_DATE = ? AND END_DATE = ?";
pStmt3 = conn.prepareStatement(sql);
sql = "UPDATE ALLOWDEDN_BAL set AMOUNT = AMOUNT + ?, AMT_BAL = AMT_BAL + ? WHERE EMP_CODE = ? AND AD_CODE = ? AND START_DATE = ? AND END_DATE = ?";
pStmt4 = conn.prepareStatement(sql);
sql = "Insert into ALLOWDEDN_BAL (EMP_CODE,AD_CODE,START_DATE,END_DATE,AMOUNT,AMT_ADJ,AMT_BAL,EXP_DATE,REF_TYPE,REF_NO,CHG_DATE,CHG_USER,CHG_TERM) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
pStmt5 = conn.prepareStatement(sql);
String procSql = "{call " + admEnvReturn + "(?,?,?,?,?)}";
callStmt = conn.prepareCall(procSql);
sql = " SELECT ACCT_PRD, BALANCE_CODE , ENCASHABLE, LVE_UNIT, FROM_DATE, TO_DATE, EXP_DATE, BALANCE FROM EMP_LVEPRKBAL_TRFDET WHERE TRAN_ID = ? GROUP BY ACCT_PRD, BALANCE_CODE, ENCASHABLE, LVE_UNIT, FROM_DATE, to_date, exp_date, BALANCE ";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1, tranId);
rs = pStmt.executeQuery();
int ctr = 0;
while (rs.next())
{
balCode = checkNull(rs.getString("BALANCE_CODE"));
frDate = rs.getTimestamp("FROM_DATE");
toDate = rs.getTimestamp("TO_DATE");
expDate = rs.getTimestamp("EXP_DATE");
perkBalance = rs.getDouble("BALANCE");
xmlStringForID = new StringBuffer();
xmlStringForID.append("<Root><Detail1><pay_site>" +
paySite + "</pay_site><site_code>" + siteCode + "</site_code><ad_code>" + balCode + "</ad_code>" +
"<tran_date>" + currDateStr + "</tran_date>" +
"</Detail1></Root>");
System.out.println("xmlStringForID::::[" + xmlStringForID + "]");
TransIDGenerator tg = new TransIDGenerator(xmlStringForID.toString(), "SYSTEM", CommonConstants.DB_NAME);
String tranIdGen = tg.generateTranSeqID(refSer, "", keyString, conn);
System.out.println("Umakanta::uniqueKey[" + tranIdGen + "]");
pStmt1.setString(1, tranIdGen);
pStmt1.setTimestamp(2, curDateTm);
pStmt1.setString(3, empCodeFr);
pStmt1.setDouble(4, perkBalance);
pStmt1.setInt(5, 0);
pStmt1.setString(6, "L");
pStmt1.setString(7, "");
pStmt1.setTimestamp(8, new Timestamp(System.currentTimeMillis()));
pStmt1.setString(9, chgUser);
pStmt1.setString(10, chgTerm);
pStmt1.setString(11, balCode);
pStmt1.setString(12, "Y");
insrtStatus = pStmt1.executeUpdate();
System.out.println("insert executed = [" + insrtStatus + "]");
pStmt1.clearParameters();
if (insrtStatus > 0)
{
successFlag = true;
}
else
{
successFlag = false;
break;
}
pStmt2.setString(1, tranIdGen);
pStmt2.setTimestamp(2, curDateTm);
pStmt2.setString(3, "L");
pStmt2.setString(4, empCodeFr);
pStmt2.setString(5, balCode);
pStmt2.setTimestamp(6, frDate);
pStmt2.setDouble(7, perkBalance);
pStmt2.setDouble(8, perkBalance);
pStmt2.setTimestamp(9, new Timestamp(System.currentTimeMillis()));
pStmt2.setString(10, chgUser);
pStmt2.setString(11, chgTerm);
insrtStatus = pStmt2.executeUpdate();
System.out.println("insert executed = [" + insrtStatus + "]");
pStmt2.clearParameters();
if (insrtStatus > 0)
{
successFlag = true;
}
else
{
successFlag = false;
break;
}
System.out.println("*************admEnvReturn:::::[" + admEnvReturn + "]");
if ((admEnvReturn == null) || (admEnvReturn.trim().length() == 0) || (admEnvReturn.equalsIgnoreCase("NULLFOUND")))
{
pStmt3.setString(1, empCodeTo);
pStmt3.setString(2, balCode);
pStmt3.setTimestamp(3, frDate);
pStmt3.setTimestamp(4, toDate);
rs1 = pStmt3.executeQuery();
if (rs1.next())
{
insrtStatus = rs1.getInt("COUNT");
}
if (rs1 != null)
{
rs1.close();
rs1 = null;
}
pStmt3.clearParameters();
if (insrtStatus > 0)
{
pStmt4.setDouble(1, perkBalance);
pStmt4.setDouble(2, perkBalance);
pStmt4.setString(3, empCodeTo);
pStmt4.setString(4, balCode);
pStmt4.setTimestamp(5, frDate);
pStmt4.setTimestamp(6, toDate);
updCnt = pStmt4.executeUpdate();
pStmt4.clearParameters();
if (updCnt > 0)
{
successFlag = true;
}
else
{
successFlag = false;
break;
}
}
else
{
pStmt5.setString(1, empCodeTo);
pStmt5.setString(2, balCode);
pStmt5.setTimestamp(3, frDate);
pStmt5.setTimestamp(4, toDate);
pStmt5.setDouble(5, perkBalance);
pStmt5.setInt(6, 0);
pStmt5.setDouble(7, perkBalance);
pStmt5.setTimestamp(8, relieveDateTM);
pStmt5.setString(9, "K");
pStmt5.setString(10, null);
pStmt5.setTimestamp(11, new Timestamp(System.currentTimeMillis()));
pStmt5.setString(12, chgUser);
pStmt5.setString(13, chgTerm);
updCnt = pStmt5.executeUpdate();
System.out.println("insert executed = [" + updCnt + "]");
pStmt5.clearParameters();
if (updCnt > 0)
{
successFlag = true;
}
else
{
successFlag = false;
break;
}
}
}
else
{
try
{
System.out.println("Inside callable statement");
System.out.println("tranId:::["+tranId+"] chgUser:::["+chgUser+"] empCodeTo:::["+empCodeTo+"] chgTerm:::["+chgTerm+"]");
callStmt.setString(1, tranId);
callStmt.setString(2, chgUser);
callStmt.setString(3, empCodeTo);
callStmt.setString(4, chgTerm);
callStmt.registerOutParameter(5, Types.VARCHAR);
callStmt.executeQuery();
String outParam = callStmt.getString(5);
if (callStmt != null)
{
callStmt.close();
callStmt = null;
}
System.out.println("outParam::::["+outParam+"]");
if ((outParam != null) && (outParam.trim().length() > 0))
{
retString = itmDBAccess.getErrorString("", "VTELPTRF53", userId, "", conn);
successFlag = false;
break;
}
successFlag = true;
}
catch (SQLException se)
{
se.printStackTrace();
retString = this.admCommon.getErrorMessage(se, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
successFlag = false;
}
}
}
if (pStmt1 != null)
{
pStmt1.close();
pStmt1 = null;
}
if (pStmt2 != null)
{
pStmt2.close();
pStmt2 = null;
}
if (pStmt3 != null)
{
pStmt3.close();
pStmt3 = null;
}
if (pStmt4 != null)
{
pStmt4.close();
pStmt4 = null;
}
if (pStmt5 != null)
{
pStmt5.close();
pStmt5 = null;
}
if (rs != null)
{
rs.close();
rs = null;
}
if (pStmt != null)
{
pStmt.close();
pStmt = null;
}
if (callStmt != null)
{
callStmt.close();
callStmt = null;
}
}
if (successFlag)
{
sql = " UPDATE EMP_LVEPRKBAL_TRFHDR SET STATUS = ?, STATUS_DATE = ?, EMP_CODE__CONF = ? WHERE TRAN_ID = ? ";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1, "C");
pStmt.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
pStmt.setString(3, logEmpCode);
pStmt.setString(4, tranId);
updCnt = pStmt.executeUpdate();
if (updCnt > 0)
{
successString = itmDBAccess.getErrorString("", "VTSUCC1", userId, "", conn);
successFlag = true;
System.out.println("Umakanta::retString::Confirm[" + successString + "]");
return successString;
}
successFlag = false;
if (pStmt != null)
{
pStmt.close();
pStmt = null;
}
}
}
catch (SQLException se)
{
se.printStackTrace();
successFlag = false;
retString = this.admCommon.getErrorMessage(se, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
return retString;
}
catch (BaseException be)
{
successFlag = false;
retString = this.admCommon.getErrorMessage(be, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
return retString;
}
catch (Exception exp)
{
System.out.println("Umakanta::Exception[" + exp.getMessage() + "]");
successFlag = false;
retString = this.admCommon.getErrorMessage(exp, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
String str1 = retString;
return str1;
}
finally
{
try
{
//Added by sarita on 25 JULY 18 [START]
itmDBAccess = null;
//Added by sarita on 25 JULY 18 [END]
if (successFlag)
{
conn.commit();
}
else
{
conn.rollback();
}
if (conn != null)
{
if (rs1 != null)
{
rs1.close();
rs1 = null;
}
if (pStmt1 != null)
{
pStmt1.close();
pStmt1 = null;
}
if (pStmt2 != null)
{
pStmt2.close();
pStmt2 = null;
}
if (pStmt3 != null)
{
pStmt3.close();
pStmt3 = null;
}
if (pStmt4 != null)
{
pStmt4.close();
pStmt4 = null;
}
if (pStmt5 != null)
{
pStmt5.close();
pStmt5 = null;
}
if (rs != null)
{
rs.close();
rs = null;
}
if (pStmt != null)
{
pStmt.close();
pStmt = null;
}
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
return retString;
}
if (successFlag) {
if ((admEnvReturn != null) && (admEnvReturn.trim().length() > 0)
&& (!admEnvReturn.equalsIgnoreCase("NULLFOUND"))) {
try {
System.out.println("Inside callable statement");
String procSql = "{call " + admEnvReturn + "(?,?,?,?,?)}";
callStmt = conn.prepareCall(procSql);
callStmt.setString(1, tranId);
callStmt.setString(2, chgUser);
callStmt.setString(3, empCodeTo);
callStmt.setString(4, chgTerm);
callStmt.registerOutParameter(5, Types.VARCHAR);
callStmt.executeQuery();
String outParam = callStmt.getString(5);
if (callStmt != null) {
callStmt.close();
callStmt = null;
}
System.out.println("outParam::::[" + outParam + "]");
if ((outParam != null) && (outParam.trim().length() > 0)) {
// retString = itmDBAccess.getErrorString("", "VTELPTRF53", userId, "", conn);
retString = itmDBAccess.getErrorString("", outParam.trim(), userId, "", conn);
successFlag = false;
}
successFlag = true;
} catch (SQLException se) {
se.printStackTrace();
retString = this.admCommon.getErrorMessage(se, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
successFlag = false;
return retString;
}
} else {
retString = itmDBAccess.getErrorString("", "VTELPTRF24", userId, "", conn);
successFlag = false;
return retString;
}
}
} else if ("PRK".equalsIgnoreCase(tranType)) {
if (empCodeTo.length() <= 0) {
retString = itmDBAccess.getErrorString("", "VTELPTRF19", userId, "", conn);
successFlag = false;
return retString;
}
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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
pStmt1 = conn.prepareStatement(sql);
sql = "insert into emp_adclaim (tran_id, tran_date , payroll_voucher, emp_code, ad_code, eff_date, bal_amt, claim_amt,chg_date, chg_user, chg_term ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
pStmt2 = conn.prepareStatement(sql);
sql = " SELECT COUNT(*) AS COUNT FROM ALLOWDEDN_BAL WHERE EMP_CODE = ? AND AD_CODE = ? AND START_DATE = ? AND END_DATE = ?";
pStmt3 = conn.prepareStatement(sql);
sql = "UPDATE ALLOWDEDN_BAL set AMOUNT = AMOUNT + ?, AMT_BAL = AMT_BAL + ? WHERE EMP_CODE = ? AND AD_CODE = ? AND START_DATE = ? AND END_DATE = ?";
pStmt4 = conn.prepareStatement(sql);
sql = "Insert into ALLOWDEDN_BAL (EMP_CODE,AD_CODE,START_DATE,END_DATE,AMOUNT,AMT_ADJ,AMT_BAL,EXP_DATE,REF_TYPE,REF_NO,CHG_DATE,CHG_USER,CHG_TERM) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
pStmt5 = conn.prepareStatement(sql);
// Added by Varsha V on 16-07-18 for updating AMOUNT for emp_code_fr
// Modified by Piyush on 18/07/2018 [Should not update amount]
// sql = "UPDATE ALLOWDEDN_BAL set AMOUNT = AMOUNT - ?, AMT_ADJ = AMT_ADJ + ?,
// AMT_BAL = AMT_BAL - ? WHERE EMP_CODE = ? AND AD_CODE = ? AND START_DATE = ?
// AND END_DATE = ?";
sql = "UPDATE ALLOWDEDN_BAL set AMT_ADJ = AMT_ADJ + ?, AMT_BAL = AMT_BAL - ? WHERE EMP_CODE = ? AND AD_CODE = ? AND START_DATE = ? AND END_DATE = ?";
pStmt6 = conn.prepareStatement(sql);
// Ended by Varsha V on 16-07-18 for updating AMOUNT for emp_code_fr
String procSql = "{call " + admEnvReturn + "(?,?,?,?,?)}";
callStmt = conn.prepareCall(procSql);
sql = " SELECT ACCT_PRD, BALANCE_CODE , ENCASHABLE, LVE_UNIT, FROM_DATE, TO_DATE, EXP_DATE, BALANCE FROM EMP_LVEPRKBAL_TRFDET WHERE TRAN_ID = ? GROUP BY ACCT_PRD, BALANCE_CODE, ENCASHABLE, LVE_UNIT, FROM_DATE, to_date, exp_date, BALANCE ";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1, tranId);
rs = pStmt.executeQuery();
int ctr = 0;
while (rs.next()) {
balCode = checkNull(rs.getString("BALANCE_CODE"));
frDate = rs.getTimestamp("FROM_DATE");
toDate = rs.getTimestamp("TO_DATE");
expDate = rs.getTimestamp("EXP_DATE");
perkBalance = rs.getDouble("BALANCE");
xmlStringForID = new StringBuffer();
xmlStringForID.append("<Root><Detail1><pay_site>" + paySite + "</pay_site><site_code>" + siteCode
+ "</site_code><ad_code>" + balCode + "</ad_code>" + "<tran_date>" + currDateStr
+ "</tran_date>" + "</Detail1></Root>");
System.out.println("xmlStringForID::::[" + xmlStringForID + "]");
TransIDGenerator tg = new TransIDGenerator(xmlStringForID.toString(), "SYSTEM",
CommonConstants.DB_NAME);
String tranIdGen = tg.generateTranSeqID(refSer, "", keyString, conn);
System.out.println("Umakanta::uniqueKey[" + tranIdGen + "]");
pStmt1.setString(1, tranIdGen);
pStmt1.setTimestamp(2, curDateTm);
pStmt1.setString(3, empCodeFr);
pStmt1.setDouble(4, perkBalance);
pStmt1.setInt(5, 0);
pStmt1.setString(6, "L");
pStmt1.setString(7, "");
pStmt1.setTimestamp(8, new Timestamp(System.currentTimeMillis()));
pStmt1.setString(9, chgUser);
pStmt1.setString(10, chgTerm);
pStmt1.setString(11, balCode);
pStmt1.setString(12, "Y");
insrtStatus = pStmt1.executeUpdate();
System.out.println("insert executed = [" + insrtStatus + "]");
pStmt1.clearParameters();
if (insrtStatus > 0) {
successFlag = true;
} else {
successFlag = false;
break;
}
private InitialContext getInitialContext()throws ITMException pStmt2.setString(1, tranIdGen);
{ pStmt2.setTimestamp(2, curDateTm);
pStmt2.setString(3, "L");
pStmt2.setString(4, empCodeFr);
pStmt2.setString(5, balCode);
pStmt2.setTimestamp(6, frDate);
pStmt2.setDouble(7, perkBalance);
pStmt2.setDouble(8, perkBalance);
pStmt2.setTimestamp(9, new Timestamp(System.currentTimeMillis()));
pStmt2.setString(10, chgUser);
pStmt2.setString(11, chgTerm);
insrtStatus = pStmt2.executeUpdate();
System.out.println("insert executed = [" + insrtStatus + "]");
pStmt2.clearParameters();
if (insrtStatus > 0) {
successFlag = true;
} else {
successFlag = false;
break;
}
System.out.println("*************admEnvReturn:::::[" + admEnvReturn + "]");
if ((admEnvReturn == null) || (admEnvReturn.trim().length() == 0)
|| (admEnvReturn.equalsIgnoreCase("NULLFOUND"))) {
insrtStatus = 0;
pStmt3.setString(1, empCodeTo);
pStmt3.setString(2, balCode);
pStmt3.setTimestamp(3, frDate);
pStmt3.setTimestamp(4, toDate);
rs1 = pStmt3.executeQuery();
if (rs1.next()) {
insrtStatus = rs1.getInt("COUNT");
}
if (rs1 != null) {
rs1.close();
rs1 = null;
}
pStmt3.clearParameters();
if (insrtStatus > 0) {
pStmt4.setDouble(1, perkBalance);
pStmt4.setDouble(2, perkBalance);
pStmt4.setString(3, empCodeTo);
pStmt4.setString(4, balCode);
pStmt4.setTimestamp(5, frDate);
pStmt4.setTimestamp(6, toDate);
updCnt = pStmt4.executeUpdate();
pStmt4.clearParameters();
if (updCnt > 0) {
successFlag = true;
} else {
successFlag = false;
break;
}
} else {
pStmt5.setString(1, empCodeTo);
pStmt5.setString(2, balCode);
pStmt5.setTimestamp(3, frDate);
pStmt5.setTimestamp(4, toDate);
pStmt5.setDouble(5, perkBalance);
pStmt5.setInt(6, 0);
pStmt5.setDouble(7, perkBalance);
pStmt5.setTimestamp(8, relieveDateTM);
pStmt5.setString(9, "K");
pStmt5.setString(10, null);
pStmt5.setTimestamp(11, new Timestamp(System.currentTimeMillis()));
pStmt5.setString(12, chgUser);
pStmt5.setString(13, chgTerm);
updCnt = pStmt5.executeUpdate();
System.out.println("insert executed = [" + updCnt + "]");
pStmt5.clearParameters();
if (updCnt > 0) {
successFlag = true;
} else {
successFlag = false;
break;
}
}
// Added by Varsha V on 16-07-18 for updating AMOUNT for emp_code_fr
if (successFlag) {
// Modified by Piyush on 18/07/2018 [Should not update amount].Start
pStmt6.setDouble(1, perkBalance);
pStmt6.setDouble(2, perkBalance);
pStmt6.setString(3, empCodeFr);
pStmt6.setString(4, balCode);
pStmt6.setTimestamp(5, frDate);
pStmt6.setTimestamp(6, toDate);
// Modified by Piyush on 18/07/2018 [Should not update amount].End
updCnt = pStmt6.executeUpdate();
pStmt6.clearParameters();
if (updCnt > 0) {
successFlag = true;
} else {
successFlag = false;
break;
}
}
// Ended by Varsha V on 16-07-18 for updating AMOUNT for emp_code_fr
}
// Modified by Piyush on 18/07/2018 [Procedure should be called outside of loop
// as it should happen once only].Start
}
if (rs != null) {
rs.close();
rs = null;
}
if (pStmt != null) {
pStmt.close();
pStmt = null;
}
if ((admEnvReturn != null) && (admEnvReturn.trim().length() > 0)
&& (!admEnvReturn.equalsIgnoreCase("NULLFOUND"))) {
try {
System.out.println("Inside callable statement");
System.out.println("tranId:::[" + tranId + "] chgUser:::[" + chgUser + "] empCodeTo:::["
+ empCodeTo + "] chgTerm:::[" + chgTerm + "]");
callStmt.setString(1, tranId);
callStmt.setString(2, chgUser);
callStmt.setString(3, empCodeTo);
callStmt.setString(4, chgTerm);
callStmt.registerOutParameter(5, Types.VARCHAR);
callStmt.executeQuery();
String outParam = callStmt.getString(5);
if (callStmt != null) {
callStmt.close();
callStmt = null;
}
System.out.println("outParam::::[" + outParam + "]");
if ((outParam != null) && (outParam.trim().length() > 0)) {
retString = itmDBAccess.getErrorString("", outParam.trim(), userId, "", conn);
successFlag = false;
} else {
successFlag = true;
}
} catch (SQLException se) {
se.printStackTrace();
retString = this.admCommon.getErrorMessage(se, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
successFlag = false;
}
}
}
if (rs != null) {
rs.close();
rs = null;
}
if (pStmt != null) {
pStmt.close();
pStmt = null;
}
if (rs1 != null) {
rs1.close();
rs1 = null;
}
if (pStmt1 != null) {
pStmt1.close();
pStmt1 = null;
}
if (pStmt2 != null) {
pStmt2.close();
pStmt2 = null;
}
if (pStmt3 != null) {
pStmt3.close();
pStmt3 = null;
}
if (pStmt4 != null) {
pStmt4.close();
pStmt4 = null;
}
if (pStmt5 != null) {
pStmt5.close();
pStmt5 = null;
}
if (pStmt6 != null) {
pStmt6.close();
pStmt6 = null;
}
if (successFlag) {
sql = " UPDATE EMP_LVEPRKBAL_TRFHDR SET STATUS = ?, STATUS_DATE = ?, EMP_CODE__CONF = ? WHERE TRAN_ID = ? ";
pStmt = conn.prepareStatement(sql);
pStmt.setString(1, "C");
pStmt.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
pStmt.setString(3, logEmpCode);
pStmt.setString(4, tranId);
updCnt = pStmt.executeUpdate();
if (updCnt > 0) {
successString = itmDBAccess.getErrorString("", "VTSUCC1", userId, "", conn);
successFlag = true;
System.out.println("Umakanta::retString::Confirm[" + successString + "]");
return successString;
} else {
retString = itmDBAccess.getErrorString("", "VTELPTRF23", userId, "", conn);
successFlag = false;
return retString;
}
}
} catch (SQLException se) {
se.printStackTrace();
successFlag = false;
retString = this.admCommon.getErrorMessage(se, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
return retString;
} catch (BaseException be) {
successFlag = false;
retString = this.admCommon.getErrorMessage(be, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
return retString;
}
// }
catch (Exception exp) {
System.out.println("Umakanta::Exception[" + exp.getMessage() + "]");
successFlag = false;
retString = this.admCommon.getErrorMessage(exp, "");
retString = this.admCommon.getErrorXmlString(this.admCommon, retString, tranId);
System.out.println("errString after getErrorXmlString: " + retString);
String str1 = retString;
return str1;
} finally {
try {
if (conn != null) {
if (successFlag) {
conn.commit();
} else {
conn.rollback();
}
if (rs1 != null) {
rs1.close();
rs1 = null;
}
if (pStmt1 != null) {
pStmt1.close();
pStmt1 = null;
}
if (pStmt2 != null) {
pStmt2.close();
pStmt2 = null;
}
if (pStmt3 != null) {
pStmt3.close();
pStmt3 = null;
}
if (pStmt4 != null) {
pStmt4.close();
pStmt4 = null;
}
if (pStmt5 != null) {
pStmt5.close();
pStmt5 = null;
}
if (rs != null) {
rs.close();
rs = null;
}
if (pStmt != null) {
pStmt.close();
pStmt = null;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return retString;
}
private InitialContext getInitialContext() throws ITMException {
InitialContext ctx = null; InitialContext ctx = null;
try try {
{
AppConnectParm appConnect = new AppConnectParm(); AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty()); ctx = new InitialContext(appConnect.getProperty());
} } catch (ITMException itme) {
catch(ITMException itme)
{
System.out.println("ITMException :[EmpLvePrkBalTrfConf] :getInitialContext :==>"); System.out.println("ITMException :[EmpLvePrkBalTrfConf] :getInitialContext :==>");
throw itme; throw itme;
} } catch (Exception e) {
catch(Exception e)
{
System.out.println("Exception :[EmpLvePrkBalTrfConf] :getInitialContext :==>"); System.out.println("Exception :[EmpLvePrkBalTrfConf] :getInitialContext :==>");
throw new ITMException(e); throw new ITMException(e);
} }
...@@ -945,71 +897,55 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa ...@@ -945,71 +897,55 @@ public class EmpLvePrkBalTrfConf extends ActionHandlerEJB implements EmpLvePrkBa
* @return input * @return input
*/ */
@SuppressWarnings("unused") @SuppressWarnings("unused")
private String checkNull( String input ) private String checkNull(String input) {
{ if (input == null) {
if ( input == null )
{
input = ""; input = "";
} } else {
else
{
input = input.trim(); input = input.trim();
} }
return input; return input;
} }
/** /**
* This Method returns msgType * This Method returns msgType
* *
* @param conn * @param conn
* @param errorCode * @param errorCode
* @return msgType * @return msgType
* @throws ITMException * @throws ITMException
*/ */
private String errorType( Connection conn , String errorCode ) throws ITMException private String errorType(Connection conn, String errorCode) throws ITMException {
{
String msgType = ""; String msgType = "";
PreparedStatement pstmt = null ; PreparedStatement pstmt = null;
ResultSet rs = null; ResultSet rs = null;
try try {
{ String sql = " SELECT MSG_TYPE FROM MESSAGES WHERE MSG_NO = ? ";
String sql = " SELECT MSG_TYPE FROM MESSAGES WHERE MSG_NO = ? ";
pstmt = conn.prepareStatement( sql ); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, errorCode); pstmt.setString(1, errorCode);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while( rs.next() ) while (rs.next()) {
{
msgType = rs.getString("MSG_TYPE"); msgType = rs.getString("MSG_TYPE");
} }
} } catch (Exception ex) {
catch (Exception ex)
{
ex.printStackTrace(); ex.printStackTrace();
throw new ITMException(ex); throw new ITMException(ex);
} } finally {
finally try {
{ if (rs != null) {
try
{
if ( rs != null )
{
rs.close(); rs.close();
rs = null; rs = null;
} }
if ( pstmt != null ) if (pstmt != null) {
{
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
} } catch (Exception e) {
catch ( Exception e )
{
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e); throw new ITMException(e);
} }
} }
return msgType; return msgType;
} }
} }
\ 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