Commit 52049aa8 authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106019 ce508802-f39f-4f6c-b175-0d175dae99d5
parent ff83cf69
...@@ -4,9 +4,9 @@ import java.util.List; ...@@ -4,9 +4,9 @@ import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.ATSearializer; import ibase.webitm.util.gst.ATSerializer;
@JsonSerialize(using = ATSearializer.class) @JsonSerialize(using = ATSerializer.class)
public class AT extends BaseData public class AT extends BaseData
{ {
public String pos; public String pos;
......
...@@ -4,9 +4,9 @@ import java.util.Date; ...@@ -4,9 +4,9 @@ import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.ATASearializer; import ibase.webitm.util.gst.ATASerializer;
@JsonSerialize(using = ATASearializer.class) @JsonSerialize(using = ATASerializer.class)
public class ATA extends AT public class ATA extends AT
{ {
public String orgCpty; public String orgCpty;
......
...@@ -6,5 +6,7 @@ public abstract class BaseData ...@@ -6,5 +6,7 @@ public abstract class BaseData
{ {
public boolean isReverseCharge; public boolean isReverseCharge;
public String taxPayerAction;
public List<Invoice> invoices; public List<Invoice> invoices;
} }
...@@ -62,4 +62,10 @@ public class GSTR1 { ...@@ -62,4 +62,10 @@ public class GSTR1 {
@JsonProperty("cdnur") @JsonProperty("cdnur")
public List<CDNUR> cdnur; public List<CDNUR> cdnur;
@JsonProperty("nil")
public Nil nil;
@JsonProperty("hsn")
public HSN hsn;
} }
package ibase.webitm.bean.gst;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.HSNSerializer;
@JsonSerialize(using = HSNSerializer.class)
public class HSN extends BaseData
{
public List<HSNDetails> hsnDetails;
}
package ibase.webitm.bean.gst;
public class HSNDetails
{
public int num;
public String itemOrServiceCode;
public String description;
public String unitOfMeasure;
public double quantity;
public double totalAmount;
public double totalTaxableAmount;
public double totalIGSTAmount;
public double totalCGSTAmount;
public double totalSGSTAmount;
public double totalCESSAmount;
}
...@@ -6,7 +6,7 @@ import java.util.List; ...@@ -6,7 +6,7 @@ import java.util.List;
public class Invoice public class Invoice
{ {
public String flag; public String taxPayerAction;
public String checksum; public String checksum;
...@@ -27,6 +27,14 @@ public class Invoice ...@@ -27,6 +27,14 @@ public class Invoice
public String shippingBillNum; public String shippingBillNum;
public Date shippingBillDt; public Date shippingBillDt;
public String supplyType;
public double totalNilAmount;
public double totalExemptedAmount;
public double totalNonGSTAmout;
public List<InvLineItem> items; public List<InvLineItem> items;
} }
package ibase.webitm.bean.gst;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.NilSerializer;
@JsonSerialize(using = NilSerializer.class)
public class Nil extends BaseData
{
public String taxPayerAction;
public List<Invoice> invoices;
}
...@@ -48,8 +48,11 @@ import ibase.webitm.bean.gst.CDNRA; ...@@ -48,8 +48,11 @@ import ibase.webitm.bean.gst.CDNRA;
import ibase.webitm.bean.gst.CDNUR; import ibase.webitm.bean.gst.CDNUR;
import ibase.webitm.bean.gst.EXP; import ibase.webitm.bean.gst.EXP;
import ibase.webitm.bean.gst.GSTR1; import ibase.webitm.bean.gst.GSTR1;
import ibase.webitm.bean.gst.HSN;
import ibase.webitm.bean.gst.HSNDetails;
import ibase.webitm.bean.gst.InvLineItem; import ibase.webitm.bean.gst.InvLineItem;
import ibase.webitm.bean.gst.Invoice; import ibase.webitm.bean.gst.Invoice;
import ibase.webitm.bean.gst.Nil;
import ibase.webitm.ejb.ITMDBAccessEJB; import ibase.webitm.ejb.ITMDBAccessEJB;
import ibase.webitm.ejb.ValidatorEJB; import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.ejb.fin.FinCommon; import ibase.webitm.ejb.fin.FinCommon;
...@@ -348,6 +351,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -348,6 +351,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
String gstr1Data = "", gstr1Rek = ""; String gstr1Data = "", gstr1Rek = "";
String retStatsData = "", retStatsRek = ""; String retStatsData = "", retStatsRek = "";
String transactionId = UUID.randomUUID().toString().replaceAll("-", ""); String transactionId = UUID.randomUUID().toString().replaceAll("-", "");
int num = 0;
boolean isDataFound = false;
String sql = "", lineSql = "", refDataSql = ""; String sql = "", lineSql = "", refDataSql = "";
PreparedStatement pstmt = null, linePstmt = null, refDataPstmt = null; PreparedStatement pstmt = null, linePstmt = null, refDataPstmt = null;
...@@ -371,6 +377,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -371,6 +377,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
ArrayList<EXP> expInvoiceList = new ArrayList<EXP>(); ArrayList<EXP> expInvoiceList = new ArrayList<EXP>();
ArrayList<AT> atPaidList = new ArrayList<AT>(); ArrayList<AT> atPaidList = new ArrayList<AT>();
ArrayList<CDNUR> cdnurList = new ArrayList<CDNUR>(); ArrayList<CDNUR> cdnurList = new ArrayList<CDNUR>();
ArrayList<HSNDetails> hsnList = new ArrayList<HSNDetails>();
ArrayList<InvLineItem> invLineItems = null; ArrayList<InvLineItem> invLineItems = null;
ArrayList<Invoice> invoices = null; ArrayList<Invoice> invoices = null;
...@@ -387,6 +394,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -387,6 +394,9 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
AT at = null; AT at = null;
EXP exp = null; EXP exp = null;
CDNUR cdnur = null; CDNUR cdnur = null;
Nil nil = null;
HSN hsn = null;
HSNDetails hsnDetails = null;
try try
{ {
...@@ -403,6 +413,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -403,6 +413,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
while(rs.next()) while(rs.next())
{ {
isDataFound = true;
tranId = checkNullandTrim(rs.getString("TRAN_ID")); tranId = checkNullandTrim(rs.getString("TRAN_ID"));
tranType = checkNullandTrim(rs.getString("TRAN_TYPE")); tranType = checkNullandTrim(rs.getString("TRAN_TYPE"));
ctin = checkNullandTrim(rs.getString("TAX_REG_NO")); ctin = checkNullandTrim(rs.getString("TAX_REG_NO"));
...@@ -658,8 +669,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -658,8 +669,6 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
lineRs = null; lineRs = null;
} }
cdnDetails = new CDNDetails(); cdnDetails = new CDNDetails();
cdnDetails.cdnNoteType = checkNullandTrim(rs.getString("DOC_TYPE")); cdnDetails.cdnNoteType = checkNullandTrim(rs.getString("DOC_TYPE"));
...@@ -682,10 +691,19 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -682,10 +691,19 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
} }
} }
//tran_type : 09 = Nil Supplies //tran_type : 09 = Nil Supplies
/*if("09".equalsIgnoreCase(tranType)) if("09".equalsIgnoreCase(tranType))
{ {
}*/ invoice.supplyType = "INTRB2B"; //TODO need to change
invoice.totalNilAmount = 1470.85; //TODO need to change
invoice.totalExemptedAmount = 123.45; //TODO need to change
invoice.totalNonGSTAmout = 1258.5; //TODO need to change
invoices.add(invoice);
nil = new Nil();
nil.invoices = invoices;
}
//tran_type : 10 = Exports and tran_type : 11 = Exports amendments //tran_type : 10 = Exports and tran_type : 11 = Exports amendments
if("10".equalsIgnoreCase(tranType) || "11".equalsIgnoreCase(tranType)) if("10".equalsIgnoreCase(tranType) || "11".equalsIgnoreCase(tranType))
{ {
...@@ -830,7 +848,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -830,7 +848,7 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
atPaidList.add(at); atPaidList.add(at);
} }
//tran_type : 14 = CDNURA //tran_type : 14 = CDNUR
if("16".equalsIgnoreCase(tranType)) if("16".equalsIgnoreCase(tranType))
{ {
lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO"; lineSql = "SELECT * FROM GST_DATA_DET WHERE TRAN_ID = ? ORDER BY LINE_NO";
...@@ -889,6 +907,52 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -889,6 +907,52 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
rs = null; 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())
{
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;
}
if(hsnList.size() > 0)
{
hsn = new HSN();
hsn.hsnDetails = hsnList;
}
if(b2bInvoiceList.size() > 0) if(b2bInvoiceList.size() > 0)
{ {
gstr1.b2b = b2bInvoiceList; gstr1.b2b = b2bInvoiceList;
...@@ -937,119 +1001,138 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -937,119 +1001,138 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
{ {
gstr1.cdnur = cdnurList; gstr1.cdnur = cdnurList;
} }
ObjectMapper objectMapper = new ObjectMapper(); if(nil != null)
{
String json = objectMapper.writeValueAsString(gstr1); gstr1.nil = nil;
}
System.out.println("jsonPayload to SAVE GSTR1["+json+"]"); if(hsn != null)
{
byte[] jsonBase64 = Base64.getEncoder().encode(json.getBytes()); gstr1.hsn = hsn;
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);
JSONObject gstr1HeaderObj = new JSONObject();
gstr1HeaderObj.put("action", "RETSAVE");
gstr1HeaderObj.put("data", encryptedPayload);
gstr1HeaderObj.put("hmac", new String(Base64.getEncoder().encode(resBuf)));
HttpResponse<JsonNode> gstr1Resp = Unirest.put(String.format("%s/%s", GST_API_URL, GSTR1_URL_V3))
.header("Content-Type", APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("txn",transactionId)
.header("state-cd", stateCode)
.header("auth-token", authToken)
.header("gstin", gstin)
.header("username", userName)
.header("ret_period", periodCode)
.header("ip-usr", ipAddress.getHostAddress())
.header("app_key", appKeyEncryptedAndCoded)
.body(new JsonNode(gstr1HeaderObj.toString()))
.asJson();
System.out.println(String.format("gstr1Resp Request : Status[%s] Response[%s]", gstr1Resp.getStatus(), gstr1Resp.getBody()));
if (gstr1Resp.getStatus() == 200) if(isDataFound)
{ {
JSONObject gstr1RespObj = gstr1Resp.getBody().getObject(); ObjectMapper objectMapper = new ObjectMapper();
if(gstr1RespObj.has("data") && gstr1RespObj.has("rek")) String json = objectMapper.writeValueAsString(gstr1);
{
gstr1Data = gstr1RespObj.getString("data"); System.out.println("jsonPayload to SAVE GSTR1["+json+"]");
gstr1Rek = gstr1RespObj.getString("rek");
byte[] jsonBase64 = Base64.getEncoder().encode(json.getBytes());
byte[] apiEKGstr1 = aesEncryption.decrypt(gstr1Rek, authSek); String encryptedPayload = aesEncryption.encryptEK(jsonBase64, authSek);
String Gstr1RespJsoninBase64 = new String(aesEncryption.decrypt(gstr1Data, apiEKGstr1));
HMac hmac = new HMac(new SHA256Digest());
byte[] Gstr1RespJsonInBytes = aesEncryption.decodeBase64StringTOByte(Gstr1RespJsoninBase64); byte[] resBuf = new byte[hmac.getMacSize()];
JSONObject Gstr1RespObj = new JSONObject(new String(Gstr1RespJsonInBytes)); hmac.init(new KeyParameter(authSek));
String transId = Gstr1RespObj.getString("reference_id"); hmac.update(jsonBase64, 0, jsonBase64.length);
hmac.doFinal(resBuf, 0);
System.out.println("transId to getStatus["+transId+"]");
JSONObject gstr1HeaderObj = new JSONObject();
gstr1HeaderObj.put("action", "RETSAVE");
gstr1HeaderObj.put("data", encryptedPayload);
gstr1HeaderObj.put("hmac", new String(Base64.getEncoder().encode(resBuf)));
HttpResponse<JsonNode> gstr1Resp = Unirest.put(String.format("%s/%s", GST_API_URL, GSTR1_URL_V3))
.header("Content-Type", APPLICATION_JSON)
.header("clientid", clientId)
.header("client-secret", clientSecret)
.header("txn",transactionId)
.header("state-cd", stateCode)
.header("auth-token", authToken)
.header("gstin", gstin)
.header("username", userName)
.header("ret_period", periodCode)
.header("ip-usr", ipAddress.getHostAddress())
.header("app_key", appKeyEncryptedAndCoded)
.body(new JsonNode(gstr1HeaderObj.toString()))
.asJson();
System.out.println(String.format("gstr1Resp Request : Status[%s] Response[%s]", gstr1Resp.getStatus(), gstr1Resp.getBody()));
if (gstr1Resp.getStatus() == 200)
{
JSONObject gstr1RespObj = gstr1Resp.getBody().getObject();
while(true) if(gstr1RespObj.has("data") && gstr1RespObj.has("rek"))
{ {
HttpResponse<JsonNode> retStatusResp = Unirest.get(String.format("%s/%s", GST_API_URL, GSTR1_URL_V3)) gstr1Data = gstr1RespObj.getString("data");
.queryString("action","RETSTATUS") gstr1Rek = gstr1RespObj.getString("rek");
.queryString("gstin", gstin)
.queryString("ret_period", periodCode) byte[] apiEKGstr1 = aesEncryption.decrypt(gstr1Rek, authSek);
.queryString("trans_id",transId) String Gstr1RespJsoninBase64 = new String(aesEncryption.decrypt(gstr1Data, apiEKGstr1));
.header("Content-Type", APPLICATION_JSON)
.header("state-cd", stateCode) byte[] Gstr1RespJsonInBytes = aesEncryption.decodeBase64StringTOByte(Gstr1RespJsoninBase64);
.header("clientid", clientId)
.header("client-secret", clientSecret) JSONObject Gstr1RespObj = new JSONObject(new String(Gstr1RespJsonInBytes));
.header("ip-usr", ipAddress.getHostAddress()) String transId = Gstr1RespObj.getString("reference_id");
.header("username", userName)
.header("auth-token", authToken) System.out.println("transId to getStatus["+transId+"]");
.header("app_key", appKeyEncryptedAndCoded)
.header("txn", transactionId) while(true)
.header("ret_period", periodCode) {
.header("gstin", gstin) HttpResponse<JsonNode> retStatusResp = Unirest.get(String.format("%s/%s", GST_API_URL, GSTR1_URL_V3))
.asJson(); .queryString("action","RETSTATUS")
.queryString("gstin", gstin)
.queryString("ret_period", periodCode)
.queryString("trans_id",transId)
.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)
.asJson();
System.out.println(String.format("retStatusResp Request : Status[%s] Response[%s]", retStatusResp.getStatus(), retStatusResp.getBody())); System.out.println(String.format("retStatusResp Request : Status[%s] Response[%s]", retStatusResp.getStatus(), retStatusResp.getBody()));
if (retStatusResp.getStatus() == 200) if (retStatusResp.getStatus() == 200)
{
JSONObject retStatsRespObj = retStatusResp.getBody().getObject();
if(retStatsRespObj.has("data") && retStatsRespObj.has("rek"))
{ {
retStatsData = retStatsRespObj.getString("data"); JSONObject retStatsRespObj = retStatusResp.getBody().getObject();
retStatsRek = retStatsRespObj.getString("rek"); if(retStatsRespObj.has("data") && retStatsRespObj.has("rek"))
{
retStatsData = retStatsRespObj.getString("data");
retStatsRek = retStatsRespObj.getString("rek");
byte[] apiEKRetstats = aesEncryption.decrypt(retStatsRek, authSek); byte[] apiEKRetstats = aesEncryption.decrypt(retStatsRek, authSek);
String retStatsRespJsoninBase64 = new String(aesEncryption.decrypt(retStatsData, apiEKRetstats)); String retStatsRespJsoninBase64 = new String(aesEncryption.decrypt(retStatsData, apiEKRetstats));
byte[] retStatsRespJsonInBytes = aesEncryption.decodeBase64StringTOByte(retStatsRespJsoninBase64); byte[] retStatsRespJsonInBytes = aesEncryption.decodeBase64StringTOByte(retStatsRespJsoninBase64);
JSONObject retStatsJsonData = new JSONObject(new String(retStatsRespJsonInBytes)); JSONObject retStatsJsonData = new JSONObject(new String(retStatsRespJsonInBytes));
System.out.println( "retStatsJsonData["+retStatsJsonData+"]"); System.out.println( "retStatsJsonData["+retStatsJsonData+"]");
if("IP".equalsIgnoreCase((String)retStatsJsonData.get("status_cd"))) if("IP".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{ {
continue; continue;
} }
else if("P".equalsIgnoreCase((String)retStatsJsonData.get("status_cd"))) else if("P".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{ {
break; break;
} }
else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd"))) else if("PE".equalsIgnoreCase((String)retStatsJsonData.get("status_cd")))
{ {
errMsg = getRetStatusErrMsg(retStatsJsonData); errMsg = getRetStatusErrMsg(retStatsJsonData);
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; break;
}
else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd")))
{
errMsg = "Message : "+retStatsJsonData.getString("error_msg")+" \nError code : "+retStatsJsonData.getString("errorCd");
retString = getError(errMsg, "GSTAPIERR", conn);
break;
}
} }
else if("ER".equalsIgnoreCase(retStatsJsonData.getString("status_cd"))) else
{ {
errMsg = "Message : "+retStatsJsonData.getString("error_msg")+" \nError code : "+retStatsJsonData.getString("errorCd"); JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; break;
} }
...@@ -1057,34 +1140,30 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1057,34 +1140,30 @@ public class GSTDataSubmitWizPos extends ValidatorEJB implements GSTDataSubmitWi
else else
{ {
JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error"); JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd"); errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code");
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
break; break;
} }
} }
else
{
JSONObject errorJSON = retStatusResp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code");
retString = getError(errMsg, "GSTAPIERR", conn);
break;
}
} }
} else
{
JSONObject errorJSON = gstr1Resp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd");
retString = getError(errMsg, "GSTAPIERR", conn);
}
}
else else
{ {
JSONObject errorJSON = gstr1Resp.getBody().getObject().getJSONObject("error"); JSONObject errorJSON = gstr1Resp.getBody().getObject().getJSONObject("error");
errMsg = "Message : "+errorJSON.getString("message")+" \nError code : "+errorJSON.getString("error_cd"); errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code");
retString = getError(errMsg, "GSTAPIERR", conn); retString = getError(errMsg, "GSTAPIERR", conn);
} }
} }
else else
{ {
JSONObject errorJSON = gstr1Resp.getBody().getObject().getJSONObject("error"); retString = new ITMDBAccessEJB().getErrorString("","VTNOGSDATA","","",conn);
errMsg = "Message : "+errorJSON.getString("desc")+" \nError code : "+errorJSON.getString("code"); }
retString = getError(errMsg, "GSTAPIERR", conn);
}
} }
catch (Exception e) catch (Exception e)
{ {
......
package ibase.webitm.util.gst;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.ATA;
import ibase.webitm.bean.gst.InvLineItem;
public class ATASerializer extends BaseSerializer<ATA>
{
@Override
public void serialize(ATA ata, JsonGenerator json, SerializerProvider serializeProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("sply_ty", ata.supplyType);
if(ata.orgCpty != null && ata.orgDocNum != null && ata.orgDocDt != null)
{
json.writeStringField("ocpty", ata.orgCpty);
json.writeStringField("odoc_num", ata.orgDocNum);
json.writeStringField("odoc_dt", gstFmt.format(ata.orgDocDt));
}
writeLineItems(ata, json);
json.writeEndObject();
}
private void writeLineItems(ATA ata, JsonGenerator json) throws IOException
{
json.writeFieldName("itms");
json.writeStartArray();
for(InvLineItem li : ata.itms)
{
writeLineItem(json, li);
}
json.writeEndArray();
}
private void writeLineItem(JsonGenerator json, InvLineItem li)
{
try
{
json.writeStartObject();
//json.writeStringField("ty", li.ty);
//json.writeStringField("hsn_sc", li.hsn_sc);
json.writeNumberField("ad_amt", li.taxval);
//json.writeNumberField("irt", li.irt);
json.writeNumberField("iamt", li.iamt);
//json.writeNumberField("crt", li.crt);
json.writeNumberField("camt", li.camt);
//json.writeNumberField("srt", li.srt);
json.writeNumberField("samt", li.samt);
//json.writeNumberField("csrt", li.csrt);
json.writeNumberField("csamt", li.csamt);
json.writeEndObject();
}
catch (Exception e)
{
System.out.println("ATSearializer.writeLineItem()["+e.getMessage()+"]");
e.printStackTrace();
}
}
}
package ibase.webitm.util.gst;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.AT;
import ibase.webitm.bean.gst.InvLineItem;
public class ATSerializer extends BaseSerializer<AT>
{
@Override
public void serialize(AT at, JsonGenerator json, SerializerProvider serializeProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("pos", at.pos);
json.writeStringField("sply_ty", at.supplyType);
writeLineItems(at, json);
json.writeEndObject();
}
private void writeLineItems(AT at, JsonGenerator json) throws IOException
{
json.writeFieldName("itms");
json.writeStartArray();
for(InvLineItem li : at.itms)
{
writeLineItem(json, li);
}
json.writeEndArray();
}
private void writeLineItem(JsonGenerator json, InvLineItem li)
{
try
{
json.writeStartObject();
json.writeNumberField("rt", li.rate);
json.writeNumberField("ad_amt", li.taxval);
if(li.iamt > 0)
{
json.writeNumberField("iamt", li.iamt);
}
if(li.camt > 0)
{
json.writeNumberField("camt", li.camt);
}
if(li.samt > 0)
{
json.writeNumberField("samt", li.samt);
}
if(li.csamt > 0)
{
json.writeNumberField("csamt", li.csamt);
}
json.writeEndObject();
}
catch (Exception e)
{
System.out.println("ATSearializer.writeLineItem()["+e.getMessage()+"]");
e.printStackTrace();
}
}
}
...@@ -33,9 +33,9 @@ abstract class BaseSerializer<T extends BaseData> extends JsonSerializer<T> ...@@ -33,9 +33,9 @@ abstract class BaseSerializer<T extends BaseData> extends JsonSerializer<T>
{ {
json.writeStartObject(); json.writeStartObject();
if( (inv.flag != null) && ("A".equalsIgnoreCase(inv.flag) || "M".equalsIgnoreCase(inv.flag) || "D".equalsIgnoreCase(inv.flag)) ) if( (inv.taxPayerAction != null) && ("A".equalsIgnoreCase(inv.taxPayerAction) || "M".equalsIgnoreCase(inv.taxPayerAction) || "D".equalsIgnoreCase(inv.taxPayerAction)) )
{ {
json.writeStringField("flag", inv.flag); json.writeStringField("flag", inv.taxPayerAction);
json.writeStringField("inum", inv.inum); json.writeStringField("inum", inv.inum);
json.writeStringField("idt", gstFmt.format(inv.idt)); json.writeStringField("idt", gstFmt.format(inv.idt));
json.writeStringField("chksum", inv.checksum); json.writeStringField("chksum", inv.checksum);
......
...@@ -74,6 +74,14 @@ public class GSTR1Serailizer extends JsonSerializer<GSTR1> { ...@@ -74,6 +74,14 @@ public class GSTR1Serailizer extends JsonSerializer<GSTR1> {
{ {
jsonGenerator.writeObjectField("cdnur", gstr1.cdnur); jsonGenerator.writeObjectField("cdnur", gstr1.cdnur);
} }
if(gstr1.nil != null)
{
jsonGenerator.writeObjectField("nil", gstr1.nil);
}
if(gstr1.hsn != null)
{
jsonGenerator.writeObjectField("hsn", gstr1.hsn);
}
jsonGenerator.writeEndObject(); jsonGenerator.writeEndObject();
} }
} }
package ibase.webitm.util.gst;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.HSN;
import ibase.webitm.bean.gst.HSNDetails;
public class HSNSerializer extends BaseSerializer<HSN>
{
@Override
public void serialize(HSN hsn, JsonGenerator json, SerializerProvider serializeProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeFieldName("data");
json.writeStartArray();
for(HSNDetails hsnDetails : hsn.hsnDetails)
{
writeEachHSN(hsnDetails, json);
}
json.writeEndArray();
json.writeEndObject();
}
private void writeEachHSN(HSNDetails hsnDetails, JsonGenerator json)
{
try
{
json.writeStartObject();
json.writeNumberField("num", hsnDetails.num);
json.writeStringField("hsn_sc", hsnDetails.itemOrServiceCode);
json.writeStringField("desc", hsnDetails.description);
json.writeStringField("uqc", hsnDetails.unitOfMeasure);
json.writeNumberField("qty", hsnDetails.quantity);
json.writeNumberField("val", hsnDetails.totalAmount);
json.writeNumberField("txval", hsnDetails.totalTaxableAmount);
if(hsnDetails.totalIGSTAmount > 0)
{
json.writeNumberField("iamt", hsnDetails.totalIGSTAmount);
}
if(hsnDetails.totalCGSTAmount > 0)
{
json.writeNumberField("camt", hsnDetails.totalCGSTAmount);
}
if(hsnDetails.totalSGSTAmount > 0)
{
json.writeNumberField("samt", hsnDetails.totalSGSTAmount);
}
if(hsnDetails.totalCESSAmount > 0)
{
json.writeNumberField("csamt", hsnDetails.totalCESSAmount);
}
json.writeEndObject();
}
catch(Exception e)
{
System.out.println("HSNSerializer.writeEachHSN()["+e.getMessage()+"]");
e.printStackTrace();
}
}
}
package ibase.webitm.util.gst;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.Invoice;
import ibase.webitm.bean.gst.Nil;
public class NilSerializer extends BaseSerializer<Nil>
{
@Override
public void serialize(Nil nil, JsonGenerator json, SerializerProvider serializerProvider)throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeFieldName("inv");
json.writeStartArray();
for(Invoice inv : nil.invoices)
{
writeInvoice(inv, json);
}
json.writeEndArray();
json.writeEndObject();
}
private void writeInvoice(Invoice inv, JsonGenerator json)
{
try
{
json.writeStartObject();
json.writeStringField("sply_ty", inv.supplyType);
json.writeNumberField("nil_amt", inv.totalNilAmount);
json.writeNumberField("expt_amt", inv.totalExemptedAmount);
json.writeNumberField("ngsup_amt", inv.totalNonGSTAmout);
json.writeEndObject();
}
catch(Exception e)
{
System.out.println("NilSerializer.writeInvoice()["+e.getMessage()+"]");
e.printStackTrace();
}
}
}
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