Commit e4399b08 authored by vvengurlekar's avatar vvengurlekar

MiscRcpConf.java

MiscRcpConfLocal.java
MiscRcpConfRemote.java - migration committed on behalf of anjali


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@192404 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 19afe2df
package ibase.webitm.ejb.fin.adv;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;
import javax.ejb.Stateless;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ActionHandlerEJB;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.ejb.sys.UtilMethods;
import ibase.webitm.utility.ITMException;
@Stateless
public class MiscRcpConf extends ActionHandlerEJB implements MiscRcpConfLocal,MiscRcpConfRemote
{
String loginEmpCode = "" ,userId = "";
public String confirm(String tranID, String xtraParams, String forcedFlag) throws ITMException
{
System.out.println("Inside confirm(String tranID, String xtraParams, String forcedFlag) method");
String retString = "";
Connection conn = null;
String tranIdFr = "";
String tranIdTo = "";
ITMDBAccessEJB itmDbAccess = null;
try
{
conn = getConnection();
tranIdFr = tranID;
itmDbAccess = new ITMDBAccessEJB();
if(tranIdTo == null || tranIdTo.trim().length() == 0)
{
tranIdTo = tranID;
}
retString = confirm(tranIdFr, tranIdTo, xtraParams, forcedFlag, conn);
System.out.println("retString---["+retString+"]");
if(retString == null || retString.trim().length() == 0)
{
conn.commit();
retString = itmDbAccess.getErrorString("confirmed", "VMTRANSACN", userId,"",conn);
return retString;
}
}
catch(Exception e)
{
try
{
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
System.out.println("Exception in MiscRcpConf][confirm(String tranID, String xtraParams, String forcedFlag) ]--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
System.out.println("Exception in MiscRcpConf][confirm(String tranID, String xtraParams, String forcedFlag) ]--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String confirm(String tranIdFr, String tranIdTo ,String xtraParams, String forcedFlag,Connection conn) throws ITMException
{
System.out.println("Inside confirm(String tranIdFr, String tranIdTo ,String xtraParams, String forcedFlag,Connection conn) method.");
String retString = "";
try
{
retString = postLogic(tranIdFr, tranIdTo, xtraParams, forcedFlag, conn);
System.out.println("retString--@@@@["+retString+"]");
}
catch(Exception e)
{
try
{
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
System.out.println("Confirm--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
return retString;
}
public String postLogic(String tranIdFr, String tranIdTo ,String xtraParams, String forcedFlag,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside postLogic(String tranIdFr, String tranIdTo ,String xtraParams, String forcedFlag,Connection conn) method");
String retString = "";
String confirmed = "";
String siteCode = "";
//String userId = "";
//String loginEmpCode = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
ITMDBAccessEJB itmDbAccess = null;
E12GenericUtility genericUtility = null;
try
{
itmDbAccess = new ITMDBAccessEJB();
genericUtility = new E12GenericUtility();
userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
loginEmpCode = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
sql = "select confirmed ,site_code from misc_receipt where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranIdFr);
rs = pstmt.executeQuery();
if(rs.next())
{
confirmed = checkNull(rs.getString("confirmed"));
siteCode = checkNull(rs.getString("site_code"));
}
else
{
closeResource(rs, pstmt);
retString = itmDbAccess.getErrorString("confirmed", "VTMCONF20", userId,"",conn);
return retString;
}
closeResource(rs, pstmt);
System.out.println("confirmed--["+confirmed+"]siteCode--["+siteCode+"]");
if("N".equalsIgnoreCase(confirmed))
{
retString = gbfRetrieveMiscRcp(tranIdFr, tranIdTo, siteCode, xtraParams, conn);
}
else
{
retString = itmDbAccess.getErrorString("confirmed", "VTMCONF1", userId,"",conn);
//return retString;
}
}
catch(Exception e)
{
try
{
conn.rollback();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
System.out.println("Exception in MiscRcpConf][confirm(String tranID, String xtraParams, String forcedFlag) ]--["+e.getMessage()+"]");
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)
{
conn.rollback();
System.out.println("Exception in MiscRcpConf][confirm(String tranID, String xtraParams, String forcedFlag,Connection conn) ]--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfRetrieveMiscRcp(String tranIdFr,String tranIdTo, String siteCode ,String xtraParams , Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfRetrieveMiscRcp(String tranIdFr,String tranIdTo, String siteCode ,String xtraParams , Connection conn) method");
String retString = "";
//String userId = "";
String loginEmpCode = "";
String dataBaseName = "";
String tranId = "";
String keyfld = "";
double netHdr = 0.0;
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql1 = "";
PreparedStatement pstmt1 = null;
ResultSet rs1 = null;
String sql2 = "";
PreparedStatement pstmt2 = null;
ResultSet rs2 = null;
ITMDBAccessEJB itmDbAccess = null;
E12GenericUtility genericUtility = null;
ArrayList<String> tranIdArray = null;
HashMap hdrValues = null;
HashMap detValues = null;
HashMap<Integer, HashMap<String,Object>> detailRows = null;
Integer key = 0;
try
{
itmDbAccess = new ITMDBAccessEJB();
genericUtility = new E12GenericUtility();
tranIdArray = new ArrayList<String>();
hdrValues = new HashMap();
detValues = new HashMap();
detailRows = new HashMap<>();
dataBaseName = checkNull( CommonConstants.DB_NAME);
System.out.println("dataBaseName--["+dataBaseName+"]");
userId = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode"));
loginEmpCode = checkNull(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginEmpCode"));
if(loginEmpCode == null || loginEmpCode.trim().length() == 0)
{
retString = itmDbAccess.getErrorString("", "EMPAPRV", userId, "", conn);
return retString;
}
sql = "SELECT tran_id FROM misc_receipt " +
"WHERE tran_id >= ? AND tran_id <= ? AND " +
"site_code = ? AND confirmed = 'N' and " +
"(emp_loan_adjust is null or emp_loan_adjust <> 'Y') " +
"ORDER BY tran_id ASC ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranIdFr);
pstmt.setString(2, tranIdTo);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
tranIdArray.add(checkNull(rs.getString("tran_id")));
}
closeResource(rs, pstmt);
System.out.println("tranIdArray--["+tranIdArray+"]");
//SQL-START
if("db2".equalsIgnoreCase(dataBaseName) || "mysql".equalsIgnoreCase(dataBaseName))
{
sql = "SELECT tran_id, net_amt FROM misc_receipt WHERE tran_id = ? for update";
}
else if("mssql".equalsIgnoreCase(dataBaseName))
{
sql = "SELECT tran_id, net_amt FROM misc_receipt (updlock) WHERE tran_id = ?";
}
else
{
sql = "SELECT tran_id, net_amt FROM misc_receipt WHERE tran_id = ? for update nowait";
}
pstmt = conn.prepareStatement(sql);
//SQL-END
//SQL-1-START
sql1 = "SELECT misc_receipt.tran_id ,misc_receipt.tran_date , misc_receipt.eff_date , misc_receipt.site_code , misc_receipt.fin_entity ," +
" misc_receipt.bank_code , misc_receipt.rcp_mode ,misc_receipt.ref_no , misc_receipt.ref_date , misc_receipt.dlv_mode ," +
" misc_receipt.dlv_ref , misc_receipt.party_bank_ref , misc_receipt.remarks , misc_receipt.curr_code , misc_receipt.net_amt ," +
" misc_receipt.net_amt__bc ,misc_receipt.proj_code ,misc_receipt.anal_code , misc_receipt.acct_code__bal , misc_receipt.cctr_code__bal ," +
" misc_receipt.confirmed , misc_receipt.conf_date , misc_receipt.emp_code__aprv ,bank.bank_name , SITE_A.descr as site_a_descr, SITE_B.descr as site_b_descr ," +
" accounts.descr , misc_receipt.exch_rate ,misc_receipt.tran_type , misc_receipt.adj_amt , misc_receipt.site_code__for ," +
" misc_receipt.sundry_type__for , misc_receipt.sundry_code__for ,ibca_rcp_ctrl.acct_code__pay , ibca_rcp_ctrl.cctr_code__pay , " +
" misc_receipt.acct_code__ar , misc_receipt.cctr_code__ar ,misc_receipt.tran_id__rcp , misc_receipt.site_code__rcp , " +
" itemser.descr ,misc_receipt.item_ser ,fn_edi_option('w_misc_rcp_oth') AS edi_option, fn_getbanktranid (MISC_RECEIPT.SITE_CODE, 'M-RCP', MISC_RECEIPT.TRAN_ID) AS banktran_log_tran_id, " +
" misc_receipt.amount , misc_receipt.tax_amt ,misc_receipt.tax_date , misc_receipt.entry_batch_no ,fn_sundry_name(misc_receipt.sundry_type__for, misc_receipt.sundry_code__for, '') AS sundry_name," +
" misc_receipt.diff_amt__exch , misc_receipt.acct_code__cf , misc_receipt.cctr_code__cf " +
" FROM misc_receipt , bank ,site SITE_A , site SITE_B , ACCOUNTS , ibca_rcp_ctrl, ITEMSER " +
"WHERE ( misc_receipt.site_code = ibca_rcp_ctrl.site_code__from (+)) " +
"AND ( misc_receipt.site_code__for = ibca_rcp_ctrl.site_code__to (+)) " +
"AND ( misc_receipt.site_code__for = SITE_B.site_code (+)) " +
"AND ( misc_receipt.item_ser = itemser.item_ser (+)) " +
"AND ( misc_receipt.bank_code = bank.bank_code ) " +
"AND ( MISC_RECEIPT.SITE_CODE = SITE_A.SITE_CODE ) " +
"AND ( MISC_RECEIPT.ACCT_CODE__BAL = ACCOUNTS.ACCT_CODE )" +
"AND ( ( misc_receipt.tran_id = ? ) ) ";
pstmt1 = conn.prepareStatement(sql1);
//SQL-1-START
//SQL-2-START
sql2 = "SELECT misc_rcpdet.tran_id ," +
" misc_rcpdet.line_no ," +
" misc_rcpdet.acct_code ," +
" misc_rcpdet.cctr_code ," +
" misc_rcpdet.amount ," +
" misc_rcpdet.anal_code ," +
" misc_rcpdet.emp_code ," +
" accounts.descr ," +
" misc_rcpdet.remarks ," +
" misc_rcpdet.sundry_type ," +
" misc_rcpdet.sundry_code ," +
" misc_rcpdet.item_ser ," +
" itemser.descr ," +
" misc_rcpdet.tax_class ," +
" misc_rcpdet.tax_chap ," +
" misc_rcpdet.tax_env ," +
" misc_rcpdet.tax_amt ," +
" misc_rcpdet.net_amt ," +
" fn_sundry_name(misc_rcpdet.sundry_type, misc_rcpdet.sundry_code, '') AS sundry_name," +
" misc_rcpdet.proj_code " +
"FROM misc_rcpdet , " +
" accounts , " +
" ITEMSER " +
"WHERE ( misc_rcpdet.item_ser = itemser.item_ser (+)) " +
"AND ( misc_rcpdet.acct_code = accounts.acct_code (+)) " +
"AND ( ( MISC_RCPDET.TRAN_ID = ? ) ) ";
pstmt2 = conn.prepareStatement(sql2);
//SQL-2-END
for(int i=0;i< tranIdArray.size();i++)
{
tranId = tranIdArray.get(i);
System.out.println("tranId--["+tranId+"]");
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
keyfld = checkNull(rs.getString("tran_id"));
netHdr = rs.getDouble("net_amt");
}
pstmt.clearParameters();
System.out.println("keyfld--["+keyfld+"]netHdr--["+netHdr+"]");
if(netHdr < 0)
{
retString = itmDbAccess.getErrorString("", "VTNET1", userId, "", conn);
return retString;
}
pstmt1.setString(1, tranId);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
hdrValues.put("tran_id", checkNull(rs1.getString("tran_id")));
hdrValues.put("tran_date",rs1.getTimestamp("tran_date") );
hdrValues.put("eff_date", rs1.getTimestamp("eff_date"));
hdrValues.put("site_code", checkNull(rs1.getString("site_code")));
hdrValues.put("fin_entity", checkNull(rs1.getString("fin_entity")));
hdrValues.put("bank_code", checkNull(rs1.getString("bank_code")) );
hdrValues.put("rcp_mode", checkNull(rs1.getString("rcp_mode")) );
hdrValues.put("ref_no", checkNull(rs1.getString("ref_no")));
hdrValues.put("ref_date", rs1.getTimestamp("ref_date"));
hdrValues.put("dlv_mode", checkNull(rs1.getString("dlv_mode")));
hdrValues.put("dlv_ref", checkNull(rs1.getString("dlv_ref")));
hdrValues.put("party_bank_ref", checkNull(rs1.getString("party_bank_ref")) );
hdrValues.put("remarks", checkNull(rs1.getString("remarks")));
hdrValues.put("curr_code", checkNull(rs1.getString("curr_code")) );
hdrValues.put("net_amt", rs1.getDouble("net_amt"));
hdrValues.put("net_amt__bc", rs1.getDouble("net_amt__bc") );
hdrValues.put("proj_code", checkNull(rs1.getString("proj_code")) );
hdrValues.put("anal_code", checkNull(rs1.getString("anal_code")));
hdrValues.put("acct_code__bal",checkNull(rs1.getString("acct_code__bal")));
hdrValues.put("cctr_code__bal", checkNull(rs1.getString("cctr_code__bal")) );
hdrValues.put("confirmed", checkNull(rs1.getString("confirmed")));
hdrValues.put("conf_date", rs1.getTimestamp("conf_date"));
hdrValues.put("emp_code__aprv", checkNull(rs1.getString("emp_code__aprv")));
hdrValues.put("bank_name", checkNull(rs1.getString("bank_name")));
hdrValues.put("site_a_descr",checkNull(rs1.getString("site_a_descr")) );
hdrValues.put("site_b_descr", checkNull(rs1.getString("site_b_descr")));
hdrValues.put("descr", checkNull(rs1.getString("descr")));
hdrValues.put("exch_rate", rs1.getDouble("exch_rate") );
hdrValues.put("tran_type", checkNull(rs1.getString("tran_type")));
hdrValues.put("adj_amt", rs1.getDouble("adj_amt"));
hdrValues.put("site_code__for", checkNull(rs1.getString("site_code__for")));
hdrValues.put("sundry_type__for", checkNull(rs1.getString("sundry_type__for")) );
hdrValues.put("sundry_code__for", checkNull(rs1.getString("sundry_code__for")));
hdrValues.put("acct_code__pay", checkNull(rs1.getString("acct_code__pay")));
hdrValues.put("cctr_code__pay", checkNull(rs1.getString("cctr_code__pay")));
hdrValues.put("acct_code__ar",checkNull(rs1.getString("acct_code__ar")) );
hdrValues.put("cctr_code__ar",checkNull(rs1.getString("cctr_code__ar")) );
hdrValues.put("tran_id__rcp", checkNull(rs1.getString("tran_id__rcp")));
hdrValues.put("site_code__rcp", checkNull(rs1.getString("site_code__rcp")));
hdrValues.put("descr",checkNull(rs1.getString("descr")) );
hdrValues.put("item_ser",checkNull(rs1.getString("item_ser")) );
hdrValues.put("edi_option", checkNull(rs1.getString("edi_option")));
hdrValues.put("banktran_log_tran_id", checkNull(rs1.getString("banktran_log_tran_id")));
hdrValues.put("amount", rs1.getDouble("amount"));
hdrValues.put("tax_amt", rs1.getDouble("tax_amt"));
hdrValues.put("tax_date", rs1.getTimestamp("tax_date") );
hdrValues.put("entry_batch_no",checkNull( rs1.getString("entry_batch_no")));
hdrValues.put("sundry_name",checkNull(rs1.getString("sundry_name")) );
hdrValues.put("diff_amt__exch", rs1.getDouble("diff_amt__exch"));
hdrValues.put("acct_code__cf", checkNull(rs1.getString("acct_code__cf")));
hdrValues.put("cctr_code__cf", checkNull(rs1.getString("cctr_code__cf")));
}
pstmt1.clearParameters();
pstmt2.setString(1, tranId);
rs2 = pstmt2.executeQuery();
while(rs2.next())
{
detValues = new HashMap<>();
key++;
detValues.put("tran_id", checkNull(rs2.getString("tran_id")));
detValues.put("line_no",checkNull( rs2.getString("line_no")));
detValues.put("acct_code", checkNull(rs2.getString("acct_code")));
detValues.put("cctr_code", checkNull(rs2.getString("cctr_code")));
detValues.put("amount", rs2.getDouble("amount"));
detValues.put("anal_code",checkNull(rs2.getString("anal_code")));
detValues.put("emp_code", checkNull(rs2.getString("emp_code")));
detValues.put("descr", checkNull(rs2.getString("descr")));
detValues.put("remarks",checkNull( rs2.getString("remarks")));
detValues.put("sundry_type",checkNull( rs2.getString("sundry_type")));
detValues.put("sundry_code",checkNull( rs2.getString("sundry_code")));
detValues.put("item_ser",checkNull( rs2.getString("item_ser")));
detValues.put("descr",checkNull( rs2.getString("descr")));
detValues.put("tax_class",checkNull( rs2.getString("tax_class")));
detValues.put("tax_chap", checkNull(rs2.getString("tax_chap")));
detValues.put("tax_env", checkNull(rs2.getString("tax_env")));
detValues.put("tax_amt", rs2.getDouble("tax_amt"));
detValues.put("net_amt", rs2.getDouble("net_amt"));
detValues.put("sundry_name", checkNull(rs2.getString("sundry_name")));
detValues.put("proj_code", checkNull(rs2.getString("proj_code")));
detailRows.put(key, detValues);
}
pstmt2.clearParameters();
System.out.println("detailRows---["+detailRows+"]");
retString = gbfPostMiscRcp(hdrValues,detailRows,conn);
System.out.println("retString-[gbfPostMiscRcp]-["+retString+"]");
}
closeResource(rs, pstmt);
closeResource(rs1, pstmt1);
closeResource(rs2, pstmt2);
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfRetrieveMiscRcp ----["+ e.getMessage() +"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
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(rs2 != null)
{
rs2.close();
rs2 = null;
}
if(pstmt2 != null)
{
pstmt2.close();
pstmt2 = null;
}
genericUtility = null;
itmDbAccess = null;
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfRetrieveMiscRcp ----["+ e.getMessage() +"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfPostMiscRcp (HashMap hdrMap,HashMap detMap,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfPostMiscRcp (HashMap hdrMap,HashMap detMap,Connection conn) method.");
String retString = "";
String tranId = "";
String postOnline = "";
HashMap headerMap = null;
HashMap detailMap = null;
FinCommon finCommon = null;
try
{
finCommon = new FinCommon();
headerMap = hdrMap;
detailMap = detMap;
tranId = (String) headerMap.get("tran_id");
System.out.println("tranId--["+tranId+"]");
// header posting
retString = gbfPostMiscRcpHdr(headerMap, detailMap, conn);
System.out.println("retString -from header posting-["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
return retString;
}
else
{
retString = gbfPostMiscRcpDet(headerMap, detailMap,conn);
System.out.println("retString -from detail posting-["+retString+"]");
}
if(retString != null && retString.trim().length() > 0 )
{
return retString;
}
postOnline = finCommon.getFinparams("999999", "POST_ON_LINE", conn);
System.out.println("postOnline--["+postOnline+"]");
if("Y".equalsIgnoreCase(postOnline))
{
retString = finCommon.checkGlTranDrCr("M-RCP", tranId, conn);
System.out.println("Returning from checkGlTranDrCr--["+retString+"]");
}
if(retString != null && retString.trim().length() > 0 )
{
return retString;
}
retString = gbfPostRcpPayDet(tranId, conn);
System.out.println("retString--gbfPostRcpPayDet["+retString+"]");
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfPostMiscRcp--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
finCommon = null;
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfPostMiscRcp--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfPostMiscRcpHdr(HashMap hdrData,HashMap detData,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfPostMiscRcpHdr(HashMap hdrData,HashMap detData,Connection conn) method.");
String retString = "";
String site = "";
String siteFor = "";
String confirmed = "";
String tranId = "";
HashMap tranHdrMap = null;
HashMap tranDetMap = null;
HashMap glTrace = null;
HashMap sundryBal = null;
HashMap bankTranLog = null;
double drAmt = 0.0;
double diffAmtExch = 0.0;
double cctrCodeCf = 0.0;
java.sql.Timestamp today = null;
ITMDBAccessEJB itmDbAccess = null;
FinCommon finCommon = null;
String sql = "";
PreparedStatement pstmt = null;
int count = 0;
try
{
itmDbAccess = new ITMDBAccessEJB();
finCommon = new FinCommon();
tranHdrMap = hdrData;
tranDetMap = detData;
glTrace = new HashMap();
sundryBal = new HashMap();
bankTranLog = new HashMap();
today = new java.sql.Timestamp(System.currentTimeMillis());
if(tranHdrMap.size() == 0)
{
retString = itmDbAccess.getErrorString("", "VTIMPNOREC", userId, "", conn);
return retString;
}
do
{
glTrace.put("dr_amt", tranHdrMap.get("net_amt"));
drAmt = (double) glTrace.get("dr_amt");
System.out.println("drAmt--["+drAmt+"]");
if( drAmt < 0)
{
retString = itmDbAccess.getErrorString("net_amt", "VTAMT1", userId, "", conn);
//return retString;
break;
}
site = (String) tranHdrMap.get("site_code");
siteFor = (String) tranHdrMap.get( "site_code__for");
site = site.trim();
siteFor = siteFor.trim();
// insert into gltrace for bank
glTrace.put("tran_date", tranHdrMap.get("tran_date"));
glTrace.put("eff_date", tranHdrMap.get("eff_date"));
glTrace.put("fin_entity", tranHdrMap.get("fin_entity"));
glTrace.put("site_code", tranHdrMap.get("site_code"));
glTrace.put("sundry_type", "B");
glTrace.put("sundry_code", tranHdrMap.get("bank_code"));
glTrace.put("acct_code", tranHdrMap.get("acct_code__bal"));
glTrace.put("cctr_code", tranHdrMap.get("cctr_code__bal"));
glTrace.put("emp_code", "");
glTrace.put("anal_code", tranHdrMap.get("anal_code"));
glTrace.put("curr_code", tranHdrMap.get("curr_code"));
glTrace.put("exch_rate", tranHdrMap.get("exch_rate"));
glTrace.put("dr_amt", tranHdrMap.get("net_amt"));
glTrace.put("cr_amt", 0.0);
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", tranHdrMap.get("tran_id"));
glTrace.put("remarks", tranHdrMap.get("remarks"));
glTrace.put("proj_code", tranHdrMap.get("proj_code"));
retString = finCommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
// update currency fluctuation to gltrace
glTrace = new HashMap();
diffAmtExch = (double) tranHdrMap.get("diff_amt__exch");
if(diffAmtExch != 0)
{
glTrace.put("tran_date", tranHdrMap.get("tran_date"));
glTrace.put("eff_date", tranHdrMap.get("eff_date"));
glTrace.put("fin_entity", tranHdrMap.get("fin_entity"));
glTrace.put("site_code", tranHdrMap.get("site_code"));
glTrace.put("sundry_type","O");
glTrace.put("sundry_code"," ");
glTrace.put("acct_code", tranHdrMap.get("acct_code__cf"));
glTrace.put("acct_code", tranHdrMap.get("acct_code__cf"));
cctrCodeCf = (double) tranHdrMap.get("cctr_code__cf");
glTrace.put("cctr_code", cctrCodeCf);
glTrace.put("emp_code", null);
glTrace.put("anal_code", null);
glTrace.put("curr_code", tranHdrMap.get("curr_code"));
glTrace.put("exch_rate", 1);
if(diffAmtExch > 0)
{
glTrace.put("dr_amt",diffAmtExch);
glTrace.put("cr_amt", 0.0);
}
else
{
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt", 0 - diffAmtExch );
}
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", tranHdrMap.get("tran_id"));
glTrace.put("remarks", tranHdrMap.get("remarks"));
retString = finCommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
System.out.println("glTrace@@@@["+glTrace+"]");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
}
// update sundrybal for bank
sundryBal.put("tran_date", tranHdrMap.get("tran_date"));
sundryBal.put("eff_date", tranHdrMap.get("eff_date"));
sundryBal.put("fin_entity", tranHdrMap.get("fin_entity"));
sundryBal.put("site_code", tranHdrMap.get("site_code"));
sundryBal.put("sundry_type", "B");
sundryBal.put("sundry_code", tranHdrMap.get("bank_code"));
sundryBal.put("acct_code", tranHdrMap.get("acct_code__bal"));
sundryBal.put("cctr_code", tranHdrMap.get("cctr_code__bal"));
sundryBal.put("curr_code", tranHdrMap.get("curr_code"));
sundryBal.put("exch_rate", tranHdrMap.get("exch_rate"));
sundryBal.put("dr_amt",tranHdrMap.get("net_amt"));
sundryBal.put("cr_amt", 0.0);
sundryBal.put("adv_amt", 0.0);
sundryBal.put("contact_code", "");
retString = finCommon.gbf_sundrybal_upd(sundryBal, conn);
System.out.println("retString--[gbf_acctbal_upd]["+retString+"retString");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
// update banktran_log
bankTranLog.put("tran_date", tranHdrMap.get("tran_date"));
bankTranLog.put("tran_ser", "M-RCP");
bankTranLog.put("tran_no", tranHdrMap.get("tran_id"));
bankTranLog.put("bank_code", tranHdrMap.get("bank_code"));
bankTranLog.put("ref_no", tranHdrMap.get("ref_no"));
bankTranLog.put("ref_date", tranHdrMap.get("ref_date"));
bankTranLog.put("ref_mode", tranHdrMap.get("rcp_mode"));
bankTranLog.put("amount", tranHdrMap.get("net_amt"));
bankTranLog.put("tran_type", "R");
bankTranLog.put("site_code", tranHdrMap.get("site_code"));
bankTranLog.put("acct_code", tranHdrMap.get("acct_code__bal"));
bankTranLog.put("cctr_code", tranHdrMap.get("cctr_code__bal"));
bankTranLog.put("sundry_type", tranDetMap.get("sundry_type"));
bankTranLog.put("sundry_code", tranDetMap.get("sundry_code"));
bankTranLog.put("remarks", tranHdrMap.get("remarks"));
bankTranLog.put("due_date", tranHdrMap.get("tran_date"));
bankTranLog.put("exch_rate", tranHdrMap.get("exch_rate"));
bankTranLog.put("entry_batch_no", tranHdrMap.get("entry_batch_no"));
retString = finCommon.bankTranLogUpdate(bankTranLog, "", conn);
System.out.println("retString--[bankTranLogUpdate]["+retString+"]");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
confirmed = (String) tranHdrMap.get("confirmed");
System.out.println("confirmed--["+confirmed+"]");
System.out.println("glTrace--["+glTrace+"]");
if(!"Y".equalsIgnoreCase(confirmed))
{
tranId = (String) glTrace.get("ref_id");
System.out.println("tranId--["+tranId+"]");
tranId = (String) tranHdrMap.get("tran_id");
System.out.println("tranId----["+tranId+"]");
System.out.println("tranHdrMap---["+tranHdrMap+"]");
sql = "update misc_receipt set confirmed = 'Y', conf_date = ?, emp_code__aprv = ? "+
"where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, today);
pstmt.setString(2, loginEmpCode);
pstmt.setString(3, tranId);
count = pstmt.executeUpdate();
closeResource(pstmt);
if(count != 1)
{
retString = itmDbAccess.getErrorString("", "DS000NR", userId, "", conn);
//return retString;
break;
}
}
if ((!site.equalsIgnoreCase(siteFor)) && (siteFor != null && siteFor.trim().length() > 0))
{
glTrace = new HashMap();
// route entry through sundry type and sundry code in header
// insert into gltrace for sundry type and code for debit amount
glTrace.put("tran_date", tranHdrMap.get("tran_date") );
glTrace.put("eff_date", tranHdrMap.get("eff_date") );
glTrace.put("fin_entity", tranHdrMap.get("fin_entity") );
glTrace.put("site_code", tranHdrMap.get("site_code") );
glTrace.put("sundry_type", tranHdrMap.get("sundry_type__for") );
glTrace.put("sundry_code", tranHdrMap.get("sundry_code__for") );
glTrace.put("acct_code", tranHdrMap.get("acct_code__ar") );
glTrace.put("cctr_code", tranHdrMap.get("cctr_code__ar") );
glTrace.put("emp_code", null);
glTrace.put("anal_code", tranHdrMap.get("anal_code") );
glTrace.put("curr_code", tranHdrMap.get("curr_code") );
glTrace.put("exch_rate", tranHdrMap.get("exch_rate") );
glTrace.put("dr_amt", tranHdrMap.get("net_amt") );
glTrace.put("cr_amt", 0.0 );
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", tranHdrMap.get("tran_id") );
glTrace.put("remarks", tranHdrMap.get("remarks") );
retString = finCommon.glTraceUpdate(glTrace, conn);
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
// update sundrybal for sundry type and code for debit amount
sundryBal = new HashMap();
sundryBal.put("tran_date", tranHdrMap.get("tran_date"));
sundryBal.put("eff_date", tranHdrMap.get("eff_date"));
sundryBal.put("fin_entity", tranHdrMap.get("fin_entity"));
sundryBal.put("site_code", tranHdrMap.get("site_code"));
sundryBal.put("sundry_type", tranHdrMap.get("sundry_type__for"));
sundryBal.put("sundry_code", tranHdrMap.get("sundry_code__for"));
sundryBal.put("acct_code", tranHdrMap.get("acct_code"));
sundryBal.put("curr_code", tranHdrMap.get("curr_code"));
sundryBal.put("exch_rate", tranHdrMap.get("exch_rate"));
sundryBal.put("dr_amt", tranHdrMap.get("net_amt"));
sundryBal.put("cr_amt", 0.0);
sundryBal.put("adv_amt", 0.0);
sundryBal.put("contact_code", " ");
retString = finCommon.gbf_sundrybal_upd(sundryBal, conn);
System.err.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
// insert into gltrace for sundry type and code for credit amount
glTrace = new HashMap();
glTrace.put("tran_date", tranHdrMap.get("tran_date"));
glTrace.put("eff_date", tranHdrMap.get("eff_date"));
glTrace.put("fin_entity", tranHdrMap.get("fin_entity"));
glTrace.put("site_code", tranHdrMap.get("site_code"));
glTrace.put("sundry_type", tranHdrMap.get("sundry_type__for"));
glTrace.put("sundry_code", tranHdrMap.get("sundry_code__for"));
glTrace.put("acct_code", tranHdrMap.get("acct_code__ar"));
glTrace.put("cctr_code", tranHdrMap.get("cctr_code__ar"));
glTrace.put("emp_code", null);
glTrace.put("anal_code", tranHdrMap.get("anal_code"));
glTrace.put("curr_code", tranHdrMap.get("curr_code"));
glTrace.put("exch_rate", tranHdrMap.get("exch_rate"));
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt", tranHdrMap.get("net_amt"));
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", tranHdrMap.get("ref_id"));
glTrace.put("remarks", tranHdrMap.get("remarks"));
retString = finCommon.glTraceUpdate(glTrace, conn);
System.err.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
// update sundrybal for sundry type and code for credit amount
sundryBal = new HashMap();
sundryBal.put("tran_date", tranHdrMap.get("tran_date"));
sundryBal.put("eff_date", tranHdrMap.get("eff_date"));
sundryBal.put("fin_entity", tranHdrMap.get("fin_entity"));
sundryBal.put("site_code", tranHdrMap.get("site_code"));
sundryBal.put("sundry_type", tranHdrMap.get("sundry_type__for"));
sundryBal.put("sundry_code", tranHdrMap.get("sundry_code__for"));
sundryBal.put("acct_code", tranHdrMap.get("acct_code__ar"));
sundryBal.put("cctr_code", tranHdrMap.get("cctr_code__ar"));
sundryBal.put("curr_code", tranHdrMap.get("curr_code"));
sundryBal.put("exch_rate", tranHdrMap.get("exch_rate"));
sundryBal.put("dr_amt", 0.0);
sundryBal.put("cr_amt", tranHdrMap.get("net_amt"));
sundryBal.put("adv_amt", 0.0);
sundryBal.put("contact_code", " ");
retString = finCommon.gbf_sundrybal_upd(sundryBal, conn);
System.err.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() >0)
{
//return retString;
break;
}
}
break;
}
while(true);
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfPostMiscRcpHdr--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfPostMiscRcpHdr--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfPostMiscRcpDet(HashMap hdrData,HashMap detData,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfPostMiscRcpDet(HashMap hdrData,HashMap detData,Connection conn) method.");
String retString = "";
String headerTranId = "";
String remarks = "";
String sundryType = "";
String contactCode = "";
String lineNo = "";
String refId = "";
String acctCode = "";
String cctrCode = "";
String tranType = "";
String taxRecoCctr = "";
String taxRecoAcct = "";
String acctCodeReco = "";
String cctrCodeReco = "";
double recoAmount = 0.0;
double amount = 0.0;
double exchRate = 0.0;
double adjAmt = 0.0;
double totAdjAmt = 0.0;
double taxAmt = 0.0;
double recoAmt = 0.0;
ITMDBAccessEJB itmDbAccess = null;
FinCommon fincommon = null;
UtilMethods utilMethod = null;
HashMap headerMap = null;
HashMap<Integer , Object> detailMap = null;
HashMap detailRow = null;
HashMap glTrace = null;
HashMap sundryBal = null;
HashMap bankTranLog = null;
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql1 = "";
PreparedStatement pstmt1 = null;
ResultSet rs1 = null;
String sql2 = "";
PreparedStatement pstmt2 = null;
ResultSet rs2 = null;
int count = 0;
try
{
itmDbAccess = new ITMDBAccessEJB();
fincommon = new FinCommon();
utilMethod = new UtilMethods();
headerMap = hdrData;
detailMap = detData;
detailRow = new HashMap<>();
glTrace = new HashMap<>();
sundryBal = new HashMap<>();
bankTranLog = new HashMap<>();
System.out.println("Inside try block");
sql = "select (case when exch_rate is null then 1 else exch_rate end ),(case when adj_amt is null then 0 else adj_amt end) from misc_pay_rcp_trace\n" +
" where tran_id__rcp = ?";
pstmt = conn.prepareStatement(sql);
System.out.println("detailMap--["+detailMap+"]detailMap length ----["+detailMap.size()+"]");
for(Integer i = 0;i< detailMap.size();i++)
{
count++;
System.out.println("count--["+count+"]");
detailRow = (HashMap) detailMap.get(count);
System.out.println("detailRow---["+detailRow+"]");
headerTranId = (String) headerMap.get("tran_id");
amount = (double) headerMap.get("amount");
System.out.println("headerTranId--["+headerTranId+"]amount--["+amount+"]");
pstmt.setString(1, headerTranId);
rs = pstmt.executeQuery();
if(rs.next() && amount > 0 )
{
System.out.println("Inside rs.next() condition");
while(rs.next())
{
exchRate = rs.getDouble("exch_rate");
adjAmt = rs.getDouble("adj_amt");
if(adjAmt > 0)
{
glTrace.put("exchRate", exchRate);
if((Double)detailRow.get("amount") > 0)
{
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt", adjAmt);
}
else
{
glTrace.put("dr_amt", 0.0 - adjAmt);
glTrace.put("cr_amt", 0.0);
}
totAdjAmt = totAdjAmt + adjAmt;
glTrace.put("tran_date", headerMap.get("tran_date"));
glTrace.put("eff_date", headerMap.get("eff_date"));
glTrace.put("fin_entity", headerMap.get("fin_entity"));
glTrace.put("site_code", headerMap.get("site_code"));
glTrace.put("sundry_type", detailRow.get("sundry_type"));
glTrace.put("sundry_code", detailRow.get("sundry_code"));
glTrace.put("acct_code", detailRow.get("acct_code"));
glTrace.put("cctr_code", detailRow.get("cctr_code"));
glTrace.put("emp_code", detailRow.get("emp_code"));
glTrace.put("anal_code", detailRow.get("anal_code"));
glTrace.put("curr_code", headerMap.get("curr_code"));
glTrace.put("proj_code", detailRow.get("proj_code"));
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", headerMap.get("tran_id"));
remarks = (String)detailRow.get("remarks");
if(remarks ==null || remarks.trim().length() == 0)
{
glTrace.put("remarks", headerMap.get("remarks"));
}
else
{
glTrace.put("remarks", detailRow.get("remarks"));
}
retString = fincommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
break;
}
}
if(totAdjAmt != amount)
{
glTrace = new HashMap<>();
if((amount - totAdjAmt) > 0)
{
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt", amount - totAdjAmt);
}
else
{
glTrace.put("dr_amt", 0.0 - (amount - totAdjAmt));
glTrace.put("cr_amt", 0.0);
}
glTrace.put("exch_rate", headerMap.get("exch_rate"));
glTrace.put("tran_date", headerMap.get("tran_date"));
glTrace.put("eff_date", headerMap.get("eff_date"));
glTrace.put("fin_entity", headerMap.get("fin_entity"));
glTrace.put("site_code", headerMap.get("site_code"));
glTrace.put("sundry_type", detailRow.get("sundry_type"));
glTrace.put("sundry_code", detailRow.get("sundry_code"));
glTrace.put("acct_code", detailRow.get("acct_code"));
glTrace.put("cctr_code", detailRow.get("cctr_code"));
glTrace.put("emp_code", detailRow.get("emp_code"));
glTrace.put("anal_code", detailRow.get("anal_code"));
glTrace.put("curr_code", headerMap.get("curr_code"));
glTrace.put("proj_code", detailRow.get("proj_code"));
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", headerMap.get("tran_id"));
glTrace.put("proj_code", detailRow.get("proj_code"));
remarks = (String)detailRow.get("remarks");
if(remarks ==null || remarks.trim().length() == 0)
{
glTrace.put("remarks", headerMap.get("remarks"));
}
else
{
glTrace.put("remarks", detailRow.get("remarks"));
}
retString = fincommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
break;
}
}
}
pstmt.clearParameters();
System.out.println("End of else");
}
else
{
System.out.println("Inside else condition");
glTrace = new HashMap<>();
if((double)detailRow.get("amount") > 0)
{
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt",detailRow.get("amount"));
}
else
{
glTrace.put("dr_amt", 0 - (Integer)detailRow.get("amount") );
glTrace.put("cr_amt", 0.0);
}
glTrace.put("exch_rate",headerMap.get("exch_rate"));
glTrace.put("tran_date",headerMap.get("tran_date"));
glTrace.put("eff_date",headerMap.get("eff_date"));
glTrace.put("fin_entity",headerMap.get("fin_entity"));
glTrace.put("site_code",headerMap.get("site_code"));
glTrace.put("sundry_type",detailRow.get("sundry_type"));
glTrace.put("sundry_code",detailRow.get("sundry_code"));
glTrace.put("acct_code",detailRow.get("acct_code"));
glTrace.put("cctr_code",detailRow.get("cctr_code"));
glTrace.put("emp_code",detailRow.get("emp_code"));
glTrace.put("anal_code",detailRow.get("anal_code"));
glTrace.put("curr_code",headerMap.get("curr_code"));
glTrace.put("proj_code",detailRow.get("proj_code"));
glTrace.put("ref_type","F");
glTrace.put("ref_ser","M-RCP");
glTrace.put("ref_id",headerMap.get("tran_id"));
remarks = checkNull((String)detailRow.get("remarks"));
if(remarks ==null || remarks.trim().length() == 0)
{
glTrace.put("remarks", headerMap.get("remarks"));
}
else
{
glTrace.put("remarks", detailRow.get("remarks"));
}
retString = fincommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
break;
}
System.out.println("End of else condition.....................");
}
sundryType = (String) glTrace.get("sundry_type");
System.out.println("sundryType--["+sundryType+"]");
if(!("O".equalsIgnoreCase(sundryType)))
{
System.out.println("Inside !(\"O\".equalsIgnoreCase(sundryType))");
sundryBal = new HashMap<>();
sundryBal.put("tran_date", headerMap.get("tran_date"));
sundryBal.put("eff_date", headerMap.get("eff_date"));
sundryBal.put("fin_entity", headerMap.get("fin_entity"));
sundryBal.put("site_code", headerMap.get("site_code"));
sundryBal.put("sundry_type", detailRow.get("sundry_type"));
sundryBal.put("sundry_code", detailRow.get("sundry_code"));
sundryBal.put("acct_code", detailRow.get("acct_code"));
sundryBal.put("cctr_code", detailRow.get("cctr_code"));
sundryBal.put("curr_code", headerMap.get("curr_code"));
sundryBal.put("exch_rate", headerMap.get("exch_rate"));
amount = 0.0;
amount = (double) detailRow.get("amount");
if(amount > 0.0)
{
sundryBal.put("dr_amt", 0.0);
sundryBal.put("cr_amt", amount);
}
else
{
sundryBal.put("dr_amt", 0.0 - amount);
sundryBal.put("cr_amt", 0.0);
}
sundryBal.put("adv_amt", 0.0);
contactCode = fincommon.getContactCode((String)sundryBal.get("sundry_type"),(String)sundryBal.get("sundry_code"), conn);
sundryBal.put("contact_code", contactCode);
retString = fincommon.gbf_sundrybal_upd(glTrace, conn);
System.out.println("retString--@@@@@@["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
break;
}
}
lineNo = (String) detailRow.get("line_no");
lineNo = utilMethod.right(" " + lineNo.trim(), 3);
refId = (String) glTrace.get("ref_id");
sql1 = "SELECT (CASE WHEN SUM(tax_amt) IS NULL THEN 0 ELSE SUM(tax_amt) END), " +
" acct_code, cctr_code,CASE WHEN SUM(reco_amount) IS NULL THEN 0 ELSE SUM(reco_amount) END " +
" FROM taxtran WHERE tran_code = 'M-RCP'AND tran_id = ? AND line_no = ? " +
" AND effect <> 'N'GROUP BY line_no, ACCT_CODE, cctr_code";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,refId );
pstmt1.setString(2, lineNo);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
while(rs1.next())
{
taxAmt = rs1.getDouble("tax_amt");
recoAmt = rs1.getDouble("reco_amount");
acctCode = checkNull(rs1.getString("acct_code"));
cctrCode = checkNull(rs1.getString("cctr_code"));
if(taxAmt != 0 )
{
if(acctCode == null || acctCode.trim().length() == 0)
{
acctCode = (String) detailRow.get("acct_code");
}
if(cctrCode == null || cctrCode.trim().length() == 0)
{
cctrCode = (String) detailRow.get("cctrCode");
}
glTrace = new HashMap<>();
glTrace.put("tran_date", headerMap.get("tran_date"));
glTrace.put("eff_date", headerMap.get("eff_date"));
glTrace.put("fin_entity", headerMap.get("fin_entity"));
glTrace.put("site_code", headerMap.get("site_code"));
glTrace.put("sundry_type", "O");
glTrace.put("sundry_code"," ");
glTrace.put("acct_code", acctCode);
glTrace.put("cctr_code", cctrCode);
glTrace.put("curr_code", headerMap.get("curr_code"));
glTrace.put("exch_rate", headerMap.get("exch_rate"));
glTrace.put("ref_type","F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", headerMap.get("tran_id"));
glTrace.put("proj_code", detailRow.get("proj_code"));
if(taxAmt > 0)
{
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt", taxAmt - recoAmt);
}
else
{
glTrace.put("dr_amt", 0.0 - taxAmt - recoAmt);
glTrace.put("cr_amt", 0.0);
}
retString = fincommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
break;
}
}
}
pstmt1.clearParameters();
recoAmt = 0.0;
tranType = (String) headerMap.get("tran_type");
taxRecoCctr = fincommon.getAcctDetrTtype(" ", " ", "TAXRECO", tranType, conn);
if( taxRecoCctr != null && taxRecoCctr.trim().length() > 0)
{
String[] ary =this.string2StringArray(taxRecoCctr , ",");
taxRecoAcct = ary[0].toString();
taxRecoCctr = ary[1].toString();
}
refId = (String) glTrace.get("ref_id");
sql2 = "SELECT ACCT_CODE__RECO, CCTR_CODE__RECO, CASE WHEN SUM(RECO_AMOUNT) IS NULL THEN 0 ELSE SUM(RECO_AMOUNT) END " +
" FROM TAXTRAN WHERE TRAN_CODE = 'M-RCP'AND TRAN_ID = ? AND LINE_NO = ? " +
" AND TAX_AMT <> 0 AND (CASE WHEN RECO_AMOUNT IS NULL THEN 0 ELSE RECO_AMOUNT END) <> 0 " +
" AND effect <> 'N' GROUP BY line_no, acct_code__reco, cctr_code__reco";
pstmt2 = conn.prepareStatement(sql2);
pstmt2.setString(1, refId);
pstmt2.setString(1, lineNo);
rs2 = pstmt2.executeQuery();
while(rs2.next())
{
acctCodeReco = checkNull(rs2.getString("ACCT_CODE__RECO"));
cctrCodeReco = checkNull(rs2.getString("CCTR_CODE__RECO"));
recoAmount = rs2.getDouble("RECO_AMOUNT");
if(acctCodeReco == null || taxRecoCctr.trim().length() == 0)
{
cctrCodeReco = taxRecoCctr;
acctCodeReco = taxRecoAcct;
}
if(acctCodeReco == null || acctCodeReco.trim().length() == 0)// If ACCT Code is NULL/SPACE Then Exit
{
retString = itmDbAccess.getErrorString("", "VTACCTRECO", userId,"",conn);
return retString;
}
// If CCTR Code is still NULL/SPACE Then set to blank
if(cctrCodeReco == null || cctrCodeReco.trim().length() == 0)
{
cctrCodeReco = "";
}
glTrace = new HashMap<>();
glTrace.put("tran_date", headerMap.get("tran_date"));
glTrace.put("eff_date", headerMap.get("eff_date"));
glTrace.put("fin_entity", headerMap.get("fin_entity"));
glTrace.put("site_code", headerMap.get("site_code"));
glTrace.put("sundry_type","O");
glTrace.put("sundry_code", "");
glTrace.put("acct_code", acctCodeReco);
glTrace.put("cctr_code", cctrCodeReco);
glTrace.put("curr_code", headerMap.get("curr_code"));
glTrace.put("exch_rate", headerMap.get("exch_rate"));
glTrace.put("ref_type", "F");
glTrace.put("ref_ser", "M-RCP");
glTrace.put("ref_id", headerMap.get("tran_id"));
glTrace.put("proj_code", detailRow.get("proj_code"));
if(recoAmount > 0)
{
glTrace.put("dr_amt", 0.0);
glTrace.put("cr_amt", recoAmount);
}
else
{
glTrace.put("dr_amt", 0.0 - recoAmount);
glTrace.put("cr_amt", 0.0);
}
retString = fincommon.glTraceUpdate(glTrace, conn);
System.out.println("retString--["+retString+"]");
if(retString != null && retString.trim().length() > 0 )
{
break;
}
}
}
}
closeResource(rs, pstmt);
closeResource(rs1, pstmt1);
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfPostMiscRcpDet--["+ e.getMessage() +"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
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(rs2 != null)
{
rs2.close();
rs2 = null;
}
if(pstmt2 != null)
{
pstmt2.close();
pstmt2 = null;
}
itmDbAccess = null;
fincommon = null;
utilMethod = null;
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception in gbfPostMiscRcpDet--["+ e.getMessage() +"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfPostRcpPayDet (String tranId,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfPostRcpPayDet (String tranId,Connection conn) method.");
String retString = "";
String tranSer = "";
String refNo = "";
String confirm = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
sql = "SELECT misc_pay_rcp_trace.tran_id__rcp , misc_pay_rcp_trace.tran_ser__pay , misc_pay_rcp_trace.ref_no__pay , misc_pay_rcp_trace.tran_date , " +
" misc_pay_rcp_trace.adj_amt , misc_pay_rcp_trace.confirmed , misc_pay_rcp_trace.conf_date , misc_pay_rcp_trace.emp_code__aprv , misc_pay_rcp_trace.chg_date , " +
" MISC_PAY_RCP_TRACE.CHG_USER , MISC_PAY_RCP_TRACE.CHG_TERM , MISC_PAY_RCP_TRACE.DIFF_AMT__EXCH , MISC_PAY_RCP_TRACE.EXCH_RATE , MISC_PAY_RCP_TRACE.CURR_CODE " +
" FROM MISC_PAY_RCP_TRACE WHERE ( misc_pay_rcp_trace.tran_id__rcp = ? ) ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
////////////////////////////////////////////////////////////
// check whether already confirmed because all the trace entries
// including confirmed through misc. pay/receipt adjust will
// be retrieved, if not confirmed then call the adjustment function
////////////////////////////////////////////////////////////
tranSer = checkNull(rs.getString("tran_ser__pay"));
refNo = checkNull(rs.getString("ref_no__pay"));
confirm = checkNull(rs.getString("confirmed"));
if("Y".equalsIgnoreCase(confirm))
{
retString = gbfRetrieveMiscPayRcp(tranSer,refNo,tranId,conn);
if(retString != null && retString.trim().length() > 0)
{
break;
}
}
}
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception from gbfPostRcpPayDet--["+ e.getMessage()+"]");
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)
{
conn.rollback();
System.out.println("Exception from gbfPostRcpPayDet--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfRetrieveMiscPayRcp(String tranSer,String refNo,String TranId ,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfRetrieveMiscPayRcp(String tranSer,String refNo,String TranId ,Connection conn) method.");
String retString = "";
String databaseName = "";
String key = "";
String key1 = "";
String key2 = "";
E12GenericUtility genericUtility = null;
ITMDBAccessEJB itmDbAccess = null;
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
HashMap hdrMap = new HashMap<>();
try
{
genericUtility = new E12GenericUtility();
itmDbAccess = new ITMDBAccessEJB();
databaseName = CommonConstants.DB_NAME;
if("db2".equalsIgnoreCase(databaseName) || "mysql".equalsIgnoreCase(databaseName))
{
sql = "SELECT tran_ser__pay, ref_no__pay, tran_id__rcp FROM misc_pay_rcp_trace WHERE tran_ser__pay = ? and \n" +
"ref_no__pay = ? and tran_id__rcp = ? and confirmed = 'N' for update";
}
else if("mssql".equalsIgnoreCase(databaseName))
{
sql = "SELECT tran_ser__pay, ref_no__pay, tran_id__rcp FROM misc_pay_rcp_trace (updlock)\n" +
"WHERE tran_ser__pay = ? and ref_no__pay = ? and tran_id__rcp = ? and \n" +
"confirmed = 'N'";
}
else
{
sql = "SELECT tran_ser__pay, ref_no__pay, tran_id__rcp FROM misc_pay_rcp_trace WHERE tran_ser__pay = ? and \n" +
"ref_no__pay = ? and tran_id__rcp = ? and confirmed = 'N' for update nowait";
}
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranSer);
pstmt.setString(2, refNo);
pstmt.setString(3, TranId);
rs = pstmt.executeQuery();
while(rs.next())
{
key = checkNull(rs.getString("tran_ser__pay"));
key1 = checkNull(rs.getString("ref_no__pay"));
key2 = checkNull(rs.getString("tran_id__rcp"));
}
closeResource(rs, pstmt);
sql = "SELECT misc_payables.sundry_type , misc_payables.sundry_code , misc_pay_rcp_trace.tran_ser__pay , misc_pay_rcp_trace.ref_no__pay , misc_pay_rcp_trace.tran_id__rcp ,\n" +
" misc_pay_rcp_trace.tran_date , misc_pay_rcp_trace.adj_amt , misc_pay_rcp_trace.confirmed , misc_pay_rcp_trace.conf_date , misc_pay_rcp_trace.emp_code__aprv ,\n" +
" misc_pay_rcp_trace.chg_date , misc_pay_rcp_trace.chg_user , misc_pay_rcp_trace.chg_term , misc_receipt.sundry_code , misc_receipt.sundry_type ,\n" +
" space(200) AS sundry_name, space(200) AS sundry_name_1, misc_pay_rcp_trace.add_date , misc_pay_rcp_trace.add_user , misc_pay_rcp_trace.add_term\n" +
"FROM misc_pay_rcp_trace , misc_payables , misc_receipt\n" +
"WHERE ( misc_pay_rcp_trace.tran_ser__pay = misc_payables.tran_ser )AND ( misc_pay_rcp_trace.ref_no__pay = misc_payables.ref_no )\n" +
"AND ( misc_pay_rcp_trace.tran_id__rcp = misc_receipt.tran_id )AND ( ( misc_pay_rcp_trace.tran_ser__pay = ? )\n" +
"AND ( MISC_PAY_RCP_TRACE.REF_NO__PAY = ? )AND ( misc_pay_rcp_trace.tran_id__rcp = ? ) )";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, key);
pstmt.setString(2, key1);
pstmt.setString(3, key2);
rs = pstmt.executeQuery();
while(rs.next())
{
hdrMap.put("sundry_type", rs.getString("sundry_type"));
hdrMap.put("sundry_code", rs.getString("sundry_code"));
hdrMap.put("tran_ser__pay", rs.getString("tran_ser__pay"));
hdrMap.put("ref_no__pay", rs.getString("ref_no__pay"));
hdrMap.put("tran_id__rcp", rs.getString("tran_id__rcp"));
hdrMap.put("tran_date", rs.getTimestamp("tran_date"));
hdrMap.put("adj_amt", rs.getDouble("adj_amt"));
hdrMap.put("confirmed", rs.getString("confirmed"));
hdrMap.put("conf_date", rs.getTimestamp("conf_date"));
hdrMap.put("emp_code__aprv", rs.getString("emp_code__aprv"));
hdrMap.put("chg_date", rs.getTimestamp("chg_date"));
hdrMap.put("chg_user", rs.getString("chg_user"));
hdrMap.put("chg_term", rs.getString("chg_term"));
hdrMap.put("sundry_code", rs.getString("sundry_code"));
hdrMap.put("sundry_type", rs.getString("sundry_type"));
hdrMap.put("sundry_name", rs.getString("sundry_name"));
hdrMap.put("sundry_name_1", rs.getString("sundry_name_1"));
hdrMap.put("add_date", rs.getTimestamp("add_date"));
hdrMap.put("add_user", rs.getString("add_user"));
hdrMap.put("add_term", rs.getString("add_term"));
}
closeResource(rs, pstmt);
retString = gbfPostMiscPayRcp(hdrMap, conn);
System.out.println("retString---["+retString+"]");
if(retString != null && retString.trim().length() > 0)
{
return retString ;
}
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception from gbfPostRcpPayDet--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
genericUtility = null;
itmDbAccess = null;
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception from gbfPostRcpPayDet--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
public String gbfPostMiscPayRcp(HashMap hdrValues ,Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfPostMiscPayRcp(HashMap hdrValues ,Connection conn) method.");
String retString = "";
try
{
do
{
retString = gbfPostMiscPayRcpHdr(hdrValues,conn);
System.out.println("retString from gbfPostMiscPayRcpHdr--["+retString+"]");
break;
}
while(true);
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception from gbfPostMiscPayRcp--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
return retString;
}
public String gbfPostMiscPayRcpHdr (HashMap hdrMap , Connection conn) throws ITMException, SQLException
{
System.out.println("Inside gbfPostMiscPayRcpHdr (HashMap hdrMap , Connection conn) method");
String retString = "";
String tranSer = "";
String refNo = "";
String tranId = "";
String databaseName = "";
String status = "";
double adjAmt = 0.0;
double tot = 0.0;
double adj = 0.0;
int cnt = 0;
java.sql.Timestamp today = null;
ITMDBAccessEJB itmDbAccess = null;
E12GenericUtility genericUtility = null;
UtilMethods utilMethods = null;
HashMap headerMap = null;
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
today = new java.sql.Timestamp(System.currentTimeMillis());
itmDbAccess = new ITMDBAccessEJB();
genericUtility = new E12GenericUtility();
utilMethods = new UtilMethods();
headerMap = new HashMap<>();
databaseName = CommonConstants.DB_NAME;
do
{
tranSer = (String) headerMap.get("tran_ser__pay");
refNo = (String) headerMap.get("ref_no__pay");
tranId = (String) headerMap.get("tran_id__rcp");
adjAmt = (double) headerMap.get("adj_amt");
if("db2".equalsIgnoreCase(databaseName) || "mysql".equalsIgnoreCase(databaseName))
{
sql = "select tot_amt, adj_amt from misc_payables " +
" where tran_ser = ? and ref_no = ? for update";
}
else if("mssql".equalsIgnoreCase(databaseName))
{
sql = "select tot_amt, adj_amt from misc_payables (updlock)\n" +
" where tran_ser = ? and ref_no = ?";
}
else
{
sql = "select tot_amt, adj_amt from misc_payables \n" +
" where tran_ser = ? and ref_no = ? for update nowait";
}
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranSer);
pstmt.setString(2, refNo);
rs = pstmt.executeQuery();
while(rs.next())
{
tot = rs.getDouble("tot_amt");
adj = rs.getDouble("adj_amt");
}
closeResource(rs, pstmt);
if(Math.abs(tot - adj) < adjAmt) // balance is insufficient
{
retString = itmDbAccess.getErrorString("", "VTBAL1", userId,"",conn);
break;
}
if("M-ADV".equalsIgnoreCase(tranSer.trim()) || ("P-IBC".equalsIgnoreCase(utilMethods.left(tranSer.trim(),5 )) && tot < 0)
||( "M-VOUC".equalsIgnoreCase(tranSer.trim()) && tot < 0) || ("P-VOUC".equalsIgnoreCase(tranSer.trim()) && tot < 0))
{
adj = adj - adjAmt;
}
else
{
adj = adj + adjAmt;
}
System.out.println("adj--["+adj+"]");
if(tot == adj)
{
status = "A";
}
else
{
status = "P";
}
if("M-ADV".equalsIgnoreCase(tranSer.trim()) || ("P-IBC".equalsIgnoreCase(utilMethods.left(tranSer.trim(),5 )) && tot < 0) ||
( "M-VOUC".equalsIgnoreCase(tranSer.trim()) && tot < 0) || ("P-VOUC".equalsIgnoreCase(tranSer.trim()) && tot < 0) ||
("P-ADV".equalsIgnoreCase(tranSer.trim()) && tot < 0) || ("VOUCH".equalsIgnoreCase(tranSer.trim()) && tot < 0) )
{
sql = "update misc_payables set adj_amt =case when adj_amt is null then 0 else adj_amt end - ?," +
"status = ?, status_date = ? where tran_ser = ? and ref_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, adjAmt);
pstmt.setString(2, status);
pstmt.setTimestamp(3, today);
pstmt.setString(4, tranSer);
pstmt.setString(5, refNo);
cnt = pstmt.executeUpdate();
System.out.println("updated ["+cnt+"] records in misc_payables table.");
closeResource(pstmt);
if(cnt != 1)
{
retString = itmDbAccess.getErrorString("", "DS000NR", userId, "", conn);
break;
}
}
else
{
cnt = 0;
sql = "update misc_payables set adj_amt = case when adj_amt is null then 0 else adj_amt end + ?," +
"status = ?, status_date = ? " +
"where tran_ser = ? and ref_no = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, adjAmt);
pstmt.setString(2, status);
pstmt.setTimestamp(3, today);
pstmt.setString(4, tranSer);
pstmt.setString(5, refNo);
cnt = pstmt.executeUpdate();
System.out.println("updated ["+cnt+"] records in misc_payables table.");
closeResource(pstmt);
if(cnt != 1)
{
retString = itmDbAccess.getErrorString("", "DS000NR", userId, "", conn);
break;
}
}
cnt = 0;
sql = "update misc_receipt set adj_amt = case when adj_amt is null then 0 else adj_amt end + ?\n" +
"where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setDouble(1, adjAmt);
pstmt.setString(2, tranId);
cnt = pstmt.executeUpdate();
System.out.println("update ["+ cnt +"] rows in misc_receipt table.");
if(cnt != 1)
{
retString = itmDbAccess.getErrorString("", "DS000NR", userId, "", conn);
break;
}
cnt = 0;
sql = "update misc_pay_rcp_trace set confirmed = 'Y', conf_date = ?,\n" +
" emp_code__aprv = ? where tran_ser__pay = ? and ref_no__pay = ? and\n" +
" tran_id__rcp = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, today);
pstmt.setString(2, loginEmpCode);
pstmt.setString(3, tranSer);
pstmt.setString(4, refNo);
pstmt.setString(5, tranId);
cnt = pstmt.executeUpdate();
System.out.println("update ["+ cnt +"] rows in misc_pay_rcp_trace table.");
if(cnt != 1)
{
retString = itmDbAccess.getErrorString("", "DS000NR", userId, "", conn);
break;
}
break;
}
while(true);
}
catch(Exception e)
{
conn.rollback();
System.out.println("Exception from gbfPostMiscPayRcpHdr--["+ e.getMessage()+"]");
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)
{
conn.rollback();
System.out.println("Exception from gbfPostMiscPayRcpHdr--["+ e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
return retString;
}
private String checkNull(String input)
{
if(input == null)
{
input = "";
}
return input.trim();
}
private void closeResource(ResultSet rs,PreparedStatement pstmt) throws ITMException
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception in MiscRcpConf][closeResource]--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private void closeResource(PreparedStatement pstmt) throws ITMException
{
try
{
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
System.out.println("Exception in MiscRcpConf][closeResource]--["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private String[] string2StringArray(String str1 , String delimeter)
{
StringTokenizer st = new StringTokenizer(str1,delimeter);
int count = st.countTokens() ;
String[] arry1 = new String[count];
int i = 0;
while(st.hasMoreTokens())
{
arry1[i] = st.nextToken();
System.out.print("Token "+i+" :["+arry1[i]+"]");
i++;
}
System.out.println("");
return arry1 ;
}
}
package ibase.webitm.ejb.fin.adv;
import java.rmi.RemoteException;
import java.sql.Connection;
import javax.ejb.Local;
import ibase.webitm.ejb.ActionHandlerLocal;
import ibase.webitm.utility.ITMException;
@Local
public interface MiscRcpConfLocal extends ActionHandlerLocal
{
public String confirm(String tranID, String xtraParams, String forcedFlag) throws RemoteException,ITMException;
public String confirm(String tranIdFr, String tranIdTo ,String xtraParams, String forcedFlag,Connection conn) throws ITMException;
}
package ibase.webitm.ejb.fin.adv;
import java.rmi.RemoteException;
import java.sql.Connection;
import javax.ejb.Remote;
import ibase.webitm.ejb.ActionHandlerRemote;
import ibase.webitm.utility.ITMException;
@Remote
public interface MiscRcpConfRemote extends ActionHandlerRemote
{
public String confirm(String tranID, String xtraParams, String forcedFlag) throws RemoteException,ITMException;
public String confirm(String tranIdFr, String tranIdTo ,String xtraParams, String forcedFlag,Connection conn) throws 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