Commit 7e42780a authored by dshah's avatar dshah

FI90WIN010,Modified EJB for Reconcile Process


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@91257 ce508802-f39f-4f6c-b175-0d175dae99d5
parent c9b69ac9
......@@ -32,8 +32,6 @@ import javax.ejb.Stateless; // added for ejb3
public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankReconPrcRemote // SessionBean
{
Connection conn = null;
ITMDBAccessEJB itmDBAccessEJB = null;
CommonConstants commonConstants;
GenericUtility genericUtility = GenericUtility.getInstance();
String userId = "";
......@@ -105,6 +103,8 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
}
public String process(Document headerDom, Document detailDom, String windowName, String xtraParams) throws RemoteException,ITMException
{
ITMDBAccessEJB itmDBAccessEJB = null;
Connection conn = null;
String childNodeName = "";
String errCode = "";
String errString = "";
......@@ -146,12 +146,33 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
}
}
}
reconcile(siteCode,bankCode);
itmDBAccessEJB = new ITMDBAccessEJB();
ConnDriver conndriver = new ConnDriver();
conn = conndriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
conndriver = null;
errString = reconcile(siteCode,bankCode,"R",conn);
if(errString == null || errString.trim().length()==0)
{
errString = reconcile(siteCode,bankCode,"B",conn);
}
if(errString == null || errString.trim().length()==0)
{
conn.commit();
}
else
{
conn.rollback();
}
conn.close();
conn = null;
}
catch(Exception excep)
catch(Exception e)
{
System.out.println("Exception3[BankReconPrcEJB][reconcile(1)][Excuting Query Failed(count tot transl from batchload)] ::"+excep.getMessage());
excep.printStackTrace();
System.out.println("Exception3[BankReconPrcEJB][reconcile(1)][Excuting Query Failed(count tot transl from batchload)] ::"+e.getMessage());
e.printStackTrace();
errString="VTPRCERR";
throw new ITMException(e);
}
if (errString == null || errString.trim().length() == 0)
{
......@@ -169,7 +190,7 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
}
//FUNCTION GFCREATEBATCH
public void reconcile(String siteCode,String bankCode)throws RemoteException,ITMException
public String reconcile(String siteCode,String bankCode,String refOrBat, Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
......@@ -196,21 +217,35 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
double balBS = 0.0;
double amtAdjust = 0.0;
String sql = "";
String sqlBT = "";
String refNoBS ="";
double balS = 0;
double balT = 0;
String refNoBT ="";
String refnoTemp = "";
String sqlBS = "";
String errString = "";
//collecting the data from bankstatement
//comment by rajendra on 12/24/2007
//sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) from bank_statement where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and STATUS ='P' OR STATUS IS NULL GROUP BY ref_no ";
//added by rajendra on 12/24/2007 for adding OR STATUS ='E'
sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) from bank_statement where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
// 29/03/10 manoharan dynamic binding of arguments
//sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) from bank_statement where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) "
+ " from bank_statement "
+ " where site_code = ? "
+ " and bank_code = ? "
+ " and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
System.out.println("query executed(bank_statement):::"+sql);
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
ConnDriver conndriver = new ConnDriver();
conn = conndriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode.trim());
pstmt.setString(2,bankCode.trim());
//pstmt.setString(1,siteCode.trim());
//pstmt.setString(2,siteCode.trim());
rs = pstmt.executeQuery();
......@@ -234,30 +269,38 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
}
rs.close();
pstmt.close();
}
catch(SQLException se)
{
System.out.println("SQLException :[BankReconPrcEJB][reconcile(1)][Excuting Query Failed(count tot transl from batchload)]" + sql + se.getMessage());
}
catch(Exception ex)
{
System.out.println("Exception[BankReconPrcEJB][reconcile(1)][Excuting Query Failed(count tot transl from batchload)] ::"+sql +ex.getMessage());
ex.printStackTrace();
}
//collecting data from banktranlog
rs = null;
pstmt = null;
//added by rajendra on 12/24/2007 for adding OR STATUS ='E'
//Commented and Changes below - Gulzar - 16/01/09(FI89PHE023) - remove a white space after siteCode.trim() and added a white space before and bank_code
//sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) from banktran_log where site_code ='"+siteCode.trim()+" 'and bank_code ='"+bankCode.trim()+"' and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) from banktran_log where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
// 29/03/10 manoharan dysnamic binding of arguments
//sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) from banktran_log where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
if(refOrBat.equals("R"))
{
sql = " SELECT REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) "
+ " from banktran_log "
+ " where site_code = ? "
+ " and bank_code = ? "
+ " and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ref_no ";
//End Changes - Gulzar - 16/01/09 (FI8PHE023)
}
else
{
//*****Dhawal******Fix for Request FI90WIN010 where instead of checking Ref_no,
//Entry_batch_no is checked to bank statement and updated the status according to it.
sql = " SELECT ENTRY_BATCH_NO as REF_NO,SUM(AMOUNT),SUM(AMT_ADJ) "
+ " from banktran_log "
+ " where site_code = ? "
+ " and bank_code = ? "
+ " and ( STATUS ='P' OR STATUS ='E' OR STATUS IS NULL ) GROUP BY ENTRY_BATCH_NO ";
}
System.out.println("query executed(banktran_log):::"+sql);
try
{
pstmt = conn.prepareStatement(sql);
//pstmt.setString(1,siteCode.trim());
//pstmt.setString(2,siteCode.trim());
pstmt.setString(1,siteCode.trim());
pstmt.setString(2,bankCode.trim());
rs = pstmt.executeQuery();
while(rs.next())
{
......@@ -280,35 +323,27 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
}
rs.close();
pstmt.close();
}
catch(SQLException se1)
{
System.out.println("SQLException :[BankReconPrcEJB][reconcile(2)][Excuting Query Failed(count tot transl from batchload)]" + sql + se1.getMessage());
}
catch(Exception ex1)
{
System.out.println("Exception3[BankReconPrcEJB][reconcile(2)][Excuting Query Failed(count tot transl from batchload)] ::"+sql +ex1.getMessage());
ex1.printStackTrace();
}
rs = null;
pstmt = null;
//DETERMINE THE REFERENCE NO FOR WHICH BALANCE IS SAME
System.out.println("bankStList:::"+bankStList.size());
System.out.println("bankTranList:::"+bankTranList.size());
for(int bsCounter = 0;bsCounter< bankStList.size();bsCounter++)
for(int bsCounter = 0;bsCounter < bankStList.size();bsCounter++)
{
BankStBean bsb = (BankStBean)bankStList.get(bsCounter);
System.out.println("Retriving the reference no.......");
double balS = bsb.getBal();
String refNoBS ="";
refNoBS= bsb.getRefNo();
if(refNoBS ==null)
balS = bsb.getBal();
refNoBS = "";
refNoBS = bsb.getRefNo();
if(refNoBS == null)
{
refNoBS ="";
refNoBS = "";
}
for(int btCounter = 0;btCounter< bankTranList.size();btCounter++)
{
BankTranBean btb = (BankTranBean)bankTranList.get(btCounter);
double balT = btb.getBal();
String refNoBT ="";
balT = btb.getBal();
refNoBT = "";
refNoBT = btb.getRefNo();
if(refNoBT == null)
{
......@@ -318,58 +353,71 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
System.out.println("refNoBS....................."+refNoBS);
System.out.println("balT....................."+balT);
System.out.println("balS....................."+balS);
if((balT==balS) && (refNoBT.trim().equals(refNoBS.trim())))
if((balT == balS) && (refNoBT.trim().equals(refNoBS.trim())))
{
vrefNo.add(bsb.getRefNo());
vrefNo.add(bsb.getRefNo().trim());
System.out.println("Reconcile ref No adding to vector:::"+bsb.getRefNo());
}
}
}
for(int refCounter = 0;refCounter <vrefNo.size();refCounter++)
{
String refnoTemp = (String)vrefNo.get(refCounter);
//**************** status <> "R"
String sqlBS = " SELECT TRAN_ID,AMOUNT,AMT_ADJ,STATUS from bank_statement where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and REF_NO = '"+refnoTemp+"' AND status <> 'R' order by tran_id ";
try
for(int refCounter = 0; refCounter < vrefNo.size(); refCounter++)
{
refnoTemp = (String)vrefNo.get(refCounter);
//**************** status <> "R"
sqlBS = " SELECT TRAN_ID,AMOUNT,AMT_ADJ,STATUS from bank_statement"
+ " where site_code = ? and bank_code = ? "
+ "and REF_NO = ? AND status <> 'R' order by tran_id ";
pstmt = conn.prepareStatement(sqlBS);
//pstmt.setString(1,siteCode.trim());
//pstmt.setString(2,siteCode.trim());
pstmt.setString(1,siteCode.trim());
pstmt.setString(2,bankCode.trim());
pstmt.setString(3,refnoTemp);
rs = pstmt.executeQuery();
while(rs.next())
{
balBS = 0.0;
tranIdBS = rs.getString(1);
amtBS = rs.getDouble(2);
adjAmtBS =rs.getDouble(3);
adjAmtBS = rs.getDouble(3);
statusBS = rs.getString(4);
balBS = amtBS - adjAmtBS;
System.out.println("Bbalance in bank_statement"+balBS);
String sqlBT = " SELECT TRAN_ID,AMOUNT,AMT_ADJ,STATUS from banktran_log where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and REF_NO = '"+refnoTemp+"' and status <>'R' order by tran_id ";
try
// 29/03/10 manoharan dynamic binding
//String sqlBT = " SELECT TRAN_ID,AMOUNT,AMT_ADJ,STATUS from banktran_log where site_code ='"+siteCode.trim()+"' and bank_code ='"+bankCode.trim()+"' and REF_NO = '"+refnoTemp+"' and status <>'R' order by tran_id ";
if(refOrBat.equals("R"))
{
sqlBT = " SELECT TRAN_ID,AMOUNT,AMT_ADJ,STATUS from banktran_log "
+ "where site_code = ? and bank_code = ? and REF_NO = ? "
+ "and status <>'R' order by tran_id ";
}
else
{
sqlBT = " SELECT TRAN_ID,AMOUNT,AMT_ADJ,STATUS from banktran_log "
+ "where site_code = ? and bank_code = ? and ENTRY_BATCH_NO = ? "
+ "and status <>'R' order by tran_id ";
}
pstmt1 = conn.prepareStatement(sqlBT);
//pstmt.setString(1,siteCode.trim());
//pstmt.setString(2,siteCode.trim());
pstmt1.setString(1,siteCode.trim());
pstmt1.setString(2,bankCode.trim());
pstmt1.setString(3,refnoTemp);
rs1 = pstmt1.executeQuery();
while(rs1.next())
{
balBT = 0.0;
tranIdBT = rs1.getString(1);
amtBT = rs1.getDouble(2);
adjAmtBT =rs1.getDouble(3);
adjAmtBT = rs1.getDouble(3);
statusBT = rs1.getString(4);
balBT = amtBT - adjAmtBT;
System.out.println("Balance in banktran_log"+balBT);
if(balBS ==balBT)
if(balBS == balBT)
{
amtAdjust = balBS;
statusBS = "R";
statusBT = "R";
System.out.println("AmtAdjust To be adjust :::"+amtAdjust);
}
else if(balBS >balBT)
else if(balBS > balBT)
{
amtAdjust = balBT;
statusBT = "R";
......@@ -385,134 +433,123 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
}
adjAmtBT = adjAmtBT + amtAdjust;
adjAmtBS = adjAmtBS + amtAdjust;
insertBankRecoTrace(tranIdBS,tranIdBT,amtAdjust);
updateBankTranLog(tranIdBT,adjAmtBT,statusBT,refnoTemp);
updateBankStatement(tranIdBS,adjAmtBS,statusBS,refnoTemp);
insertBankRecoTrace(tranIdBS,tranIdBT,amtAdjust,conn);
updateBankTranLog(tranIdBT,adjAmtBT,statusBT,conn);
updateBankStatement(tranIdBS,adjAmtBS,statusBS,conn);
balBS = balBS - amtAdjust;
System.out.println("DIFFERENT :::"+balBS);
if(balBS<= 0)
if(balBS <= 0)
break;
}
rs1.close();
pstmt1.close();
}
catch(SQLException se3)
{
System.out.println("SQLException :[BankReconPrcEJB][reconcile(4)][Excuting Query Failed]" + sqlBT + se3.getMessage());
}
catch(Exception ex3)
{
System.out.println("Exception3[BankReconPrcEJB][reconcile(4)][Excuting Query Failed] ::"+sqlBT +ex3.getMessage());
ex3.printStackTrace();
}
rs1 = null;
pstmt1 = null;
}
rs.close();
pstmt.close();
rs = null;
pstmt = null;
}
catch(SQLException se2)
{
System.out.println("SQLException :[BankReconPrcEJB][reconcile(5)][Excuting Query Failed]" + sqlBS + se2.getMessage());
}
catch(Exception ex2)
catch(SQLException se)
{
System.out.println("Exception[BankReconPrcEJB][reconcile(5)][Excuting Query Failed ::"+sqlBS +ex2.getMessage());
ex2.printStackTrace();
System.out.println("SQLException :[BankReconPrcEJB][reconcile(5)][Excuting Query Failed]" + sqlBS + se.getMessage());
errString="VTPRCERR";
throw new ITMException(se);
}
catch(Exception e)
{
System.out.println("Exception[BankReconPrcEJB][reconcile(5)][Excuting Query Failed ::"+sqlBS +e.getMessage());
e.printStackTrace();
errString="VTPRCERR";
throw new ITMException(e);
}
}//END OF reconcile
return errString;
}//END OF reconcile
//updateBankStatement
private void updateBankStatement(String tranId,double adjAmt,String status,String refno)
private String updateBankStatement(String tranId,double adjAmt,String status, Connection conn) throws RemoteException,ITMException
{
PreparedStatement upstmt = null;
String update ="";
String update ="",errString = "";
System.out.println("update BankStatement.....");
System.out.println("TranId:::"+tranId);
System.out.println("Status:::"+status);
System.out.println("Refno:::"+refno);
System.out.println("AdjAmt:::"+adjAmt);
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
ConnDriver conndriver = new ConnDriver();
conn = conndriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
update = " UPDATE BANK_STATEMENT SET STATUS = '"+status+"', AMT_ADJ = "+adjAmt+" WHERE TRAN_ID = '"+tranId+"' AND REF_NO ='"+refno+"' ";
update = " UPDATE BANK_STATEMENT SET STATUS = ?, AMT_ADJ = ? WHERE TRAN_ID = ? ";
upstmt = conn.prepareStatement(update);
//upstmt.setString(1,status);
//upstmt.setDouble(2,adjAmt);
//upstmt.setString(3,tranId.trim());
//upstmt.setString(4,refno.trim());
upstmt.setString(1,status);
upstmt.setDouble(2,adjAmt);
upstmt.setString(3,tranId.trim());
int u = upstmt.executeUpdate();
System.out.println("No of record update in BankStatement:::"+u);
upstmt.close();
conn.commit();
}
catch(SQLException seUpdate)
{
System.out.println("SQLException(Update BankStatement) :[Excuting Query Failed ]" + update + seUpdate.getMessage());
errString="VTPRCERR";
throw new ITMException(seUpdate);
}
catch(Exception exUpdate)
{
System.out.println("Exception3(Update BankStatement) ::"+update +exUpdate.getMessage());
errString="VTPRCERR";
exUpdate.printStackTrace();
throw new ITMException(exUpdate);
}
return errString;
}
//updateBankTranLog
private void updateBankTranLog(String tranId,double adjAmt,String status,String refno)
private String updateBankTranLog(String tranId,double adjAmt,String status, Connection conn) throws RemoteException,ITMException
{
PreparedStatement upstmt = null;
String update ="";
String update ="", errString = "";
System.out.println("update BankTranLog.....");
System.out.println("TranId:::"+tranId);
System.out.println("Status:::"+status);
System.out.println("Refno:::"+refno);
System.out.println("AdjAmt:::"+adjAmt);
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
ConnDriver conndriver = new ConnDriver();
conn = conndriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
update = " UPDATE BANKTRAN_LOG SET STATUS = '"+status+"', AMT_ADJ = "+adjAmt+" WHERE TRAN_ID = '"+tranId+"' AND REF_NO ='"+refno+"' ";
update = " UPDATE BANKTRAN_LOG SET STATUS = ?, AMT_ADJ = ? WHERE TRAN_ID = ? ";
upstmt = conn.prepareStatement(update);
//upstmt.setString(1,status);
//upstmt.setDouble(2,adjAmt);
//upstmt.setString(3,tranId.trim());
//upstmt.setString(4,refno.trim());
upstmt.setString(1,status);
upstmt.setDouble(2,adjAmt);
upstmt.setString(3,tranId.trim());
int u = upstmt.executeUpdate();
System.out.println("No of record update in banktran_log:::"+u);
upstmt.close();
conn.commit();
}
catch(SQLException seUpdate)
{
System.out.println("SQLException(Update BankTranLog) :[Excuting Query Failed ]" + update + seUpdate.getMessage());
errString="VTPRCERR";
throw new ITMException(seUpdate);
}
catch(Exception exUpdate)
{
System.out.println("Exception3(Update BankTranLog) ::"+update +exUpdate.getMessage());
errString="VTPRCERR";
exUpdate.printStackTrace();
throw new ITMException(exUpdate);
}
return errString;
}
private void insertBankRecoTrace(String tranIdBS,String tranIdBT,double adjAmount)
private String insertBankRecoTrace(String tranIdBS,String tranIdBT,double adjAmount, Connection conn) throws RemoteException,ITMException
{
PreparedStatement ipstmt = null;
String insert = "";
String errString = "";
System.out.println("insert a record in trace.....");
System.out.println("TranId(BankStatement):::"+tranIdBS);
System.out.println("TranId(BankStatement):::"+tranIdBT);
System.out.println("AdjAmt:::"+adjAmount);
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
ConnDriver conndriver = new ConnDriver();
conn = conndriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
insert = " INSERT INTO BANKRECO_TRACE (TRAN_ID__STAT, TRAN_ID__LOG, AMOUNT ) VALUES (?,?,?)";
ipstmt = conn.prepareStatement(insert);
ipstmt.setString(1,tranIdBS);
......@@ -520,16 +557,18 @@ public class BankReconPrc extends ProcessEJB implements BankReconPrcLocal,BankRe
ipstmt.setDouble(3,adjAmount);
ipstmt.executeUpdate();
ipstmt.close();
conn.commit();
}
catch(SQLException seinsert)
{
errString="VTPRCERR";
System.out.println("SQLException(insert in to Trace) :[Excuting Query Failed ]" + insert + seinsert.getMessage());
}
catch(Exception exinsert)
{
System.out.println("Exception(insert in to Trace) ::"+insert +exinsert.getMessage());
errString="VTPRCERR";
exinsert.printStackTrace();
}
return errString;
}
}//END OF EJB
\ 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