Commit a84c44f6 authored by wansari's avatar wansari

F17BBAS001 added GST reconcilation wizard components


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@105868 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 3ec76937
/*
* Author: Wasim Ansari
* Date: 02-MAY-2016
* Request: F17BBAS001 (GST Wizard)
*/
package ibase.webitm.bean.gst;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.utility.ITMException;
import java.io.File;
public class GstWizBean
{
E12GenericUtility genericUtility = new E12GenericUtility();
private String objName = "";
private String user_lang ="en";
private String user_country = "US";
public GstWizBean(String objName) throws ITMException
{
try
{
this.objName = objName;
}
catch (Exception e)
{
throw new ITMException(e);
}
}
public GstWizBean() {
}
public String previousForm( String formNo, String xmlData ) throws ITMException
{
String retHtmlData = null;
try
{
System.out.println("In Method : [previousForm]");
System.out.println("xmlString : ["+ xmlData +"]");
String xslFileName = getXSLFileName( this.objName + formNo + "_wiz_" + this.user_lang + "_" + this.user_country + "_" + "A" + ".xsl" );
retHtmlData = (genericUtility).transformToString( xslFileName, xmlData, CommonConstants.APPLICATION_CONTEXT + File.separator + "temp", "Output", ".html" );
}
catch (Exception e)
{
throw new ITMException(e);
}
return retHtmlData;
}
private String getXSLFileName( String xslFileName )throws ITMException
{
String retFileName = null;
try
{
String defaultPath = null;
if( CommonConstants.APPLICATION_CONTEXT != null )
{
defaultPath = CommonConstants.APPLICATION_CONTEXT + CommonConstants.ITM_CONTEXT + File.separator;
}
else
{
defaultPath = ".." + File.separator + "webapps" + File.separator + "ibase" + File.separator + CommonConstants.ITM_CONTEXT + File.separator;
}
File xslPath = new File( defaultPath + File.separator + "xsl" + File.separator + CommonConstants.THEME + File.separator + "WIZARD"+ File.separator + "Galaxy");
if ( !xslPath.exists() )
{
xslPath.mkdir();
}
System.out.println( " xslPath [" + xslPath +"] xslFileName ["+xslFileName +"]");
File xslFile = new File(xslPath , xslFileName);
if( xslFile.exists() )
{
retFileName = xslFile.getAbsolutePath();
}
else
{
throw new ITMException( new Exception( retFileName + " Wizard XSL file Not Found") );
}
}
catch (Exception e)
{
throw new ITMException(e);
}
return retFileName;
}
}
/*
* Author: Wasim Ansari
* Date: 02-MAY-2016
* Request: F17BBAS001 (GST Wizard)
*/
package ibase.webitm.ejb.gst;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.dis.DistCommon;
import ibase.webitm.ejb.dis.DistUtility;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Map;
import javax.ejb.Stateless;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@Stateless
public class GSTRecoWizEJB extends ValidatorEJB implements GSTRecoWizEJBLocal, GSTRecoWizEJBRemote
{
E12GenericUtility genericUtility = new E12GenericUtility();
DistCommon distCommon = new DistCommon();
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
public GSTRecoWizEJB() {
// TODO Auto-generated constructor stub
}
@Override
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException, ITMException
{
String errString = "";
Document dom = null;
Document dom1 = null;
Document dom2 = null;
try
{
System.out.println("@@@ wfvalData \n xmlString : ["+ xmlString+ "] \n xmlString1 : ["+ xmlString1 +"] \n xmlString2 : ["+ xmlString2 +"] "
+ "\n objContext["+objContext+"] \n editFlag["+editFlag+"] \n xtraParams["+xtraParams+"]");
if(xmlString != null && xmlString.trim().length()!=0)
{
dom = genericUtility.parseString(xmlString);
}
if(xmlString1 != null && xmlString1.trim().length()!=0)
{
dom1 = genericUtility.parseString(xmlString1);
}
if(xmlString2 != null && xmlString2.trim().length()!=0)
{
dom2 = genericUtility.parseString(xmlString2);
}
errString = wfValData(dom,dom1,dom2,objContext,editFlag,xtraParams);
}
catch(Exception e)
{
throw new ITMException(e);
}
return(errString);
}
@Override
public String wfValData(Document dom, Document dom1, Document dom2, String objContext, String editFlag, String xtraParams)throws RemoteException, ITMException
{
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
Node childNode = null;
String childNodeName = null;
String userId = "";
String errCode = "";
String errorType = "";
String errString = "";
int ctr=0;
int childNodeListLength;
int currentFormNo = 0;
long cnt = 0;
ArrayList<String> errList = new ArrayList<String>();
ArrayList<String> errFields = new ArrayList<String>();
Connection conn = null;
PreparedStatement pstmt = null ;
ResultSet rs = null;
boolean flag = false;
String sql = "",columnValue = "",prdCode = "",gstin = "";
int count = 0;
StringBuffer errStringXml = new StringBuffer("<?xml version = \"1.0\"?> \r\n <Root> <Errors>");
try
{
conn = getConnection();
if(objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
}
switch(currentFormNo)
{
case 1:
{
prdCode = checkNullAndTrim(genericUtility.getColumnValue("prd_code", dom));
gstin = checkNullAndTrim(genericUtility.getColumnValue("gstin", dom));
if(prdCode.length() == 0)
{
errString = itmDBAccessEJB.getErrorString("","VMPRDCD","","",conn);
return errString;
}
else
{
sql = " SELECT COUNT(*) FROM PERIOD WHERE CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, prdCode);
rs = pstmt.executeQuery();
if (rs.next())
{
count = rs.getInt(1);
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","VMPRDNTDF","","",conn);
return errString;
}
}
if(gstin.length() == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTPERDNL","","",conn);
return errString;
}
count = 0;
sql = " SELECT COUNT(*) FROM GST_DATA_HDR WHERE TAX_REG_NO = ? AND PRD_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, gstin);
pstmt.setString(2, prdCode);
rs = pstmt.executeQuery();
if (rs.next())
{
count = rs.getInt(1);
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if(count == 0)
{
errString = itmDBAccessEJB.getErrorString("","VTRECGSTIN","","",conn);
return errString;
}
}//End case1
break;
}
int errListSize = errList.size();
cnt = 0;
String errFldName = null;
if(errList != null && errListSize > 0)
{
for(cnt = 0; cnt < errListSize; cnt ++)
{
errCode = errList.get((int) cnt);
errFldName = errFields.get((int) cnt);
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 + 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 of try
catch(Exception e)
{
System.out.println("Exception: wfValData GSTWizardEJB: ==>\n"+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(conn != null)
{
conn.close();conn = null;
}
}
catch(Exception d)
{
d.printStackTrace();
throw new ITMException(d);
}
}
errString = errStringXml.toString();
return errString;
}
/**
* select error description from MESSAGES
* @param conn
* @param errorCode
* @return
*/
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 getError(String message,String Code, Connection conn) throws ITMException, Exception
{
String mainStr ="";
try
{
String errString = "";
errString = new ITMDBAccessEJB().getErrorString("",Code,"","",conn);
String begPart = errString.substring(0,errString.indexOf("</description>"));
String endDesc = errString.substring(errString.indexOf("</description>"),errString.length());
mainStr = begPart + message + endDesc;
begPart = null;
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return mainStr;
}
@Override
public String itemChanged(String xmlString, String xmlString1, String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException
{
Document dom1 = null;
Document dom = null;
Document dom2 = null;
String valueXmlString = "";
try
{
System.out.println("@@@Item Change \n xmlString : ["+ xmlString+ "] \n xmlString1 : ["+ xmlString1 +"] \n xmlString2 : ["+ xmlString2 +"] "
+ "\n objContext["+objContext+"] \n editFlag["+editFlag+"] \n xtraParams["+xtraParams+"]");
if(xmlString != null && xmlString.trim().length()!=0)
{
dom = genericUtility.parseString(xmlString);
}
if(xmlString1 != null && xmlString1.trim().length()!=0)
{
dom1 = genericUtility.parseString(xmlString1);
}
if(xmlString2 != null && xmlString2.trim().length()!=0)
{
dom2 = genericUtility.parseString(xmlString2);
}
valueXmlString = itemChanged(dom,dom1,dom2,objContext,currentColumn,editFlag,xtraParams);
}
catch(Exception e)
{
valueXmlString = genericUtility.createErrorString(e);
}
return (valueXmlString);
}
@Override
public String itemChanged(Document dom, Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException
{
Connection conn = null;
PreparedStatement pstmt = null,pstmtDet = null;
ResultSet rs = null,rsDet = null;
int currentFormNo = 0;
StringBuffer valueXmlString = new StringBuffer();
String currDate = "",userId = "",chgTerm = "",loginSiteCode = "",empCode = "";
String prdCode = "",gstin = "";
String sql = "";
java.util.Map<String,ArrayList> suppMap = new java.util.HashMap<String,ArrayList>();
ArrayList<String> invoiceIDList = new ArrayList<String>();
java.util.Map<String,String> suppDetails = new java.util.HashMap<String,String>();
String orderNo = "",tranID = "",suppCode = "",invoiceID = "",suppName = "",suppAddr = "",suppImgPath = "",submissionType = "";
int id = 1,gstrDataCount = 0,gstrDataCountTemp = 0;
int domIDDetail2 = 0;
int domIDInvoice = 0;
int domIDGstr = 0;
try
{
conn = getConnection();
//currDate = getCurrdateAppFormat();
userId = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginCode" );
chgTerm = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "chgTerm" );
loginSiteCode = genericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginSiteCode" );
empCode = checkNullAndTrim(genericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginEmpCode" ));
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 = new StringBuffer( "<?xml version=\"1.0\"?><Root><Header><editFlag>" );
valueXmlString.append( editFlag ).append( "</editFlag></Header>" );
System.out.println("currentColumn["+currentColumn+"] && currentFormNo["+currentFormNo+"]");
switch ( currentFormNo )
{
case 1:
{
valueXmlString.append("<Detail1 domID='1' selected = 'N'>\r");
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ))
{
valueXmlString.append("<prd_code>").append("<![CDATA[]]>").append("</prd_code>");
valueXmlString.append("<gstin>").append("<![CDATA[]]>").append("</gstin>");
}
valueXmlString.append("</Detail1>\r\n");
}
break;
case 2 :
{
prdCode = genericUtility.getColumnValue("prd_code", dom1);
gstin = genericUtility.getColumnValue("gstin", dom1);
System.out.println("Period code ["+prdCode+"] gstin ["+gstin+"]");
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ))
{
valueXmlString.append("<Detail2 domID='0'>");
valueXmlString.append("<prd_code>").append("<![CDATA["+prdCode+"]]>").append("</prd_code>");
valueXmlString.append("<gstin>").append("<![CDATA["+gstin+"]]>").append("</gstin>");
valueXmlString.append("</Detail2>");
/* sql = " SELECT P.SUPP_CODE,I.INVOICE_ID FROM PORCP P, SUPPLIER S, INVOICE I, GST_DATA_HDR G WHERE "
+" P.SUPP_CODE = S.SUPP_CODE "
+" AND P.INVOICE_NO = I.INVOICE_ID "
+" AND G.ORDER_NO = P.INVOICE_NO"
+" AND G.TAX_REG_NO = ? AND G.PRD_CODE = ? AND G.REC_TYPE = '1' AND G.RECO_STATUS ! = 'M' ";*/
sql = " SELECT P.SUPP_CODE,I.INVOICE_ID FROM PORCP P, SUPPLIER S, INVOICE I, GST_DATA_HDR G WHERE "
+" P.SUPP_CODE = S.SUPP_CODE "
+" AND P.INVOICE_NO = I.INVOICE_ID "
+" AND G.DOC_NO = P.INVOICE_NO"
+" AND G.TAX_REG_NO = ? AND G.PRD_CODE = ? AND G.SUBMISSION_TYPE = 'P' AND G.RECO_STATUS ! = 'M' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, gstin);
pstmt.setString(2, prdCode);
rs = pstmt.executeQuery();
while (rs.next())
{
suppCode = checkNullAndTrim(rs.getString("SUPP_CODE"));
invoiceID = rs.getString("INVOICE_ID");
if (suppMap.containsKey(suppCode))
{
invoiceIDList = (ArrayList) suppMap.get(suppCode);
invoiceIDList.add(invoiceID);
suppMap.put(suppCode, invoiceIDList);
}
else
{
invoiceIDList = new ArrayList();
invoiceIDList.add(invoiceID);
suppMap.put(suppCode, invoiceIDList);
}
}
if ( rs != null )
{
rs.close();rs = null;
}
if( pstmt != null )
{
pstmt.close();pstmt = null;
}
java.util.Iterator itr = suppMap.entrySet().iterator();
while(itr.hasNext())
{
Map.Entry pair = (Map.Entry)itr.next();
suppCode = (String) pair.getKey();
invoiceIDList = (ArrayList) pair.getValue();
System.out.println("SuppCode["+suppCode+"]-->>Invoice ID List ["+invoiceIDList+"]");
domIDDetail2++;
valueXmlString.append("<Detail2 domID='"+domIDDetail2+"' selected = 'N'>");//Start Multiple suppliers
sql = " SELECT SH_NAME,ADDR1 FROM SUPPLIER WHERE SUPP_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, suppCode);
rs = pstmt.executeQuery();
if (rs.next())
{
suppName = checkNullAndTrim(rs.getString("SH_NAME"));
suppAddr = checkNullAndTrim(rs.getString("ADDR1"));
}
if(rs!=null)
{
rs.close();rs=null;
}
if(pstmt!=null)
{
pstmt.close();pstmt=null;
}
DistUtility utility = new DistUtility();
suppImgPath = utility.getImagePath("w_gstWiz", suppCode , suppName , "customer", null);
valueXmlString.append("<supp_code>").append("<![CDATA["+suppCode+"]]>").append("</supp_code>");
valueXmlString.append("<supp_name>").append("<![CDATA["+suppName+"]]>").append("</supp_name>");
valueXmlString.append("<supp_addr>").append("<![CDATA["+suppAddr+"]]>").append("</supp_addr>");
valueXmlString.append("<supp_img_path>").append("<![CDATA["+suppImgPath+"]]>").append("</supp_img_path>");
valueXmlString.append("<Invoices>");//Start Multiple invoice inside single supplier
for(int i = 0; i< invoiceIDList.size(); i++)
{
domIDInvoice = i + 1;
invoiceID = (String) invoiceIDList.get(i);
valueXmlString.append("<invoice domID='"+domIDInvoice+"'>");
/*sql = " SELECT I.INVOICE_ID,I.TRAN_DATE,I.SALE_ORDER,I.INV_AMT,I.TAX_AMT,G.RECO_STATUS FROM INVOICE I,GST_DATA_HDR G "
+ " WHERE I.INVOICE_ID = G.ORDER_NO AND G.REC_TYPE = '1' AND I.INVOICE_ID = ? ";*/
sql = " SELECT I.INVOICE_ID,I.TRAN_DATE,I.SALE_ORDER,I.INV_AMT,I.TAX_AMT,G.RECO_STATUS FROM INVOICE I,GST_DATA_HDR G "
+ " WHERE I.INVOICE_ID = G.DOC_NO AND G.SUBMISSION_TYPE = 'P' AND I.INVOICE_ID = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, invoiceID);
rs = pstmt.executeQuery();
if (rs.next())
{
valueXmlString.append("<invoice_id>").append("<![CDATA["+invoiceID+"]]>").append("</invoice_id>");
valueXmlString.append("<tran_date>").append("<![CDATA["+genericUtility.getValidDateString(rs.getString("tran_date"), genericUtility.getDBDateTimeFormat(), genericUtility.getApplDateFormat())+"]]>").append("</tran_date>");
valueXmlString.append("<sale_order>").append("<![CDATA["+rs.getString("SALE_ORDER")+"]]>").append("</sale_order>");
valueXmlString.append("<inv_amt>").append("<![CDATA["+rs.getString("INV_AMT")+"]]>").append("</inv_amt>");
valueXmlString.append("<tax_amt>").append("<![CDATA["+rs.getString("TAX_AMT")+"]]>").append("</tax_amt>");
valueXmlString.append("<reco_status>").append("<![CDATA["+rs.getString("RECO_STATUS")+"]]>").append("</reco_status>");
}
if(rs!=null)
{
rs.close();rs=null;
}
if(pstmt!=null)
{
pstmt.close();pstmt=null;
}
for(int j = 1 ;j<=2 ; j++)
{
gstrDataCount = 0;
domIDGstr = 0;
if(j==1)
{
submissionType = "P";
}
if(j==2)
{
submissionType = "D";
}
/*sql = " SELECT D.TRAN_ID,D.LINE_NO,D.STATUS,D.GS_CODE,D.TAXABLE_AMT,D.IGST_PERC,D.IGST_AMT,D.CGST_PERC,D.CGST_AMT, "
+ " D.SGST_PERC,D.SGST_AMT,D.GS_DESCR,D.UNIT,D.QUANTITY,D.SUPPLY_TYPE,D.CESS_PERC,D.CESS_AMT,D.REMARKS "
+ " FROM GST_DATA_HDR H, GST_DATA_DET D WHERE H.TRAN_ID = D.TRAN_ID "
+ " AND H.ORDER_NO = ? AND H.REC_TYPE = ? ORDER BY D.GS_CODE ";*/
sql = " SELECT D.TRAN_ID,D.LINE_NO,D.STATUS,D.GS_CODE,D.TAXABLE_AMT,D.IGST_PERC,D.IGST_AMT,D.CGST_PERC,D.CGST_AMT, "
+ " D.SGST_PERC,D.SGST_AMT,D.GS_DESCR,D.UNIT,D.QUANTITY,D.SUPPLY_TYPE,D.CESS_PERC,D.CESS_AMT,D.REMARKS "
+ " FROM GST_DATA_HDR H, GST_DATA_DET D WHERE H.TRAN_ID = D.TRAN_ID "
+ " AND H.DOC_NO = ? AND H.SUBMISSION_TYPE = ? ORDER BY D.GS_CODE ";
pstmtDet = conn.prepareStatement(sql);
pstmtDet.setString(1, invoiceID);
//pstmtDet.setString(2, String.valueOf(j));
pstmtDet.setString(2, submissionType);
rsDet = pstmtDet.executeQuery();
while (rsDet.next())
{
gstrDataCount++;
domIDGstr++;
valueXmlString.append("<gstr"+j+" domID='"+domIDGstr+"'>");
valueXmlString.append("<tran_id>").append("<![CDATA["+rsDet.getString("TRAN_ID")+"]]>").append("</tran_id>");
valueXmlString.append("<line_no>").append("<![CDATA["+rsDet.getString("LINE_NO")+"]]>").append("</line_no>");
valueXmlString.append("<status>").append("<![CDATA["+rsDet.getString("STATUS")+"]]>").append("</status>");
valueXmlString.append("<gs_code>").append("<![CDATA["+rsDet.getString("GS_CODE")+"]]>").append("</gs_code>");
valueXmlString.append("<taxable_amt>").append("<![CDATA["+rsDet.getString("TAXABLE_AMT")+"]]>").append("</taxable_amt>");
valueXmlString.append("<igst_perc>").append("<![CDATA["+rsDet.getString("IGST_PERC")+"]]>").append("</igst_perc>");
valueXmlString.append("<igst_amt>").append("<![CDATA["+rsDet.getString("IGST_AMT")+"]]>").append("</igst_amt>");
valueXmlString.append("<cgst_perc>").append("<![CDATA["+rsDet.getString("CGST_PERC")+"]]>").append("</cgst_perc>");
valueXmlString.append("<cgst_amt>").append("<![CDATA["+rsDet.getString("CGST_AMT")+"]]>").append("</cgst_amt>");
valueXmlString.append("<sgst_perc>").append("<![CDATA["+rsDet.getString("SGST_PERC")+"]]>").append("</sgst_perc>");
valueXmlString.append("<sgst_amt>").append("<![CDATA["+rsDet.getString("SGST_AMT")+"]]>").append("</sgst_amt>");
valueXmlString.append("<gs_descr>").append("<![CDATA["+rsDet.getString("GS_DESCR")+"]]>").append("</gs_descr>");
valueXmlString.append("<unit>").append("<![CDATA["+rsDet.getString("UNIT")+"]]>").append("</unit>");
valueXmlString.append("<quantity>").append("<![CDATA["+rsDet.getString("QUANTITY")+"]]>").append("</quantity>");
valueXmlString.append("<supply_type>").append("<![CDATA["+rsDet.getString("SUPPLY_TYPE")+"]]>").append("</supply_type>");
valueXmlString.append("<cess_perc>").append("<![CDATA["+rsDet.getString("CESS_PERC")+"]]>").append("</cess_perc>");
valueXmlString.append("<cess_amt>").append("<![CDATA["+rsDet.getString("CESS_AMT")+"]]>").append("</cess_amt>");
valueXmlString.append("<remarks>").append("<![CDATA["+rsDet.getString("REMARKS")+"]]>").append("</remarks>");
valueXmlString.append("</gstr"+j+">");
}
if ( rsDet != null )
{
rsDet.close();rsDet = null;
}
if( pstmtDet != null )
{
pstmtDet.close();pstmtDet = null;
}
System.out.println("J-->["+j+"] and gstrDataCount--["+gstrDataCount+"]");
if(j == 2)
{
gstrDataCount = gstrDataCountTemp - gstrDataCount;
for(int x = 1 ;x<=gstrDataCount ; x++)
{
valueXmlString.append("<gstr"+j+">");
System.out.println("For making blank row as GSTR2 data not found for this row");
valueXmlString.append("</gstr"+j+">");
}
}
gstrDataCountTemp = gstrDataCount;
}
valueXmlString.append("<data_match>").append("<![CDATA["+gstrDataCount+"]]>").append("</data_match>");
valueXmlString.append("</invoice>");
}
valueXmlString.append("</Invoices>"); //End Multiple invoice inside single supplier
valueXmlString.append("</Detail2>");//End Multiple suppliers
}
}
}
break;
}
}
catch(Exception e)
{
System.out.println("Exception: itemChange GSTWizardEJB: ==>\n"+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(conn != null)
{
conn.close();conn = null;
}
}
catch(Exception d)
{
d.printStackTrace();
throw new ITMException(d);
}
}
valueXmlString.append("</Root>");
return valueXmlString.toString();
}
/**
* @param input String
* @return
*/
private static String checkNullAndTrim(String input)
{
if (input==null)
{
input="";
}
return input.trim();
}
/**
* get current date in Timestap formate
*/
private java.sql.Timestamp getCurrtDate() throws RemoteException,ITMException
{
String currAppdate = "";
java.sql.Timestamp currDate = null;
try
{
Object date = null;
currDate = new java.sql.Timestamp(System.currentTimeMillis());
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(genericUtility.getDBDateFormat());
date = sdf.parse(currDate.toString());
currDate = java.sql.Timestamp.valueOf(sdf.format(date).toString()+ " 00:00:00.0");
}
catch (Exception e)
{
throw new ITMException(e);
}
return (currDate);
}
/**
* get current date in Application Time format
*/
private String getCurrdateAppFormat()
{
String s = "";
E12GenericUtility genericUtility = new E12GenericUtility();
try
{
java.util.Date date = null;
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
SimpleDateFormat simpledateformat = new SimpleDateFormat(genericUtility.getDBDateFormat());
date = simpledateformat.parse(timestamp.toString());
timestamp = Timestamp.valueOf(simpledateformat.format(date).toString() + " 00:00:00.0");
s = new SimpleDateFormat(genericUtility.getApplDateFormat()).format(timestamp).toString();
}
catch (Exception localException)
{
}
return s;
}
}
/*
* Author: Wasim Ansari
* Date: 02-MAY-2016
* Request: F17BBAS001 (GST Wizard)
*/
package ibase.webitm.ejb.gst;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
import org.w3c.dom.Document;
@Local
public interface GSTRecoWizEJBLocal extends ValidatorLocal
{
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(Document dom, Document dom1, Document dom2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(String xmlString, String xmlString1,String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1,Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
}
/*
* Author: Wasim Ansari
* Date: 02-MAY-2016
* Request: F17BBAS001 (GST Wizard)
*/
package ibase.webitm.ejb.gst;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import org.w3c.dom.Document;
@Remote
public interface GSTRecoWizEJBRemote extends ValidatorRemote
{
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(Document dom, Document dom1, Document dom2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(String xmlString, String xmlString1,String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1,Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
}
/*
* Author:Wasim Ansari
* Date:03-05-2017
* Request ID:F17BBAS001 (GST Wizard Post Save Component for Reconciliation Trace)
*/
package ibase.webitm.ejb.gst;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashSet;
import javax.ejb.Stateless;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.sybase.jaguar.management.jdk12utils.Iterator;
@Stateless
public class GSTRecoWizPosEJB extends ValidatorEJB implements GSTRecoWizPosEJBRemote,GSTRecoWizPosEJBLocal
{
E12GenericUtility genericUtility = new E12GenericUtility();
ITMDBAccessEJB itmDBAccessLocal = new ITMDBAccessEJB();
/**
* Default constructor.
*/
public GSTRecoWizPosEJB() {
// TODO Auto-generated constructor stub
}
@Override
public String postSave(String xmlStringAll, String tranID, String editFlag, String xtraParams, Connection conn) throws RemoteException, ITMException
{
String retString="";
try
{
retString = postSave(xmlStringAll, xtraParams, "", conn);
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return retString;
}
public String postSave(String xmlstring, String xtraParams, String forcedFlag, Connection conn) throws RemoteException,ITMException
{
System.out.println("Inside GSTWizardPosEJB Post Save ["+xmlstring+"] \n xtraParams ["+xtraParams+"] \n forcedFlag["+forcedFlag+"]");
PreparedStatement pstmt = null,pstmtUpd = null;
ResultSet rs = null;
boolean isError = false,isLocCon = false;
Document dom = null;
String sql = "",retString = "",tranID = "", tranIdGSTN = "";
ArrayList<String> tranIDList = new ArrayList<String>();
String tranIDStr = "",submitStatus = "";
int cnt = 0;
HashSet<String> hs = new HashSet<String>();
try
{
if(conn == null || conn.isClosed())
{
System.out.println("@@Connection is null");
conn = getConnection();
isLocCon = true;
}
else
{
System.out.println("@@Connection is not null");
}
if(xmlstring != null && (xmlstring.indexOf("Detail2") != -1))
{
sql = " INSERT INTO GSTRECO_TRACE (TRAN_ID,TRAN_ID__GSTN) "
+" VALUES ( ? , ?) ";
pstmt = conn.prepareStatement(sql);
sql = " UPDATE GST_DATA_HDR SET RECO_STATUS = ?,SUBMIT_STATUS = ? WHERE TRAN_ID = ? ";
pstmtUpd = conn.prepareStatement(sql);
dom = genericUtility.parseString(xmlstring);
NodeList detail2NodeList =dom.getElementsByTagName("Detail2");
int detail3NodeListlen = detail2NodeList.getLength();
for(int ctrH = 0; ctrH < detail3NodeListlen ; ctrH++)
{
NodeList childNodeList = detail2NodeList.item(ctrH).getChildNodes();
int childNodeListlen = childNodeList.getLength();
for(int ctrD = 0; ctrD < childNodeListlen ; ctrD++)
{
Node childNode = childNodeList.item(ctrD);
if(childNode != null && "tran_id".equalsIgnoreCase(childNode.getNodeName()) && childNode.getFirstChild() != null)
{
tranID = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
}
else if(childNode != null && "tran_id__gstn".equalsIgnoreCase(childNode.getNodeName()) && childNode.getFirstChild() != null)
{
tranIdGSTN = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
}
else if(childNode != null && "status".equalsIgnoreCase(childNode.getNodeName()) && childNode.getFirstChild() != null)
{
submitStatus = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
}
}
System.out.println("TranID ["+tranID+"] GSTN TranID["+tranIdGSTN+"] Submit Status["+submitStatus+"]");
if(tranID.length() > 0 && tranIdGSTN.length() > 0)
{
if (hs.contains(tranID) || hs.contains(tranIdGSTN))
{
System.out.println("Already inserted");
}
else
{
hs.add(tranID);
hs.add(tranIdGSTN);
pstmt.setString(1, tranID);
pstmt.setString(2, tranIdGSTN);
pstmt.addBatch();
pstmt.clearParameters();
tranIDStr = tranIDStr +"'"+ tranID +"','"+ tranIdGSTN +"'," ;
cnt++;
pstmtUpd.setString(1, "M");
pstmtUpd.setString(2, submitStatus);
pstmtUpd.setString(3, tranID);
pstmtUpd.addBatch();
pstmtUpd.clearParameters();
}
}
else
{
System.out.println("Not inserted---->TranID ["+tranID+"] GSTN TranID["+tranIdGSTN+"]");
}
}
System.out.println("Count["+cnt+"]");
if(cnt > 0)
{
int updCount[] = pstmt.executeBatch();
System.out.println("Rows Inserted-->"+updCount);
if( pstmt != null )
{
pstmt.close();pstmt = null;
}
updCount = pstmtUpd.executeBatch();
System.out.println("Rows updated-->"+updCount);
//tranIDStr = tranIDStr.substring(0, tranIDStr.length()-1);
/*sql = " UPDATE GST_DATA_HDR SET RECO_STATUS = 'M' WHERE TRAN_ID IN ("+tranIDStr+") ";
pstmt = conn.prepareStatement(sql);
pstmt.executeUpdate();
if( pstmt != null )
{
pstmt.close();pstmt = null;
}*/
}
if( pstmt != null )
{
pstmt.close();pstmt = null;
}
if(pstmtUpd != null)
{
pstmtUpd.close();pstmtUpd = null;
}
}//End if Detail2 not found
else
{
System.out.println("Detail2 not found");
retString = itmDBAccessLocal.getErrorString("","VTBLNKDTL","","",conn);
return retString;
}
}
catch(Exception e)
{
System.out.println("Exception GSTWizardPosEJB ==>"+e.getMessage());
isError = true;
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
System.out.println("Inside finally GSTWizardPosEJB isError["+isError+"] connStatus["+isLocCon+"]");
if (rs != null )
{
rs.close();rs = null;
}
if( pstmt != null )
{
pstmt.close();pstmt = null;
}
if(pstmtUpd != null)
{
pstmtUpd.close();pstmtUpd = null;
}
if(isLocCon)
{
if(isError)
{
System.out.println("Inside rollbacking....");
conn.rollback();
}
else
{
System.out.println("Inside committing....");
conn.commit();
}
if (conn != null )
{
conn.close();conn = null;
}
}
}
catch( Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
System.out.println("errString from post save GSTWizardPosEJB =["+retString+"]");
return retString;
}
private static String checkNullAndTrim(String input)
{
if (input==null)
{
input="";
}
return input.trim();
}
}
/*
* Author:Wasim Ansari
* Date:03-05-2017
* Request ID:S16EBAS006 (GST Wizard)
*/
package ibase.webitm.ejb.gst;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import javax.ejb.Local;
@Local
public interface GSTRecoWizPosEJBLocal extends ValidatorLocal
{
public String postSave(String xmlStringAll, String tranId, String editFlag, String xtraParams, Connection conn) throws RemoteException,ITMException;
}
/*
* Author:Wasim Ansari
* Date:03-05-2017
* Request ID:S16EBAS006 (GST Wizard)
*/
package ibase.webitm.ejb.gst;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import javax.ejb.Remote;
@Remote
public interface GSTRecoWizPosEJBRemote extends ValidatorRemote
{
public String postSave(String xmlStringAll, String tranId, String editFlag, String xtraParams, Connection conn) throws RemoteException,ITMException;
}
/*
* Author: Wasim Ansari
* Date: 02-MAY-2016
* Request: F17BBAS001 (GST Wizard)
*/
package ibase.webitm.servlet.gst;
import ibase.utility.CommonConstants;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.Messages;
public class GSTWizUtilServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public GSTWizUtilServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost( request, response );
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.println("XXXXXXXXXXXXXXXXXXXXXX[ GSTWizUtilServlet START]XXXXXXXXXXXXXXXXXXXX");
request.setCharacterEncoding(CommonConstants.ENCODING);
String action = "", htmlData = "";
try
{
action = request.getParameter("action");
System.out.println("GSTWizUtilServlet ACTION ["+action+"]");
if("previous".equalsIgnoreCase(action))
{
ibase.utility.UserInfoBean userInfo = ( ibase.utility.UserInfoBean )request.getSession().getAttribute( "USER_INFO" );
if(userInfo != null)
{
String objName = request.getParameter("OBJ_NAME");
String formNo = request.getParameter("FORM_NO");
String preFormVal = request.getParameter("PRE_FORM_VAL");
String jspName = request.getParameter("JSP_NAME")!=null ? request.getParameter("JSP_NAME").trim() : "";
System.out.println("OBJ_NAME["+objName+"]");
System.out.println("FORM_NO["+formNo+"]");
System.out.println("PRE_FORM_VAL["+preFormVal+"]");
System.out.println("JSP_NAME["+jspName+"]");
String editorId = (String) request.getSession().getAttribute( "WIZARD_BEAN_ID_" + objName );
System.out.println( " GSTWizUtilServlet :: editorId["+editorId+"]" );
if ( request.getSession().getAttribute( "WIZARD_BEAN_" + editorId ) != null )
{
System.out.println("GSTWizUtilServlet Wizard object found....");
request.getSession().removeAttribute( "WIZARD_BEAN_" + objName );
request.getSession().removeAttribute( "WIZARD_BEAN_ID_" + objName );
request.getRequestDispatcher("/webitm/jsp/"+jspName+".jsp").forward(request, response);
}
}
else
{
htmlData = Messages.getString("ITMWizardHandlerServlet_notLoggedIn")+"\n"+Messages.getString("ITMWizardHandlerServlet_pleaseReLogin");
System.out.println("htmlData ["+htmlData+"]");
}
}
else if("SAVE_DETAIL_DATA".equalsIgnoreCase(action))
{
String prevHTMLData = request.getParameter("HTML_DATA");
request.getSession().setAttribute( "GSTRECO_WIZ_DETAIL",prevHTMLData);
}
else if("DISPLAY_DETAIL_DATA".equalsIgnoreCase(action))
{
String htmlDataErr = (String) request.getSession().getAttribute( "GSTRECO_WIZ_DETAIL");
request.getSession().removeAttribute( "GSTRECO_WIZ_DETAIL");
response.setContentType("text/html");
if(CommonConstants.CONTENT_ENCODING != null && CommonConstants.CONTENT_ENCODING.equalsIgnoreCase("gzip"))
{
response.setHeader("Content-Encoding", "gzip");
GZIPOutputStream gzOutStream = new GZIPOutputStream(response.getOutputStream());
gzOutStream.write(htmlDataErr.getBytes());
gzOutStream.flush();
gzOutStream.close();
}
else
{
response.setHeader("Content-Encoding", CommonConstants.CONTENT_ENCODING);
OutputStream outStream = response.getOutputStream();
outStream.write(htmlDataErr.getBytes());
outStream.flush();
outStream.close();
}
}
}
catch (Exception e)
{
System.out.println("GSTWizUtilServlet.doPost():doPost"+e.getMessage());
e.printStackTrace();
}
System.out.println("XXXXXXXXXXXXXXXXXXXXXX[ GSTWizUtilServlet END]XXXXXXXXXXXXXXXXXXXX");
}
}
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