Commit fce744b5 authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106303 ce508802-f39f-4f6c-b175-0d175dae99d5
parent f5b2a501
...@@ -342,7 +342,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -342,7 +342,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
long timeStamp = new Timestamp().getDateTime(); long timeStamp = new Timestamp().getDateTime();
byte[] authSEK = null; byte[] authSEK = null;
String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= "", recType = ""; String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= "", recType = "";
String signDataXML = ""; String signDataXML = "", summaryDataJsonStr = "";
System.out.println(" -------- Inside itemchange case 2222222 ------------ "); System.out.println(" -------- Inside itemchange case 2222222 ------------ ");
if( currentColumn.trim().equalsIgnoreCase( "itm_default" )) if( currentColumn.trim().equalsIgnoreCase( "itm_default" ))
...@@ -447,9 +447,9 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -447,9 +447,9 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
transactionId = UUID.randomUUID().toString().replaceAll("-", ""); transactionId = UUID.randomUUID().toString().replaceAll("-", "");
appKey = checkNull(e12GenericUtility.getColumnValue("app_key", dom1)); //appKey = checkNull(e12GenericUtility.getColumnValue("app_key", dom1));
appKeyInBytes = aesEncryption.decodeBase64StringTOByte(appKey); //appKeyInBytes = aesEncryption.decodeBase64StringTOByte(appKey);
appKeyEncryptedAndCoded = pubKeyEncryption.encrypt(appKeyInBytes); //appKeyEncryptedAndCoded = pubKeyEncryption.encrypt(appKeyInBytes);
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstinNo; gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstinNo;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey); gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
...@@ -555,20 +555,25 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -555,20 +555,25 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
{ {
if("SUBMIT".equalsIgnoreCase(action)) if("SUBMIT".equalsIgnoreCase(action))
{ {
retXML += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn); summaryDataJsonStr += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
if(summaryDataJsonStr!= null && summaryDataJsonStr.trim().length() > 0)
{
retXML += "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
}
retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK); retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, xtraParams, authSEK);
} }
else if("FILE".equalsIgnoreCase(action)) else if("FILE".equalsIgnoreCase(action))
{ {
retXML += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn); summaryDataJsonStr += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, xtraParams, conn);
retXML = "<summary_data>" + XML.toString(new JSONObject(summaryDataJsonStr)) + "</summary_data>";
} }
} }
} }
valueXmlString.append("<Detail2 domID='1'>"); valueXmlString.append("<Detail2 domID='1'>");
valueXmlString.append("<auth_token><![CDATA["+ authToken +"]]></auth_token>"); valueXmlString.append("<auth_token><![CDATA["+ authToken +"]]></auth_token>");
valueXmlString.append("<auth_sek><![CDATA["+ sek +"]]></auth_sek>"); valueXmlString.append("<auth_sek><![CDATA["+ sek +"]]></auth_sek>");
valueXmlString.append("<summary_data><![CDATA["+ summaryDataJsonStr +"]]></summary_data>");
valueXmlString.append(signDataXML); valueXmlString.append(signDataXML);
valueXmlString.append("</Detail2>" ); valueXmlString.append("</Detail2>" );
valueXmlString.append("<Detail2 domID='2'>"); valueXmlString.append("<Detail2 domID='2'>");
...@@ -782,6 +787,29 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -782,6 +787,29 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
} }
if("SUBMIT".equalsIgnoreCase(action)) if("SUBMIT".equalsIgnoreCase(action))
{ {
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = '1' AND SUBMIT_STATUS = 'S' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, loginSiteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") > 0)
{
errList.add( "VTSUBALRDY" );
errFields.add("returns_type");
}
}
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = '1' AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?"; sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = '1' AND SUBMIT_STATUS = 'T' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode); pstmt.setString(1, periodCode);
...@@ -1389,7 +1417,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1389,7 +1417,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
JSONObject gstr1SumryJsonObj = new JSONObject(new String(respJsonInBytes)); JSONObject gstr1SumryJsonObj = new JSONObject(new String(respJsonInBytes));
retString = "<summary_data>" + XML.toString(gstr1SumryJsonObj) + "</summary_data>"; //retString = "<summary_data>" + XML.toString(gstr1SumryJsonObj) + "</summary_data>";
retString = gstr1SumryJsonObj.toString();
System.out.println("retString in getGstr1Summary["+retString+"]"); System.out.println("retString in getGstr1Summary["+retString+"]");
} }
......
...@@ -16,6 +16,7 @@ import java.util.HashMap; ...@@ -16,6 +16,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
...@@ -81,6 +82,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -81,6 +82,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
private String GSTR_URL_V3 = ""; 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 String GSTR2A_URL_V3 = "";
private final String APPLICATION_JSON = "application/json"; private final String APPLICATION_JSON = "application/json";
private String appKey = ""; private String appKey = "";
String ipAddress = ""; String ipAddress = "";
...@@ -166,6 +168,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -166,6 +168,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
GSTR2_URL_V3 = rs.getString("SERVICE_URI"); GSTR2_URL_V3 = rs.getString("SERVICE_URI");
} }
break; break;
case "gstr2a_url_v3" :
{
GSTR2A_URL_V3 = rs.getString("SERVICE_URI");
}
break;
} }
} }
if(pstmt!=null) if(pstmt!=null)
...@@ -215,7 +222,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -215,7 +222,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
Document allXMLDom = null; Document allXMLDom = null;
NodeList detail1NList = null, detail1ChildNList = null, detail2NList = null, detail2ChildNList = null; NodeList detail1NList = null, detail1ChildNList = null, detail2NList = null, detail2ChildNList = null;
String retString = "", nodeName = "", otp = "", stateCode = "", sek = "", returnsType = "", gstin = "", periodCode = "", grossTurnover = "", String retString = "", nodeName = "", otp = "", stateCode = "", sek = "", returnsType = "", gstin = "", periodCode = "", grossTurnover = "",
action = "", siteCode = "", gspAuthString = "", gspAuthSignature = "", currentYearTurnover = ""; action = "", siteCode = "", gspAuthString = "", gspAuthSignature = "", currentYearTurnover = "", signedData = "", panNo = "", aadhaarNo = "",
signMethod = "", summaryData = "";
String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= ""; String loginCode = "", chgTerm = "", callStatus = "", responseId = "", responseJsonStr= "";
byte[] authSEK = null; byte[] authSEK = null;
...@@ -312,6 +320,26 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -312,6 +320,26 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
sek = eachDetail2Element.getTextContent(); sek = eachDetail2Element.getTextContent();
} }
else if("summary_data".equalsIgnoreCase(nodeName))
{
summaryData = eachDetail2Element.getTextContent();
}
else if("signed_data".equalsIgnoreCase(nodeName))
{
signedData = eachDetail2Element.getTextContent();
}
else if("pan_no".equalsIgnoreCase(nodeName))
{
panNo = eachDetail2Element.getTextContent();
}
else if("aadhar_no".equalsIgnoreCase(nodeName))
{
aadhaarNo = eachDetail2Element.getTextContent();
}
else if("sign_method".equalsIgnoreCase(nodeName))
{
signMethod = eachDetail2Element.getTextContent();
}
} }
} }
...@@ -332,30 +360,34 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -332,30 +360,34 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
String encryptedOTP = aesEncryption.encryptEK(otp.getBytes(), appKeyInBytes); String encryptedOTP = aesEncryption.encryptEK(otp.getBytes(), appKeyInBytes);
JSONObject authTokenReq = new JSONObject(); JSONObject authTokenReqObj = new JSONObject();
authTokenReq.put("action", "AUTHTOKEN"); authTokenReqObj.put("action", "AUTHTOKEN");
authTokenReq.put("username", userName); authTokenReqObj.put("username", userName);
authTokenReq.put("app_key", appKeyEncryptedAndCoded); authTokenReqObj.put("app_key", appKeyEncryptedAndCoded);
authTokenReq.put("otp", encryptedOTP); authTokenReqObj.put("otp", encryptedOTP);
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)+"]"); HttpRequest authTokenReq = 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)
.header("clientid", clientId) .header("clientid", clientId)
.header("client-secret", clientSecret) .header("client-secret", clientSecret)
.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("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(authTokenReqObj.toString()))
.asJson(); .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())); System.out.println(String.format("authTokenResp Request : Status[%s] Response[%s]", authTokenResp.getStatus(), authTokenResp.getBody()));
if (authTokenResp.getStatus() == 200) if (authTokenResp.getStatus() == 200)
...@@ -423,20 +455,20 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -423,20 +455,20 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
retString = saveGstr1(authToken, siteCode, stateCode, userName, gstin, periodCode, grossTurnover, currentYearTurnover, authSEK, xtraParams, conn); retString = saveGstr1(authToken, siteCode, stateCode, userName, gstin, periodCode, grossTurnover, currentYearTurnover, authSEK, xtraParams, conn);
} }
else if ("RETSUM".equalsIgnoreCase(action) || "FILE".equalsIgnoreCase(action)) else if ("FILE".equalsIgnoreCase(action))
{ {
retString = getGstr1Summary(authToken, stateCode, userName, gstin, periodCode, authSEK, action, xtraParams, conn); retString = fileGstr1(authToken, stateCode, userName, gstin, periodCode, authSEK, summaryData, signedData, panNo, aadhaarNo, signMethod, xtraParams, conn);
} }
else if ("SUBMIT".equalsIgnoreCase(action)) else if ("SUBMIT".equalsIgnoreCase(action))
{ {
retString = submitGstr1(authToken, stateCode, userName, gstin, periodCode, authSEK, xtraParams, conn); retString = submitGstr1(authToken, stateCode, userName, gstin, periodCode, authSEK, xtraParams, conn);
} }
} }
else if("GSTR2".equalsIgnoreCase(returnsType)) else if("GSTR2A".equalsIgnoreCase(returnsType))
{ {
if("GETINV".equalsIgnoreCase(action)) if("GETINV".equalsIgnoreCase(action))
{ {
retString = downloadGstr2Invoices(authToken, stateCode, userName, gstin, periodCode, siteCode, authSEK, xtraParams, conn); retString = downloadGstr2AData(authToken, stateCode, userName, gstin, periodCode, siteCode, authSEK, xtraParams, conn);
} }
} }
} }
...@@ -566,10 +598,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -566,10 +598,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
//tran_type : 01,02,03,08,09,10 = B2B invoices //tran_type : 01,02,03,08,09,10 = B2B invoices
if("B2B".equalsIgnoreCase(udfStr1)) if("B2B".equalsIgnoreCase(udfStr1))
{ {
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT " lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -578,7 +610,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -578,7 +610,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.num = ++lineNum; invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
...@@ -638,10 +670,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -638,10 +670,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice = new Invoice(); invoice = new Invoice();
invLineItems = new ArrayList<InvLineItem>(); invLineItems = new ArrayList<InvLineItem>();
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT " lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -650,7 +682,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -650,7 +682,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.num = ++lineNum; invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
...@@ -708,7 +740,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -708,7 +740,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
b2cs.typ = udfStr3; b2cs.typ = udfStr3;
b2cs.etin = rs.getString("ECOM_REG_NO"); b2cs.etin = rs.getString("ECOM_REG_NO");
b2cs.pos = posStateCode; b2cs.pos = posStateCode;
b2cs.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC"); b2cs.rate = lineRs.getDouble("GST_RATE");
b2cs.iamt = lineRs.getDouble("IGST_AMT"); b2cs.iamt = lineRs.getDouble("IGST_AMT");
b2cs.camt = lineRs.getDouble("CGST_AMT"); b2cs.camt = lineRs.getDouble("CGST_AMT");
b2cs.samt = lineRs.getDouble("SGST_AMT"); b2cs.samt = lineRs.getDouble("SGST_AMT");
...@@ -731,37 +763,16 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -731,37 +763,16 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
//tran_type : 29,30 = CDNR, 33,34 = CDNRA //tran_type : 29,30 = CDNR, 33,34 = CDNRA
if("CDNR".equalsIgnoreCase(udfStr1) || "CDNRA".equalsIgnoreCase(udfStr1)) if("CDNR".equalsIgnoreCase(udfStr1) || "CDNRA".equalsIgnoreCase(udfStr1))
{ {
String reason = "";
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(2017, 06, 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 = ?";
refDataPstmt = conn.prepareStatement(refDataSql);
refDataPstmt.setString(1, checkNullandTrim(rs.getString("REAS_CODE")));
refDataRs = refDataPstmt.executeQuery();
if(refDataRs.next())
{
reason = checkNullandTrim(refDataRs.getString("DESCR"));
}
if(refDataPstmt != null)
{
refDataPstmt.close();
refDataPstmt = null;
}
if(refDataRs != null)
{
refDataRs.close();
refDataRs = null;
}
if("CDNR".equalsIgnoreCase(udfStr1)) if("CDNR".equalsIgnoreCase(udfStr1))
{ {
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT " lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -770,7 +781,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -770,7 +781,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.num = ++lineNum; invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
...@@ -798,7 +809,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -798,7 +809,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnDetails.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV")); cdnDetails.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnDetails.invoiceDate = rs.getDate("REF_DATE__INV"); cdnDetails.invoiceDate = rs.getDate("REF_DATE__INV");
cdnDetails.val = rs.getDouble("AMOUNT"); cdnDetails.val = rs.getDouble("AMOUNT");
cdnDetails.reason = reason; cdnDetails.reason = checkNullandTrim(rs.getString("REAS_CODE"));
if(rs.getDate("REF_DATE__INV").before(gstStartDate)) if(rs.getDate("REF_DATE__INV").before(gstStartDate))
{ {
cdnDetails.isPreGSTInvoice = true; cdnDetails.isPreGSTInvoice = true;
...@@ -839,10 +850,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -839,10 +850,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("EXP".equalsIgnoreCase(udfStr1)) if("EXP".equalsIgnoreCase(udfStr1))
{ {
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT " lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -850,7 +861,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -850,7 +861,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
while(lineRs.next()) while(lineRs.next())
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
...@@ -895,10 +906,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -895,10 +906,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("AT".equalsIgnoreCase(udfStr1)) if("AT".equalsIgnoreCase(udfStr1))
{ {
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT " lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -907,8 +918,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -907,8 +918,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = rs.getDouble("AMOUNT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT"); invLineItem.samt = lineRs.getDouble("SGST_AMT");
...@@ -938,14 +949,14 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -938,14 +949,14 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
} }
} }
//tran_type : 43,44 = Advance Tax paid and tran_type : 47,48 Advance Tax paid amendments //tran_type : 43,44 = Advance Tax paid and tran_type : 47,48 Advance Tax paid amendments
if("AT".equalsIgnoreCase(udfStr1)) if("TXP".equalsIgnoreCase(udfStr1))
{ {
invLineItems = new ArrayList<InvLineItem>(); invLineItems = new ArrayList<InvLineItem>();
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT " lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -954,8 +965,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -954,8 +965,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = rs.getDouble("AMOUNT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT"); invLineItem.samt = lineRs.getDouble("SGST_AMT");
...@@ -986,35 +997,15 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -986,35 +997,15 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
//tran_type : 31,32 = CDNUR and tran_type : 35,36 = CDNURA //tran_type : 31,32 = CDNUR and tran_type : 35,36 = CDNURA
if("CDNUR".equalsIgnoreCase(udfStr1)) if("CDNUR".equalsIgnoreCase(udfStr1))
{ {
String reason = "", customerType = "", refTranType = ""; String customerType = "", refTranType = "";
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(2017, 06, 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 = ?"; lineSql = " SELECT GST_RATE, SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
refDataPstmt = conn.prepareStatement(refDataSql);
refDataPstmt.setString(1, checkNullandTrim(rs.getString("REAS_CODE")));
refDataRs = refDataPstmt.executeQuery();
if(refDataRs.next())
{
reason = checkNullandTrim(refDataRs.getString("DESCR"));
}
if(refDataPstmt != null)
{
refDataPstmt.close();
refDataPstmt = null;
}
if(refDataRs != null)
{
refDataRs.close();
refDataRs = null;
}
lineSql = " SELECT (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END) AS RATE,SUM(TAXABLE_AMT) AS TAXABLE_AMT, SUM(IGST_AMT) AS IGST_AMT, SUM(CGST_AMT) AS CGST_AMT, SUM(SGST_AMT) AS SGST_AMT, SUM(CESS_AMT) AS CESS_AMT "
+ " FROM GST_DATA_DET " + " FROM GST_DATA_DET "
+ " WHERE TRAN_ID = ? " + " WHERE TRAN_ID = ? "
+ " GROUP BY (CASE WHEN IGST_PERC IS NULL THEN 0 ELSE IGST_PERC END + CASE WHEN CGST_PERC IS NULL THEN 0 ELSE CGST_PERC END + CASE WHEN SGST_PERC IS NULL THEN 0 ELSE SGST_PERC END)"; + " GROUP BY GST_RATE";
linePstmt = conn.prepareStatement(lineSql); linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId); linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery(); lineRs = linePstmt.executeQuery();
...@@ -1023,7 +1014,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1023,7 +1014,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
invLineItem = new InvLineItem(); invLineItem = new InvLineItem();
invLineItem.num = ++lineNum; invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE"); invLineItem.rate = lineRs.getDouble("GST_RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT"); invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT"); invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT"); invLineItem.camt = lineRs.getDouble("CGST_AMT");
...@@ -1089,7 +1080,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1089,7 +1080,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnur.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV")); cdnur.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnur.invoiceDate = rs.getDate("REF_DATE__INV"); cdnur.invoiceDate = rs.getDate("REF_DATE__INV");
cdnur.val = rs.getDouble("AMOUNT"); cdnur.val = rs.getDouble("AMOUNT");
cdnur.reason = reason; cdnur.reason = checkNullandTrim(rs.getString("REAS_CODE"));
if(rs.getDate("REF_DATE__INV").before(gstStartDate)) if(rs.getDate("REF_DATE__INV").before(gstStartDate))
{ {
cdnur.isPreGSTInvoice = true; cdnur.isPreGSTInvoice = true;
...@@ -1551,7 +1542,139 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1551,7 +1542,139 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
} }
return retString; return retString;
} }
private String getGstr1Summary(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSek, String action, String xtraParams, Connection conn) throws ITMException private String fileGstr1(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSek, String summaryData, String signedData, String panNo, String aadhaarNo, String signMethod, String xtraParams, Connection conn) throws ITMException
{
String retString = "";
String errMsg = "", gspAuthString = "", gspAuthSignature = "", signType = "",signId = "";
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
String loginCode = "", chgTerm = "", siteCode = "", callStatus = "", responseJsonStr = "";
try
{
siteCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginSiteCode");
loginCode = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "loginCode");
chgTerm = e12GenericUtility.getValueFromXTRA_PARAMS(xtraParams, "chgTerm");
long timeStamp = new Timestamp().getDateTime();
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
byte[] jsonBase64 = Base64.getEncoder().encode(summaryData.toString().getBytes());
String encryptedPayload = aesEncryption.encryptEK(jsonBase64, authSek);
HMac hmac = new HMac(new SHA256Digest());
byte[] resBuf = new byte[hmac.getMacSize()];
hmac.init(new KeyParameter(authSek));
hmac.update(jsonBase64, 0, jsonBase64.length);
hmac.doFinal(resBuf, 0);
if("D".equalsIgnoreCase(signMethod))
{
signType = "DSC";
signId = panNo;
}
else if("E".equalsIgnoreCase(signMethod))
{
signType = "ESIGN";
signId = aadhaarNo;
}
JSONObject fileGstr1DataJsonObj = new JSONObject();
fileGstr1DataJsonObj.put("action", "RETFILE");
fileGstr1DataJsonObj.put("data", encryptedPayload);
fileGstr1DataJsonObj.put("hmac", new String(Base64.getEncoder().encode(resBuf)));
fileGstr1DataJsonObj.put("sign", signedData);
fileGstr1DataJsonObj.put("st", signType);
fileGstr1DataJsonObj.put("sid", signId);
HttpRequest fileGstr1Req = Unirest.post(String.format("%s%s", GSP_API_URL, GSTR1_URL_V3))
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("ip-usr", ipAddress)
.header("username", userName)
.header("auth-token", authToken)
.header("txn", transactionId)
.header("ret_period", periodCode)
.header("gstin", gstin)
.header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature)
.body(new JsonNode(fileGstr1DataJsonObj.toString()))
.getHttpRequest();
System.out.println("FILE GSTR1 url["+fileGstr1Req.getUrl()+"]");
System.out.println("FILE GSTR1 method["+fileGstr1Req.getHttpMethod()+"]");
System.out.println("FILE GSTR1 request header["+fileGstr1Req.getHeaders()+"]");
System.out.println("FILE GSTR1 request payload["+IOUtils.toString(fileGstr1Req.getBody().getEntity().getContent())+"]");
HttpResponse<JsonNode> fileGstr1Resp = fileGstr1Req.asJson();
System.out.println(String.format("fileGstr1Resp Request : Status[%s] Response[%s]", fileGstr1Resp.getStatus(), fileGstr1Resp.getBody()));
if (fileGstr1Resp.getStatus() == 200)
{
JSONObject fileGstr1RespObj = fileGstr1Resp.getBody().getObject();
if(fileGstr1RespObj.has("data") && fileGstr1RespObj.has("rek"))
{
callStatus = "1";
String fileGstr1Data = fileGstr1RespObj.getString("data");
String fileGstr1Rek = fileGstr1RespObj.getString("rek");
byte[] fileGstr1ApiEK = aesEncryption.decrypt(fileGstr1Rek, authSek);
String fileGstr1JsoninBase64 = new String(aesEncryption.decrypt(fileGstr1Data, fileGstr1ApiEK));
byte[] fileGstr1JsonInBytes = aesEncryption.decodeBase64StringTOByte(fileGstr1JsoninBase64);
System.out.println(new String(fileGstr1JsonInBytes));
}
else
{
callStatus = "2";
JSONObject errorJSON = fileGstr1Resp.getBody().getObject().getJSONObject("error");
responseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
}
}
else
{
callStatus = "2";
JSONObject errorJSON = fileGstr1Resp.getBody().getObject().getJSONObject("error");
responseJsonStr = errorJSON.toString();
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
}
APICallData apiCallData = new APICallData();
apiCallData.setPeriodCode(periodCode);
apiCallData.setCallDate(new Date());
apiCallData.setSiteCode(siteCode);
apiCallData.setUserId(loginCode);
apiCallData.setCallType("RETFILE");
apiCallData.setRecType("1");
apiCallData.setNoOfRecords(0);
apiCallData.setCallStatus(callStatus);
apiCallData.setResponseId("");
apiCallData.setResponseJsonStr(responseJsonStr);
apiCallData.setChgUser(loginCode);
apiCallData.setChgDate(new Date());
apiCallData.setChgTerm(chgTerm);
gstCommonUtil.updateAPICallLogHistory(apiCallData, null);
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizPos.fileGstr1()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
return retString;
}
/*private String getGstr1Summary(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSek, String action, String xtraParams, Connection conn) throws ITMException
{ {
String retString = ""; String retString = "";
String errMsg = "", gspAuthString = "", gspAuthSignature = ""; String errMsg = "", gspAuthString = "", gspAuthSignature = "";
...@@ -1753,7 +1876,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1753,7 +1876,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
throw new ITMException(e); throw new ITMException(e);
} }
return retString; return retString;
} }*/
private String submitGstr1(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSEK, String xtraParams,Connection conn) throws ITMException private String submitGstr1(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSEK, String xtraParams,Connection conn) throws ITMException
{ {
...@@ -1904,11 +2027,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1904,11 +2027,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
return retString; return retString;
} }
private String downloadGstr2Invoices(String authToken, String stateCode, String userName, String gstin, String periodCode, String siteCode, byte[] authSEK, String xtraParams, Connection conn) throws ITMException private String downloadGstr2AData(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 = "";
String[] gstr2Section = {"B2B","IMPG","IMPS","CDN","NIL","TXLI","TXP","B2BUR","ITCRVSL","CDNUR"}; String[] gstr2Section = {"B2B","CDN"};
String transactionId = UUID.randomUUID().toString().replaceAll("-", ""); String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
String loginCode = "", chgTerm = "", callStatus = "", responseJsonStr = "", responseId = ""; String loginCode = "", chgTerm = "", callStatus = "", responseJsonStr = "", responseId = "";
...@@ -1924,9 +2047,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1924,9 +2047,7 @@ 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);
System.out.println("GET "+action+" request url ["+String.format("%s%s", GSP_API_URL, GSTR2_URL_V3)+"]"); HttpRequest getGstr2InvoicesReq = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR2A_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)
...@@ -1937,13 +2058,18 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1937,13 +2058,18 @@ 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("txn", transactionId) .header("txn", transactionId)
.header("ret_period", periodCode) .header("ret_period", periodCode)
.header("gstin", gstin) .header("gstin", gstin)
.header("X-Asp-Auth-Token", gspAuthString) .header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature) .header("X-Asp-Auth-Signature", gspAuthSignature)
.asJson(); .getHttpRequest();
System.out.println("get GSTR2A ["+action+"] invoices url["+getGstr2InvoicesReq.getUrl()+"]");
System.out.println("get GSTR2A ["+action+"] invoices method["+getGstr2InvoicesReq.getHttpMethod()+"]");
System.out.println("get GSTR2A ["+action+"] invoices request header["+getGstr2InvoicesReq.getHeaders()+"]");
HttpResponse<JsonNode> getGstr2InvoicesResp = getGstr2InvoicesReq.asJson();
System.out.println(String.format("getGstr2InvoicesResp Request : Status[%s] Response[%s]", getGstr2InvoicesResp.getStatus(), getGstr2InvoicesResp.getBody())); System.out.println(String.format("getGstr2InvoicesResp Request : Status[%s] Response[%s]", getGstr2InvoicesResp.getStatus(), getGstr2InvoicesResp.getBody()));
...@@ -1967,14 +2093,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1967,14 +2093,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("B2B".equalsIgnoreCase(action)) if("B2B".equalsIgnoreCase(action))
{ {
insertB2BInvoiceData(stateCode, siteCode, gstr2InvoiceJsonObj, conn); insertB2BInvoiceData(stateCode, periodCode, siteCode, gstr2InvoiceJsonObj, conn);
} }
else if("IMPG".equalsIgnoreCase(action)) else if("CDN".equalsIgnoreCase(action))
{ {
insertIMGInvoiceData(stateCode, siteCode, gstr2InvoiceJsonObj, conn); insertCDNData(stateCode, periodCode, siteCode, gstr2InvoiceJsonObj, conn);
} }
} }
else else
{ {
...@@ -2028,7 +2152,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2028,7 +2152,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
return retString; return retString;
} }
private void insertB2BInvoiceData(String stateCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException private void insertB2BInvoiceData(String stateCode, String periodCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
{ {
JSONArray b2bInvArry = new JSONArray(); JSONArray b2bInvArry = new JSONArray();
JSONObject b2bJsonObj = new JSONObject(); JSONObject b2bJsonObj = new JSONObject();
...@@ -2037,11 +2161,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2037,11 +2161,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
JSONArray b2bInvLineItmsArry = new JSONArray(); JSONArray b2bInvLineItmsArry = new JSONArray();
JSONObject b2bInvLineItemObj = new JSONObject(); JSONObject b2bInvLineItemObj = new JSONObject();
String tranId = "", cptyGSTIN = "", iNum = "", iDate = "", reversCharge = "", docCheckSum = "", pos = "", invType = "", tranType = ""; String tranId = "", cptyGSTIN = "", iNum = "", iDate = "", reversCharge = "", docCheckSum = "", pos = "", invType = "", tranType = "";
String itcType = ""; String ecomOperetorGSTIN = "";
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, csamt = 0.0, rate = 0.0;
double itcIGSTTaxAmt = 0.0, itcCGSTTaxAmt = 0.0, itcSGSTTaxAmt = 0.0, itcCSGSTTaxAmt =0.0;
List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null; List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null;
List<String> detColumnList = new ArrayList<String>(), detDataTypeList = new ArrayList<String>(); List<String> detColumnList = new ArrayList<String>(), detDataTypeList = new ArrayList<String>();
...@@ -2063,55 +2186,47 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2063,55 +2186,47 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hdrColumnList.add("TAX_REG_NO"); hdrColumnList.add("TAX_REG_NO");
hdrColumnList.add("SITE_CODE"); hdrColumnList.add("SITE_CODE");
hdrColumnList.add("DOC_TYPE"); hdrColumnList.add("DOC_TYPE");
hdrColumnList.add("PRD_CODE");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("TIMESTAMP"); hdrDataTypeList.add("STRING"); //TRAN_ID
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("TIMESTAMP"); //TRAN_DATE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //REC_TYPE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //TRAN_TYPE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //GST_CODE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //SUBMIT_STATUS
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //DOC_CHECKSUM
hdrDataTypeList.add("TIMESTAMP"); hdrDataTypeList.add("STRING"); //DOC_NO
hdrDataTypeList.add("DOUBLE"); hdrDataTypeList.add("TIMESTAMP"); //DOC_DATE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("DOUBLE"); //AMOUNT
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //REVERSE_CHRG
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //TAX_REG_NO
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //SITE_CODE
hdrDataTypeList.add("STRING"); //DOC_TYPE
hdrDataTypeList.add("STRING"); //PRD_CODE
detColumnList.add("TRAN_ID"); detColumnList.add("TRAN_ID");
detColumnList.add("LINE_NO"); detColumnList.add("LINE_NO");
detColumnList.add("TAXABLE_AMT"); detColumnList.add("TAXABLE_AMT");
detColumnList.add("GST_RATE");
detColumnList.add("IGST_PERC"); detColumnList.add("IGST_PERC");
detColumnList.add("IGST_AMT"); detColumnList.add("IGST_AMT");
detColumnList.add("CGST_PERC"); detColumnList.add("CGST_PERC");
detColumnList.add("CGST_AMT"); detColumnList.add("CGST_AMT");
detColumnList.add("SGST_PERC"); detColumnList.add("SGST_PERC");
detColumnList.add("SGST_AMT"); detColumnList.add("SGST_AMT");
detColumnList.add("CESS_PERC");
detColumnList.add("CESS_AMT"); 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("STRING"); //TRAN_ID
detDataTypeList.add("INT"); detDataTypeList.add("INT"); //LINE_NO
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //TAXABLE_AMT
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //GST_RATE
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //IGST_PERC
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //IGST_AMT
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //CGST_PERC
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //CGST_AMT
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //SGST_PERC
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //SGST_AMT
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //CESS_AMT
detDataTypeList.add("STRING");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
detDataTypeList.add("DOUBLE");
b2bInvArry = gstr2InvoiceJsonObj.getJSONArray("b2b"); b2bInvArry = gstr2InvoiceJsonObj.getJSONArray("b2b");
...@@ -2134,22 +2249,46 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2134,22 +2249,46 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
docCheckSum = b2bInvJsonObj.getString("chksum"); docCheckSum = b2bInvJsonObj.getString("chksum");
reversCharge = b2bInvJsonObj.getString("rchrg"); reversCharge = b2bInvJsonObj.getString("rchrg");
pos = b2bInvJsonObj.getString("pos"); pos = b2bInvJsonObj.getString("pos");
invType = b2bInvJsonObj.getString("inv_typ"); invType = b2bInvJsonObj.getString("inv_typ").trim();
if(b2bInvJsonObj.has("etin"))
{
ecomOperetorGSTIN = b2bInvJsonObj.getString("etin");
}
if("R".equalsIgnoreCase(invType))
{
if("Y".equalsIgnoreCase(reversCharge)) if("Y".equalsIgnoreCase(reversCharge))
{ {
tranType = "02"; tranType = "02";
} }
else if(ecomOperetorGSTIN != null && ecomOperetorGSTIN.trim().length()>0)
{
tranType = "03";
}
else else
{ {
tranType = "01"; tranType = "01";
} }
}
else if("DE".equalsIgnoreCase(invType))
{
tranType = "10";
}
else if("SEWP".equalsIgnoreCase(invType))
{
tranType = "08";
}
else if("SEWOP".equalsIgnoreCase(invType))
{
tranType = "09";
}
tranId = generateTranId("w_gstr_purc","","",conn); tranId = generateTranId("w_gstr_purc","","",conn);
hdrDataList.add(tranId); hdrDataList.add(tranId);
hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat())); hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrDataList.add("2"); hdrDataList.add("2A");
hdrDataList.add(tranType); hdrDataList.add(tranType);
hdrDataList.add(pos); hdrDataList.add(pos);
hdrDataList.add("D"); hdrDataList.add("D");
...@@ -2161,14 +2300,15 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2161,14 +2300,15 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hdrDataList.add(cptyGSTIN); hdrDataList.add(cptyGSTIN);
hdrDataList.add(siteCode); hdrDataList.add(siteCode);
hdrDataList.add(invType); hdrDataList.add(invType);
hdrDataList.add(periodCode);
detDataList = new ArrayList<List<String>>(); detDataList = new ArrayList<List<String>>();
List<String> tempList = new ArrayList<String>();
b2bInvLineItmsArry = b2bInvJsonObj.getJSONArray("itms"); b2bInvLineItmsArry = b2bInvJsonObj.getJSONArray("itms");
for(int k=0; k<b2bInvLineItmsArry.length(); k++) for(int k=0; k<b2bInvLineItmsArry.length(); k++)
{ {
List<String> tempList = new ArrayList<String>();
b2bInvLineItemObj = b2bInvLineItmsArry.getJSONObject(k); b2bInvLineItemObj = b2bInvLineItmsArry.getJSONObject(k);
lineNo = b2bInvLineItemObj.getInt("num"); lineNo = b2bInvLineItemObj.getInt("num");
...@@ -2192,41 +2332,24 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2192,41 +2332,24 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
srt = rate/2; srt = rate/2;
} }
tempJSONObj = b2bInvLineItemObj.getJSONObject("itc");
itcType = tempJSONObj.getString("elg");
itcIGSTTaxAmt = tempJSONObj.getDouble("tx_i");
itcCGSTTaxAmt = tempJSONObj.getDouble("tx_c");
itcSGSTTaxAmt = tempJSONObj.getDouble("tx_s");
itcCSGSTTaxAmt = tempJSONObj.getDouble("tx_cs");
tempList = new ArrayList<String>(); tempList = new ArrayList<String>();
tempList.add(tranId); tempList.add(tranId);
tempList.add(String.valueOf(lineNo)); tempList.add(String.valueOf(lineNo));
tempList.add(String.valueOf(lineAmt)); tempList.add(String.valueOf(lineAmt));
tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(irt)); tempList.add(String.valueOf(irt));
tempList.add(String.valueOf(iamt)); tempList.add(String.valueOf(iamt));
tempList.add(String.valueOf(crt)); tempList.add(String.valueOf(crt));
tempList.add(String.valueOf(camt)); tempList.add(String.valueOf(camt));
tempList.add(String.valueOf(srt)); tempList.add(String.valueOf(srt));
tempList.add(String.valueOf(samt)); 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(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));
}
detDataList.add(tempList); detDataList.add(tempList);
} }
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn); insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
} }
}
} }
catch (Exception e) catch (Exception e)
{ {
...@@ -2235,8 +2358,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2235,8 +2358,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
throw new ITMException(e); throw new ITMException(e);
} }
} }
private void insertIMGInvoiceData(String stateCode, String periodCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
private void insertIMGInvoiceData(String stateCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
{ {
JSONArray imgInvoiceArry = new JSONArray(); JSONArray imgInvoiceArry = new JSONArray();
JSONObject imgJsonObj = new JSONObject(); JSONObject imgJsonObj = new JSONObject();
...@@ -2246,7 +2368,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2246,7 +2368,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String tranId = "", isSezImport = "", supplierGSTIN = "", billOfEntry = "", billOfEntryDtStr = "", checkSum = "", portCode = "", itcType = "", String tranId = "", isSezImport = "", supplierGSTIN = "", billOfEntry = "", billOfEntryDtStr = "", checkSum = "", portCode = "", itcType = "",
tranType = "", docType = ""; tranType = "", docType = "";
int lineNo = 0; 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; double billOfEntryAmt = 0.0, rate = 0.0, igstAmt = 0.0, taxableValue = 0.0, cessAmt = 0.0, itcIGSTAmt = 0.0, itcCessAmt = 0.0;
List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null; List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null;
List<String> detColumnList = new ArrayList<String>(), detDataTypeList = new ArrayList<String>(); List<String> detColumnList = new ArrayList<String>(), detDataTypeList = new ArrayList<String>();
...@@ -2267,42 +2389,44 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2267,42 +2389,44 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hdrColumnList.add("SITE_CODE"); hdrColumnList.add("SITE_CODE");
hdrColumnList.add("DOC_TYPE"); hdrColumnList.add("DOC_TYPE");
hdrColumnList.add("ORDER_NO"); hdrColumnList.add("ORDER_NO");
hdrColumnList.add("PRD_CODE");
hdrDataTypeList.add("STRING");
hdrDataTypeList.add("TIMESTAMP"); hdrDataTypeList.add("STRING"); //TRAN_ID
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("TIMESTAMP"); //TRAN_DATE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //REC_TYPE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //TRAN_TYPE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //SUBMIT_STATUS
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //DOC_CHECKSUM
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //LR_NO
hdrDataTypeList.add("DOUBLE"); hdrDataTypeList.add("STRING"); //LR_DATE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("DOUBLE"); //AMOUNT
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //TAX_REG_NO
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //SITE_CODE
hdrDataTypeList.add("STRING"); hdrDataTypeList.add("STRING"); //DOC_TYPE
hdrDataTypeList.add("STRING"); //ORDER_NO
hdrDataTypeList.add("STRING"); //PRD_CODE
detColumnList.add("TRAN_ID"); detColumnList.add("TRAN_ID");
detColumnList.add("LINE_NO"); detColumnList.add("LINE_NO");
detColumnList.add("TAXABLE_AMT"); detColumnList.add("TAXABLE_AMT");
detColumnList.add("GST_RATE");
detColumnList.add("IGST_PERC"); detColumnList.add("IGST_PERC");
detColumnList.add("IGST_AMT"); detColumnList.add("IGST_AMT");
detColumnList.add("CESS_PERC");
detColumnList.add("CESS_AMT"); detColumnList.add("CESS_AMT");
detColumnList.add("ITC_TYPE"); detColumnList.add("ITC_TYPE");
detColumnList.add("ITC_IGST"); detColumnList.add("ITC_IGST");
detColumnList.add("ITC_CESS"); detColumnList.add("ITC_CESS");
detDataTypeList.add("STRING"); detDataTypeList.add("STRING"); //TRAN_ID
detDataTypeList.add("INT"); detDataTypeList.add("INT"); //LINE_NO
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //TAXABLE_AMT
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //GST_RATE
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //IGST_PERC
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //IGST_AMT
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //CESS_AMT
detDataTypeList.add("STRING"); detDataTypeList.add("STRING"); //ITC_TYPE
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //ITC_IGST
detDataTypeList.add("DOUBLE"); detDataTypeList.add("DOUBLE"); //ITC_CESS
imgInvoiceArry = gstr2InvoiceJsonObj.getJSONArray("imp_g"); imgInvoiceArry = gstr2InvoiceJsonObj.getJSONArray("imp_g");
...@@ -2330,7 +2454,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2330,7 +2454,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
tranId = generateTranId("w_gstr_purc","","",conn); tranId = generateTranId("w_gstr_purc","","",conn);
detDataList = new ArrayList<List<String>>(); detDataList = new ArrayList<List<String>>();
List<String> tempList = new ArrayList<String>();
imgInvLineItmsArry = imgJsonObj.getJSONArray("itms"); imgInvLineItmsArry = imgJsonObj.getJSONArray("itms");
...@@ -2356,20 +2479,20 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2356,20 +2479,20 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
docType = "SEWOP"; docType = "SEWOP";
} }
List<String> tempList = new ArrayList<String>();
tempList.add(tranId); tempList.add(tranId);
tempList.add(String.valueOf(lineNo)); tempList.add(String.valueOf(lineNo));
tempList.add(String.valueOf(taxableValue)); tempList.add(String.valueOf(taxableValue));
tempList.add(String.valueOf(rate)); tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(igstAmt)); 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(String.valueOf(cessAmt));
tempList.add(itcType); tempList.add(itcType);
tempList.add(String.valueOf(itcIGSTAmt)); tempList.add(String.valueOf(itcIGSTAmt));
tempList.add(String.valueOf(itcCessAmt)); tempList.add(String.valueOf(itcCessAmt));
}
detDataList.add(tempList); detDataList.add(tempList);
}
hdrDataList = new ArrayList<String>(); hdrDataList = new ArrayList<String>();
...@@ -2386,10 +2509,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2386,10 +2509,12 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hdrDataList.add(siteCode); hdrDataList.add(siteCode);
hdrDataList.add(docType); hdrDataList.add(docType);
hdrDataList.add(portCode); hdrDataList.add(portCode);
} hdrDataList.add(periodCode);
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn); insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
} }
}
catch(Exception e) catch(Exception e)
{ {
System.out.println("GSTDataSubmitWizPos.insertIMGInvoiceData()["+e.getMessage()+"]"); System.out.println("GSTDataSubmitWizPos.insertIMGInvoiceData()["+e.getMessage()+"]");
...@@ -2397,22 +2522,586 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2397,22 +2522,586 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
throw new ITMException(e); throw new ITMException(e);
} }
} }
private void insertIMSInvoiceData(String stateCode, String periodCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
private void updateSubmissionStatus(ArrayList<String> tranIdList, Connection conn) throws ITMException
{ {
String updateSql = ""; JSONArray imsInvoiceArry = new JSONArray();
PreparedStatement pstmtUpd = null; JSONObject imsJsonObj = new JSONObject();
JSONArray imsInvLineItmsArry = new JSONArray();
JSONObject imsInvLineItemObj = new JSONObject();
String tranId = "", invoiceId = "", invoiceDate = "", checkSum = "", gstCode = "", itcType = "", tranType = "";
int lineNo = 0;
double amount = 0.0, rate = 0.0, igstAmt = 0.0, taxableValue = 0.0, cessAmt = 0.0, itcIGSTAmt = 0.0, itcCessAmt = 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 try
{ {
updateSql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE TRAN_ID = ?"; hdrColumnList.add("TRAN_ID");
pstmtUpd = conn.prepareStatement(updateSql); hdrColumnList.add("TRAN_DATE");
hdrColumnList.add("REC_TYPE");
hdrColumnList.add("TRAN_TYPE");
hdrColumnList.add("SUBMIT_STATUS");
hdrColumnList.add("DOC_CHECKSUM");
hdrColumnList.add("DOC_NO");
hdrColumnList.add("DOC_DATE");
hdrColumnList.add("AMOUNT");
hdrColumnList.add("GST_CODE");
hdrColumnList.add("SITE_CODE");
hdrColumnList.add("PRD_CODE");
hdrDataTypeList.add("STRING"); //TRAN_ID
hdrDataTypeList.add("TIMESTAMP"); //TRAN_DATE
hdrDataTypeList.add("STRING"); //REC_TYPE
hdrDataTypeList.add("STRING"); //TRAN_TYPE
hdrDataTypeList.add("STRING"); //SUBMIT_STATUS
hdrDataTypeList.add("STRING"); //DOC_CHECKSUM
hdrDataTypeList.add("STRING"); //DOC_NO
hdrDataTypeList.add("TIMESTAMP"); //DOC_DATE
hdrDataTypeList.add("DOUBLE"); //AMOUNT
hdrDataTypeList.add("STRING"); //GST_CODE
hdrDataTypeList.add("STRING"); //SITE_CODE
hdrDataTypeList.add("STRING"); //PRD_CODE
for(String tranId : tranIdList) detColumnList.add("TRAN_ID");
{ detColumnList.add("LINE_NO");
pstmtUpd.setString(1, "T"); detColumnList.add("TAXABLE_AMT");
pstmtUpd.setString(2, new SimpleDateFormat(new E12GenericUtility().getApplDateFormat()).format(new Date())); detColumnList.add("GST_RATE");
pstmtUpd.setString(3, tranId); detColumnList.add("IGST_PERC");
detColumnList.add("IGST_AMT");
detColumnList.add("CESS_AMT");
detColumnList.add("ITC_TYPE");
detColumnList.add("ITC_IGST");
detColumnList.add("ITC_CESS");
detDataTypeList.add("STRING"); //TRAN_ID
detDataTypeList.add("INT"); //LINE_NO
detDataTypeList.add("DOUBLE"); //TAXABLE_AMT
detDataTypeList.add("DOUBLE"); //GST_RATE
detDataTypeList.add("DOUBLE"); //IGST_PERC
detDataTypeList.add("DOUBLE"); //IGST_AMT
detDataTypeList.add("DOUBLE"); //CESS_AMT
detDataTypeList.add("STRING"); //ITC_TYPE
detDataTypeList.add("DOUBLE"); //ITC_IGST
detDataTypeList.add("DOUBLE"); //ITC_CESS
tranType = "04";
imsInvoiceArry = gstr2InvoiceJsonObj.getJSONArray("imp_s");
for(int i=0; i<gstr2InvoiceJsonObj.length(); i++)
{
imsJsonObj = imsInvoiceArry.getJSONObject(i);
invoiceId = imsJsonObj.getString("inum");
invoiceDate = imsJsonObj.getString("idt");
amount = imsJsonObj.getDouble("ival");
checkSum = imsJsonObj.getString("chksum");
gstCode = imsJsonObj.getString("pos");
tranId = generateTranId("w_gstr_purc","","",conn);
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(invoiceId);
hdrDataList.add(invoiceDate);
hdrDataList.add(String.valueOf(amount));
hdrDataList.add(gstCode);
hdrDataList.add(siteCode);
hdrDataList.add(periodCode);
detDataList = new ArrayList<List<String>>();
imsInvLineItmsArry = imsJsonObj.getJSONArray("itms");
for(int j=0; j<imsInvLineItmsArry.length(); j++)
{
imsInvLineItemObj = imsInvLineItmsArry.getJSONObject(j);
lineNo = imsInvLineItemObj.getInt("num");
taxableValue = imsInvLineItemObj.getDouble("txval");
rate = imsInvLineItemObj.getDouble("rt");
igstAmt = imsInvLineItemObj.getDouble("iamt");
cessAmt = imsInvLineItemObj.getDouble("csamt");
itcType = imsInvLineItemObj.getString("elg");
itcIGSTAmt = imsInvLineItemObj.getDouble("tx_i");
itcCessAmt = imsInvLineItemObj.getDouble("tx_cs");
List<String> tempList = new ArrayList<String>();
tempList.add(tranId);
tempList.add(String.valueOf(lineNo));
tempList.add(String.valueOf(taxableValue));
tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(igstAmt));
tempList.add(String.valueOf(cessAmt));
tempList.add(itcType);
tempList.add(String.valueOf(itcIGSTAmt));
tempList.add(String.valueOf(itcCessAmt));
detDataList.add(tempList);
}
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizPos.insertIMSInvoiceData()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private void insertCDNData(String stateCode, String periodCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
{
JSONArray cdnArry = new JSONArray();
JSONObject cdnJsonObj = new JSONObject();
JSONArray cdnJsonArry = new JSONArray();
JSONObject cdnDataJsonObj = new JSONObject();
JSONArray cdnInvLineItmsArry = new JSONArray();
JSONObject cdnInvLineItemObj = new JSONObject();
String tranId = "", cptyGSTIN = "", invoiceId = "", invoiceDate = "", docCheckSum = "", tranType = "";
String creditDebitId = "", creditDebitDate = "", creditDebitType = "", reason = "";
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, csamt = 0.0, rate = 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("DOC_NO");
hdrColumnList.add("DOC_DATE");
hdrColumnList.add("AMOUNT");
hdrColumnList.add("TAX_REG_NO");
hdrColumnList.add("SITE_CODE");
hdrColumnList.add("DOC_TYPE");
hdrColumnList.add("PRD_CODE");
hdrColumnList.add("REAS_CODE");
hdrColumnList.add("REF_ID__INV");
hdrColumnList.add("REF_DATE__INV");
hdrDataTypeList.add("STRING"); //TRAN_ID
hdrDataTypeList.add("TIMESTAMP"); //TRAN_DATE
hdrDataTypeList.add("STRING"); //REC_TYPE
hdrDataTypeList.add("STRING"); //TRAN_TYPE
hdrDataTypeList.add("STRING"); //SUBMIT_STATUS
hdrDataTypeList.add("STRING"); //DOC_CHECKSUM
hdrDataTypeList.add("STRING"); //DOC_NO
hdrDataTypeList.add("TIMESTAMP"); //DOC_DATE
hdrDataTypeList.add("DOUBLE"); //AMOUNT
hdrDataTypeList.add("STRING"); //TAX_REG_NO
hdrDataTypeList.add("STRING"); //SITE_CODE
hdrDataTypeList.add("STRING"); //DOC_TYPE
hdrDataTypeList.add("STRING"); //PRD_CODE
hdrDataTypeList.add("STRING"); //REAS_CODE
hdrDataTypeList.add("STRING"); //REF_ID__INV
hdrDataTypeList.add("TIMESTAMP"); //REF_DATE__INV
detColumnList.add("TRAN_ID");
detColumnList.add("LINE_NO");
detColumnList.add("TAXABLE_AMT");
detColumnList.add("GST_RATE");
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_AMT");
detDataTypeList.add("STRING"); //TRAN_ID
detDataTypeList.add("INT"); //LINE_NO
detDataTypeList.add("DOUBLE"); //TAXABLE_AMT
detDataTypeList.add("DOUBLE"); //GST_RATE
detDataTypeList.add("DOUBLE"); //IGST_PERC
detDataTypeList.add("DOUBLE"); //IGST_AMT
detDataTypeList.add("DOUBLE"); //CGST_PERC
detDataTypeList.add("DOUBLE"); //CGST_AMT
detDataTypeList.add("DOUBLE"); //SGST_PERC
detDataTypeList.add("DOUBLE"); //SGST_AMT
detDataTypeList.add("DOUBLE"); //CESS_AMT
cdnArry = gstr2InvoiceJsonObj.getJSONArray("cdn");
for(int i = 0; i < cdnArry.length(); i++)
{
cdnJsonObj = cdnArry.getJSONObject(i);
cptyGSTIN = cdnJsonObj.getString("ctin");
cdnJsonArry = cdnJsonObj.getJSONArray("nt");
for(int j=0; j<cdnJsonArry.length(); j++)
{
hdrDataList = new ArrayList<String>();
cdnDataJsonObj = cdnJsonArry.getJSONObject(j);
creditDebitId = cdnDataJsonObj.getString("nt_num");
creditDebitDate = cdnDataJsonObj.getString("nt_dt");
creditDebitType = cdnDataJsonObj.getString("ntty");
amount = cdnDataJsonObj.getDouble("val");
invoiceId = cdnDataJsonObj.getString("inum");
invoiceDate = cdnDataJsonObj.getString("idt");
docCheckSum = cdnDataJsonObj.getString("chksum");
reason = cdnDataJsonObj.getString("rsn");
if("C".equalsIgnoreCase(creditDebitType))
{
tranType = "29";
}
else if("D".equalsIgnoreCase(creditDebitType))
{
tranType = "30";
}
tranId = generateTranId("w_gstr_purc","","",conn);
hdrDataList.add(tranId);
hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrDataList.add("2A");
hdrDataList.add(tranType);
hdrDataList.add("D");
hdrDataList.add(docCheckSum);
hdrDataList.add(creditDebitId);
hdrDataList.add(creditDebitDate);
hdrDataList.add(String.valueOf(amount));
hdrDataList.add(cptyGSTIN);
hdrDataList.add(siteCode);
hdrDataList.add(periodCode);
hdrDataList.add(reason);
hdrDataList.add(invoiceId);
hdrDataList.add(invoiceDate);
detDataList = new ArrayList<List<String>>();
cdnInvLineItmsArry = cdnDataJsonObj.getJSONArray("itms");
for(int k=0; k<cdnInvLineItmsArry.length(); k++)
{
List<String> tempList = new ArrayList<String>();
cdnInvLineItemObj = cdnInvLineItmsArry.getJSONObject(k);
lineNo = cdnInvLineItemObj.getInt("num");
JSONObject tempJSONObj = cdnInvLineItemObj.getJSONObject("itm_det");
rate = tempJSONObj.getDouble("rt");
lineAmt = tempJSONObj.getDouble("txval");
iamt = tempJSONObj.getDouble("iamt");
camt = tempJSONObj.getDouble("camt");
samt = tempJSONObj.getDouble("samt");
csamt = tempJSONObj.getDouble("csamt");
if(iamt > 0)
{
irt = rate;
}
else if (camt > 0 && samt > 0)
{
crt = rate/2;
srt = rate/2;
}
tempList = new ArrayList<String>();
tempList.add(tranId);
tempList.add(String.valueOf(lineNo));
tempList.add(String.valueOf(lineAmt));
tempList.add(String.valueOf(rate));
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(csamt));
detDataList.add(tempList);
}
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
}
}
}
catch (Exception e)
{
System.out.println("GSTDataSubmitWizPos.insertCDNData()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private void insertNILData(String stateCode, String periodCode, String siteCode, JSONObject gstr2InvoiceJsonObj, Connection conn) throws ITMException
{
JSONObject nilJsonObj = null, nilInterJsonObj = null, nilIntraJsonObj = null;
HashMap<String, String> nilSuppliesAmtHMap = null;
String tranId = "";
List<String> hdrColumnList = new ArrayList<String>(), hdrDataTypeList = new ArrayList<String>(), hdrDataList = null;
try
{
hdrColumnList.add("TRAN_ID");
hdrColumnList.add("TRAN_DATE");
hdrColumnList.add("TRAN_TYPE");
hdrColumnList.add("SITE_CODE");
hdrColumnList.add("PRD_CODE");
hdrColumnList.add("REC_TYPE");
hdrColumnList.add("AMOUNT");
hdrColumnList.add("SUBMIT_STATUS");
hdrDataTypeList.add("STRING"); //TRAN_ID
hdrDataTypeList.add("TIMESTAMP"); //TRAN_DATE
hdrDataTypeList.add("STRING"); //TRAN_TYPE
hdrDataTypeList.add("STRING"); //SITE_CODE
hdrDataTypeList.add("STRING"); //PRD_CODE
hdrDataTypeList.add("STRING"); //REC_TYPE
hdrDataTypeList.add("DOUBLE"); //AMOUNT
hdrDataTypeList.add("STRING"); //SUBMIT_STATUS
nilJsonObj = gstr2InvoiceJsonObj.getJSONObject("nil_supplies");
if(nilJsonObj.has("inter"))
{
nilInterJsonObj = nilJsonObj.getJSONObject("inter");
nilSuppliesAmtHMap = new HashMap<String, String>();
nilSuppliesAmtHMap.put("13", String.valueOf(nilInterJsonObj.getDouble("cpddr")));
nilSuppliesAmtHMap.put("14", String.valueOf(nilInterJsonObj.getDouble("exptdsply")));
nilSuppliesAmtHMap.put("15", String.valueOf(nilInterJsonObj.getDouble("ngsply")));
nilSuppliesAmtHMap.put("16", String.valueOf(nilInterJsonObj.getDouble("nilsply")));
Set<String> tranTypeKeySet = nilSuppliesAmtHMap.keySet();
for(String tranType : tranTypeKeySet)
{
hdrDataList = new ArrayList<String>();
tranId = generateTranId("w_gstr_purc","","",conn);
hdrDataList.add(tranId);
hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrDataList.add(tranType);
hdrDataList.add(siteCode);
hdrDataList.add(periodCode);
hdrDataList.add("2");
hdrDataList.add(nilSuppliesAmtHMap.get(tranType));
hdrDataList.add("D");
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, null, null, null, conn);
}
}
if(nilJsonObj.has("intra"))
{
nilIntraJsonObj = nilJsonObj.getJSONObject("intra");
nilSuppliesAmtHMap = new HashMap<String, String>();
nilSuppliesAmtHMap.put("17", String.valueOf(nilIntraJsonObj.getDouble("cpddr")));
nilSuppliesAmtHMap.put("18", String.valueOf(nilIntraJsonObj.getDouble("exptdsply")));
nilSuppliesAmtHMap.put("19", String.valueOf(nilIntraJsonObj.getDouble("ngsply")));
nilSuppliesAmtHMap.put("20", String.valueOf(nilIntraJsonObj.getDouble("nilsply")));
Set<String> tranTypeKeySet = nilSuppliesAmtHMap.keySet();
for(String tranType : tranTypeKeySet)
{
hdrDataList = new ArrayList<String>();
tranId = generateTranId("w_gstr_purc","","",conn);
hdrDataList.add(tranId);
hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrDataList.add(tranType);
hdrDataList.add(siteCode);
hdrDataList.add(periodCode);
hdrDataList.add("2");
hdrDataList.add(nilSuppliesAmtHMap.get(tranType));
hdrDataList.add("D");
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, null, null, null, conn);
}
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizPos.insertNILData()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private void insertTXIData(String stateCode, String periodCode, String siteCode, JSONObject gstr2InvoiceJsonObj, String action, Connection conn) throws ITMException
{
JSONArray txiDataJsonArry = null;
JSONObject txiDataJsonObj = null;
JSONArray txiDataLineItemJsonArry = null;
JSONObject txiDataLineItemJsonObj = null;
String gstCode = "", supplyType = "", tranType = "", tranId = "";
int lineNo = 0;
double rate = 0.0, advAmt = 0.0, igstPerc = 0.0, igstAmt = 0.0, cgstPerc = 0.0, cgstAmt = 0.0, sgstPerc = 0.0, sgstAmt = 0.0, cessAmt = 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("TRAN_TYPE");
hdrColumnList.add("SITE_CODE");
hdrColumnList.add("PRD_CODE");
hdrColumnList.add("REC_TYPE");
hdrColumnList.add("GST_CODE");
hdrColumnList.add("SUBMIT_STATUS");
hdrDataTypeList.add("STRING"); //TRAN_ID
hdrDataTypeList.add("TIMESTAMP"); //TRAN_DATE
hdrDataTypeList.add("STRING"); //TRAN_TYPE
hdrDataTypeList.add("STRING"); //SITE_CODE
hdrDataTypeList.add("STRING"); //PRD_CODE
hdrDataTypeList.add("STRING"); //REC_TYPE
hdrDataTypeList.add("STRING"); //AMOUNT
hdrDataTypeList.add("STRING"); //SUBMIT_STATUS
detColumnList.add("TRAN_ID");
detColumnList.add("LINE_NO");
detColumnList.add("TAXABLE_AMT");
detColumnList.add("GST_RATE");
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_AMT");
detDataTypeList.add("STRING"); //TRAN_ID
detDataTypeList.add("INT"); //LINE_NO
detDataTypeList.add("DOUBLE"); //TAXABLE_AMT
detDataTypeList.add("DOUBLE"); //GST_RATE
detDataTypeList.add("DOUBLE"); //IGST_PERC
detDataTypeList.add("DOUBLE"); //IGST_AMT
detDataTypeList.add("DOUBLE"); //CGST_PERC
detDataTypeList.add("DOUBLE"); //CGST_AMT
detDataTypeList.add("DOUBLE"); //SGST_PERC
detDataTypeList.add("DOUBLE"); //SGST_AMT
detDataTypeList.add("DOUBLE"); //CESS_AMT
txiDataJsonArry = gstr2InvoiceJsonObj.getJSONArray("txi");
for(int i=0; i<txiDataJsonArry.length(); i++)
{
hdrDataList = new ArrayList<String>();
txiDataJsonObj = txiDataJsonArry.getJSONObject(i);
gstCode = txiDataJsonObj.getString("pos");
supplyType = txiDataJsonObj.getString("sply_ty");
if("TXLI".equalsIgnoreCase(action))
{
if("INTER".equalsIgnoreCase(supplyType))
{
tranType = "20";
}
else if("INTRA".equalsIgnoreCase(supplyType))
{
tranType = "19";
}
}
if("TXP".equalsIgnoreCase(action))
{
if("INTER".equalsIgnoreCase(supplyType))
{
tranType = "22";
}
else if("INTRA".equalsIgnoreCase(supplyType))
{
tranType = "21";
}
}
tranId = generateTranId("w_gstr_purc","","",conn);
hdrDataList.add(tranId);
hdrDataList.add(e12GenericUtility.getValidDateString(new Date(), e12GenericUtility.getDBDateFormat()));
hdrDataList.add(tranType);
hdrDataList.add(siteCode);
hdrDataList.add(periodCode);
hdrDataList.add("2");
hdrDataList.add(gstCode);
hdrDataList.add("D");
detDataList = new ArrayList<List<String>>();
txiDataLineItemJsonArry = txiDataJsonObj.getJSONArray("itms");
for(int j=0; j<txiDataLineItemJsonArry.length(); j++)
{
ArrayList<String> tempList = new ArrayList<String>();
txiDataLineItemJsonObj = txiDataLineItemJsonArry.getJSONObject(j);
lineNo = txiDataLineItemJsonObj.getInt("num");
rate = txiDataLineItemJsonObj.getDouble("rt");
if("INTER".equalsIgnoreCase(supplyType))
{
igstPerc = 0.0;
cgstPerc = rate/2;
sgstPerc = rate/2;
}
else if("INTRA".equalsIgnoreCase(supplyType))
{
igstPerc = rate;
cgstPerc = 0.0;
sgstPerc = 0.0;
}
advAmt = txiDataLineItemJsonObj.getDouble("adamt");
igstAmt = txiDataLineItemJsonObj.getDouble("iamt");
cgstAmt = txiDataLineItemJsonObj.getDouble("camt");
sgstAmt = txiDataLineItemJsonObj.getDouble("samt");
cessAmt = txiDataLineItemJsonObj.getDouble("csamt");
tempList.add(tranId);
tempList.add(String.valueOf(lineNo));
tempList.add(String.valueOf(advAmt));
tempList.add(String.valueOf(rate));
tempList.add(String.valueOf(igstPerc));
tempList.add(String.valueOf(igstAmt));
tempList.add(String.valueOf(cgstPerc));
tempList.add(String.valueOf(cgstAmt));
tempList.add(String.valueOf(sgstPerc));
tempList.add(String.valueOf(sgstAmt));
tempList.add(String.valueOf(cessAmt));
detDataList.add(tempList);
}
insertGSTHdrDetData(hdrColumnList, hdrDataTypeList, hdrDataList, detColumnList, detDataTypeList, detDataList, conn);
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizPos.insertTXIData()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
}
private void updateSubmissionStatus(ArrayList<String> tranIdList, Connection conn) throws ITMException
{
String updateSql = "";
PreparedStatement pstmtUpd = null;
try
{
updateSql = "UPDATE GST_DATA_HDR SET SUBMIT_STATUS = ?, SUBMIT_DATE = ? WHERE TRAN_ID = ?";
pstmtUpd = conn.prepareStatement(updateSql);
for(String tranId : tranIdList)
{
pstmtUpd.setString(1, "T");
pstmtUpd.setString(2, new SimpleDateFormat(new E12GenericUtility().getApplDateFormat()).format(new Date()));
pstmtUpd.setString(3, tranId);
pstmtUpd.addBatch(); pstmtUpd.addBatch();
pstmtUpd.clearParameters(); pstmtUpd.clearParameters();
...@@ -2681,6 +3370,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2681,6 +3370,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
hdrPstmt = null; hdrPstmt = null;
} }
if(detColumnList != null && detColumnList.size() >0)
{
detInsertSqlBuff.append("INSERT INTO GST_DATA_DET ("); detInsertSqlBuff.append("INSERT INTO GST_DATA_DET (");
for(String columnName : detColumnList) for(String columnName : detColumnList)
...@@ -2746,7 +3437,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2746,7 +3437,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
detPstmt.close(); detPstmt.close();
detPstmt = null; detPstmt = null;
} }
}
} }
catch(SQLException se) catch(SQLException se)
{ {
......
...@@ -45,9 +45,34 @@ public class GSTDataSubmitWizServlet extends HttpServlet ...@@ -45,9 +45,34 @@ public class GSTDataSubmitWizServlet extends HttpServlet
action = request.getParameter("action"); action = request.getParameter("action");
System.out.println("GSTDataSubmitWizServlet ACTION ["+action+"]"); System.out.println("GSTDataSubmitWizServlet ACTION ["+action+"]");
if("".equalsIgnoreCase(action)) if("SAVE_HTML_DATA".equalsIgnoreCase(action))
{ {
String prevHTMLData = request.getParameter("HTML_DATA");
request.getSession().setAttribute( "GST_WIZ_HTML_DATA", prevHTMLData);
}
else if("DISPLAY_HTML_DATA".equalsIgnoreCase(action))
{
String htmlDataErr = (String) request.getSession().getAttribute( "GST_WIZ_HTML_DATA");
request.getSession().removeAttribute( "GST_WIZ_HTML_DATA");
response.setContentType("text/html");
if(CommonConstants.CONTENT_ENCODING != null && CommonConstants.CONTENT_ENCODING.equalsIgnoreCase("gzip"))
{
response.setHeader("Content-Encoding", "gzip");
GZIPOutputStream gzOutStream = new GZIPOutputStream(response.getOutputStream());
gzOutStream.write(htmlDataErr.getBytes());
gzOutStream.flush();
gzOutStream.close();
}
else
{
response.setHeader("Content-Encoding", CommonConstants.CONTENT_ENCODING);
OutputStream outStream = response.getOutputStream();
outStream.write(htmlDataErr.getBytes());
outStream.flush();
outStream.close();
}
} }
else else
{ {
......
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