Commit 3ea5592b authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106756 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 1e344205
package ibase.webitm.ejb.gst;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
......@@ -129,6 +126,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
folder.mkdirs();
System.out.println("GSTN Folder created");
}
saveFilePath = folder.getAbsolutePath();
}
catch (Exception e)
{
......@@ -342,8 +341,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
byte[] authSEK = null;
String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= "", recType = "";
String signDataXML = "", summaryDataJsonStr = "";
int submitRowCnt = 0;
boolean isLocalDataFiles = false;
System.out.println(" -------- Inside itemchange case 2222222 ------------ ");
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ))
......@@ -1252,7 +1249,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
if("GETINV".equalsIgnoreCase(dataAction) && !"GSTR2A".equalsIgnoreCase(recordType))
{
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?";
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 = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
......@@ -2734,20 +2731,21 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
private String getDataFromFileServer(String gstin, String recType, String periodCode, String authToken, String userName, String stateCode, byte[] authSek, JSONObject dataJSONObject, String sectionName, String xtraParams) throws ITMException
{
String retString = null;
String transactionId = "", gspAuthString = "", gspAuthSignature = "";
String transactionId = "", retFolderPath = "", gspAuthString = "", gspAuthSignature = "";
String siteCode = "", loginCode = "", chgTerm = "", responseId = "", responseJsonStr = "", callStatus = "";
String sep = File.separator;
try
{
siteCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
loginCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
chgTerm = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm");
System.out.println("saveFilePath on 2795["+saveFilePath+"]");
retFolderPath = saveFilePath + sep + gstin + sep + periodCode + sep + "GSTR"+recType + sep + sectionName;
File sectionFolder = new File(retFolderPath);
File sectionFolder = new File(saveFilePath + File.separator + sectionName);
if(!sectionFolder.exists())
{
sectionFolder.mkdir();
sectionFolder.mkdirs();
System.out.println("section folder created for ["+sectionName+"]");
}
......@@ -2759,8 +2757,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
HttpRequest fileDetailsReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR_RETSTAT_URL))
.queryString("gstin", gstin)
.queryString("ret_period",periodCode)
//.queryString("token",dataJSONObject.getString("token"))//TODO need to change
.queryString("token", "7163714af8a84b62ae6688d8f7a238c1")
.queryString("token",dataJSONObject.getString("token"))
.queryString("action","FILEDET")
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
......@@ -2807,7 +2804,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
JSONArray fileDetailsArry = filedetailsJsonObj.getJSONArray("urls");
System.out.println("sessionKey["+sessionKey+"]");
String sessionKeyFilePath = saveFilePath + File.separator + sectionName + File.separator + "key.txt";
String sessionKeyFilePath = sectionFolder.getAbsolutePath() + sep + "key.txt";
FileOutputStream keyFileOutStream = new FileOutputStream(sessionKeyFilePath);
keyFileOutStream.write(sessionKey.getBytes());
keyFileOutStream.close();
......@@ -2845,7 +2842,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
InputStream inputStream = connection.getInputStream();
filePath = saveFilePath + File.separator + sectionName + File.separator + fileName;
filePath = sectionFolder.getAbsolutePath() + sep + fileName;
FileOutputStream outputStream = new FileOutputStream(filePath);
......@@ -2947,185 +2944,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("final retString["+retString+"]");
return retString;
}
private String getDataXMLFromJsonFile(String sectionName) throws ITMException
{
String retString = "", sessionKey = "";
StringBuffer retStringBuff = new StringBuffer();
boolean isFilesEncrypted = false;
try
{
String sessionKeyFilePath = saveFilePath + File.separator + sectionName + File.separator + "key.txt";
File sessKeyFile = new File(sessionKeyFilePath);
if(sessKeyFile.exists())
{
FileReader keyInputStream = new FileReader(sessKeyFile);
BufferedReader keyBr = new BufferedReader(keyInputStream);
sessionKey = keyBr.readLine();
keyBr.close();
isFilesEncrypted = true;
}
if(isFilesEncrypted)
{
File jsonFilePath = new File(saveFilePath + File.separator + sectionName);
String[] listOfFiles = jsonFilePath.list();
for(String eachFileName : listOfFiles)
{
System.out.println("eachFileName["+eachFileName+"]");
if(!"key.txt".equalsIgnoreCase(eachFileName))
{
String eachFilePath = saveFilePath + File.separator + sectionName + File.separator + eachFileName;
TarArchiveInputStream tarInput = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(eachFilePath)));
TarArchiveEntry currentEntry = tarInput.getNextTarEntry();
BufferedReader br = null;
while (currentEntry != null)
{
br = new BufferedReader(new InputStreamReader(tarInput));
String line;
while ((line = br.readLine()) != null)
{
byte[] decryptEK = aesEncryption.decodeBase64StringTOByte(sessionKey);
String decryptedData = new String(aesEncryption.decrypt(line, decryptEK));
String decodedJson = new String(Base64.decodeBase64(decryptedData));
retString += XML.toString(new JSONObject(decodedJson));
}
currentEntry = tarInput.getNextTarEntry();
}
tarInput.close();
}
}
}
else
{
String jsonStr = "";
File dataFiles = new File(saveFilePath);
File[] allFileNDir = dataFiles.listFiles();
for(File eachFolder : allFileNDir)
{
if(eachFolder.isDirectory())
{
String eachSecName = eachFolder.getName();
File sectionDataFile = new File(eachFolder.getAbsolutePath());
String[] sectionDataFiles = sectionDataFile.list();
for(String eachSecFileName : sectionDataFiles)
{
System.out.println(sectionDataFile.getAbsolutePath() + File.separator + eachSecFileName);
FileReader secFileReader = new FileReader(sectionDataFile.getAbsolutePath() + File.separator + eachSecFileName);
BufferedReader br = new BufferedReader(secFileReader);
jsonStr = br.readLine();
System.out.println("jsonStr["+jsonStr+"]");
br.close();
}
String dataXML = XML.toString(new JSONObject(jsonStr));
if("B2B".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<b2b_invoices>");
retStringBuff.append(dataXML);
retStringBuff.append("</b2b_invoices>");
}
else if("B2CL".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<b2cl_invoices>");
retStringBuff.append(dataXML);
retStringBuff.append("</b2cl_invoices>");
}
else if("B2CS".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<b2cs_invoices>");
retStringBuff.append(dataXML);
retStringBuff.append("</b2cs_invoices>");
}
else if("CDNR".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<cdnr_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</cdnr_data>");
}
else if("CDNUR".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<cdnur_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</cdnur_data>");
}
else if("AT".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<at_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</at_data>");
}
else if("TXP".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<txp_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</txp_data>");
}
else if("NIL".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<nil_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</nil_data>");
}
else if("EXP".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<exp_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</exp_data>");
}
else if("HSNSUM".equalsIgnoreCase(eachSecName))
{
retStringBuff.append("<hsnsum_data>");
retStringBuff.append(dataXML);
retStringBuff.append("</hsnsum_data>");
}
}
}
retString = retStringBuff.toString();
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizEJB.getDataXMLFromJsonFile()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
return retString;
}
private void writeDatatoJsonFile(String jsonDataStr, String sectionName) throws ITMException
{
String jsonDataFilePath = "", jsonDataDir = "";
File jsonDataFile = null;
BufferedWriter jsonDataFileWriter = null;
try
{
jsonDataDir = saveFilePath + File.separator + sectionName;
jsonDataFile = new File(jsonDataDir);
if(!jsonDataFile.exists())
{
boolean isFolderCreated = jsonDataFile.mkdir();
System.out.println("section folder created to store json data["+isFolderCreated+"]");
}
jsonDataFilePath = saveFilePath + File.separator + sectionName + File.separator + sectionName+".json";
jsonDataFileWriter = new BufferedWriter(new FileWriter(new File(jsonDataFilePath)));
jsonDataFileWriter.write(jsonDataStr);
jsonDataFileWriter.close();
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizEJB.writeDatatoJsonFile()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private String checkNull(String input)
{
if (input==null)
......
......@@ -35,7 +35,6 @@ import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.XML;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
......@@ -1559,10 +1558,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
String loginCode = "", chgTerm = "", siteCode = "", callStatus = "", responseJsonStr = "", responseId = "";
String sql = "";
PreparedStatement pstmt = null;
int updateCnt = 0;
try
{
if("1".equalsIgnoreCase(recType))
......@@ -1652,24 +1647,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
responseId = transId;
System.out.println("transId to getStatus after SUBMIT call["+transId+"]");
sql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE PRD_CODE = ? AND SITE_CODE = ? AND REC_TYPE = '1'";
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);
updateCnt = pstmt.executeUpdate();
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
System.out.println("submit status updated of ["+siteCode+"] for ["+periodCode+"] update count ["+updateCnt+"]");
retString = getSaveSubmitStatus(transId, null ,recType, xtraParams, conn);
}
else
{
......@@ -1875,6 +1853,221 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
return retString;
}
private String getSaveSubmitStatus(String transId, ArrayList<String> tranIdList, String recType, String xtraParams, Connection conn) throws ITMException
{
String retString = "", errMsg = "";
String transactionId = "", retStatsData = "", retStatsRek= "", retStatusCallStatus = "", retStatusResponseJsonStr = "";
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>();
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;
gspAuthSignatureRet = gspSignature.sign(gspAuthStringRet, aspPrivateKey);
HttpRequest retStatusReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR_RETSTAT_URL))
.queryString("action","RETSTATUS")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
.queryString("ref_id",transId)
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("ip-usr", ipAddress)
.header("username", userName)
.header("auth-token", authToken)
.header("txn", transactionId)
.header("ret_period", periodCode)
.header("gstin", gstin)
.header("X-Asp-Auth-Token", gspAuthStringRet)
.header("X-Asp-Auth-Signature", gspAuthSignatureRet)
.getHttpRequest();
System.out.println("RETSTATUS url["+retStatusReq.getUrl()+"]");
System.out.println("RETSTATUS method["+retStatusReq.getHttpMethod()+"]");
System.out.println("RETSTATUS request header["+retStatusReq.getHeaders()+"]");
HttpResponse<JsonNode> retStatusResp = retStatusReq.asJson();
System.out.println(String.format("retStatusResp Request : Status[%s] Response[%s]", retStatusResp.getStatus(), retStatusResp.getBody()));
if (retStatusResp.getStatus() == 200)
{
JSONObject retStatsRespObj = retStatusResp.getBody().getObject();
if(retStatsRespObj.has("data") && retStatsRespObj.has("rek"))
{
retStatsData = retStatsRespObj.getString("data");
retStatsRek = retStatsRespObj.getString("rek");
byte[] apiEKRetstats = aesEncryption.decrypt(retStatsRek, authSEK);
String retStatsRespJsoninBase64 = new String(aesEncryption.decrypt(retStatsData, apiEKRetstats));
byte[] retStatsRespJsonInBytes = aesEncryption.decodeBase64StringTOByte(retStatsRespJsoninBase64);
JSONObject retStatsJsonData = new JSONObject(new String(retStatsRespJsonInBytes));
System.out.println( "retStatsJsonData["+retStatsJsonData+"]");
if("IP".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{
retStatusCallStatus = "0";
retStatusResponseJsonStr = "IP";
}
else if("P".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{
retStatusCallStatus = "1";
if(tranIdList != null && tranIdList.size() > 0)
{
updateSubmissionStatus(tranIdList, conn);
}
else
{
sql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE PRD_CODE = ? AND SITE_CODE = ? AND REC_TYPE = ? AND SUBMIT_STATUS = ?";
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");
updateCnt = pstmt.executeUpdate();
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
System.out.println("submit status updated of ["+siteCode+"] for ["+periodCode+"] update count ["+updateCnt+"]");
}
isLoopBreak = true;
}
else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{
retStatusCallStatus = "2";
errMsg = getRetStatusErrMsg(retStatsJsonData);
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd")))
{
retStatusCallStatus = "2";
if(retStatsJsonData.has("error_report"))
{
JSONObject errorJSON = retStatsJsonData.getJSONObject("error_report");
if(errorJSON.has("error_msg") && errorJSON.has("error_cd"))
{
errMsg = "Message : "+errorJSON.getString("error_msg")+" \nError code : "+errorJSON.getString("error_cd");
}
}
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
else
{
retStatusCallStatus = "2";
if(retStatsJsonData.has("status_cd"))
{
errMsg = "Message : "+retStatsJsonData.getString("status_cd")+" \nError code : "+retStatsJsonData.getString("status_cd");
}
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
}
else
{
retStatusCallStatus = "2";
JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
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)
{
retStatusCallStatus = "2";
errMsg = "Message : Error occurred at GSTN server \nResponse code : "+retStatusResp.getStatus();
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
else
{
retStatusCallStatus = "2";
JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
isLoopBreak = true;
}
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)
{
System.out.println("GSTDataSubmitWizPos.getSaveSubmitStatus()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
if(retStatAPICallList.size()>0)
{
for(APICallData apiCallData : retStatAPICallList)
{
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
{
String retString = "";
......@@ -3084,8 +3277,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
HttpRequest fileDetailsReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR_RETSTAT_URL))
.queryString("gstin", gstin)
.queryString("ret_period",periodCode)
//.queryString("token",dataJSONObject.getString("token"))//TODO need to change
.queryString("token", "7163714af8a84b62ae6688d8f7a238c1")
.queryString("token",dataJSONObject.getString("token"))
.queryString("action","FILEDET")
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
......@@ -4048,10 +4240,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
String loginCode = "", chgTerm = "", siteCode = "", callStatus = "", responseJsonStr = "", responseId = "";
String sql = "";
PreparedStatement pstmt = null;
int updateCnt = 0;
try
{
siteCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
......@@ -4124,25 +4312,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
responseId = transId;
System.out.println("transId to getStatus after SUBMIT call["+transId+"]");
//TODO need to check
/*sql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ? AND SUBMIT_DATE = ? WHERE PRD_CODE = ? AND SITE_CODE = ? AND REC_TYPE = '1'";
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);
updateCnt = pstmt.executeUpdate();
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
System.out.println("submit status updated of ["+siteCode+"] for ["+periodCode+"] update count ["+updateCnt+"]");*/
}
else
{
......@@ -5749,14 +5918,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
public String saveGSTRData(String jsonPayload, int noOfRecords, ArrayList<String> tranIdList, String recType, Connection conn, String xtraParams) throws ITMException
{
String retString = "";
String gspAuthString = "", gspAuthSignature = "", transactionId = "", RETURN_URL = "", errMsg = "", callStatus = "", responseId = "",
retStatusCallStatus = "", retStatsData = "", retStatsRek = "", retStatusResponseJsonStr = "", responseJsonStr = "",
gspAuthStringRet = "", gspAuthSignatureRet = "",loginCode = "", chgTerm = "", siteCode = "", gstrData = "", gstrRek = "";
String gspAuthString = "", gspAuthSignature = "", transactionId = "", RETURN_URL = "", errMsg = "", callStatus = "", responseId = "",
responseJsonStr = "",loginCode = "", chgTerm = "", siteCode = "", gstrData = "", gstrRek = "";
Date restSaveEndTime = null;
int retStatusCallCnt = 0;
long diffStatus = 0L;
APICallData apiRetStatsCallData = null;
List<APICallData> retStatAPICallList = new ArrayList<>();
try
{
......@@ -5861,165 +6027,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+"]");
boolean isRetStatusError = false;
while(true)
{
Thread.sleep(noOfRecords);//TODO NEED TO REMOVE WITH BETTER OPTION
retStatusCallCnt++;
long timeStampRet = new Timestamp().getDateTime();
gspAuthStringRet = clientId + ":" + transactionId + ":" + timeStampRet + ":" + gstin;
gspAuthSignatureRet = gspSignature.sign(gspAuthStringRet, aspPrivateKey);
HttpRequest retStatusReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR_RETSTAT_URL))
.queryString("action","RETSTATUS")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
.queryString("ref_id",transId)
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("ip-usr", ipAddress)
.header("username", userName)
.header("auth-token", authToken)
.header("txn", transactionId)
.header("ret_period", periodCode)
.header("gstin", gstin)
.header("X-Asp-Auth-Token", gspAuthStringRet)
.header("X-Asp-Auth-Signature", gspAuthSignatureRet)
.getHttpRequest();
System.out.println("RETSTATUS url["+retStatusReq.getUrl()+"]");
System.out.println("RETSTATUS method["+retStatusReq.getHttpMethod()+"]");
System.out.println("RETSTATUS request header["+retStatusReq.getHeaders()+"]");
HttpResponse<JsonNode> retStatusResp = retStatusReq.asJson();
System.out.println(String.format("retStatusResp Request : Status[%s] Response[%s]", retStatusResp.getStatus(), retStatusResp.getBody()));
if (retStatusResp.getStatus() == 200)
{
JSONObject retStatsRespObj = retStatusResp.getBody().getObject();
if(retStatsRespObj.has("data") && retStatsRespObj.has("rek"))
{
retStatsData = retStatsRespObj.getString("data");
retStatsRek = retStatsRespObj.getString("rek");
byte[] apiEKRetstats = aesEncryption.decrypt(retStatsRek, authSEK);
String retStatsRespJsoninBase64 = new String(aesEncryption.decrypt(retStatsData, apiEKRetstats));
byte[] retStatsRespJsonInBytes = aesEncryption.decodeBase64StringTOByte(retStatsRespJsoninBase64);
JSONObject retStatsJsonData = new JSONObject(new String(retStatsRespJsonInBytes));
System.out.println( "retStatsJsonData["+retStatsJsonData+"]");
if("IP".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{
retStatusCallStatus = "0";
retStatusResponseJsonStr = "IP";
}
else if("P".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{
retStatusCallStatus = "1";
if(tranIdList.size() > 0)
{
updateSubmissionStatus(tranIdList, conn);
}
isRetStatusError = true;
}
else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{
retStatusCallStatus = "2";
errMsg = getRetStatusErrMsg(retStatsJsonData);
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isRetStatusError = true;
}
else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd")))
{
retStatusCallStatus = "2";
if(retStatsJsonData.has("error_report"))
{
JSONObject errorJSON = retStatsJsonData.getJSONObject("error_report");
if(errorJSON.has("error_msg") && errorJSON.has("error_cd"))
{
errMsg = "Message : "+errorJSON.getString("error_msg")+" \nError code : "+errorJSON.getString("error_cd");
}
}
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isRetStatusError = true;
}
else
{
retStatusCallStatus = "2";
if(retStatsJsonData.has("status_cd"))
{
errMsg = "Message : "+retStatsJsonData.getString("status_cd")+" \nError code : "+retStatsJsonData.getString("status_cd");
}
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isRetStatusError = true;
}
}
else
{
retStatusCallStatus = "2";
JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
isRetStatusError = true;
}
}
else if(retStatusResp.getStatus() == 500)
{
retStatusCallStatus = "2";
errMsg = "Message : Error occurred at GSTN server \nResponse code : "+retStatusResp.getStatus();
retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn);
isRetStatusError = true;
}
else
{
retStatusCallStatus = "2";
JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
isRetStatusError = true;
}
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(isRetStatusError)
{
break;
}
else
{
continue;
}
}
retString = getSaveSubmitStatus(transId, tranIdList ,recType, xtraParams, conn);
}
else
{
......@@ -6080,7 +6088,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
apiCallData.setSiteCode(siteCode);
apiCallData.setUserId(loginCode);
apiCallData.setCallType("RETSAVE");
apiCallData.setRecType("1");
apiCallData.setRecType(recType);
apiCallData.setNoOfRecords(noOfRecords);
apiCallData.setCallStatus(callStatus);
apiCallData.setResponseId(responseId);
......@@ -6090,13 +6098,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
apiCallData.setChgTerm(chgTerm);
gstCommonUtil.updateAPICallLogHistory(apiCallData, null);
if(retStatAPICallList.size()>0)
{
for(APICallData eachAPICallData : retStatAPICallList)
{
gstCommonUtil.updateAPICallLogHistory(eachAPICallData, null);
}
}
}
return retString;
}
......
......@@ -54,22 +54,10 @@ public class HSNSerializer extends BaseSerializer<HSN>
json.writeNumberField("qty", hsnDetails.quantity);
json.writeNumberField("val", hsnDetails.totalAmount);
json.writeNumberField("txval", hsnDetails.totalTaxableAmount);
if(hsnDetails.totalIGSTAmount > 0)
{
json.writeNumberField("iamt", hsnDetails.totalIGSTAmount);
}
if(hsnDetails.totalCGSTAmount > 0)
{
json.writeNumberField("camt", hsnDetails.totalCGSTAmount);
}
if(hsnDetails.totalSGSTAmount > 0)
{
json.writeNumberField("samt", hsnDetails.totalSGSTAmount);
}
if(hsnDetails.totalCESSAmount > 0)
{
json.writeNumberField("csamt", hsnDetails.totalCESSAmount);
}
json.writeNumberField("iamt", hsnDetails.totalIGSTAmount);
json.writeNumberField("camt", hsnDetails.totalCGSTAmount);
json.writeNumberField("samt", hsnDetails.totalSGSTAmount);
json.writeNumberField("csamt", hsnDetails.totalCESSAmount);
json.writeEndObject();
}
......
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