Commit 67ec3b66 authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106202 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 9e248de7
package ibase.webitm.ejb.gst; package ibase.webitm.ejb.gst;
import java.io.InputStream; import java.io.InputStream;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.security.PrivateKey; import java.security.PrivateKey;
import java.sql.Connection; import java.sql.Connection;
...@@ -493,7 +491,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -493,7 +491,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
apiCallData.setCallDate(new Date()); apiCallData.setCallDate(new Date());
apiCallData.setSiteCode(siteCode); apiCallData.setSiteCode(siteCode);
apiCallData.setUserId(loginCode); apiCallData.setUserId(loginCode);
apiCallData.setCallType("GET_"+action); apiCallData.setCallType("AUTHTOKEN");
apiCallData.setRecType(recType); apiCallData.setRecType(recType);
apiCallData.setNoOfRecords(0); apiCallData.setNoOfRecords(0);
apiCallData.setCallStatus(callStatus); apiCallData.setCallStatus(callStatus);
...@@ -1135,7 +1133,15 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1135,7 +1133,15 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
byte[] getrespJsonInBytes = aesEncryption.decodeBase64StringTOByte(getrespJsoninBase64); byte[] getrespJsonInBytes = aesEncryption.decodeBase64StringTOByte(getrespJsoninBase64);
String getjsonData = new String(getrespJsonInBytes); String getjsonData = new String(getrespJsonInBytes);
responseJsonStr = getjsonData; if(getjsonData.length() > 500)
{
responseJsonStr = getjsonData.substring(0,499);//TODO need to change column size value is too large
}
else
{
responseJsonStr = getjsonData;//TODO need to change column size value is too large
}
System.out.println("json response["+getjsonData+"] for ["+action+"]"); System.out.println("json response["+getjsonData+"] for ["+action+"]");
if("B2B".equalsIgnoreCase(action)) if("B2B".equalsIgnoreCase(action))
...@@ -1296,7 +1302,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1296,7 +1302,6 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
if(getGstr1SumryRespObj.has("data") && getGstr1SumryRespObj.has("rek")) if(getGstr1SumryRespObj.has("data") && getGstr1SumryRespObj.has("rek"))
{ {
callStatus = "1"; callStatus = "1";
responseJsonStr = getGstr1SumryRespObj.toString();
String gstr1Sumrydata = getGstr1SumryRespObj.getString("data"); String gstr1Sumrydata = getGstr1SumryRespObj.getString("data");
String gstr1Sumryrek = getGstr1SumryRespObj.getString("rek"); String gstr1Sumryrek = getGstr1SumryRespObj.getString("rek");
...@@ -1308,6 +1313,15 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1308,6 +1313,15 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
JSONObject gstr1SumryJsonObj = new JSONObject(new String(respJsonInBytes)); JSONObject gstr1SumryJsonObj = new JSONObject(new String(respJsonInBytes));
if(new String(respJsonInBytes).length() > 500)
{
responseJsonStr = new String(respJsonInBytes).substring(0,499);//TODO need to change column size value is too large
}
else
{
responseJsonStr = new String(respJsonInBytes);//TODO need to change column size value is too large
}
retString = "<summary_data>" + XML.toString(gstr1SumryJsonObj) + "</summary_data>"; retString = "<summary_data>" + XML.toString(gstr1SumryJsonObj) + "</summary_data>";
......
package ibase.webitm.ejb.gst; package ibase.webitm.ejb.gst;
import java.io.InputStream; import java.io.InputStream;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.rmi.RemoteException; import java.rmi.RemoteException;
import java.security.PrivateKey; import java.security.PrivateKey;
import java.sql.Connection; import java.sql.Connection;
...@@ -15,6 +13,7 @@ import java.util.Base64; ...@@ -15,6 +13,7 @@ import java.util.Base64;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
...@@ -77,6 +76,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -77,6 +76,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
private String AUTH_TOKEN_URL_V2 = ""; private String AUTH_TOKEN_URL_V2 = "";
private String GSTR1_URL_V2 = ""; private String GSTR1_URL_V2 = "";
private String GSTR2_URL_V2 = ""; private String GSTR2_URL_V2 = "";
private String GSTR_URL_V3 = "";
private String GSTR1_URL_V3 = ""; private String GSTR1_URL_V3 = "";
private String GSTR2_URL_V3 = ""; private String GSTR2_URL_V3 = "";
private final String APPLICATION_JSON = "application/json"; private final String APPLICATION_JSON = "application/json";
...@@ -149,6 +149,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -149,6 +149,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
GSTR2_URL_V2 = rs.getString("SERVICE_URI"); GSTR2_URL_V2 = rs.getString("SERVICE_URI");
} }
break; break;
case "gstr_url_v3" :
{
GSTR_URL_V3 = rs.getString("SERVICE_URI");
}
break;
case "gstr1_url_v3" : case "gstr1_url_v3" :
{ {
GSTR1_URL_V3 = rs.getString("SERVICE_URI"); GSTR1_URL_V3 = rs.getString("SERVICE_URI");
...@@ -281,7 +286,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -281,7 +286,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("returnsType["+returnsType+"] action ["+action+"]"); System.out.println("returnsType["+returnsType+"] action ["+action+"]");
if("SUBMIT".equalsIgnoreCase(action)) if("SUBMIT".equalsIgnoreCase(action) || "FILE".equalsIgnoreCase(action))
{ {
detail2NList = allXMLDom.getElementsByTagName("Detail2"); detail2NList = allXMLDom.getElementsByTagName("Detail2");
detail2ChildNList = detail2NList.item(0).getChildNodes(); detail2ChildNList = detail2NList.item(0).getChildNodes();
...@@ -330,6 +335,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -330,6 +335,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
long timeStamp = new Timestamp().getDateTime(); long timeStamp = new Timestamp().getDateTime();
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin; gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey); gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
System.out.println("AUTHTOKEN request url ["+String.format("%s%s", GSP_API_URL, AUTH_TOKEN_URL_V2)+"]");
HttpResponse<JsonNode> authTokenResp = Unirest.post(String.format("%s%s", GSP_API_URL, AUTH_TOKEN_URL_V2)) HttpResponse<JsonNode> authTokenResp = Unirest.post(String.format("%s%s", GSP_API_URL, AUTH_TOKEN_URL_V2))
.header("Content-Type",APPLICATION_JSON) .header("Content-Type",APPLICATION_JSON)
...@@ -338,7 +345,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -338,7 +345,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("state-cd", stateCode) .header("state-cd", stateCode)
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("txn", transactionId) .header("txn", transactionId)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("X-Asp-Auth-Token", gspAuthString) .header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature) .header("X-Asp-Auth-Signature", gspAuthSignature)
.body(new JsonNode(authTokenReq.toString())) .body(new JsonNode(authTokenReq.toString()))
...@@ -399,7 +406,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -399,7 +406,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
if("GETINV".equalsIgnoreCase(action)) if("GETINV".equalsIgnoreCase(action))
{ {
retString = getGstr2Invoices(authToken, stateCode, userName, gstin, periodCode, siteCode, authSEK, xtraParams, conn); retString = downloadGstr2Invoices(authToken, stateCode, userName, gstin, periodCode, siteCode, authSEK, xtraParams, conn);
} }
} }
} }
...@@ -696,7 +703,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -696,7 +703,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
String reason = ""; String reason = "";
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(2017, 07, 01); calendar.set(2017, 06, 01);
Date gstStartDate = calendar.getTime(); Date gstStartDate = calendar.getTime();
refDataSql = "SELECT DESCR FROM GENCODES WHERE MOD_NAME = 'W_GSTR' AND FLD_NAME = 'REAS_CODE' AND FLD_VALUE = ?"; refDataSql = "SELECT DESCR FROM GENCODES WHERE MOD_NAME = 'W_GSTR' AND FLD_NAME = 'REAS_CODE' AND FLD_VALUE = ?";
...@@ -951,7 +958,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -951,7 +958,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
String reason = "", customerType = "", refTranType = ""; String reason = "", customerType = "", refTranType = "";
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(2017, 07, 01); calendar.set(2017, 06, 01);
Date gstStartDate = calendar.getTime(); Date gstStartDate = calendar.getTime();
refDataSql = "SELECT DESCR FROM GENCODES WHERE MOD_NAME = 'W_GSTR' AND FLD_NAME = 'REAS_CODE' AND FLD_VALUE = ?"; refDataSql = "SELECT DESCR FROM GENCODES WHERE MOD_NAME = 'W_GSTR' AND FLD_NAME = 'REAS_CODE' AND FLD_VALUE = ?";
...@@ -1274,7 +1281,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1274,7 +1281,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin; gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey); gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpResponse<JsonNode> gstr1Resp = Unirest.put(String.format("%s/%s", GST_API_URL, GSTR1_URL_V3)) System.out.println("RETSAVE request url ["+String.format("%s%s", GSP_API_URL, GSTR1_URL_V3)+"]");
HttpResponse<JsonNode> gstr1Resp = Unirest.put(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
.header("Content-Type", APPLICATION_JSON) .header("Content-Type", APPLICATION_JSON)
.header("clientid", clientId) .header("clientid", clientId)
.header("client-secret", clientSecret) .header("client-secret", clientSecret)
...@@ -1285,7 +1294,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1285,7 +1294,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("username", userName) .header("username", userName)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("X-Asp-Auth-Token", gspAuthString) .header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature) .header("X-Asp-Auth-Signature", gspAuthSignature)
.body(new JsonNode(gstr1HeaderObj.toString())) .body(new JsonNode(gstr1HeaderObj.toString()))
...@@ -1316,13 +1325,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1316,13 +1325,17 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("transId to getStatus["+transId+"]"); System.out.println("transId to getStatus["+transId+"]");
boolean isRetStatusError = false;
while(true) while(true)
{ {
long timeStampRet = new Timestamp().getDateTime(); long timeStampRet = new Timestamp().getDateTime();
gspAuthStringRet = clientId + ":" + transactionId + ":" + timeStampRet + ":" + gstin; gspAuthStringRet = clientId + ":" + transactionId + ":" + timeStampRet + ":" + gstin;
gspAuthSignatureRet = gspSignature.sign(gspAuthStringRet, aspPrivateKey); gspAuthSignatureRet = gspSignature.sign(gspAuthStringRet, aspPrivateKey);
HttpResponse<JsonNode> retStatusResp = Unirest.get(String.format("%s/%s", GSP_API_URL, GSTR1_URL_V3)) System.out.println("RETSTATUS request url ["+String.format("%s%s", GSP_API_URL, GSTR_URL_V3)+"]");
HttpResponse<JsonNode> retStatusResp = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR_URL_V3))
.queryString("action","RETSTATUS") .queryString("action","RETSTATUS")
.queryString("gstin", gstin) .queryString("gstin", gstin)
.queryString("ret_period", periodCode) .queryString("ret_period", periodCode)
...@@ -1334,7 +1347,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1334,7 +1347,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("username", userName) .header("username", userName)
.header("auth-token", authToken) .header("auth-token", authToken)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId) .header("txn", transactionId)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("gstin", gstin) .header("gstin", gstin)
...@@ -1374,7 +1387,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1374,7 +1387,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
updateSubmissionStatus(tranIdList, conn); updateSubmissionStatus(tranIdList, conn);
} }
break; isRetStatusError = true;
} }
else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd"))) else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{ {
...@@ -1382,15 +1395,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1382,15 +1395,23 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
errMsg = getRetStatusErrMsg(retStatsJsonData); errMsg = getRetStatusErrMsg(retStatsJsonData);
retStatusResponseJsonStr = errMsg; retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; isRetStatusError = true;
} }
else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd"))) else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd")))
{ {
retStatusCallStatus = "2"; retStatusCallStatus = "2";
errMsg = "Message : "+retStatsJsonData.getString("error_msg")+" \nError code : "+retStatsJsonData.getString("errorCd"); 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; retStatusResponseJsonStr = errMsg;
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; isRetStatusError = true;
} }
} }
else else
...@@ -1400,7 +1421,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1400,7 +1421,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
retStatusResponseJsonStr = errorJSON.toString(); retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd"); errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; isRetStatusError = true;
} }
} }
else else
...@@ -1410,7 +1431,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1410,7 +1431,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
retStatusResponseJsonStr = errorJSON.toString(); retStatusResponseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd"); errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; isRetStatusError = true;
} }
APICallData apiCallData = new APICallData(); APICallData apiCallData = new APICallData();
...@@ -1429,6 +1450,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1429,6 +1450,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
apiCallData.setChgTerm(chgTerm); apiCallData.setChgTerm(chgTerm);
gstCommonUtil.updateAPICallLogHistory(apiCallData, null); gstCommonUtil.updateAPICallLogHistory(apiCallData, null);
if(isRetStatusError)
{
break;
}
} }
} }
else else
...@@ -1492,7 +1518,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1492,7 +1518,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin; gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey); gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpResponse<JsonNode> getGstr1SumryResp = Unirest.get(String.format("%s/%s", GSP_API_URL, GSTR1_URL_V3)) System.out.println("RETSUM request url ["+String.format("%s%s", GSP_API_URL, GSTR1_URL_V3)+"]");
HttpResponse<JsonNode> getGstr1SumryResp = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
.queryString("action","RETSUM") .queryString("action","RETSUM")
.queryString("gstin", gstin) .queryString("gstin", gstin)
.queryString("ret_period", periodCode) .queryString("ret_period", periodCode)
...@@ -1503,7 +1531,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1503,7 +1531,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("username", userName) .header("username", userName)
.header("auth-token", authToken) .header("auth-token", authToken)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId) .header("txn", transactionId)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("gstin", gstin) .header("gstin", gstin)
...@@ -1561,7 +1589,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1561,7 +1589,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthStringFile = clientId + ":" + transactionId + ":" + timeStampFile + ":" + gstin; gspAuthStringFile = clientId + ":" + transactionId + ":" + timeStampFile + ":" + gstin;
gspAuthSignatureFile = gspSignature.sign(gspAuthStringFile, aspPrivateKey); gspAuthSignatureFile = gspSignature.sign(gspAuthStringFile, aspPrivateKey);
HttpResponse<JsonNode> fileGstr1Resp = Unirest.post(String.format("%s/%s", GSP_API_URL, GSTR1_URL_V3)) System.out.println("RETFILE request url ["+String.format("%s%s", GSP_API_URL, GSTR1_URL_V3)+"]");
HttpResponse<JsonNode> fileGstr1Resp = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
.header("Content-Type", APPLICATION_JSON) .header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode) .header("state-cd", stateCode)
.header("clientid", clientId) .header("clientid", clientId)
...@@ -1569,7 +1599,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1569,7 +1599,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("username", userName) .header("username", userName)
.header("auth-token", authToken) .header("auth-token", authToken)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId) .header("txn", transactionId)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("gstin", gstin) .header("gstin", gstin)
...@@ -1712,8 +1742,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1712,8 +1742,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
long timeStamp = new Timestamp().getDateTime(); long timeStamp = new Timestamp().getDateTime();
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin; gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey); gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
System.out.println("RETSUBMIT request url ["+String.format("%s%s", GSP_API_URL, GSTR1_URL_V3)+"]");
HttpResponse<JsonNode> gstr1SubmitResp = Unirest.post(String.format("%s/%s", GSP_API_URL, GSTR1_URL_V3)) HttpResponse<JsonNode> gstr1SubmitResp = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
.header("Content-Type", APPLICATION_JSON) .header("Content-Type", APPLICATION_JSON)
.header("action", "RETSUBMIT") .header("action", "RETSUBMIT")
.header("state-cd", stateCode) .header("state-cd", stateCode)
...@@ -1722,7 +1754,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1722,7 +1754,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("username", userName) .header("username", userName)
.header("auth-token", authToken) .header("auth-token", authToken)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId) .header("txn", transactionId)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("gstin", gstin) .header("gstin", gstin)
...@@ -1797,7 +1829,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1797,7 +1829,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
return retString; return retString;
} }
private String getGstr2Invoices(String authToken, String stateCode, String userName, String gstin, String periodCode, String siteCode, byte[] authSEK, String xtraParams, Connection conn) throws ITMException private String downloadGstr2Invoices(String authToken, String stateCode, String userName, String gstin, String periodCode, String siteCode, byte[] authSEK, String xtraParams, Connection conn) throws ITMException
{ {
String retString = ""; String retString = "";
String errMsg = "", gspAuthString = "", gspAuthSignature = ""; String errMsg = "", gspAuthString = "", gspAuthSignature = "";
...@@ -1817,7 +1849,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1817,7 +1849,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin; gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey); gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpResponse<JsonNode> getGstr2InvoicesResp = Unirest.get(String.format("%s/%s", GST_API_URL, GSTR2_URL_V3)) System.out.println("GET "+action+" request url ["+String.format("%s%s", GSP_API_URL, GSTR2_URL_V3)+"]");
HttpResponse<JsonNode> getGstr2InvoicesResp = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR2_URL_V3))
.queryString("action", action) .queryString("action", action)
.queryString("gstin", gstin) .queryString("gstin", gstin)
.queryString("ret_period", periodCode) .queryString("ret_period", periodCode)
...@@ -1828,7 +1862,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1828,7 +1862,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
.header("ip-usr", ipAddress) .header("ip-usr", ipAddress)
.header("username", userName) .header("username", userName)
.header("auth-token", authToken) .header("auth-token", authToken)
.header("app_key", appKeyEncryptedAndCoded) //.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId) .header("txn", transactionId)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("gstin", gstin) .header("gstin", gstin)
...@@ -1859,7 +1893,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1859,7 +1893,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("B2B".equalsIgnoreCase(action)) if("B2B".equalsIgnoreCase(action))
{ {
saveB2BInvoiceData(siteCode, gstr2InvoiceJsonObj, conn); insertB2BInvoiceData(stateCode, siteCode, gstr2InvoiceJsonObj, conn);
}
else if("IMPG".equalsIgnoreCase(action))
{
insertIMGInvoiceData(stateCode, siteCode, gstr2InvoiceJsonObj, conn);
} }
...@@ -1909,7 +1947,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1909,7 +1947,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
return retString; return retString;
} }
private void saveB2BInvoiceData(String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException private void insertB2BInvoiceData(String stateCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
{ {
JSONArray b2bInvArry = new JSONArray(); JSONArray b2bInvArry = new JSONArray();
JSONObject b2bJsonObj = new JSONObject(); JSONObject b2bJsonObj = new JSONObject();
...@@ -1917,22 +1955,88 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1917,22 +1955,88 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
JSONObject b2bInvJsonObj = new JSONObject(); JSONObject b2bInvJsonObj = new JSONObject();
JSONArray b2bInvLineItmsArry = new JSONArray(); JSONArray b2bInvLineItmsArry = new JSONArray();
JSONObject b2bInvLineItemObj = new JSONObject(); JSONObject b2bInvLineItemObj = new JSONObject();
String tranId = "", cptyGSTIN = "", iNum = "", iDate = "", reversCharge = "", docCheckSum = "", gstStateCode = ""; String tranId = "", cptyGSTIN = "", iNum = "", iDate = "", reversCharge = "", docCheckSum = "", pos = "", invType = "", tranType = "";
String itcType = ""; String itcType = "";
int lineNo; int lineNo;
double amount = 0.0, lineAmt = 0.0, irt = 0.0, iamt = 0.0, crt = 0.0, camt = 0.0, srt = 0.0, samt = 0.0, csrt = 0.0, csamt = 0.0, rate = 0.0; double amount = 0.0, lineAmt = 0.0, irt = 0.0, iamt = 0.0, crt = 0.0, camt = 0.0, srt = 0.0, samt = 0.0, csrt = 0.0, csamt = 0.0, rate = 0.0;
double itcIGSTAmt = 0.0, itcCGSTAmt = 0.0; double itcIGSTTaxAmt = 0.0, itcCGSTTaxAmt = 0.0, itcSGSTTaxAmt = 0.0, itcCSGSTTaxAmt =0.0;
String hdrSql = "", detSql = ""; List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null;
PreparedStatement hdrPstmt = null, detPstmt = null; List<String> detColumnList = new ArrayList<String>(), detDataTypeList = new ArrayList<String>();
List<List<String>> detDataList = null;
try try
{ {
hdrColumnList.add("TRAN_ID");
hdrColumnList.add("TRAN_DATE");
hdrColumnList.add("REC_TYPE");
hdrColumnList.add("TRAN_TYPE");
hdrColumnList.add("GST_CODE");
hdrColumnList.add("SUBMIT_STATUS");
hdrColumnList.add("DOC_CHECKSUM");
hdrColumnList.add("DOC_NO");
hdrColumnList.add("DOC_DATE");
hdrColumnList.add("AMOUNT");
hdrColumnList.add("REVERSE_CHRG");
hdrColumnList.add("TAX_REG_NO");
hdrColumnList.add("SITE_CODE");
hdrColumnList.add("DOC_TYPE");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("TIMESTAMP");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("TIMESTAMP");
hdrDataTypeList.add("DOUBLE");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
detColumnList.add("TRAN_ID");
detColumnList.add("LINE_NO");
detColumnList.add("TAXABLE_AMT");
detColumnList.add("IGST_PERC");
detColumnList.add("IGST_AMT");
detColumnList.add("CGST_PERC");
detColumnList.add("CGST_AMT");
detColumnList.add("SGST_PERC");
detColumnList.add("SGST_AMT");
detColumnList.add("CESS_PERC");
detColumnList.add("CESS_AMT");
detColumnList.add("ITC_TYPE");
detColumnList.add("ITC_IGST");
detColumnList.add("ITC_CGST");
detColumnList.add("ITC_SGST");
detColumnList.add("ITC_CESS");
detDataTypeList.add("STRING");
detDataTypeList.add("INT");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("STRING");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
b2bInvArry = gstr2InvoiceJsonObj.getJSONArray("b2b"); b2bInvArry = gstr2InvoiceJsonObj.getJSONArray("b2b");
for(int i = 0; i < b2bInvArry.length(); i++) for(int i = 0; i < b2bInvArry.length(); i++)
{ {
b2bJsonObj = b2bInvArry.getJSONObject(i); b2bJsonObj = b2bInvArry.getJSONObject(i);
cptyGSTIN = b2bJsonObj.getString("ctin"); cptyGSTIN = b2bJsonObj.getString("ctin");
...@@ -1940,6 +2044,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1940,6 +2044,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
for(int j=0; j<b2bInvJsonArry.length(); j++) for(int j=0; j<b2bInvJsonArry.length(); j++)
{ {
hdrDataList = new ArrayList<String>();
b2bInvJsonObj = b2bInvJsonArry.getJSONObject(j); b2bInvJsonObj = b2bInvJsonArry.getJSONObject(j);
iNum = b2bInvJsonObj.getString("inum"); iNum = b2bInvJsonObj.getString("inum");
...@@ -1947,35 +2052,40 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1947,35 +2052,40 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
amount = b2bInvJsonObj.getDouble("val"); amount = b2bInvJsonObj.getDouble("val");
docCheckSum = b2bInvJsonObj.getString("chksum"); docCheckSum = b2bInvJsonObj.getString("chksum");
reversCharge = b2bInvJsonObj.getString("rchrg"); reversCharge = b2bInvJsonObj.getString("rchrg");
gstStateCode = b2bInvJsonObj.getString("pos"); pos = b2bInvJsonObj.getString("pos");
invType = b2bInvJsonObj.getString("inv_typ");
if("Y".equalsIgnoreCase(reversCharge))
{
tranType = "02";
}
else
{
tranType = "01";
}
tranId = generateTranId("w_gstr_purc","","",conn); tranId = generateTranId("w_gstr_purc","","",conn);
hdrSql = "INSERT INTO GST_DATA_HDR (TRAN_ID, TRAN_DATE, REC_TYPE, TRAN_TYPE, GST_CODE, SUBMIT_STATUS, DOC_CHECKSUM, DOC_NO, DOC_DATE, AMOUNT, REVERSE_CHRG, TAX_REG_NO, SITE_CODE) " hdrDataList.add(tranId);
+ "VALUES (?,?,'2','01',?,'D',?,?,?,?,?,?,?)"; hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrPstmt = conn.prepareStatement(hdrSql); hdrDataList.add("2");
hdrPstmt.setString(1, tranId); hdrDataList.add(tranType);
hdrPstmt.setString(2, new SimpleDateFormat(new E12GenericUtility().getApplDateFormat()).format(new Date())); hdrDataList.add(pos);
hdrPstmt.setString(3, gstStateCode); hdrDataList.add("D");
hdrPstmt.setString(4, docCheckSum); hdrDataList.add(docCheckSum);
hdrPstmt.setString(5, iNum); hdrDataList.add(iNum);
hdrPstmt.setString(6, iDate); hdrDataList.add(iDate);
hdrPstmt.setDouble(7, amount); hdrDataList.add(String.valueOf(amount));
hdrPstmt.setString(8, reversCharge); hdrDataList.add(reversCharge);
hdrPstmt.setString(9, cptyGSTIN); hdrDataList.add(cptyGSTIN);
hdrPstmt.setString(10, siteCode); hdrDataList.add(siteCode);
hdrDataList.add(invType);
int hdrCnt = hdrPstmt.executeUpdate(); detDataList = new ArrayList<List<String>>();
List<String> tempList = new ArrayList<String>();
System.out.println("GST_DATA_HDR insert count ["+hdrCnt+"]");
b2bInvLineItmsArry = b2bInvJsonObj.getJSONArray("itms"); b2bInvLineItmsArry = b2bInvJsonObj.getJSONArray("itms");
detSql = "INSERT INTO GST_DATA_DET (TRAN_ID, LINE_NO, LINE_TYPE, GS_CODE, TAXABLE_AMT, IGST_PERC, IGST_AMT, CGST_PERC, CGST_AMT, SGST_PERC, SGST_AMT, CESS_PERC, CESS_AMT) "
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
detPstmt = conn.prepareStatement(detSql);
for(int k=0; k<b2bInvLineItmsArry.length(); k++) for(int k=0; k<b2bInvLineItmsArry.length(); k++)
{ {
b2bInvLineItemObj = b2bInvLineItmsArry.getJSONObject(k); b2bInvLineItemObj = b2bInvLineItmsArry.getJSONObject(k);
...@@ -1991,39 +2101,217 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1991,39 +2101,217 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
samt = tempJSONObj.getDouble("samt"); samt = tempJSONObj.getDouble("samt");
csamt = tempJSONObj.getDouble("csamt"); csamt = tempJSONObj.getDouble("csamt");
if(stateCode.trim().equalsIgnoreCase(pos.trim()))
{
irt = rate;
}
else
{
crt = rate/2;
srt = rate/2;
}
tempJSONObj = b2bInvLineItemObj.getJSONObject("itc"); tempJSONObj = b2bInvLineItemObj.getJSONObject("itc");
detPstmt.setString(1, tranId); itcType = tempJSONObj.getString("elg");
detPstmt.setInt(2, lineNo); itcIGSTTaxAmt = tempJSONObj.getDouble("tx_i");
detPstmt.setDouble(5, lineAmt); itcCGSTTaxAmt = tempJSONObj.getDouble("tx_c");
detPstmt.setDouble(6, irt); itcSGSTTaxAmt = tempJSONObj.getDouble("tx_s");
detPstmt.setDouble(7, iamt); itcCSGSTTaxAmt = tempJSONObj.getDouble("tx_cs");
detPstmt.setDouble(8, crt);
detPstmt.setDouble(9, camt); tempList = new ArrayList<String>();
detPstmt.setDouble(10, srt); tempList.add(tranId);
detPstmt.setDouble(11, samt); tempList.add(String.valueOf(lineNo));
detPstmt.setDouble(12, csrt); tempList.add(String.valueOf(lineAmt));
detPstmt.setDouble(13, csamt); tempList.add(String.valueOf(irt));
tempList.add(String.valueOf(iamt));
tempList.add(String.valueOf(crt));
tempList.add(String.valueOf(camt));
tempList.add(String.valueOf(srt));
tempList.add(String.valueOf(samt));
tempList.add(String.valueOf(csrt));//TODO computation of cess rate is pending as data is summarised on rate
tempList.add(String.valueOf(csamt));
tempList.add(itcType);
tempList.add(String.valueOf(itcIGSTTaxAmt));
tempList.add(String.valueOf(itcCGSTTaxAmt));
tempList.add(String.valueOf(itcSGSTTaxAmt));
tempList.add(String.valueOf(itcCSGSTTaxAmt));
detPstmt.addBatch();
detPstmt.clearParameters();
} }
int[] detCnt = detPstmt.executeBatch(); detDataList.add(tempList);
}
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
}
}
catch (Exception e)
{
System.out.println("GSTDataSubmitWizPos.insertB2BInvoiceData()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private void insertIMGInvoiceData(String stateCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
{
JSONArray imgInvoiceArry = new JSONArray();
JSONObject imgJsonObj = new JSONObject();
JSONArray imgInvLineItmsArry = new JSONArray();
JSONObject imgInvLineItemObj = new JSONObject();
String tranId = "", isSezImport = "", supplierGSTIN = "", billOfEntry = "", billOfEntryDtStr = "", checkSum = "", portCode = "", itcType = "",
tranType = "", docType = "";
int lineNo = 0;
double billOfEntryAmt = 0.0, rate = 0.0, igstAmt = 0.0, taxableValue = 0.0, cessAmt = 0.0, itcIGSTAmt = 0.0, itcCessAmt = 0.0, cessrt = 0.0;
List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null;
List<String> detColumnList = new ArrayList<String>(), detDataTypeList = new ArrayList<String>();
List<List<String>> detDataList = null;
try
{
hdrColumnList.add("TRAN_ID");
hdrColumnList.add("TRAN_DATE");
hdrColumnList.add("REC_TYPE");
hdrColumnList.add("TRAN_TYPE");
hdrColumnList.add("SUBMIT_STATUS");
hdrColumnList.add("DOC_CHECKSUM");
hdrColumnList.add("LR_NO");
hdrColumnList.add("LR_DATE");
hdrColumnList.add("AMOUNT");
hdrColumnList.add("TAX_REG_NO");
hdrColumnList.add("SITE_CODE");
hdrColumnList.add("DOC_TYPE");
hdrColumnList.add("ORDER_NO");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("TIMESTAMP");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("DOUBLE");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("STRING");
detColumnList.add("TRAN_ID");
detColumnList.add("LINE_NO");
detColumnList.add("TAXABLE_AMT");
detColumnList.add("IGST_PERC");
detColumnList.add("IGST_AMT");
detColumnList.add("CESS_PERC");
detColumnList.add("CESS_AMT");
detColumnList.add("ITC_TYPE");
detColumnList.add("ITC_IGST");
detColumnList.add("ITC_CESS");
detDataTypeList.add("STRING");
detDataTypeList.add("INT");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("STRING");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
imgInvoiceArry = gstr2InvoiceJsonObj.getJSONArray("imp_g");
for(int i=0; i<imgInvoiceArry.length(); i++)
{
imgJsonObj = imgInvoiceArry.getJSONObject(i);
isSezImport = imgJsonObj.getString("is_sez");
supplierGSTIN = imgJsonObj.getString("stin");
billOfEntry = imgJsonObj.getString("boe_num");
billOfEntryDtStr = imgJsonObj.getString("boe_dt");
billOfEntryAmt = imgJsonObj.getDouble("boe_val");
checkSum = imgJsonObj.getString("chksum");
portCode = imgJsonObj.getString("port_code");
if("Y".equalsIgnoreCase(isSezImport))
{
tranType = "06";
}
else
{
tranType = "05";
}
tranId = generateTranId("w_gstr_purc","","",conn);
detDataList = new ArrayList<List<String>>();
List<String> tempList = new ArrayList<String>();
imgInvLineItmsArry = imgJsonObj.getJSONArray("itms");
for(int j=0; j< imgInvLineItmsArry.length(); j++)
{
imgInvLineItemObj = imgInvLineItmsArry.getJSONObject(j);
System.out.print("GST_DATA_DET insert count"); lineNo = imgInvLineItemObj.getInt("num");
rate = imgInvLineItemObj.getDouble("rt");
taxableValue = imgInvLineItemObj.getDouble("txval");
igstAmt = imgInvLineItemObj.getDouble("iamt");
cessAmt = imgInvLineItemObj.getDouble("csamt");
itcType = imgInvLineItemObj.getString("elg");
itcIGSTAmt = imgInvLineItemObj.getDouble("tx_i");
itcCessAmt = imgInvLineItemObj.getDouble("tx_cs");
for(int eachRowCnt : detCnt) if(igstAmt > 0)
{
docType = "SEWP";
}
else
{ {
System.out.print(eachRowCnt + ","); docType = "SEWOP";
} }
tempList.add(tranId);
tempList.add(String.valueOf(lineNo));
tempList.add(String.valueOf(taxableValue));
tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(igstAmt));
tempList.add(String.valueOf(cessrt));//TODO computation of cess rate is pending as data is summarised on rate
tempList.add(String.valueOf(cessAmt));
tempList.add(itcType);
tempList.add(String.valueOf(itcIGSTAmt));
tempList.add(String.valueOf(itcCessAmt));
} }
detDataList.add(tempList);
hdrDataList = new ArrayList<String>();
hdrDataList.add(tranId);
hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrDataList.add("2");
hdrDataList.add(tranType);
hdrDataList.add("D");
hdrDataList.add(checkSum);
hdrDataList.add(billOfEntry);
hdrDataList.add(billOfEntryDtStr);
hdrDataList.add(String.valueOf(billOfEntryAmt));
hdrDataList.add(supplierGSTIN);
hdrDataList.add(siteCode);
hdrDataList.add(docType);
hdrDataList.add(portCode);
} }
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
} }
catch (Exception e) catch(Exception e)
{ {
System.out.println("GSTDataSubmitWizPos.saveDownloadedData()["+e.getMessage()+"]"); System.out.println("GSTDataSubmitWizPos.insertIMGInvoiceData()["+e.getMessage()+"]");
e.printStackTrace(); e.printStackTrace();
throw new ITMException(e); throw new ITMException(e);
} }
...@@ -2036,7 +2324,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2036,7 +2324,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
try try
{ {
updateSql = "UPDATE GST_DATA_HDR SET SUBMISSION_STATUS = ?, SUBMISSION_DATE = ? WHERE TRAN_ID = ?"; updateSql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE TRAN_ID = ?";
pstmtUpd = conn.prepareStatement(updateSql); pstmtUpd = conn.prepareStatement(updateSql);
for(String tranId : tranIdList) for(String tranId : tranIdList)
...@@ -2242,6 +2530,183 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2242,6 +2530,183 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
return invoice; return invoice;
} }
private void insertGSTHdrDetData(List<String> hdrColumnList, List<String> hdrDataTypeList, List<String> hdrDataList, List<String> detColumnList, List<String> detDataTypeList, List<List<String>> detDataList, Connection conn) throws ITMException
{
boolean isError = false;
PreparedStatement hdrPstmt = null, detPstmt = null;
int hdrInsertCnt = 0;
int[] detInsertCntArray = null;
String hdrInsertSql = "", detInsertSql = "";
StringBuffer hdrInsertSqlBuff = new StringBuffer();
StringBuffer detInsertSqlBuff = new StringBuffer();
try
{
hdrInsertSqlBuff.append("INSERT INTO GST_DATA_HDR (");
for(String columnName : hdrColumnList)
{
hdrInsertSqlBuff.append(columnName+",");
}
hdrInsertSqlBuff.deleteCharAt(hdrInsertSqlBuff.length()-1);
hdrInsertSqlBuff.append(") VALUES (");
for(int i=0; i<hdrColumnList.size(); i++)
{
hdrInsertSqlBuff.append("?,");
}
hdrInsertSqlBuff.deleteCharAt(hdrInsertSqlBuff.length()-1);
hdrInsertSqlBuff.append(")");
hdrInsertSql = hdrInsertSqlBuff.toString();
System.out.println("hdrInsertSql["+hdrInsertSql+"]");
hdrPstmt = conn.prepareStatement(hdrInsertSql);
for(int i=0; i<hdrDataTypeList.size(); i++)
{
String dataType = hdrDataTypeList.get(i);
if("STRING".equalsIgnoreCase(dataType))
{
hdrPstmt.setString(i+1, hdrDataList.get(i));
}
else if("TIMESTAMP".equalsIgnoreCase(dataType))
{
String timestampStr = hdrDataList.get(i);
java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf(e12GenericUtility.getValidDateString(timestampStr, e12GenericUtility.getDBDateFormat()));
hdrPstmt.setTimestamp(i+1, timestamp);
}
else if("DOUBLE".equalsIgnoreCase(dataType))
{
hdrPstmt.setDouble(i+1, Double.valueOf(hdrDataList.get(i)));
}
else if("INT".equalsIgnoreCase(dataType))
{
hdrPstmt.setInt(i+1, Integer.valueOf(hdrDataList.get(i)));
}
}
hdrInsertCnt = hdrPstmt.executeUpdate();
System.out.println("GST_DATA_HDR insert count["+hdrInsertCnt+"]");
if(hdrPstmt != null)
{
hdrPstmt.close();
hdrPstmt = null;
}
detInsertSqlBuff.append("INSERT INTO GST_DATA_DET (");
for(String columnName : detColumnList)
{
detInsertSqlBuff.append(columnName+",");
}
detInsertSqlBuff.deleteCharAt(detInsertSqlBuff.length()-1);
detInsertSqlBuff.append(") VALUES (");
for(int i=0; i<detColumnList.size(); i++)
{
detInsertSqlBuff.append("?,");
}
detInsertSqlBuff.deleteCharAt(detInsertSqlBuff.length()-1);
detInsertSqlBuff.append(")");
detInsertSql = detInsertSqlBuff.toString();
System.out.println("detInsertSql["+detInsertSql+"]");
detPstmt = conn.prepareStatement(detInsertSql);
for(List<String> eachDetList : detDataList)
{
for(int i=0; i<detDataTypeList.size(); i++)
{
String dataType = detDataTypeList.get(i);
if("STRING".equalsIgnoreCase(dataType))
{
detPstmt.setString(i+1, eachDetList.get(i));
}
else if("TIMESTAMP".equalsIgnoreCase(dataType))
{
String timestampStr = eachDetList.get(i);
java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf(e12GenericUtility.getValidDateString(timestampStr, e12GenericUtility.getDBDateFormat()));
detPstmt.setTimestamp(i+1, timestamp);
}
else if("DOUBLE".equalsIgnoreCase(dataType))
{
detPstmt.setDouble(i+1, Double.valueOf(eachDetList.get(i)));
}
else if("INT".equalsIgnoreCase(dataType))
{
detPstmt.setInt(i+1, Integer.valueOf(eachDetList.get(i)));
}
}
detPstmt.addBatch();
detPstmt.clearParameters();
}
detInsertCntArray = detPstmt.executeBatch();
System.out.print("GST_DATA_DET insert count");
for(int eachRowCnt : detInsertCntArray)
{
System.out.print(eachRowCnt + ",");
}
if(detPstmt != null)
{
detPstmt.close();
detPstmt = null;
}
}
catch(SQLException se)
{
isError = true;
System.out.println("GSTDataSubmitWizPos.insertGSTHdrDetData()["+se.getMessage()+"]");
se.printStackTrace();
throw new ITMException(se);
}
catch (Exception e)
{
isError = true;
System.out.println("GSTDataSubmitWizPos.insertGSTHdrDetData()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(isError)
{
if(hdrPstmt != null)
{
hdrPstmt.close();
hdrPstmt = null;
}
if(detPstmt != null)
{
detPstmt.close();
detPstmt = null;
}
}
}
catch(SQLException se)
{
System.out.println("GSTDataSubmitWizPos.insertGSTHdrDetData()["+se.getMessage()+"]");
se.printStackTrace();
}
}
}
private static String checkNullandTrim(String input) private static String checkNullandTrim(String input)
{ {
if (input==null) if (input==null)
......
...@@ -36,7 +36,10 @@ public class HSNSerializer extends BaseSerializer<HSN> ...@@ -36,7 +36,10 @@ public class HSNSerializer extends BaseSerializer<HSN>
json.writeNumberField("num", hsnDetails.num); json.writeNumberField("num", hsnDetails.num);
json.writeStringField("hsn_sc", hsnDetails.itemOrServiceCode); json.writeStringField("hsn_sc", hsnDetails.itemOrServiceCode);
json.writeStringField("desc", hsnDetails.description); if(hsnDetails.description != null && hsnDetails.description.trim().length()>0)
{
json.writeStringField("desc", hsnDetails.description);
}
json.writeStringField("uqc", hsnDetails.unitOfMeasure); json.writeStringField("uqc", hsnDetails.unitOfMeasure);
json.writeNumberField("qty", hsnDetails.quantity); json.writeNumberField("qty", hsnDetails.quantity);
json.writeNumberField("val", hsnDetails.totalAmount); json.writeNumberField("val", hsnDetails.totalAmount);
......
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