Commit fa8044de authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106656 ce508802-f39f-4f6c-b175-0d175dae99d5
parent e7f5999a
package ibase.webitm.bean.gst;
import java.util.List;
public class DocDetails
{
public int docNum;
public String fromSerialNo;
public String toSerialNo;
public int totalNo;
public int cancelNo;
public int serialNumber;
public int toatlNetIssued;
public List<Docs> docs;
}
......@@ -9,9 +9,5 @@ import ibase.webitm.util.gst.DocSerializer;
@JsonSerialize(using = DocSerializer.class)
public class DocIssued extends BaseData
{
public int serialNumber;
public String docDescr;
public List<DocDetails> docDetails;
}
package ibase.webitm.bean.gst;
public class Docs
{
public int docNum;
public String fromSerialNo;
public String toSerialNo;
public int totalNo;
public int cancelNo;
public int toatlNetIssued;
}
......@@ -70,5 +70,5 @@ public class GSTR1 {
public HSN hsn;
@JsonProperty("doc_issue")
public List<DocIssued> docIssued;
public DocIssued docIssued;
}
......@@ -59,15 +59,12 @@ import ibase.webitm.utility.ITMException;
@javax.ejb.Stateless
public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWizEJBLocal, GSTDataSubmitWizEJBRemote
{
private String GST_API_URL = "";
private String GSP_API_URL = "";
private String AUTH_TOKEN_URL_V2 = "";
private String GSTR_URL_V3 = "";
private String GSTR1_URL_V2 = "";
private String GSTR2_URL_V2 = "";
private String GSTR1_URL_V3 = "";
private String GSTR2_URL_V3 = "";
private String GSTR3B_URL_V3 = "";
private String BASE_API_URL = "";
private String AUTH_TOKEN_URL = "";
private String GSTR_RETSTAT_URL = "";
private String GSTR1_URL = "";
private String GSTR2_URL = "";
private String GSTR3B_URL = "";
private String FILEDET_URL = "";
private final String APPLICATION_JSON = "application/json";
private String appKey = "";
......@@ -82,7 +79,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
PubKeyEncryption pubKeyEncryption = null;
GSPSignature gspSignature;
PrivateKey aspPrivateKey = null;
Connection conn = null;
GSTCommonUtil gstCommonUtil = new GSTCommonUtil();
E12GenericUtility e12GenericUtility = new E12GenericUtility();
......@@ -90,9 +86,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
@PostConstruct
public void postConstruct()
{
String sql = "", gstnPublicKeyName = "", gspPrivateKeyName = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String gstnPublicKeyName = "", gspPrivateKeyName = "";
Connection conn = null;
try(java.util.Scanner sc = new java.util.Scanner(new java.net.URL("https://api.ipify.org").openStream(), "UTF-8").useDelimiter("\\A"))
{
System.out.println("GSTDataSubmitWizEJB PostConstruct called!");
......@@ -134,87 +129,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
folder.mkdirs();
System.out.println("GSTN Folder created");
}
sql = "SELECT SERVICE_CODE, SERVICE_URI FROM SYSTEM_EVENT_SERVICES WHERE METHOD_NAME = 'GST_API_URL'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
switch(rs.getString("SERVICE_CODE"))
{
case "gsp_base_url" :
{
GSP_API_URL = rs.getString("SERVICE_URI");
}
break;
case "gst_base_url" :
{
GST_API_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_url_v3" :
{
GSTR_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr_auth_url_v2" :
{
AUTH_TOKEN_URL_V2 = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url_v2" :
{
GSTR1_URL_V2 = rs.getString("SERVICE_URI");
}
break;
case "gstr2_url_v2" :
{
GSTR2_URL_V2 = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url_v3" :
{
GSTR1_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr2_url_v3" :
{
GSTR2_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr3b_url_v3" :
{
GSTR3B_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr_filedet_url" :
{
FILEDET_URL = rs.getString("SERVICE_URI");
}
break;
}
}
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
System.out.println("GST_API_URL["+GST_API_URL+"]");
System.out.println("AUTH_TOKEN_URL_V2["+AUTH_TOKEN_URL_V2+"]");
System.out.println("GSTR_URL_V3["+GSTR_URL_V3+"]");
System.out.println("GSTR1_URL_V2["+GSTR1_URL_V2+"]");
System.out.println("GSTR2_URL_V2["+GSTR2_URL_V2+"]");
System.out.println("GSTR1_URL_V3["+GSTR1_URL_V3+"]");
System.out.println("GSTR2_URL_V3["+GSTR2_URL_V3+"]");
System.out.println("GSTR3B_URL_V3["+GSTR3B_URL_V3+"]");
System.out.println("FILEDET_URL["+FILEDET_URL+"]");
}
catch (Exception e)
{
......@@ -295,6 +209,60 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("currentColumn["+currentColumn+"] currentFormNo["+currentFormNo+"]" );
sql = "SELECT SERVICE_CODE, SERVICE_URI FROM SYSTEM_EVENT_SERVICES WHERE METHOD_NAME = 'GST_API_URL'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
switch(rs.getString("SERVICE_CODE"))
{
case "base_url" :
{
BASE_API_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_auth_url" :
{
AUTH_TOKEN_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_retstatus_url" :
{
GSTR_RETSTAT_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url" :
{
GSTR1_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr2_url" :
{
GSTR2_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr3b_url" :
{
GSTR3B_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_filedet_url" :
{
FILEDET_URL = rs.getString("SERVICE_URI");
}
break;
}
}
closeResources(rs, pstmt);
System.out.println("BASE_API_URL["+BASE_API_URL+"]");
System.out.println("AUTH_TOKEN_URL["+AUTH_TOKEN_URL+"]");
System.out.println("GSTR_URL["+GSTR_RETSTAT_URL+"]");
System.out.println("GSTR1_URL["+GSTR1_URL+"]");
System.out.println("GSTR2_URL["+GSTR2_URL+"]");
System.out.println("GSTR3B_URL["+GSTR3B_URL+"]");
System.out.println("FILEDET_URL["+FILEDET_URL+"]");
valueXmlString = new StringBuffer( "<?xml version=\"1.0\"?><Root><Header><editFlag>" );
valueXmlString.append( editFlag ).append( "</editFlag></Header>" );
......@@ -424,266 +392,199 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
}
sql = " SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ? AND SUBMIT_STATUS = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, recType);
pstmt.setString(4, "S");
transactionId = UUID.randomUUID().toString().replaceAll("-", "");
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstinNo;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
rs = pstmt.executeQuery();
if(rs.next())
{
submitRowCnt = rs.getInt("CNT");
}
closeResources(rs, pstmt);
otp = checkNull(e12GenericUtility.getColumnValue("otp", dom1));
System.out.println("submitRowCnt=["+submitRowCnt+"]");
String encryptedOTP = aesEncryption.encryptEK(otp.getBytes(), appKeyInBytes);
if("GETINV".equalsIgnoreCase(action) || "SUBMIT".equalsIgnoreCase(action))
{
File baseDir = new File(fileDownloadDir);
String baseDirPath = baseDir.getAbsolutePath();
String finalDirPath = baseDirPath + File.separator + gstinNo + File.separator + periodCode + File.separator + returnType;
File finalDir = new File(finalDirPath);
if(!finalDir.exists())
{
boolean isFoderCreated = finalDir.mkdirs();
if(isFoderCreated)
{
System.out.println("433.final folder structure created for ["+gstinNo+"] for return period["+periodCode+"] for ["+returnType+"]");
}
}
else
{
if(submitRowCnt == 0)
{
String[] fileList = finalDir.list();
for(String eachFileName : fileList)
{
File eachFile = new File(finalDir.getPath(), eachFileName);
eachFile.delete();
}
boolean isDeleted = finalDir.delete();
System.out.println("Old folder deleted["+isDeleted+"]");
if(isDeleted && !finalDir.exists())
{
boolean isFoderCreated = finalDir.mkdirs();
if(isFoderCreated)
{
System.out.println("452.final folder structure created for ["+gstinNo+"] for return period["+periodCode+"] for ["+returnType+"]");
}
}
}
else
{
isLocalDataFiles = true;
}
}
saveFilePath = finalDir.getAbsolutePath();
}
if(!isLocalDataFiles )
{
transactionId = UUID.randomUUID().toString().replaceAll("-", "");
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstinNo;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
otp = checkNull(e12GenericUtility.getColumnValue("otp", dom1));
String encryptedOTP = aesEncryption.encryptEK(otp.getBytes(), appKeyInBytes);
JSONObject authTokenReqObj = new JSONObject();
authTokenReqObj.put("action", "AUTHTOKEN");
authTokenReqObj.put("username", userName);
authTokenReqObj.put("app_key", appKeyEncryptedAndCoded);
authTokenReqObj.put("otp", encryptedOTP);
JSONObject authTokenReqObj = new JSONObject();
authTokenReqObj.put("action", "AUTHTOKEN");
authTokenReqObj.put("username", userName);
authTokenReqObj.put("app_key", appKeyEncryptedAndCoded);
authTokenReqObj.put("otp", encryptedOTP);
HttpRequest authTokenReq = Unirest.post(String.format("%s%s", GSP_API_URL, AUTH_TOKEN_URL_V2))
.header("Content-Type",APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("state-cd", stateCode)
.header("ip-usr", ipAddress)
.header("txn", transactionId)
.header("app_key", appKeyEncryptedAndCoded)
.header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature)
.body(new JsonNode(authTokenReqObj.toString()))
.getHttpRequest();
System.out.println("authtoken url["+authTokenReq.getUrl()+"]");
System.out.println("authtoken method["+authTokenReq.getHttpMethod()+"]");
System.out.println("authtoken request header["+authTokenReq.getHeaders()+"]");
System.out.println("authtoken request payload["+IOUtils.toString(authTokenReq.getBody().getEntity().getContent())+"]");
HttpResponse<JsonNode> authTokenResp = authTokenReq.asJson();
HttpRequest authTokenReq = Unirest.post(String.format("%s%s", BASE_API_URL, AUTH_TOKEN_URL))
.header("Content-Type",APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("state-cd", stateCode)
.header("ip-usr", ipAddress)
.header("txn", transactionId)
.header("app_key", appKeyEncryptedAndCoded)
.header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature)
.body(new JsonNode(authTokenReqObj.toString()))
.getHttpRequest();
System.out.println("authtoken url["+authTokenReq.getUrl()+"]");
System.out.println("authtoken method["+authTokenReq.getHttpMethod()+"]");
System.out.println("authtoken request header["+authTokenReq.getHeaders()+"]");
System.out.println("authtoken request payload["+IOUtils.toString(authTokenReq.getBody().getEntity().getContent())+"]");
HttpResponse<JsonNode> authTokenResp = authTokenReq.asJson();
System.out.println(String.format("authTokenResp Request : Status[%s] Response[%s]", authTokenResp.getStatus(), authTokenResp.getBody()));
if(authTokenResp.getStatus() == 200)
{
JSONObject object = authTokenResp.getBody().getObject();
if (object.has("auth_token") && object.has("sek") && object.has("status_cd") && Objects.equals(object.getString("status_cd"), "1"))
{
callStatus = "1";
authToken = object.getString("auth_token");
sek = object.getString("sek");
authSEK = aesEncryption.decrypt(sek, appKeyInBytes);
System.out.println("AuthSEK = "+ aesEncryption.encodeBase64String(authSEK));
}
else
{
callStatus = "2";
JSONObject errorJSON = authTokenResp.getBody().getObject().getJSONObject("error");
responseJsonStr = errorJSON.toString();
if("AUTH4033".equalsIgnoreCase(errorJSON.getString("error_cd")))
{
errorXML = new ITMDBAccessEJB().getErrorString("","VTINVOTP","","",conn);
}
else
{
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
}
}
else if(authTokenResp.getStatus() == 500)
{
callStatus = "2";
errMsg = "Message : Error occurred at GSTN server \nResponse code : "+authTokenResp.getStatus();
responseJsonStr = errMsg;
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
else
{
callStatus = "2";
JSONObject errorJSON = authTokenResp.getBody().getObject().getJSONObject("error");
responseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
APICallData apiCallData = new APICallData();
apiCallData.setPeriodCode(periodCode);
apiCallData.setCallDate(new Date());
apiCallData.setSiteCode(siteCode);
apiCallData.setUserId(loginCode);
apiCallData.setCallType("AUTHTOKEN");
apiCallData.setRecType(recType);
apiCallData.setNoOfRecords(0);
apiCallData.setCallStatus(callStatus);
apiCallData.setResponseId(responseId);
apiCallData.setResponseJsonStr(responseJsonStr);
apiCallData.setChgUser(loginCode);
apiCallData.setChgDate(new Date());
apiCallData.setChgTerm(chgTerm);
gstCommonUtil.updateAPICallLogHistory(apiCallData, null);
if( authToken != null && authToken.trim().length()>0 && authSEK != null)
{
if("GSTR1".equalsIgnoreCase(returnType))
{
if("SUBMIT".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
else if("FILE".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
else if("GETINV".equalsIgnoreCase(action))
{
retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
}
if("GSTR2".equalsIgnoreCase(returnType))
{
if("SUBMIT".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr2Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
retXML += downloadGstr2Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
else if("FILE".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr2Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
else if("GETINV".equalsIgnoreCase(action))
{
retXML += downloadGstr2Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
}
if("GSTR3B".equalsIgnoreCase(returnType))
{
if("SUBMIT".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr3bSummary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
else if("FILE".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr3bSummary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
}
}
}
else
{
retXML = getDataXMLFromJsonFile("");
}
System.out.println(String.format("authTokenResp Request : Status[%s] Response[%s]", authTokenResp.getStatus(), authTokenResp.getBody()));
if(authTokenResp.getStatus() == 200)
{
JSONObject object = authTokenResp.getBody().getObject();
if (object.has("auth_token") && object.has("sek") && object.has("status_cd") && Objects.equals(object.getString("status_cd"), "1"))
{
callStatus = "1";
authToken = object.getString("auth_token");
sek = object.getString("sek");
authSEK = aesEncryption.decrypt(sek, appKeyInBytes);
System.out.println("AuthSEK = "+ aesEncryption.encodeBase64String(authSEK));
}
else
{
callStatus = "2";
JSONObject errorJSON = authTokenResp.getBody().getObject().getJSONObject("error");
responseJsonStr = errorJSON.toString();
if("AUTH4033".equalsIgnoreCase(errorJSON.getString("error_cd")))
{
errorXML = new ITMDBAccessEJB().getErrorString("","VTINVOTP","","",conn);
}
else
{
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
}
}
else if(authTokenResp.getStatus() == 500)
{
callStatus = "2";
errMsg = "Message : Error occurred at GSTN server \nResponse code : "+authTokenResp.getStatus();
responseJsonStr = errMsg;
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
else
{
callStatus = "2";
JSONObject errorJSON = authTokenResp.getBody().getObject().getJSONObject("error");
responseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
APICallData apiCallData = new APICallData();
apiCallData.setPeriodCode(periodCode);
apiCallData.setCallDate(new Date());
apiCallData.setSiteCode(siteCode);
apiCallData.setUserId(loginCode);
apiCallData.setCallType("AUTHTOKEN");
apiCallData.setRecType(recType);
apiCallData.setNoOfRecords(0);
apiCallData.setCallStatus(callStatus);
apiCallData.setResponseId(responseId);
apiCallData.setResponseJsonStr(responseJsonStr);
apiCallData.setChgUser(loginCode);
apiCallData.setChgDate(new Date());
apiCallData.setChgTerm(chgTerm);
gstCommonUtil.updateAPICallLogHistory(apiCallData, null);
if( authToken != null && authToken.trim().length()>0 && authSEK != null)
{
if("GSTR1".equalsIgnoreCase(returnType))
{
if("SUBMIT".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
else if("FILE".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
else if("GETINV".equalsIgnoreCase(action))
{
retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
}
if("GSTR2".equalsIgnoreCase(returnType))
{
if("SUBMIT".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr2Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
retXML += downloadGstr2Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
else if("FILE".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr2Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
else if("GETINV".equalsIgnoreCase(action))
{
retXML += downloadGstr2Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
}
}
if("GSTR3B".equalsIgnoreCase(returnType))
{
if("SUBMIT".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr3bSummary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
else if("FILE".equalsIgnoreCase(action))
{
summaryDataJsonStr += getGstr3bSummary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0 && summaryDataJsonStr.indexOf("Message :") == -1)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
else if(summaryDataJsonStr.indexOf("Message :") >= 0)
{
retXML += summaryDataJsonStr;
}
}
}
}
valueXmlString.append("<Detail2 domID='1'>");
valueXmlString.append("<auth_token><![CDATA["+ authToken +"]]></auth_token>");
......@@ -1387,7 +1288,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
otpRequest.put("app_key", appKeyEncryptedAndCoded);
otpRequest.put("username", userName);
HttpRequest otpReq = Unirest.post(String.format("%s%s", GSP_API_URL,AUTH_TOKEN_URL_V2))
HttpRequest otpReq = Unirest.post(String.format("%s%s", BASE_API_URL,AUTH_TOKEN_URL))
.header("Content-Type", APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
......@@ -1600,49 +1501,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
retResponseXML = "<root><error_message><![CDATA[Message : "+dataErrMsg+"]]></error_message></root>";
}
}
else if("SUBMIT_CNT".equalsIgnoreCase(action))
{
String periodCode = "", siteCode = "", recordType = "", recType = "", submitRowCnt = "";
periodCode = reqParamMap.get("period_code");
siteCode = reqParamMap.get("site_code");
recordType = reqParamMap.get("rec_type");
if("GSTR1".equalsIgnoreCase(recordType))
{
recType = "1";
}
else if("GSTR2".equalsIgnoreCase(recordType))
{
recType = "2";
}
else if("GSTR3".equalsIgnoreCase(recordType))
{
recType = "3";
}
else if("GSTR3B".equalsIgnoreCase(recordType))
{
recType = "6";
}
sql = " SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ? AND SUBMIT_STATUS = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, recType);
pstmt.setString(4, "S");
rs = pstmt.executeQuery();
if(rs.next())
{
submitRowCnt = String.valueOf(rs.getInt("CNT"));
}
closeResources(rs, pstmt);
System.out.println("submitRowCnt=["+submitRowCnt+"]");
retResponseXML = "<root><submit_cnt><![CDATA["+submitRowCnt+"]]></submit_cnt></root>";
}
}
catch (Exception e)
{
......@@ -1692,7 +1550,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstinNo;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest getDataReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
HttpRequest getDataReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR1_URL))
.queryString("action", action)
.queryString("gstin", gstinNo)
.queryString("ret_period", periodCode)
......@@ -1746,7 +1604,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
else
{
dataXML = XML.toString(getJsonDataJsonObj);
writeDatatoJsonFile(getJsonDataJsonObj.toString(), action);
//writeDatatoJsonFile(getJsonDataJsonObj.toString(), action);
}
......@@ -1883,7 +1741,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstinNo;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest getDataReq = Unirest.get(String.format("%s%s", GSP_API_URL,GSTR2_URL_V3))
HttpRequest getDataReq = Unirest.get(String.format("%s%s", BASE_API_URL,GSTR2_URL))
.queryString("action", action)
.queryString("gstin", gstinNo)
.queryString("ret_period", periodCode)
......@@ -2073,7 +1931,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest getGstr1SumryReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
HttpRequest getGstr1SumryReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR1_URL))
.queryString("action","RETSUM")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
......@@ -2191,7 +2049,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest getGstr2SumryReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR2_URL_V3))
HttpRequest getGstr2SumryReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR2_URL))
.queryString("action","RETSUM")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
......@@ -2309,7 +2167,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest getGstr3bSumryReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR3B_URL_V3))
HttpRequest getGstr3bSumryReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR3B_URL))
.queryString("action","RETSUM")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
......@@ -2898,7 +2756,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest fileDetailsReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR_URL_V3))
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
......@@ -3002,7 +2860,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
inputStream.close();
}
/*TarArchiveInputStream tarInput = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(filePath)));
TarArchiveInputStream tarInput = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(filePath)));
TarArchiveEntry currentEntry = tarInput.getNextTarEntry();
BufferedReader br = null;
while (currentEntry != null)
......@@ -3022,11 +2880,11 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
currentEntry = tarInput.getNextTarEntry();
}
tarInput.close();*/
tarInput.close();
}
}
retString = getDataXMLFromJsonFile(sectionName);
//retString = getDataXMLFromJsonFile(sectionName);
}
}
else
......@@ -3097,16 +2955,16 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
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;
}
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)
{
......
......@@ -54,6 +54,7 @@ import ibase.webitm.bean.gst.CDNRA;
import ibase.webitm.bean.gst.CDNUR;
import ibase.webitm.bean.gst.DocDetails;
import ibase.webitm.bean.gst.DocIssued;
import ibase.webitm.bean.gst.Docs;
import ibase.webitm.bean.gst.EXP;
import ibase.webitm.bean.gst.GSTR1;
import ibase.webitm.bean.gst.GSTR2;
......@@ -94,17 +95,14 @@ import ibase.webitm.utility.TransIDGenerator;
@javax.ejb.Stateless
public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWizPosLocal, GSTDataSubmitWizPosRemote
{
private String GSP_API_URL = "";
private String GST_API_URL = "";
private String AUTH_TOKEN_URL_V2 = "";
private String GSTR1_URL_V2 = "";
private String GSTR2_URL_V2 = "";
private String GSTR_URL_V3 = "";
private String GSTR1_URL_V3 = "";
private String GSTR2_URL_V3 = "";
private String GSTR2A_URL_V3 = "";
private String GSTR3_URL_V3 = "";
private String GSTR3B_URL_V3 = "";
private String BASE_API_URL = "";
private String AUTH_TOKEN_URL = "";
private String GSTR_RETSTAT_URL = "";
private String GSTR1_URL = "";
private String GSTR2_URL = "";
private String GSTR3_URL = "";
private String GSTR2A_URL = "";
private String GSTR3B_URL = "";
private String FILEDET_URL = "";
private final String APPLICATION_JSON = "application/json";
private String appKey = "";
......@@ -128,9 +126,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
@PostConstruct
public void postConstruct()
{
String sql = "", gstnPublicKeyName = "", gspPrivateKeyName = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
String gstnPublicKeyName = "", gspPrivateKeyName = "";
try(java.util.Scanner sc = new java.util.Scanner(new java.net.URL("https://api.ipify.org").openStream(), "UTF-8").useDelimiter("\\A"))
{
System.out.println("GSTDataSubmitWizPos PostConstruct called!");
......@@ -163,97 +159,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspSignature = new GSPSignature();
String privateKeyPath = "/ibase/webitm/resources/gst/"+gspPrivateKeyName.trim()+".pem";
aspPrivateKey = gspSignature.loadPrivateKey(Thread.currentThread().getContextClassLoader().getResourceAsStream(privateKeyPath));
sql = "SELECT SERVICE_CODE, SERVICE_URI FROM SYSTEM_EVENT_SERVICES WHERE METHOD_NAME = 'GST_API_URL'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
switch(rs.getString("SERVICE_CODE"))
{
case "gsp_base_url" :
{
GSP_API_URL = rs.getString("SERVICE_URI");
}
break;
case "gst_base_url" :
{
GST_API_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_auth_url_v2" :
{
AUTH_TOKEN_URL_V2 = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url_v2" :
{
GSTR1_URL_V2 = rs.getString("SERVICE_URI");
}
break;
case "gstr2_url_v2" :
{
GSTR2_URL_V2 = rs.getString("SERVICE_URI");
}
break;
case "gstr_url_v3" :
{
GSTR_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url_v3" :
{
GSTR1_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr2_url_v3" :
{
GSTR2_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr2a_url_v3" :
{
GSTR2A_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr3_url_v3" :
{
GSTR3_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr3b_url_v3" :
{
GSTR3B_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr_filedet_url" :
{
FILEDET_URL = rs.getString("SERVICE_URI");
}
break;
}
}
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
System.out.println("GST_API_URL["+GST_API_URL+"]");
System.out.println("AUTH_TOKEN_URL_V2["+AUTH_TOKEN_URL_V2+"]");
System.out.println("GSTR1_URL_V2["+GSTR1_URL_V2+"]");
System.out.println("GSTR2_URL_V2["+GSTR2_URL_V2+"]");
System.out.println("GSTR1_URL_V3["+GSTR1_URL_V3+"]");
System.out.println("GSTR2_URL_V3["+GSTR2_URL_V3+"]");
System.out.println("GSTR2A_URL_V3["+GSTR2A_URL_V3+"]");
System.out.println("GSTR3_URL_V3["+GSTR3_URL_V3+"]");
System.out.println("GSTR3B_URL_V3["+GSTR3B_URL_V3+"]");
System.out.println("FILEDET_URL["+FILEDET_URL+"]");
}
catch (Exception e)
{
......@@ -291,6 +196,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
APICallData apiCallData = null;
boolean isDataLogged = false;
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
......@@ -302,6 +211,71 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("dcrId["+dcrId+"]");
System.out.println("editFlag["+editFlag+"]");
sql = "SELECT SERVICE_CODE, SERVICE_URI FROM SYSTEM_EVENT_SERVICES WHERE METHOD_NAME = 'GST_API_URL'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
switch(rs.getString("SERVICE_CODE"))
{
case "base_url" :
{
BASE_API_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_auth_url" :
{
AUTH_TOKEN_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_retstatus_url" :
{
GSTR_RETSTAT_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url" :
{
GSTR1_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr2_url" :
{
GSTR2_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr2a_url" :
{
GSTR2A_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr3_url" :
{
GSTR3_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr3b_url" :
{
GSTR3B_URL = rs.getString("SERVICE_URI");
}
break;
case "gstr_filedet_url" :
{
FILEDET_URL = rs.getString("SERVICE_URI");
}
break;
}
}
closeResources(rs, pstmt);
System.out.println("BASE_API_URL["+BASE_API_URL+"]");
System.out.println("AUTH_TOKEN_URL["+AUTH_TOKEN_URL+"]");
System.out.println("GSTR_URL["+GSTR_RETSTAT_URL+"]");
System.out.println("GSTR1_URL["+GSTR1_URL+"]");
System.out.println("GSTR2_URL["+GSTR2_URL+"]");
System.out.println("GSTR2A_URL["+GSTR2A_URL+"]");
System.out.println("GSTR3B_URL["+GSTR3B_URL+"]");
System.out.println("FILEDET_URL["+FILEDET_URL+"]");
allXMLDom = e12GenericUtility.parseString(xmlStringAll);
detail1NList = allXMLDom.getElementsByTagName("Detail1");
......@@ -433,7 +407,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest authTokenReq = Unirest.post(String.format("%s%s", GSP_API_URL, AUTH_TOKEN_URL_V2))
HttpRequest authTokenReq = Unirest.post(String.format("%s%s", BASE_API_URL, AUTH_TOKEN_URL))
.header("Content-Type",APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
......@@ -612,10 +586,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 = "", errMsg = "";
String gstr1Data = "", gstr1Rek = "";
String retStatsData = "", retStatsRek = "";
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
String retString = "";
int num = 0, noOfRecords = 0;
boolean isDataFound = false;
......@@ -626,7 +597,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
ResultSet rs = null, lineRs = null, refDataRs = null;
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "";
String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= "", retStatusCallStatus = "", retStatusResponseJsonStr = "";
ArrayList<String> tranIdList = new ArrayList<String>();
......@@ -644,14 +614,13 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
ArrayList<EXP> expInvoiceList = new ArrayList<EXP>();
ArrayList<AT> atPaidList = new ArrayList<AT>();
ArrayList<CDNUR> cdnurList = new ArrayList<CDNUR>();
ArrayList<DocIssued> docIssuedList = new ArrayList<DocIssued>();
ArrayList<InvLineItem> invLineItems = null;
ArrayList<Invoice> invoices = null;
ArrayList<CDNDetails> cdnDetailsList = null;
ArrayList<HSNDetails> hsnList = new ArrayList<HSNDetails>();
ArrayList<DocDetails> docDetailsList = new ArrayList<DocDetails>();
ArrayList<Docs> docsList = null;
GSTR1 gstr1 = null;
Invoice invoice = null;
......@@ -668,7 +637,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
HSN hsn = null;
HSNDetails hsnDetails = null;
DocIssued docIssued = null;
DocDetails docDetails = null;
try
{
......@@ -1304,26 +1272,171 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hsn.hsnDetails = hsnList;
}
//TODO need to change START
/*docDetails = new DocDetails();
docsList = new ArrayList<Docs>();
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('01','03','04','05','11','12','13','14')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
while(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
Docs docs = new Docs();
docs.docNum = 1;
docs.fromSerialNo = checkNullandTrim(rs.getString("FROM_NO"));
docs.toSerialNo = checkNullandTrim(rs.getString("TO_NO"));
docs.totalNo = rs.getInt("TOT_CNT");
docs.cancelNo = 0;
docs.toatlNetIssued = rs.getInt("TOT_CNT");
docsList.add(docs);
}
}
closeResources(rs, pstmt);
if(docsList.size() > 0)
{
DocDetails docDetails = new DocDetails();
docDetails.serialNumber = 1;
docDetails.docs = docsList;
docDetailsList.add(docDetails);
}
docsList = new ArrayList<Docs>();
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('02')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
while(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
Docs docs = new Docs();
docs.docNum = 1;
docs.fromSerialNo = checkNullandTrim(rs.getString("FROM_NO"));
docs.toSerialNo = checkNullandTrim(rs.getString("TO_NO"));
docs.totalNo = rs.getInt("TOT_CNT");
docs.cancelNo = 0;
docs.toatlNetIssued = rs.getInt("TOT_CNT");
docsList.add(docs);
}
}
closeResources(rs, pstmt);
if(docsList.size() > 0)
{
DocDetails docDetails = new DocDetails();
docDetails.serialNumber = 2;
docDetails.docs = docsList;
docDetailsList.add(docDetails);
}
docsList = new ArrayList<Docs>();
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('30','32')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
while(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
Docs docs = new Docs();
docs.docNum = 1;
docs.fromSerialNo = checkNullandTrim(rs.getString("FROM_NO"));
docs.toSerialNo = checkNullandTrim(rs.getString("TO_NO"));
docs.totalNo = rs.getInt("TOT_CNT");
docs.cancelNo = 0;
docs.toatlNetIssued = rs.getInt("TOT_CNT");
docsList.add(docs);
}
}
closeResources(rs, pstmt);
if(docsList.size() > 0)
{
DocDetails docDetails = new DocDetails();
docDetails.serialNumber = 4;
docDetails.docs = docsList;
docDetailsList.add(docDetails);
}
docsList = new ArrayList<Docs>();
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('29','31')";
docDetails.docNum = 1;
docDetails.fromSerialNo = "1";
docDetails.toSerialNo = "20";
docDetails.totalNo = 20;
docDetails.cancelNo = 3;
docDetails.toatlNetIssued = 17;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
docDetailsList.add(docDetails);
rs = pstmt.executeQuery();
docIssued = new DocIssued();
if(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
Docs docs = new Docs();
docs.docNum = 1;
docs.fromSerialNo = checkNullandTrim(rs.getString("FROM_NO"));
docs.toSerialNo = checkNullandTrim(rs.getString("TO_NO"));
docs.totalNo = rs.getInt("TOT_CNT");
docs.cancelNo = 0;
docs.toatlNetIssued = rs.getInt("TOT_CNT");
docsList.add(docs);
}
}
closeResources(rs, pstmt);
docIssued.serialNumber = 1;
docIssued.docDescr = "Invoices for outward supply";
docIssued.docDetails = docDetailsList;
if(docsList.size() > 0)
{
DocDetails docDetails = new DocDetails();
docDetails.serialNumber = 5;
docDetails.docs = docsList;
docDetailsList.add(docDetails);
}
docIssuedList.add(docIssued);*/
//TODO need to change END
if(docDetailsList.size() > 0)
{
docIssued = new DocIssued();
docIssued.docDetails = docDetailsList;
}
gstr1 = new GSTR1();
gstr1.gstin = gstin;
......@@ -1387,9 +1500,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
gstr1.hsn = hsn;
}
if(docIssuedList.size() > 0)
if(docIssued != null)
{
gstr1.docIssued = docIssuedList;
gstr1.docIssued = docIssued;
}
/*String gspAuthString = "", gspAuthSignature = "", gspAuthStringRet = "", gspAuthSignatureRet = "";
......@@ -1770,7 +1883,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest gstr1SubmitReq = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
HttpRequest gstr1SubmitReq = Unirest.post(String.format("%s%s", BASE_API_URL, GSTR1_URL))
.header("Content-Type", APPLICATION_JSON)
.header("action", "RETSUBMIT")
.header("state-cd", stateCode)
......@@ -1930,7 +2043,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
fileGstr1DataJsonObj.put("st", signType);
fileGstr1DataJsonObj.put("sid", signId);
HttpRequest fileGstr1Req = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
HttpRequest fileGstr1Req = Unirest.post(String.format("%s%s", BASE_API_URL, GSTR1_URL))
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
......@@ -2241,7 +2354,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest getGstr2InvoicesReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR2A_URL_V3))
HttpRequest getGstr2InvoicesReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR2A_URL))
.queryString("action", action)
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
......@@ -3390,7 +3503,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest gstr2SubmitReq = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR2_URL_V3))
HttpRequest gstr2SubmitReq = Unirest.post(String.format("%s%s", BASE_API_URL, GSTR2_URL))
.header("Content-Type", APPLICATION_JSON)
.header("action", "RETSUBMIT")
.header("state-cd", stateCode)
......@@ -3550,7 +3663,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
fileGstr2DataJsonObj.put("st", signType);
fileGstr2DataJsonObj.put("sid", signId);
HttpRequest fileGstr2Req = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR2_URL_V3))
HttpRequest fileGstr2Req = Unirest.post(String.format("%s%s", BASE_API_URL, GSTR2_URL))
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
......@@ -3653,6 +3766,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
InwardSuppliesUnderRevCharge inwardSuppliesUnderRevCharge = null;
OutwardNonGSTSupplies outwardNonGSTSupplies = null;
SuppliesDetails suppliesDetails = null;
ITCData netITCData = null;
InterestLateFeeData interestLateFeeData = null;
InterStateSupplies interStateSupplies = new InterStateSupplies();
......@@ -3730,7 +3845,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
sql = " SELECT GDH.GST_CODE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID=GDD.TRAN_ID"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('06') GROUP BY GDH.GST_CODE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
......@@ -3754,11 +3869,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
interStateSupplies.interUnregisterSuppliesData = interStateSuppliesDataList;
}
interStateSuppliesDataList.clear();
//interStateSuppliesDataList.clear();
sql = " SELECT GDH.GST_CODE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID=GDD.TRAN_ID"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('07') GROUP BY GDH.GST_CODE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
......@@ -3782,11 +3897,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
interStateSupplies.compositionSuppliesData = interStateSuppliesDataList;
}
interStateSuppliesDataList.clear();
//interStateSuppliesDataList.clear();
sql = " SELECT GDH.GST_CODE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID=GDD.TRAN_ID"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('08') GROUP BY GDH.GST_CODE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
......@@ -3810,84 +3925,278 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
interStateSupplies.uinSuppliesData = interStateSuppliesDataList;
}
interStateSuppliesDataList.clear();
ITCData itcData = new ITCData();
itcData.type = "IMPG";
itcData.igstAmount = 136.53;
itcData.cgstAmount = 274;
itcData.sgstAmount = 162.99;
itcData.cessAmount = 103;
itcAvlDataList.add(itcData);
itcData = new ITCData();
itcData.type = "IMPS";
itcData.igstAmount = 136.53;
itcData.cgstAmount = 274;
itcData.sgstAmount = 162.99;
itcData.cessAmount = 103;
itcAvlDataList.add(itcData);
itcData = new ITCData();
itcData.type = "ISRC";
itcData.igstAmount = 136.53;
itcData.cgstAmount = 274;
itcData.sgstAmount = 162.99;
itcData.cessAmount = 103;
itcAvlDataList.add(itcData);
itcData = new ITCData();
itcData.type = "OTH";
itcData.igstAmount = 136.53;
itcData.cgstAmount = 274;
itcData.sgstAmount = 162.99;
itcData.cessAmount = 103;
itcAvlDataList.add(itcData);
itcRevDataList.add(itcData);
itcInelgDataList.add(itcData);
itcData = new ITCData();
itcData.type = "RUL";
itcData.igstAmount = 136.53;
itcData.cgstAmount = 274;
itcData.sgstAmount = 162.99;
itcData.cessAmount = 103;
itcRevDataList.add(itcData);
itcInelgDataList.add(itcData);
ITCData netITCData = new ITCData();
netITCData.igstAmount = 136.53;
netITCData.cgstAmount = 274;
netITCData.sgstAmount = 162.99;
netITCData.cessAmount = 103;
//interStateSuppliesDataList.clear();
sql = " SELECT GDH.TRAN_TYPE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('09','10','11','12','13','14') GROUP BY GDH.TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
while(rs.next())
{
ITCData itcData = new ITCData();
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("09".equalsIgnoreCase(tranType))
{
itcData.type = "IMPG";
}
else if("10".equalsIgnoreCase(tranType))
{
itcData.type = "IMPS";
}
else if("11".equalsIgnoreCase(tranType))
{
itcData.type = "ISRC";
}
else if("12".equalsIgnoreCase(tranType))
{
itcData.type = "ISD";
}
else if("14".equalsIgnoreCase(tranType))
{
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");
itcAvlDataList.add(itcData);
}
closeResources(rs,pstmt);
sql = " SELECT GDH.TRAN_TYPE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('15','16','17','18','19','20') GROUP BY GDH.TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
while(rs.next())
{
ITCData itcData = new ITCData();
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("15".equalsIgnoreCase(tranType))
{
itcData.type = "IMPG";
}
else if("16".equalsIgnoreCase(tranType))
{
itcData.type = "IMPS";
}
else if("17".equalsIgnoreCase(tranType))
{
itcData.type = "ISRC";
}
else if("18".equalsIgnoreCase(tranType))
{
itcData.type = "ISD";
}
else if("19".equalsIgnoreCase(tranType))
{
itcData.type = "RUL";
}
else if("20".equalsIgnoreCase(tranType))
{
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");
itcRevDataList.add(itcData);
}
closeResources(rs,pstmt);
sql = " SELECT GDH.TRAN_TYPE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('21') GROUP BY GDH.TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
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");
}
closeResources(rs, pstmt);
sql = " SELECT GDH.TRAN_TYPE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('22','23','24','25','26','27') GROUP BY GDH.TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
while(rs.next())
{
ITCData itcData = new ITCData();
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("22".equalsIgnoreCase(tranType))
{
itcData.type = "IMPG";
}
else if("23".equalsIgnoreCase(tranType))
{
itcData.type = "IMPS";
}
else if("24".equalsIgnoreCase(tranType))
{
itcData.type = "ISRC";
}
else if("25".equalsIgnoreCase(tranType))
{
itcData.type = "ISD";
}
else if("26".equalsIgnoreCase(tranType))
{
itcData.type = "RUL";
}
else if("27".equalsIgnoreCase(tranType))
{
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");
itcInelgDataList.add(itcData);
}
closeResources(rs,pstmt);
ITCEligibilty itcEligibility = new ITCEligibilty();
itcEligibility.itcAvailable = itcAvlDataList;
itcEligibility.itcReversed = itcRevDataList;
itcEligibility.netITCAvailable = netITCData;
itcEligibility.itcIneligible = itcInelgDataList;
InwardSuppliesDetails inwardSuppliesDetails = new InwardSuppliesDetails();
inwardSuppliesDetails.type = "GST";
inwardSuppliesDetails.interSuppliesAmount = 1000;
inwardSuppliesDetails.intraSuppliesAmount = 2000;
inwardSuppliesList.add(inwardSuppliesDetails);
inwardSuppliesDetails = new InwardSuppliesDetails();
inwardSuppliesDetails.type = "NONGST";
inwardSuppliesDetails.interSuppliesAmount = 1000;
inwardSuppliesDetails.intraSuppliesAmount = 2000;
inwardSuppliesList.add(inwardSuppliesDetails);
if(itcAvlDataList.size() > 0)
{
itcEligibility.itcAvailable = itcAvlDataList;
}
if(itcRevDataList.size() > 0)
{
itcEligibility.itcReversed = itcRevDataList;
}
if(netITCData != null)
{
itcEligibility.netITCAvailable = netITCData;
}
if(itcInelgDataList.size() > 0)
{
itcEligibility.itcIneligible = itcInelgDataList;
}
InwardSuppliesDetails inwardGSTSupplies = new InwardSuppliesDetails();
sql = " SELECT GDH.TRAN_TYPE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('28','30') GROUP BY GDH.TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
while(rs.next())
{
inwardGSTSupplies.type = "GST";
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("28".equalsIgnoreCase(tranType))
{
inwardGSTSupplies.interSuppliesAmount = rs.getDouble("TAXABLE_AMT");
}
else if("30".equalsIgnoreCase(tranType))
{
inwardGSTSupplies.intraSuppliesAmount = rs.getDouble("TAXABLE_AMT");
}
}
closeResources(rs, pstmt);
inwardSuppliesList.add(inwardGSTSupplies);
InwardSuppliesDetails inwardnonGSTSupplies = new InwardSuppliesDetails();
sql = " SELECT GDH.TRAN_TYPE, SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID=GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('29','31') GROUP BY GDH.TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
while(rs.next())
{
inwardnonGSTSupplies.type = "NONGST";
String tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
if("29".equalsIgnoreCase(tranType))
{
inwardnonGSTSupplies.interSuppliesAmount = rs.getDouble("TAXABLE_AMT");
}
else if("31".equalsIgnoreCase(tranType))
{
inwardnonGSTSupplies.intraSuppliesAmount = rs.getDouble("TAXABLE_AMT");
}
}
closeResources(rs, pstmt);
inwardSuppliesList.add(inwardnonGSTSupplies);
InwardSupplies inwardSupplies = new InwardSupplies();
inwardSupplies.inwardSuppliesDetails = inwardSuppliesList;
if(inwardSuppliesList.size() > 0)
{
inwardSupplies.inwardSuppliesDetails = inwardSuppliesList;
}
InterestLateFeeData interestLateFeeData = new InterestLateFeeData();
interestLateFeeData.igstAmount = 10;
interestLateFeeData.cgstAmount = 20;
interestLateFeeData.sgstAmount = 30;
interestLateFeeData.cessAmount = 40;
sql = " SELECT SUM(GDD.TAXABLE_AMT) AS TAXABLE_AMT, SUM(GDD.IGST_AMT) AS IGST_AMT, SUM(GDD.CGST_AMT) AS CGST_AMT, SUM(GDD.SGST_AMT) AS SGST_AMT, SUM(GDD.CESS_AMT) AS CESS_AMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID=GDD.TRAN_ID"
+ " AND GDH.REC_TYPE = ? AND GDH.PRD_CODE = ? AND GDH.SITE_CODE = ? AND GDH.SUBMIT_STATUS = ? AND GDH.TRAN_TYPE IN ('32')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "6");
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, "P");
rs = pstmt.executeQuery();
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");
}
closeResources(rs, pstmt);
gstr3b = new GSTR3B();
......@@ -3900,13 +4209,16 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gstr3b.interStateSupplies = interStateSupplies;
gstr3b.itcEligibility = itcEligibility;
gstr3b.inwardSupplies = inwardSupplies;
gstr3b.interestLateFeeData = interestLateFeeData;
if(interestLateFeeData != null)
{
gstr3b.interestLateFeeData = interestLateFeeData;
}
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(gstr3b);
System.out.println("jsonPaylaod to save GSTR3B ["+json+"]");
System.out.println("jsonPayload to save GSTR3B ["+json+"]");
retString = saveGSTRData(json, noOfRecords, tranIdList, "6", conn, xtraParams);
......@@ -3957,7 +4269,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpRequest gstr3bSubmitReq = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR3B_URL_V3))
HttpRequest gstr3bSubmitReq = Unirest.post(String.format("%s%s", BASE_API_URL, GSTR3B_URL))
.header("Content-Type", APPLICATION_JSON)
.header("action", "RETSUBMIT")
.header("state-cd", stateCode)
......@@ -4118,7 +4430,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
fileGstr3bDataJsonObj.put("st", signType);
fileGstr3bDataJsonObj.put("sid", signId);
HttpRequest fileGstr3bReq = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR3B_URL_V3))
HttpRequest fileGstr3bReq = Unirest.post(String.format("%s%s", BASE_API_URL, GSTR3B_URL))
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
......@@ -5655,22 +5967,22 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("1".equalsIgnoreCase(recType))
{
RETURN_URL = GSTR1_URL_V3;
RETURN_URL = GSTR1_URL;
}
else if("2".equalsIgnoreCase(recType))
{
RETURN_URL = GSTR2_URL_V3;
RETURN_URL = GSTR2_URL;
}
else if("3".equalsIgnoreCase(recType))
{
RETURN_URL = GSTR3_URL_V3;
RETURN_URL = GSTR3_URL;
}
else if("6".equalsIgnoreCase(recType))
{
RETURN_URL = GSTR3B_URL_V3;
RETURN_URL = GSTR3B_URL;
}
HttpRequest saveGstrReq = Unirest.put(String.format("%s%s", GSP_API_URL, RETURN_URL))
HttpRequest saveGstrReq = Unirest.put(String.format("%s%s", BASE_API_URL, RETURN_URL))
.header("Content-Type", APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
......@@ -5737,7 +6049,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthStringRet = clientId + ":" + transactionId + ":" + timeStampRet + ":" + gstin;
gspAuthSignatureRet = gspSignature.sign(gspAuthStringRet, aspPrivateKey);
HttpRequest retStatusReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR_URL_V3))
HttpRequest retStatusReq = Unirest.get(String.format("%s%s", BASE_API_URL, GSTR_RETSTAT_URL))
.queryString("action","RETSTATUS")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
......
......@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.DocDetails;
import ibase.webitm.bean.gst.DocIssued;
import ibase.webitm.bean.gst.Docs;
public class DocSerializer extends BaseSerializer<DocIssued>
{
......@@ -15,35 +16,38 @@ public class DocSerializer extends BaseSerializer<DocIssued>
public void serialize(DocIssued docIssued, JsonGenerator json, SerializerProvider serializeProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
if(docIssued.taxPayerAction != null)
{
json.writeStringField("flag", docIssued.taxPayerAction);
}
json.writeNumberField("doc_num", docIssued.serialNumber);
json.writeStringField("doc_typ", docIssued.docDescr);
json.writeFieldName("docs");
json.writeFieldName("doc_det");
json.writeStartArray();
for(DocDetails docDetail : docIssued.docDetails)
{
json.writeStartObject();
json.writeNumberField("doc_num", docDetail.serialNumber);
json.writeNumberField("num", docDetail.docNum);
json.writeStringField("from", docDetail.fromSerialNo);
json.writeStringField("to", docDetail.toSerialNo);
json.writeNumberField("totnum", docDetail.totalNo);
json.writeNumberField("cancel", docDetail.cancelNo);
json.writeNumberField("net_issue", docDetail.toatlNetIssued);
json.writeFieldName("docs");
json.writeStartArray();
for(Docs doc : docDetail.docs)
{
json.writeStartObject();
json.writeNumberField("num", doc.docNum);
json.writeStringField("from", doc.fromSerialNo);
json.writeStringField("to", doc.toSerialNo);
json.writeNumberField("totnum", doc.totalNo);
json.writeNumberField("cancel", doc.cancelNo);
json.writeNumberField("net_issue", doc.toatlNetIssued);
json.writeEndObject();
}
json.writeEndArray();
json.writeEndObject();
}
json.writeEndArray();
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