Commit 0e274c63 authored by steurwadkar's avatar steurwadkar

F17ABAS001 GST API integration wizard source code commit

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@163432 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 768e6cf6
......@@ -285,8 +285,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
appKeyInBytes = aesEncryption.decodeBase64StringTOByte(appKey);
appKeyEncryptedAndCoded = pubKeyEncryption.encrypt(appKeyInBytes);
sql = " SELECT S.SITE_CODE, S.SH_DESCR, ST.GST_CODE, ST.DESCR, SR.REF_CODE, SR.REG_NO FROM SITE S, SITEREGNO SR, STATE ST"
+ " WHERE S.SITE_CODE = SR.SITE_CODE AND S.FIN_ENTITY = SR.FIN_ENTITY AND S.STATE_CODE = ST.STATE_CODE AND SR.REF_CODE IN ('GSTIN_NO','GST_UNAME','GST_GT','GST_CUR_GT')"
sql = " SELECT S.SITE_CODE, S.SH_DESCR, SUBSTR(REG_NO,0,2) AS GST_CODE, ST.DESCR, SR.REF_CODE, SR.REG_NO FROM SITE S, SITEREGNO SR, STATE ST"
+ " WHERE S.SITE_CODE = SR.SITE_CODE AND S.FIN_ENTITY = SR.FIN_ENTITY AND SUBSTR(REG_NO,0,2) = ST.GST_CODE (+) AND SR.REF_CODE IN ('GSTIN_NO','GST_UNAME','GST_GT','GST_CUR_GT')"
+ " AND SR.SITE_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
......@@ -298,6 +298,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
if("GSTIN_NO".equalsIgnoreCase(checkNull(rs.getString("REF_CODE"))))
{
gstinNo = checkNull(rs.getString("REG_NO"));
stateCode = checkNull(rs.getString("GST_CODE"));
stateDescr = checkNull(rs.getString("DESCR"));
}
if("GST_UNAME".equalsIgnoreCase(checkNull(rs.getString("REF_CODE"))))
{
......@@ -311,8 +313,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
{
currentYearGrossTurnover = checkNull(rs.getString("REG_NO"));
}
stateCode = checkNull(rs.getString("GST_CODE"));
stateDescr = checkNull(rs.getString("DESCR"));
}
if(rs != null)
{
......@@ -1055,6 +1055,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
if("SAVE".equalsIgnoreCase(dataAction))
{
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
......@@ -1071,7 +1073,29 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTCHKRETST";
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1087,7 +1111,10 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1104,7 +1131,10 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
closeResources(rs, pstmt);
}
}
else if("SUBMIT".equalsIgnoreCase(dataAction))
{
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
......@@ -1121,7 +1151,29 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTCHKRETST";
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1137,7 +1189,9 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1154,7 +1208,10 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
closeResources(rs, pstmt);
}
}
else if("FILE".equalsIgnoreCase(dataAction))
{
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
......@@ -1171,7 +1228,29 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTCHKRETST";
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1188,6 +1267,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
closeResources(rs, pstmt);
}
}
else if("GETINV".equalsIgnoreCase(dataAction) && !"GSTR2A".equalsIgnoreCase(recordType))
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('T','S','R') AND PRD_CODE = ? AND SITE_CODE = ?";
......@@ -1210,6 +1290,27 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
{
int saveRecCnt = 0;
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
isDataError = true;
errorCode = "VTCHKRETST";
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1253,7 +1354,10 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
closeResources(rs, pstmt);
}
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1269,7 +1373,10 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'R' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
......@@ -1285,7 +1392,28 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
closeResources(rs, pstmt);
}
}
else if("RETSTATUS".equalsIgnoreCase(dataAction))
{
if(!isDataError)
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS IN ('U','N','D') AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") == 0)
{
isDataError = true;
errorCode = "VTNOCHKDAT";
}
}
closeResources(rs, pstmt);
}
}
if(!isDataError)
......@@ -2823,7 +2951,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
if(tempJsonObj.has("ul"))
{
String fileUrl = tempJsonObj.getString("ul");
fileUrl = FILEDET_URL + fileUrl;
fileUrl = BASE_API_URL + fileUrl;
System.out.println("fileUrl["+fileUrl+"]");
URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
......
......@@ -4,6 +4,7 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
......@@ -97,6 +98,7 @@ import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.util.gst.AESEncryption;
import ibase.webitm.util.gst.GSPSignature;
import ibase.webitm.util.gst.GSTCommonUtil;
import ibase.webitm.util.gst.JsonDataValidator;
import ibase.webitm.util.gst.PubKeyEncryption;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
......@@ -133,6 +135,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
PrivateKey aspPrivateKey = null;
E12GenericUtility e12GenericUtility = new E12GenericUtility();
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
GSTCommonUtil gstCommonUtil = new GSTCommonUtil();
@PostConstruct
......@@ -205,9 +208,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
NodeList detail1NList = null, detail1ChildNList = null, detail2NList = null, detail2ChildNList = null;
String retString = "", nodeName = "", otp = "", sek = "", returnsType = "", grossTurnover = "",
action = "", siteCode = "", gspAuthString = "", gspAuthSignature = "", currentYearTurnover = "", signedData = "", panNo = "", aadhaarNo = "",
signMethod = "", summaryData = "";
signMethod = "", summaryData = "", transId = "", recType = "", apiCallTranId = "", submitFlag = "", submitStatus = "";
String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= "";
ArrayList<String> tranIdList = new ArrayList<String>();
APICallData apiCallData = null;
boolean isDataLogged = false;
......@@ -482,7 +487,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
apiCallData.setCallStatus(callStatus);
apiCallData.setResponseId(responseId);
apiCallData.setResponseJsonStr(responseJsonStr);
retString = new ITMDBAccessEJB().getErrorString("","VTINVOTP","","",conn);
retString = itmDBAccessEJB.getErrorString("","VTINVOTP","","",conn);
return retString;
}
else
......@@ -526,6 +531,67 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
isDataLogged = true;
}
if("RETSTATUS".equalsIgnoreCase(action))
{
if("GSTR1".equalsIgnoreCase(returnsType))
{
recType = "1";
}
else if("GSTR2".equalsIgnoreCase(returnsType))
{
recType = "2";
}
sql = " SELECT TRAN_ID, RESPONSE_ID, CALL_DATE FROM API_CALL_LOG WHERE SITE_CODE = ? AND REC_TYPE = ? AND PRD_CODE = ? AND CALL_STATUS = ?"
+ " AND RESPONSE_ID IS NOT NULL ORDER BY CALL_DATE DESC";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, recType);
pstmt.setString(3, periodCode);
pstmt.setString(4, "0");
rs = pstmt.executeQuery();
if(rs.next())
{
apiCallTranId = rs.getString("TRAN_ID");
transId = rs.getString("RESPONSE_ID");
}
closeResources(rs, pstmt);
System.out.println("transId to check status ["+transId+"]");
sql = "SELECT TRAN_ID, SUBMIT_STATUS FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND REC_TYPE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
pstmt.setString(3, recType);
rs = pstmt.executeQuery();
while(rs.next())
{
submitStatus = checkNullandTrim(rs.getString("SUBMIT_STATUS"));
tranIdList.add(rs.getString("TRAN_ID"));
}
closeResources(rs, pstmt);
if("U".equalsIgnoreCase(submitStatus))
{
submitFlag = "T";
}
else if("D".equalsIgnoreCase(submitStatus))
{
submitFlag = "P";
}
else if("N".equalsIgnoreCase(submitStatus))
{
submitFlag = "S";
}
System.out.println("tranIdList.size()["+tranIdList.size()+"]");
}
if(authToken != null && authToken.trim().length() > 0 && authSEK != null)
{
if("GSTR1".equalsIgnoreCase(returnsType))
......@@ -546,6 +612,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
retString = createDeleteGstr1Json( siteCode, grossTurnover, currentYearTurnover, xtraParams, conn);
}
else if("RETSTATUS".equalsIgnoreCase(action))
{
retString = getSaveSubmitStatus(transId, tranIdList , apiCallTranId, "1", submitFlag, xtraParams, conn);
}
}
else if("GSTR2A".equalsIgnoreCase(returnsType))
{
......@@ -576,6 +646,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
retString = createDeleteGstr2Json( siteCode, xtraParams, conn);
}
else if("RETSTATUS".equalsIgnoreCase(action))
{
retString = getSaveSubmitStatus(transId, tranIdList , apiCallTranId, "2", submitFlag, xtraParams, conn);
}
}
else if("GSTR3B".equalsIgnoreCase(returnsType))
{
......@@ -614,7 +688,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
private String createGstr1Json(String siteCode, String grossTurnover, String currentYearTurnover, String xtraParams, Connection conn) throws ITMException
{
String retString = "";
int num = 0, noOfRecords = 0;
int num = 0, noOfRecords = 0, retStatCnt = 0;
boolean isDataFound = false;
......@@ -623,7 +697,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
PreparedStatement pstmt = null, linePstmt = null, refDataPstmt = null;
ResultSet rs = null, lineRs = null, refDataRs = null;
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "";
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "", jsonValidErrStr = "";
ArrayList<String> tranIdList = new ArrayList<String>();
......@@ -666,6 +740,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
DocIssued docIssued = null;
try
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'U' AND REC_TYPE ='1'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
retStatCnt = rs.getInt("CNT");
}
closeResources(rs, pstmt);
System.out.println("save GSTR1 retStatCnt of ["+periodCode+"] for sitecode ["+siteCode+"]");
if(retStatCnt == 0)
{
Date payloadStartTime = new Date();
......@@ -735,12 +826,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -757,7 +848,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice.inum = rs.getString("DOC_NO");
invoice.idt = rs.getDate("DOC_DATE");
invoice.val = rs.getDouble("AMOUNT");
invoice.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
invoice.invoiceType = udfStr2;
invoice.pos = posStateCode;
invoice.rchrg = "Y".equalsIgnoreCase(rs.getString("REVERSE_CHRG"));
......@@ -807,12 +898,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -829,7 +920,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice.inum = checkNullandTrim(rs.getString("DOC_NO"));
invoice.idt = rs.getDate("DOC_DATE");
invoice.val = rs.getDouble("AMOUNT");
invoice.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
invoice.etin = rs.getString("ECOM_REG_NO");
invoice.items = invLineItems;
......@@ -865,11 +956,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
b2cs.typ = udfStr3;
b2cs.etin = rs.getString("ECOM_REG_NO");
b2cs.pos = posStateCode;
b2cs.rate = lineRs.getDouble("GST_RATE");
b2cs.iamt = lineRs.getDouble("IGST_AMT");
b2cs.camt = lineRs.getDouble("CGST_AMT");
b2cs.samt = lineRs.getDouble("SGST_AMT");
b2cs.csamt = lineRs.getDouble("CESS_AMT");
b2cs.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
b2cs.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
b2cs.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
b2cs.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
b2cs.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
b2csInvoiceList.add(b2cs);
}
......@@ -906,12 +997,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -933,7 +1024,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnDetails.cdNoteDate = rs.getDate("DOC_DATE");
cdnDetails.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnDetails.invoiceDate = rs.getDate("REF_DATE__INV");
cdnDetails.val = rs.getDouble("AMOUNT");
cdnDetails.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
//cdnDetails.reason = checkNullandTrim(rs.getString("REAS_CODE"));
cdnDetails.reason = "07-Others";//TODO sending hardcoded reason value, difficult to determine as per GSTN reason list
if(rs.getDate("REF_DATE__INV").before(gstStartDate))
......@@ -973,12 +1064,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
while(lineRs.next())
{
invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -995,7 +1086,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice.inum = rs.getString("DOC_NO");
invoice.idt = rs.getDate("DOC_DATE");
invoice.val = rs.getDouble("AMOUNT");
invoice.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
invoice.shippingPortCode = checkNullandTrim(rs.getString("ORDER_NO"));
invoice.shippingBillNum = getDoubleValue(rs.getString("LR_NO"));
invoice.shippingBillDt = rs.getDate("LR_DATE");
......@@ -1030,12 +1121,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -1078,12 +1169,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -1128,12 +1219,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -1194,7 +1285,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnur.cdNoteDate = rs.getDate("DOC_DATE");
cdnur.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnur.invoiceDate = rs.getDate("REF_DATE__INV");
cdnur.val = rs.getDouble("AMOUNT");
cdnur.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
//cdnur.reason = checkNullandTrim(rs.getString("REAS_CODE"));
cdnur.reason = "07-Others";//TODO sending hardcoded reason value, difficult to determine as per GSTN reason list
if(rs.getDate("REF_DATE__INV").before(gstStartDate))
......@@ -1262,20 +1353,20 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE NOT IN ('29','31')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT";*/
sql = " SELECT GS_CODE, GS_DESCR, UNIT, SUM(TOT_QTY) AS TOT_QTY, SUM(TOT_TAXVAL) AS TOT_TAXVAL, SUM(TOT_IAMT) AS TOT_IAMT, SUM(TOT_CAMT) AS TOT_CAMT, SUM(TOT_SAMT) AS TOT_SAMT, SUM(TOT_CSAMT) AS TOT_CSAMT FROM"
+ " (SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
sql = " SELECT GS_CODE, UNIT, SUM(TOT_QTY) AS TOT_QTY, SUM(TOT_TAXVAL) AS TOT_TAXVAL, SUM(TOT_IAMT) AS TOT_IAMT, SUM(TOT_CAMT) AS TOT_CAMT, SUM(TOT_SAMT) AS TOT_SAMT, SUM(TOT_CSAMT) AS TOT_CSAMT FROM"
+ " (SELECT GDD.GS_CODE, GDD.UNIT, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SUM(GDD.IGST_AMT) AS TOT_IAMT, SUM(CGST_AMT) AS TOT_CAMT, SUM(SGST_AMT) AS TOT_SAMT, SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL AND GDH.REC_TYPE='1'"
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE NOT IN ('29','31')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT"
+ " GROUP BY GDD.GS_CODE, GDD.UNIT"
+ " UNION ALL"
+ " SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, -1*SUM(GDD.QUANTITY) AS TOT_QTY, -1*SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SELECT GDD.GS_CODE, GDD.UNIT, -1*SUM(GDD.QUANTITY) AS TOT_QTY, -1*SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " -1*SUM(GDD.IGST_AMT) AS TOT_IAMT, -1*SUM(CGST_AMT) AS TOT_CAMT, -1*SUM(SGST_AMT) AS TOT_SAMT, -1*SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL AND GDH.REC_TYPE='1'"
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE IN ('29','31')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT) GROUP BY GS_CODE, GS_DESCR, UNIT" ;
+ " GROUP BY GDD.GS_CODE, GDD.UNIT) GROUP BY GS_CODE, UNIT" ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
......@@ -1290,15 +1381,16 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hsnDetails.num = ++num;
hsnDetails.itemOrServiceCode = checkNullandTrim(rs.getString("GS_CODE"));
hsnDetails.description = checkNullandTrim(rs.getString("GS_DESCR"));
hsnDetails.description = "";
hsnDetails.unitOfMeasure = checkNullandTrim(rs.getString("UNIT"));
hsnDetails.quantity = rs.getDouble("TOT_QTY");
hsnDetails.totalAmount = rs.getDouble("TOT_TAXVAL") + rs.getDouble("TOT_IAMT") + rs.getDouble("TOT_CAMT") + rs.getDouble("TOT_SAMT") + rs.getDouble("TOT_CSAMT");
hsnDetails.totalTaxableAmount = rs.getDouble("TOT_TAXVAL");
hsnDetails.totalIGSTAmount = rs.getDouble("TOT_IAMT");
hsnDetails.totalCGSTAmount = rs.getDouble("TOT_CAMT");
hsnDetails.totalSGSTAmount = rs.getDouble("TOT_SAMT");
hsnDetails.totalCESSAmount = rs.getDouble("TOT_CSAMT");
hsnDetails.quantity = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_QTY")));
double totalAmount = rs.getDouble("TOT_TAXVAL") + rs.getDouble("TOT_IAMT") + rs.getDouble("TOT_CAMT") + rs.getDouble("TOT_SAMT") + rs.getDouble("TOT_CSAMT");
hsnDetails.totalAmount = Double.parseDouble(String.format("%.2f",totalAmount));
hsnDetails.totalTaxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_TAXVAL")));
hsnDetails.totalIGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_IAMT")));
hsnDetails.totalCGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_CAMT")));
hsnDetails.totalSGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_SAMT")));
hsnDetails.totalCESSAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_CSAMT")));
hsnList.add(hsnDetails);
}
......@@ -1569,8 +1661,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("DIFFERANCE IN TIME FOR PAYLOAD CREATION GSTR1 IN HH:MM:SS ["+payloadDiffHours +":"+payloadDiffMinutes+":"+payloadDiffSeconds+"]");
jsonValidErrStr = getJsonSchemaValidation("1", json, conn);
if(jsonValidErrStr.trim().length()==0)
{
retString = saveGSTRData(json, noOfRecords, tranIdList, "1", conn, xtraParams);
}
else
{
retString = jsonValidErrStr;
}
}
}
else
{
retString = itmDBAccessEJB.getErrorString("","VTCHKRETST","","",conn);
}
}
catch (Exception e)
{
......@@ -1583,7 +1690,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
private String createDeleteGstr1Json(String siteCode, String grossTurnover, String currentYearTurnover, String xtraParams, Connection conn) throws ITMException
{
String retString = "";
int noOfRecords = 0;
int noOfRecords = 0, retStatCnt = 0;
boolean isDataFound = false;
......@@ -1592,7 +1699,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
PreparedStatement pstmt = null, linePstmt = null, refDataPstmt = null;
ResultSet rs = null, lineRs = null, refDataRs = null;
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "";
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "", jsonValidErrStr = "";
ArrayList<String> tranIdList = new ArrayList<String>();
......@@ -1629,6 +1736,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
Nil nil = null;
try
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'U' AND REC_TYPE ='1'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
retStatCnt = rs.getInt("CNT");
}
closeResources(rs, pstmt);
System.out.println("delete GSTR1 retStatCnt of ["+periodCode+"] for sitecode ["+siteCode+"]");
if(retStatCnt == 0)
{
sql = "SELECT * FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'T' AND REC_TYPE ='1'";
pstmt = conn.prepareStatement(sql);
......@@ -1753,7 +1877,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
b2cs.supplyType = udfStr2;
b2cs.typ = udfStr3;
b2cs.pos = posStateCode;
b2cs.rate = lineRs.getDouble("GST_RATE");
b2cs.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
b2cs.taxPayerAction = "D";
b2csInvoiceList.add(b2cs);
......@@ -1787,12 +1911,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -2038,8 +2162,24 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("jsonPayload to DELETE GSTR1["+json+"]");
jsonValidErrStr = getJsonSchemaValidation("1", json, conn);
if(jsonValidErrStr.trim().length()==0)
{
retString = deleteDataFromGSTN(json, noOfRecords, tranIdList, "1", xtraParams, conn);
}
else
{
retString = jsonValidErrStr;
}
}
}
else
{
retString = itmDBAccessEJB.getErrorString("","VTCHKRETST","","",conn);
}
}
catch (Exception e)
{
......@@ -2052,7 +2192,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
private String createDeleteGstr2Json(String siteCode, String xtraParams, Connection conn) throws ITMException
{
String retString = "";
int noOfRecords = 0;
int noOfRecords = 0, retStatCnt = 0;
boolean isDataFound = false;
......@@ -2061,7 +2201,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
PreparedStatement pstmt = null, linePstmt = null;
ResultSet rs = null, lineRs = null;
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "";
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "", jsonValidErrStr = "";
ArrayList<String> tranIdList = new ArrayList<String>();
......@@ -2092,6 +2232,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
NilInwardSupplies nilInwardSupplies = null;
try
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'U' AND REC_TYPE ='2'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
retStatCnt = rs.getInt("CNT");
}
closeResources(rs, pstmt);
System.out.println("delete GSTR2 retStatCnt of ["+periodCode+"] for sitecode ["+siteCode+"]");
if(retStatCnt == 0)
{
sql = "SELECT * FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'T' AND REC_TYPE ='2'";
pstmt = conn.prepareStatement(sql);
......@@ -2352,9 +2509,22 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("jsonPayload to delete GSTR2["+json+"]");
jsonValidErrStr = getJsonSchemaValidation("2", json, conn);
if(jsonValidErrStr.trim().length()==0)
{
retString = deleteDataFromGSTN(json, noOfRecords, tranIdList, "2", xtraParams, conn);
}
else
{
retString = jsonValidErrStr;
}
}
}
else
{
retString = itmDBAccessEJB.getErrorString("", "VTCHKRETST", "", "", conn);
}
}
catch(Exception e)
{
......@@ -2371,6 +2541,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String errMsg = "", gspAuthString = "", gspAuthSignature = "";
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
String loginCode = "", chgTerm = "", siteCode = "", callStatus = "", responseJsonStr = "", responseId = "";
ArrayList<String> tranIdList = new ArrayList<String>();
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
......@@ -2391,6 +2566,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
RETURN_URL = GSTR3B_URL;
}
sql = "SELECT TRAN_ID FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND REC_TYPE = ? AND SUBMIT_STATUS = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
pstmt.setString(3, recType);
pstmt.setString(4, "T");
rs = pstmt.executeQuery();
while(rs.next())
{
tranIdList.add(rs.getString("TRAN_ID"));
}
closeResources(rs, pstmt);
System.out.println("tranIdList.size()["+tranIdList.size()+"]");
siteCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
loginCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
chgTerm = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm");
......@@ -2447,7 +2639,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
JSONObject gstrSubmitRespObj = gstrSubmitResp.getBody().getObject();
if(gstrSubmitRespObj.has("data") && gstrSubmitRespObj.has("rek"))
{
callStatus = "1";
callStatus = "0";
String gstrSubmitdata = gstrSubmitRespObj.getString("data");
String gstrSubmitrek = gstrSubmitRespObj.getString("rek");
......@@ -2461,7 +2653,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
responseId = transId;
System.out.println("transId to getStatus after SUBMIT call["+transId+"]");
retString = getSaveSubmitStatus(transId, null ,recType, "S", xtraParams, conn);
updateSubmissionStatus(tranIdList, "N", conn);
}
else
{
......@@ -2733,7 +2926,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if(gstrRespObj.has("data") && gstrRespObj.has("rek"))
{
callStatus = "1";
callStatus = "0";
gstrData = gstrRespObj.getString("data");
gstrRek = gstrRespObj.getString("rek");
......@@ -2749,7 +2942,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("transId to getStatus["+transId+"]");
retString = getSaveSubmitStatus(transId, tranIdList ,recType, "D", xtraParams, conn);
updateSubmissionStatus(tranIdList, "D", conn);
}
else
{
......@@ -2804,26 +2997,21 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
return retString;
}
private String getSaveSubmitStatus(String transId, ArrayList<String> tranIdList, String recType, String actionFlag, String xtraParams, Connection conn) throws ITMException
private String getSaveSubmitStatus(String transId, ArrayList<String> tranIdList, String apiCallTranId, String recType, String submitFlag, String xtraParams, Connection conn) throws ITMException
{
String retString = "", errMsg = "";
String transactionId = "", retStatsData = "", retStatsRek= "", retStatusCallStatus = "", retStatusResponseJsonStr = "";
String transactionId = "", retStatsData = "", retStatsRek= "", retStatusCallStatus = "", retStatusResponseJsonStr = "", retStatusCode = "";
String gspAuthStringRet = "", gspAuthSignatureRet = "", siteCode = "", loginCode = "", chgTerm = "";
boolean isLoopBreak = false;
String sql = "";
PreparedStatement pstmt = null;
int updateCnt = 0;
APICallData apiRetStatsCallData = null;
ArrayList<APICallData> retStatAPICallList = new ArrayList<APICallData>();
APICallData apiCallData = null;
try
{
siteCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
loginCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
chgTerm = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm");
while(true)
{
Thread.sleep(10000);//TODO NEED TO REMOVE WITH BETTER OPTION
transactionId = UUID.randomUUID().toString().replaceAll("-", "");
long timeStampRet = new Timestamp().getDateTime();
gspAuthStringRet = clientId + ":" + transactionId + ":" + timeStampRet + ":" + gstin;
......@@ -2873,29 +3061,29 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
JSONObject retStatsJsonData = new JSONObject(new String(retStatsRespJsonInBytes));
System.out.println( "retStatsJsonData["+retStatsJsonData+"]");
if("IP".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
retStatusCode = (String)retStatsJsonData.get("status_cd");
if("IP".equalsIgnoreCase(retStatusCode))
{
retStatusCallStatus = "0";
retStatusResponseJsonStr = "IP";
errMsg = "Data processing is still in process at GSTN server. Kindly recheck after some time";
retString = getError(errMsg, "GSTAPIERR", conn);
}
else if("P".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
else if("P".equalsIgnoreCase(retStatusCode))
{
retStatusCallStatus = "1";
if(tranIdList != null && tranIdList.size() > 0)
{
updateSubmissionStatus(tranIdList, actionFlag, conn);
updateSubmissionStatus(tranIdList, submitFlag, conn);
}
else
{
sql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE PRD_CODE = ? AND SITE_CODE = ? AND REC_TYPE = ? AND SUBMIT_STATUS = ?";
sql = "UPDATE API_CALL_LOG SET CALL_STATUS = ? WHERE TRAN_ID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "S");
pstmt.setTimestamp(2, java.sql.Timestamp.valueOf(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateTimeFormat())));
pstmt.setString(3, periodCode);
pstmt.setString(4, siteCode);
pstmt.setString(5, recType);
pstmt.setString(6, "T");
pstmt.setString(1, "1");
pstmt.setString(2, apiCallTranId);
updateCnt = pstmt.executeUpdate();
......@@ -2905,19 +3093,16 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
pstmt = null;
}
System.out.println("submit status updated of ["+siteCode+"] for ["+periodCode+"] update count ["+updateCnt+"]");
}
isLoopBreak = true;
System.out.println("call status updated of ["+siteCode+"] for ["+periodCode+"] update count ["+updateCnt+"]");
}
else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
else if("PE".equalsIgnoreCase(retStatusCode))
{
retStatusCallStatus = "2";
errMsg = getRetStatusErrMsg(retStatsJsonData);
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd")))
else if("ER".equalsIgnoreCase(retStatusCode))
{
retStatusCallStatus = "2";
if(retStatsJsonData.has("error_report"))
......@@ -2931,7 +3116,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
else
{
......@@ -2943,7 +3127,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
}
else
......@@ -2953,7 +3136,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
}
else if(retStatusResp.getStatus() == 500)
......@@ -2962,7 +3144,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
errMsg = "Message : Error occurred at GSTN server \nResponse code : "+retStatusResp.getStatus();
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
else
{
......@@ -2971,40 +3152,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
if(retStatusResponseJsonStr.length() > 500)
{
retStatusResponseJsonStr = retStatusResponseJsonStr.substring(0, 500);
}
apiRetStatsCallData = new APICallData();
apiRetStatsCallData.setPeriodCode(periodCode);
apiRetStatsCallData.setCallDate(new Date());
apiRetStatsCallData.setSiteCode(siteCode);
apiRetStatsCallData.setUserId(loginCode);
apiRetStatsCallData.setCallType("RETSTATUS");
apiRetStatsCallData.setRecType(recType);
apiRetStatsCallData.setNoOfRecords(0);
apiRetStatsCallData.setCallStatus(retStatusCallStatus);
apiRetStatsCallData.setResponseId("");
apiRetStatsCallData.setResponseJsonStr(retStatusResponseJsonStr);
apiRetStatsCallData.setChgUser(loginCode);
apiRetStatsCallData.setChgDate(new Date());
apiRetStatsCallData.setChgTerm(chgTerm);
retStatAPICallList.add(apiRetStatsCallData);
if(isLoopBreak)
{
break;
}
else
{
continue;
}
}
}
catch(Exception e)
{
......@@ -3014,14 +3167,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
finally
{
if(retStatAPICallList.size()>0)
{
for(APICallData apiCallData : retStatAPICallList)
{
apiCallData = new APICallData();
apiCallData.setPeriodCode(periodCode);
apiCallData.setCallDate(new Date());
apiCallData.setSiteCode(siteCode);
apiCallData.setUserId(loginCode);
apiCallData.setCallType("RETSTATUS");
apiCallData.setRecType(recType);
apiCallData.setNoOfRecords(0);
apiCallData.setCallStatus(retStatusCallStatus);
apiCallData.setResponseId("");
apiCallData.setResponseJsonStr(retStatusResponseJsonStr);
apiCallData.setChgUser(loginCode);
apiCallData.setChgDate(new Date());
apiCallData.setChgTerm(chgTerm);
gstCommonUtil.updateAPICallLogHistory(apiCallData, null);
}
}
}
return retString;
}
/*private String getGstr1Summary(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSEK, String action, String xtraParams, Connection conn) throws ITMException
......@@ -3373,7 +3535,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
private String createGstr2Json(String siteCode, String xtraParams, Connection conn) throws ITMException
{
String retString = "";
int num = 0, noOfRecords = 0;
int num = 0, noOfRecords = 0, retStatCnt = 0;
boolean isDataFound = false;
......@@ -3382,7 +3544,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
PreparedStatement pstmt = null, linePstmt = null;
ResultSet rs = null, lineRs = null;
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "";
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "", jsonValidErrStr;
ArrayList<String> tranIdList = new ArrayList<String>();
......@@ -3418,6 +3580,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
NilInwardSupplies nilInwardSupplies = null;
try
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'U' AND REC_TYPE ='2'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
retStatCnt = rs.getInt("CNT");
}
closeResources(rs, pstmt);
System.out.println("save GSTR2 retStatCnt of ["+periodCode+"] for sitecode ["+siteCode+"]");
if(retStatCnt == 0)
{
sql = "SELECT * FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'P' AND REC_TYPE ='2'";
pstmt = conn.prepareStatement(sql);
......@@ -3488,17 +3667,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItem.itcType = checkNullandTrim(lineRs.getString("ITC_TYPE")).toLowerCase();
invLineItem.igstInputTax = lineRs.getDouble("ITC_IGST");
invLineItem.cgstInputTax = lineRs.getDouble("ITC_CGST");
invLineItem.sgstInputTax = lineRs.getDouble("ITC_SGST");
invLineItem.cessInputTax = lineRs.getDouble("ITC_CESS");
invLineItem.igstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_IGST")));
invLineItem.cgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CGST")));
invLineItem.sgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_SGST")));
invLineItem.cessInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CESS")));
invLineItems.add(invLineItem);
}
......@@ -3515,7 +3694,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice.inum = rs.getString("DOC_NO");
invoice.idt = rs.getDate("DOC_DATE");
invoice.val = rs.getDouble("AMOUNT");
invoice.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
invoice.invoiceType = udfStr2;
invoice.pos = posStateCode;
invoice.rchrg = "Y".equalsIgnoreCase(rs.getString("REVERSE_CHRG"));
......@@ -3566,17 +3745,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItem.itcType = checkNullandTrim(lineRs.getString("ITC_TYPE")).toLowerCase();
invLineItem.igstInputTax = lineRs.getDouble("ITC_IGST");
invLineItem.cgstInputTax = lineRs.getDouble("ITC_CGST");
invLineItem.sgstInputTax = lineRs.getDouble("ITC_SGST");
invLineItem.cessInputTax = lineRs.getDouble("ITC_CESS");
invLineItem.igstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_IGST")));
invLineItem.cgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CGST")));
invLineItem.sgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_SGST")));
invLineItem.cessInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CESS")));
invLineItems.add(invLineItem);
}
......@@ -3593,7 +3772,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice.inum = rs.getString("DOC_NO");
invoice.idt = rs.getDate("DOC_DATE");
invoice.val = rs.getDouble("AMOUNT");
invoice.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
invoice.pos = posStateCode;
invoice.items = invLineItems;
invoice.supplyType = stateCode.trim().equalsIgnoreCase(posStateCode.trim())?"INTRA":"INTER";
......@@ -3627,17 +3806,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItem.itcType = checkNullandTrim(lineRs.getString("ITC_TYPE")).toLowerCase();
invLineItem.igstInputTax = lineRs.getDouble("ITC_IGST");
invLineItem.cgstInputTax = lineRs.getDouble("ITC_CGST");
invLineItem.sgstInputTax = lineRs.getDouble("ITC_SGST");
invLineItem.cessInputTax = lineRs.getDouble("ITC_CESS");
invLineItem.igstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_IGST")));
invLineItem.cgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CGST")));
invLineItem.sgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_SGST")));
invLineItem.cessInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CESS")));
invLineItems.add(invLineItem);
}
......@@ -3659,7 +3838,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnDetails.cdNoteDate = rs.getDate("DOC_DATE");
cdnDetails.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnDetails.invoiceDate = rs.getDate("REF_DATE__INV");
cdnDetails.val = rs.getDouble("AMOUNT");
cdnDetails.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
//cdnDetails.reason = checkNullandTrim(rs.getString("REAS_CODE"));
cdnDetails.reason = "07-Others";//TODO sending hardcoded reason value, difficult to determine as per GSTN reason list
if(rs.getDate("REF_DATE__INV").before(gstStartDate))
......@@ -3697,17 +3876,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItem.itcType = checkNullandTrim(lineRs.getString("ITC_TYPE")).toLowerCase();
invLineItem.igstInputTax = lineRs.getDouble("ITC_IGST");
invLineItem.cgstInputTax = lineRs.getDouble("ITC_CGST");
invLineItem.sgstInputTax = lineRs.getDouble("ITC_SGST");
invLineItem.cessInputTax = lineRs.getDouble("ITC_CESS");
invLineItem.igstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_IGST")));
invLineItem.cgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CGST")));
invLineItem.sgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_SGST")));
invLineItem.cessInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CESS")));
invLineItems.add(invLineItem);
}
......@@ -3735,7 +3914,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
impg.billOfEntryNo = checkNullandTrim(rs.getString("LR_NO"));
impg.billOfEntryDate = rs.getDate("LR_DATE");
impg.amount = rs.getDouble("AMOUNT");
impg.amount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
impg.portCode = checkNullandTrim(rs.getString("ORDER_NO"));
impg.items = invLineItems;
......@@ -3756,17 +3935,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItem.itcType = checkNullandTrim(lineRs.getString("ITC_TYPE")).toLowerCase();
invLineItem.igstInputTax = lineRs.getDouble("ITC_IGST");
invLineItem.cgstInputTax = lineRs.getDouble("ITC_CGST");
invLineItem.sgstInputTax = lineRs.getDouble("ITC_SGST");
invLineItem.cessInputTax = lineRs.getDouble("ITC_CESS");
invLineItem.igstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_IGST")));
invLineItem.cgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CGST")));
invLineItem.sgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_SGST")));
invLineItem.cessInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CESS")));
invLineItems.add(invLineItem);
}
......@@ -3784,7 +3963,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
imps = new IMPS();
imps.inum = checkNullandTrim(rs.getString("DOC_NO"));
imps.idt = rs.getDate("DOC_DATE");
imps.val = rs.getDouble("AMOUNT");
imps.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
imps.pos = checkNullandTrim(rs.getString("GST_CODE"));
imps.items = invLineItems;
......@@ -3805,12 +3984,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -3850,12 +4029,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItems.add(invLineItem);
}
......@@ -3899,17 +4078,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
invLineItem.csamt = lineRs.getDouble("CESS_AMT");
invLineItem.rate = Double.parseDouble(String.format("%.2f",lineRs.getDouble("GST_RATE")));
invLineItem.taxval = Double.parseDouble(String.format("%.2f",lineRs.getDouble("TAXABLE_AMT")));
invLineItem.iamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("IGST_AMT")));
invLineItem.camt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CGST_AMT")));
invLineItem.samt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("SGST_AMT")));
invLineItem.csamt = Double.parseDouble(String.format("%.2f",lineRs.getDouble("CESS_AMT")));
invLineItem.itcType = checkNullandTrim(lineRs.getString("ITC_TYPE")).toLowerCase();
invLineItem.igstInputTax = lineRs.getDouble("ITC_IGST");
invLineItem.cgstInputTax = lineRs.getDouble("ITC_CGST");
invLineItem.sgstInputTax = lineRs.getDouble("ITC_SGST");
invLineItem.cessInputTax = lineRs.getDouble("ITC_CESS");
invLineItem.igstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_IGST")));
invLineItem.cgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CGST")));
invLineItem.sgstInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_SGST")));
invLineItem.cessInputTax = Double.parseDouble(String.format("%.2f",lineRs.getDouble("ITC_CESS")));
invLineItems.add(invLineItem);
}
......@@ -3934,7 +4113,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnur.cdNoteDate = rs.getDate("DOC_DATE");
cdnur.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnur.invoiceDate = rs.getDate("REF_DATE__INV");
cdnur.val = rs.getDouble("AMOUNT");
cdnur.val = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
//cdnur.reason = checkNullandTrim(rs.getString("REAS_CODE"));
cdnur.reason = "07-Others";//TODO sending hardcoded reason value, difficult to determine as per GSTN reason list
if(rs.getDate("REF_DATE__INV").before(gstStartDate))
......@@ -3970,20 +4149,20 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ?"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT";*/
sql = " SELECT GS_CODE, GS_DESCR, UNIT, SUM(TOT_QTY) AS TOT_QTY, SUM(TOT_TAXVAL) AS TOT_TAXVAL, SUM(TOT_IAMT) AS TOT_IAMT, SUM(TOT_CAMT) AS TOT_CAMT, SUM(TOT_SAMT) AS TOT_SAMT, SUM(TOT_CSAMT) AS TOT_CSAMT FROM"
+ " (SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
sql = " SELECT GS_CODE, UNIT, SUM(TOT_QTY) AS TOT_QTY, SUM(TOT_TAXVAL) AS TOT_TAXVAL, SUM(TOT_IAMT) AS TOT_IAMT, SUM(TOT_CAMT) AS TOT_CAMT, SUM(TOT_SAMT) AS TOT_SAMT, SUM(TOT_CSAMT) AS TOT_CSAMT FROM"
+ " (SELECT GDD.GS_CODE, GDD.UNIT, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SUM(GDD.IGST_AMT) AS TOT_IAMT, SUM(CGST_AMT) AS TOT_CAMT, SUM(SGST_AMT) AS TOT_SAMT, SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL AND GDH.REC_TYPE='2'"
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE NOT IN ('10','11')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT"
+ " GROUP BY GDD.GS_CODE, GDD.UNIT"
+ " UNION ALL"
+ " SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, -1*SUM(GDD.QUANTITY) AS TOT_QTY, -1*SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SELECT GDD.GS_CODE, GDD.UNIT, -1*SUM(GDD.QUANTITY) AS TOT_QTY, -1*SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " -1*SUM(GDD.IGST_AMT) AS TOT_IAMT, -1*SUM(CGST_AMT) AS TOT_CAMT, -1*SUM(SGST_AMT) AS TOT_SAMT, -1*SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL AND GDH.REC_TYPE='2'"
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE IN ('10','11')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT) GROUP BY GS_CODE, GS_DESCR, UNIT";
+ " GROUP BY GDD.GS_CODE, GDD.UNIT) GROUP BY GS_CODE, UNIT";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
......@@ -3998,15 +4177,16 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hsnDetails.num = ++num;
hsnDetails.itemOrServiceCode = checkNullandTrim(rs.getString("GS_CODE"));
hsnDetails.description = checkNullandTrim(rs.getString("GS_DESCR"));
hsnDetails.description = "";
hsnDetails.unitOfMeasure = checkNullandTrim(rs.getString("UNIT"));
hsnDetails.quantity = rs.getDouble("TOT_QTY");
hsnDetails.totalAmount = rs.getDouble("TOT_TAXVAL") + rs.getDouble("TOT_IAMT") + rs.getDouble("TOT_CAMT") + rs.getDouble("TOT_SAMT") + rs.getDouble("TOT_CSAMT");
hsnDetails.totalTaxableAmount = rs.getDouble("TOT_TAXVAL");
hsnDetails.totalIGSTAmount = rs.getDouble("TOT_IAMT");
hsnDetails.totalCGSTAmount = rs.getDouble("TOT_CAMT");
hsnDetails.totalSGSTAmount = rs.getDouble("TOT_SAMT");
hsnDetails.totalCESSAmount = rs.getDouble("TOT_CSAMT");
hsnDetails.quantity = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_QTY")));
double totalAmount = rs.getDouble("TOT_TAXVAL") + rs.getDouble("TOT_IAMT") + rs.getDouble("TOT_CAMT") + rs.getDouble("TOT_SAMT") + rs.getDouble("TOT_CSAMT");
hsnDetails.totalAmount = Double.parseDouble(String.format("%.2f",totalAmount));
hsnDetails.totalTaxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_TAXVAL")));
hsnDetails.totalIGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_IAMT")));
hsnDetails.totalCGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_CAMT")));
hsnDetails.totalSGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_SAMT")));
hsnDetails.totalCESSAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TOT_CSAMT")));
hsnList.add(hsnDetails);
}
......@@ -4091,8 +4271,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("jsonPayload to SAVE GSTR2["+json+"]");
jsonValidErrStr = getJsonSchemaValidation("2", json, conn);
if(jsonValidErrStr.trim().length()==0)
{
retString = saveGSTRData(json, noOfRecords, tranIdList, "2", conn, xtraParams);
}
else
{
retString = jsonValidErrStr;
}
}
}
else
{
retString = itmDBAccessEJB.getErrorString("", "VTCHKRETST", "", "", conn);
}
}
catch(Exception e)
{
......@@ -4161,7 +4356,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
JSONObject generateGstr3JsonObj = new JSONObject(new String(generateGstr3JsonInBytes));
System.out.println("560101.generateGstr3JsonObj["+generateGstr3JsonObj+"]");
System.out.println("generateGstr3JsonObj["+generateGstr3JsonObj+"]");
if(generateGstr3JsonObj.has("ref_id"))
{
......@@ -4323,7 +4518,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if(tempJsonObj.has("ul"))
{
String fileUrl = tempJsonObj.getString("ul");
fileUrl = FILEDET_URL + fileUrl;
fileUrl = BASE_API_URL + fileUrl;
System.out.println("fileUrl["+fileUrl+"]");
URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
......@@ -4789,37 +4985,37 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("01".equalsIgnoreCase(gstCommonUtil.checkNull(rs.getString("TRAN_TYPE"))))
{
outwardSuppliesDetails = new OutwardSuppliesDetails();
outwardSuppliesDetails.taxableAmount = rs.getDouble("TAXABLE_AMT");
outwardSuppliesDetails.igstAmount = rs.getDouble("IGST_AMT");
outwardSuppliesDetails.cgstAmount = rs.getDouble("CGST_AMT");
outwardSuppliesDetails.sgstAmount = rs.getDouble("SGST_AMT");
outwardSuppliesDetails.cessAmount = rs.getDouble("CESS_AMT");
outwardSuppliesDetails.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
outwardSuppliesDetails.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
outwardSuppliesDetails.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
outwardSuppliesDetails.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
outwardSuppliesDetails.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
}
else if("02".equalsIgnoreCase(gstCommonUtil.checkNull(rs.getString("TRAN_TYPE"))))
{
outwardZeroRatedSupplies = new OutwardZeroRatedSupplies();
outwardZeroRatedSupplies.taxableAmount = rs.getDouble("TAXABLE_AMT");
outwardZeroRatedSupplies.igstAmount = rs.getDouble("IGST_AMT");
outwardZeroRatedSupplies.cessAmount = rs.getDouble("CESS_AMT");
outwardZeroRatedSupplies.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
outwardZeroRatedSupplies.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
outwardZeroRatedSupplies.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
}
else if("03".equalsIgnoreCase(gstCommonUtil.checkNull(rs.getString("TRAN_TYPE"))))
{
outwardExempetedSupplies = new OutwardExempetedSupplies();
outwardExempetedSupplies.taxableAmount = rs.getDouble("TAXABLE_AMT");
outwardExempetedSupplies.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
}
else if("04".equalsIgnoreCase(gstCommonUtil.checkNull(rs.getString("TRAN_TYPE"))))
{
inwardSuppliesUnderRevCharge = new InwardSuppliesUnderRevCharge();
inwardSuppliesUnderRevCharge.taxableAmount = rs.getDouble("TAXABLE_AMT");
inwardSuppliesUnderRevCharge.igstAmount = rs.getDouble("IGST_AMT");
inwardSuppliesUnderRevCharge.cgstAmount = rs.getDouble("CGST_AMT");
inwardSuppliesUnderRevCharge.sgstAmount = rs.getDouble("SGST_AMT");
inwardSuppliesUnderRevCharge.cessAmount = rs.getDouble("CESS_AMT");
inwardSuppliesUnderRevCharge.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
inwardSuppliesUnderRevCharge.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
inwardSuppliesUnderRevCharge.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
inwardSuppliesUnderRevCharge.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
inwardSuppliesUnderRevCharge.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
}
else if("05".equalsIgnoreCase(gstCommonUtil.checkNull(rs.getString("TRAN_TYPE"))))
{
outwardNonGSTSupplies = new OutwardNonGSTSupplies();
outwardNonGSTSupplies.taxableAmount = rs.getDouble("TAXABLE_AMT");
outwardNonGSTSupplies.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
}
}
closeResources(rs,pstmt);
......@@ -4850,8 +5046,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
InterStateSuppliesData interStateSuppliesData = new InterStateSuppliesData();
interStateSuppliesData.placeOfSupply = gstCommonUtil.checkNull(rs.getString("GST_CODE"));
interStateSuppliesData.taxableAmount = rs.getDouble("TAXABLE_AMT");
interStateSuppliesData.igstAmount = rs.getDouble("IGST_AMT");
interStateSuppliesData.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
interStateSuppliesData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
interStateSuppliesDataList.add(interStateSuppliesData);
}
closeResources(rs,pstmt);
......@@ -4878,8 +5074,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
InterStateSuppliesData interStateSuppliesData = new InterStateSuppliesData();
interStateSuppliesData.placeOfSupply = gstCommonUtil.checkNull(rs.getString("GST_CODE"));
interStateSuppliesData.taxableAmount = rs.getDouble("TAXABLE_AMT");
interStateSuppliesData.igstAmount = rs.getDouble("IGST_AMT");
interStateSuppliesData.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
interStateSuppliesData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
interStateSuppliesDataList.add(interStateSuppliesData);
}
closeResources(rs,pstmt);
......@@ -4906,8 +5102,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
InterStateSuppliesData interStateSuppliesData = new InterStateSuppliesData();
interStateSuppliesData.placeOfSupply = gstCommonUtil.checkNull(rs.getString("GST_CODE"));
interStateSuppliesData.taxableAmount = rs.getDouble("TAXABLE_AMT");
interStateSuppliesData.igstAmount = rs.getDouble("IGST_AMT");
interStateSuppliesData.taxableAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
interStateSuppliesData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
interStateSuppliesDataList.add(interStateSuppliesData);
}
closeResources(rs,pstmt);
......@@ -4955,10 +5151,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
itcData.type = "OTH";
}
itcData.igstAmount = rs.getDouble("IGST_AMT");
itcData.cgstAmount = rs.getDouble("CGST_AMT");
itcData.sgstAmount = rs.getDouble("SGST_AMT");
itcData.cessAmount = rs.getDouble("CESS_AMT");
itcData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
itcData.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
itcData.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
itcData.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
itcAvlDataList.add(itcData);
}
closeResources(rs,pstmt);
......@@ -5004,10 +5200,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
itcData.type = "OTH";
}
itcData.igstAmount = rs.getDouble("IGST_AMT");
itcData.cgstAmount = rs.getDouble("CGST_AMT");
itcData.sgstAmount = rs.getDouble("SGST_AMT");
itcData.cessAmount = rs.getDouble("CESS_AMT");
itcData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
itcData.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
itcData.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
itcData.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
itcRevDataList.add(itcData);
}
closeResources(rs,pstmt);
......@@ -5027,10 +5223,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if(rs.next())
{
netITCData = new ITCData();
netITCData.igstAmount = rs.getDouble("IGST_AMT");
netITCData.cgstAmount = rs.getDouble("CGST_AMT");
netITCData.sgstAmount = rs.getDouble("SGST_AMT");
netITCData.cessAmount = rs.getDouble("CESS_AMT");
netITCData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
netITCData.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
netITCData.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
netITCData.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
}
closeResources(rs, pstmt);
......@@ -5075,10 +5271,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
itcData.type = "OTH";
}
itcData.igstAmount = rs.getDouble("IGST_AMT");
itcData.cgstAmount = rs.getDouble("CGST_AMT");
itcData.sgstAmount = rs.getDouble("SGST_AMT");
itcData.cessAmount = rs.getDouble("CESS_AMT");
itcData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
itcData.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
itcData.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
itcData.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
itcInelgDataList.add(itcData);
}
closeResources(rs,pstmt);
......@@ -5121,11 +5317,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("28".equalsIgnoreCase(tranType))
{
inwardGSTSupplies.interSuppliesAmount = rs.getDouble("TAXABLE_AMT");
inwardGSTSupplies.interSuppliesAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
}
else if("30".equalsIgnoreCase(tranType))
{
inwardGSTSupplies.intraSuppliesAmount = rs.getDouble("TAXABLE_AMT");
inwardGSTSupplies.intraSuppliesAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
}
}
closeResources(rs, pstmt);
......@@ -5151,11 +5347,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("29".equalsIgnoreCase(tranType))
{
inwardnonGSTSupplies.interSuppliesAmount = rs.getDouble("TAXABLE_AMT");
inwardnonGSTSupplies.interSuppliesAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
}
else if("31".equalsIgnoreCase(tranType))
{
inwardnonGSTSupplies.intraSuppliesAmount = rs.getDouble("TAXABLE_AMT");
inwardnonGSTSupplies.intraSuppliesAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("TAXABLE_AMT")));
}
}
closeResources(rs, pstmt);
......@@ -5182,10 +5378,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if(rs.next())
{
interestLateFeeData = new InterestLateFeeData();
interestLateFeeData.igstAmount = rs.getDouble("IGST_AMT");
interestLateFeeData.cgstAmount = rs.getDouble("CGST_AMT");
interestLateFeeData.sgstAmount = rs.getDouble("SGST_AMT");
interestLateFeeData.cessAmount = rs.getDouble("CESS_AMT");
interestLateFeeData.igstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("IGST_AMT")));
interestLateFeeData.cgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CGST_AMT")));
interestLateFeeData.sgstAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("SGST_AMT")));
interestLateFeeData.cessAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("CESS_AMT")));
}
closeResources(rs, pstmt);
......@@ -6538,21 +6734,13 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
throw new ITMException(e);
}
}*/
private void updateSubmissionStatus(ArrayList<String> tranIdList, String actionFlag, Connection conn) throws ITMException
private void updateSubmissionStatus(ArrayList<String> tranIdList, String submitStatus, Connection conn) throws ITMException
{
String updateSql = "", submitStatus = "";
String updateSql = "";
PreparedStatement pstmtUpd = null;
try
{
if("S".equalsIgnoreCase(actionFlag))
{
submitStatus = "T";
}
else if("D".equalsIgnoreCase(actionFlag))
{
submitStatus = "P";
}
updateSql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE TRAN_ID = ?";
pstmtUpd = conn.prepareStatement(updateSql);
......@@ -6591,7 +6779,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
try
{
String errString = "";
errString = new ITMDBAccessEJB().getErrorString("",Code,"","",conn);
errString = itmDBAccessEJB.getErrorString("",Code,"","",conn);
String begPart = errString.substring(0,errString.indexOf("</description>"));
String endDesc = errString.substring(errString.indexOf("</description>"),errString.length());
......@@ -6718,15 +6906,15 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
if(nilAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
nilAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(exmptAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
exemtAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(nonGSTAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
nonGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
}
......@@ -6791,19 +6979,19 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
if(nilAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
nilAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(exmptAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
exemtAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(nonGSTAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
nonGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(compundingAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
compoundingAmount = rs.getDouble("AMOUNT");
compoundingAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
}
......@@ -6868,19 +7056,19 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
if(nilAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
nilAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(exmptAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
exemtAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(nonGSTAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
nonGSTAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
if(compundingAmtTranType.equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
compoundingAmount = rs.getDouble("AMOUNT");
compoundingAmount = Double.parseDouble(String.format("%.2f",rs.getDouble("AMOUNT")));
}
}
......@@ -6997,7 +7185,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if(gstrRespObj.has("data") && gstrRespObj.has("rek"))
{
callStatus = "1";
callStatus = "0";
gstrData = gstrRespObj.getString("data");
gstrRek = gstrRespObj.getString("rek");
......@@ -7023,7 +7211,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("DIFFERANCE IN TIME FOR RETSAVE GSTR1 ["+gstin+"] IN HH:MM:SS ["+retSaveDiffHours +":"+retSaveDiffMinutes+":"+retSaveDiffSeconds+"]");
retString = getSaveSubmitStatus(transId, tranIdList ,recType, "S", xtraParams, conn);
updateSubmissionStatus(tranIdList, "U", conn);
}
else
{
......@@ -7276,6 +7464,51 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
}
}*/
private String getJsonSchemaValidation(String recType, String jsonData, Connection conn) throws ITMException
{
String retString = "";
String schemaFilePath = "", line = "", jsonSchema = "", errMsg = "";
try
{
schemaFilePath = CommonConstants.APPLICATION_CONTEXT+ "setting" + File.separator + "RETSAVE_GSTR"+recType+"_SCHEMA.json";
System.out.println("schemaFilePath["+schemaFilePath+"]");
File schemaFile = new File(schemaFilePath);
System.out.println("schemaFile.exists()["+schemaFile.exists()+"]");
if(schemaFile.exists())
{
BufferedReader br = new BufferedReader(new FileReader(schemaFile));
while((line = br.readLine()) != null)
{
jsonSchema += line;
}
br.close();
errMsg = JsonDataValidator.isJsonValid(jsonSchema, jsonData);
}
else
{
errMsg = "Schema file not found for RETSAVE GSTR"+recType;
}
if(errMsg.trim().length() > 0)
{
retString = getError(errMsg, "GSTAPIERR", conn);
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizPos.getJsonSchema()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
System.out.println("final return schema string["+retString+"]");
return retString;
}
private static String checkNullandTrim(String input)
{
if (input==null)
......
package ibase.webitm.util.gst;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Iterator;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.fge.jackson.JsonLoader;
import com.github.fge.jsonschema.core.exceptions.ProcessingException;
import com.github.fge.jsonschema.core.report.ProcessingMessage;
import com.github.fge.jsonschema.core.report.ProcessingReport;
import com.github.fge.jsonschema.main.JsonSchema;
import com.github.fge.jsonschema.main.JsonSchemaFactory;
public class JsonDataValidator
{
public static final String JSON_V4_SCHEMA_IDENTIFIER = "http://json-schema.org/draft-04/schema#";
public static final String JSON_SCHEMA_IDENTIFIER_ELEMENT = "$schema";
public static JsonNode getJsonNode(String jsonText) throws IOException
{
return JsonLoader.fromString(jsonText);
} // getJsonNode(text) ends
public static JsonNode getJsonNode(File jsonFile) throws IOException
{
return JsonLoader.fromFile(jsonFile);
} // getJsonNode(File) ends
public static JsonNode getJsonNode(URL url) throws IOException
{
return JsonLoader.fromURL(url);
} // getJsonNode(URL) ends
public static JsonNode getJsonNodeFromResource(String resource) throws IOException
{
return JsonLoader.fromResource(resource);
} // getJsonNode(Resource) ends
public static JsonSchema getSchemaNode(String schemaText) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNode(schemaText);
return _getSchemaNode(schemaNode);
} // getSchemaNode(text) ends
public static JsonSchema getSchemaNode(File schemaFile) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNode(schemaFile);
return _getSchemaNode(schemaNode);
} // getSchemaNode(File) ends
public static JsonSchema getSchemaNode(URL schemaFile) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNode(schemaFile);
return _getSchemaNode(schemaNode);
} // getSchemaNode(URL) ends
public static JsonSchema getSchemaNodeFromResource(String resource) throws IOException, ProcessingException
{
final JsonNode schemaNode = getJsonNodeFromResource(resource);
return _getSchemaNode(schemaNode);
} // getSchemaNode() ends
public static void validateJson(JsonSchema jsonSchemaNode, JsonNode jsonNode) throws ProcessingException
{
ProcessingReport report = jsonSchemaNode.validate(jsonNode);
if (!report.isSuccess()) {
for (ProcessingMessage processingMessage : report) {
throw new ProcessingException(processingMessage);
}
}
} // validateJson(Node) ends
public static String isJsonValid(JsonSchema jsonSchemaNode, JsonNode jsonNode) throws ProcessingException
{
String retMessage = "";
ProcessingReport report = jsonSchemaNode.validate(jsonNode);
if (!report.isSuccess())
{
for (ProcessingMessage processingMessage : report)
{
JsonNode errorJson = processingMessage.asJson();
if(errorJson.has("reports"))
{
JsonNode tempJsonObj = errorJson.get("reports");
Iterator<String> fldNames = tempJsonObj.fieldNames();
while(fldNames.hasNext())
{ String key = fldNames.next();
JsonNode tempMessageErrNode = tempJsonObj.get(key);
if(tempMessageErrNode.get(0).has("message"))
{
System.out.println("message : "+tempMessageErrNode.get(0).get("message"));
retMessage += tempMessageErrNode.get(0).get("message").toString()+"\n";
}
}
}
else if(errorJson.has("message"))
{
System.out.println("message : "+errorJson.get("message"));
retMessage += errorJson.get("message").toString()+"\n";
}
}
}
System.out.println("json validatoin message["+retMessage+"]");
return retMessage;
} // validateJson(Node) ends
public static String isJsonValid(String schemaText, String jsonText) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaText);
final JsonNode jsonNode = getJsonNode(jsonText);
return isJsonValid(schemaNode, jsonNode);
} // validateJson(Node) ends
public static String isJsonValid(File schemaFile, File jsonFile) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaFile);
final JsonNode jsonNode = getJsonNode(jsonFile);
return isJsonValid(schemaNode, jsonNode);
} // validateJson(Node) ends
public static String isJsonValid(URL schemaURL, URL jsonURL) throws ProcessingException, IOException
{
final JsonSchema schemaNode = getSchemaNode(schemaURL);
final JsonNode jsonNode = getJsonNode(jsonURL);
return isJsonValid(schemaNode, jsonNode);
} // validateJson(Node) ends
public static void validateJson(String schemaText, String jsonText) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaText);
final JsonNode jsonNode = getJsonNode(jsonText);
validateJson(schemaNode, jsonNode);
} // validateJson(text) ends
public static void validateJson(File schemaFile, File jsonFile) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaFile);
final JsonNode jsonNode = getJsonNode(jsonFile);
validateJson(schemaNode, jsonNode);
} // validateJson(File) ends
public static void validateJson(URL schemaDocument, URL jsonDocument) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaDocument);
final JsonNode jsonNode = getJsonNode(jsonDocument);
validateJson(schemaNode, jsonNode);
} // validateJson(URL) ends
public static void validateJsonResource(String schemaResource, String jsonResource) throws IOException, ProcessingException{
final JsonSchema schemaNode = getSchemaNode(schemaResource);
final JsonNode jsonNode = getJsonNodeFromResource(jsonResource);
validateJson(schemaNode, jsonNode);
} // validateJsonResource() ends
private static JsonSchema _getSchemaNode(JsonNode jsonNode) throws ProcessingException
{
final JsonNode schemaIdentifier = jsonNode.get(JSON_SCHEMA_IDENTIFIER_ELEMENT);
if (null == schemaIdentifier)
{
((ObjectNode) jsonNode).put(JSON_SCHEMA_IDENTIFIER_ELEMENT, JSON_V4_SCHEMA_IDENTIFIER);
}
final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
return factory.getJsonSchema(jsonNode);
} // _getSchemaNode() ends
}
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