Commit 2d3412d2 authored by smisra's avatar smisra

for QC release 1


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@91442 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 3ff26f7d
/********************************************************
Title : JvVal
Date : 26/07/2011
Developer: Dipak Chattar
********************************************************/
package ibase.webitm.ejb.fin;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.util.*;
import java.io.*;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.DecimalFormat;
import java.sql.Timestamp;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.CDATASection;
import javax.ejb.Stateless; // added for ejb3
@Stateless // added for ejb3
public class JvVal extends ValidatorEJB implements JvValLocal, JvValRemote
{
GenericUtility genericUtility = GenericUtility.getInstance();
String winName = null;
FinCommon finCommon = null;
ValidatorEJB validator = null;
//method for validation
public String wfValData(String xmlString, String xmlString1, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException
{
String errString = "";
Document dom = null;
Document dom1 = null;
try
{
System.out.println("Val xmlString :: " + xmlString);
System.out.println("Val xmlString1 :: " + xmlString1);
dom = parseString(xmlString);
dom1 = parseString(xmlString1);
errString = wfValData(dom, dom1, objContext, editFlag, xtraParams);
}
catch(Exception e)
{
throw new ITMException(e);
}
return(errString);
}
//method for validation
public String wfValData(Document dom, Document dom1, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException
{
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
int ctr=0;
int cnt = 0;
int pos = 0;
int currentFormNo = 0;
int refNoLen = 0;
int childNodeListLength;
int siteRevLen = 0;
boolean siteEmptyFlag = false;
boolean refEmptyFlag = false;
boolean revDateEmpFlag = false;
String errorType = "";
String objName = "";
String childNodeName = null;
String errString = "";
String errCode = "";
String userId = "";
String sql = "";
String fromDate = "";
String validUptoDate = "";
String siteCode = "";
String finEntity = "";
String refNo = "";
String refSer = "";
String reverSible = "";
String projectCode = "";
String acctCode = "";
String cctrCode = "";
String empCode = "";
String analCode = "";
String sundryType = "";
String sundryCode = "";
String siteTrim = "";
String siteCRevTrim = "";
String siteCodeRev = "";
String siteCodeJv = "";
String currCode = "";
String tranDate = "";
String revDate = "";
Date tranPdate = null;
ArrayList<String> errList = new ArrayList<String>();
ArrayList<String> errFields = new ArrayList<String>();
Connection conn = null;
PreparedStatement pstmt = null ;
ResultSet rs = null;
ConnDriver connDriver = new ConnDriver();
StringBuffer errStringXml = new StringBuffer("<?xml version = \"1.0\"?> \r\n <Root> <Errors>");
try
{
finCommon = new FinCommon();
validator = new ValidatorEJB();
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(genericUtility.getApplDateFormat());
userId = getValueFromXTRA_PARAMS(xtraParams, "loginCode");
if(objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
}
switch(currentFormNo)
{
case 1 :parentNodeList = dom.getElementsByTagName("Detail1");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
for(ctr = 0; ctr < childNodeListLength; ctr ++)
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equalsIgnoreCase("site_code"))
{
siteCode = genericUtility.getColumnValue("site_code", dom);
if(siteCode == null || (siteCode.length() == 0))
{
errList.add("VMSITECOD");
errFields.add(childNodeName.toLowerCase());
}
if(siteCode != null && (siteCode.trim().length()!= 0))
{
sql = " select count(*) from site where site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VMSITE1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
else if(childNodeName.equalsIgnoreCase("site_code__rev"))
{
siteCodeRev = genericUtility.getColumnValue("site_code__rev", dom);
siteCode = genericUtility.getColumnValue("site_code", dom);
if(siteCodeRev == null || (siteCodeRev.length() == 0))
{
errList.add("VMSITECOD");
errFields.add(childNodeName.toLowerCase());
}
if(siteCodeRev != null && (siteCodeRev.trim().length()!= 0) && siteCode.trim().equalsIgnoreCase(siteCodeRev.trim()))
{
sql = " select count(*) from site where site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCodeRev);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VMSITE1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
else if((siteCodeRev != null) && (siteCode != null) && (!siteCode.trim().equalsIgnoreCase(siteCodeRev.trim())))
{
sql = "SELECT COUNT(*) FROM IBCA_PAY_CTRL WHERE SITE_CODE__FROM = ? AND SITE_CODE__TO = ?" ;
System.out.println("sql [" + sql + "]");
System.out.println("siteCodeRev [" + siteCodeRev + "]");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,siteCodeRev);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt = rs.getInt(1);
}
if(cnt == 0)
{
errCode = "VTNIBCA";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
if(pstmt != null)
{
pstmt.close();
}
}
}
else if(childNodeName.equalsIgnoreCase("tran_date"))
{
siteCode = genericUtility.getColumnValue("site_code", dom);
tranDate = genericUtility.getColumnValue("tran_date", dom);
try
{
tranPdate = simpleDateFormat.parse(tranDate);
errCode = validator.nfCheckPeriod("FIN",new java.util.Date(tranPdate.getTime()),siteCode);
}
catch (ParseException e)
{
System.out.println("Exception in transaction date [tran_date_validation]"+e);
e.printStackTrace();
throw new ITMException(e);
}
if(errCode.trim().length() > 0)
{
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
else if(childNodeName.equalsIgnoreCase("fin_entity"))
{
finEntity = genericUtility.getColumnValue("fin_entity", dom);
if(finEntity != null && (finEntity.trim().length()!= 0))
{
sql = "SELECT COUNT(*) FROM FINENT WHERE FIN_ENTITY = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,finEntity);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VMFENTY1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
else if(childNodeName.equalsIgnoreCase("ref_no"))
{
refNo = genericUtility.getColumnValue("ref_no", dom);
refSer = genericUtility.getColumnValue("ref_ser", dom);
if(refNo!= null && (refNo.trim().length() > 0))
{
sql = "SELECT COUNT(*) FROM GLTRACE WHERE REF_ID = ? AND REF_SER = ?";
System.out.println("sql [" + sql + "]");
System.out.println("refNo [" + refNo + "]");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,refNo);
pstmt.setString(2, refSer);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt = rs.getInt(1);
}
if(cnt == 0)
{
errCode = "VTREF4";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
if(pstmt != null)
{
pstmt.close();
}
}
}
else if(childNodeName.equalsIgnoreCase("reversible"))
{
reverSible = genericUtility.getColumnValue("reversible", dom);
revDate = genericUtility.getColumnValue("rev_date", dom);
tranDate = genericUtility.getColumnValue("tran_date", dom);
if("Y".equalsIgnoreCase(reverSible))
{
if(revDate == null)
{
errCode = "VTJOUR1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
else if( (revDate != null && tranDate !=null ) && (simpleDateFormat.parse( revDate ).before( simpleDateFormat.parse( tranDate ) )))
{
errCode = "VTJOUR2";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}
else if(childNodeName.equalsIgnoreCase( "curr_code"))
{
if(childNode.getFirstChild() != null)
{
currCode =genericUtility.getColumnValue("curr_code", dom);
if(currCode== null || (currCode.trim().length() == 0))
{
errCode = "VTCURRCD2";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
sql = "SELECT COUNT(*) FROM CURRENCY WHERE CURR_CODE = ?";
System.out.println("sql [" + sql + "]");
System.out.println("columnValue [" + currCode + "]");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,currCode);
rs = pstmt.executeQuery();
while(rs.next())
{
cnt = rs.getInt(1);
}
if(cnt == 0)
{
errCode = "VTCURRCD1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
if(pstmt != null)
{
pstmt.close();
}
}
}
else if(childNodeName.equalsIgnoreCase("proj_code"))
{
projectCode = genericUtility.getColumnValue("proj_code", dom);
if(projectCode!= null && (projectCode.trim().length() > 0 ))
{
sql = "SELECT COUNT(*) FROM PROJECT WHERE PROJ_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,projectCode);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VMPROJ1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
}
break;
case 2 : parentNodeList = dom.getElementsByTagName("Detail2");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
childNodeListLength = childNodeList.getLength();
for(ctr = 0; ctr < childNodeListLength; ctr ++)
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equalsIgnoreCase("acct_code"))
{
siteCode = genericUtility.getColumnValue("site_code", dom);
acctCode = genericUtility.getColumnValue("acct_code", dom);
if(acctCode != null && (acctCode.trim().length() != 0 ))
{
errCode = finCommon.isAcctCode(siteCode, acctCode, "", conn);
}
else
{
errCode = "VMACCTCD1";
}
if(errCode != null && (errCode.trim()!= ""))
{
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
else if(childNodeName.equalsIgnoreCase("cctr_code"))
{
acctCode = genericUtility.getColumnValue("acct_code", dom);
cctrCode = genericUtility.getColumnValue("cctr_code", dom);
if(cctrCode == null || (cctrCode.trim().length() == 0 ))
{
errCode = "VMCCTRCD1";
}
else
{
errCode = finCommon.isCctrCode(acctCode, cctrCode, "", conn);
}
if(errCode != null && (errCode.trim()!= ""))
{
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
else if(childNodeName.equalsIgnoreCase("emp_code"))
{
empCode = genericUtility.getColumnValue("emp_code", dom);
siteCode = genericUtility.getColumnValue("site_code", dom);
refSer = genericUtility.getColumnValue("ref_ser", dom);
errCode = finCommon.isEmployee(siteCode, empCode, refSer, conn);
if(errCode != null && (errCode.trim()!= ""))
{
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
else if(childNodeName.equalsIgnoreCase("anal_code"))
{
analCode = genericUtility.getColumnValue("anal_code", dom);
acctCode = genericUtility.getColumnValue("acct_code", dom);
refSer = genericUtility.getColumnValue("ref_ser", dom);
errCode = finCommon.isAnalysis(acctCode, analCode, refSer, conn);
if(errCode != null && (errCode.trim()!= ""))
{
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
//added for validating JV Site Code
else if(getObjName(parentNode)!=null && (getObjName(parentNode).trim().equalsIgnoreCase("journal_oth_site")) && (childNodeName.equalsIgnoreCase("site_code__jv")))
{
siteCodeJv = genericUtility.getColumnValue("site_code__jv", dom);
if(siteCodeJv == null || (siteCodeJv.trim().length() == 0 ))
{
errList.add("VMSITECOD");
errFields.add(childNodeName.toLowerCase());
}
if(siteCodeJv != null && (siteCodeJv.trim().length()!= 0 ))
{
sql = " select count(*) from site where site_code = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCodeJv);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VMSITE1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
else if(childNodeName.equalsIgnoreCase("sundry_type"))
{
sundryType = genericUtility.getColumnValue("sundry_type", dom);
if(sundryType != null && (sundryType.trim().length())!= 0)
{
sql = "SELECT COUNT(*) FROM SUNDRY_TYPE WHERE SUNDRY_TYPE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,sundryType);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VTSUND4";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
else if(childNodeName.equalsIgnoreCase("sundry_code"))
{
sundryCode = genericUtility.getColumnValue("sundry_code", dom);
sundryType = genericUtility.getColumnValue("sundry_type", dom);
siteCode = genericUtility.getColumnValue("site_code", dom);
refSer = genericUtility.getColumnValue("ref_ser", dom);
errCode = finCommon.isSundryCode(siteCode, sundryType, sundryCode, refSer, conn);
if(errCode != null && (errCode.trim()!= ""))
{
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
else if(childNodeName.equalsIgnoreCase("proj_code"))
{
projectCode = genericUtility.getColumnValue("proj_code", dom);
if(projectCode!= null && (projectCode.trim().length() > 0))
{
sql = "SELECT COUNT(*) FROM PROJECT WHERE PROJ_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,projectCode);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
errCode = "VMPROJ1";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
}
}
break;
} //end switch
int errListSize = errList.size();
cnt = 0;
String errFldName = null;
if(errList != null && errListSize > 0)
{
for(cnt = 0; cnt < errListSize; cnt ++)
{
errCode = errList.get(cnt);
errFldName = errFields.get(cnt);
System.out.println("errCode .........." + errCode);
errString = getErrorString(errFldName, errCode, userId);
errorType = errorType(conn , errCode);
if(errString.length() > 0)
{
String bifurErrString = errString.substring(errString.indexOf("<Errors>") + 8, errString.indexOf("<trace>"));
bifurErrString = bifurErrString;
bifurErrString = bifurErrString + errString.substring(errString.indexOf("</trace>") + 8, errString.indexOf("</Errors>"));
errStringXml.append(bifurErrString);
errString = "";
}
if(errorType.equalsIgnoreCase("E"))
{
break;
}
}
errList.clear();
errList = null;
errFields.clear();
errFields = null;
errStringXml.append("</Errors> </Root> \r\n");
}
else
{
errStringXml = new StringBuffer("");
}
}//end try
catch(Exception e)
{
e.printStackTrace();
errString = e.getMessage();
throw new ITMException(e);
}
finally
{
try
{
if(conn != null)
{
if(rs != null)
rs.close();
rs = null;
if(pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
}
conn = null;
}
catch(Exception d)
{
d.printStackTrace();
throw new ITMException(d);
}
}
errString = errStringXml.toString();
return errString;
}//end of validation
// method for item change
public String itemChanged(String xmlString, String xmlString1, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException
{
Document dom = null;
Document dom1 = null;
String valueXmlString = "";
try
{
dom = parseString(xmlString);
dom1 = parseString(xmlString1);
valueXmlString = itemChanged(dom, dom1, objContext, currentColumn, editFlag, xtraParams);
}
catch(Exception e)
{
System.out.println("Exception : [JvVal][itemChanged( String, String )] :==>\n" + e.getMessage());
}
return valueXmlString;
}
// method for item change
public String itemChanged(Document dom, Document dom1, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException
{
StringBuffer valueXmlString = new StringBuffer();
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
String childNodeName = null;
String columnValue = null;
String Col_name = "";
String siteCode = "";
String description = "";
String description1 = "";
String description2 = "";
String description3 = "";
String tranDate = "";
String siteCodeRev = "";
String reverSible = "";
String currCode = "";
String finEntity = "";
String tranId = "";
String projectCode = "";
String acctCode = "";
String sundryCode = "";
String sundryType = "";
String staTus = "";
String siteCodeFor = "";
String startTag = "";
String endTag = "";
String dateNow = "";
String objName = null;
int ctr = 0;
int cnt = 0;
int currentFormNo = 0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null ;
GenericUtility genericUtility = GenericUtility.getInstance();
ConnDriver connDriver = new ConnDriver();
try
{
conn = connDriver.getConnectDB("DriverITM");
conn.setAutoCommit(false);
connDriver = null;
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(genericUtility.getApplDateFormat());
if(objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
}
valueXmlString = new StringBuffer("<?xml version = \"1.0\"?> <Root> <header> <editFlag>");
valueXmlString.append(editFlag).append("</editFlag> </header>");
valueXmlString.append("<Detail>");
switch(currentFormNo)
{
case 1 : parentNodeList = dom.getElementsByTagName("Detail1");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
ctr = 0;
int childNodeListLength = childNodeList.getLength();
do
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equals(currentColumn))
{
if(childNode.getFirstChild() != null)
{
columnValue = childNode.getFirstChild().getNodeValue().trim();
}
}
ctr ++;
}while(ctr < childNodeListLength && ! childNodeName.equals(currentColumn));
if(currentColumn.trim().equalsIgnoreCase("itm_default"))
{
siteCode =(genericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode"));
dateNow = simpleDateFormat.format(currentDate.getTime());
valueXmlString.append("<tran_date>").append("<![CDATA[" + dateNow + "]]>").append("</tran_date>");
valueXmlString.append("<eff_date>").append("<![CDATA[" + dateNow + "]]>").append("</eff_date>");
valueXmlString.append("<site_code>").append("<![CDATA[" + siteCode + "]]>").append("</site_code>");
valueXmlString.append("<rev_date protect = \"1\">").append("</rev_date>");
valueXmlString.append("<auto_rev protect = \"1\">").append("</auto_rev>");
valueXmlString.append("<site_code__rev protect = \"1\">").append("<![CDATA[" + siteCode + "]]>").append("</site_code__rev>");
valueXmlString.append("<site_code>").append("<![CDATA[" + getAbsString(siteCode) + "]]>").append("</site_code>");
setNodeValue(dom, "site_code", getAbsString(siteCode));
valueXmlString.append( "<site_code__close protect = \"1\">").append("</site_code__close>" );
valueXmlString.append( "<prd_code__fr protect = \"1\">").append("</prd_code__fr>");
valueXmlString.append( "<prd_code__to protect = \"1\">").append("</prd_code__to>");
valueXmlString.append( "<acct_code__fr protect = \"1\">").append("</acct_code__fr>");
valueXmlString.append( "<acct_code__to protect = \"1\">").append("</acct_code__to>");
if((getObjName(parentNode)!=null) && (getObjName(parentNode)!=null) && (getObjName(parentNode).trim().equalsIgnoreCase("journal_oth_site")))
{
valueXmlString.append("<site_code__for protect = \"0\">").append("</site_code__for>");
valueXmlString.append("<site_descr_1 protect = \"1\">").append("</site_descr_1>");
}
else
{
valueXmlString.append("<site_code__for protect = \"1\">").append("<![CDATA[" + siteCode + "]]>").append("</site_code__for>");
valueXmlString.append("<site_descr_1 protect = \"1\">").append("<![CDATA[" + description + "]]>").append("</site_descr_1>");
}
}//end of if
else if(currentColumn.trim().equalsIgnoreCase("itm_defaultedit"))
{
valueXmlString.append("<site_code__close protect = \"1\">").append("</site_code__close>");
valueXmlString.append("<prd_code__fr protect = \"1\">").append("</prd_code__fr>");
valueXmlString.append("<prd_code__to protect = \"1\">").append("</prd_code__to>");
valueXmlString.append("<acct_code__fr protect = \"1\">").append("</acct_code__fr>");
valueXmlString.append("<acct_code__to protect = \"1\">").append("</acct_code__to>");
}
else if(currentColumn.trim().equalsIgnoreCase("tran_date"))
{
tranDate = genericUtility.getColumnValue("tran_date", dom);
valueXmlString.append("<eff_date>").append("<![CDATA[" + tranDate + "]]>").append("</eff_date>");
}
else if(currentColumn.trim().equalsIgnoreCase("site_code"))
{
siteCode = genericUtility.getColumnValue("site_code", dom);
description = findValue(conn, "descr" ,"site", "site_code", siteCode);
description1 = findValue(conn, "fin_entity" ,"site", "site_code", siteCode);
valueXmlString.append("<site_code__rev>").append("<![CDATA[" + siteCode + "]]>").append("</site_code__rev>");
valueXmlString.append("<site_b_descr>").append("<![CDATA[" + description + "]]>").append("</site_b_descr>");
valueXmlString.append("<site_descr>").append("<![CDATA[" + description + "]]>").append("</site_descr>");
valueXmlString.append( "<fin_entity>").append("<![CDATA[" + description1 + "]]>").append("</fin_entity>");
description2 = findValue(conn, "curr_code" ,"finent", "fin_entity", description1);
valueXmlString.append("<curr_code>").append("<![CDATA[" + description2 + "]]>").append("</curr_code>");
valueXmlString.append("<exch_rate protect = \"1\">").append("<![CDATA[" + 1 + "]]>").append("</exch_rate>");
siteCodeRev = genericUtility.getColumnValue("site_code__rev", dom);
description3 = findValue(conn, "link_type" ,"ibca_pay_ctrl", "site_code__from", "site_code__to", siteCode, siteCodeRev);
valueXmlString.append("<link_type>").append("<![CDATA[" + description3 + "]]>").append("</link_type>");
}
else if(currentColumn.trim().equalsIgnoreCase("site_code__rev"))
{
siteCodeRev = genericUtility.getColumnValue("site_code__rev", dom);
description = findValue(conn, "descr" , "site", "site_code", siteCodeRev);
valueXmlString.append("<site_b_descr>").append("<![CDATA[" + description + "]]>").append("</site_b_descr>");
description1 = findValue(conn, "link_type" , "ibca_pay_ctrl", "site_code__from", "site_code__to", siteCode, siteCodeRev);
valueXmlString.append("<link_type>").append("<![CDATA[" + description1 + "]]>").append("</link_type>");
}
else if(currentColumn.trim().equalsIgnoreCase("site_code__for"))
{
siteCodeFor = genericUtility.getColumnValue("site_code__for", dom);
description = findValue(conn, "descr" ,"site", "site_code", siteCodeFor);
valueXmlString.append("<site_descr_1>").append("<![CDATA[" + description + "]]>").append("</site_descr_1>");
}
else if(currentColumn.trim().equalsIgnoreCase("reversible"))
{
reverSible = genericUtility.getColumnValue("reversible", dom);
siteCodeRev = genericUtility.getColumnValue("site_code__rev", dom);
if(reverSible.equalsIgnoreCase("Y"))
{
tranDate = genericUtility.getColumnValue("tran_date", dom);
valueXmlString.append("<site_code__rev protect = \"0\">").append("<![CDATA[" + siteCodeRev + "]]>").append("</site_code__rev>");
valueXmlString.append("<rev_date protect = \"0\">").append("</rev_date>");
valueXmlString.append("<auto_rev protect = \"0\">").append("</auto_rev>");
valueXmlString.append("<rev_date>").append("<![CDATA[" + tranDate + "]]>").append("</rev_date>");
staTus = genericUtility.getColumnValue("status", dom);
if(staTus.equalsIgnoreCase("A"))
{
valueXmlString.append("<status>").append("<![CDATA[" + "N" + "]]>").append("</status>");
valueXmlString.append("<auto_rev>").append("<![CDATA[" + "Y" + "]]>").append("</auto_rev>");
}
}
else
{
valueXmlString.append("<rev_date protect = \"1\">").append("</rev_date>");
valueXmlString.append("<site_code__rev protect = \"1\">").append("<![CDATA[" + siteCodeRev + "]]>").append("</site_code__rev>");
valueXmlString.append("<auto_rev protect = \"1\">").append("</auto_rev>");
valueXmlString.append("<auto_rev>").append("<![CDATA[" + "N" + "]]>").append("</auto_rev>" );
valueXmlString.append("<status>").append("<![CDATA[" + "A" + "]]>").append("</status>" );
}
}
else if(currentColumn.trim().equalsIgnoreCase("curr_code"))
{
currCode = genericUtility.getColumnValue("curr_code", dom);
finEntity = genericUtility.getColumnValue("fin_entity", dom);
description = findValue(conn, "std_exrt" , "currency", "curr_code", currCode);
description1 = findValue(conn, "curr_code" , "finent", "fin_entity", finEntity);
if((description1.trim()) == (currCode.trim()))
valueXmlString.append("<exch_rate protect = \"1\">").append("<![CDATA[" + description + "]]>").append ("</exch_rate>");
else
valueXmlString.append("<exch_rate protect = \"0\">").append("<![CDATA[" + description + "]]>").append ("</exch_rate>");
}
valueXmlString.append("</Detail>");
break;
case 2 : parentNodeList = dom.getElementsByTagName("Detail2");
parentNode = parentNodeList.item(0);
childNodeList = parentNode.getChildNodes();
ctr = 0;
String lineNo = "";
childNodeListLength = childNodeList.getLength();
do
{
childNode = childNodeList.item(ctr);
childNodeName = childNode.getNodeName();
if(childNodeName.equals(currentColumn))
{
if(childNode.getFirstChild() != null)
{
columnValue = childNode.getFirstChild().getNodeValue().trim();
}
}
ctr ++;
}while(ctr < childNodeListLength && ! childNodeName.equals(currentColumn));
if(currentColumn.trim().equalsIgnoreCase("itm_default"))
{
int lineNum = 0;
lineNo = (genericUtility.getValueFromXTRA_PARAMS(xtraParams, "line_no"));
tranId = genericUtility.getColumnValue("tran_id", dom);
projectCode = genericUtility.getColumnValue("proj_code", dom);
lineNum = Integer.parseInt(lineNo);
if(lineNum > 0)
valueXmlString.append("<line_no>").append("<![CDATA[" + lineNo + "]]>").append("</line_no>");
valueXmlString.append("<tran_id>").append("<![CDATA[" + tranId + "]]>").append("</tran_id>");
valueXmlString.append("<proj_code>").append("<![CDATA[" + projectCode + "]]>").append("</proj_code>");
}
else if(currentColumn.trim().equalsIgnoreCase("itm_defaultedit"))
{
sundryType = genericUtility.getColumnValue("sundry_type", dom);
sundryCode = genericUtility.getColumnValue("sundry_code", dom);
if("C".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "cust_name" , "customer", "cust_code", sundryCode);
}
else if("R".equalsIgnoreCase(sundryType))
{
description1 = findValue(conn, "first_name" , "strg_customer", "sc_code", sundryCode);
description2 = findValue(conn, "middle_name" , "strg_customer", "sc_code", sundryCode);
description3 = findValue(conn, "last_name" , "strg_customer", "sc_code", sundryCode);
description = description1.trim() + " " + description2.trim() + "" + description3.trim();
}
else if("B".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "bank_name" , "bank", "bank_code", sundryCode);
}
else if("E".equalsIgnoreCase(sundryType))
{
description1 = findValue(conn, "emp_fname" , "employee", "emp_code", sundryCode);
description2 = findValue(conn, "emp_lname" , "employee", "emp_code", sundryCode);
description = description1.trim() + " " + description2.trim();
}
else if("P".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "sp_name" ,"sales_pers", "sales_pers", sundryCode);
}
else if("T".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "tran_name" , "transporter", "tran_code", sundryCode);
}
else if("S".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "supp_name" , "supplier", "supp_code", sundryCode);
}
else if("X".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "tauth_name" , "tax_authority", "tauth_code", sundryCode);
}
else if("L".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "party_name" , "loanparty", "party_code", sundryCode);
}
valueXmlString.append("<sundry_name>").append("<![CDATA[" + description + "]]>").append("</sundry_name>");
}
else if(currentColumn.trim().equalsIgnoreCase("acct_code"))
{
acctCode = genericUtility.getColumnValue("acct_code", dom);
description = findValue(conn, "descr" , "accounts", "acct_code", acctCode);
valueXmlString.append("<accounts_descr>").append("<![CDATA[" + description + "]]>").append("</accounts_descr>");
}
else if(currentColumn.trim().equalsIgnoreCase("sundry_code"))
{
sundryType = genericUtility.getColumnValue("sundry_type", dom);
sundryCode = genericUtility.getColumnValue("sundry_code", dom);
if("C".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "cust_name" , "customer", "cust_code", sundryCode);
}
else if("R".equalsIgnoreCase(sundryType))
{
description1 = findValue(conn, "first_name" , "strg_customer", "sc_code", sundryCode);
description2 = findValue(conn, "middle_name" , "strg_customer", "sc_code", sundryCode);
description3 = findValue(conn, "last_name" , "strg_customer", "sc_code", sundryCode);
description = description1.trim() + " " + description2.trim() + "" + description3.trim();
}
else if("B".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "bank_name" , "bank", "bank_code", sundryCode);
}
else if("E".equalsIgnoreCase(sundryType))
{
description1 = findValue(conn, "emp_fname" , "employee", "emp_code", sundryCode);
description2 = findValue(conn, "emp_lname" , "employee", "emp_code", sundryCode);
description = description1.trim() + " " + description2.trim();
}
else if("P".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "sp_name" ,"sales_pers", "sales_pers", sundryCode);
}
else if("T".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "tran_name" , "transporter", "tran_code", sundryCode);
}
else if("S".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "supp_name" , "supplier", "supp_code", sundryCode);
}
else if("X".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "tauth_name" , "tax_authority", "tauth_code", sundryCode);
}
else if("L".equalsIgnoreCase(sundryType))
{
description = findValue(conn, "party_name" , "loanparty", "party_code", sundryCode);
}
valueXmlString.append("<sundry_name>").append("<![CDATA[" + description + "]]>").append("</sundry_name>");
}
valueXmlString.append("</Detail>");
break;
}
valueXmlString.append("</Root>");
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception ::"+ e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if(conn != null)
{
if(pstmt != null)
pstmt.close();
if(rs != null)
rs.close();
rs = null;
pstmt = null;
conn.close();
conn = null;
}
}
catch(Exception d)
{
d.printStackTrace();
}
}
return valueXmlString.toString();
}
private String findValue(Connection conn, String columnName ,String tableName, String columnName2, String value) throws ITMException, RemoteException
{
PreparedStatement pstmt = null ;
ResultSet rs = null ;
String sql = "";
String findValue = "";
try
{
sql = "SELECT " + columnName + " from " + tableName + " where " + columnName2 +" = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,value);
rs = pstmt.executeQuery();
if(rs.next())
{
findValue = rs.getString(columnName);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
catch(Exception e)
{
System.out.println("Exception in findValue ");
e.printStackTrace();
throw new ITMException(e);
}
System.out.println("returning String from findValue ");
return findValue;
}
private String findValue(Connection conn, String columnName, String tableName, String columnName1, String columnName2, String value1, String value2) throws ITMException, RemoteException
{
PreparedStatement pstmt = null ;
ResultSet rs = null ;
String sql = "";
String findValue = "";
try
{
sql = "SELECT " + columnName + " from " + tableName + " where " + columnName1 +" = ?" + " and " + columnName2 +" = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,value1);
pstmt.setString(2,value2);
rs = pstmt.executeQuery();
if(rs.next())
{
findValue = rs.getString(columnName);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
catch(Exception e)
{
System.out.println("Exception in findValue ");
e.printStackTrace();
throw new ITMException(e);
}
System.out.println("returning String from findValue ");
return findValue;
}
private String errorType(Connection conn , String errorCode)
{
String msgType = "";
PreparedStatement pstmt = null ;
ResultSet rs = null;
try
{
String sql = "SELECT MSG_TYPE FROM MESSAGES WHERE MSG_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,errorCode);
rs = pstmt.executeQuery();
while(rs.next())
{
msgType = rs.getString("MSG_TYPE");
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
if(rs != null)
{
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
return msgType;
}
public String getObjName(Node node) throws Exception
{
String objName = null;
NamedNodeMap attrMap = node.getAttributes();
objName = attrMap.getNamedItem("objName").getNodeValue();
return objName;
}
private static void setNodeValue(Document dom, String nodeName, String nodeVal) throws Exception
{
Node tempNode = dom.getElementsByTagName(nodeName).item(0);
if(tempNode != null)
{
if(tempNode.getFirstChild() == null)
{
CDATASection cDataSection = dom.createCDATASection(nodeVal);
tempNode.appendChild(cDataSection);
}
else
{
tempNode.getFirstChild().setNodeValue(nodeVal);
}
}
tempNode = null;
}
private static void setNodeValue(Document dom, String nodeName, double nodeVal) throws Exception
{
setNodeValue(dom, nodeName, Double.toString(nodeVal));
}
private static void setNodeValue(Document dom, String nodeName, int nodeVal) throws Exception
{
setNodeValue(dom, nodeName, Integer.toString(nodeVal));
}
private static String getAbsString(String str)
{
return(str == null || str.trim().length() == 0 || "null".equalsIgnoreCase(str.trim()) ? "" : str.trim() );
}
}
\ No newline at end of file
/********************************************************
Title : JvValLocal
Date : 26/07/2011
Developer: Dipak Chattar
********************************************************/
package ibase.webitm.ejb.fin;
import java.rmi.RemoteException;
import org.w3c.dom.*;
import ibase.webitm.ejb.*;
import ibase.webitm.utility.ITMException;
import javax.ejb.Local; // added for ejb3
@Local // added for ejb3
public interface JvValLocal extends ValidatorLocal
{
public String wfValData(String xmlString, String xmlString1, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(Document dom, Document dom1, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(String xmlString, String xmlString1, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
}
/********************************************************
Title : JvValRemote
Date : 26/07/2011
Developer: Dipak Chattar
********************************************************/
package ibase.webitm.ejb.fin;
import java.rmi.RemoteException;
import org.w3c.dom.*;
import ibase.webitm.ejb.*;
import ibase.webitm.utility.ITMException;
import javax.ejb.Remote; // added for ejb3
@Remote // added for ejb3
public interface JvValRemote extends ValidatorRemote
{
public String wfValData(String xmlString, String xmlString1, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(Document dom, Document dom1,String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(String xmlString, String xmlString1, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
}
/**
* @author : Chandni Shah
* @Version : 1.0
* Date : 30/06/11
*/
package ibase.webitm.ejb.fin.adv;
import java.rmi.RemoteException;
import java.sql.*;
import javax.ejb.*;
import ibase.webitm.utility.*;
import ibase.webitm.ejb.*;
import ibase.system.config.*;
import javax.ejb.Stateless;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.utility.CommonConstants;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.utility.TransIDGenerator;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.text.SimpleDateFormat;
import java.util.*;
@Stateless
public class JvConfirm extends ActionHandlerEJB implements JvConfirmLocal,JvConfirmRemote //SessionBean
{
public String confirm(String tranId,String xtraParams, String forcedFlag) throws RemoteException,ITMException
{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
ConnDriver connDriver = null;
String confirm = "" ,siteCode = "";
String errString = "" ;
FinCommon finCommon = null;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
try
{
finCommon = new FinCommon();
genericUtility = new GenericUtility();
itmDBAccessEJB = new ITMDBAccessEJB();
connDriver = new ConnDriver();
conn = connDriver.getConnectDB("DriverITM");
connDriver = null;
conn.setAutoCommit(false);
sql = "select confirmed,site_code from journal where tran_id = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
confirm = rs.getString("confirmed");
siteCode = rs.getString("site_code");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(confirm != null && "Y".equalsIgnoreCase(confirm))
{
System.out.println("The Selected transaction is already confirmed");
errString = itmDBAccessEJB.getErrorString("","VTMCONF1","","",conn);
return errString;
}
else
{
errString = this.gbfRetrieveJournal(tranId,xtraParams,conn);
}
} //end of try
catch(Exception e)
{
System.out.println("Exception ::"+e.getMessage());
throw new ITMException(e);
}
System.out.println("errString ::"+errString);
return errString;
} //end of confirm method
// gbf_retrieve_journal start
private String gbfRetrieveJournal(String tranId,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "";
ConnDriver connDriver = null;
String errString = "" ;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
HashMap journalMap = null,jourdetMap = null;
ArrayList jourdetList = new ArrayList();
double amountDetDr = 0 , amountDetCr = 0 ;
String tranType = "",siteCode= "",finEntity = "",refSer="",refNo="",reversible="";
String autoRev="",drAmt="",crAmt="",currCode= "",status = "",remarks = "",confirmed = "";
String empCodeAprv="",exchRate="",siteCodeRev="",projCode="",refLineNo="";
String linkType ="",siteCodeFor="",loginEmpCode = "";
java.sql.Timestamp tranDate = null;
java.sql.Timestamp effDate = null;
java.sql.Timestamp revDate = null;
java.sql.Timestamp revDateAct = null;
java.sql.Timestamp confDate = null;
double amt = 0;
String lineNo = "" ,acctCode = "",cctrCode ="",drcrFlag ="",remarksDet = "";
String amount = "" ,empCode="" , analCode = "",sundryType = "",sundryCode = "",projCodeDet = "";
int cnt = 0;
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
loginEmpCode = GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams,"loginCode");
System.out.println("loginEmpCode :: ::: "+loginEmpCode);
if(loginEmpCode == null || loginEmpCode.trim().length() == 0)
{
System.out.println("loginEmpCode is null");
//populateerror(9999,'populateerror')
errString = itmDBAccessEJB.getErrorString("","EMPAPRV","","",conn);
return errString;
}
//edit-start
sql = " select j.tran_type, j.tran_date,j.eff_date,j.site_code, "
+" j.fin_entity,j.ref_ser,j.ref_no,j.reversible,j.rev_date,j.auto_rev, "
+" j.rev_date__act ,j.dr_amt ,j.cr_amt ,j.curr_code ,j.status ,j.remarks ,"
+" j.confirmed ,j.conf_date ,j.emp_code__aprv ,j.exch_rate ,j.site_code__rev ,"
+" j.proj_code , j.ref_line_no ,j.link_type , j.site_code__for"
+" from journal j "
+" where j.tran_id =? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
tranType = rs.getString("tran_type");
tranDate = rs.getTimestamp("tran_date");
effDate = rs.getTimestamp("eff_date");
siteCode = rs.getString("site_code");
finEntity = rs.getString("fin_entity");
refSer = rs.getString("ref_ser");
refNo = rs.getString("ref_no");
reversible = rs.getString("reversible");
revDate = rs.getTimestamp("rev_date");
autoRev = rs.getString("auto_rev");
revDateAct = rs.getTimestamp("rev_date__act");
drAmt = rs.getString("dr_amt");
crAmt = rs.getString("cr_amt");
currCode = rs.getString("curr_code");
status = rs.getString("status");
remarks = rs.getString("remarks");
confirmed = rs.getString("confirmed");
confDate = rs.getTimestamp("conf_date");
empCodeAprv = rs.getString("emp_code__aprv");
exchRate = rs.getString("exch_rate");
siteCodeRev = rs.getString("site_code__rev");
projCode = rs.getString("proj_code");
refLineNo = rs.getString("ref_line_no");
linkType = rs.getString("link_type");
siteCodeFor = rs.getString("site_code__for");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
journalMap = new HashMap();
journalMap.put("tran_type",tranType);
journalMap.put("tran_date",tranDate);
journalMap.put("eff_date",effDate);
journalMap.put("site_code",siteCode);
journalMap.put("fin_entity",finEntity);
journalMap.put("ref_ser",refSer);
journalMap.put("ref_no",refNo);
journalMap.put("reversible",reversible);
journalMap.put("rev_date",revDate);
journalMap.put("auto_rev",autoRev);
journalMap.put("rev_date__act",revDateAct);
journalMap.put("dr_amt",drAmt);
journalMap.put("cr_amt",crAmt);
journalMap.put("curr_code",currCode);
journalMap.put("status",status);
journalMap.put("remarks",remarks);
journalMap.put("confirmed",confirmed);
journalMap.put("conf_date",confDate);
journalMap.put("emp_code__aprv",empCodeAprv);
journalMap.put("exch_rate",exchRate);
journalMap.put("site_code__rev",siteCodeRev);
journalMap.put("proj_code",projCode);
journalMap.put("ref_line_no",refLineNo);
journalMap.put("link_type",linkType);
journalMap.put("site_code__for",siteCodeFor);
//edit-end
//brow-start
sql = "select j.line_no ,j.acct_code ,j.cctr_code ,j.drcr_flag , "
+" j.amount ,j.emp_code ,j.anal_code ,j.sundry_type ,j.sundry_code,j.remarks, "
+" j.proj_code,j.site_code__jv "
+" from jourdet j "
+" where j.tran_id = ? "
+" order by line_no asc ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
while (rs.next())
{
lineNo = rs.getString("line_no");
acctCode = rs.getString("acct_code");
cctrCode = rs.getString("cctr_code");
drcrFlag = rs.getString("drcr_flag");
amount = rs.getString("amount");
empCode = rs.getString("emp_code");
analCode = rs.getString("anal_code");
sundryType = rs.getString("sundry_type");
sundryCode = rs.getString("sundry_code");
remarksDet = rs.getString("remarks");
projCodeDet = rs.getString("proj_code");
String siteCodeJv = "";
siteCodeJv = rs.getString("site_code__jv");
amt = Double.parseDouble (amount);
System.out.println("amount :::"+amt);
if ("D".equalsIgnoreCase (drcrFlag))
{
amountDetDr = amountDetDr + amt ;
}
else
{
amountDetCr = amountDetCr + amt ;
}
jourdetMap = new HashMap();
jourdetMap.put("line_no",lineNo);
jourdetMap.put("acct_code",acctCode);
jourdetMap.put("cctr_code",cctrCode);
jourdetMap.put("drcr_flag",drcrFlag);
jourdetMap.put("amount",amount);
jourdetMap.put("emp_code",empCode);
jourdetMap.put("anal_code",analCode);
jourdetMap.put("sundry_type",sundryType);
jourdetMap.put("sundry_code",sundryCode);
jourdetMap.put("remarks",remarksDet);
jourdetMap.put("proj_code",projCodeDet);
//
jourdetMap.put("site_code__jv",siteCodeJv);
//
jourdetList.add(jourdetMap);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("amountDetDr :::"+amountDetDr);
System.out.println("amountDetCr :::"+amountDetCr);
//brow-end
if ("db2".equalsIgnoreCase(CommonConstants.DB_NAME ))
{
sql = " select tran_id from journal where tran_id = ? for update ";
}
else if ( "mssql".equalsIgnoreCase(CommonConstants.DB_NAME ))
{
sql = " select tran_id from journal (updlock) where tran_id = ? " ;
}
else
{
sql = " select tran_id from journal where tran_id = ? for update nowait " ;
}
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
rs.close();
rs = null;
pstmt.close();
pstmt = null;
//if (amountDetDr.equalsIgnoreCase(amountDetCr))
if (Math.abs(amountDetDr - amountDetCr) == 0 )
{
sql =" select Count(1) from jourdet "
+" where tran_id = ? and site_code__jv is not null";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if (rs.next())
{
cnt = rs.getInt(1);
if(cnt == 0)
{
System.out.println("call for normal site");
errString = this.gbfPostJournal( tranId,journalMap, jourdetList, xtraParams, conn);
}
else
{
System.out.println("call for other site");
errString = this.otherSitePostJournal( tranId,journalMap, jourdetList, xtraParams, conn);
System.out.println("errString is : : : : : "+errString);
}
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTVCONF1","","",conn);
return errString;
}
journalMap.clear();
jourdetMap.clear();
return errString ;
}//end of try
catch(ITMException ie)
{
/*try
{
conn.rollback();
}
catch(Exception t){}
ie.printStackTrace();*/
errString = itmDBAccessEJB.getErrorString("","VTDESNCONF","","",conn);
System.out.println("Returnng String From gbfRetrieveJournal :"+errString);
throw new ITMException(ie);
}
catch(Exception e)
{
System.out.println("Exception in Confirm [gbfRetrieveJournal]"+e);
try
{
conn.rollback();
}
catch(Exception t){}
e.printStackTrace();
errString = itmDBAccessEJB.getErrorString("","VTDESNCONF","","",conn);
throw new ITMException(e);
}
finally
{
try
{
journalMap.clear();
jourdetMap.clear();
if(rs != null){rs.close();rs = null;}
if(pstmt != null){pstmt.close();pstmt = null;}
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
}
}
}// end of gbf_retrieve_journal
//gbf_post_journal - start - Normal Posting
String gbfPostJournal(String tranId,HashMap journalMap,ArrayList jourdetList,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
PreparedStatement pstmt1 = null;
PreparedStatement pstmtInsert = null;
ResultSet rs = null;
ResultSet rs1 = null;
String errString = "" ;
String sql = "",sql1 = "",sqlInsert = "";
String xmlString = "";
ConnDriver connDriver = null;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
ArrayList glTraceList = new ArrayList();
HashMap glTraceMap = null,sundryBalMap = null,detListMap = null;
String tranIDSer = "";
genericUtility = new GenericUtility();
SimpleDateFormat sdf = null;
FinCommon Fcommon = new FinCommon(); //FinCommon Fcommon = null;
String thisWin = "" ,keyStr = "",refId = "",link = "",siteFr = "",siteTo = "",siteCodeRev = "";
String revRefId = "",revRefSer = "",tranType = "",confirm = "",empCodeAprv="";
String status = "",acPay = "",ccPay = "",acRcp = "",ccRcp = "",acctCode = "";
String acct = "",IBCAAConf = "",FinEnt ="",FinEntto="",val="",siteCode = "",siteCodeJv = "";
String detSundryType = "", detSundryCode = "",detAcctCode="",detCctrCode = "",detEmpCode = "";
String detAnalCode = "",detAmount = "",detDrcrFlag= "",detRemarks= "",detProjCode = "";
int ctr = 0 , ediOption = 0;
double amt = 0;
java.sql.Timestamp toDay = null;
java.sql.Timestamp revDt = null;
StringBuffer xmlBuff = null;
try
{
sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
itmDBAccessEJB = new ITMDBAccessEJB();
empCodeAprv = GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode");
System.out.println("empCodeAprv : "+empCodeAprv);
glTraceMap = new HashMap();
for (ctr =0; ctr < jourdetList.size(); ctr++)
{
detListMap = new HashMap();
detListMap = (HashMap) jourdetList.get(ctr);
detSundryType = (String) detListMap.get("sundry_type");
detSundryCode = (String) detListMap.get("sundry_code");
detAcctCode = (String) detListMap.get("acct_code");
detCctrCode = (String) detListMap.get("cctr_code");
detEmpCode = (String) detListMap.get("emp_code");
detAnalCode = (String) detListMap.get("anal_code");
detAmount = (String) detListMap.get("amount");
detDrcrFlag = (String) detListMap.get("drcr_flag");
detRemarks = (String) detListMap.get("remarks ");
detProjCode = (String) detListMap.get("proj_code ");
glTraceMap.put("tran_date",(journalMap.get("tran_date") == null ? "":journalMap.get("tran_date")));
glTraceMap.put("eff_date",(journalMap.get("eff_date") == null ? "":journalMap.get("eff_date")));
glTraceMap.put("fin_entity",(journalMap.get("fin_entity") == null ? "":journalMap.get("fin_entity")));
glTraceMap.put("site_code",(journalMap.get("site_code") == null ? "":journalMap.get("site_code")));
glTraceMap.put("sundry_type",detSundryType);
glTraceMap.put("sundry_code",detSundryCode);
glTraceMap.put("acct_code",detAcctCode);
glTraceMap.put("cctr_code",detCctrCode);
glTraceMap.put("emp_code",detEmpCode);
glTraceMap.put("anal_code ",detAnalCode);
glTraceMap.put("curr_code",(journalMap.get("curr_code") == null ? "":journalMap.get("curr_code")));
glTraceMap.put("exch_rate",(journalMap.get("exch_rate") == null ? "":journalMap.get("exch_rate")));
if ("D".equalsIgnoreCase (detDrcrFlag))
{
glTraceMap.put("dr_amt",detAmount);
glTraceMap.put("cr_amt","0");
}
else
{
glTraceMap.put("cr_amt",detAmount);
glTraceMap.put("dr_amt","0");
}
glTraceMap.put("ref_type","F");
glTraceMap.put("ref_ser","JOUR");
glTraceMap.put("ref_id",tranId);
if(("null").equalsIgnoreCase(detRemarks))
{
glTraceMap.put("remarks ",journalMap.get("remarks"));
}
else
{
glTraceMap.put("remarks ",detRemarks);
}
glTraceMap.put("proj_code",detProjCode);
errString = Fcommon.glTraceUpdate(glTraceMap,conn);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
//Fcommon =null;
if(!("O".equalsIgnoreCase (detSundryType)))
{
sundryBalMap = new HashMap();
sundryBalMap.put("tran_date",journalMap.get("tran_date"));
sundryBalMap.put("eff_date ",journalMap.get("eff_date"));
sundryBalMap.put("fin_entity",journalMap.get("fin_entity"));
sundryBalMap.put("site_code",journalMap.get("site_code"));
sundryBalMap.put("sundry_type",detSundryType);
sundryBalMap.put("sundry_code",detSundryCode);
sundryBalMap.put("acct_code",detAcctCode);
sundryBalMap.put("cctr_code",detCctrCode);
sundryBalMap.put("curr_code ",journalMap.get("curr_code"));
sundryBalMap.put("exch_rate",journalMap.get("exch_rate"));
if ("D".equalsIgnoreCase(detDrcrFlag))
{
sundryBalMap.put("dr_amt",detAmount);
sundryBalMap.put("cr_amt",0);
}
else
{
sundryBalMap.put("cr_amt",detAmount);
sundryBalMap.put("dr_amt",0);
}
sundryBalMap.put("adv_amt", 0);
sundryBalMap.put("contact_code",Fcommon.getContactCode(detSundryType,detSundryCode,conn));
//Fcommon = null;
errString = Fcommon.gbf_sundrybal_upd(sundryBalMap,conn);
}
//Fcommon =null;
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
}// end of for loop
if (jourdetList.size() > 0 )
{
if (errString != null && errString.indexOf("Error") != -1 )
{
errString = Fcommon.checkGlTranDrCr("JOUR",tranId,conn);
}
}
if (errString != null && errString.indexOf("Error") != -1 )
{
System.out.println("Returning Result "+errString);
conn.rollback();
return errString;
}
else
{
confirm = (String)journalMap.get("confirmed");
if (!("Y".equalsIgnoreCase(confirm)))
{
sql = " update journal set confirmed = 'Y' , "
+" conf_date = ?, "
+" emp_code__aprv = ? "
+" where tran_id = ? " ;
System.out.println("SQL : "+sql);
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,new Timestamp(System.currentTimeMillis()));
pstmt.setString(2,empCodeAprv);
pstmt.setString(3,tranId);
int upd = pstmt.executeUpdate();
System.out.println(" journal Confirmed:: "+upd);
pstmt.close();
pstmt = null;
}
if("Y".equalsIgnoreCase (journalMap.get("reversible").toString()) && "Y".equalsIgnoreCase (journalMap.get("auto_rev").toString()) && "N".equalsIgnoreCase (journalMap.get("status").toString()))
{
siteFr =(String)journalMap.get("site_code");
siteTo = (String)journalMap.get("site_code__rev");
if (siteFr.equalsIgnoreCase(siteTo))
{
link = "A";
}
else
{
sql = " select link_type from ibca_pay_ctrl "
+" where site_code__from = ? and site_code__to = ?" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteFr);
pstmt.setString(2,siteTo);
rs = pstmt.executeQuery();
if(rs.next())
{
link = rs.getString(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt =null;
}
System.out.println("link :::"+link);
if ("P".equalsIgnoreCase (link) || "A".equalsIgnoreCase(link))
{
thisWin ="W_JOURNAL" ;
sql = " select key_string from transetup where upper(tran_window) = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,thisWin);
rs = pstmt.executeQuery();
if (rs.next())
{
keyStr = rs.getString(1);
}
else
{
thisWin ="GENERAL" ;
sql1 = " select key_string from transetup where upper(tran_window) = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,thisWin);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
keyStr = rs1.getString(1);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 =null;
}
System.out.println("keyStr :::"+keyStr);
rs.close();
rs = null;
pstmt.close();
pstmt =null;
sql = " select sum(amount) as debit from jourdet "
+" where tran_id = ? and drcr_flag = 'D' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if (rs.next())
{
amt = rs.getDouble(1);
}
System.out.println("amt :::"+amt);
rs.close();
rs = null;
pstmt.close();
pstmt =null;
FinEnt =(String)journalMap.get("fin_entity");
revDt = (Timestamp)journalMap.get("rev_date");
//amt = Double.parseDouble((String)journalMap.get("dr_amt"));
tranType = (String)journalMap.get("tran_type");
siteCodeRev = (String)glTraceMap.get("site_code__rev");
System.out.println("siteCode is : : :"+siteCode);
detRemarks = " Through reversal of JV :" +glTraceMap.get("ref_id");
revRefSer = "JOUR";
revRefId = tranId;
if (amt > 0 )
{
// generate key
xmlString = "<?xml version=\"1.0\"?>\r\n<Root>\r\n<header>"+
"\r\n</header><Detail1><item_ser></item_ser>"+
"\r\n<site_code>"+siteCodeRev+"</site_code>\r\n<tran_date>"+
sdf.format(new java.util.Date(revDt.getTime()))+"</tran_date>\r\n<eff_date>"+
sdf.format(new java.util.Date(revDt.getTime()))+"</eff_date>"+
"\r\n<tran_type>"+tranType+"</tran_type>\r\n<reversible>"+"N"+"</reversible>+</Detail1></Root>";
System.out.println("xmlString is :: :: :: "+xmlString);
TransIDGenerator tg = new TransIDGenerator(xmlString,"Base","oracle");
tranIDSer = tg.generateTranSeqID("JOUR","tran_id",keyStr,conn);
System.out.println("Generated Key :: "+tranIDSer);
if (tranIDSer.indexOf("ERROR") > -1 )
{
errString = itmDBAccessEJB.getErrorString("","VTTRANID","","",conn);
return errString;
}
sql = " insert into journal "
+" ( tran_id, tran_date, eff_date, fin_entity, site_code, dr_amt, cr_amt , "
+" remarks, reversible, status, confirmed, ref_ser, ref_no, curr_code, "
+" tran_type,exch_rate, chg_date, chg_user, proj_code ) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? )";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIDSer);
pstmt.setTimestamp(2,revDt);
pstmt.setTimestamp(3,revDt);
pstmt.setString(4,(String)journalMap.get("fin_entity"));
pstmt.setString(5,(String)journalMap.get("site_code"));
pstmt.setDouble(6,amt);
pstmt.setDouble(7,amt);
pstmt.setString(8,detRemarks);
pstmt.setString(9,"N");
pstmt.setString(10,"V");
pstmt.setString(11,"N");
pstmt.setString(12,revRefSer);
pstmt.setString(13,revRefId);
pstmt.setString(14,(String)journalMap.get("curr_code"));
pstmt.setString(15,tranType);
pstmt.setString(16,(String)journalMap.get("exch_rate"));
pstmt.setTimestamp(17,toDay);
pstmt.setString(18,empCodeAprv);
pstmt.setString(19,journalMap.get("proj_code").toString());
pstmt.executeUpdate();
pstmt.close();
sqlInsert = " insert into jourdet "
+" ( tran_id, line_no, sundry_type,sundry_code, acct_code,cctr_code, "
+" drcr_flag, amount, emp_code, anal_code,remarks,proj_code ) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?)";
System.out.println(" SQL for jourdet insert for acct effect :: "+sql);
pstmtInsert = conn.prepareStatement(sqlInsert);
for (ctr =0; ctr < jourdetList.size(); ctr++)
{
detListMap = new HashMap();
detListMap = (HashMap)jourdetList.get(ctr);
detSundryType =(String)detListMap.get("sundry_type");
detSundryCode =(String)detListMap.get("sundry_code");
detAcctCode =(String)detListMap.get("acct_code");
detCctrCode =(String)detListMap.get("cctr_code");
detDrcrFlag =(String)detListMap.get("drcr_flag");
detProjCode =(String)detListMap.get("proj_code ");
detEmpCode =(String)detListMap.get("emp_code ");
acctCode =(String)detListMap.get("acct_code ");
detAnalCode =(String)detListMap.get("anal_code");
amt = Double.parseDouble(detListMap.get("amount").toString());
if ("C".equalsIgnoreCase(detDrcrFlag))
{
detDrcrFlag = "D";
}
else
{
detDrcrFlag = "C";
}
if (!(siteFr).equalsIgnoreCase(siteTo))
{
sql = " select acct_code__pay, cctr_code__pay, acct_code__rcp,cctr_code__rcp "
+" from ibca_pay_ctrl "
+" where site_code__from = ? "
+" and site_code__to = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString (1,siteFr);
pstmt.setString (2,siteTo);
rs = pstmt.executeQuery();
if (rs.next())
{
acPay = rs.getString(1);
ccPay = rs.getString(2);
acRcp = rs.getString(3);
ccRcp = rs.getString(4);
}
rs.close();
rs = null;
pstmt.close();
pstmt =null;
if ( detAcctCode.equalsIgnoreCase(acPay) )
{
detAcctCode = acRcp;
detCctrCode = ccRcp ;
}
} // end if (siteFr != siteTo)
System.out.println(" SQL for journal insert :: "+sql);
//pstmtInsert = conn.prepareStatement(sqlInsert);
pstmtInsert.setString(1,tranIDSer);
System.out.println("after tranid ser :"+tranIDSer);
pstmtInsert.setInt(2,ctr);
pstmtInsert.setString(3,detSundryType);
pstmtInsert.setString(4,detSundryCode);
pstmtInsert.setString(5,detAcctCode);
pstmtInsert.setString(6,detCctrCode);
pstmtInsert.setString(7,detDrcrFlag);
pstmtInsert.setDouble(8,amt);
pstmtInsert.setString(9,detEmpCode);
pstmtInsert.setString(10,detAnalCode);
pstmtInsert.setString(11,detRemarks);
pstmtInsert.setString(12,detProjCode);
pstmt.addBatch();
//pstmtInsert.executeUpdate();
//pstmtInsert.close();
if(errString != null && errString.indexOf("Error") != -1 )
{
break;
}
}// END FOR
pstmtInsert.executeBatch();
pstmtInsert.close();
if ("P".equalsIgnoreCase(link))
{
sql = " select fin_entity from site where site_code = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString (1,siteTo);
rs = pstmt.executeQuery();
if (rs.next())
{
FinEntto = rs.getString(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt =null;
sql = " select auto_confirm from ibca_pay_ctrl "
+" where site_code__from = ? "
+" and fin_entity__from = ? "
+" and site_code__to = ? "
+" and fin_entity__to = ? "
+" and link_type = 'P' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString (1,siteFr);
pstmt.setString (2,FinEnt);
pstmt.setString (3,siteTo);
pstmt.setString (4,FinEntto);
rs = pstmt.executeQuery();
if (rs.next())
{
IBCAAConf = rs.getString(1);
}
else
{
IBCAAConf = "N";
}
rs.close();
rs = null;
pstmt.close();
pstmt =null;
System.out.println("IBCAAConf : : ::" +IBCAAConf);
if ("Y".equalsIgnoreCase(IBCAAConf))
{
errString = gbfRetrieveJournal(tranId,xtraParams,conn);
return errString;
}
else if ( siteFr.equalsIgnoreCase(siteTo))
{
IBCAAConf = "Y";
errString= gbfRetrieveJournal (tranId,xtraParams,conn);
IBCAAConf = "N";
System.out.println("IBCAAConf : : ::" +IBCAAConf);
}
} //link = "P"
}// amount
}// link type
sql = " update journal "
+" set status = 'R', "
+" rev_date__act = ? "
+" where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,revDt);
pstmt.setString(2,tranId);
int updCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
} // end of if for reversible jv
conn.commit();
errString = itmDBAccessEJB.getErrorString("","VTSTKCNF","");
System.out.println("JV Confirmed .."+errString);
} // end of else
return errString;
}// end ofTry - gbfPostJournal
catch(SQLException e)
{
System.out.println("Exception :JvConf :gbfPostJournal :SQLException :==>\n"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
catch (Exception e)
{
System.out.println("Exception :JvConf :gbfPostJournal :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null){rs.close();rs = null;}
if(rs1 != null){rs1.close();rs1 = null;}
if(pstmt != null){pstmt.close();pstmt = null;}
if(pstmt1 != null){pstmt1.close();pstmt1 = null;}
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
}//method end //gbf_post_journal - end
String otherSitePostJournal(String tranId,HashMap journalMap,ArrayList jourdetList,String xtraParams,Connection conn)throws RemoteException,ITMException
{
PreparedStatement pstmt = null;
PreparedStatement pstmt1 = null;
ResultSet rs = null;
ResultSet rs1 = null;
String errString = "" ;
String sql = "",sql1 = "";
String xmlString = "";
ConnDriver connDriver = null;
GenericUtility genericUtility = null;
ITMDBAccessEJB itmDBAccessEJB = null;
ArrayList glTraceList = new ArrayList();
HashMap glTraceMap = null,sundryBalMap = null,detListMap = null;
String tranIDSer = "";
genericUtility = new GenericUtility();
String thisWin = "" ,keyStr = "",refId = "",link = "";
String revRefSer = "",tranType = "",confirm = "",empCodeAprv="";
String FinEnt ="",siteCode = "",siteCodeJv = "",siteCodeFor = "";
String detSundryType = "", detSundryCode = "",detAcctCode="",detCctrCode = "",detEmpCode = "";
String detAnalCode = "",detDrcrFlag= "",detRemarks= "",detProjCode = "";
int ctr = 0,cnt1 = 0 ;
double drAmt = 0,crAmt = 0,detAmount = 0,totAmount = 0,amount = 0;
java.sql.Timestamp toDay = null;
java.sql.Timestamp revDt = null;
SimpleDateFormat sdf = null;
StringBuffer xmlBuff = null;
String finEntityFr = "",acctCodeRcp = "",acctCodePay = "",autoConf="";
String acctCode = "",finEntity = "";
FinCommon Fcommon = new FinCommon();
try
{
sdf = new SimpleDateFormat(genericUtility.getApplDateFormat());
itmDBAccessEJB = new ITMDBAccessEJB();
empCodeAprv = GenericUtility.getInstance().getValueFromXTRA_PARAMS(xtraParams,"loginEmpCode");
siteCode = journalMap.get("site_code").toString().trim();
siteCodeFor = journalMap.get("site_code__for").toString().trim();
/* not possible as 1 site does only debit and other does only credit.
// header site_code validation
sql = " select sum(case when drcr_flag = 'D' then amount else 0 end) debit, "
+" sum(case when drcr_flag = 'C' then amount else 0 end) credit from jourdet "
+" where tran_id = ? "
+" and site_code__jv = ? " ;
System.out.println (sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
drAmt = rs.getDouble(1);
crAmt = rs.getDouble(2);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (Math.abs(drAmt - crAmt) != 0 )
{
errString = itmDBAccessEJB.getErrorString("","VTVCONF3","","",conn);
return errString;
}
//header site_code__for validation
sql = " select sum(case when drcr_flag = 'D' then amount else 0 end) debit, "
+" sum(case when drcr_flag = 'C' then amount else 0 end) credit from jourdet "
+" where tran_id = ? "
+" and site_code__jv = ? ";
System.out.println (sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,siteCodeFor);
rs = pstmt.executeQuery();
if (rs.next())
{
drAmt = rs.getDouble(1);
crAmt = rs.getDouble(2);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if (Math.abs(drAmt - crAmt) != 0 )
{
errString = itmDBAccessEJB.getErrorString("","VTVCONF3","","",conn);
return errString;
}
*/
/*collecting data from ibca_pay_ctrl*/
sql =" select fin_entity__from,acct_code__rcp,acct_code__pay,auto_confirm,link_type"
+" from ibca_pay_ctrl where site_code__from = ? and site_code__to = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,siteCodeFor);
rs = pstmt.executeQuery();
if (rs.next())
{
finEntityFr = rs.getString(1);
acctCodeRcp = rs.getString(2);
acctCodePay = rs.getString(3);
autoConf = rs.getString(4);
link = rs.getString(5);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/* accounting effect for site code - start */
glTraceMap = new HashMap();
sql = "select count(1) from jourdet where site_code__jv = ? and tran_id = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt1 = rs.getInt(1);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
sql =" select acct_code,drcr_flag,amount,sundry_type,sundry_code,cctr_code,emp_code,anal_code,remarks,proj_code "
+" from jourdet where site_code__jv = ? and tran_id = ? " ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,tranId);
rs = pstmt.executeQuery();
while (rs.next())
{
System.out.println(sql);
acctCode = rs.getString(1);
detDrcrFlag = rs.getString(2);
amount = rs.getDouble(3);
detSundryType =rs.getString(4);
detSundryCode =rs.getString(5);
detCctrCode =rs.getString(6);
detEmpCode =rs.getString(7);
detAnalCode =rs.getString(8);
detRemarks =rs.getString(9);
detProjCode = rs.getString(10);
/* calculating total amount*/
detAmount = detAmount + amount ;
System.out.println ("detAmount is : : : "+ detAmount);
glTraceMap.put("tran_date",(journalMap.get("tran_date") == null ? "":journalMap.get("tran_date")));
glTraceMap.put("eff_date",(journalMap.get("eff_date") == null ? "":journalMap.get("eff_date")));
glTraceMap.put("fin_entity",(journalMap.get("fin_entity") == null ? "":journalMap.get("fin_entity")));
glTraceMap.put("site_code",siteCode); // from header : siteCode
glTraceMap.put("sundry_type",detSundryType);
glTraceMap.put("sundry_code",detSundryCode);
glTraceMap.put("acct_code",acctCode);
glTraceMap.put("cctr_code",detCctrCode);
glTraceMap.put("emp_code",detEmpCode);
glTraceMap.put("anal_code ",detAnalCode);
glTraceMap.put("curr_code",(journalMap.get("curr_code") == null ? "":journalMap.get("curr_code")));
glTraceMap.put("exch_rate",(journalMap.get("exch_rate") == null ? "":journalMap.get("exch_rate")));
if ("D".equalsIgnoreCase (detDrcrFlag))
{
glTraceMap.put("dr_amt",amount);
glTraceMap.put("cr_amt","0");
}
else
{
glTraceMap.put("cr_amt",amount);
glTraceMap.put("dr_amt","0");
}
glTraceMap.put("fin_entity",(journalMap.get("fin_entity") == null ? "":journalMap.get("fin_entity")));
System.out.println("fin entity inserted into gltrace 1 : : "+finEntityFr);
glTraceMap.put("ref_type","F");
glTraceMap.put("ref_ser","JOUR");
glTraceMap.put("ref_id",tranId);
if("null".equalsIgnoreCase(detRemarks))
{
glTraceMap.put("remarks ",journalMap.get("remarks"));
}
else
{
glTraceMap.put("remarks ",detRemarks);
}
glTraceMap.put("proj_code",detProjCode);
errString = Fcommon.glTraceUpdate(glTraceMap,conn);
if(errString != null && errString.trim().length() > 0)
{
return errString;
}
if(!("O".equalsIgnoreCase (detSundryType)))
{
sundryBalMap = new HashMap();
sundryBalMap.put("tran_date",journalMap.get("tran_date"));
sundryBalMap.put("eff_date ",journalMap.get("eff_date"));
sundryBalMap.put("fin_entity",journalMap.get("fin_entity"));
sundryBalMap.put("site_code",siteCode); // from header : siteCode
sundryBalMap.put("sundry_type",detSundryType);
sundryBalMap.put("sundry_code",detSundryCode);
sundryBalMap.put("acct_code",acctCode);
sundryBalMap.put("cctr_code",detCctrCode);
sundryBalMap.put("curr_code ",journalMap.get("curr_code"));
sundryBalMap.put("exch_rate",journalMap.get("exch_rate"));
if ("D".equalsIgnoreCase(detDrcrFlag))
{
sundryBalMap.put("dr_amt",amount);
sundryBalMap.put("cr_amt","0");
}
else
{
sundryBalMap.put("cr_amt",amount);
sundryBalMap.put("dr_amt","0");
}
sundryBalMap.put("adv_amt","0");
sundryBalMap.put("contact_code",Fcommon.getContactCode(detSundryType,detSundryCode,conn));
errString = Fcommon.gbf_sundrybal_upd(sundryBalMap,conn);
if(errString != null && errString.indexOf("Error") != -1 )
{
break;
}
}
if(errString != null && errString.indexOf("Error") != -1 )
{
break;
}
} // end of while
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt1 > 0 )
{
glTraceMap.put("tran_date",(journalMap.get("tran_date") == null ? "":journalMap.get("tran_date")));
glTraceMap.put("eff_date",(journalMap.get("eff_date") == null ? "":journalMap.get("eff_date")));
glTraceMap.put("fin_entity",(journalMap.get("fin_entity") == null ? "":journalMap.get("fin_entity")));
glTraceMap.put("site_code",siteCode); // from header : siteCode
glTraceMap.put("sundry_type",detSundryType);
glTraceMap.put("sundry_code",detSundryCode);
glTraceMap.put("acct_code",acctCodePay); //ibca-pay acctcode
glTraceMap.put("cctr_code",detCctrCode);
glTraceMap.put("emp_code",detEmpCode);
glTraceMap.put("anal_code ",detAnalCode);
glTraceMap.put("curr_code",(journalMap.get("curr_code") == null ? "":journalMap.get("curr_code")));
glTraceMap.put("exch_rate",(journalMap.get("exch_rate") == null ? "":journalMap.get("exch_rate")));
if ("D".equalsIgnoreCase (detDrcrFlag))
{
glTraceMap.put("dr_amt","0");
glTraceMap.put("cr_amt",detAmount);
}
else
{
glTraceMap.put("dr_amt",detAmount);
glTraceMap.put("cr_amt","0");
}
glTraceMap.put("ref_type","F");
glTraceMap.put("ref_ser","JOUR");
glTraceMap.put("ref_id",tranId);
if("null".equalsIgnoreCase(detRemarks))
{
glTraceMap.put("remarks ",journalMap.get("remarks"));
}
else
{
glTraceMap.put("remarks ",detRemarks);
}
glTraceMap.put("proj_code",detProjCode);
errString = Fcommon.glTraceUpdate(glTraceMap,conn);
if(!("O".equalsIgnoreCase (detSundryType)))
{
sundryBalMap = new HashMap();
sundryBalMap.put("tran_date",journalMap.get("tran_date"));
sundryBalMap.put("eff_date ",journalMap.get("eff_date"));
sundryBalMap.put("fin_entity",journalMap.get("fin_entity"));
sundryBalMap.put("site_code",siteCode); // from header : siteCode
sundryBalMap.put("sundry_type",detSundryType);
sundryBalMap.put("sundry_code",detSundryCode);
sundryBalMap.put("acct_code",acctCodePay);//ibca-pay acctcode
sundryBalMap.put("cctr_code",detCctrCode);
sundryBalMap.put("curr_code ",journalMap.get("curr_code"));
sundryBalMap.put("exch_rate",journalMap.get("exch_rate"));
if ("D".equalsIgnoreCase(detDrcrFlag))
{
sundryBalMap.put("dr_amt","0");
sundryBalMap.put("cr_amt",detAmount);
}
else
{
sundryBalMap.put("cr_amt","0");
sundryBalMap.put("dr_amt",detAmount);
}
sundryBalMap.put("adv_amt","0");
sundryBalMap.put("contact_code",Fcommon.getContactCode(detSundryType,detSundryCode,conn));
errString = Fcommon.gbf_sundrybal_upd(sundryBalMap,conn);
}
}
/* accounting effect for site code - end */
if (jourdetList.size() > 0 )
{
if (errString != null && errString.indexOf("Error") != -1 )
{
errString = Fcommon.checkGlTranDrCr("JOUR",tranId,conn);
}
}
confirm = journalMap.get("confirmed").toString().trim();
if (!("Y".equalsIgnoreCase(confirm)))
{
sql = " update journal set confirmed = 'Y' , "
+" conf_date = ?, "
+" emp_code__aprv = ? "
+" where tran_id = ? " ;
System.out.println("SQL : "+sql);
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1,new Timestamp(System.currentTimeMillis()));
pstmt.setString(2,empCodeAprv);
pstmt.setString(3,tranId);
int upd = pstmt.executeUpdate();
System.out.println("journal Confirmed:: "+upd);
pstmt.close();
pstmt = null;
}
if ("P".equalsIgnoreCase (link) || "A".equalsIgnoreCase(link)) // link is link_type from ibca_pay_ctrl
{
//code to find key_string for calling TransIDGenerator - generateTranSeqID.
thisWin ="W_JOURNAL" ;
sql = " select key_string from transetup where upper(tran_window) = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,thisWin);
rs = pstmt.executeQuery();
if(rs.next())
{
keyStr = rs.getString(1);
}
else
{
thisWin ="GENERAL" ;
sql1 = " select key_string from transetup where upper(tran_window) = ? ";
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,thisWin);
rs1 = pstmt1.executeQuery();
if (rs1.next())
{
keyStr = rs1.getString(1);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 =null;
}
rs.close();
rs = null;
pstmt.close();
pstmt =null;
System.out.println("keyStr :::"+keyStr);
FinEnt =(String)journalMap.get("fin_entity");
revDt = (Timestamp)journalMap.get("tran_date");
tranType = (String)journalMap.get("tran_type");
revRefSer = "JOUR";
xmlString = "<?xml version=\"1.0\"?>\r\n<Root>\r\n<header>"+
"\r\n</header><Detail1><item_ser></item_ser>"+
"\r\n<site_code>"+siteCodeFor+"</site_code>\r\n<tran_date>"+sdf.format(new java.util.Date(revDt.getTime()))+"</tran_date></Detail1></Root>";
System.out.println("xmlBuff : : : : :"+xmlString);
// generating new tranId TransIDGenerator
CommonConstants.setIBASEHOME();
TransIDGenerator tg = new TransIDGenerator(xmlString,"Base",CommonConstants.DB_NAME);
tranIDSer = tg.generateTranSeqID("JOUR","tran_id",keyStr,conn);
//System.out.println("connection status =["+conn.isClosed()+"]");
System.out.println("Generated Key :: "+tranIDSer);
if (tranIDSer.indexOf("ERROR") > -1 )
{
errString = itmDBAccessEJB.getErrorString("","VTTRANID","","",conn);
}
sql = " insert into journal "
+" (tran_id, tran_date, eff_date, fin_entity, site_code, dr_amt, cr_amt , "
+" remarks, reversible, status,confirmed, ref_ser, ref_no, curr_code, "
+" tran_type,exch_rate, chg_date, chg_user, proj_code ) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? )";
System.out.println("SQL for journal insert :: "+sql);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIDSer); //new generated tranId
pstmt.setTimestamp(2,revDt);
pstmt.setTimestamp(3,revDt);
pstmt.setString(4,(String)journalMap.get("fin_entity"));
pstmt.setString(5,(String)journalMap.get("site_code"));
pstmt.setDouble(6,detAmount); // set total amount of detail.
pstmt.setDouble(7,detAmount);
pstmt.setString(8,detRemarks);
pstmt.setString(9,"N");
pstmt.setString(10,"V");
pstmt.setString(11,"N");
pstmt.setString(12,revRefSer);
pstmt.setString(13,tranId); // ref_no as a original tran_id
pstmt.setString(14,(String)journalMap.get("curr_code"));
pstmt.setString(15,tranType);
pstmt.setString(16,(String)journalMap.get("exch_rate"));
pstmt.setTimestamp(17,toDay);
pstmt.setString(18,empCodeAprv);
pstmt.setString(19,detProjCode);
pstmt.executeUpdate();
pstmt.close();
sql1 = "select count(1) from jourdet where site_code__jv = ? and tran_id = ? " ;
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,siteCodeFor);
pstmt1.setString(2,tranId);
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
cnt1 = rs1.getInt(1);
}
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
/* accounting effect for site code for - auto generation site - start */
sql = " insert into jourdet "
+" ( tran_id, line_no, sundry_type,sundry_code, acct_code,cctr_code, "
+" drcr_flag, amount, emp_code, anal_code, remarks,proj_code ) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?)";
System.out.println(" SQL for jourdet insert for acct effect :: "+sql);
pstmt = conn.prepareStatement(sql);
sql1 =" select acct_code,drcr_flag,amount,sundry_type,sundry_code,cctr_code,emp_code,anal_code,remarks,proj_code "
+" from jourdet where site_code__jv = ? and tran_id = ?" ;
pstmt1 = conn.prepareStatement(sql1);
pstmt1.setString(1,siteCodeFor);
pstmt1.setString(2,tranId);
rs = pstmt1.executeQuery();
while (rs.next())
{
detAcctCode = rs.getString(1);
detDrcrFlag = rs.getString(2);
amount = rs.getDouble(3);
detSundryType =rs.getString(4);
detSundryCode =rs.getString(5);
detCctrCode =rs.getString(6);
detEmpCode =rs.getString(7);
detAnalCode =rs.getString(8);
detRemarks =rs.getString(9);
detProjCode = rs.getString(10);
/* calculating total amount*/
totAmount = totAmount + amount ;
System.out.println ("detAmount is : : : "+ totAmount);
pstmt.setString(1,tranIDSer); // new generated tran_id
System.out.println("after tranid ser :"+tranIDSer);
pstmt.setInt(2,ctr);
pstmt.setString(3,detSundryType);
pstmt.setString(4,detSundryCode);
pstmt.setString(5,detAcctCode);
pstmt.setString(6,detCctrCode);
pstmt.setString(7,detDrcrFlag);
pstmt.setDouble(8,amount);
pstmt.setString(9,(String)journalMap.get("emp_code"));
pstmt.setString(10,(String)journalMap.get("anal_code"));
pstmt.setString(11,detRemarks);
pstmt.setString(12,detProjCode);
pstmt.addBatch();
ctr++;
//pstmt.executeUpdate();
//pstmt.close();
if(errString != null && errString.indexOf("Error") != -1 )
{
break;
}
} //end of while
pstmt.executeBatch();
pstmt.close();
/* A/C effect for ibca-rcp acctcode with total amount */
if(cnt1 > 0)
{
if("C".equalsIgnoreCase(detDrcrFlag))
{
detDrcrFlag = "D";
}
else
{
detDrcrFlag = "C";
}
System.out.println("detDrcrFlag AFTER SWAP insert:: "+detDrcrFlag);
sql = "insert into jourdet "
+" ( tran_id, line_no, sundry_type,sundry_code, acct_code,cctr_code, "
+" drcr_flag, amount, emp_code, anal_code,remarks,proj_code ) "
+" values (?,?,?,?,?,?,?,?,?,?,?,?)";
System.out.println(" SQL for jourdet insert with total amount:: "+sql);
System.out.println(" totAmount in insert :: "+totAmount);
System.out.println(" tranIDSer in insert :: "+tranIDSer);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIDSer); // new generated tran_id
pstmt.setInt(2,cnt1);
pstmt.setString(3,detSundryType);
pstmt.setString(4,detSundryCode);
pstmt.setString(5,acctCodeRcp); // IBCA-RCP ACCTCODE
pstmt.setString(6,detCctrCode);
pstmt.setString(7,detDrcrFlag);
pstmt.setDouble(8,totAmount);
pstmt.setString(9,(String)glTraceMap.get("emp_code"));
pstmt.setString(10,(String)glTraceMap.get("anal_code"));
pstmt.setString(11,detRemarks);
pstmt.setString(12,(String)glTraceMap.get("proj_code"));
pstmt.executeUpdate();
pstmt.close();
}
/* accounting effect for site code for - auto generation site - end */
/* in original tran id journal set ref_no = new created tran_id */
sql = " update journal "
+" set ref_no = ? "
+" where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranIDSer);
pstmt.setString(2,tranId);
int updCnt = pstmt.executeUpdate();
pstmt.close();
pstmt = null;
/*calling gbfPostJournal - (Normal Posting) by passing tranIDSer - (new generated tran_id)*/
errString = this.gbfPostJournal( tranIDSer,journalMap,jourdetList,xtraParams,conn);
return errString;
}// A or P
}// end ofTry - otherSitePostJournal
catch(SQLException e)
{
System.out.println("Exception :JvConf :otherSitePostJournal :SQLException :==>\n"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
catch (Exception e)
{
System.out.println("Exception :JvConf :otherSitePostJournal :==>"+e.getMessage());
errString = GenericUtility.getInstance().createErrorString(e);
throw new ITMException(e);
}
finally
{
try
{
if(rs != null){rs.close();rs = null;}
if(rs1 != null){rs1.close();rs1 = null;}
if(pstmt != null){pstmt.close();pstmt = null;}
if(pstmt1 != null){pstmt1.close();pstmt1 = null;}
if(conn != null)
{
conn.close();
conn = null;
}
}
catch(Exception e)
{
System.out.println("Exception : "+e);e.printStackTrace();
throw new ITMException(e);
}
}
return errString;
}//method end
} //end of class
package ibase.webitm.ejb.fin.adv;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.*;
import java.rmi.RemoteException;
import java.sql.*;
//import javax.ejb.EJBObject;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.ejb.Local; // added for ejb3
@Local
public interface JvConfirmLocal extends ActionHandlerLocal//,EJBObject
{
public String confirm(String tranID, String xtraParams, String forcedFlag) throws RemoteException,ITMException;
}
package ibase.webitm.ejb.fin.adv;
import ibase.webitm.utility.ITMException;
import ibase.webitm.ejb.*;
import java.rmi.RemoteException;
import java.sql.*;
//import javax.ejb.EJBObject;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.ejb.Remote; // added for ejb3
@Remote // added for ejb3
public interface JvConfirmRemote extends ActionHandlerRemote//, EJBObject
{
public String confirm(String tranID, String xtraParams, String forcedFlag) throws RemoteException,ITMException;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment