Commit cec6abfd authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@44325 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 75f7570c
......@@ -17,5 +17,9 @@ public class CDNDetails
public double val;
public String reason;
public boolean isPreGSTInvoice;
public List<InvLineItem> items;
}
......@@ -24,5 +24,9 @@ public class CDNUR extends BaseData
public double val;
public String reason;
public boolean isPreGSTInvoice;
public List<InvLineItem> items;
}
......@@ -24,6 +24,8 @@ public class Invoice
public String invoiceType;
public String shippingPortCode;
public String shippingBillNum;
public Date shippingBillDt;
......
......@@ -11,6 +11,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
......@@ -20,6 +21,9 @@ import java.util.UUID;
import javax.annotation.PostConstruct;
import org.bouncycastle.crypto.digests.SHA256Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
import org.json.JSONObject;
import org.json.XML;
import org.w3c.dom.Document;
......@@ -32,6 +36,7 @@ import com.mashape.unirest.http.Unirest;
import com.sun.jmx.snmp.Timestamp;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.fin.FinCommon;
import ibase.webitm.util.gst.AESEncryption;
......@@ -320,14 +325,13 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
valueXmlString.append("<gross_turnover><![CDATA[").append(grossTurnover).append( "]]></gross_turnover>");
valueXmlString.append("<otp><![CDATA[]]></otp>");
valueXmlString.append("<app_key><![CDATA["+appKey+"]]></app_key>");
valueXmlString.append("<returns_type><![CDATA[]]></returns_type>");
valueXmlString.append("</Detail1>" );
}
break;
}
case 2:
{
String otp = "", transactionId = "", authToken = "", sek = "", retXML = "";
String otp = "", transactionId = "", authToken = "", sek = "", retXML = "", errorXML = "", errMsg = "", returnType = "", action = "";
String gspAuthString = "", gspAuthSignature = "";
long timeStamp = new Timestamp().getDateTime();
byte[] authSEK = null;
......@@ -335,12 +339,55 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
System.out.println(" -------- Inside itemchange case 2222222 ------------ ");
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ))
{
transactionId = UUID.randomUUID().toString().replaceAll("-", "");
gstinNo = checkNull(e12genericUtility.getColumnValue("gstin", dom1));
periodCode = checkNull(e12genericUtility.getColumnValue("period_code", dom1));
stateCode = checkNull(e12genericUtility.getColumnValue("state_code", dom1));
userName = checkNull(e12genericUtility.getColumnValue("username", dom1));
returnType = checkNull(e12genericUtility.getColumnValue("returns_type", dom1));
action = checkNull(e12genericUtility.getColumnValue("action", dom1));
siteCode = checkNull(e12genericUtility.getColumnValue("site_code", dom1));
if("GSTR1".equalsIgnoreCase(returnType.trim()))
{
if("SUBMIT".equalsIgnoreCase(action.trim()))
{
boolean isPendingDataFound = false;
retXML = "<pending_data>";
sql = "SELECT DOC_NO, DOC_DATE, AMOUNT FROM GST_DATA_HDR WHERE REC_TYPE = '1' AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
while(rs.next())
{
isPendingDataFound = true;
retXML += "<data>";
retXML += "<doc_no><![CDATA["+checkNull(rs.getString("DOC_NO"))+"]]></doc_no>";
retXML += "<doc_date><![CDATA["+checkNull(rs.getString("DOC_DATE"))+"]]></doc_date>";
retXML += "<amount><![CDATA["+rs.getDouble("AMOUNT")+"]]></amount>";
retXML += "</data>";
}
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
if(rs!=null)
{
rs.close();
rs=null;
}
retXML += "</pending_data>";
if(!isPendingDataFound)
{
retXML = "";
}
}
}
transactionId = UUID.randomUUID().toString().replaceAll("-", "");
appKey = checkNull(e12genericUtility.getColumnValue("app_key", dom1));
appKeyInBytes = aesEncryption.decodeBase64StringTOByte(appKey);
......@@ -374,7 +421,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
System.out.println(String.format("authTokenResp Request : Status[%s] Response[%s]", authTokenResp.getStatus(), authTokenResp.getBody()));
if (authTokenResp.getStatus() == 200)
if(authTokenResp.getStatus() == 200)
{
JSONObject object = authTokenResp.getBody().getObject();
if (object.has("auth_token") && object.has("sek") && object.has("status_cd") && Objects.equals(object.getString("status_cd"), "1"))
......@@ -385,9 +432,35 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
authSEK = aesEncryption.decrypt(sek, appKeyInBytes);
System.out.println("AuthSEK = "+ aesEncryption.encodeBase64String(authSEK));
retXML = downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, authSEK);
retXML += getGstr1Summary(authToken, stateCode, userName, gstinNo, periodCode, authSEK, appKeyEncryptedAndCoded, conn);
retXML += downloadGstr1Data(gstinNo, periodCode, authToken, userName, stateCode, appKeyEncryptedAndCoded, authSEK);
}
else
{
JSONObject errorJSON = authTokenResp.getBody().getObject().getJSONObject("error");
if("AUTH4033".equalsIgnoreCase(errorJSON.getString("error_cd")))
{
errorXML = new ITMDBAccessEJB().getErrorString("","VTINVOTP","","",conn);
}
else
{
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
}
}
else if(authTokenResp.getStatus() == 500)
{
errMsg = "Message : Server error occurred at GSTN server \nResponse code : 500";
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
else
{
JSONObject errorJSON = authTokenResp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
errorXML = getError(errMsg, "GSTAPIERR", conn);
}
valueXmlString.append("<Detail2 domID='1'>");
valueXmlString.append("<auth_token><![CDATA["+ authToken +"]]></auth_token>");
......@@ -396,6 +469,10 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
valueXmlString.append("<Detail2 domID='2'>");
valueXmlString.append(retXML);
valueXmlString.append("</Detail2>" );
if(errorXML.trim().length() > 0)
{
valueXmlString.append(errorXML);
}
}
break;
}
......@@ -469,7 +546,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
@Override
public String wfValData(Document currFormDataDom, Document hdrDataDom, Document allFormDataDom, String objContext, String editFlag, String xtraParams) throws RemoteException, ITMException
{
String errString = "", userId = "";
String errString = "", userId = "", loginSiteCode = "";
StringBuffer errStringXml = new StringBuffer("<?xml version=\"1.0\"?>\r\n<Root><Errors>");
int currentFormNo = 0;
String sql = null;
......@@ -483,6 +560,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
try
{
userId = e12GenericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginCode" );
loginSiteCode = e12GenericUtility.getValueFromXTRA_PARAMS( xtraParams, "loginSiteCode" );
if (objContext != null && objContext.trim().length() > 0)
{
currentFormNo = Integer.parseInt(objContext);
......@@ -494,6 +572,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
{
case 1:
{
String returnType = "", action = "", periodCode = "";
NodeList parentList = null, childList = null;
Node childNode = null;
String childNodeName = "", columnValue = "";
......@@ -524,6 +603,16 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
errFields.add( childNodeName.toLowerCase() );
}
}
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
}
if("site_code".equalsIgnoreCase(childNodeName))
{
......@@ -539,14 +628,75 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
errFields.add( childNodeName.toLowerCase() );
}
}
if(pstmt!=null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
}
}
returnType = e12GenericUtility.getColumnValue("returns_type", hdrDataDom);
action = e12GenericUtility.getColumnValue("action", hdrDataDom);
periodCode = e12GenericUtility.getColumnValue("period_code", hdrDataDom);
System.out.println("returnType["+returnType+"] action["+action+"] periodCode["+periodCode+"]");
if("GSTR1".equalsIgnoreCase(returnType))
{
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( "VTNORECSAV" );
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 = 'P' 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( "VTRECSAPEN" );
errFields.add("returns_type");
}
}*/
}
}
break;
}
/*case 2:
case 2:
{
break;
}*/
}
}
int errListSize = errList.size();
String errFldName = null;
......@@ -752,7 +902,7 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
private String downloadGstr1Data (String gstinNo, String periodCode, String authToken, String userName, String stateCode, String appKeyEncryptedAndCoded, byte[] authSek) throws ITMException
{
StringBuffer retStringBuff = new StringBuffer();
String[] gstr1Section = {"B2B","B2CL","B2CS","CDNR","CDNUR","AT","TXP","NIL","EXP","HSNSUM"};
String[] gstr1Section = {"B2B","B2CL","B2CS","CDNR","AT","TXP","NIL","EXP","HSNSUM"};
String gspAuthString = "", gspAuthSignature = "";
try
......@@ -815,21 +965,66 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
retStringBuff.append("<b2cl_invoices>");
retStringBuff.append(b2clXML);
retStringBuff.append("</b2cl_invoices>");
}
else if("B2CS".equalsIgnoreCase(action))
{
String b2csXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<b2cs_invoices>");
retStringBuff.append(b2csXML);
retStringBuff.append("</b2cs_invoices>");
}
else if("CDNR".equalsIgnoreCase(action))
{
String cdnrXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<cdnr_data>");
retStringBuff.append(cdnrXML);
retStringBuff.append("</cdnr_data>");
}
else if("AT".equalsIgnoreCase(action))
{
String atXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<at_data>");
retStringBuff.append(atXML);
retStringBuff.append("</at_data>");
}
else if("TXP".equalsIgnoreCase(action))
{
String txpXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<txp_data>");
retStringBuff.append(txpXML);
retStringBuff.append("</txp_data>");
}
else if("NIL".equalsIgnoreCase(action))
{
String nilXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<nil_data>");
retStringBuff.append(nilXML);
retStringBuff.append("</nil_data>");
}
else if("EXP".equalsIgnoreCase(action))
{
String expXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<exp_data>");
retStringBuff.append(expXML);
retStringBuff.append("</exp_data>");
}
else if("HSNSUM".equalsIgnoreCase(action))
{
String hsnSumXML = XML.toString(new JSONObject(new String(getrespJsonInBytes)));
retStringBuff.append("<hsnsum_data>");
retStringBuff.append(hsnSumXML);
retStringBuff.append("</hsnsum_data>");
}
}
else
{
JSONObject errorJSON = getDataResp.getBody().getObject().getJSONObject("error");
//errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code");
//retString = getError(errMsg, "GSTAPIERR", conn);
System.out.println("errorJSON["+errorJSON+"]");
}
}
else
{
JSONObject errorJSON = getDataResp.getBody().getObject().getJSONObject("error");
//errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code");
//retString = getError(errMsg, "GSTAPIERR", conn);
System.out.println("errorJSON["+errorJSON+"]");
}
}
......@@ -843,6 +1038,81 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("final retStringBuff.toSting["+retStringBuff.toString()+"]");
return retStringBuff.toString();
}
private String getGstr1Summary(String authToken, String stateCode, String userName, String gstin, String periodCode, byte[] authSek, String appKeyEncryptedAndCoded, Connection conn) throws ITMException
{
String retString = "";
String errMsg = "", gspAuthString = "", gspAuthSignature = "";
String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
try
{
long timeStamp = new Timestamp().getDateTime();
gspAuthString = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthSignature = gspSignature.sign(gspAuthString, aspPrivateKey);
HttpResponse<JsonNode> getGstr1SumryResp = Unirest.get(String.format("%s%s", GSP_API_URL, GSTR1_URL_V2))//TODO need to change with version 0.3
.queryString("action","RETSUM")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("ip-usr", ipAddress.getHostAddress())
.header("username", userName)
.header("auth-token", authToken)
.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId)
.header("ret_period", periodCode)
.header("gstin", gstin)
.header("X-Asp-Auth-Token", gspAuthString)
.header("X-Asp-Auth-Signature", gspAuthSignature)
.asJson();
System.out.println(String.format("getGstr1SumryResp Request : Status[%s] Response[%s]", getGstr1SumryResp.getStatus(), getGstr1SumryResp.getBody()));
if (getGstr1SumryResp.getStatus() == 200)
{
JSONObject getGstr1SumryRespObj = getGstr1SumryResp.getBody().getObject();
if(getGstr1SumryRespObj.has("data") && getGstr1SumryRespObj.has("rek"))
{
String gstr1Sumrydata = getGstr1SumryRespObj.getString("data");
String gstr1Sumryrek = getGstr1SumryRespObj.getString("rek");
byte[] apiEK = aesEncryption.decrypt(gstr1Sumryrek, authSek);
String respJsoninBase64 = new String(aesEncryption.decrypt(gstr1Sumrydata, apiEK));
byte[] respJsonInBytes = aesEncryption.decodeBase64StringTOByte(respJsoninBase64);
JSONObject gstr1SumryJsonObj = new JSONObject(new String(respJsonInBytes));
retString = "<summary_data>" + XML.toString(gstr1SumryJsonObj) + "</summary_data>";
System.out.println("retString in getGstr1Summary["+retString+"]");
}
else
{
JSONObject errorJSON = getGstr1SumryResp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
}
}
else
{
JSONObject errorJSON = getGstr1SumryResp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code");
retString = getError(errMsg, "GSTAPIERR", conn);
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWiz.getGstr1Summary()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
return retString;
}
private String checkNull(String input)
{
if (input==null)
......@@ -895,4 +1165,26 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
}
return msgType;
}
private String getError(String errMsg, String Code, Connection conn) throws ITMException, Exception
{
String mainStr ="";
try
{
String errString = "";
errString = new ITMDBAccessEJB().getErrorString("",Code,"","",conn);
String begPart = errString.substring(0,errString.indexOf("</description>"));
String endDesc = errString.substring(errString.indexOf("</description>"),errString.length());
mainStr = checkNull(begPart) + "<![CDATA[" +errMsg+ " ]]>" + checkNull(endDesc);
System.out.println("mainStr:::::::::::::::::: "+mainStr);
begPart = null;
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return mainStr;
}
}
......@@ -12,6 +12,7 @@ import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
......@@ -203,7 +204,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
public String postSave(String xmlStringAll, String dcrId, String editFlag, String xtraParams, Connection conn) throws RemoteException,ITMException
{
Document allXMLDom = null;
NodeList detail1NList = null, detail1ChildNList = null;
NodeList detail1NList = null, detail1ChildNList = null, detail2NList = null, detail2ChildNList = null;
String retString = "", nodeName = "", otp = "", stateCode = "", sek = "", returnsType = "", gstin = "", periodCode = "", grossTurnover = "",
action = "", siteCode = "", gspAuthString = "", gspAuthSignature = "";
byte[] authSEK = null;
......@@ -270,7 +271,25 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
siteCode = eachDetail1Element.getTextContent();
}
}
}
}
detail2NList = allXMLDom.getElementsByTagName("Detail2");
for(int i=0; i<detail2NList.getLength(); i++)
{
Node eachDetail2Node = detail2NList.item(i);
System.out.println("560101.domId["+eachDetail2Node.getAttributes().getNamedItem("domID")+"]");
detail2ChildNList = eachDetail2Node.getChildNodes();
for(int j=0; j<detail1ChildNList.getLength();j++)
{
Node eachDetail2Element = detail2ChildNList.item(j);
nodeName = eachDetail2Element.getNodeName();
}
}
System.out.println("returnsType["+returnsType+"] action ["+action+"]");
......@@ -383,7 +402,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
PreparedStatement pstmt = null, linePstmt = null, refDataPstmt = null;
ResultSet rs = null, lineRs = null, refDataRs = null;
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "", posStateCodeStr = "", supplyType = "";
String tranId = "", tranType = "", tranIdRef = "", ctin = "", posStateCode = "", supplyType = "";
ArrayList<String> tranIdList = new ArrayList<String>();
......@@ -429,11 +448,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
try
{
gstr1 = new GSTR1();
gstr1.gstin = gstin;
gstr1.financialPeriod = periodCode;
gstr1.grossTurnOver = Double.valueOf(grossTurnover);
sql = "SELECT * FROM GST_DATA_HDR WHERE PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = 'P' AND REC_TYPE ='1'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
......@@ -446,34 +460,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
tranId = checkNullandTrim(rs.getString("TRAN_ID"));
tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
ctin = checkNullandTrim(rs.getString("TAX_REG_NO"));
posStateCodeStr = checkNullandTrim(rs.getString("STATE_CODE"));
posStateCode = checkNullandTrim(rs.getString("GST_CODE"));
tranIdRef = checkNullandTrim(rs.getString("TRAN_ID__REF"));
System.out.println("tranId["+tranId+"] tranType["+tranType+"] ctin["+ctin+"] posStateCodeStr["+posStateCodeStr+"] tranIdRef["+tranIdRef+"]");
if(posStateCodeStr.length() > 0)
{
lineSql = "SELECT GST_CODE FROM STATE WHERE STATE_CODE = ?";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, posStateCodeStr);
lineRs = linePstmt.executeQuery();
if(lineRs.next())
{
posStateCode = checkNullandTrim(lineRs.getString("GST_CODE")) ;
}
if(linePstmt != null)
{
linePstmt.close();
linePstmt = null;
}
if(lineRs != null)
{
lineRs.close();
lineRs = null;
}
}
System.out.println("tranId["+tranId+"] tranType["+tranType+"] ctin["+ctin+"] posStateCode["+posStateCode+"] tranIdRef["+tranIdRef+"]");
invoices = new ArrayList<Invoice>();
invoice = new Invoice();
......@@ -488,16 +478,19 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
//tran_type : 01 = B2B invoices, 02 B2BA invoices
if("01".equalsIgnoreCase(tranType) || "02".equalsIgnoreCase(tranType))
{
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO ";
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
int lineNum = 0;
while(lineRs.next())
{
invLineItem = new InvLineItem();
invLineItem.num = lineRs.getInt("LINE_NO");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
......@@ -557,16 +550,19 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice = new Invoice();
invLineItems = new ArrayList<InvLineItem>();
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO ";
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
int lineNum = 0;
while(lineRs.next())
{
invLineItem = new InvLineItem();
invLineItem.num = lineRs.getInt("LINE_NO");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
......@@ -667,18 +663,46 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
//tran_type : 07 = CDNR, 08 CDNRA
if("07".equalsIgnoreCase(tranType) || "08".equalsIgnoreCase(tranType))
{
String reason = "";
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 07, 01);
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("07".equalsIgnoreCase(tranType))
{
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO";
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
int lineNum = 0;
while(lineRs.next())
{
invLineItem = new InvLineItem();
invLineItem.num = lineRs.getInt("LINE_NO");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
......@@ -706,6 +730,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnDetails.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnDetails.invoiceDate = rs.getDate("REF_DATE__INV");
cdnDetails.val = rs.getDouble("AMOUNT");
cdnDetails.reason = reason;
if(rs.getDate("REF_DATE__INV").before(gstStartDate))
{
cdnDetails.isPreGSTInvoice = true;
}
cdnDetails.items = invLineItems;
cdnDetailsList.add(cdnDetails);
......@@ -743,7 +772,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("10".equalsIgnoreCase(tranType))
{
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO ";
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
......@@ -751,8 +783,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
while(lineRs.next())
{
invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
......@@ -774,6 +806,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
invoice.inum = rs.getString("DOC_NO");
invoice.idt = rs.getDate("DOC_DATE");
invoice.val = rs.getDouble("AMOUNT");
invoice.shippingPortCode = "560101";//TODO need to change harcoded value
invoice.shippingBillNum = checkNullandTrim(rs.getString("LR_NO"));
invoice.shippingBillDt = rs.getDate("LR_DATE");
invoice.items = invLineItems;
......@@ -795,7 +828,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
if("12".equalsIgnoreCase(tranType))
{
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO";
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
......@@ -804,8 +840,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = rs.getDouble("AMOUNT");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
......@@ -839,7 +875,10 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItems = new ArrayList<InvLineItem>();
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO";
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
......@@ -848,8 +887,8 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{
invLineItem = new InvLineItem();
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = rs.getDouble("AMOUNT");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
invLineItem.samt = lineRs.getDouble("SGST_AMT");
......@@ -877,19 +916,47 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
atPaidList.add(at);
}
//tran_type : 14 = CDNUR
//tran_type : 16 = CDNUR
if("16".equalsIgnoreCase(tranType))
{
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO";
String reason = "";
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 07, 01);
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;
}
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 "
+ " 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)";
linePstmt = conn.prepareStatement(lineSql);
linePstmt.setString(1, tranId);
lineRs = linePstmt.executeQuery();
int lineNum = 0;
while(lineRs.next())
{
invLineItem = new InvLineItem();
invLineItem.num = lineRs.getInt("LINE_NO");
invLineItem.rate = lineRs.getDouble("IGST_PERC")+lineRs.getDouble("CGST_PERC")+lineRs.getDouble("SGST_PERC");
invLineItem.num = ++lineNum;
invLineItem.rate = lineRs.getDouble("RATE");
invLineItem.taxval = lineRs.getDouble("TAXABLE_AMT");
invLineItem.iamt = lineRs.getDouble("IGST_AMT");
invLineItem.camt = lineRs.getDouble("CGST_AMT");
......@@ -918,6 +985,11 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
cdnur.invoiceNumber = checkNullandTrim(rs.getString("REF_ID__INV"));
cdnur.invoiceDate = rs.getDate("REF_DATE__INV");
cdnur.val = rs.getDouble("AMOUNT");
cdnur.reason = reason;
if(rs.getDate("REF_DATE__INV").before(gstStartDate))
{
cdnur.isPreGSTInvoice = true;
}
cdnur.items = invLineItems;
cdnurList.add(cdnur);
......@@ -936,137 +1008,142 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
rs = null;
}
//HSN summary data will be sent every time
sql = " SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SUM(GDD.IGST_AMT) AS TOT_IAMT, SUM(CGST_AMT) AS TOT_CAMT, SUM(SGST_AMT) AS TOT_SAMT, SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL "
+ " AND GDH.PRD_CODE = ?"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
rs = pstmt.executeQuery();
while (rs.next())
if(isDataFound)
{
hsnDetails = new HSNDetails();
//HSN summary data will be sent every time
sql = " SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SUM(GDD.IGST_AMT) AS TOT_IAMT, SUM(CGST_AMT) AS TOT_CAMT, SUM(SGST_AMT) AS TOT_SAMT, SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL "
+ " AND GDH.PRD_CODE = ?"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, periodCode);
rs = pstmt.executeQuery();
hsnDetails.num = ++num;
hsnDetails.itemOrServiceCode = checkNullandTrim(rs.getString("GS_CODE"));
hsnDetails.description = checkNullandTrim(rs.getString("GS_DESCR"));
hsnDetails.unitOfMeasure = checkNullandTrim(rs.getString("UNIT"));
hsnDetails.quantity = rs.getDouble("TOT_QTY");
hsnDetails.totalAmount = rs.getDouble("TOT_TAXVAL"); // TODO need to change
hsnDetails.totalTaxableAmount = rs.getDouble("TOT_TAXVAL");
hsnDetails.totalIGSTAmount = rs.getDouble("TOT_IAMT");
hsnDetails.totalCGSTAmount = rs.getDouble("TOT_CAMT");
hsnDetails.totalSGSTAmount = rs.getDouble("TOT_SAMT");
hsnDetails.totalCESSAmount = rs.getDouble("TOT_CSAMT");
while (rs.next())
{
hsnDetails = new HSNDetails();
hsnDetails.num = ++num;
hsnDetails.itemOrServiceCode = checkNullandTrim(rs.getString("GS_CODE"));
hsnDetails.description = checkNullandTrim(rs.getString("GS_DESCR"));
hsnDetails.unitOfMeasure = checkNullandTrim(rs.getString("UNIT"));
hsnDetails.quantity = rs.getDouble("TOT_QTY");
hsnDetails.totalAmount = rs.getDouble("TOT_TAXVAL"); // TODO need to change
hsnDetails.totalTaxableAmount = rs.getDouble("TOT_TAXVAL");
hsnDetails.totalIGSTAmount = rs.getDouble("TOT_IAMT");
hsnDetails.totalCGSTAmount = rs.getDouble("TOT_CAMT");
hsnDetails.totalSGSTAmount = rs.getDouble("TOT_SAMT");
hsnDetails.totalCESSAmount = rs.getDouble("TOT_CSAMT");
hsnList.add(hsnDetails);
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
hsnList.add(hsnDetails);
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(hsnList.size() > 0)
{
hsn = new HSN();
hsn.hsnDetails = hsnList;
}
//TODO need to change START
docDetails = new DocDetails();
docDetails.docNum = 1;
docDetails.fromSerialNo = "1";
docDetails.toSerialNo = "20";
docDetails.totalNo = 20;
docDetails.cancelNo = 3;
docDetails.toatlNetIssued = 17;
docDetailsList.add(docDetails);
docIssued = new DocIssued();
docIssued.serialNumber = 1;
docIssued.docDescr = "Invoices for outward supply";
docIssued.docDetails = docDetailsList;
docIssuedList.add(docIssued);
//TODO need to change END
if(b2bInvoiceList.size() > 0)
{
gstr1.b2b = b2bInvoiceList;
}
if(b2clInvoiceList.size() > 0)
{
gstr1.b2cl = b2clInvoiceList;
}
if(b2claInvoiceList.size() > 0)
{
gstr1.b2cla = b2claInvoiceList;
}
if(b2csInvoiceList.size() > 0)
{
gstr1.b2cs = b2csInvoiceList;
}
if(b2csaInvoiceList.size() > 0)
{
gstr1.b2csa = b2csaInvoiceList;
}
if(cdnrList.size() > 0)
{
gstr1.cdnr = cdnrList;
}
if(cdnraList.size() > 0)
{
gstr1.cdnra = cdnraList;
}
if(atList.size() > 0)
{
gstr1.at = atList;
}
if(ataList.size() > 0)
{
gstr1.ata = ataList;
}
if(expInvoiceList.size() > 0)
{
gstr1.exp = expInvoiceList;
}
if(atPaidList.size() > 0)
{
gstr1.txpd = atPaidList;
}
if(cdnurList.size() > 0)
{
gstr1.cdnur = cdnurList;
}
if(nil != null)
{
gstr1.nil = nil;
}
if(hsn != null)
{
gstr1.hsn = hsn;
}
if(docIssuedList.size() > 0)
{
gstr1.docIssued = docIssuedList;
}
if(isDataFound)
{
if(hsnList.size() > 0)
{
hsn = new HSN();
hsn.hsnDetails = hsnList;
}
//TODO need to change START
docDetails = new DocDetails();
docDetails.docNum = 1;
docDetails.fromSerialNo = "1";
docDetails.toSerialNo = "20";
docDetails.totalNo = 20;
docDetails.cancelNo = 3;
docDetails.toatlNetIssued = 17;
docDetailsList.add(docDetails);
docIssued = new DocIssued();
docIssued.serialNumber = 1;
docIssued.docDescr = "Invoices for outward supply";
docIssued.docDetails = docDetailsList;
docIssuedList.add(docIssued);
//TODO need to change END
gstr1 = new GSTR1();
gstr1.gstin = gstin;
gstr1.financialPeriod = periodCode;
gstr1.grossTurnOver = Double.valueOf(grossTurnover);
gstr1.currentGrossTurnOver = 20000;//TODO need to calculate
if(b2bInvoiceList.size() > 0)
{
gstr1.b2b = b2bInvoiceList;
}
if(b2clInvoiceList.size() > 0)
{
gstr1.b2cl = b2clInvoiceList;
}
if(b2claInvoiceList.size() > 0)
{
gstr1.b2cla = b2claInvoiceList;
}
if(b2csInvoiceList.size() > 0)
{
gstr1.b2cs = b2csInvoiceList;
}
if(b2csaInvoiceList.size() > 0)
{
gstr1.b2csa = b2csaInvoiceList;
}
if(cdnrList.size() > 0)
{
gstr1.cdnr = cdnrList;
}
if(cdnraList.size() > 0)
{
gstr1.cdnra = cdnraList;
}
if(atList.size() > 0)
{
gstr1.at = atList;
}
if(ataList.size() > 0)
{
gstr1.ata = ataList;
}
if(expInvoiceList.size() > 0)
{
gstr1.exp = expInvoiceList;
}
if(atPaidList.size() > 0)
{
gstr1.txpd = atPaidList;
}
if(cdnurList.size() > 0)
{
gstr1.cdnur = cdnurList;
}
if(nil != null)
{
gstr1.nil = nil;
}
if(hsn != null)
{
gstr1.hsn = hsn;
}
if(docIssuedList.size() > 0)
{
gstr1.docIssued = docIssuedList;
}
String gspAuthString = "", gspAuthSignature = "", gspAuthStringRet = "", gspAuthSignatureRet = "";
ObjectMapper objectMapper = new ObjectMapper();
......@@ -1319,7 +1396,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
fileGstr1DataJsonObj.put("sid", "AMAPT8269L");
long timeStampFile = new Timestamp().getDateTime();
gspAuthStringFile = clientId + ":" + transactionId + ":" + timeStamp + ":" + gstin;
gspAuthStringFile = clientId + ":" + transactionId + ":" + timeStampFile + ":" + gstin;
gspAuthSignatureFile = gspSignature.sign(gspAuthStringFile, aspPrivateKey);
HttpResponse<JsonNode> fileGstr1Resp = Unirest.post(String.format("%s/%s", GSP_API_URL, GSTR1_URL_V3))
......
......@@ -42,6 +42,10 @@ abstract class BaseSerializer<T extends BaseData> extends JsonSerializer<T>
}
else
{
if(inv.shippingPortCode != null)
{
json.writeStringField("sbpcode",inv.shippingPortCode);
}
if(inv.shippingBillNum != null)
{
json.writeStringField("sbnum", inv.shippingBillNum);
......
......@@ -47,6 +47,8 @@ public class CDNRSerializer extends JsonSerializer<CDNR>
json.writeStringField("inum", cdnDetails.invoiceNumber);
json.writeStringField("idt", gstFmt.format(cdnDetails.invoiceDate));
json.writeNumberField("val", cdnDetails.val);
json.writeStringField("rsn", cdnDetails.reason);
json.writeStringField("p_gst", cdnDetails.isPreGSTInvoice ? "Y" : "N");
writeCDNLineItems(cdnDetails, json);
......
......@@ -27,6 +27,8 @@ public class CDNURSerializer extends JsonSerializer<CDNUR>
json.writeStringField("inum", cdnur.invoiceNumber);
json.writeStringField("idt", gstFmt.format(cdnur.invoiceDate));
json.writeNumberField("val", cdnur.val);
json.writeStringField("rsn", cdnur.reason);
json.writeStringField("p_gst", cdnur.isPreGSTInvoice ? "Y" : "N");
writeLineItems(cdnur.items, json);
......
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