Commit 95eaa1a1 authored by steurwadkar's avatar steurwadkar

F17ABAS001 GST offline file download components commit

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@163146 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 913be9b5
...@@ -14,7 +14,9 @@ import java.sql.Connection; ...@@ -14,7 +14,9 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Objects; import java.util.Objects;
...@@ -27,6 +29,12 @@ import org.apache.commons.compress.archivers.tar.TarArchiveEntry; ...@@ -27,6 +29,12 @@ import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import org.json.XML; import org.json.XML;
...@@ -126,8 +134,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -126,8 +134,8 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
folder.mkdirs(); folder.mkdirs();
System.out.println("GSTN Folder created"); System.out.println("GSTN Folder created");
} }
saveFilePath = folder.getAbsolutePath(); saveFilePath = folder.getAbsolutePath();
System.out.println("saveFilePath["+saveFilePath+"]");
} }
catch (Exception e) catch (Exception e)
{ {
...@@ -1444,7 +1452,16 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -1444,7 +1452,16 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
errorCode = "VTNOGSDATA"; errorCode = "VTNOGSDATA";
} }
} }
closeResources(rs, pstmt); if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
if(rs != null)
{
rs.close();
rs = null;
}
if(!isDataError) if(!isDataError)
{ {
...@@ -2932,6 +2949,820 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi ...@@ -2932,6 +2949,820 @@ public class GSTDataSubmitWizEJB extends ValidatorEJB implements GSTDataSubmitWi
System.out.println("final retString["+retString+"]"); System.out.println("final retString["+retString+"]");
return retString; return retString;
} }
public Object generateOfflineFile(String periodCode, String siteCode, String recType) throws ITMException
{
XSSFWorkbook retDataWorkbook = null;
String gstr1WorkBookPath = "";
String sep = File.separator;
String tranType = "", tranId = "", udfStr1 = "", udfStr2 = "", udfStr3 = "", ctin = "", posStateCode = "", docNo = "", docDateStr = "",
reverseCharge = "", etin = "", invoiceType = "", errorCode = "", dataErrMsg = "", stateDscr = "", redInvId = "", refInvDtStr = "",
preGST = "", refTranType = "", customerType = "", portCode = "", shipBillNo = "", shipBillDateStr = "", gstDateFormat = "";
boolean noDataFound = false;
double amount =0.0, gstRate = 0.0, taxableAmt = 0.0, cessAmt = 0.0, nilAmount = 0.0, exemtAmount = 0.0, nonGSTAmount = 0.0;
int b2bRowNum = 4, b2clRowNum = 4, b2csRowNum = 4, cdnrRowNum = 4, cdnurRowNum = 4, expRowNum = 4, atRowNum = 4, atAdjRowNum = 4, hsnRowNum = 4;
String sql = "", hdrSql = "", detSql = "";
Date docDate = null, refInvDate = null, shipBillDate = null;
Connection conn = null;
PreparedStatement pstmt = null, hdrPstmt = null, detPstmt = null;
ResultSet rs = null, hdrRs = null, detRs = null;
FinCommon finCommon = new FinCommon();
try
{
conn = getConnection();
sql = "SELECT COUNT(1) AS CNT FROM GST_DATA_HDR WHERE REC_TYPE = ? AND SUBMIT_STATUS = 'P' AND PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, recType);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("CNT") == 0)
{
noDataFound = true;
errorCode = "VTNOGSDATA";
}
}
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
if(rs!=null)
{
rs.close();
rs=null;
}
if(noDataFound)
{
sql = "SELECT MSG_DESCR FROM MESSAGES WHERE MSG_NO = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, errorCode);
rs = pstmt.executeQuery();
if(rs.next())
{
dataErrMsg = rs.getString("MSG_DESCR");
}
closeResources(rs, pstmt);
return "<root><message><![CDATA[Message : "+dataErrMsg+"]]></message></root>";
}
else
{
if("1".equalsIgnoreCase(recType))
{
gstr1WorkBookPath = CommonConstants.JBOSSHOME + sep + "DOWNLOAD" + sep + "template" + sep + "GSTR1_Offline_Template.xlsx";
File gstr1ExcleFile = new File(gstr1WorkBookPath);
if(gstr1ExcleFile.exists())
{
retDataWorkbook = new XSSFWorkbook(new FileInputStream(gstr1ExcleFile));
}
}
gstDateFormat = finCommon.getFinparams("999999", "GST_EXCL_DATE_FORMAT", conn);
CellStyle dateCellStyle = retDataWorkbook.createCellStyle();
CreationHelper createHelper = retDataWorkbook.getCreationHelper();
dateCellStyle.setDataFormat( createHelper.createDataFormat().getFormat(gstDateFormat));
SimpleDateFormat gstDateFormatSdf = new SimpleDateFormat(gstDateFormat);
if("1".equalsIgnoreCase(recType))
{
hdrSql = "SELECT * FROM GST_DATA_HDR WHERE REC_TYPE = ? AND PRD_CODE = ? AND SITE_CODE = ? AND SUBMIT_STATUS = ?";
hdrPstmt = conn.prepareStatement(hdrSql);
hdrPstmt.setString(1, recType);
hdrPstmt.setString(2, periodCode);
hdrPstmt.setString(3, siteCode);
hdrPstmt.setString(4, "P");
hdrRs = hdrPstmt.executeQuery();
while(hdrRs.next())
{
stateDscr = "";
tranId = hdrRs.getString("TRAN_ID");
tranType = hdrRs.getString("TRAN_TYPE");
ctin = checkNull(hdrRs.getString("TAX_REG_NO"));
posStateCode = checkNull(hdrRs.getString("GST_CODE"));
docNo = checkNull(hdrRs.getString("DOC_NO"));
docDate = hdrRs.getDate("DOC_DATE");
amount = hdrRs.getDouble("AMOUNT");
reverseCharge = checkNull(hdrRs.getString("REVERSE_CHRG"));
etin = checkNull(hdrRs.getString("ECOM_REG_NO"));
redInvId = checkNull(hdrRs.getString("REF_ID__INV"));
refInvDate = hdrRs.getDate("REF_DATE__INV");
portCode = checkNull(hdrRs.getString("ORDER_NO"));
shipBillNo = checkNull(hdrRs.getString("LR_NO"));
shipBillDate = hdrRs.getDate("LR_DATE");
sql = "SELECT DESCR FROM STATE WHERE GST_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, posStateCode);
rs = pstmt.executeQuery();
if(rs.next())
{
stateDscr = checkNull(rs.getString("DESCR"));
}
closeResources(rs, pstmt);
if(docDate!=null)
{
docDateStr = gstDateFormatSdf.format(docDate);
}
if(refInvDate!=null)
{
refInvDtStr = gstDateFormatSdf.format(refInvDate);
}
if(shipBillDate!=null)
{
shipBillDateStr = gstDateFormatSdf.format(shipBillDate);
}
System.out.println("docDateStr["+docDateStr+"]");
sql = "SELECT UDF_STR1, UDF_STR2, UDF_STR3 FROM GENCODES WHERE MOD_NAME='W_GSTR' AND FLD_NAME='TRAN_TYPE' AND FLD_VALUE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranType);
rs = pstmt.executeQuery();
if(rs.next())
{
udfStr1 = checkNull(rs.getString("UDF_STR1"));
udfStr2 = checkNull(rs.getString("UDF_STR2"));
udfStr3 = checkNull(rs.getString("UDF_STR3"));
}
closeResources(rs, pstmt);
if("B2B".equalsIgnoreCase(udfStr1))
{
XSSFSheet dataSheet = retDataWorkbook.getSheet("b2b");
if("R".equalsIgnoreCase(udfStr2))
{
invoiceType = "Regular";
}
else if("SEWP".equalsIgnoreCase(udfStr2))
{
invoiceType = "SEZ supplies with payment";
}
else if("SEWOP".equalsIgnoreCase(udfStr2))
{
invoiceType = "SEZ supplies without payment";
}
else if("DE".equalsIgnoreCase(udfStr2))
{
invoiceType = "Deemed Exp";
}
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(b2bRowNum++);
dataRow.createCell(0).setCellValue(ctin);
dataRow.createCell(1).setCellValue(docNo);
XSSFCell docDateCell = dataRow.createCell(2);
docDateCell.setCellValue(gstDateFormatSdf.parse(docDateStr));
docDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(3).setCellValue(amount);
dataRow.createCell(4).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(5).setCellValue(reverseCharge);
dataRow.createCell(6).setCellValue(invoiceType);
dataRow.createCell(7).setCellValue(etin);
dataRow.createCell(8).setCellValue(gstRate);
dataRow.createCell(9).setCellValue(taxableAmt);
dataRow.createCell(10).setCellValue(cessAmt);
}
closeResources(detRs, detPstmt);
}
if("B2CL".equalsIgnoreCase(udfStr1))
{
XSSFSheet dataSheet = retDataWorkbook.getSheet("b2cl");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(b2clRowNum++);
dataRow.createCell(0).setCellValue(docNo);
XSSFCell docDateCell = dataRow.createCell(1);
docDateCell.setCellValue(gstDateFormatSdf.parse(docDateStr));
docDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(2).setCellValue(amount);
dataRow.createCell(3).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(4).setCellValue(gstRate);
dataRow.createCell(5).setCellValue(taxableAmt);
dataRow.createCell(6).setCellValue(cessAmt);
dataRow.createCell(7).setCellValue(etin);
}
closeResources(detRs, detPstmt);
}
if("B2CS".equalsIgnoreCase(udfStr1))
{
XSSFSheet dataSheet = retDataWorkbook.getSheet("b2cs");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(b2csRowNum++);
dataRow.createCell(0).setCellValue(udfStr3);
dataRow.createCell(1).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(2).setCellValue(gstRate);
dataRow.createCell(3).setCellValue(taxableAmt);
dataRow.createCell(4).setCellValue(cessAmt);
dataRow.createCell(5).setCellValue(etin);
}
closeResources(detRs, detPstmt);
}
if("CDNR".equalsIgnoreCase(udfStr1))
{
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 06, 01);
Date gstStartDate = calendar.getTime();
preGST = refInvDate.before(gstStartDate) ? "Y" : "N";
XSSFSheet dataSheet = retDataWorkbook.getSheet("cdnr");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(cdnrRowNum++);
dataRow.createCell(0).setCellValue(ctin);
dataRow.createCell(1).setCellValue(redInvId);
XSSFCell refInvDateCell = dataRow.createCell(2);
refInvDateCell.setCellValue(gstDateFormatSdf.parse(refInvDtStr));
refInvDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(3).setCellValue(docNo);
XSSFCell docDateCell = dataRow.createCell(4);
docDateCell.setCellValue(gstDateFormatSdf.parse(docDateStr));
docDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(5).setCellValue(udfStr2);
dataRow.createCell(6).setCellValue("07-Others");
dataRow.createCell(7).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(8).setCellValue(amount);
dataRow.createCell(9).setCellValue(gstRate);
dataRow.createCell(10).setCellValue(taxableAmt);
dataRow.createCell(11).setCellValue(cessAmt);
dataRow.createCell(12).setCellValue(preGST);
}
closeResources(detRs, detPstmt);
}
if("CDNUR".equalsIgnoreCase(udfStr1))
{
Calendar calendar = Calendar.getInstance();
calendar.set(2017, 06, 01);
Date gstStartDate = calendar.getTime();
preGST = refInvDate.before(gstStartDate) ? "Y" : "N";
if(refInvDate.after(gstStartDate))
{
sql = "SELECT TRAN_TYPE FROM GST_DATA_HDR WHERE DOC_NO = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
refTranType = checkNull(rs.getString("TRAN_TYPE"));
}
closeResources(rs, pstmt);
if(refTranType != null && refTranType.trim().length() > 0)
{
if("04".equalsIgnoreCase(refTranType) || "05".equalsIgnoreCase(refTranType))
{
customerType = "B2CL";
}
else if("06".equalsIgnoreCase(refTranType))
{
customerType = "EXPWP";
}
else if("07".equalsIgnoreCase(refTranType))
{
customerType = "EXPWOP";
}
}
}
XSSFSheet dataSheet = retDataWorkbook.getSheet("cdnur");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(cdnurRowNum++);
dataRow.createCell(0).setCellValue(customerType);
dataRow.createCell(1).setCellValue(docNo);
XSSFCell docDateCell = dataRow.createCell(2);
docDateCell.setCellValue(gstDateFormatSdf.parse(docDateStr));
docDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(3).setCellValue(udfStr2);
dataRow.createCell(4).setCellValue(redInvId);
XSSFCell refInvDateCell = dataRow.createCell(5);
refInvDateCell.setCellValue(gstDateFormatSdf.parse(refInvDtStr));
refInvDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(6).setCellValue("07-Others");
dataRow.createCell(7).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(8).setCellValue(amount);
dataRow.createCell(9).setCellValue(gstRate);
dataRow.createCell(10).setCellValue(taxableAmt);
dataRow.createCell(11).setCellValue(cessAmt);
dataRow.createCell(12).setCellValue(preGST);
}
closeResources(detRs, detPstmt);
}
if("EXP".equalsIgnoreCase(udfStr1))
{
XSSFSheet dataSheet = retDataWorkbook.getSheet("exp");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(expRowNum++);
dataRow.createCell(0).setCellValue(udfStr2);
dataRow.createCell(1).setCellValue(docNo);
XSSFCell docDateCell = dataRow.createCell(2);
docDateCell.setCellValue(gstDateFormatSdf.parse(docDateStr));
docDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(3).setCellValue(amount);
dataRow.createCell(4).setCellValue(portCode);
dataRow.createCell(5).setCellValue(shipBillNo);
XSSFCell shipBillDateCell = dataRow.createCell(6);
shipBillDateCell.setCellValue(gstDateFormatSdf.parse(shipBillDateStr));
shipBillDateCell.setCellStyle(dateCellStyle);
dataRow.createCell(7).setCellValue(gstRate);
dataRow.createCell(8).setCellValue(taxableAmt);
}
closeResources(detRs, detPstmt);
}
if("AT".equalsIgnoreCase(udfStr1))
{
XSSFSheet dataSheet = retDataWorkbook.getSheet("at");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(atRowNum++);
dataRow.createCell(0).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(1).setCellValue(gstRate);
dataRow.createCell(2).setCellValue(taxableAmt);
dataRow.createCell(3).setCellValue(cessAmt);
}
closeResources(detRs, detPstmt);
}
if("TXP".equalsIgnoreCase(udfStr1))
{
XSSFSheet dataSheet = retDataWorkbook.getSheet("atadj");
detSql = " SELECT GST_RATE, TAXABLE_AMT, CESS_AMT FROM GST_DATA_DET WHERE TRAN_ID = ? ";
detPstmt = conn.prepareStatement(detSql);
detPstmt.setString(1, tranId);
detRs = detPstmt.executeQuery();
while(detRs.next())
{
gstRate = detRs.getDouble("GST_RATE");
taxableAmt = detRs.getDouble("TAXABLE_AMT");
cessAmt = detRs.getDouble("CESS_AMT");
XSSFRow dataRow = dataSheet.createRow(atAdjRowNum++);
dataRow.createCell(0).setCellValue(posStateCode+"-"+stateDscr);
dataRow.createCell(1).setCellValue(gstRate);
dataRow.createCell(2).setCellValue(taxableAmt);
dataRow.createCell(3).setCellValue(cessAmt);
}
closeResources(detRs, detPstmt);
}
}
closeResources(hdrRs, hdrPstmt);
XSSFSheet nilDataSheet = retDataWorkbook.getSheet("exemp");
sql = " SELECT TRAN_TYPE,SUM(AMOUNT) AS AMOUNT FROM GST_DATA_HDR "
+ " WHERE REC_TYPE = '1' AND TRAN_TYPE in (?,?,?) AND SITE_CODE = ? AND PRD_CODE = ?"
+ " GROUP BY TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "15");
pstmt.setString(2, "16");
pstmt.setString(3, "17");
pstmt.setString(4, siteCode);
pstmt.setString(5, periodCode);
rs = pstmt.executeQuery();
while(rs.next())
{
if("15".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
}
if("16".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
}
if("17".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
}
}
closeResources(rs, pstmt);
XSSFRow nilInterRegDataRow = nilDataSheet.getRow(4);
nilInterRegDataRow.createCell(1).setCellValue(nilAmount);
nilInterRegDataRow.createCell(2).setCellValue(exemtAmount);
nilInterRegDataRow.createCell(3).setCellValue(nonGSTAmount);
nilAmount = 0.0; exemtAmount = 0.0; nonGSTAmount = 0.0;
sql = " SELECT TRAN_TYPE,SUM(AMOUNT) AS AMOUNT FROM GST_DATA_HDR "
+ " WHERE REC_TYPE = '1' AND TRAN_TYPE in (?,?,?) AND SITE_CODE = ? AND PRD_CODE = ?"
+ " GROUP BY TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "18");
pstmt.setString(2, "19");
pstmt.setString(3, "20");
pstmt.setString(4, siteCode);
pstmt.setString(5, periodCode);
rs = pstmt.executeQuery();
while(rs.next())
{
if("18".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
}
if("19".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
}
if("20".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
}
}
closeResources(rs, pstmt);
XSSFRow intraRegDataRow = nilDataSheet.getRow(5);
intraRegDataRow.createCell(1).setCellValue(nilAmount);
intraRegDataRow.createCell(2).setCellValue(exemtAmount);
intraRegDataRow.createCell(3).setCellValue(nonGSTAmount);
nilAmount = 0.0; exemtAmount = 0.0; nonGSTAmount = 0.0;
sql = " SELECT TRAN_TYPE,SUM(AMOUNT) AS AMOUNT FROM GST_DATA_HDR "
+ " WHERE REC_TYPE = '1' AND TRAN_TYPE in (?,?,?) AND SITE_CODE = ? AND PRD_CODE = ?"
+ " GROUP BY TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "21");
pstmt.setString(2, "22");
pstmt.setString(3, "23");
pstmt.setString(4, siteCode);
pstmt.setString(5, periodCode);
rs = pstmt.executeQuery();
while(rs.next())
{
if("21".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
}
if("22".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
}
if("23".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
}
}
closeResources(rs, pstmt);
XSSFRow interUnregDataRow = nilDataSheet.getRow(6);
interUnregDataRow.createCell(1).setCellValue(nilAmount);
interUnregDataRow.createCell(2).setCellValue(exemtAmount);
interUnregDataRow.createCell(3).setCellValue(nonGSTAmount);
nilAmount = 0.0; exemtAmount = 0.0; nonGSTAmount = 0.0;
sql = " SELECT TRAN_TYPE,SUM(AMOUNT) AS AMOUNT FROM GST_DATA_HDR "
+ " WHERE REC_TYPE = '1' AND TRAN_TYPE in (?,?,?) AND SITE_CODE = ? AND PRD_CODE = ?"
+ " GROUP BY TRAN_TYPE";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "24");
pstmt.setString(2, "25");
pstmt.setString(3, "26");
pstmt.setString(4, siteCode);
pstmt.setString(5, periodCode);
rs = pstmt.executeQuery();
while(rs.next())
{
if("24".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nilAmount = rs.getDouble("AMOUNT");
}
if("25".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
exemtAmount = rs.getDouble("AMOUNT");
}
if("26".equalsIgnoreCase(rs.getString("TRAN_TYPE")))
{
nonGSTAmount = rs.getDouble("AMOUNT");
}
}
closeResources(rs, pstmt);
XSSFRow intraUnregDataRow = nilDataSheet.getRow(7);
intraUnregDataRow.createCell(1).setCellValue(nilAmount);
intraUnregDataRow.createCell(2).setCellValue(exemtAmount);
intraUnregDataRow.createCell(3).setCellValue(nonGSTAmount);
XSSFSheet hsnDataSheet = retDataWorkbook.getSheet("hsn");
sql = " SELECT GS_CODE, GS_DESCR, UNIT, DESCR, SUM(TOT_QTY) AS TOT_QTY, SUM(TOT_TAXVAL) AS TOT_TAXVAL, SUM(TOT_IAMT) AS TOT_IAMT, SUM(TOT_CAMT) AS TOT_CAMT, SUM(TOT_SAMT) AS TOT_SAMT, SUM(TOT_CSAMT) AS TOT_CSAMT FROM"
+ " (SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, U.DESCR, SUM(GDD.QUANTITY) AS TOT_QTY, SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " SUM(GDD.IGST_AMT) AS TOT_IAMT, SUM(CGST_AMT) AS TOT_CAMT, SUM(SGST_AMT) AS TOT_SAMT, SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD, UOM U"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL AND GDH.REC_TYPE='1' AND GDD.UNIT=U.UNIT"
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE NOT IN ('29','31')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, U.DESCR"
+ " UNION ALL"
+ " SELECT GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, U.DESCR, -1*SUM(GDD.QUANTITY) AS TOT_QTY, -1*SUM(GDD.TAXABLE_AMT) AS TOT_TAXVAL,"
+ " -1*SUM(GDD.IGST_AMT) AS TOT_IAMT, -1*SUM(CGST_AMT) AS TOT_CAMT, -1*SUM(SGST_AMT) AS TOT_SAMT, -1*SUM(CESS_AMT) AS TOT_CSAMT"
+ " FROM GST_DATA_HDR GDH, GST_DATA_DET GDD, UOM U"
+ " WHERE GDH.TRAN_ID = GDD.TRAN_ID AND GDD.GS_CODE IS NOT NULL AND GDH.REC_TYPE='1' AND GDD.UNIT=U.UNIT"
+ " AND GDH.SITE_CODE = ? AND GDH.PRD_CODE = ? AND GDH.TRAN_TYPE IN ('29','31')"
+ " GROUP BY GDD.GS_CODE, GDD.GS_DESCR, GDD.UNIT, U.DESCR) GROUP BY GS_CODE, GS_DESCR, UNIT, DESCR";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, siteCode);
pstmt.setString(4, periodCode);
rs = pstmt.executeQuery();
while (rs.next())
{
XSSFRow dataRow = hsnDataSheet.createRow(hsnRowNum++);
dataRow.createCell(0).setCellValue(checkNull(rs.getString("GS_CODE")));
String unitDescr = checkNull(rs.getString("UNIT")) + "-" + checkNull(rs.getString("DESCR"));
dataRow.createCell(2).setCellValue(unitDescr);
dataRow.createCell(3).setCellValue(rs.getDouble("TOT_QTY"));
double totalValue = rs.getDouble("TOT_TAXVAL") + rs.getDouble("TOT_IAMT") + rs.getDouble("TOT_CAMT") + rs.getDouble("TOT_SAMT") + rs.getDouble("TOT_CSAMT");
dataRow.createCell(4).setCellValue(totalValue);
dataRow.createCell(5).setCellValue(rs.getDouble("TOT_TAXVAL"));
dataRow.createCell(6).setCellValue(rs.getDouble("TOT_IAMT"));
dataRow.createCell(7).setCellValue(rs.getDouble("TOT_CAMT"));
dataRow.createCell(8).setCellValue(rs.getDouble("TOT_SAMT"));
dataRow.createCell(9).setCellValue(rs.getDouble("TOT_CSAMT"));
}
closeResources(rs, pstmt);
XSSFSheet docDataSheet = retDataWorkbook.getSheet("docs");
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('01','03','04','05','11','12','13','14')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
XSSFRow dataRow = docDataSheet.getRow(4);
dataRow.createCell(1).setCellValue(rs.getString("FROM_NO"));
dataRow.createCell(2).setCellValue(rs.getString("TO_NO"));
dataRow.createCell(3).setCellValue(rs.getInt("TOT_CNT"));
dataRow.createCell(4).setCellValue(0);
}
}
closeResources(rs, pstmt);
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('02')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
XSSFRow dataRow = docDataSheet.getRow(5);
dataRow.createCell(1).setCellValue(rs.getString("FROM_NO"));
dataRow.createCell(2).setCellValue(rs.getString("TO_NO"));
dataRow.createCell(3).setCellValue(rs.getInt("TOT_CNT"));
dataRow.createCell(4).setCellValue(0);
}
}
closeResources(rs, pstmt);
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('30','32')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
XSSFRow dataRow = docDataSheet.getRow(7);
dataRow.createCell(1).setCellValue(rs.getString("FROM_NO"));
dataRow.createCell(2).setCellValue(rs.getString("TO_NO"));
dataRow.createCell(3).setCellValue(rs.getInt("TOT_CNT"));
dataRow.createCell(4).setCellValue(0);
}
}
closeResources(rs, pstmt);
sql = " SELECT MIN(DOC_NO) FROM_NO, MAX(DOC_NO) TO_NO, COUNT(1) TOT_CNT"
+ " FROM GST_DATA_HDR WHERE SITE_CODE = ? AND PRD_CODE = ? AND REC_TYPE = ?"
+ " AND TRAN_TYPE IN ('29','31')";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, siteCode);
pstmt.setString(2, periodCode);
pstmt.setString(3, "1");
rs = pstmt.executeQuery();
if(rs.next())
{
if(rs.getInt("TOT_CNT") > 0)
{
XSSFRow dataRow = docDataSheet.getRow(8);
dataRow.createCell(1).setCellValue(rs.getString("FROM_NO"));
dataRow.createCell(2).setCellValue(rs.getString("TO_NO"));
dataRow.createCell(3).setCellValue(rs.getInt("TOT_CNT"));
dataRow.createCell(4).setCellValue(0);
}
}
closeResources(rs, pstmt);
}
else if("2".equalsIgnoreCase(recType))
{
}
return retDataWorkbook;
}
}
catch(Exception e)
{
System.out.println("GSTDataSubmitWizEJB.generateOfflineFile()["+e.getMessage()+"]");
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
if(rs!=null)
{
rs.close();
rs=null;
}
if(hdrPstmt!=null)
{
hdrPstmt.close();
hdrPstmt = null;
}
if(hdrRs!=null)
{
hdrRs.close();
hdrRs=null;
}
if(detPstmt!=null)
{
detPstmt.close();
detPstmt = null;
}
if(detRs!=null)
{
detRs.close();
detRs=null;
}
if(conn!=null && !conn.isClosed())
{
conn.close();
conn=null;
}
}
catch(SQLException se)
{
System.out.println("GSTDataSubmitWizEJB.generateOfflineFile()["+se.getMessage()+"]");
se.printStackTrace();
}
}
}
private String checkNull(String input) private String checkNull(String input)
{ {
if (input==null) if (input==null)
......
...@@ -12,9 +12,15 @@ import javax.servlet.http.HttpServlet; ...@@ -12,9 +12,15 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.w3c.dom.Document;
import ibase.system.config.AppConnectParm; import ibase.system.config.AppConnectParm;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.utility.UserInfoBean; import ibase.utility.UserInfoBean;
import ibase.webitm.ejb.gst.GSTDataSubmitWizEJB;
import ibase.webitm.ejb.gst.GSTDataSubmitWizEJBRemote; import ibase.webitm.ejb.gst.GSTDataSubmitWizEJBRemote;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
...@@ -22,6 +28,7 @@ public class GSTDataSubmitWizServlet extends HttpServlet ...@@ -22,6 +28,7 @@ public class GSTDataSubmitWizServlet extends HttpServlet
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
InitialContext ctx = null; InitialContext ctx = null;
E12GenericUtility e12GenericUtility = new E12GenericUtility();
public GSTDataSubmitWizServlet() { public GSTDataSubmitWizServlet() {
super(); super();
...@@ -74,12 +81,89 @@ public class GSTDataSubmitWizServlet extends HttpServlet ...@@ -74,12 +81,89 @@ public class GSTDataSubmitWizServlet extends HttpServlet
outStream.close(); outStream.close();
} }
} }
else if("GET_OFFLINE_FILE".equalsIgnoreCase(action))
{
String fileName = "";
Workbook retDataWorkbook = null;
String prdCode = request.getParameter("prd_code");
String recType = request.getParameter("rec_type");
String siteCode = request.getParameter("site_code");
System.out.println("siteCode ["+siteCode+"]");
System.out.println("prdCode ["+prdCode+"]");
System.out.println("recType ["+recType+"]");
fileName = "GSTR"+recType+"_"+prdCode+"_Offline_Data.xlsx";
GSTDataSubmitWizEJB gstDataSubmitWizEJB = new GSTDataSubmitWizEJB();
Object retObj = gstDataSubmitWizEJB.generateOfflineFile(prdCode, siteCode, recType);
if(retObj != null)
{
boolean isWorkbook = retObj instanceof Workbook;
System.out.println("isWorkbook : "+ isWorkbook);
if(retObj instanceof String)
{
response.setContentType( "text/html; charset=UTF8,"+CommonConstants.ENCODING );
responseXML = (String) retObj.toString();
System.out.println("responseXML["+responseXML+"]");
Document errDom = e12GenericUtility.parseString(responseXML);
String errMsg = errDom.getElementsByTagName("message").item(0).getFirstChild().getNodeValue();
String responseStr = "<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><SCRIPT language=JAVASCRIPT>alert('"+errMsg+"');window.location.href = '/ibase/webitm/jsp/GetGSTOfflineFile.jsp'</SCRIPT></HEAD></HTML>";
if(CommonConstants.CONTENT_ENCODING != null && CommonConstants.CONTENT_ENCODING.equalsIgnoreCase("gzip"))
{
response.setHeader("Content-Encoding", "gzip");
GZIPOutputStream gzOutStream = new GZIPOutputStream(response.getOutputStream());
gzOutStream.write(responseStr.getBytes());
gzOutStream.flush();
gzOutStream.close();
}
else
{
response.setHeader("Content-Encoding", "");
OutputStream outStream = response.getOutputStream();
outStream.write(responseStr.getBytes());
outStream.flush();
outStream.close();
}
}
else if(retObj instanceof Workbook)
{
retDataWorkbook = (XSSFWorkbook) retObj;
response.setContentType("application/excel");
if(CommonConstants.CONTENT_ENCODING != null && CommonConstants.CONTENT_ENCODING.equalsIgnoreCase("gzip"))
{
response.setHeader("Content-Encoding", "gzip");
response.setHeader("Content-Disposition","attachment; fileName=\"" + fileName + "\"");
GZIPOutputStream gzOutStream = new GZIPOutputStream(response.getOutputStream());
retDataWorkbook.write(gzOutStream);
gzOutStream.flush();
gzOutStream.close();
}
else
{
response.setHeader("Content-Encoding", "");
response.setHeader("Content-Disposition","attachment; fileName=\"" + fileName + "\"");
OutputStream outStream = response.getOutputStream();
retDataWorkbook.write(outStream);
outStream.flush();
outStream.close();
}
}
}
}
else else
{ {
HashMap<String,String> requestParamMap = new HashMap<String,String>(); HashMap<String,String> requestParamMap = new HashMap<String,String>();
String paramName = "", paramValue = ""; String paramName = "", paramValue = "";
@SuppressWarnings("unchecked")
Enumeration<String> reqParams = request.getParameterNames(); Enumeration<String> reqParams = request.getParameterNames();
while(reqParams.hasMoreElements()) while(reqParams.hasMoreElements())
{ {
......
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