Commit 8bc630ae authored by ngadkari's avatar ngadkari

changes in E-INVOICE process

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@217359 ce508802-f39f-4f6c-b175-0d175dae99d5
parent ebcd297a
...@@ -21,7 +21,7 @@ import java.util.UUID; ...@@ -21,7 +21,7 @@ import java.util.UUID;
import javax.crypto.KeyGenerator; import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
import javax.json.JsonValue;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.bouncycastle.crypto.digests.SHA256Digest; import org.bouncycastle.crypto.digests.SHA256Digest;
...@@ -31,9 +31,6 @@ import org.json.JSONArray; ...@@ -31,9 +31,6 @@ import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonValue;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node; import org.w3c.dom.Node;
...@@ -151,7 +148,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -151,7 +148,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
GSTCommonUtil gstCommonUtil = new GSTCommonUtil(); GSTCommonUtil gstCommonUtil = new GSTCommonUtil();
boolean isError = false; boolean isError = false;
String sek="" ,gspAuthString = "", gspAuthSignature = "",invoiceID="",sql="",siteCode="", timeStamp="",status="",irn=""; String sek="" ,gspAuthString = "", gspAuthSignature = "",invoiceID="",sql="",siteCode="", timeStamp="",status="",irn="",cancelDateStr="";
Node currDetail = null; Node currDetail = null;
int noOfDetails = 0; int noOfDetails = 0;
NodeList detailList = null; NodeList detailList = null;
...@@ -163,7 +160,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -163,7 +160,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
UtilMethods utilMethods = null; UtilMethods utilMethods = null;
ResultSet rs = null,rs1 = null; ResultSet rs = null,rs1 = null;
HashMap detailMap=null; HashMap detailMap=null;
String refNo="",refSer="",custCode="",custGstin="",itemCode="",itemDesc="",unit=""; String refNo="",refSer="",custCode="",custGstin="",itemCode="",itemDesc="",unit="",currDateStr="";
long stcd=0,pin=0,ph=0; long stcd=0,pin=0,ph=0;
JSONObject jsonObjIRNCan=null,tempObj1=null, errorJSON=null,gstIRNObj=null,object=null,objectData=null,reqBody=null,authTokenReqObj=null,authTokenReqObjData=null; JSONObject jsonObjIRNCan=null,tempObj1=null, errorJSON=null,gstIRNObj=null,object=null,objectData=null,reqBody=null,authTokenReqObj=null,authTokenReqObjData=null;
Date tranDate=null,expDate=null,mfgDate=null; Date tranDate=null,expDate=null,mfgDate=null;
...@@ -171,16 +168,34 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -171,16 +168,34 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
double invAmt=0,igst=0,cgst=0,sgst=0,cess=0,assAmt=0,othAmt=0,totAmt=0,discAmt=0,totItemVal=0,rate=0,quantity=0; double invAmt=0,igst=0,cgst=0,sgst=0,cess=0,assAmt=0,othAmt=0,totAmt=0,discAmt=0,totItemVal=0,rate=0,quantity=0;
List unitList=null; List unitList=null;
byte[] respJsonInBytes=null; byte[] respJsonInBytes=null;
SimpleDateFormat sdf = null;
Timestamp currDate=null,cancelDate=null;
try { try {
conn = getConnection(); conn = getConnection();
FinCommon finCommon = new FinCommon(); FinCommon finCommon = new FinCommon();
utilMethods = new UtilMethods(); utilMethods = new UtilMethods();
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
java.util.Date currDate1 = new java.util.Date();
currDateStr = sdf.format(currDate1);
currDate= Timestamp.valueOf(e12GenericUtility.getValidDateString(currDateStr, e12GenericUtility.getApplDateFormat(), e12GenericUtility.getDBDateFormat()) + " 00:00:00.0");
userName = e12GenericUtility.getColumnValue("user_name",headerDom); userName = e12GenericUtility.getColumnValue("user_name",headerDom);
password = e12GenericUtility.getColumnValue("password",headerDom); password = e12GenericUtility.getColumnValue("password",headerDom);
refNo = checkNullandTrim(e12GenericUtility.getColumnValue("ref_no",headerDom)); refNo = checkNullandTrim(e12GenericUtility.getColumnValue("ref_no",headerDom));
if(userName==null || userName.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("","VTEINVUPA","","",conn);
return errString;
}
if(password==null || password.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("","VTEINVUPA","","",conn);
return errString;
}
sql="SELECT count(*) from invoice where invoice_id=? "; sql="SELECT count(*) from invoice where invoice_id=? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
...@@ -228,12 +243,64 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -228,12 +243,64 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
if(cnt > 0) if(cnt > 0)
{ {
refSer="DRCR"; sql="SELECT tran_ser from drcr_rcp where tran_id=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
if(rs.next())
{
refSer = checkNullandTrim(rs.getString(1));
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
} }
else else
{ {
errString = itmDBAccessEJB.getErrorString("","VTMISCREF","","",conn);
return errString; sql="SELECT count(*) from distord_iss where tran_id=? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
if(rs.next())
{
cnt = rs.getInt(1);
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
if(cnt > 0)
{
refSer="D-ISS";
}
else
{
errString = itmDBAccessEJB.getErrorString("","VTMISCREF","","",conn);
return errString;
}
} }
} }
else else
...@@ -241,10 +308,40 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -241,10 +308,40 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
refSer="S-INV"; refSer="S-INV";
} }
sql="SELECT ir_no from gst_ir_info where ref_id=? and ref_ser =? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
pstmt.setString(2, refSer);
rs = pstmt.executeQuery();
if(rs.next())
{
irn = rs.getString(1);
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
if(irn==null || irn.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("","VTIRNNULL","","",conn);
return errString;
}
if("S-INV".equalsIgnoreCase(refSer)) if("S-INV".equalsIgnoreCase(refSer))
{ {
sql="SELECT site_code,gst_ir_no from invoice where invoice_id=? "; sql="SELECT site_code from invoice where invoice_id=? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo); pstmt.setString(1, refNo);
...@@ -254,7 +351,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -254,7 +351,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
if(rs.next()) if(rs.next())
{ {
siteCode = rs.getString(1); siteCode = rs.getString(1);
irn = rs.getString(2);
} }
if(pstmt != null) if(pstmt != null)
{ {
...@@ -270,9 +367,9 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -270,9 +367,9 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
} }
if("DRCR".equalsIgnoreCase(refSer)) if("CRNRCP".equalsIgnoreCase(refSer) || "DRNRCP".equalsIgnoreCase(refSer))
{ {
sql="SELECT site_code,gst_ir_no from drcr_rcp where tran_id=? "; sql="SELECT site_code from drcr_rcp where tran_id=? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo); pstmt.setString(1, refNo);
...@@ -282,7 +379,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -282,7 +379,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
if(rs.next()) if(rs.next())
{ {
siteCode = rs.getString(1); siteCode = rs.getString(1);
irn = rs.getString(2);
} }
if(pstmt != null) if(pstmt != null)
{ {
...@@ -295,13 +392,33 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -295,13 +392,33 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
rs = null; rs = null;
} }
} }
if("D-ISS".equalsIgnoreCase(refSer))
if(irn==null || irn.trim().length()==0)
{ {
errString = itmDBAccessEJB.getErrorString("","VTIRNNULL","","",conn); sql="SELECT site_code from distord_iss where tran_id=? ";
return errString;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
if(rs.next())
{
siteCode = rs.getString(1);
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
} }
sql="SELECT REG_NO FROM SITEREGNO WHERE SITE_CODE= ? AND ref_code='GSTIN_NO' "; sql="SELECT REG_NO FROM SITEREGNO WHERE SITE_CODE= ? AND ref_code='GSTIN_NO' ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
...@@ -329,16 +446,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -329,16 +446,7 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
return errString; return errString;
} }
if(userName==null || userName.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("","VTEINVUPA","","",conn);
return errString;
}
if(password==null || password.trim().length()==0)
{
errString = itmDBAccessEJB.getErrorString("","VTEINVUPA","","",conn);
return errString;
}
gstnPublicKeyName = finCommon.getFinparams("999999", "GSTN_PUB_KEY_NAME", conn); gstnPublicKeyName = finCommon.getFinparams("999999", "GSTN_PUB_KEY_NAME", conn);
...@@ -562,38 +670,28 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB { ...@@ -562,38 +670,28 @@ public class EInvoiceIRNCancelPrc extends ProcessEJB {
System.out.println("IRNjson :" + gstIRNObj.toString()); System.out.println("IRNjson :" + gstIRNObj.toString());
irn=gstIRNObj.getString("Irn"); irn=gstIRNObj.getString("Irn");
cancelDateStr=gstIRNObj.getString("CancelDate");
cancelDate=Timestamp.valueOf(cancelDateStr);
if("S-INV".equalsIgnoreCase(refSer)) sql = " insert into gst_ir_info (tran_date,tran_type,ref_ser,ref_id,ack_no,ack_date,ir_no,reg_stat)" +
{ " values (?,?,?,?,?,?,?,?) ";
sql = "update invoice set GST_IR_NO=? where invoice_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, irn);
pstmt.setString(2, refNo);
cnt= pstmt.executeUpdate();
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
}
else
{
sql = "update drcr_rcp set GST_IR_NO=? where tran_id = ? ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, irn); pstmt.setTimestamp(1, currDate);
pstmt.setString(2, refNo); pstmt.setString(2, "C");
pstmt.setString(3, refSer);
cnt= pstmt.executeUpdate(); pstmt.setString(4, refNo);
pstmt.setString(5, "");
pstmt.setTimestamp(6,cancelDate);
pstmt.setString(7, irn);
pstmt.setString(8, "1");
pstmt.executeUpdate();
if (pstmt != null) { if (pstmt != null) {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
}
} }
else else
{ {
......
...@@ -2,6 +2,7 @@ package ibase.webitm.ejb.gstclient; ...@@ -2,6 +2,7 @@ package ibase.webitm.ejb.gstclient;
import java.security.PrivateKey; import java.security.PrivateKey;
import java.sql.Blob;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
...@@ -21,7 +22,7 @@ import java.util.UUID; ...@@ -21,7 +22,7 @@ import java.util.UUID;
import javax.crypto.KeyGenerator; import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
import javax.json.JsonValue;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.bouncycastle.crypto.digests.SHA256Digest; import org.bouncycastle.crypto.digests.SHA256Digest;
...@@ -31,14 +32,12 @@ import org.json.JSONArray; ...@@ -31,14 +32,12 @@ import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonValue;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileWriter; import java.io.FileWriter;
...@@ -182,7 +181,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -182,7 +181,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
" and invoice.site_code= ? "+ " and invoice.site_code= ? "+
" and invoice.tran_date >=? "+ " and invoice.tran_date >=? "+
" and invoice.tran_date <=? "+ " and invoice.tran_date <=? "+
" and invoice.gst_ir_no is null"; " and (select count(1) from gst_ir_info where ref_id = invoice.invoice_id AND ref_ser = 'S-INV' AND reg_stat= 1 )= 0 ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode); pstmt.setString(1,siteCode);
pstmt.setTimestamp(2,fromDate); pstmt.setTimestamp(2,fromDate);
...@@ -238,7 +237,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -238,7 +237,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
+ " and drcr_rcp.site_code= ?" + " and drcr_rcp.site_code= ?"
+ " and drcr_rcp.tran_date >=? " + " and drcr_rcp.tran_date >=? "
+ " and drcr_rcp.tran_date <=? " + " and drcr_rcp.tran_date <=? "
+ " and drcr_rcp.gst_ir_no is null"; + " and (select count(1) from gst_ir_info where ref_id = drcr_rcp.tran_id AND ref_ser in ('CRNRCP','DRNRCP') AND reg_stat= 1 )= 0 ";
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode); pstmt.setString(1,siteCode);
pstmt.setTimestamp(2,fromDate); pstmt.setTimestamp(2,fromDate);
...@@ -284,6 +283,54 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -284,6 +283,54 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
sql = " select i.tran_id,i.tran_date,i.site_code__dlv,a.descr,i.amount,i.net_amt,i.curr_code,i.exch_rate from distord_iss i,site a "
+ " where a.site_code=i.site_code__dlv and i.site_code=? and i.tran_date >=? and i.tran_date <=? and"
+ " (select count(1) from gst_ir_info where ref_id = i.tran_id and ref_ser = 'D-ISS' and reg_stat= 1 )= 0 ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setTimestamp(2,fromDate);
pstmt.setTimestamp(3,toDate);
rs = pstmt.executeQuery();
while (rs.next())
{
if( rs.getTimestamp("tran_date") != null)
{
tranDate=sdf.format(rs.getTimestamp("tran_date"));
}
xmlBuff.append("<Detail2>");
xmlBuff.append("<ref_no>").append("<![CDATA[" + rs.getString("tran_id") +"]]>").append("</ref_no>");
xmlBuff.append("<ref_ser>").append("<![CDATA[" +"D-ISS" +"]]>").append("</ref_ser>");
xmlBuff.append("<ref_date>").append("<![CDATA[" + tranDate +"]]>").append("</ref_date>");
xmlBuff.append("<cust_code>").append("<![CDATA[" + rs.getString("site_code__dlv") +"]]>").append("</cust_code>");
xmlBuff.append("<customer_name>").append("<![CDATA[" + rs.getString("descr") +"]]>").append("</customer_name>");
xmlBuff.append("<cust_code__bil>").append("<![CDATA[" + rs.getString("site_code__dlv") +"]]>").append("</cust_code__bil>");
xmlBuff.append("<customer_name_1>").append("<![CDATA[" + rs.getString("descr") +"]]>").append("</customer_name_1>");
xmlBuff.append("<tax_class>").append("<![CDATA[" + "" +"]]>").append("</tax_class>");
xmlBuff.append("<tax_chap>").append("<![CDATA[" + ""+"]]>").append("</tax_chap>");
xmlBuff.append("<tax_env>").append("<![CDATA[" +"" +"]]>").append("</tax_env>");
xmlBuff.append("<amount>").append("<![CDATA[" + rs.getDouble("amount") +"]]>").append("</amount>");
xmlBuff.append("<net_amt>").append("<![CDATA[" + rs.getDouble("net_amt") +"]]>").append("</net_amt>");
xmlBuff.append("<curr_code>").append("<![CDATA[" + rs.getString("curr_code") +"]]>").append("</curr_code>");
xmlBuff.append("<exch_rate>").append("<![CDATA[" + rs.getDouble("exch_rate") +"]]>").append("</exch_rate>");
xmlBuff.append("<inv_type>").append("<![CDATA[" + ""+"]]>").append("</inv_type>");
xmlBuff.append("</Detail2>");
cnt++;
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
if(cnt==0) if(cnt==0)
...@@ -382,7 +429,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -382,7 +429,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
String status = ""; String status = "";
String gstDateFormat = ""; String gstDateFormat = "";
String gspTokenTimeStampFormat = ""; String gspTokenTimeStampFormat = "";
String pubkeypath="",password="",gstnPublicKeyName="",gspPrivateKeyName=""; String pubkeypath="",password="",gstnPublicKeyName="",gspPrivateKeyName="",currDateStr="",ackNo="",ackDateStr="",qrCode="";
AESEncryption aesEncryption = null; AESEncryption aesEncryption = null;
PubKeyEncryption pubKeyEncryption = null; PubKeyEncryption pubKeyEncryption = null;
...@@ -396,7 +443,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -396,7 +443,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
GSTCommonUtil gstCommonUtil = new GSTCommonUtil(); GSTCommonUtil gstCommonUtil = new GSTCommonUtil();
boolean isError = false; boolean isError = false;
String sek="" ,gspAuthString = "", gspAuthSignature = "",invoiceID="",sql="",siteCode="", timeStamp="",sorder="",hsn="",lotNo="",lineType="",irn=""; String sek="" ,gspAuthString = "", gspAuthSignature = "",invoiceID="",sql="",siteCode="", timeStamp="",sorder="",hsn="",lotNo="",lineType="",irn="",siteDlvGstin="",siteCodeDlv="";
Node currDetail = null; Node currDetail = null;
int noOfDetails = 0; int noOfDetails = 0;
NodeList detailList = null; NodeList detailList = null;
...@@ -416,9 +463,17 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -416,9 +463,17 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
double invAmt=0,igst=0,cgst=0,sgst=0,cess=0,assAmt=0,othAmt=0,totAmt=0,discAmt=0,totItemVal=0,rate=0,quantity=0; double invAmt=0,igst=0,cgst=0,sgst=0,cess=0,assAmt=0,othAmt=0,totAmt=0,discAmt=0,totItemVal=0,rate=0,quantity=0;
List unitList=null; List unitList=null;
byte[] respJsonInBytes=null; byte[] respJsonInBytes=null;
SimpleDateFormat sdf = null;
Timestamp currDate=null,ackDate=null;
try { try {
conn = getConnection(); conn = getConnection();
sdf = new SimpleDateFormat(e12GenericUtility.getApplDateFormat());
java.util.Date currDate1 = new java.util.Date();
currDateStr = sdf.format(currDate1);
currDate= Timestamp.valueOf(e12GenericUtility.getValidDateString(currDateStr, e12GenericUtility.getApplDateFormat(), e12GenericUtility.getDBDateFormat()) + " 00:00:00.0");
FinCommon finCommon = new FinCommon(); FinCommon finCommon = new FinCommon();
utilMethods = new UtilMethods(); utilMethods = new UtilMethods();
// gstnPublicKeyName = finCommon.getFinparams("999999", "EINVOICE_PASS",// // gstnPublicKeyName = finCommon.getFinparams("999999", "EINVOICE_PASS",//
...@@ -979,7 +1034,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -979,7 +1034,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
+ " and trim(line_no)=trim(it.line_no) and tax_code in (select tax_code from tax where tax_type ='G') and tax_perc > 0 and tax_amt > 0),0) as SGST_AMT," + " and trim(line_no)=trim(it.line_no) and tax_code in (select tax_code from tax where tax_type ='G') and tax_perc > 0 and tax_amt > 0),0) as SGST_AMT,"
+ " nvl((select tax_amt from taxtran where tran_id=it.invoice_id" + " nvl((select tax_amt from taxtran where tran_id=it.invoice_id"
+ " and trim(line_no)=it.line_no and tax_code in (select tax_code from tax where tax_type ='J') and tax_perc > 0 and tax_amt > 0),0) as CESS_AMT," + " and trim(line_no)=it.line_no and tax_code in (select tax_code from tax where tax_type ='J') and tax_perc > 0 and tax_amt > 0),0) as CESS_AMT,"
+ " nvl((select sum(tax_amt) from taxtran where tran_id=invoice_id" + " nvl((select tax_amt from taxtran where tran_id=it.invoice_id"
+ " and trim(line_no)=it.line_no and tax_code in (select tax_code from tax where tax_type ='C') and tax_perc > 0 and tax_amt > 0),0) as OTHCHAR_AMT," + " and trim(line_no)=it.line_no and tax_code in (select tax_code from tax where tax_type ='C') and tax_perc > 0 and tax_amt > 0),0) as OTHCHAR_AMT,"
+ " (SELECT CASE WHEN udf_str2 IS NULL THEN 'OTH' ELSE udf_str2 END AS Unit FROM uom WHERE unit=it.unit ) AS UNIT," + " (SELECT CASE WHEN udf_str2 IS NULL THEN 'OTH' ELSE udf_str2 END AS Unit FROM uom WHERE unit=it.unit ) AS UNIT,"
+ " (it.quantity__stduom) AS QUANTITY, it.RATE__STDUOM AS RATE," + " (it.quantity__stduom) AS QUANTITY, it.RATE__STDUOM AS RATE,"
...@@ -1091,7 +1146,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1091,7 +1146,7 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
continue; continue;
} }
} }
else if("CRNRCP".equalsIgnoreCase(refSer) || "DRNRCP".equalsIgnoreCase(refSer))
{ {
sql = "SELECT DRCR_RCP.TRAN_DATE AS TRAN_DATE, DRCR_RCP.CUST_CODE AS CUST_CODE, " sql = "SELECT DRCR_RCP.TRAN_DATE AS TRAN_DATE, DRCR_RCP.CUST_CODE AS CUST_CODE, "
...@@ -1411,8 +1466,8 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1411,8 +1466,8 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
+ "and tax_code in (select tax_code from tax where tax_type ='G') and tax_perc > 0 and tax_amt > 0),0) as SGST_AMT, " + "and tax_code in (select tax_code from tax where tax_type ='G') and tax_perc > 0 and tax_amt > 0),0) as SGST_AMT, "
+ "nvl((select tax_amt from taxtran where tran_id=dt.TRAN_ID and trim(line_no)=dt.line_no " + "nvl((select tax_amt from taxtran where tran_id=dt.TRAN_ID and trim(line_no)=dt.line_no "
+ "and tax_code in (select tax_code from tax where tax_type ='J') and tax_perc > 0 and tax_amt > 0),0) as CESS_AMT, " + "and tax_code in (select tax_code from tax where tax_type ='J') and tax_perc > 0 and tax_amt > 0),0) as CESS_AMT, "
+ "nvl((select sum(tax_amt) from taxtran where tran_id=dt.TRAN_ID and trim(line_no)=dt.line_no " + "nvl((select tax_amt from taxtran where tran_id=dt.TRAN_ID and trim(line_no)=dt.line_no "
+ "and tax_code in (select tax_code from tax where tax_type ='C') and tax_perc > 0 and tax_amt > 0),0) as OTHCHAR_AMT, " + "and tax_code in (select tax_code from tax where tax_type ='C') and tax_perc > 0 and tax_amt > 0),0)as OTHCHAR_AMT, "
+ "(SELECT CASE WHEN udf_str2 IS NULL THEN 'OTH' ELSE udf_str2 END AS Unit FROM uom WHERE unit=INVOICE_TRACE.unit ) AS UNIT, " + "(SELECT CASE WHEN udf_str2 IS NULL THEN 'OTH' ELSE udf_str2 END AS Unit FROM uom WHERE unit=INVOICE_TRACE.unit ) AS UNIT, "
+ "(dt.QUANTITY) AS QUANTITY, dt.RATE AS RATE, item.hsn_no AS HSN_CODE, item.DESCR as ITEM_DESC, " + "(dt.QUANTITY) AS QUANTITY, dt.RATE AS RATE, item.hsn_no AS HSN_CODE, item.DESCR as ITEM_DESC, "
+ "dt.LOT_NO as LOT_NO, INVOICE_TRACE.EXP_DATE as EXP_DATE, INVOICE_TRACE.MFG_DATE as MFG_DATE, dt.NET_AMT as TOT_ITEM_VAL " + "dt.LOT_NO as LOT_NO, INVOICE_TRACE.EXP_DATE as EXP_DATE, INVOICE_TRACE.MFG_DATE as MFG_DATE, dt.NET_AMT as TOT_ITEM_VAL "
...@@ -1520,6 +1575,350 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1520,6 +1575,350 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
continue; continue;
} }
} }
if("D-ISS".equalsIgnoreCase(refSer))
{
sql = "SELECT TRAN_DATE,NET_AMT ,NET_AMT-TAX_AMT AS ASSESABLE_VALUE,SITE_CODE__DLV, "
+ "NVL((SELECT SUM(TAX_AMT) FROM TAXTRAN WHERE TRAN_ID=I.TRAN_ID "
+ "AND TAX_CODE IN (SELECT TAX_CODE FROM TAX WHERE TAX_TYPE ='I') AND TAX_PERC > 0 AND TAX_AMT > 0),0) AS IGST_AMT, "
+ "NVL((SELECT SUM(TAX_AMT) FROM TAXTRAN WHERE TRAN_ID=I.TRAN_ID "
+ "AND TAX_CODE IN (SELECT TAX_CODE FROM TAX WHERE TAX_TYPE ='H') AND TAX_PERC > 0 AND TAX_AMT > 0),0) AS CGST_AMT, "
+ "NVL((SELECT SUM(TAX_AMT) FROM TAXTRAN WHERE TRAN_ID=I.TRAN_ID "
+ "AND TAX_CODE IN (SELECT TAX_CODE FROM TAX WHERE TAX_TYPE ='G') AND TAX_PERC > 0 AND TAX_AMT > 0),0) AS SGST_AMT, "
+ "NVL((SELECT SUM(TAX_AMT) FROM TAXTRAN WHERE TRAN_ID=I.TRAN_ID "
+ "AND TAX_CODE IN (SELECT TAX_CODE FROM TAX WHERE TAX_TYPE ='J')AND TAX_PERC > 0 AND TAX_AMT > 0),0) AS CESS_AMT"
+ ",NVL((SELECT SUM(TAX_AMT) FROM TAXTRAN WHERE TRAN_ID=I.TRAN_ID "
+ "AND TAX_CODE IN (SELECT TAX_CODE FROM TAX WHERE TAX_TYPE ='C') AND TAX_PERC > 0 AND TAX_AMT > 0),0) AS OTHCHAR_AMT "
+ "FROM DISTORD_ISS I WHERE TRAN_ID= ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
if (rs.next()) {
tranDate = rs.getDate("TRAN_DATE");
totAmt = rs.getDouble("NET_AMT");
assAmt = rs.getDouble("ASSESABLE_VALUE");
siteCodeDlv = rs.getString("SITE_CODE__DLV");
igst = rs.getDouble("IGST_AMT");
cgst = rs.getDouble("CGST_AMT");
sgst = rs.getDouble("SGST_AMT");
cess = rs.getDouble("CESS_AMT");
othAmt = rs.getDouble("OTHCHAR_AMT");
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
tempObj = new JSONObject();
{
tempObj.put("Typ", "INV");
tempObj.put("No", refNo);
tempObj.put("Dt", tranDate);
}
jsonObjInvoice.put("DocDtls", tempObj);
detailMap = getSiteDetails(siteCode, conn);
trdNm = (String) detailMap.get("DESCR");
flNo = (String) detailMap.get("ADD2");
loc = (String) detailMap.get("ADD1");
dst = (String) detailMap.get("CITY");
pin = (long) detailMap.get("PIN");
stcd = (int) detailMap.get("STATE_CODE");
ph = (long) detailMap.get("TELE1");
em = (String) detailMap.get("EMAIL_ADDR");
if( gstin.trim().length() == 0)
{
printLog(refNo,refSer, "GSTIN number not defined in Site Registration master for this site: "+siteCode,"ERROR");
continue;
}
if( trdNm.trim().length() == 0)
{
printLog(refNo,refSer, "Site description is blank "+siteCode,"ERROR");
continue;
}
if( loc.trim().length() == 0)
{
printLog(refNo,refSer, "Site address is not defined "+siteCode,"ERROR");
continue;
}
if(pin == 0)
{
printLog(refNo,refSer, "Pin code is not defined "+siteCode,"ERROR");
continue;
}
if(stcd == 0)
{
printLog(refNo,refSer, "State code is not defined in State master for this site: "+siteCode,"ERROR");
continue;
}
tempObj = new JSONObject();
{
tempObj.put("Gstin",gstin);
tempObj.put("TrdNm", trdNm);
tempObj.put("Bno", "");
tempObj.put("Bnm", "");
tempObj.put("Flno", flNo);
tempObj.put("Loc", loc);
tempObj.put("Dst", dst);
tempObj.put("Pin", pin);
tempObj.put("Stcd", stcd);
if(ph > 0)
{
tempObj.put("Ph", ph);
}
if(em.trim().length() > 0)
{
tempObj.put("Em", em);
}
}
jsonObjInvoice.put("SellerDtls", tempObj);
jsonObjInvoice.put("ShipDtls", tempObj);
detailMap = getSiteDetails(siteCodeDlv, conn);
trdNm = (String) detailMap.get("DESCR");
flNo = (String) detailMap.get("ADD2");
loc = (String) detailMap.get("ADD1");
dst = (String) detailMap.get("CITY");
pin = (long) detailMap.get("PIN");
stcd = (int) detailMap.get("STATE_CODE");
ph = (long) detailMap.get("TELE1");
em = (String) detailMap.get("EMAIL_ADDR");
sql="SELECT REG_NO FROM SITEREGNO WHERE SITE_CODE= ? AND ref_code='GSTIN_NO' ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCodeDlv);
rs = pstmt.executeQuery();
if(rs.next())
{
siteDlvGstin = rs.getString("REG_NO");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs!=null)
{
rs.close();
rs = null;
}
if( siteDlvGstin.trim().length() == 0)
{
printLog(refNo,refSer, "GSTIN number not defined in Site Registration master for this site: "+siteCodeDlv,"ERROR");
continue;
}
if( trdNm.trim().length() == 0)
{
printLog(refNo,refSer, "Site description is blank "+siteCodeDlv,"ERROR");
continue;
}
if( loc.trim().length() == 0)
{
printLog(refNo,refSer, "Site address is not defined "+siteCodeDlv,"ERROR");
continue;
}
if(pin == 0)
{
printLog(refNo,refSer, "Pin code is not defined "+siteCodeDlv,"ERROR");
continue;
}
if(stcd == 0)
{
printLog(refNo,refSer, "State code is not defined in State master for this site: "+siteCodeDlv,"ERROR");
continue;
}
//System.out.println("CUSTCODE============= ");
tempObj = new JSONObject();
{
tempObj.put("Gstin",siteDlvGstin);
tempObj.put("TrdNm", trdNm);
tempObj.put("Bno", "");
tempObj.put("Bnm", "");
tempObj.put("Flno", flNo);
tempObj.put("Loc", loc);
tempObj.put("Dst", dst);
tempObj.put("Pin", pin);
tempObj.put("Stcd", stcd);
if(ph > 0)
{
tempObj.put("Ph", ph);
}
if(em.trim().length() > 0)
{
tempObj.put("Em", em);
}
}
jsonObjInvoice.put("BuyerDtls", tempObj);
jsonObjInvoice.put("DispDtls", tempObj);
tempObj = new JSONObject();
{
tempObj.put("AssVal",assAmt);
tempObj.put("SgstVal", sgst);
tempObj.put("CgstVal", cgst);
tempObj.put("IgstVal",igst);
tempObj.put("CesVal", cess);
tempObj.put("StCesVal", 0);
tempObj.put("CesNonAdVal", 0);
tempObj.put("Disc", discAmt);
tempObj.put("OthChrg", othAmt);
tempObj.put("TotInvVal", totAmt);
}
jsonObjInvoice.put("ValDtls", tempObj);
unitList = new ArrayList<String>();
unitList= unitVal();
itemDetails=new JSONArray();
System.out.println("JSONArray ");
sql = "SELECT it.ITEM_CODE as ITEM_CODE ,it.line_no AS LINE_NO, (it.QUANTITY * it.RATE) as INV_AMT,"
+ "AMOUNT-DISC_AMT as ASS_AMT,it.DISC_AMT AS DISCOUNT, "
+ "nvl((select tax_amt from taxtran where tran_id=it.tran_id and trim(line_no)=trim(it.line_no) "
+ "and tax_code in (select tax_code from tax where tax_type ='I') and tax_perc > 0 and tax_amt > 0),0) as IGST_AMT, "
+ "nvl((select tax_amt from taxtran where tran_id=it.tran_id and trim(line_no)=trim(it.line_no) "
+ "and tax_code in (select tax_code from tax where tax_type ='H') and tax_perc > 0 and tax_amt > 0),0) as CGST_AMT, "
+ "nvl((select tax_amt from taxtran where tran_id=it.tran_id and trim(line_no)=trim(it.line_no) "
+ "and tax_code in (select tax_code from tax where tax_type ='G') and tax_perc > 0 and tax_amt > 0),0) as SGST_AMT, "
+ "nvl((select tax_amt from taxtran where tran_id=it.tran_id and trim(line_no)=it.line_no "
+ "and tax_code in (select tax_code from tax where tax_type ='J') and tax_perc > 0 and tax_amt > 0),0) as CESS_AMT, "
+ "nvl((select tax_amt from taxtran where tran_id=it.tran_id and trim(line_no)=it.line_no "
+ "and tax_code in (select tax_code from tax where tax_type ='C') and tax_perc > 0 and tax_amt > 0),0) as OTHCHAR_AMT, "
+ "(SELECT CASE WHEN udf_str2 IS NULL THEN 'OTH' ELSE udf_str2 END AS Unit FROM uom WHERE unit=it.unit ) AS UNIT, "
+ "(it.QUANTITY) AS QUANTITY, it.RATE AS RATE, item.hsn_no AS HSN_CODE, item.DESCR as ITEM_DESC,"
+ "it.LOT_NO as LOT_NO, it.EXP_DATE as EXP_DATE, it.MFG_DATE as MFG_DATE, it.NET_AMT as TOT_ITEM_VAL "
+ "FROM distord_issdet it, item WHERE item.item_code= it.item_code AND IT.TRAN_ID = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, refNo);
rs = pstmt.executeQuery();
cnt=0;
while (rs.next())
{
itemCode = rs.getString("ITEM_CODE");
itemDesc = rs.getString("ITEM_DESC");
hsn = rs.getString("HSN_CODE");
lotNo = rs.getString("LOT_NO");
lineNo = rs.getInt("LINE_NO");
totItemVal = rs.getDouble("TOT_ITEM_VAL");
assAmt = rs.getDouble("ASS_AMT");
unit = checkNullandTrim(rs.getString("UNIT"));
igst = rs.getDouble("IGST_AMT");
cgst = rs.getDouble("CGST_AMT");
sgst = rs.getDouble("SGST_AMT");
cess = rs.getDouble("CESS_AMT");
othAmt = rs.getDouble("OTHCHAR_AMT");
discAmt = rs.getDouble("DISCOUNT");
rate = rs.getDouble("RATE");
quantity = rs.getDouble("QUANTITY");
invAmt = rs.getDouble("INV_AMT");
expDate = rs.getDate("EXP_DATE");
mfgDate = rs.getDate("MFG_DATE");
if(hsn == null || hsn.trim().length() == 0)
{
printLog(refNo,refSer, "HSN number is not defined in item master for this item: "+itemCode,"ERROR");
cnt++;
break;
}
if(!unitList.contains(unit))
{
printLog(refNo,refSer, "Unit is not match with e-invoicing unit list " +unit,"ERROR");
cnt++;
break;
}
tempObj = new JSONObject();
{
tempObj.put("PrdNm",itemCode);
tempObj.put("PrdDesc", itemDesc);
tempObj.put("HsnCd", hsn);
tempObj.put("Barcde","");
tempObj.put("Qty", quantity);
tempObj.put("FreeQty", 0);
tempObj.put("Unit", unit);
tempObj.put("UnitPrice", rate);
tempObj.put("TotAmt", invAmt);
tempObj.put("Discount", discAmt);
tempObj.put("OthChrg", othAmt);
tempObj.put("AssAmt",assAmt);
tempObj.put("SgstRt", sgst);
tempObj.put("CgstRt", cgst);
tempObj.put("IgstRt", igst);
tempObj.put("CesRt", cess);
tempObj.put("CesNonAdval", 0);
tempObj.put("StateCes", 0);
tempObj.put("TotItemVal", totItemVal);
tempObj1 = new JSONObject();
{
tempObj1.put("Nm", lotNo);
tempObj1.put("ExpDt", expDate);
tempObj1.put("WrDt", mfgDate);
}
tempObj.put("BchDtls", tempObj1);
}
itemDetails.put(tempObj);
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
if(cnt >0)
{
continue;
}
}
jsonObjInvoice.put("ItemList", itemDetails); jsonObjInvoice.put("ItemList", itemDetails);
...@@ -1571,15 +1970,35 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1571,15 +1970,35 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
System.out.println("IRNjson :" + gstIRNObj.toString()); System.out.println("IRNjson :" + gstIRNObj.toString());
irn=gstIRNObj.getString("Irn"); irn=gstIRNObj.getString("Irn");
ackNo=gstIRNObj.getString("AckNo");
ackDateStr=gstIRNObj.getString("AckDt");
ackDate=Timestamp.valueOf(ackDateStr);
qrCode = gstIRNObj.getString("SignedQRCode");
ByteArrayInputStream byteArrayIn = new ByteArrayInputStream(qrCode.getBytes());
sql = " insert into gst_ir_info (tran_date,tran_type,ref_ser,ref_id,ack_no,ack_date,ir_no,reg_stat,qr_code)" +
" values (?,?,?,?,?,?,?,?,?) ";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, currDate);
pstmt.setString(2, "R");
pstmt.setString(3, refSer);
pstmt.setString(4, refNo);
pstmt.setString(5, ackNo);
pstmt.setTimestamp(6,ackDate);
pstmt.setString(7, irn);
pstmt.setString(8, "1");
pstmt.setBinaryStream(9, byteArrayIn, byteArrayIn.available());
/*Blob blob =rs.getBlob(1);
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);
System.out.println("---------s-["+s+"]"); */
if("S-INV".equalsIgnoreCase(refSer)) if("S-INV".equalsIgnoreCase(refSer))
{ {
sql = "update invoice set GST_IR_NO=? where invoice_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, irn);
pstmt.setString(2, refNo);
cnt= pstmt.executeUpdate(); cnt= pstmt.executeUpdate();
if(cnt > 0) if(cnt > 0)
{ {
...@@ -1595,14 +2014,9 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1595,14 +2014,9 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
} }
} }
else if("CRNRCP".equalsIgnoreCase(refSer) || "DRNRCP".equalsIgnoreCase(refSer))
{ {
sql = "update drcr_rcp set GST_IR_NO=? where tran_id = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, irn);
pstmt.setString(2, refNo);
cnt= pstmt.executeUpdate(); cnt= pstmt.executeUpdate();
if(cnt > 0) if(cnt > 0)
{ {
...@@ -1623,6 +2037,25 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1623,6 +2037,25 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
pstmt.close(); pstmt.close();
pstmt = null; pstmt = null;
} }
}
if("D-ISS".equalsIgnoreCase(refSer))
{
cnt= pstmt.executeUpdate();
if(cnt > 0)
{
printLog(refNo,refSer, "IRN successful for Distribution issue -"+refNo,"SUCCESS");
}
else
{
printLog(refNo,refSer, "Tran ID not found in Database " ,"ERROR");
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} }
} }
else else
...@@ -1630,6 +2063,22 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1630,6 +2063,22 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
arrObj = object.getJSONArray("ErrorDetails"); arrObj = object.getJSONArray("ErrorDetails");
// System.out.println("ErrorDetails-------"+arrObj.toString()); // System.out.println("ErrorDetails-------"+arrObj.toString());
printLog(refNo,refSer,"Response: "+ arrObj.toString() ,"ERROR"); printLog(refNo,refSer,"Response: "+ arrObj.toString() ,"ERROR");
sql = " insert into gst_ir_info (tran_date,tran_type,ref_ser,ref_id,reg_stat)" +
" values (?,?,?,?,?) ";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, currDate);
pstmt.setString(2, "R");
pstmt.setString(3, refSer);
pstmt.setString(4, refNo);
pstmt.setString(5, "0");
pstmt.executeUpdate();
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} }
} }
...@@ -1876,6 +2325,10 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1876,6 +2325,10 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
{ {
fileWriter.write(strDate+" "+"["+text+"] "+msg); fileWriter.write(strDate+" "+"["+text+"] "+msg);
} }
if("D-ISS".equalsIgnoreCase(refSer))
{
fileWriter.write(strDate+" "+"["+text+"] "+msg);
}
} }
if("ERROR".equalsIgnoreCase(text)) if("ERROR".equalsIgnoreCase(text))
...@@ -1892,7 +2345,10 @@ public class EInvoiceIRNGenPrc extends ProcessEJB { ...@@ -1892,7 +2345,10 @@ public class EInvoiceIRNGenPrc extends ProcessEJB {
{ {
fileWriter.write(strDate+" "+"["+text+"] "+"Debit note:"+refNo+"-"+" "+msg); fileWriter.write(strDate+" "+"["+text+"] "+"Debit note:"+refNo+"-"+" "+msg);
} }
if("D-ISS".equalsIgnoreCase(refSer))
{
fileWriter.write(strDate+" "+"["+text+"] "+"Distribution issue:"+refNo+"-"+" "+msg);
}
} }
} }
catch (Exception ex) catch (Exception ex)
......
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