Commit 7c32dd37 authored by ssalve's avatar ssalve

commited updated code on 16AUG2017


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106627 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 645e523a
......@@ -4,47 +4,63 @@
package ibase.webitm.ejb.gst;
import ibase.system.config.AppConnectParm;
import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.ITMUploadFileRemote;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.TransIDGenerator;
import ibase.webitm.ejb.fin.FinCommon;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Currency;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
import net.sf.saxon.functions.CurrentDateTime;
import javax.naming.InitialContext;
import jxl.Sheet;
import jxl.Workbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class GSTUploadExcelTemplate extends ValidatorEJB
{
E12GenericUtility genericUtility = new E12GenericUtility();
public String readExcelfile(Workbook workbook, UserInfoBean userInfo) throws ITMException, SQLException //Read Uploaded Excel Sheet and Insert Data in to Gst Tables..
String glbPeriodeCode = "";//Only for Nil Rates
String glbDocDate = "";//Only for Nil Rates
public String readExcelfile(Workbook workbook, UserInfoBean userInfo,File DUMP_DIR,String fileName,String objName) throws ITMException, SQLException //Read Uploaded Excel Sheet and Insert Data in to Gst Tables..
, IOException
{
Connection conn=null;
InitialContext ctx = null;
ResultSet rs = null;
PreparedStatement stmt = null;
Boolean isError = false;
String message="";
boolean isError = false,isExcelDriver=false,isRetainPkValue=false,isIntractive=false;
String message="",responseXML="";
HSSFWorkbook outputWorkbook = new HSSFWorkbook();
try
{
conn = getConnection();
outputWorkbook=createXlsShite( outputWorkbook,objName);
int noOfSheet = workbook.getNumberOfSheets();
String[] sheetName = workbook.getSheetNames();
for (int wbcnt = 0; wbcnt < noOfSheet; wbcnt++)
......@@ -72,7 +88,7 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
for (int column = 0; column < noOfColumns; column++)
{
String testData = sheet.getCell(column, row).getContents();
if(column<=7) //Read Header Data From GSt Excel Sheet .......
if(column<=8) //Read Header Data From GSt Excel Sheet .......
{
if(row==1)
{
......@@ -92,7 +108,7 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
eachInvoiceDataHMap.put(hdrDetColumnNameList.get(column), hdrData2);
}
}
else if(column>7) // Read Detail Data From GSt Excel Sheet .......
else if(column>8) // Read Detail Data From GSt Excel Sheet .......
{
if(row==1)
{
......@@ -130,7 +146,24 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
}
}
System.out.println("b2bInvoicesHMap["+b2bInvoicesHMap+"]");
insertsql(b2bInvoicesHMap, userInfo,"b2b");
outputWorkbook= insertIntoXlsShit(b2bInvoicesHMap, outputWorkbook, userInfo,eachSheetName);
//workbook = generateExcelTemplate1( workbook);
// xmlFile = covertToXML(b2bInvoicesHMap,userInfo,"b2b","root");
// System.out.println("Result of converted map to xml :"+xmlFile);
/* String fileInfoArr []= filewrite( objName,xmlFile,fileName,DUMP_DIR,userInfo);
System.out.println("fileInfoArr" +fileInfoArr);
System.out.println("userInfo :" +userInfo);
System.out.println("DUMP_DIR :" +DUMP_DIR);
System.out.println("DUMP_DIR :" +CommonConstants.APPLICATION_CONTEXT);
System.out.println("isExcelDriver :" +isExcelDriver);
ctx=getInitialContext();
ITMUploadFileRemote validation = (ibase.webitm.ejb.ITMUploadFileRemote) ctx.lookup("ibase/ITMUploadFileEJB/remote");
responseXML = validation.insertFileData(fileInfoArr , userInfo , DUMP_DIR , CommonConstants.APPLICATION_CONTEXT, "", isExcelDriver, isRetainPkValue);
System.out.println("responseXML" +responseXML);*/
//insertsql(b2bInvoicesHMap, userInfo,"b2b");
}
//Read And Insert Data For B2C
if("b2c".equalsIgnoreCase(eachSheetName)) // Read Sheet b2cl and Insert Data INTO GST Table....
......@@ -144,7 +177,7 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
for (int column = 0; column < noOfColumns; column++)
{
String testData = sheet.getCell(column, row).getContents();
if(column<=4) //Read Header Data From Gst Excel Sheet .......
if(column<=5) //Read Header Data From Gst Excel Sheet .......
{
if(row==1)
{
......@@ -157,14 +190,14 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
{
String hdrData2 = sheet.getCell(column, row).getContents();
System.out.println("HDR DATA :["+hdrData2+"]");
if(column==0)
if(column==0)//Primary Key for data insert
{
invoiceId = hdrData2;
}
eachInvoiceDataHMap.put(hdrDetColumnNameList.get(column), hdrData2);
}
}
else if(column>4) //Read Detail Data From Gst Excel Sheet .......
else if(column>5) //Read Detail Data From Gst Excel Sheet .......
{
if(row==1)
{
......@@ -203,7 +236,8 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
}
}
System.out.println("b2bInvoicesHMap["+b2bInvoicesHMap+"]");
insertsql( b2bInvoicesHMap, userInfo,"b2c");
//insertsql( b2bInvoicesHMap, userInfo,"b2c");
outputWorkbook= insertIntoXlsShit(b2bInvoicesHMap, outputWorkbook, userInfo,eachSheetName);
}
//Read And Insert Data For CDN
......@@ -218,7 +252,7 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
for (int column = 0;column < noOfColumns; column++)
{
String testData = sheet.getCell(column, row).getContents();
if(column<=6) //Read Header Data From Gst Excel Sheet .......
if(column<=9) //Read Header Data From Gst Excel Sheet .......
{
if(row==1)
{
......@@ -238,9 +272,9 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
eachInvoiceDataHMap.put(hdrDetColumnNameList.get(column), hdrData2);
}
}
else if(column>6) //Read Detail Data From Gst Excel Sheet .......
else if(column>9) //Read Detail Data From Gst Excel Sheet .......
{
if(row==1)
if(row==1)//Primary key for data insert.
{
String dtlData = sheet.getCell(column, row).getContents();
//System.out.println("Table Column field of Detail: " +dtlData +j + " "+i);
......@@ -276,7 +310,8 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
}
}
System.out.println("b2bInvoicesHMap["+b2bInvoicesHMap+"]");
insertsql( b2bInvoicesHMap, userInfo,"cdn");
//insertsql( b2bInvoicesHMap, userInfo,"cdn");
outputWorkbook= insertIntoXlsShit(b2bInvoicesHMap, outputWorkbook, userInfo,eachSheetName);
}
//Read And Insert Data For Export
......@@ -348,7 +383,8 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
}
}
System.out.println("b2bInvoicesHMap["+b2bInvoicesHMap+"]");
insertsql( b2bInvoicesHMap, userInfo,"exp");
//( b2bInvoicesHMap, userInfo,"exp");
outputWorkbook= insertIntoXlsShit(b2bInvoicesHMap, outputWorkbook, userInfo,eachSheetName);
}
//Read And Insert Data For ADVANCE
if("advance".equalsIgnoreCase(eachSheetName))
......@@ -404,14 +440,13 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
detailDataList.add(eachDetailHMap);
eachInvoiceDataHMap.put("detailData", detailDataList);
b2bInvoicesHMap.put(Integer.toString(invoiceId), eachInvoiceDataHMap);
}
invoiceId++;
}
System.out.println("b2bInvoicesHMap["+b2bInvoicesHMap+"]");
insertsql( b2bInvoicesHMap, userInfo,"advance");
//insertsql( b2bInvoicesHMap, userInfo,"advance");
outputWorkbook= insertIntoXlsShit(b2bInvoicesHMap, outputWorkbook, userInfo,eachSheetName);
}
//Read And Insert Data For NIL
if("nil".equalsIgnoreCase(eachSheetName))
{
......@@ -442,10 +477,47 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
if(row>4){break;}
}
System.out.println("b2bInvoicesHMap["+b2bInvoicesHMap+"]");
insertsql( b2bInvoicesHMap, userInfo,"nil");
//insertsql( b2bInvoicesHMap, userInfo,"nil");
// outputWorkbook = insertIntoXlsShit(b2bInvoicesHMap ,outputWorkbook,userInfo,sheetType);
outputWorkbook= insertIntoXlsShit(b2bInvoicesHMap, outputWorkbook, userInfo,eachSheetName);
}
}
message="Excel sheet read Successfully not uploaded";
String XslfileName= fileName.split("\\.")[0];
XslfileName = XslfileName+".xls";
System.out.println("XslfileName :"+XslfileName);
String newFileName = System.currentTimeMillis() + "_" + userInfo.getLoginCode() + "_" + XslfileName;
System.out.println("newFileName :"+newFileName);
System.out.println("/home/base/GST_sales_Template.xls");
FileOutputStream fileOut = new FileOutputStream(DUMP_DIR + File.separator + newFileName );
outputWorkbook.write(fileOut);
fileOut.flush();
fileOut.close();
String [] fileInfoArr = new String[7];
fileInfoArr[0] = String.valueOf(isIntractive);
fileInfoArr[1] = newFileName;
System.out.println("newFileName" +fileInfoArr[1]);
fileInfoArr[2] = objName;
System.out.println("objName" +fileInfoArr[2]);
fileInfoArr[3] = "";
System.out.println("XslfileName" +fileInfoArr[3]);
fileInfoArr[4] = "";
fileInfoArr[5] = String.valueOf(isExcelDriver);
fileInfoArr[6] = String.valueOf(isRetainPkValue);
System.out.println("fileInfoArr" +fileInfoArr);
System.out.println("userInfo :" +userInfo);
System.out.println("DUMP_DIR :" +DUMP_DIR);
System.out.println("ibaseer :" +CommonConstants.APPLICATION_CONTEXT);
System.out.println("isExcelDriver :" +isExcelDriver);
ctx=getInitialContext();
ITMUploadFileRemote validation = (ibase.webitm.ejb.ITMUploadFileRemote) ctx.lookup("ibase/ITMUploadFileEJB/remote");
responseXML = validation.insertFileData(fileInfoArr , userInfo , DUMP_DIR , CommonConstants.APPLICATION_CONTEXT, "", isExcelDriver, isRetainPkValue);
System.out.println("responseXML" +responseXML);
System.out.println("finallllllllll :");
/* message="Excel sheet read Successfully not uploaded";
*
*/
}
catch(Exception e)
{
......@@ -470,52 +542,97 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
if(rs != null){rs.close();rs = null;}
if(conn != null){conn.close();conn = null;}
}
return message;
return responseXML;
}
public String insertsql(HashMap<String, HashMap<String, Object>> b2bInvoicesHMap,UserInfoBean userInfo,String sheetType)throws Exception , SQLException
{ FinCommon finCommon = null;
finCommon = new FinCommon();
System.out.println("Inside Insert SQL :");
private HSSFWorkbook createXlsShite( HSSFWorkbook outputWorkbook, String objName)
{
System.out.println("inside createXlsShite");
HSSFSheet shit = outputWorkbook.createSheet("metadata");
HSSFRow row = shit.createRow((short)0);
row.createCell(0).setCellValue("obj_name");
row.createCell(1).setCellValue("pk_name");
HSSFSheet shit2 = outputWorkbook.getSheet("metadata");
HSSFRow row2 = shit2.createRow((short)1);
row2.createCell(0).setCellValue(objName);
row2.createCell(1).setCellValue("tran_id");
final String[] titleshdr =
{"tran_id","tran_date","tran_id__ref","site_code","prd_code","rec_type","tran_type","cust_code","cust_name","submission_type","doc_checksum","doc_type","doc_no","doc_date","amount","reverse_chrg","lr_no","lr_date","reas_code","ref_id__inv","ref_date__inv","prov_assmnt","order_no","order_date","remarks","submit_status","submit_date","add_user","add_date","add_term","chg_user","chg_date","chg_term","tax_reg_no","name","reco_status","ecom_reg_no","ref_ser","gst_code_state","gst_type","ref_id"};
final String[] titlesdet ={"tran_id ", "line_no ","status"," sr_no__old","line_type","gs_code","taxable_amt","igst_perc","igst_amt","cgst_perc","cgst_amt","sgst_perc","sgst_amt","gs_descr","unit","quantity","supply_type","cess_perc","cess_amt","remarks","itc_type","itc_igst","itc_cgst","itc_sgst","itc_cess","gst_rate"};
HSSFSheet sheet = outputWorkbook.createSheet("HeaderShit");
HSSFRow rowheader = sheet.createRow((short)0);
for(int cellCnt=0;cellCnt<titleshdr.length;cellCnt++)
{
rowheader.createCell(cellCnt).setCellValue(titleshdr[cellCnt]);
}
HSSFSheet sheet1 = outputWorkbook.createSheet("DetailShit");
HSSFRow rowdetail = sheet1.createRow((short)0);
for(int cellCnt=0;cellCnt<titlesdet.length;cellCnt++)
{
rowdetail.createCell(cellCnt).setCellValue(titlesdet[cellCnt]);
}
return outputWorkbook;
}
private HSSFWorkbook insertIntoXlsShit(HashMap<String, HashMap<String, Object>> b2bInvoicesHMap, HSSFWorkbook outputWorkbook,UserInfoBean userInfo,String eachSheetName) throws ITMException
{
System.out.println("inside insertIntoXlsShit");
FinCommon finCommon = new FinCommon();
StringBuffer valueXmlString = new StringBuffer();
Connection conn=null;
ResultSet rs = null;String headersql="",detailSql="";
Boolean isError = false,isWithPay=false;
PreparedStatement pstmt=null , pstmt1=null;
String taxRegNo="",refIdInv="",refDateInv="",gstCode="",gstCodeAct="",reverseChrg="",document="",documentAct="",ecomRegNo="",transactionId="",siteCode="";
String taxRegNo="",refIdInv="",refDateInv="",gstCode="",gstCodeAct="",reverseChrg="",document="",documentAct="",ecomRegNo="",siteCode="";
String lineNo="",provAssmnt="",ordNo="",subStatus="",addUser="",addTerm="",statusDet="",srnoOldDet="",lineTypeDet="",gscodeDet="";
String subDate="",chgUser="",chgTerm="",chgDate="",taxableamtDet="",igstpercDet="",igstamtDet="",cgstpercDet="",cgstamtDet="",sgstpercDet="";
String docDate = null,lrDate = null,ordDate="",refId="",addDate="",sgstamtDet="",gsdescrDet="",unitDet="",quantityDet="",supptypeDet="",cesspercDet="",cessamtDet="";
String recType = "",tranType = "",custCode = "",custName = "",subType="",itctypeDet="",itcigstDet="",itccgstDet="",
String docDate = "",lrDate = "",ordDate="",refId="",addDate="",sgstamtDet="",gsdescrDet="",unitDet="",quantityDet="",supptypeDet="",cesspercDet="",cessamtDet="";
String tranType = "",custCode = "",custName = "",subType="",itctypeDet="",itcigstDet="",itccgstDet="",
docCheckSum = "",docNo = "",lrNo = "",reasCode = "",itcsgstDet="",itccessDet="",remarks = "",tranIdRef="",
recoStatus = "",refSer = "",docType = "",remarksDet = "",
gstType = "",tranDate="",sPos="", message="";
int caseCount = 0;
gstType = "",tranDate="",sPos="", message="",prdCodenew="";
String recType = "1",refDateAct="",Name="";
int caseCount = 0,transactionId=1;
double invAmt=0, b2clInvVal=0,gstRate=0;
Timestamp refDateAct = null;
int currentDetilRow=0;
int currentHaderRow=0;
try
{
conn = getConnection();
b2clInvVal = Double.parseDouble(finCommon.getFinparams("999999", "GST_B2CL_INV_VAL", conn));
sPos = getGstStateCode(siteCode,conn);
System.out.println("b2clInvVal :"+b2clInvVal);
for (String key : b2bInvoicesHMap.keySet())
{
{ int val2=1,val=1;
HSSFSheet sheet = outputWorkbook.getSheet("HeaderShit");
currentHaderRow = sheet.getLastRowNum()+1;
HSSFRow rowheader = sheet.createRow((currentHaderRow));//Add Row as per data database column...
HashMap header = (HashMap) b2bInvoicesHMap.get(key);
//HashMap HeraderMap = (HashMap) b2bInvoicesHMap.get(key);
siteCode = userInfo.getSiteCode();
System.out.println("Inside Insert SQL :");
transactionId = generateTranId("w_gstr", siteCode, conn);
System.out.println("GSTTranId ::::::::::::: " + transactionId);
//System.out.println("GSTTranId ::::::::::::: " + transactionId);
//taxRegNo = checkNullandTrim((String) header.get("tax_reg_no"));
taxRegNo = checkNullandTrim((String) header.get("tax_reg_no"));
System.out.println("taxRegNo="+taxRegNo);
custName = checkNullandTrim((String) header.get("cust_name"));
System.out.println("custName b2c="+custName);
Name = checkNullandTrim((String) header.get("name"));
System.out.println("custName="+Name);
refIdInv = checkNullandTrim((String) header.get("ref_id__inv"));
System.out.println("refIdInv="+refIdInv);
refDateInv =checkNullandTrim( (String) header.get("ref_date__inv"));
System.out.println("refDateInv"+refDateInv);
refDateAct = getTimeStamp(refDateInv);
System.out.println("refDateAct="+refDateAct);
//invAmt = Double.parseDouble((String) header.get("amount"));
invAmt = getDouble((String)header.get("amount"));
System.out.println("invAmt="+invAmt);
gstCode = checkNullandTrim((String) header.get("gst_code"));
......@@ -541,30 +658,41 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
gstType = gstType.split("-")[0];
}
docDate = checkNullandTrim((String) header.get("doc_date"));
String prdCodenew= genericUtility.getValidDateString(docDate, genericUtility.getApplDateFormat(), "MMYYYY");
if(docDate!= null && docDate.trim().length() > 0)
{
prdCodenew= genericUtility.getValidDateString(docDate, genericUtility.getApplDateFormat(), "MMYYYY");
glbPeriodeCode = prdCodenew;
glbDocDate = docDate;
System.out.println("prdCodenew" +prdCodenew);
System.out.println("prdCodenew"+prdCodenew);
}
docNo = checkNullandTrim((String) header.get("doc_no"));
reasCode = checkNullandTrim((String) header.get("reas_code"));
lrNo = checkNullandTrim((String) header.get("lr_no"));
lrDate = checkNullandTrim((String) header.get("lr_date"));
ordNo = checkNullandTrim((String) header.get("order_no"));
tranType = checkNullandTrim((String) header.get("tran_type"));
sPos = getGstStateCode(siteCode,conn);
System.out.println("b2clInvVal :"+sPos);
if(header.get("detailData")!= null)
{
ArrayList<HashMap<String, String>> detailAl = (ArrayList<HashMap<String, String>>) header.get("detailData");
detailSql = "insert into gst_data_det(TRAN_ID,LINE_NO,STATUS,SR_NO__OLD,LINE_TYPE,GS_CODE,TAXABLE_AMT,IGST_PERC,IGST_AMT,CGST_PERC,CGST_AMT,SGST_PERC,SGST_AMT,GS_DESCR,UNIT,QUANTITY,SUPPLY_TYPE,CESS_PERC,CESS_AMT,REMARKS,ITC_TYPE,ITC_IGST,ITC_CGST,ITC_SGST,ITC_CESS,GST_RATE) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //Insert INTO GST_DATA_DET Table....
pstmt1 = conn.prepareStatement(detailSql);
for(Iterator<HashMap<String, String>> iter = detailAl.iterator();iter.hasNext();)
{
HSSFSheet sheet1 = outputWorkbook.getSheet("DetailShit");
currentDetilRow = sheet1.getLastRowNum()+1;
HSSFRow rowdetail = sheet1.createRow((currentDetilRow));
HashMap<String, String> detail = iter.next();
lineNo = checkNullandTrim((String) detail.get("line_no"));
System.out.println(" lineNo="+ lineNo);
gscodeDet = checkNullandTrim((String) detail.get("gs_code"));
gsdescrDet = checkNullandTrim((String) detail.get("gs_descr"));
unitDet = checkNullandTrim((String) detail.get("unit"));
// gstRate = Double.parseDouble(detail.get("gst_rate")) ;
//gstRate = Double.parseDouble(detail.get("gst_rate")) ;
gstRate = getDouble((String)detail.get("gst_rate"));
System.out.println(" gstRate="+ gstRate);
if(gstRate <= 0)
......@@ -575,59 +703,67 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
System.out.println(" taxableAmt="+ taxableamtDet);
cessamtDet = checkNullandTrim((String) detail.get("cess_amt"));
System.out.println(" cessAmt="+ cessamtDet);
quantityDet = checkNullandTrim((String) detail.get("quantity"));
System.out.println(" quantityDet="+ quantityDet);
//insert data in to detail sheet....
rowdetail.createCell(0).setCellValue(currentHaderRow);
rowdetail.createCell(1).setCellValue(lineNo);
rowdetail.createCell(2).setCellValue(statusDet);
rowdetail.createCell(3).setCellValue(srnoOldDet);
rowdetail.createCell(4).setCellValue(lineTypeDet);
rowdetail.createCell(5).setCellValue(gscodeDet);
rowdetail.createCell(6).setCellValue(taxableamtDet);
rowdetail.createCell(7).setCellValue(igstpercDet);
rowdetail.createCell(8).setCellValue(igstamtDet);
rowdetail.createCell(9).setCellValue(cgstpercDet);
rowdetail.createCell(10).setCellValue(cgstamtDet);
rowdetail.createCell(11).setCellValue(sgstpercDet);
rowdetail.createCell(12).setCellValue(sgstamtDet);
rowdetail.createCell(13).setCellValue(gsdescrDet);
rowdetail.createCell(14).setCellValue(unitDet);
rowdetail.createCell(15).setCellValue(quantityDet);
rowdetail.createCell(16).setCellValue(supptypeDet);
rowdetail.createCell(17).setCellValue(cesspercDet);
rowdetail.createCell(18).setCellValue(cessamtDet);
rowdetail.createCell(19).setCellValue(remarksDet);
rowdetail.createCell(20).setCellValue(itctypeDet);
rowdetail.createCell(21).setCellValue(itcigstDet);
rowdetail.createCell(22).setCellValue(itccgstDet);
rowdetail.createCell(23).setCellValue(itcsgstDet);
rowdetail.createCell(24).setCellValue(itccessDet);
rowdetail.createCell(25).setCellValue(gstRate);
currentDetilRow++;
pstmt1.setString(1,transactionId);
pstmt1.setString(2,lineNo);
pstmt1.setString(3,statusDet);
pstmt1.setString(4,srnoOldDet);
pstmt1.setString(5,lineTypeDet);
pstmt1.setString(6,gscodeDet);
pstmt1.setString(7,taxableamtDet);
pstmt1.setString(8,igstpercDet);
pstmt1.setString(9,igstamtDet);
pstmt1.setString(10,cgstpercDet);
pstmt1.setString(11,cgstamtDet);
pstmt1.setString(12,sgstpercDet);
pstmt1.setString(13,sgstamtDet);
pstmt1.setString(14,gsdescrDet);
pstmt1.setString(15,unitDet);
pstmt1.setString(16,quantityDet);
pstmt1.setString(17,supptypeDet);
pstmt1.setString(18,cesspercDet);
pstmt1.setString(19,cessamtDet);
pstmt1.setString(20,remarksDet);
pstmt1.setString(21,itctypeDet);
pstmt1.setString(22,itcigstDet);
pstmt1.setString(23,itccgstDet);
pstmt1.setString(24,itcsgstDet);
pstmt1.setString(25,itccessDet);
pstmt1.setDouble(26,gstRate);
pstmt1.addBatch();
pstmt1.clearParameters();
}
}
// Get GST_TYPE by sheetName.
if("b2b".equalsIgnoreCase(sheetType) && "N".equalsIgnoreCase(reverseChrg) )
if("b2b".equalsIgnoreCase(eachSheetName) && "N".equalsIgnoreCase(reverseChrg) )
{
gstType="I";
System.out.println("gstType :" +documentAct);
}
else if("b2b".equalsIgnoreCase(sheetType) && "Y".equalsIgnoreCase(reverseChrg))
else if("b2b".equalsIgnoreCase(eachSheetName) && "Y".equalsIgnoreCase(reverseChrg))
{
gstType="R";
}
else if("b2c".equalsIgnoreCase(sheetType))
else if("b2c".equalsIgnoreCase(eachSheetName))
{
gstType="S";
}
else if("exp".equalsIgnoreCase(sheetType))
else if("exp".equalsIgnoreCase(eachSheetName))
{
gstType="E";
}
else if("nil".equalsIgnoreCase(sheetType))
else if("nil".equalsIgnoreCase(eachSheetName))
{
gstType="L";
docDate = glbDocDate;//For Nil Rated
prdCodenew = glbPeriodeCode;//For Nil Rated
System.out.println("For Nil Rated"+prdCodenew);
}
......@@ -635,40 +771,42 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
{
if( taxRegNo.length() > 0
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& ("".equalsIgnoreCase(ecomRegNo) || ecomRegNo.length() <=0))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct)))
{
tranType = "01";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct)))
{
tranType = "03";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("Z".equalsIgnoreCase(docType) || "".equalsIgnoreCase(docType))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0) && isWithPay)
&& ("Z".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& isWithPay)
{
tranType = "08";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("Z".equalsIgnoreCase(docType) || "".equalsIgnoreCase(docType))
&& ("Z".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0) && !isWithPay)
{
tranType = "09";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("DE".equalsIgnoreCase(docType) || "".equalsIgnoreCase(docType))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0))
&& ("DE".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct)))
{
tranType = "10";
}
}
System.out.println("VAlues of b2c :"+" "+taxRegNo.length()+reverseChrg+ " "+ecomRegNo.length() +" "+sPos +" "+b2clInvVal);
if("R".equalsIgnoreCase(gstType))
{
tranType = "02";
......@@ -677,6 +815,9 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
else if("S".equalsIgnoreCase(gstType))
{
//System.out.println("VAlues of b2c in SSSS :"+" "+taxRegNo.length()+reverseChrg+ " "+ecomRegNo.length() +" "+sPos +" "+b2clInvVal);
if((taxRegNo.length() == 0) //B2CL Inter State and inv amt > 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() == 0)
......@@ -689,7 +830,7 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() > 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt > b2clInvVal))//Should be taken from finParm.
&& (invAmt > b2clInvVal)) //Should be taken from finParm.
{
tranType = "05";
}
......@@ -697,14 +838,14 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
&& "N".equalsIgnoreCase(reverseChrg)
&& (ecomRegNo.length() == 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal))//Should be taken from finParm.
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "11";
}
else if((taxRegNo.length() == 0) //B2CS Inter State with ecommerce opt and inv amt < 250000 && "N".equalsIgnoreCase(reverseCharge)
&& (ecomRegNo.length() > 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal))//Should be taken from finParm.
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "12";
}
......@@ -712,14 +853,14 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() == 0)
&& (sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal))//Should be taken from finParm.
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "13";
}
else if((taxRegNo.length() == 0) //B2CS Intra State with ecommerce opt and inv amt < 250000 && "N".equalsIgnoreCase(reverseCharge)
&& (ecomRegNo.length() > 0)
&& (sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal))//Should be taken from finParm.
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "14";
}
......@@ -744,10 +885,10 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
}
else
{
tranType = "31"; //Credit Note to un registered customer
tranType = "31"; //Credit Note to unregistered customer
}
}
else if("D".equalsIgnoreCase(gstType))//Debite Note to registered customer
else if("D".equalsIgnoreCase(gstType)) //Debite Note to registered customer
{
if( taxRegNo.length() > 0) //Credit Note to unregistered customer
{
......@@ -781,62 +922,49 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
tranType = "44";
}
}
headersql="insert into gst_data_hdr(TRAN_ID,TRAN_DATE,TRAN_ID__REF,SITE_CODE,PRD_CODE,REC_TYPE,TRAN_TYPE,CUST_CODE,CUST_NAME,SUBMISSION_TYPE,DOC_CHECKSUM,DOC_TYPE,DOC_NO,DOC_DATE,AMOUNT,REVERSE_CHRG,LR_NO,LR_DATE,REAS_CODE,REF_ID__INV,REF_DATE__INV,PROV_ASSMNT,ORDER_NO,ORDER_DATE,REMARKS,SUBMIT_STATUS,SUBMIT_DATE,ADD_USER,ADD_DATE,ADD_TERM,CHG_USER,CHG_DATE,CHG_TERM,TAX_REG_NO,RECO_STATUS,ECOM_REG_NO,REF_SER,GST_CODE,GST_TYPE,REF_ID) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(headersql);
System.out.println("PSTMT"+pstmt);
pstmt.setString(1,transactionId);
pstmt.setTimestamp(2,getTimeStamp(tranDate));
pstmt.setString(3,tranIdRef);
pstmt.setString(4,siteCode);
pstmt.setString(5,prdCodenew);
pstmt.setString(6,recType);
pstmt.setString(7,tranType);
pstmt.setString(8,custCode);
pstmt.setString(9,custName);
pstmt.setString(10,subType);
pstmt.setString(11,docCheckSum);
pstmt.setString(12,documentAct);
pstmt.setString(13,docNo); //doc_no
pstmt.setTimestamp(14,getTimeStamp(docDate));
pstmt.setDouble(15,invAmt);
pstmt.setString(16,reverseChrg);
pstmt.setString(17,lrNo);
pstmt.setTimestamp(18,getTimeStamp(lrDate));
pstmt.setString(19,reasCode);
pstmt.setString(20,refIdInv);
pstmt.setTimestamp(21,(refDateAct));
pstmt.setString(22,provAssmnt);
pstmt.setString(23,ordNo);
pstmt.setTimestamp(24,getTimeStamp(ordDate));
pstmt.setString(25,remarks);
pstmt.setString(26,subStatus);
pstmt.setTimestamp(27,getTimeStamp(subDate));
pstmt.setString(28,addUser);
pstmt.setTimestamp(29,getTimeStamp(addDate));
pstmt.setString(30,addTerm);
pstmt.setString(31,chgUser);
pstmt.setTimestamp(32,getTimeStamp(chgDate));
pstmt.setString(33,chgTerm);
pstmt.setString(34,taxRegNo);
pstmt.setString(35,recoStatus);
pstmt.setString(36,ecomRegNo);
pstmt.setString(37,refSer);
pstmt.setString(38,gstCodeAct);
pstmt.setString(39,gstType);
pstmt.setString(40,refId);
caseCount = pstmt.executeUpdate();
pstmt.close(); pstmt = null;
System.out.println("Update Count GSTHDR= "+caseCount);
if(header.get("detailData")!= null)
{
int[] count = pstmt1.executeBatch();
pstmt1.close(); pstmt1 = null;
}
System.out.println("Update Count GSTDET= "+caseCount);
rowheader.createCell(0).setCellValue(currentHaderRow);
rowheader.createCell(1).setCellValue(tranDate);
rowheader.createCell(2).setCellValue(tranIdRef);
rowheader.createCell(3).setCellValue(siteCode);
rowheader.createCell(4).setCellValue(prdCodenew);
rowheader.createCell(5).setCellValue(recType);
rowheader.createCell(6).setCellValue(tranType);
rowheader.createCell(7).setCellValue(custCode);
rowheader.createCell(8).setCellValue(custName);
rowheader.createCell(9).setCellValue(subType);
rowheader.createCell(10).setCellValue(docCheckSum);
rowheader.createCell(11).setCellValue(documentAct);
rowheader.createCell(12).setCellValue(docNo);
rowheader.createCell(13).setCellValue(docDate);
rowheader.createCell(14).setCellValue(invAmt);
rowheader.createCell(15).setCellValue(reverseChrg);
rowheader.createCell(16).setCellValue(lrNo);
rowheader.createCell(17).setCellValue(lrDate);
rowheader.createCell(18).setCellValue(reasCode);
rowheader.createCell(19).setCellValue(refIdInv);
rowheader.createCell(20).setCellValue(refDateInv);
rowheader.createCell(21).setCellValue(provAssmnt);
rowheader.createCell(22).setCellValue(ordNo);
rowheader.createCell(23).setCellValue(ordDate);
rowheader.createCell(24).setCellValue(remarks);
rowheader.createCell(25).setCellValue(subStatus);
rowheader.createCell(26).setCellValue(subDate);
rowheader.createCell(27).setCellValue(addUser);
rowheader.createCell(28).setCellValue(addDate);
rowheader.createCell(29).setCellValue(addTerm);
rowheader.createCell(30).setCellValue(chgUser);
rowheader.createCell(31).setCellValue(chgDate);
rowheader.createCell(32).setCellValue(chgTerm);
rowheader.createCell(33).setCellValue(taxRegNo);
rowheader.createCell(34).setCellValue(Name);
rowheader.createCell(35).setCellValue(recoStatus);
rowheader.createCell(36).setCellValue(ecomRegNo);
rowheader.createCell(37).setCellValue(refSer);
rowheader.createCell(38).setCellValue(gstCodeAct);
rowheader.createCell(39).setCellValue(gstType);
rowheader.createCell(40).setCellValue(refId);
currentHaderRow++;
}
message ="Template Upload Succefully";
}
catch (Exception e)
{
......@@ -846,165 +974,1020 @@ public class GSTUploadExcelTemplate extends ValidatorEJB
}
finally
{
System.out.println("updategst isError="+isError);
if(isError)
{
conn.rollback();
}
else
{
conn.commit();
}
if(pstmt != null){pstmt.close();pstmt = null;}
if(pstmt1 != null){pstmt1.close();pstmt1 = null;}
if(rs != null){rs.close();rs = null;}
if(conn != null){conn.close();conn = null;}
}
return message;
}
private double getDouble(String amount)
{
double result = 0.0;
result = Double.parseDouble((amount==null||amount.equals("")) ? "0" : amount);
return result;
return outputWorkbook;
}
private String getGstStateCode(String siteCode , Connection conn) throws ITMException
{
String pos ="";
String sSQL ="";
PreparedStatement pstmt = null;
ResultSet rs = null;
/*public String insertsql(HashMap<String, HashMap<String, Object>> b2bInvoicesHMap,UserInfoBean userInfo,String sheetType)throws Exception , SQLException
{ FinCommon finCommon = new FinCommon();
System.out.println("Inside Insert SQL :");
Connection conn=null;
ResultSet rs = null;String headersql="",detailSql="";
Boolean isError = false,isWithPay=false;
PreparedStatement pstmt=null , pstmt1=null;
String taxRegNo="",refIdInv="",refDateInv="",gstCode="",gstCodeAct="",reverseChrg="",document="",documentAct="",ecomRegNo="",siteCode="";
String lineNo="",provAssmnt="",ordNo="",subStatus="",addUser="",addTerm="",statusDet="",srnoOldDet="",lineTypeDet="",gscodeDet="";
String subDate="",chgUser="",chgTerm="",chgDate="",taxableamtDet="",igstpercDet="",igstamtDet="",cgstpercDet="",cgstamtDet="",sgstpercDet="";
String docDate = null,lrDate = null,ordDate="",refId="",addDate="",sgstamtDet="",gsdescrDet="",unitDet="",quantityDet="",supptypeDet="",cesspercDet="",cessamtDet="";
String tranType = "",custCode = "",custName = "",subType="",itctypeDet="",itcigstDet="",itccgstDet="",
docCheckSum = "",docNo = "",lrNo = "",reasCode = "",itcsgstDet="",itccessDet="",remarks = "",tranIdRef="",
recoStatus = "",refSer = "",docType = "",remarksDet = "",
gstType = "",tranDate="",sPos="", message="";
String recType = "1";
int caseCount = 0;
double invAmt=0, b2clInvVal=0,gstRate=0;
String refDateAct = "";
try
{
conn = getConnection();
b2clInvVal = Double.parseDouble(finCommon.getFinparams("999999", "GST_B2CL_INV_VAL", conn));
System.out.println("b2clInvVal :"+b2clInvVal);
sSQL = "SELECT ST.GST_CODE FROM TARODEV.SITE S,TARODEV.STATE ST WHERE S.STATE_CODE = ST.STATE_CODE AND S.SITE_CODE = ?";
pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1,siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
pos = rs.getString("GST_CODE");
}
if(pstmt != null)
for (String key : b2bInvoicesHMap.keySet())
{
pstmt.close();
pstmt = null;
}
if(rs != null)
HashMap header = (HashMap) b2bInvoicesHMap.get(key);
//HashMap HeraderMap = (HashMap) b2bInvoicesHMap.get(key);
siteCode = userInfo.getSiteCode();
System.out.println("Inside Insert SQL :");
// transactionId = generateTranId("w_gstr", siteCode, conn);
//System.out.println("GSTTranId ::::::::::::: " + transactionId);
//taxRegNo = checkNullandTrim((String) header.get("tax_reg_no"));
taxRegNo = checkNullandTrim((String) header.get("tax_reg_no"));
System.out.println("taxRegNo="+taxRegNo);
custName = checkNullandTrim((String) header.get("cust_name"));
System.out.println("custName="+custName);
refIdInv = checkNullandTrim((String) header.get("ref_id__inv"));
System.out.println("refIdInv="+refIdInv);
refDateAct =checkNullandTrim( (String) header.get("ref_date__inv"));
System.out.println("refDateInv"+refDateInv);
//refDateAct = getTimeStamp(refDateInv);
System.out.println("refDateAct="+refDateAct);
//invAmt = Double.parseDouble((String) header.get("amount"));
invAmt = getDouble((String)header.get("amount"));
System.out.println("invAmt="+invAmt);
gstCode = checkNullandTrim((String) header.get("gst_code"));
if(gstCode != null && gstCode.trim().length() > 0)
{
rs.close();
rs = null;
}
gstCodeAct = gstCode.substring(0, 2);
}
catch(Exception e)
System.out.println("gstCodeAct="+gstCodeAct);
reverseChrg = checkNullandTrim((String) header.get("reverse_chrg"));
System.out.println("reverseChrg="+reverseChrg);
document = checkNullandTrim((String) header.get("doc_type"));
System.out.println("document="+document);
if(document != null && document.trim().length() > 0)
{
e.printStackTrace();
documentAct = document.split("-")[0];
}
finally
System.out.println("documentAct="+documentAct);
ecomRegNo = checkNullandTrim((String) header.get("ecom_reg_no"));
System.out.println("ecomRegNo="+ecomRegNo);
gstType = checkNullandTrim((String) header.get("gst_type"));
if(gstType != null && gstType.trim().length() > 0)
{
gstType = gstType.split("-")[0];
}
docDate = checkNullandTrim((String) header.get("doc_date"));
String prdCodenew= genericUtility.getValidDateString(docDate, genericUtility.getApplDateFormat(), "MMYYYY");
System.out.println("prdCodenew" +prdCodenew);
System.out.println("prdCodenew"+prdCodenew);
docNo = checkNullandTrim((String) header.get("doc_no"));
reasCode = checkNullandTrim((String) header.get("reas_code"));
lrNo = checkNullandTrim((String) header.get("lr_no"));
lrDate = checkNullandTrim((String) header.get("lr_date"));
ordNo = checkNullandTrim((String) header.get("order_no"));
tranType = checkNullandTrim((String) header.get("tran_type"));
sPos = getGstStateCode(siteCode,conn);
System.out.println("b2clInvVal :"+sPos);
if(header.get("detailData")!= null)
{
ArrayList<HashMap<String, String>> detailAl = (ArrayList<HashMap<String, String>>) header.get("detailData");
detailSql = "insert into gst_data_det(TRAN_ID,LINE_NO,STATUS,SR_NO__OLD,LINE_TYPE,GS_CODE,TAXABLE_AMT,IGST_PERC,IGST_AMT,CGST_PERC,CGST_AMT,SGST_PERC,SGST_AMT,GS_DESCR,UNIT,QUANTITY,SUPPLY_TYPE,CESS_PERC,CESS_AMT,REMARKS,ITC_TYPE,ITC_IGST,ITC_CGST,ITC_SGST,ITC_CESS,GST_RATE) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //Insert INTO GST_DATA_DET Table....
pstmt1 = conn.prepareStatement(detailSql);
for(Iterator<HashMap<String, String>> iter = detailAl.iterator();iter.hasNext();)
{
HashMap<String, String> detail = iter.next();
lineNo = checkNullandTrim((String) detail.get("line_no"));
System.out.println(" lineNo="+ lineNo);
gscodeDet = checkNullandTrim((String) detail.get("gs_code"));
gsdescrDet = checkNullandTrim((String) detail.get("gs_descr"));
unitDet = checkNullandTrim((String) detail.get("unit"));
// gstRate = Double.parseDouble(detail.get("gst_rate")) ;
gstRate = getDouble((String)detail.get("gst_rate"));
System.out.println(" gstRate="+ gstRate);
if(gstRate <= 0)
{
isWithPay = true;
}
taxableamtDet = checkNullandTrim((String) detail.get("taxable_amt"));
System.out.println(" taxableAmt="+ taxableamtDet);
cessamtDet = checkNullandTrim((String) detail.get("cess_amt"));
System.out.println(" cessAmt="+ cessamtDet);
quantityDet = checkNullandTrim((String) detail.get("quantity"));
System.out.println(" quantityDet="+ quantityDet);
//pstmt1.setString(1,transactionId);
pstmt1.setString(2,lineNo);
pstmt1.setString(3,statusDet);
pstmt1.setString(4,srnoOldDet);
pstmt1.setString(5,lineTypeDet);
pstmt1.setString(6,gscodeDet);
pstmt1.setString(7,taxableamtDet);
pstmt1.setString(8,igstpercDet);
pstmt1.setString(9,igstamtDet);
pstmt1.setString(10,cgstpercDet);
pstmt1.setString(11,cgstamtDet);
pstmt1.setString(12,sgstpercDet);
pstmt1.setString(13,sgstamtDet);
pstmt1.setString(14,gsdescrDet);
pstmt1.setString(15,unitDet);
pstmt1.setString(16,quantityDet);
pstmt1.setString(17,supptypeDet);
pstmt1.setString(18,cesspercDet);
pstmt1.setString(19,cessamtDet);
pstmt1.setString(20,remarksDet);
pstmt1.setString(21,itctypeDet);
pstmt1.setString(22,itcigstDet);
pstmt1.setString(23,itccgstDet);
pstmt1.setString(24,itcsgstDet);
pstmt1.setString(25,itccessDet);
pstmt1.setDouble(26,gstRate);
pstmt1.addBatch();
pstmt1.clearParameters();
}
}
// Get GST_TYPE by sheetName.
if("b2b".equalsIgnoreCase(sheetType) && "N".equalsIgnoreCase(reverseChrg) )
{
gstType="I";
}
else if("b2b".equalsIgnoreCase(sheetType) && "Y".equalsIgnoreCase(reverseChrg))
{
gstType="R";
}
else if("b2c".equalsIgnoreCase(sheetType))
{
gstType="S";
}
else if("exp".equalsIgnoreCase(sheetType))
{
gstType="E";
}
else if("nil".equalsIgnoreCase(sheetType))
{
gstType="L";
}
if("I".equalsIgnoreCase(gstType)) //B2B Supplies, with SEZ and deemed exports
{
if( taxRegNo.length() > 0
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& ("".equalsIgnoreCase(ecomRegNo) || ecomRegNo.length() <=0))
{
tranType = "01";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0))
{
tranType = "03";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("Z".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0) && isWithPay)
{
tranType = "08";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("Z".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0) && !isWithPay)
{
tranType = "09";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("DE".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0))
{
tranType = "10";
}
}
System.out.println("VAlues of b2c :"+" "+taxRegNo.length()+reverseChrg+ " "+ecomRegNo.length() +" "+sPos +" "+b2clInvVal);
if("R".equalsIgnoreCase(gstType))
{
tranType = "02";
}
else if("S".equalsIgnoreCase(gstType))
{
//System.out.println("VAlues of b2c in SSSS :"+" "+taxRegNo.length()+reverseChrg+ " "+ecomRegNo.length() +" "+sPos +" "+b2clInvVal);
if((taxRegNo.length() == 0) //B2CL Inter State and inv amt > 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() == 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt > b2clInvVal))//Should be taken from finParm.
{
tranType = "04";
}
else if((taxRegNo.length() == 0) //B2CL Inter State with ecommerce opt and inv amt > 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() > 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt > b2clInvVal)) //Should be taken from finParm.
{
tranType = "05";
}
else if((taxRegNo.length() == 0) //B2CS Inter State with out ecommerce opt and inv amt < 250000
&& "N".equalsIgnoreCase(reverseChrg)
&& (ecomRegNo.length() == 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "11";
}
else if((taxRegNo.length() == 0) //B2CS Inter State with ecommerce opt and inv amt < 250000 && "N".equalsIgnoreCase(reverseCharge)
&& (ecomRegNo.length() > 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "12";
}
else if((taxRegNo.length() == 0) //B2CS Intra State with out ecommerce opt and inv amt < 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() == 0)
&& (sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "13";
}
else if((taxRegNo.length() == 0) //B2CS Intra State with ecommerce opt and inv amt < 250000 && "N".equalsIgnoreCase(reverseCharge)
&& (ecomRegNo.length() > 0)
&& (sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "14";
}
}
else if("E".equalsIgnoreCase(gstType))
{
if(isWithPay)
{
tranType = "06";
}
else if(!isWithPay)
{
tranType = "07";
}
}
else if("C".equalsIgnoreCase(gstType))
{
if( taxRegNo.length() > 0) //Credit Note to registered customer
{
tranType = "29";
}
else
{
tranType = "31"; //Credit Note to unregistered customer
}
}
else if("D".equalsIgnoreCase(gstType)) //Debite Note to registered customer
{
if( taxRegNo.length() > 0) //Credit Note to unregistered customer
{
tranType = "30";
}
else if( taxRegNo.length() == 0) //Debite Note to unregistered customer
{
tranType = "32";
}
}
else if("A".equalsIgnoreCase(gstType))
{
if(sPos.equalsIgnoreCase(gstType))
{
tranType = "41";
}
else if(!sPos.equalsIgnoreCase(gstType))
{
tranType = "42";
}
}
else if("T".equalsIgnoreCase(gstType))//Advance adjusted
{
if(sPos.equalsIgnoreCase(gstType))
{
tranType = "43";
}
else if(!sPos.equalsIgnoreCase(gstType))
{
tranType = "44";
}
}
headersql="insert into gst_data_hdr(TRAN_ID,TRAN_DATE,TRAN_ID__REF,SITE_CODE,PRD_CODE,REC_TYPE,TRAN_TYPE,CUST_CODE,CUST_NAME,SUBMISSION_TYPE,DOC_CHECKSUM,DOC_TYPE,DOC_NO,DOC_DATE,AMOUNT,REVERSE_CHRG,LR_NO,LR_DATE,REAS_CODE,REF_ID__INV,REF_DATE__INV,PROV_ASSMNT,ORDER_NO,ORDER_DATE,REMARKS,SUBMIT_STATUS,SUBMIT_DATE,ADD_USER,ADD_DATE,ADD_TERM,CHG_USER,CHG_DATE,CHG_TERM,TAX_REG_NO,RECO_STATUS,ECOM_REG_NO,REF_SER,GST_CODE,GST_TYPE,REF_ID) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(headersql);
System.out.println("PSTMT"+pstmt);
//pstmt.setString(1,transactionId);
pstmt.setTimestamp(2,getTimeStamp(tranDate));
pstmt.setString(3,tranIdRef);
pstmt.setString(4,siteCode);
pstmt.setString(5,prdCodenew);
pstmt.setString(6,recType);
pstmt.setString(7,tranType);
pstmt.setString(8,custCode);
pstmt.setString(9,custName);
pstmt.setString(10,subType);
pstmt.setString(11,docCheckSum);
pstmt.setString(12,documentAct);
pstmt.setString(13,docNo); //doc_no
pstmt.setTimestamp(14,getTimeStamp(docDate));
pstmt.setDouble(15,invAmt);
pstmt.setString(16,reverseChrg);
pstmt.setString(17,lrNo);
pstmt.setTimestamp(18,getTimeStamp(lrDate));
pstmt.setString(19,reasCode);
pstmt.setString(20,refIdInv);
pstmt.setTimestamp(21,getTimeStamp(refDateAct));
pstmt.setString(22,provAssmnt);
pstmt.setString(23,ordNo);
pstmt.setTimestamp(24,getTimeStamp(ordDate));
pstmt.setString(25,remarks);
pstmt.setString(26,subStatus);
pstmt.setTimestamp(27,getTimeStamp(subDate));
pstmt.setString(28,addUser);
pstmt.setTimestamp(29,getTimeStamp(addDate));
pstmt.setString(30,addTerm);
pstmt.setString(31,chgUser);
pstmt.setTimestamp(32,getTimeStamp(chgDate));
pstmt.setString(33,chgTerm);
pstmt.setString(34,taxRegNo);
pstmt.setString(35,recoStatus);
pstmt.setString(36,ecomRegNo);
pstmt.setString(37,refSer);
pstmt.setString(38,gstCodeAct);
pstmt.setString(39,gstType);
pstmt.setString(40,refId);
caseCount = pstmt.executeUpdate();
pstmt.close(); pstmt = null;
System.out.println("Update Count GSTHDR= "+caseCount);
if(header.get("detailData")!= null)
{
int[] count = pstmt1.executeBatch();
pstmt1.close(); pstmt1 = null;
}
System.out.println("Update Count GSTDET= "+caseCount);
}
message ="Template Upload Succefully";
}
catch (Exception e)
{
System.out.println("Exception 1::" +headersql+""+ e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
System.out.println("updategst isError="+isError);
if(isError)
{
conn.rollback();
}
else
{
conn.commit();
}
if(pstmt != null){pstmt.close();pstmt = null;}
if(pstmt1 != null){pstmt1.close();pstmt1 = null;}
if(rs != null){rs.close();rs = null;}
if(conn != null){conn.close();conn = null;}
}
return message;
}*/
private double getDouble(String amount)
{
double result = 0.0;
result = Double.parseDouble((amount==null||amount.equals("")) ? "0" : amount);
return result;
}
private String getGstStateCode(String siteCode , Connection conn) throws ITMException
{
String pos ="";
String sSQL ="";
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
sSQL = "SELECT ST.GST_CODE FROM TARODEV.SITE S,TARODEV.STATE ST WHERE S.STATE_CODE = ST.STATE_CODE AND S.SITE_CODE = ?";
pstmt = conn.prepareStatement(sSQL);
pstmt.setString(1,siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
pos = rs.getString("GST_CODE");
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if (rs != null )
{
rs.close();rs = null;
}
if( pstmt != null )
{
pstmt.close();pstmt = null;
}
}
catch( Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
}
return pos;
}
/*public String generateTranId( String windowName, String siteCode, Connection conn )throws Exception
{
System.out.println("windowName inside generateTranId =========>>"+windowName);
System.out.println("siteCode inside generateTranId =========>>"+siteCode);
PreparedStatement pstmt = null;
ResultSet rs = null;
String selSql = "";
String tranId = "";
String tranSer = "";
String keyString = "";
String keyCol = "";
String xmlValues = "";
String paySiteCode = "";
String effectiveDate = "";
java.sql.Timestamp currDate = null;
java.sql.Date effDate = null;
E12GenericUtility genericUtility = new E12GenericUtility();
try
{
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
currDate = new java.sql.Timestamp(System.currentTimeMillis());
String currDateStr = sdfAppl.format(currDate);
selSql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = ? ";
pstmt = conn.prepareStatement(selSql);
pstmt.setString( 1, windowName );
rs = pstmt.executeQuery();
if (rs.next())
{
keyString = rs.getString("KEY_STRING");
keyCol = rs.getString("TRAN_ID_COL");
tranSer = rs.getString("REF_SER");
}
rs.close();rs = null;
pstmt.close();pstmt = null;
System.out.println("keyString :"+keyString);
System.out.println("keyCol :"+keyCol);
System.out.println("tranSer :"+tranSer);
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>" + currDateStr + "</tran_date>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer, keyCol, keyString, conn);
System.out.println("tranId :"+tranId);
}
catch (SQLException ex)
{
System.out.println("Exception 2::" +selSql+ ex.getMessage() + ":");
ex.printStackTrace();throw new ITMException(ex);
}
return tranId;
}*/
private static String checkNullandTrim(String input)
{
if (input==null)
{
input="";
}
// System.out.println("Input" +input);
return input.trim();
}
private Timestamp getTimeStamp(String dateStr) throws ITMException, Exception
{
String dbDateStr = "";
if(dateStr != null && !dateStr.equals(""))
{
dbDateStr =(new E12GenericUtility()).getValidDateTimeString(dateStr, (new E12GenericUtility()).getApplDateTimeFormat(), (new E12GenericUtility()).getDBDateTimeFormat());
return java.sql.Timestamp.valueOf(dbDateStr);
}
else
{
return null;
}
}
public String covertToXML(HashMap<String, HashMap<String, Object>> b2bInvoicesHMap,UserInfoBean userInfo,String sheetType,String root)throws Exception , SQLException
{ String valueXmlString="";
/*
FinCommon finCommon = new FinCommon();
StringBuffer valueXmlString = new StringBuffer();
System.out.println("Inside Insert SQL :");
Connection conn=null;
ResultSet rs = null;String headersql="",detailSql="";
Boolean isError = false,isWithPay=false;
PreparedStatement pstmt=null , pstmt1=null;
String taxRegNo="",refIdInv="",refDateInv="",gstCode="",gstCodeAct="",reverseChrg="",document="",documentAct="",ecomRegNo="",transactionId="",siteCode="";
String lineNo="",provAssmnt="",ordNo="",subStatus="",addUser="",addTerm="",statusDet="",srnoOldDet="",lineTypeDet="",gscodeDet="";
String subDate="",chgUser="",chgTerm="",chgDate="",taxableamtDet="",igstpercDet="",igstamtDet="",cgstpercDet="",cgstamtDet="",sgstpercDet="";
String docDate = null,lrDate = null,ordDate="",refId="",addDate="",sgstamtDet="",gsdescrDet="",unitDet="",quantityDet="",supptypeDet="",cesspercDet="",cessamtDet="";
String tranType = "",custCode = "",custName = "",subType="",itctypeDet="",itcigstDet="",itccgstDet="",
docCheckSum = "",docNo = "",lrNo = "",reasCode = "",itcsgstDet="",itccessDet="",remarks = "",tranIdRef="",
recoStatus = "",refSer = "",docType = "",remarksDet = "",
gstType = "",tranDate="",sPos="", message="";
String recType = "1";
int caseCount = 0;
double invAmt=0, b2clInvVal=0,gstRate=0;
Timestamp refDateAct = null;
try
{
if (rs != null )
conn = getConnection();
b2clInvVal = Double.parseDouble(finCommon.getFinparams("999999", "GST_B2CL_INV_VAL", conn));
System.out.println("b2clInvVal :"+b2clInvVal);
valueXmlString = new StringBuffer("<?xml version=\"1.0\"?><Root><header><editFlag>");
valueXmlString.append("</editFlag></header>");
for (String key : b2bInvoicesHMap.keySet())
{ int val2=1,val=1;
HashMap header = (HashMap) b2bInvoicesHMap.get(key);
//HashMap HeraderMap = (HashMap) b2bInvoicesHMap.get(key);
siteCode = userInfo.getSiteCode();
System.out.println("Inside Insert SQL :");
transactionId = generateTranId("w_gstr", siteCode, conn);
System.out.println("GSTTranId ::::::::::::: " + transactionId);
//taxRegNo = checkNullandTrim((String) header.get("tax_reg_no"));
taxRegNo = checkNullandTrim((String) header.get("tax_reg_no"));
System.out.println("taxRegNo="+taxRegNo);
custName = checkNullandTrim((String) header.get("cust_name"));
System.out.println("custName="+custName);
refIdInv = checkNullandTrim((String) header.get("ref_id__inv"));
System.out.println("refIdInv="+refIdInv);
refDateInv =checkNullandTrim( (String) header.get("ref_date__inv"));
System.out.println("refDateInv"+refDateInv);
refDateAct = getTimeStamp(refDateInv);
System.out.println("refDateAct="+refDateAct);
//invAmt = Double.parseDouble((String) header.get("amount"));
invAmt = getDouble((String)header.get("amount"));
System.out.println("invAmt="+invAmt);
gstCode = checkNullandTrim((String) header.get("gst_code"));
if(gstCode != null && gstCode.trim().length() > 0)
{
gstCodeAct = gstCode.substring(0, 2);
}
System.out.println("gstCodeAct="+gstCodeAct);
reverseChrg = checkNullandTrim((String) header.get("reverse_chrg"));
System.out.println("reverseChrg="+reverseChrg);
document = checkNullandTrim((String) header.get("doc_type"));
System.out.println("document="+document);
if(document != null && document.trim().length() > 0)
{
documentAct = document.split("-")[0];
}
System.out.println("documentAct="+documentAct);
ecomRegNo = checkNullandTrim((String) header.get("ecom_reg_no"));
System.out.println("ecomRegNo="+ecomRegNo);
gstType = checkNullandTrim((String) header.get("gst_type"));
if(gstType != null && gstType.trim().length() > 0)
{
gstType = gstType.split("-")[0];
}
docDate = checkNullandTrim((String) header.get("doc_date"));
String prdCodenew= genericUtility.getValidDateString(docDate, genericUtility.getApplDateFormat(), "MMYYYY");
System.out.println("prdCodenew" +prdCodenew);
System.out.println("prdCodenew"+prdCodenew);
docNo = checkNullandTrim((String) header.get("doc_no"));
reasCode = checkNullandTrim((String) header.get("reas_code"));
lrNo = checkNullandTrim((String) header.get("lr_no"));
lrDate = checkNullandTrim((String) header.get("lr_date"));
ordNo = checkNullandTrim((String) header.get("order_no"));
tranType = checkNullandTrim((String) header.get("tran_type"));
sPos = getGstStateCode(siteCode,conn);
System.out.println("b2clInvVal :"+sPos);
if(header.get("detailData")!= null)
{
ArrayList<HashMap<String, String>> detailAl = (ArrayList<HashMap<String, String>>) header.get("detailData");
for(Iterator<HashMap<String, String>> iter = detailAl.iterator();iter.hasNext();)
{
//int val = 1;
HashMap<String, String> detail = iter.next();
lineNo = checkNullandTrim((String) detail.get("line_no"));
System.out.println(" lineNo="+ lineNo);
gscodeDet = checkNullandTrim((String) detail.get("gs_code"));
gsdescrDet = checkNullandTrim((String) detail.get("gs_descr"));
unitDet = checkNullandTrim((String) detail.get("unit"));
// gstRate = Double.parseDouble(detail.get("gst_rate")) ;
gstRate = getDouble((String)detail.get("gst_rate"));
System.out.println(" gstRate="+ gstRate);
if(gstRate <= 0)
{
isWithPay = true;
}
taxableamtDet = checkNullandTrim((String) detail.get("taxable_amt"));
System.out.println(" taxableAmt="+ taxableamtDet);
cessamtDet = checkNullandTrim((String) detail.get("cess_amt"));
System.out.println(" cessAmt="+ cessamtDet);
valueXmlString.append("<Detail2 dbID='' domID='"+val+"' objContext='1' objName='gstr'>");
valueXmlString.append("<attribute pkNames='gstr:' selected='N' status='O' updateFlag='N' />");
valueXmlString.append("<tran_id>").append("<![CDATA["+transactionId+"]]>").append("</tran_id>");
valueXmlString.append("<line_no>").append("<![CDATA["+lineNo+"]]>").append("</line_no>");
valueXmlString.append("<status>").append("<![CDATA["+statusDet+"]]>").append("</status>");
valueXmlString.append("<sr_no__old>").append("<![CDATA["+srnoOldDet+"]]>").append("</sr_no__old>");
valueXmlString.append("<line_type>").append("<![CDATA["+lineTypeDet+"]]>").append("</line_type>");
valueXmlString.append("<gs_code>").append("<![CDATA["+gscodeDet+"]]>").append("</gs_code>");
valueXmlString.append("<taxable_amt>").append("<![CDATA["+taxableamtDet+"]]>").append("</taxable_amt>");
valueXmlString.append("<igst_perc>").append("<![CDATA["+igstpercDet+"]]>").append("</igst_perc>");
valueXmlString.append("<igst_amt>").append("<![CDATA["+igstamtDet+"]]>").append("</igst_amt>");
valueXmlString.append("<cgst_perc>").append("<![CDATA["+cgstpercDet+"]]>").append("</cgst_perc>");
valueXmlString.append("<cgst_amt>").append("<![CDATA["+cgstamtDet+"]]>").append("</cgst_amt>");
valueXmlString.append("<sgst_perc>").append("<![CDATA["+sgstpercDet+"]]>").append("</sgst_perc>");
valueXmlString.append("<sgst_amt>").append("<![CDATA["+sgstamtDet+"]]>").append("</sgst_amt>");
valueXmlString.append("<gs_descr>").append("<![CDATA["+gsdescrDet+"]]>").append("</gs_descr>");
valueXmlString.append("<unit>").append("<![CDATA["+unitDet+"]]>").append("</unit>");
valueXmlString.append("<quantity>").append("<![CDATA["+quantityDet+"]]>").append("</quantity>");
valueXmlString.append("<supply_type>").append("<![CDATA["+supptypeDet+"]]>").append("</supply_type>");
valueXmlString.append("<cess_perc>").append("<![CDATA["+cesspercDet+"]]>").append("</cess_perc>");
valueXmlString.append("<cess_amt>").append("<![CDATA["+cessamtDet+"]]>").append("</cess_amt>");
valueXmlString.append("<remarks>").append("<![CDATA["+remarksDet+"]]>").append("</remarks>");
valueXmlString.append("<itc_type>").append("<![CDATA["+itctypeDet+"]]>").append("</itc_type>");
valueXmlString.append("<itc_igst>").append("<![CDATA["+itcigstDet+"]]>").append("</itc_igst>");
valueXmlString.append("<itc_cgst>").append("<![CDATA["+itccgstDet+"]]>").append("</itc_cgst>");
valueXmlString.append("<itc_sgst>").append("<![CDATA["+itcsgstDet+"]]>").append("</itc_sgst>");
valueXmlString.append("<itc_cess>").append("<![CDATA["+itccessDet+"]]>").append("</itc_cess>");
valueXmlString.append("<gst_rate>").append("<![CDATA["+gstRate+"]]>").append("</gst_rate>");
valueXmlString.append("</Detail2>");
val++;
}
}
// Get GST_TYPE by sheetName.
if("b2b".equalsIgnoreCase(sheetType) && "N".equalsIgnoreCase(reverseChrg) )
{
rs.close();rs = null;
gstType="I";
}
if( pstmt != null )
else if("b2b".equalsIgnoreCase(sheetType) && "Y".equalsIgnoreCase(reverseChrg))
{
pstmt.close();pstmt = null;
gstType="R";
}
else if("b2c".equalsIgnoreCase(sheetType))
{
gstType="S";
}
catch( Exception e)
else if("exp".equalsIgnoreCase(sheetType))
{
e.printStackTrace();
throw new ITMException(e);
gstType="E";
}
else if("nil".equalsIgnoreCase(sheetType))
{
gstType="L";
}
return pos;
if("I".equalsIgnoreCase(gstType)) //B2B Supplies, with SEZ and deemed exports
{
if( taxRegNo.length() > 0
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& ("".equalsIgnoreCase(ecomRegNo) || ecomRegNo.length() <=0))
{
tranType = "01";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("R".equalsIgnoreCase(documentAct) || "".equalsIgnoreCase(documentAct))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0))
{
tranType = "03";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("Z".equalsIgnoreCase(docType) || "".equalsIgnoreCase(docType))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0) && isWithPay)
{
tranType = "08";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("Z".equalsIgnoreCase(docType) || "".equalsIgnoreCase(docType))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0) && !isWithPay)
{
tranType = "09";
}
else if((taxRegNo.length() > 0)
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& ("DE".equalsIgnoreCase(docType) || "".equalsIgnoreCase(docType))
&& (!"".equalsIgnoreCase(ecomRegNo) && ecomRegNo.length() > 0))
{
tranType = "10";
}
}
System.out.println("VAlues of b2c :"+" "+taxRegNo.length()+reverseChrg+ " "+ecomRegNo.length() +" "+sPos +" "+b2clInvVal);
public String generateTranId( String windowName, String siteCode, Connection conn )throws Exception
if("R".equalsIgnoreCase(gstType))
{
System.out.println("windowName inside generateTranId =========>>"+windowName);
System.out.println("siteCode inside generateTranId =========>>"+siteCode);
PreparedStatement pstmt = null;
ResultSet rs = null;
String selSql = "";
String tranId = "";
String tranSer = "";
String keyString = "";
String keyCol = "";
String xmlValues = "";
String paySiteCode = "";
String effectiveDate = "";
java.sql.Timestamp currDate = null;
java.sql.Date effDate = null;
E12GenericUtility genericUtility = new E12GenericUtility();
try
tranType = "02";
}
else if("S".equalsIgnoreCase(gstType))
{
SimpleDateFormat sdfAppl = new SimpleDateFormat(genericUtility.getApplDateFormat());
currDate = new java.sql.Timestamp(System.currentTimeMillis());
String currDateStr = sdfAppl.format(currDate);
selSql = "SELECT KEY_STRING, TRAN_ID_COL, REF_SER FROM TRANSETUP WHERE TRAN_WINDOW = ? ";
//System.out.println("VAlues of b2c in SSSS :"+" "+taxRegNo.length()+reverseChrg+ " "+ecomRegNo.length() +" "+sPos +" "+b2clInvVal);
pstmt = conn.prepareStatement(selSql);
pstmt.setString( 1, windowName );
rs = pstmt.executeQuery();
if (rs.next())
if((taxRegNo.length() == 0) //B2CL Inter State and inv amt > 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() == 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt > b2clInvVal))//Should be taken from finParm.
{
keyString = rs.getString("KEY_STRING");
keyCol = rs.getString("TRAN_ID_COL");
tranSer = rs.getString("REF_SER");
tranType = "04";
}
else if((taxRegNo.length() == 0) //B2CL Inter State with ecommerce opt and inv amt > 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() > 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt > b2clInvVal)) //Should be taken from finParm.
{
tranType = "05";
}
else if((taxRegNo.length() == 0) //B2CS Inter State with out ecommerce opt and inv amt < 250000
&& "N".equalsIgnoreCase(reverseChrg)
&& (ecomRegNo.length() == 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "11";
}
else if((taxRegNo.length() == 0) //B2CS Inter State with ecommerce opt and inv amt < 250000 && "N".equalsIgnoreCase(reverseCharge)
&& (ecomRegNo.length() > 0)
&& (!sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "12";
}
else if((taxRegNo.length() == 0) //B2CS Intra State with out ecommerce opt and inv amt < 250000
&& ("N".equalsIgnoreCase(reverseChrg) || "".equalsIgnoreCase(reverseChrg))
&& (ecomRegNo.length() == 0)
&& (sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "13";
}
else if((taxRegNo.length() == 0) //B2CS Intra State with ecommerce opt and inv amt < 250000 && "N".equalsIgnoreCase(reverseCharge)
&& (ecomRegNo.length() > 0)
&& (sPos.equalsIgnoreCase(gstCode))
&& (invAmt <= b2clInvVal)) //Should be taken from finParm.
{
tranType = "14";
}
}
else if("E".equalsIgnoreCase(gstType))
{
if(isWithPay)
{
tranType = "06";
}
else if(!isWithPay)
{
tranType = "07";
}
rs.close();rs = null;
pstmt.close();pstmt = null;
System.out.println("keyString :"+keyString);
System.out.println("keyCol :"+keyCol);
System.out.println("tranSer :"+tranSer);
xmlValues ="<?xml version=\"1.0\" encoding=\"utf-8\"?><Root>";
xmlValues = xmlValues + "<Header></Header>";
xmlValues = xmlValues + "<Detail1>";
xmlValues = xmlValues + "<tran_id></tran_id>";
xmlValues = xmlValues + "<site_code>" + siteCode + "</site_code>";
xmlValues = xmlValues + "<tran_date>" + currDateStr + "</tran_date>";
xmlValues = xmlValues + "</Detail1></Root>";
System.out.println("xmlValues :["+xmlValues+"]");
TransIDGenerator tg = new TransIDGenerator(xmlValues, "BASE", CommonConstants.DB_NAME);
tranId = tg.generateTranSeqID(tranSer, keyCol, keyString, conn);
System.out.println("tranId :"+tranId);
}
catch (SQLException ex)
else if("C".equalsIgnoreCase(gstType))
{
System.out.println("Exception 2::" +selSql+ ex.getMessage() + ":");
ex.printStackTrace();throw new ITMException(ex);
if( taxRegNo.length() > 0) //Credit Note to registered customer
{
tranType = "29";
}
return tranId;
else
{
tranType = "31"; //Credit Note to unregistered customer
}
private static String checkNullandTrim(String input)
}
else if("D".equalsIgnoreCase(gstType)) //Debite Note to registered customer
{
if (input==null)
if( taxRegNo.length() > 0) //Credit Note to unregistered customer
{
input="";
tranType = "30";
}
return input.trim();
else if( taxRegNo.length() == 0) //Debite Note to unregistered customer
{
tranType = "32";
}
private Timestamp getTimeStamp(String dateStr) throws ITMException, Exception
}
else if("A".equalsIgnoreCase(gstType))
{
String dbDateStr = "";
if(dateStr != null && !dateStr.equals(""))
if(sPos.equalsIgnoreCase(gstType))
{
dbDateStr =(new E12GenericUtility()).getValidDateTimeString(dateStr, (new E12GenericUtility()).getApplDateTimeFormat(), (new E12GenericUtility()).getDBDateTimeFormat());
return java.sql.Timestamp.valueOf(dbDateStr);
tranType = "41";
}
else if(!sPos.equalsIgnoreCase(gstType))
{
tranType = "42";
}
}
else if("T".equalsIgnoreCase(gstType))//Advance adjusted
{
if(sPos.equalsIgnoreCase(gstType))
{
tranType = "43";
}
else if(!sPos.equalsIgnoreCase(gstType))
{
tranType = "44";
}
}
valueXmlString.append("<Detail1 dbID='' domID='"+val2+"' objContext='1' objName='gstr'>");
valueXmlString.append("<attribute pkNames='gstr:' selected='N' status='O' updateFlag='N' />");
// rowheader.getcell(0).setcellvalue(transactionId);
valueXmlString.append("<tran_date>").append("<![CDATA["+tranDate+"]]>").append("</tran_date>");
valueXmlString.append("<tran_id__ref>").append("<![CDATA["+tranIdRef+"]]>").append("</tran_id__ref>");
valueXmlString.append("<site_code>").append("<![CDATA["+siteCode+"]]>").append("</site_code>");
valueXmlString.append("<prd_code>").append("<![CDATA["+prdCodenew+"]]>").append("</prd_code>");
valueXmlString.append("<objName>").append("<![CDATA[gstr]]>").append("</objName>");
valueXmlString.append("<rec_type>").append("<![CDATA["+recType+"]]>").append("</rec_type>");
valueXmlString.append("<tran_type>").append("<![CDATA["+tranType+"]]>").append("</tran_type>");
valueXmlString.append("<cust_code>").append("<![CDATA["+custCode+"]]>").append("</cust_code>");
valueXmlString.append("<cust_name>").append("<![CDATA["+custName+"]]>").append("</cust_name>");
valueXmlString.append("<submission_type>").append("<![CDATA["+subType+"]]>").append("</submission_type>");
valueXmlString.append("<doc_checksum>").append("<![CDATA["+docCheckSum+"]]>").append("</doc_checksum>");
valueXmlString.append("<doc_type>").append("<![CDATA["+documentAct+"]]>").append("</doc_type>");
valueXmlString.append("<doc_no>").append("<![CDATA["+docNo+"]]>").append("</doc_no>");
valueXmlString.append("<doc_date>").append("<![CDATA["+docDate+"]]>").append("</doc_date>");
valueXmlString.append("<amount>").append("<![CDATA["+invAmt+"]]>").append("</amount>");
valueXmlString.append("<reverse_chrg>").append("<![CDATA["+reverseChrg+"]]>").append("</reverse_chrg>");
valueXmlString.append("<lr_no>").append("<![CDATA["+lrNo+"]]>").append("</lr_no>");
valueXmlString.append("<lr_date>").append("<![CDATA["+lrDate+"]]>").append("</lr_date>");
valueXmlString.append("<reas_code>").append("<![CDATA["+reasCode+"]]>").append("</reas_code>");
valueXmlString.append("<ref_id__inv>").append("<![CDATA["+refIdInv+"]]>").append("</ref_id__inv>");
valueXmlString.append("<ref_date__inv>").append("<![CDATA["+refDateAct+"]]>").append("</ref_date__inv>");
valueXmlString.append("<prov_assmnt>").append("<![CDATA["+provAssmnt+"]]>").append("</prov_assmnt>");
valueXmlString.append("<order_no>").append("<![CDATA["+ordNo+"]]>").append("</order_no>");
valueXmlString.append("<order_date>").append("<![CDATA["+ordDate+"]]>").append("</order_date>");
valueXmlString.append("<remarks>").append("<![CDATA["+remarks+"]]>").append("</remarks>");
valueXmlString.append("<submit_status>").append("<![CDATA["+subStatus+"]]>").append("</submit_status>");
valueXmlString.append("<submit_date>").append("<![CDATA["+subDate+"]]>").append("</submit_date>");
valueXmlString.append("<add_user>").append("<![CDATA["+addUser+"]]>").append("</add_user>");
valueXmlString.append("<add_date>").append("<![CDATA["+addDate+"]]>").append("</add_date>");
valueXmlString.append("<add_term>").append("<![CDATA["+addTerm+"]]>").append("</add_term>");
valueXmlString.append("<chg_user>").append("<![CDATA["+chgUser+"]]>").append("</chg_user>");
valueXmlString.append("<chg_date>").append("<![CDATA["+chgDate+"]]>").append("</chg_date>");
valueXmlString.append("<chg_term>").append("<![CDATA["+chgTerm+"]]>").append("</chg_term>");
valueXmlString.append("<tax_reg_no>").append("<![CDATA["+taxRegNo+"]]>").append("</tax_reg_no>");
valueXmlString.append("<reco_status>").append("<![CDATA["+recoStatus+"]]>").append("</reco_status>");
valueXmlString.append("<ecom_reg_no>").append("<![CDATA["+ecomRegNo+"]]>").append("</ecom_reg_no>");
valueXmlString.append("<ref_ser>").append("<![CDATA["+refSer+"]]>").append("</ref_ser>");
valueXmlString.append("<gst_code>").append("<![CDATA["+gstCodeAct+"]]>").append("</gst_code>");
valueXmlString.append("<gst_type>").append("<![CDATA["+gstType+"]]>").append("</gst_type>");
valueXmlString.append("<ref_id>").append("<![CDATA["+refId+"]]>").append("</ref_id>");
valueXmlString.append("</Detail1>");
val2++;
}
valueXmlString.append("</Root>");
message ="Template Upload Succefully";
}
catch (Exception e)
{
System.out.println("Exception 1::" +headersql+""+ e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
System.out.println("updategst isError="+isError);
if(isError)
{
conn.rollback();
}
else
{
return null;
conn.commit();
}
if(pstmt != null){pstmt.close();pstmt = null;}
if(pstmt1 != null){pstmt1.close();pstmt1 = null;}
if(rs != null){rs.close();rs = null;}
if(conn != null){conn.close();conn = null;}
}*/
return valueXmlString.toString();
}
/* public String[] filewrite(String objName,String xmlFile,String fileName,File DUMP_DIR, UserInfoBean userInfo)
{
String newFileName ="", XmlfileName="";
String [] fileInfoArr = new String[7];
try
{
XmlfileName= fileName.split("\\.")[0];
XmlfileName = XmlfileName+".xml";
System.out.println("XmlfileName :"+XmlfileName);
newFileName = System.currentTimeMillis() + "_" + userInfo.getLoginCode() + "_" + XmlfileName;
System.out.println("newFileName :"+newFileName);
File oriFileObj = new File( DUMP_DIR + File.separator + newFileName );
System.out.println("oriFileObj :"+oriFileObj);
// File newTextFile = new File(DUMP_DIR +newFileName);
FileWriter fw = new FileWriter(oriFileObj);
fw.write(xmlFile);
fw.close();
boolean isIntractive=false,isRetainPkValue=false,isExcelDriver=false;
//String message="",xmlFile="";
//String newFileName= filewrite( xmlFile,fileName,DUMP_DIR, userInfo);
fileInfoArr[0] = String.valueOf(isIntractive);
fileInfoArr[1] = newFileName;
System.out.println("newFileName" +fileInfoArr[1]);
fileInfoArr[2] = objName;
System.out.println("objName" +fileInfoArr[2]);
fileInfoArr[3] = XmlfileName;
System.out.println("XmlfileName" +fileInfoArr[3]);
fileInfoArr[4] = "";
fileInfoArr[5] = String.valueOf(isExcelDriver);
fileInfoArr[6] = String.valueOf(isRetainPkValue);
}
catch (IOException iox)
{
iox.printStackTrace();
}
return fileInfoArr;
}
*/
protected InitialContext getInitialContext()throws ITMException
{
InitialContext ctx = null;
try
{
AppConnectParm appConnect = new AppConnectParm();
ctx = new InitialContext(appConnect.getProperty());
}
catch(ITMException itme)
{
System.out.println("GstrCustomTranServlet.getInitialContext()");
throw itme;
}
catch(Exception e)
{
System.out.println("GstrCustomTranServlet.getInitialContext()"+e.getMessage());
throw new ITMException(e);
}
return ctx;
}
}
}
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