Commit cdc85874 authored by steurwadkar's avatar steurwadkar

F17ABAS001 source code commit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@105869 ce508802-f39f-4f6c-b175-0d175dae99d5
parent a84c44f6
package ibase.webitm.bean.gst;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.ATSearializer;
@JsonSerialize(using = ATSearializer.class)
public class AT extends BaseData
{
public String typ;
public String cpty;
public String stateCode;
public String docNum;
public Date docDt;
public List<InvLineItem> itms;
}
package ibase.webitm.bean.gst;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.B2BSerializer;
@JsonSerialize(using = B2BSerializer.class)
public class B2B extends BaseData
{
public String ctin;
}
package ibase.webitm.bean.gst;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.B2BASerializer;
@JsonSerialize(using = B2BASerializer.class)
public class B2BA extends BaseData
{
public String ctin;
}
package ibase.webitm.bean.gst;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.B2CLSerializer;
@JsonSerialize(using = B2CLSerializer.class)
public class B2CL extends BaseData
{
public String stateCode;
}
package ibase.webitm.bean.gst;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.B2CLASerializer;
@JsonSerialize(using = B2CLASerializer.class)
public class B2CLA extends BaseData
{
public String stateCode;
}
package ibase.webitm.bean.gst;
import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.B2CSSerializer;
@JsonSerialize(using = B2CSSerializer.class)
public class B2CS extends BaseData
{
public String stateCode;
public String ty;
public String itemOrServiceCode;
public double txval;
public double irt;
public double iamt;
public double crt;
public double camt;
public double srt;
public double samt;
public double csrt;
public double csamt;
public boolean prs;
public String od_num;
public Date od_dt;
public String etin;
public String typ;
}
package ibase.webitm.bean.gst;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.B2CSASerializer;
@JsonSerialize(using = B2CSASerializer.class)
public class B2CSA extends B2CS
{
public String orgPeriodCode;
public String orgType;
public String orgItemOrServiceCode;
public String orgStateCode;
}
package ibase.webitm.bean.gst;
import java.util.List;
public abstract class BaseData
{
public boolean isReverseCharge;
public List<Invoice> invoices;
}
package ibase.webitm.bean.gst;
import java.util.Date;
public class CDNDetails
{
public String cdnNoteType;
public String cdNoteNumber;
public Date cdNoteDate;
public String orgCDNoteNumber;
public Date orgCDNoteDate;
public String reason;
public String invoiceNumber;
public Date invoiceDate;
public boolean rchrg;
public double val;
public double irt;
public double iamt;
public double crt;
public double camt;
public double srt;
public double samt;
public double csrt;
public double csamt;
public String etin;
}
package ibase.webitm.bean.gst;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.CDNRSerializer;
@JsonSerialize(using = CDNRSerializer.class)
public class CDNR extends BaseData
{
public String ctin;
public List<CDNDetails> cdnDetails;
}
package ibase.webitm.bean.gst;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.CDNRASerializer;
@JsonSerialize(using = CDNRASerializer.class)
public class CDNRA extends CDNR
{
public String ctin;
public List<CDNDetails> cdnDetails;
}
package ibase.webitm.bean.gst;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ibase.webitm.util.gst.GSTR1Serailizer;
@JsonSerialize(using = GSTR1Serailizer.class)
public class GSTR1 {
@JsonProperty("gstin")
public String gstin;
@JsonProperty("fp")
public String financialPeriod;
@JsonProperty("gt")
public double grossTurnOver;
@JsonProperty("b2b")
public List<B2B> b2b;
@JsonProperty("b2ba")
public List<B2BA> b2ba;
@JsonProperty("b2cl")
public List<B2CL> b2cl;
@JsonProperty("b2cla")
public List<B2CLA> b2cla;
@JsonProperty("b2cs")
public List<B2CS> b2cs;
@JsonProperty("b2csa")
public List<B2CSA> b2csa;
@JsonProperty("cdnr")
public List<CDNR> cdnr;
@JsonProperty("cdnra")
public List<CDNRA> cdnra;
}
package ibase.webitm.bean.gst;
public class InvLineItem {
public int num;
public String ty;
public String hsn_sc;
public double taxval;
public double irt;
public double iamt;
public double crt;
public double camt;
public double srt;
public double samt;
public double csrt;
public double csamt;
}
package ibase.webitm.bean.gst;
import java.util.Date;
import java.util.List;
public class Invoice
{
public String flag;
public String inum;
public String oinum;
public Date idt;
public Date oidt;
public String cname;
public double val;
public String pos;
public boolean rchrg;
public boolean prs;
public String od_num;
public Date od_dt;
public String etin;
public String checksum;
public List<InvLineItem> items;
}
This diff is collapsed.
package ibase.webitm.ejb.gst;
import java.rmi.RemoteException;
import java.util.HashMap;
import javax.ejb.Local;
import org.w3c.dom.Document;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
@Local
public interface GSTDataSubmitWizEJBLocal extends ValidatorLocal
{
public String itemChanged(String xmlString, String xmlString1, String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException;
public String itemChanged(Document dom, Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext,String editFlag, String xtraParams) throws RemoteException, ITMException;
public String wfValData(Document currFormDataDom, Document hdrDataDom, Document allFormDataDom, String objContext, String editFlag, String xtraParams) throws RemoteException, ITMException;
public String handleRequest(HashMap<String, String> reqParamMap);
}
package ibase.webitm.ejb.gst;
import java.rmi.RemoteException;
import java.util.HashMap;
import javax.ejb.Remote;
import org.w3c.dom.Document;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
@Remote
public interface GSTDataSubmitWizEJBRemote extends ValidatorRemote
{
public String itemChanged(String xmlString, String xmlString1, String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException, ITMException;
public String itemChanged(Document dom, Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext,String editFlag, String xtraParams) throws RemoteException, ITMException;
public String wfValData(Document currFormDataDom, Document hdrDataDom, Document allFormDataDom, String objContext, String editFlag, String xtraParams) throws RemoteException, ITMException;
public String handleRequest(HashMap<String, String> reqParamMap);
}
This diff is collapsed.
package ibase.webitm.ejb.gst;
import java.rmi.RemoteException;
import java.sql.Connection;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
@javax.ejb.Local
public interface GSTDataSubmitWizPosLocal extends ValidatorLocal
{
public String postSave(String xmlStringAll, String dcrId, String editFlag, String xtraParams, Connection conn) throws RemoteException,ITMException;
}
package ibase.webitm.ejb.gst;
import java.rmi.RemoteException;
import java.sql.Connection;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
@javax.ejb.Remote
public interface GSTDataSubmitWizPosRemote extends ValidatorLocal
{
public String postSave(String xmlStringAll, String dcrId, String editFlag, String xtraParams, Connection conn) throws RemoteException,ITMException;
}
This diff is collapsed.
package ibase.webitm.ejb.gst;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
import org.w3c.dom.Document;
@Local
public interface GstrICLocal extends ValidatorLocal
{
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(Document dom, Document dom1, Document dom2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(String xmlString, String xmlString1, String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
}
package ibase.webitm.ejb.gst;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import org.w3c.dom.Document;
@Remote
public interface GstrICRemote extends ValidatorRemote
{
public String wfValData(String xmlString, String xmlString1, String xmlString2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String wfValData(Document dom, Document dom1, Document dom2, String objContext, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(String xmlString, String xmlString1, String xmlString2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
public String itemChanged(Document dom, Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams) throws RemoteException,ITMException;
}
package ibase.webitm.servlet.gst;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.zip.GZIPOutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ibase.system.config.AppConnectParm;
import ibase.utility.CommonConstants;
import ibase.webitm.ejb.gst.GSTDataSubmitWizEJBRemote;
import ibase.webitm.utility.ITMException;
public class GSTDataSubmitWizServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
InitialContext ctx = null;
public GSTDataSubmitWizServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost( request, response );
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.println("XXXXXXXXXXXXXXXXXXXXXX[ GSTDataSubmitWizServlet START]XXXXXXXXXXXXXXXXXXXX");
request.setCharacterEncoding(CommonConstants.ENCODING);
String action = "", responseXML = "";
GSTDataSubmitWizEJBRemote gstDataSubmitWizRemote = null;
try
{
action = request.getParameter("action");
System.out.println("GSTDataSubmitWizServlet ACTION ["+action+"]");
if("".equalsIgnoreCase(action))
{
}
else
{
HashMap<String,String> requestParamMap = new HashMap<String,String>();
String paramName = "", paramValue = "";
@SuppressWarnings("unchecked")
Enumeration<String> reqParams = request.getParameterNames();
while(reqParams.hasMoreElements())
{
Object paramObj = reqParams.nextElement();
paramName = (String) paramObj;
paramValue = (String)request.getParameter(paramName);
if(!paramValue.equalsIgnoreCase(""))
requestParamMap.put(paramName,paramValue);
}
System.out.println("Request Parameter map :"+requestParamMap);
ctx=getInitialContext();
gstDataSubmitWizRemote = (ibase.webitm.ejb.gst.GSTDataSubmitWizEJBRemote) ctx.lookup("ibase/GSTDataSubmitWizEJB/remote");
responseXML = gstDataSubmitWizRemote.handleRequest(requestParamMap);
response.setContentType("text/xml");
if(CommonConstants.CONTENT_ENCODING != null && CommonConstants.CONTENT_ENCODING.equalsIgnoreCase("gzip"))
{
response.setHeader("Content-Encoding", "gzip");
GZIPOutputStream gzOutStream = new GZIPOutputStream(response.getOutputStream());
gzOutStream.write(responseXML.getBytes());
gzOutStream.flush();
gzOutStream.close();
}
else
{
response.setHeader("Content-Encoding", "");
OutputStream outStream = response.getOutputStream();
outStream.write(responseXML.getBytes());
outStream.flush();
outStream.close();
}
}
}
catch (Exception e)
{
System.out.println("GSTDataSubmitWizServlet.doPost():doPost"+e.getMessage());
e.printStackTrace();
}
System.out.println("XXXXXXXXXXXXXXXXXXXXXX[ GSTDataSubmitWizServlet END]XXXXXXXXXXXXXXXXXXXX");
}
protected InitialContext getInitialContext()throws ITMException
{
InitialContext ctx = null;
try
{
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
}
catch(ITMException itme)
{
System.out.println("GSTDataSubmitWizServlet.getInitialContext()");
throw itme;
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizServlet.getInitialContext()"+e.getMessage());
throw new ITMException(e);
}
return ctx;
}
}
package ibase.webitm.util.gst;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public class AESEncryption
{
private final String AES_TRANSFORMATION = "AES/ECB/PKCS5Padding";
private final String AES_ALGORITHM = "AES";
private final int ENC_BITS = 256;
private final String CHARACTER_ENCODING = "UTF-8";
private Cipher ENCRYPT_CIPHER;
private Cipher DECRYPT_CIPHER;
private KeyGenerator KEYGEN;
public AESEncryption() throws Exception
{
ENCRYPT_CIPHER = Cipher.getInstance(AES_TRANSFORMATION);
DECRYPT_CIPHER = Cipher.getInstance(AES_TRANSFORMATION);
KEYGEN = KeyGenerator.getInstance(AES_ALGORITHM);
KEYGEN.init(ENC_BITS);
}
public String encodeBase64String(byte[] bytes)
{
return new String(java.util.Base64.getEncoder().encode(bytes));
}
public byte[] decodeBase64StringTOByte(String stringData) throws Exception
{
return java.util.Base64.getDecoder().decode(stringData.getBytes(CHARACTER_ENCODING));
}
public String generateSecureKey() throws Exception
{
SecretKey secretKey = KEYGEN.generateKey();
return encodeBase64String(secretKey.getEncoded());
}
public String encryptEK(byte[] plainText, byte[] secret) throws Exception
{
SecretKeySpec sk = new SecretKeySpec(secret, AES_ALGORITHM);
ENCRYPT_CIPHER.init(Cipher.ENCRYPT_MODE, sk);
return Base64.encodeBase64String(ENCRYPT_CIPHER.doFinal(plainText));
}
public byte[] decrypt(String plainText, byte[] secret) throws Exception
{
SecretKeySpec sk = new SecretKeySpec(secret, AES_ALGORITHM);
DECRYPT_CIPHER.init(Cipher.DECRYPT_MODE, sk);
return DECRYPT_CIPHER.doFinal(Base64.decodeBase64(plainText));
}
}
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 ATSearializer extends BaseSerializer<AT>
{
@Override
public void serialize(AT at, JsonGenerator json, SerializerProvider serializeProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("typ", at.typ);
json.writeStringField("cpty", at.cpty);
json.writeStringField("state_cd", at.stateCode);
json.writeStringField("doc_num", at.docNum);
json.writeStringField("doc_dt", gstFmt.format(at.docDt));
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.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.B2BA;
public class B2BASerializer extends BaseSerializer<B2BA>
{
@Override
public void serialize(B2BA b2ba, final JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("ctin", b2ba.ctin);
writeInvoices(b2ba, json);
json.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.B2B;
public class B2BSerializer extends BaseSerializer<B2B>
{
@Override
public void serialize(B2B b2B, final JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("ctin", b2B.ctin);
writeInvoices(b2B, json);
json.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.B2CL;
import ibase.webitm.bean.gst.B2CLA;
public class B2CLASerializer extends BaseSerializer<B2CLA> {
@Override
public void serialize(B2CLA b2cla, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("state_cd", b2cla.stateCode);
writeInvoices(b2cla, json);
json.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.B2CL;
public class B2CLSerializer extends BaseSerializer<B2CL> {
@Override
public void serialize(B2CL b2cl, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("state_cd", b2cl.stateCode);
writeInvoices(b2cl, json);
json.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.B2CSA;
public class B2CSASerializer extends BaseSerializer<B2CSA>
{
@Override
public void serialize(B2CSA b2csa, JsonGenerator json, SerializerProvider serializerProvider)throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("omon", b2csa.orgPeriodCode);
json.writeStringField("oty", b2csa.orgType);
json.writeStringField("ohsn_sc", b2csa.orgItemOrServiceCode);
json.writeStringField("osupst_cd", b2csa.orgStateCode);
json.writeStringField("state_cd", b2csa.stateCode);
json.writeStringField("ty", b2csa.ty);
json.writeStringField("hsn_sc", b2csa.itemOrServiceCode);
json.writeNumberField("txval", b2csa.txval);
json.writeNumberField("irt", b2csa.irt);
json.writeNumberField("iamt", b2csa.iamt);
json.writeNumberField("crt", b2csa.crt);
json.writeNumberField("camt", b2csa.camt);
json.writeNumberField("srt", b2csa.srt);
json.writeNumberField("samt", b2csa.samt);
json.writeNumberField("csrt", b2csa.csrt);
json.writeNumberField("csamt", b2csa.csamt);
json.writeStringField("prs", b2csa.prs ? "Y" : "N");
if(b2csa.prs)
{
json.writeStringField("od_num", b2csa.od_num);
json.writeStringField("od_dt", gstFmt.format(b2csa.od_dt));
}
if(b2csa.etin!=null)
{
json.writeStringField("etin", b2csa.etin);
}
json.writeStringField("typ", b2csa.typ);
json.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.B2CS;
public class B2CSSerializer extends BaseSerializer<B2CS>
{
@Override
public void serialize(B2CS b2cs, JsonGenerator json, SerializerProvider serializerProvider)throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("state_cd", b2cs.stateCode);
json.writeStringField("ty", b2cs.ty);
json.writeStringField("hsn_sc", b2cs.itemOrServiceCode);
json.writeNumberField("txval", b2cs.txval);
json.writeNumberField("irt", b2cs.irt);
json.writeNumberField("iamt", b2cs.iamt);
json.writeNumberField("crt", b2cs.crt);
json.writeNumberField("camt", b2cs.camt);
json.writeNumberField("srt", b2cs.srt);
json.writeNumberField("samt", b2cs.samt);
json.writeNumberField("csrt", b2cs.csrt);
json.writeNumberField("csamt", b2cs.csamt);
json.writeStringField("prs", b2cs.prs ? "Y" : "N");
if(b2cs.prs)
{
json.writeStringField("od_num", b2cs.od_num);
json.writeStringField("od_dt", gstFmt.format(b2cs.od_dt));
}
if(b2cs.etin!=null)
{
json.writeStringField("etin", b2cs.etin);
}
json.writeStringField("typ", b2cs.typ);
json.writeEndObject();
}
}
package ibase.webitm.util.gst;
import java.io.IOException;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import ibase.webitm.bean.gst.BaseData;
import ibase.webitm.bean.gst.InvLineItem;
import ibase.webitm.bean.gst.Invoice;
abstract class BaseSerializer<T extends BaseData> extends JsonSerializer<T>
{
final SimpleDateFormat gstFmt = new SimpleDateFormat("dd-MM-yyyy");
void writeInvoices(T genericInvoice, JsonGenerator json) throws IOException
{
json.writeFieldName("inv");
json.writeStartArray();
for(Invoice inv : genericInvoice.invoices)
{
writeInvoice(genericInvoice, json, inv);
}
json.writeEndArray();
}
private void writeInvoice(T genericInvoice, JsonGenerator json, Invoice inv)
{
try
{
json.writeStartObject();
if( (inv.flag != null) && ("A".equalsIgnoreCase(inv.flag) || "M".equalsIgnoreCase(inv.flag) || "D".equalsIgnoreCase(inv.flag)) )
{
json.writeStringField("flag", inv.flag);
json.writeStringField("inum", inv.inum);
json.writeStringField("idt", gstFmt.format(inv.idt));
json.writeStringField("chksum", inv.checksum);
}
else
{
if (inv.oinum != null && inv.oidt != null)
{
json.writeStringField("oinum", inv.oinum);
json.writeStringField("oidt", gstFmt.format(inv.oidt));
}
if(inv.cname != null)
{
json.writeStringField("cname", inv.cname);
}
json.writeStringField("inum", inv.inum);
json.writeStringField("idt", gstFmt.format(inv.idt));
json.writeNumberField("val", inv.val);
json.writeStringField("pos", inv.pos);
if(genericInvoice.isReverseCharge)
{
json.writeStringField("rchrg", inv.rchrg ? "Y" : "N");
}
json.writeStringField("prs", inv.prs ? "Y" : "N");
if (inv.prs)
{
json.writeStringField("od_num", inv.od_num);
json.writeStringField("od_dt", gstFmt.format(inv.od_dt));
}
if(inv.etin!=null)
{
json.writeStringField("etin", inv.etin);
}
writeLineItems(genericInvoice, json, inv);
}
json.writeEndObject();
}
catch (Exception e)
{
System.out.println("BaseSerializer.writeInvoice()["+e.getMessage()+"]");
e.printStackTrace();
}
}
private void writeLineItems(T genericInvoice, JsonGenerator json, Invoice inv) throws IOException
{
json.writeFieldName("itms");
json.writeStartArray();
for(InvLineItem li : inv.items)
{
writeLineItem(genericInvoice, json, li);
}
json.writeEndArray();
}
private void writeLineItem(T genericInvoice, JsonGenerator json, InvLineItem li)
{
try
{
json.writeStartObject();
json.writeNumberField("num", li.num);
json.writeFieldName("itm_det");
json.writeStartObject();
json.writeStringField("ty", li.ty);
json.writeStringField("hsn_sc", li.hsn_sc);
json.writeNumberField("txval", 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();
json.writeEndObject();
}
catch (Exception e)
{
System.out.println("BaseSerializer.writeLineItem()["+e.getMessage()+"]");
e.printStackTrace();
}
}
}
package ibase.webitm.util.gst;
import java.io.IOException;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.CDNDetails;
import ibase.webitm.bean.gst.CDNRA;
public class CDNRASerializer extends JsonSerializer<CDNRA>
{
final SimpleDateFormat gstFmt = new SimpleDateFormat("dd-MM-yyyy");
@Override
public void serialize(CDNRA cdnra, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("ctin", cdnra.ctin);
json.writeFieldName("nt");
json.writeStartArray();
for(CDNDetails cdnDetails : cdnra.cdnDetails)
{
writeCDNDetails(cdnra, json, cdnDetails);
}
json.writeEndArray();
json.writeEndObject();
}
private void writeCDNDetails(CDNRA cdnra, JsonGenerator json, CDNDetails cdnDetails)
{
try
{
json.writeStartObject();
json.writeStringField("ntty", cdnDetails.cdnNoteType);
json.writeStringField("nt_num", cdnDetails.cdNoteNumber);
json.writeStringField("nt_dt", gstFmt.format(cdnDetails.cdNoteDate));
json.writeStringField("rsn", cdnDetails.reason);
if(cdnDetails.orgCDNoteNumber != null && cdnDetails.orgCDNoteDate != null)
{
json.writeStringField("ont_num", cdnDetails.orgCDNoteNumber);
json.writeStringField("ont_dt", gstFmt.format(cdnDetails.orgCDNoteDate));
}
json.writeStringField("inum", cdnDetails.invoiceNumber);
json.writeStringField("idt", gstFmt.format(cdnDetails.invoiceDate));
if(cdnra.isReverseCharge)
{
json.writeStringField("rchrg", cdnDetails.rchrg ? "Y" : "N");
}
json.writeNumberField("val", cdnDetails.val);
json.writeNumberField("irt", cdnDetails.irt);
json.writeNumberField("iamt", cdnDetails.iamt);
json.writeNumberField("crt", cdnDetails.crt);
json.writeNumberField("camt", cdnDetails.camt);
json.writeNumberField("srt", cdnDetails.srt);
json.writeNumberField("samt", cdnDetails.samt);
json.writeNumberField("csrt", cdnDetails.csrt);
json.writeNumberField("csamt", cdnDetails.csamt);
if(cdnDetails.etin!=null)
{
json.writeStringField("etin", cdnDetails.etin);
}
json.writeEndObject();
}
catch(Exception e)
{
System.out.println("CDNRASerializer.writecdnDetails()["+e.getMessage()+"]");
e.printStackTrace();
}
}
}
package ibase.webitm.util.gst;
import java.io.IOException;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.CDNDetails;
import ibase.webitm.bean.gst.CDNR;
public class CDNRSerializer extends JsonSerializer<CDNR>
{
final SimpleDateFormat gstFmt = new SimpleDateFormat("dd-MM-yyyy");
@Override
public void serialize(CDNR cdnr, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
json.writeStartObject();
json.writeStringField("ctin", cdnr.ctin);
json.writeFieldName("nt");
json.writeStartArray();
for(CDNDetails cdnDetails : cdnr.cdnDetails)
{
writeCDNDetails(cdnr, json, cdnDetails);
}
json.writeEndArray();
json.writeEndObject();
}
private void writeCDNDetails(CDNR cdnr, JsonGenerator json, CDNDetails cdnDetails)
{
try
{
json.writeStartObject();
json.writeStringField("ntty", cdnDetails.cdnNoteType);
json.writeStringField("nt_num", cdnDetails.cdNoteNumber);
json.writeStringField("nt_dt", gstFmt.format(cdnDetails.cdNoteDate));
json.writeStringField("rsn", cdnDetails.reason);
json.writeStringField("inum", cdnDetails.invoiceNumber);
json.writeStringField("idt", gstFmt.format(cdnDetails.invoiceDate));
if(cdnr.isReverseCharge)
{
json.writeStringField("rchrg", cdnDetails.rchrg ? "Y" : "N");
}
json.writeNumberField("val", cdnDetails.val);
json.writeNumberField("irt", cdnDetails.irt);
json.writeNumberField("iamt", cdnDetails.iamt);
json.writeNumberField("crt", cdnDetails.crt);
json.writeNumberField("camt", cdnDetails.camt);
json.writeNumberField("srt", cdnDetails.srt);
json.writeNumberField("samt", cdnDetails.samt);
json.writeNumberField("csrt", cdnDetails.csrt);
json.writeNumberField("csamt", cdnDetails.csamt);
if(cdnDetails.etin!=null)
{
json.writeStringField("etin", cdnDetails.etin);
}
json.writeEndObject();
}
catch(Exception e)
{
System.out.println("CDNRSerializer.writecdnDetails()["+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.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import ibase.webitm.bean.gst.GSTR1;
public class GSTR1Serailizer extends JsonSerializer<GSTR1> {
@Override
public void serialize(GSTR1 gstr1, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException
{
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("gstin", gstr1.gstin);
jsonGenerator.writeStringField("fp", gstr1.financialPeriod);
jsonGenerator.writeNumberField("gt", gstr1.grossTurnOver);
if(gstr1.b2b != null)
{
jsonGenerator.writeObjectField("b2b", gstr1.b2b);
}
if(gstr1.b2ba != null)
{
jsonGenerator.writeObjectField("b2ba", gstr1.b2ba);
}
if(gstr1.b2cl != null)
{
jsonGenerator.writeObjectField("b2cl", gstr1.b2cl);
}
if(gstr1.b2cla != null)
{
jsonGenerator.writeObjectField("b2cla", gstr1.b2cla);
}
if(gstr1.b2cs != null)
{
jsonGenerator.writeObjectField("b2cs", gstr1.b2cs);
}
if(gstr1.b2csa != null)
{
jsonGenerator.writeObjectField("b2csa", gstr1.b2csa);
}
if(gstr1.cdnr != null)
{
jsonGenerator.writeObjectField("cdnr", gstr1.cdnr);
}
if(gstr1.cdnra != null)
{
jsonGenerator.writeObjectField("cdnra", gstr1.cdnra);
}
jsonGenerator.writeEndObject();
}
}
package ibase.webitm.util.gst;
import java.io.InputStream;
import java.security.PublicKey;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import javax.crypto.Cipher;
/**
* This class is used to encrypt the string using a
* public publicKey
*/
public class PubKeyEncryption {
private PublicKey publicKey;
public PubKeyEncryption(InputStream pubKeyUrl) throws Exception
{
this.publicKey = readPublicKey(pubKeyUrl);
}
private PublicKey readPublicKey(InputStream fin) throws Exception
{
CertificateFactory f = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate) f.generateCertificate(fin);
return certificate.getPublicKey();
}
/**
* This method is used to encrypt the string , passed to it
* using a public publicKey provided
*
* @param plaintext : Text to encrypt
* @return :encrypted string
*/
public String encrypt(byte[] plaintext) throws Exception
{
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedByte = cipher.doFinal(plaintext);
return new String(java.util.Base64.getEncoder().encode(encryptedByte));
}
}
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