Commit 126915b3 authored by prumde's avatar prumde

Updated

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@211006 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 64c84796
<%System.out.println("------------BGProcessStatus Called------"); %>
<%System.out.println("------------executeSaleTrends Called------"); %>
<?xml version="1.0" encoding="UTF-8"?>
<%@page import="ibase.webitm.bean.*, ibase.utility.CommonConstants"%>
<%@page import="ibase.webitm.utility.ITMException"%>
......@@ -10,42 +10,258 @@
<%@page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="ibase.webitm.reports.utility.CustwiseSalesBean"%>
<%@page import="ibase.system.config.ConnDriver"%>
<%!
public HashMap getSQLResultData(String sqlStr, String transDB)
{
HashMap sqlDataMap = null;
Connection con = null;
Statement stmt=null;;
ResultSet rs = null;
<html>
<head>
<style>
#dataTable {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
try
{
System.out.println("Inside SaleTrendsDetails::getSQLResultData transDB [" +transDB + "] SQL Exection done ! SQL => \n " + sqlStr);
ConnDriver mConnDriver = new ConnDriver();
con = mConnDriver.getConnectDB(transDB);
if( con == null ) {
System.out.println("Unable to get connection for [" + transDB + "]");
throw new Exception("Unable to get connection for [" + transDB + "]");
}
ArrayList<HashMap<String, String>> dataRows = new ArrayList<HashMap<String, String>>();
HashMap<Integer, String> dataCols = new HashMap<Integer, String>();
sqlDataMap = new HashMap();
int noOfRows = 0;
int noOfColumns = 0;
#dataTable td, #dataTable th {
border: 1px solid #ddd;
padding: 8px;
white-space: nowrap;
stmt = con.createStatement();
rs = stmt.executeQuery(sqlStr);
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next())
{
//System.out.println("Result iteration !");
HashMap<String, String> rowDataMap = new HashMap<String, String>();
noOfColumns = rsmd.getColumnCount();
//System.out.println("Result noOfColumns !" + noOfColumns);
for(int ctr = 1; ctr <= noOfColumns; ctr++)
{
if( noOfRows == 0 )
{
dataCols.put(ctr, rsmd.getColumnName(ctr));
}
rowDataMap.put(rsmd.getColumnName(ctr), rs.getString(ctr));
}
//System.out.println("Result dataMap !" + dataMap);
dataRows.add(rowDataMap);
noOfRows++;
}
//System.out.println("Result dataArray !" + dataArray);
sqlDataMap.put("COLS", dataCols);
sqlDataMap.put("ROWS", dataRows);
}
catch(Exception e)
{
sqlDataMap = null;
System.out.println("Inside SaleTrendsDetails::getSQLResultData Exception : " + e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if( stmt != null )
{
stmt.close();
stmt = null;
}
if( con != null )
{
con.close();
con = null;
}
}
catch( Exception eI )
{
eI.printStackTrace();
}
}
return sqlDataMap;
}
#dataTable tr:nth-child(even){background-color: #f2f2f2;}
%>
#dataTable tr:hover {background-color: #ddd;}
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<style>
/*
#dataTable {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse: collapse;
margin : 16px;
width: auto;
}
#dataTable th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #b4adee ; /*#5fdeb2*/
color: white;
}
</style>
</head>
<body>
<Div style="position:relative;top:0;left:0;height:85%;width:100%;overflow:scroll;">
#dataTable td, #dataTable th {
border: 1px solid #ddd;
padding: 8px;
white-space: nowrap;
text-transform: capitalize;
}
#dataTable td {text-align: right;}
#dataTable tr:nth-child(even){background-color: #f2f2f2;}
#dataTable tr:hover {background-color: #ddd;}
#dataTable th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #b4adee ;
color: white;
}
*/
*{
font-family: Arial, Helvetica, sans-serif;
}
body{
background-color: #efefef;
}
.db-kpi-container{
background-color: #efefef;
display: grid;
width: 100%;
height: auto;
}
.db-kpi-row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
}
.db-kpi-column {
display: flex;
flex-direction: column;
flex-basis: 100%;
flex: 1;
padding: 3px;
}
.kpi-card-containers {
padding: 0 0.3em 0 0;
}
.detail-box {
display: block;
color: #fff;
text-align: center;
height: 150px;
width: calc(100% - 16px);
position: relative;
MIN-WIDTH: 0;
float: left;
box-shadow: 0 0 15px -5px rgba(0,0,0,.1), 0 0 0 1px rgb(144,157,165,.1);
margin: 10px;
border-radius: 4px;
overflow: hidden;
}
.detail-box-kpi-value{
display: block;
font-size: 52px;
position: relative;
height: 108px;
line-height: 118px;
}
.detail-box-kpi-name{
font-size: 14px;
display: block;
position: relative;
background-color: rgba(0,0,0,.07);
height: 42px;
line-height: 44px;
font-weight: 700;
}
.summary-box{
display: block;
text-align: center;
height: 80px;
width: calc(100% - 16px);
position: relative;
MIN-WIDTH: 0;
background-color: #fff;
float: left;
box-shadow: 0 0 15px -5px rgba(0,0,0,.1), 0 0 0 1px rgb(144,157,165,.1);
margin: 10px;
border-radius: 4px;
overflow: hidden;
}
.summary-box-kpi-value{
font-size: 42px;
line-height: 68px;
}
.summary-box-kpi-name{
display: block;
position: relative;
bottom: 14px;
font-size: 14px;
font-weight: bold;
line-height: 24px;
}
@media screen and (min-width: 64em){
.large-3 {
width: calc(25% - 5px) !important;
}
}
@media screen and (max-width: 39.9375em) {
.small-12 {
width: 100% !important;
}
}
@media screen and (min-width: 40em){
.medium-4 {
width: calc(33.33333% - 5px);
}
}
.column, .columns {
float: left;
}
.ang-dbtitle {
font-size: 18px;
color: #666;
}
.ang-dbSubTitleLbl {
font-size: 14px;
font-weight: 400;
color: #787878;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
</head>
<body>
<%
//Modified by Ahmed on 15/06/2016 [UserInfoBean is initialized and session is checked] [START]
UserInfoBean userInfo = (ibase.utility.UserInfoBean) session.getAttribute("USER_INFO");
String referer = request.getRequestURL().toString();
referer = referer.substring(referer.indexOf("ibase") - 1);
......@@ -78,202 +294,299 @@
{
month = "10/2019";
}
Connection con = null;
Statement stmt=null;;
ResultSet rs = null;
StringBuffer htmlStrBuff = new StringBuffer();
try
{
StringBuffer sqlbuffer = new StringBuffer();
sqlbuffer.append("select DSS.DOC_DATE as \"TRANSACTION DATE\",");
sqlbuffer.append(" DSS.POS_CODE as \"LEVEL CODE\",");
sqlbuffer.append(" DHH.lv4 as \"LEVEL1 CODE\",");
sqlbuffer.append(" DHH.lv4_descr as \"LEVEL1 DESCRIPTION\",");
sqlbuffer.append(" DHH.lv3 as \"LEVEL2 CODE\",");
sqlbuffer.append(" DHH.lv3_descr as \"LEVEL2 DESCRIPTION\",");
sqlbuffer.append(" DHH.lv2 as \"LEVEL3 CODE\",");
sqlbuffer.append(" DHH.lv2_descr as \"LEVEL3 DESCRIPTION\",");
sqlbuffer.append(" DHH.lv1 as \"LEVEL4 CODE\",");
sqlbuffer.append(" DHH.lv1_descr as \"LEVEL4 DESCRIPTION\",");
sqlbuffer.append(" DHH.POS_CODE as \"POSITION CODE\",");
sqlbuffer.append(" DHH.POOL_CODE as \"POOL CODE\",");
sqlbuffer.append(" DHH.TABLE_NO as \"TABLE NO\",");
sqlbuffer.append(" DHH.VERSION_ID as \"VERSION ID\",");
sqlbuffer.append(" DSS.CUST_CODE as \"CUSTOMER CODE\",");
sqlbuffer.append(" (SELECT CUST_NAME from SUNERP.CUSTOMER where CUST_CODE = DSS.CUST_CODE) as \"CUSTOMER NAME\",");
sqlbuffer.append(" DSS.SITE_CODE as \"SITE CODE\",");
sqlbuffer.append(" (SELECT DESCR from SUNERP.SITE where SITE_CODE = DSS.SITE_CODE) as \"SITE DESCRIPTION\",");
sqlbuffer.append(" DSS.ITEM_CODE AS \"ITEM CODE\", I.DESCR AS \"ITEM DESCRIPTION\",");
sqlbuffer.append(" I.ITEM_SER as \"ITEM SERIES\",");
sqlbuffer.append(" ISER.DESCR as \"ITEM SERIES DESCRIPTION\",");
sqlbuffer.append(" ISER.PRODUCT_LINE as \"PRODUCT LINE\",");
sqlbuffer.append(" (SELECT descr from SUNERP.GENCODES where FLD_NAME='PRODUCT_LINE' AND mod_name='W_ITEMSER' AND RPAD(fld_value, 5, ' ') = ISER.PRODUCT_LINE) as \"PRODUCT LINE DESCRIPTION\",");
sqlbuffer.append(" DSS.NET_SALES_VALUE as \"NET SALES VALUE\",");
sqlbuffer.append(" DSS.SALES_QTY as \"SALES QUANTITY\",");
sqlbuffer.append(" DSS.GROSS_SALES_VALUE as \"GROSS SALES VALUE\",");
sqlbuffer.append(" DSS.FREE_QTY as \"FREE QUANTITY\",");
sqlbuffer.append(" DSS.FREE_SALES_VALUE as \"FREE SALES VALUE\",");
sqlbuffer.append(" DSS.NET_SALES_QTY as \"NET SALES QUANTITY\",");
sqlbuffer.append(" DSS.REPL_VALUE as \"REPLACEMENT VALUE\",");
sqlbuffer.append(" DSS.SALEABLE_RETURN_QTY as \"SALEABLE RETURN QUANTITY\",");
sqlbuffer.append(" DSS.SALEABLE_RETURN_AMT as \"SALEABLE RETURN VALUE\",");
sqlbuffer.append(" DSS.BREAKAGE_RETURN_QTY as \"DAMAGED RETURN QUANTITY\",");
sqlbuffer.append(" DSS.BREAKAGE_RETURN_AMT as \"DAMAGED RETURN VALUE\",");
sqlbuffer.append(" DSS.EXPIRY_RETURN_QTY as \"EXPIRY RETURN QUANTITY\",");
sqlbuffer.append(" DSS.EXPIRY_RETURN_AMT as \"EXPIRY RETURN VALUE\",");
sqlbuffer.append(" DSS.CORRECTION_RETURN_QTY as \"CANCELED RETURN QUANTITY\",");
sqlbuffer.append(" DSS.CORRECTION_RETURN_AMT as \"CANCELED RETURN VALUE\",");
sqlbuffer.append(" DSS.REPL_RETURN_QTY as \"REPLACEMENT RETURN QUANTITY\",");
sqlbuffer.append(" DSS.REPL_RETURN_VALUE as \"REPLACEMENT RETURN VALUE\",");
sqlbuffer.append(" DSS.RETURN_QTY as \"RETURN QUANTITY\",");
sqlbuffer.append(" DSS.GROSS_RETURN_VALUE as \"GROSS RETURN VALUE\",");
sqlbuffer.append(" DSS.NET_RETURN_VALUE as \"NET RETURN VALUE\" ,");
sqlbuffer.append(" DSS.TRAN_ID,");
sqlbuffer.append(" DSS.REPL_QTY as \"REPLACEMENT QUANTITY\",");
sqlbuffer.append(" DSS.DISC_AMT,");
sqlbuffer.append(" DSS.MRP,");
sqlbuffer.append(" DSS.PTR,");
sqlbuffer.append(" DSS.PTS,");
sqlbuffer.append(" DSS.HSN_CODE,");
sqlbuffer.append(" DSS.PACK,");
sqlbuffer.append(" DUE_DATE,");
sqlbuffer.append(" DSS.CGST_AMT,");
sqlbuffer.append(" DSS.CGST_RATE,");
sqlbuffer.append(" DSS.SGST_RATE,");
sqlbuffer.append(" DSS.SGST_AMT,");
sqlbuffer.append(" DSS.CITY,");
sqlbuffer.append(" DSS.ITEM_BRAND,");
sqlbuffer.append(" DSS.IGST_AMT,");
sqlbuffer.append(" DSS.IGST_RATE,");
sqlbuffer.append(" DSS.REF_SER,");
sqlbuffer.append(" DSS.SALES_VALUE,");
sqlbuffer.append(" DSS.RETURN_VALUE,");
sqlbuffer.append(" DSS.CUST_CODE__BIL");
sqlbuffer.append(" from SUNERP.DWH_SALES_SUM DSS");
sqlbuffer.append(" LEFT OUTER JOIN SUNERP.ITEM I ON DSS.ITEM_CODE = I.ITEM_CODE");
sqlbuffer.append(" LEFT OUTER JOIN SUNERP.ITEMSER ISER ON I.ITEM_SER = ISER.ITEM_SER,");
sqlbuffer.append(" (");
sqlbuffer.append(" select lv1.pos_code lv1, lv1.pos_code__repto lv1_repo, case when lv1.descr is null then 'NA' else lv1.descr end lv1_descr,");
sqlbuffer.append(" lv2.pos_code lv2, lv2.pos_code__repto lv2_repo, case when lv2.descr is null then 'NA' else lv2.descr end lv2_descr,");
sqlbuffer.append(" lv3.pos_code lv3, lv3.pos_code__repto lv3_repo, case when lv3.descr is null then 'NA' else lv3.descr end lv3_descr,");
sqlbuffer.append(" lv4.pos_code lv4, lv4.pos_code__repto lv4_repo, case when lv4.descr is null then 'NA' else lv4.descr end lv4_descr,");
sqlbuffer.append(" lv1.pos_code, lv1.table_no, lv1.version_id, lv1.pool_code");
sqlbuffer.append(" from SUNERP.org_structure lv1");
sqlbuffer.append(" left outer join SUNERP.org_structure lv2 on lv1.pos_code__repto = lv2.pos_code and Lv1.TABLE_NO=Lv2.TABLE_NO and Lv1.VERSION_ID=Lv2.VERSION_ID");
sqlbuffer.append(" left outer join SUNERP.org_structure lv3 on lv2.pos_code__repto = lv3.pos_code and Lv2.TABLE_NO=Lv3.TABLE_NO and Lv2.VERSION_ID=Lv3.VERSION_ID");
sqlbuffer.append(" left outer join SUNERP.org_structure lv4 on lv3.pos_code__repto = lv4.pos_code and Lv3.TABLE_NO=Lv4.TABLE_NO and Lv3.VERSION_ID=Lv4.VERSION_ID");
sqlbuffer.append(" ) DHH");
sqlbuffer.append(" WHERE DHH.POS_CODE = DSS.POS_CODE");
sqlbuffer.append(" AND DHH.VERSION_ID in (SELECT V.VERSION_ID FROM SUNERP.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO)");
sqlbuffer.append(" AND DHH.TABLE_NO=NVL(ISER.TABLE_NO__HIER, ISER.ITEM_SER)");
sqlbuffer.append(" AND to_char(DSS.DOC_DATE, 'MM/YYYY')= '"+ month +"'");
sqlbuffer.append(" AND I.ITEM_SER >= '00'");
sqlbuffer.append(" AND I.ITEM_SER <= 'zz'");
sqlbuffer.append(" AND DSS.SITE_CODE = '" + siteCode + "' ");
sqlbuffer.append(" AND DSS.POS_CODE IN (");
sqlbuffer.append(" SELECT POS_CODE FROM SUNERP.ORG_STRUCTURE");
sqlbuffer.append(" WHERE VERSION_ID IN (SELECT V.VERSION_ID FROM SUNERP.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) AND TABLE_NO <> 'NFE'");
sqlbuffer.append(" START WITH POS_CODE = ( SELECT POS_CODE FROM SUNERP.ORG_STRUCTURE ");
sqlbuffer.append(" WHERE EMP_CODE= '" + empCode + "' ");
sqlbuffer.append(" AND VERSION_ID IN (SELECT V.VERSION_ID FROM SUNERP.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) AND TABLE_NO <> 'NFE' )");
sqlbuffer.append(" CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO)");
StringBuffer summarySqlBuff = new StringBuffer();
summarySqlBuff.append(" select DHH.POS_CODE, DHH.LV1_DESCR, ");
summarySqlBuff.append(" SUM(DSS.SALES_VALUE) as \"SALES VALUE\", ");
summarySqlBuff.append(" SUM(DSS.SALES_QTY) as \"SALES QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.FREE_SALES_VALUE) as \"FREE SALES VALUE\", ");
summarySqlBuff.append(" SUM(DSS.FREE_QTY) as \"FREE QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.NET_SALES_VALUE) as \"NET SALES VALUE\", ");
summarySqlBuff.append(" SUM(DSS.NET_SALES_QTY) as \"NET SALES QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.GROSS_SALES_VALUE) as \"GROSS SALES VALUE\", ");
summarySqlBuff.append(" SUM(DSS.REPL_VALUE) as \"REPLACEMENT VALUE\", ");
summarySqlBuff.append(" SUM(DSS.SALEABLE_RETURN_QTY) as \"SALEABLE RETURN QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.SALEABLE_RETURN_AMT) as \"SALEABLE RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.BREAKAGE_RETURN_QTY) as \"DAMAGED RETURN QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.BREAKAGE_RETURN_AMT) as \"DAMAGED RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.EXPIRY_RETURN_QTY) as \"EXPIRY RETURN QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.EXPIRY_RETURN_AMT) as \"EXPIRY RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.CORRECTION_RETURN_QTY) as \"CANCELED RETURN QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.CORRECTION_RETURN_AMT) as \"CANCELED RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.REPL_RETURN_QTY) as \"REPLACEMENT RETURN QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.REPL_RETURN_VALUE) as \"REPLACEMENT RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.RETURN_QTY) as \"RETURN QUANTITY\", ");
summarySqlBuff.append(" SUM(DSS.RETURN_VALUE) as \"RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.GROSS_RETURN_VALUE) as \"GROSS RETURN VALUE\", ");
summarySqlBuff.append(" SUM(DSS.NET_RETURN_VALUE) as \"NET RETURN VALUE\" , ");
summarySqlBuff.append(" SUM(DSS.CGST_AMT) as \"CGST Amount\", ");
summarySqlBuff.append(" SUM(DSS.SGST_AMT) as \"SGST Amount\", ");
summarySqlBuff.append(" SUM(DSS.IGST_AMT) as \"IGST Amount\" ");
summarySqlBuff.append(" from MESMERVIS.DWH_SALES_SUM DSS ");
summarySqlBuff.append(" LEFT OUTER JOIN MESMERVIS.ITEM I ON DSS.ITEM_CODE = I.ITEM_CODE ");
summarySqlBuff.append(" LEFT OUTER JOIN MESMERVIS.ITEMSER ISER ON I.ITEM_SER = ISER.ITEM_SER, ");
summarySqlBuff.append(" ( ");
summarySqlBuff.append(" select lv4.level_no lv1_no, lv1.pos_code lv1, lv1.pos_code__repto lv1_repo, case when lv1.descr is null then 'NA' else lv1.descr end lv1_descr, ");
summarySqlBuff.append(" lv2.pos_code lv2, lv2.pos_code__repto lv2_repo, case when lv2.descr is null then 'NA' else lv2.descr end lv2_descr, ");
summarySqlBuff.append(" lv3.pos_code lv3, lv3.pos_code__repto lv3_repo, case when lv3.descr is null then 'NA' else lv3.descr end lv3_descr, ");
summarySqlBuff.append(" lv4.pos_code lv4, lv4.pos_code__repto lv4_repo, case when lv4.descr is null then 'NA' else lv4.descr end lv4_descr, ");
summarySqlBuff.append(" lv1.pos_code, lv1.table_no, lv1.version_id, lv1.pool_code ");
summarySqlBuff.append(" from MESMERVIS.org_structure lv1 ");
summarySqlBuff.append(" left outer join MESMERVIS.org_structure lv2 on lv1.pos_code__repto = lv2.pos_code and Lv1.TABLE_NO=Lv2.TABLE_NO and Lv1.VERSION_ID=Lv2.VERSION_ID ");
summarySqlBuff.append(" left outer join MESMERVIS.org_structure lv3 on lv2.pos_code__repto = lv3.pos_code and Lv2.TABLE_NO=Lv3.TABLE_NO and Lv2.VERSION_ID=Lv3.VERSION_ID ");
summarySqlBuff.append(" left outer join MESMERVIS.org_structure lv4 on lv3.pos_code__repto = lv4.pos_code and Lv3.TABLE_NO=Lv4.TABLE_NO and Lv3.VERSION_ID=Lv4.VERSION_ID ");
summarySqlBuff.append(" ) DHH ");
summarySqlBuff.append(" WHERE DHH.POS_CODE = DSS.POS_CODE ");
summarySqlBuff.append(" AND DHH.VERSION_ID in (SELECT V.VERSION_ID FROM MESMERVIS.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) ");
summarySqlBuff.append(" AND DHH.TABLE_NO=NVL(ISER.TABLE_NO__HIER, ISER.ITEM_SER) ");
summarySqlBuff.append(" AND to_char(DSS.DOC_DATE, 'MM/YYYY')= '"+ month +"' ");
summarySqlBuff.append(" AND I.ITEM_SER >= '00' ");
summarySqlBuff.append(" AND I.ITEM_SER <= 'zz' ");
summarySqlBuff.append(" AND DSS.SITE_CODE = '" + siteCode + "' ");
summarySqlBuff.append(" AND DSS.POS_CODE in ( ");
summarySqlBuff.append(" SELECT POS_CODE FROM MESMERVIS.ORG_STRUCTURE ");
summarySqlBuff.append(" WHERE VERSION_ID IN (SELECT V.VERSION_ID FROM MESMERVIS.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) ");
summarySqlBuff.append(" AND TABLE_NO <> 'NFE' ");
summarySqlBuff.append(" START WITH POS_CODE = (SELECT POS_CODE FROM MESMERVIS.ORG_STRUCTURE WHERE EMP_CODE= '" + empCode + "' AND VERSION_ID IN (SELECT V.VERSION_ID FROM MESMERVIS.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) AND TABLE_NO <> 'NFE' ) ");
summarySqlBuff.append(" CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO) ");
summarySqlBuff.append(" group by DHH.POS_CODE, DHH.LV1_DESCR ");
HashMap sqlDataMap = getSQLResultData(summarySqlBuff.toString(), transDB);
System.out.println("Result sqlDataMap !" + sqlDataMap);
ArrayList<HashMap<String, String>> dataRows = (ArrayList<HashMap<String, String>>) sqlDataMap.get("ROWS");
int noOfRows = dataRows.size();
System.out.println("Result dataRows !" + dataRows);
for( int rowNum = 0; rowNum < noOfRows; rowNum++ ) {
HashMap<String, String> dataMap = dataRows.get(rowNum);
/*
htmlStrBuff.append("<details open>");
htmlStrBuff.append("<TABLE id =\"dataTable\" >");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th></th>");
htmlStrBuff.append("<th>value</th>");
htmlStrBuff.append("<th>quantity</th>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>sales</th>");
htmlStrBuff.append("<td>").append(dataMap.get("SALES VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("SALES QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>free sales</th>");
htmlStrBuff.append("<td>").append(dataMap.get("FREE SALES VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("FREE QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>gross sales</th>");
htmlStrBuff.append("<td>").append(dataMap.get("GROSS SALES VALUE")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>net sales</th>");
htmlStrBuff.append("<td>").append(dataMap.get("NET SALES VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("NET SALES QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("</TABLE>");
htmlStrBuff.append("<summary style=\"outline: none;cursor: pointer;\">");
htmlStrBuff.append("Sales Summary");
htmlStrBuff.append("</summary>");
htmlStrBuff.append("</details>");
htmlStrBuff.append("<details>");
htmlStrBuff.append("<TABLE id =\"dataTable\" >");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th></th>");
htmlStrBuff.append("<th>value</th>");
htmlStrBuff.append("<th>quantity</th>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>saleable return</th>");
htmlStrBuff.append("<td>").append(dataMap.get("SALEABLE RETURN VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("SALEABLE RETURN QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>damaged return</th>");
htmlStrBuff.append("<td>").append(dataMap.get("DAMAGED RETURN VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("DAMAGED RETURN QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>expiry return</th>");
htmlStrBuff.append("<td>").append(dataMap.get("EXPIRY RETURN VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("EXPIRY RETURN QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>canceled return</th>");
htmlStrBuff.append("<td>").append(dataMap.get("CANCELED RETURN VALUE")).append("</td>");
htmlStrBuff.append("<td>").append(dataMap.get("CANCELED RETURN QUANTITY")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>gross return</th>").append("<td>").append(dataMap.get("GROSS RETURN VALUE")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("<tr>");
htmlStrBuff.append("<th>net return</th>").append("<td>").append(dataMap.get("NET RETURN VALUE")).append("</td>");
htmlStrBuff.append("</tr>");
htmlStrBuff.append("</TABLE>");
htmlStrBuff.append("<summary style=\"outline: none;cursor: pointer;\">");
htmlStrBuff.append("Returns Summary");
htmlStrBuff.append("</summary>");
htmlStrBuff.append("</details>");
*/
htmlStrBuff.append("<div style=\"padding: 10px 0 10px 10px;\"> ");
htmlStrBuff.append(" <div class=\"ang-dbtitle\">Sales Trends Data</div>");
htmlStrBuff.append(" <div class=\"ang-dbSubTitleLbl\">");
htmlStrBuff.append(" Employee Code : ").append(empCode);
htmlStrBuff.append(", Site Code : ").append(siteCode);
htmlStrBuff.append(", Month : ").append(month);
htmlStrBuff.append(" </div>");
htmlStrBuff.append("</div>");
htmlStrBuff.append("<details open style=\"padding: 10px 0;\" >");
htmlStrBuff.append("<div class=\"db-kpi-container\">");
htmlStrBuff.append(" <div class=\"kpi-container\">");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #89cbfc;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">SALES VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #86e8c6;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("FREE SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">FREE SALES VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #c0b9f6;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("GROSS SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">GROSS SALES VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #f9af92;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("NET SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">NET SALES VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append("</div>");
htmlStrBuff.append("<summary style=\"outline: none;cursor: pointer;\">");
htmlStrBuff.append("Sales Summary");
htmlStrBuff.append("</summary>");
htmlStrBuff.append("</details>");
htmlStrBuff.append("<details open style=\"padding: 10px 0;\" >");
htmlStrBuff.append("<div class=\"db-kpi-container\">");
htmlStrBuff.append(" <div class=\"kpi-container\">");
htmlStrBuff.append(" <div>");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #89cbfc;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("SALEABLE RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">SALEABLE RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"summary-box\">");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #c26be9;\"> ").append(dataMap.get("DAMAGED RETURN VALUE")).append(" </span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">DAMAGED RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div>");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #86e8c6;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("EXPIRY RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">EXPIRY RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"summary-box\">");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #ffca3b;\"> ").append(dataMap.get("CANCELED RETURN VALUE")).append(" </span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">CANCELED RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div>");
htmlStrBuff.append(" <div class=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"detail-box\" style=\"background-color: #c0b9f6;\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("GROSS RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">GROSS RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"summary-box\">");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\"> ").append(dataMap.get("NET RETURN VALUE")).append(" </span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">NET RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append("</div>");
htmlStrBuff.append("<summary style=\"outline: none;cursor: pointer;\">");
htmlStrBuff.append("Returns Summary");
htmlStrBuff.append("</summary>");
htmlStrBuff.append("</details>");
}
/*
89cbfc
c26be9
ConnDriver mConnDriver = new ConnDriver();
con = mConnDriver.getConnectDB(transDB);
stmt = con.createStatement();
rs = stmt.executeQuery(sqlbuffer.toString());
System.out.println("transDB [" +transDB + "] SQL Exection done ! SQL => \n " + sqlbuffer.toString());
ResultSetMetaData rsmd = rs.getMetaData();
ArrayList<HashMap<String, String>> dataList = new ArrayList<HashMap<String, String>>();
86e8c6
ffca3b
HashMap<Integer, String> dataColsMap = new HashMap<Integer, String>();
int noOfRows = 0;
int noOfColumns = 0;
while(rs.next())
{
System.out.println("Result iteration !");
HashMap<String, String> dataMap = new HashMap<String, String>();
noOfColumns = rsmd.getColumnCount();
System.out.println("Result noOfColumns !" + noOfColumns);
for(int ctr = 1; ctr <= noOfColumns; ctr++)
{
if( noOfRows == 0 )
{
dataColsMap.put(ctr, rsmd.getColumnName(ctr));
}
dataMap.put(rsmd.getColumnName(ctr), rs.getString(ctr));
}
System.out.println("Result dataMap !" + dataMap);
dataList.add(dataMap);
noOfRows++;
}
System.out.println("Result dataColsMap !" + dataColsMap);
int totalRows = noOfRows > 100 ? 100 : noOfRows;
%>
<div>
Sales Trends Data for Month <%=month%> (<%=noOfRows%> rows) <br/>
Displaying <%=totalRows%> rows <br/>
User <%=empCode%> of Site <%=siteCode%> <br/>
</div>
<TABLE id ="dataTable" class="tableFormat" align="left" width="100%">
<tr>
<%
for( int ctr = 1; ctr <= noOfColumns; ctr++ )
{
%>
<th><%=dataColsMap.get(ctr)%></th>
<%
}
%>
</tr>
<%
for( int rowNum = 0; rowNum < totalRows; rowNum++ )
{
HashMap<String, String> dataMap = dataList.get(rowNum);
%>
<tr>
<%
for( int ctr = 1; ctr <= noOfColumns; ctr++ )
{
String keyStr = dataColsMap.get(ctr);
%>
<td><%=dataMap.get(keyStr)%></td>
<%
}
%>
</tr>
<%
}
c0b9f6
f37487
f9af92
3e3f3f
POS_CODE
LV1_DESCR
SALES VALUE SALES QUANTITY
FREE SALES VALUE FREE QUANTITY
GROSS SALES VALUE
SALEABLE RETURN QUANTITY SALEABLE RETURN VALUE
DAMAGED RETURN QUANTITY DAMAGED RETURN VALUE
EXPIRY RETURN QUANTITY EXPIRY RETURN VALUE
CANCELED RETURN QUANTITY CANCELED RETURN VALUE
REPLACEMENT RETURN QUANTITY REPLACEMENT RETURN VALUE
RETURN QUANTITY RETURN VALUE
GROSS RETURN VALUE
NET RETURN VALUE
NET SALES VALUE
NET SALES QUANTITY
CGST Amount
SGST Amount
IGST Amount
*/
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if( stmt != null )
{
stmt.close();
stmt = null;
}
if( con != null )
{
con.close();
con = null;
}
}
catch( Exception eI )
{
eI.printStackTrace();
}
}
%>
</TABLE>
</Div >
</body>
<%=htmlStrBuff.toString()%>
<!--
<form method="POST" action="saleTrendsDetails.jsp">
<%=htmlStrBuff.toString()%>
<input type="hidden" name="empCode" id="empCode" value='<%=empCode%>'/>
<input type="hidden" name="siteCode" id="siteCode" value='<%=siteCode%>'/>
<input type="hidden" name="month" id="month" value='<%=month%>'/>
<button type="submit">Explore Data</button>
</form>
-->
</body>
</html>
<html>
<head>
<style>
*{
font-family: Arial, Helvetica, sans-serif;
}
body{
background-color: #efefef;
}
.input-field label{
display: block;
font-size: 12px;
}
.input-field input{
border: none;
border-bottom: 1px solid #000;
outline: none;
background-color: transparent;
}
.input-field{
padding: 10px 0;
display: block;
}
.view-button{
border-style: none;
border-radius: 2px;
background-color: #b4adee;
color: #fff;
padding: 5px 10px;
min-width: 80px;
cursor: pointer;
}
.ang-dbtitle {
font-size: 18px;
color: #666;
}
.input-form{
padding: 10px;
}
</style>
<title>Sales Trends</title>
</head>
<body>
<h3>Sales Trends Data</h3>
<div style="padding: 10px 0 10px 10px;">
<div class="ang-dbtitle">
Sales Trends Data
</div>
</div>
<form method="POST" action="executeSaleTrends.jsp">
Employee Code : <br/>
<input type="text" name="empCode" id="empCode"/><br/><br/>
Site Code : <br/>
<input type="text" name="siteCode" id="siteCode"/><br/><br/>
Month : <br/>
<input type="text" placeholder="MM/YYYY" name="month" id="month"/><br/><br/>
<button type="submit">View Data</button>
<div class="input-form">
<div class="input-field">
<label>Employee Code : </label>
<input type="text" name="empCode" id="empCode"/>
</div>
<div class="input-field">
<label>Site Code : </label>
<input type="text" name="siteCode" id="siteCode"/>
</div>
<div class="input-field">
<label>Month : </label>
<input type="text" placeholder="MM/YYYY" name="month" id="month"/>
</div>
<button class="view-button" type="submit">View Data</button>
</div>
</form>
</body>
</html>
<%System.out.println("------------SaleTrendsDetails Called------"); %>
<?xml version="1.0" encoding="UTF-8"?>
<%@page import="ibase.webitm.bean.*, ibase.utility.CommonConstants"%>
<%@page import="ibase.webitm.utility.ITMException"%>
<%@page import="ibase.utility.*"%>
<%@page import="ibase.utility.UserInfoBean"%>
<%@page import="java.io.*,java.util.*,java.util.zip.*"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="ibase.system.config.ConnDriver"%>
<%!
public HashMap getSQLResultData(String sqlStr, String transDB)
{
HashMap sqlDataMap = null;
Connection con = null;
Statement stmt=null;;
ResultSet rs = null;
try
{
System.out.println("Inside SaleTrendsDetails::getSQLResultData transDB [" +transDB + "] SQL Exection done ! SQL => \n " + sqlStr);
ConnDriver mConnDriver = new ConnDriver();
con = mConnDriver.getConnectDB(transDB);
if( con == null ) {
System.out.println("Unable to get connection for [" + transDB + "]");
throw new Exception("Unable to get connection for [" + transDB + "]");
}
ArrayList<HashMap<String, String>> dataRows = new ArrayList<HashMap<String, String>>();
HashMap<Integer, String> dataCols = new HashMap<Integer, String>();
sqlDataMap = new HashMap();
int noOfRows = 0;
int noOfColumns = 0;
stmt = con.createStatement();
rs = stmt.executeQuery(sqlStr);
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next())
{
//System.out.println("Result iteration !");
HashMap<String, String> rowDataMap = new HashMap<String, String>();
noOfColumns = rsmd.getColumnCount();
//System.out.println("Result noOfColumns !" + noOfColumns);
for(int ctr = 1; ctr <= noOfColumns; ctr++)
{
if( noOfRows == 0 )
{
dataCols.put(ctr, rsmd.getColumnName(ctr));
}
rowDataMap.put(rsmd.getColumnName(ctr), rs.getString(ctr));
}
//System.out.println("Result dataMap !" + dataMap);
dataRows.add(rowDataMap);
noOfRows++;
}
//System.out.println("Result dataArray !" + dataArray);
sqlDataMap.put("COLS", dataCols);
sqlDataMap.put("ROWS", dataRows);
}
catch(Exception e)
{
sqlDataMap = null;
System.out.println("Inside SaleTrendsDetails::getSQLResultData Exception : " + e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if( stmt != null )
{
stmt.close();
stmt = null;
}
if( con != null )
{
con.close();
con = null;
}
}
catch( Exception eI )
{
eI.printStackTrace();
}
}
return sqlDataMap;
}
%>
<html>
<head>
<style>
#dataTable {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
#dataTable td, #dataTable th {
border: 1px solid #ddd;
padding: 8px;
white-space: nowrap;
}
#dataTable tr:nth-child(even){background-color: #f2f2f2;}
#dataTable tr:hover {background-color: #ddd;}
#dataTable th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #b4adee ; /*#5fdeb2*/
color: white;
}
</style>
</head>
<body>
<Div style="position:relative;top:0;left:0;height:85%;width:100%;overflow:scroll;">
<%
UserInfoBean userInfo = (ibase.utility.UserInfoBean) session.getAttribute("USER_INFO");
String referer = request.getRequestURL().toString();
referer = referer.substring(referer.indexOf("ibase") - 1);
referer = referer + "?" + (String) request.getQueryString();
if (userInfo == null) //Ahmed
{
%>
<jsp:forward page="/jsp/DirectAccess.jsp">
<jsp:param name="REFERER" value="<%=referer%>"/>
</jsp:forward>
<%
}
//Modified by Ahmed on 15/06/2016 [UserInfoBean is initialized and session is checked] [END]
String userCode = userInfo.getLoginCode();
String transDB = userInfo.getTransDB();
String site = userInfo.getPropValue("SITE_CODE");
String empCode = request.getParameter("empCode");
if( empCode == null || empCode.trim().length() == 0)
{
empCode = userCode;
}
String siteCode = request.getParameter("siteCode");
if( siteCode == null || siteCode.trim().length() == 0)
{
siteCode = site;
}
String month = request.getParameter("month");
if( month == null || month.trim().length() == 0)
{
month = "10/2019";
}
StringBuffer htmlStrBuff = new StringBuffer();
try
{
StringBuffer detailSqlBuff = new StringBuffer();
detailSqlBuff.append(" SELECT ");
detailSqlBuff.append(" DSS.TRAN_ID, ");
detailSqlBuff.append(" DSS.DOC_DATE as \"TRANSACTION DATE\",");
detailSqlBuff.append(" DSS.REF_SER,");
detailSqlBuff.append(" DHH.POS_CODE as \"POSITION CODE\",");
detailSqlBuff.append(" DSS.CUST_CODE as \"CUSTOMER CODE\",");
detailSqlBuff.append(" (SELECT CUST_NAME from MESMERVIS.CUSTOMER where CUST_CODE = DSS.CUST_CODE) as \"CUSTOMER NAME\",");
detailSqlBuff.append(" DSS.SITE_CODE as \"SITE CODE\",");
detailSqlBuff.append(" (SELECT DESCR from MESMERVIS.SITE where SITE_CODE = DSS.SITE_CODE) as \"SITE DESCRIPTION\",");
detailSqlBuff.append(" DSS.ITEM_CODE AS \"ITEM CODE\", I.DESCR AS \"ITEM DESCRIPTION\",");
detailSqlBuff.append(" I.ITEM_SER as \"ITEM SERIES\",");
detailSqlBuff.append(" ISER.DESCR as \"ITEM SERIES DESCRIPTION\",");
detailSqlBuff.append(" ISER.PRODUCT_LINE as \"PRODUCT LINE\",");
detailSqlBuff.append(" (SELECT descr from MESMERVIS.GENCODES where FLD_NAME='PRODUCT_LINE' AND mod_name='W_ITEMSER' AND RPAD(fld_value, 5, ' ') = ISER.PRODUCT_LINE) as \"PRODUCT LINE DESCRIPTION\",");
detailSqlBuff.append(" DSS.SALES_VALUE as \"SALES VALUE\",");
detailSqlBuff.append(" DSS.SALES_QTY as \"SALES QUANTITY\",");
detailSqlBuff.append(" DSS.FREE_QTY as \"FREE QUANTITY\",");
detailSqlBuff.append(" DSS.FREE_SALES_VALUE as \"FREE SALES VALUE\",");
detailSqlBuff.append(" DSS.REPL_VALUE as \"REPLACEMENT VALUE\",");
detailSqlBuff.append(" DSS.REPL_QTY as \"REPLACEMENT QUANTITY\",");
detailSqlBuff.append(" DSS.GROSS_SALES_VALUE as \"GROSS SALES VALUE\",");
detailSqlBuff.append(" DSS.NET_SALES_VALUE as \"NET SALES VALUE\",");
detailSqlBuff.append(" DSS.NET_SALES_QTY as \"NET SALES QUANTITY\",");
detailSqlBuff.append(" DSS.SALEABLE_RETURN_AMT as \"SALEABLE RETURN VALUE\",");
detailSqlBuff.append(" DSS.SALEABLE_RETURN_QTY as \"SALEABLE RETURN QUANTITY\",");
detailSqlBuff.append(" DSS.BREAKAGE_RETURN_AMT as \"DAMAGED RETURN VALUE\",");
detailSqlBuff.append(" DSS.BREAKAGE_RETURN_QTY as \"DAMAGED RETURN QUANTITY\",");
detailSqlBuff.append(" DSS.EXPIRY_RETURN_AMT as \"EXPIRY RETURN VALUE\",");
detailSqlBuff.append(" DSS.EXPIRY_RETURN_QTY as \"EXPIRY RETURN QUANTITY\",");
detailSqlBuff.append(" DSS.CORRECTION_RETURN_AMT as \"CANCELED RETURN VALUE\",");
detailSqlBuff.append(" DSS.CORRECTION_RETURN_QTY as \"CANCELED RETURN QUANTITY\",");
detailSqlBuff.append(" DSS.REPL_RETURN_VALUE as \"REPLACEMENT RETURN VALUE\",");
detailSqlBuff.append(" DSS.REPL_RETURN_QTY as \"REPLACEMENT RETURN QUANTITY\",");
detailSqlBuff.append(" DSS.RETURN_VALUE as \"RETURN VALUE\",");
detailSqlBuff.append(" DSS.RETURN_QTY as \"RETURN QUANTITY\",");
detailSqlBuff.append(" DSS.GROSS_RETURN_VALUE as \"GROSS RETURN VALUE\",");
detailSqlBuff.append(" DSS.NET_RETURN_VALUE as \"NET RETURN VALUE\" ,");
detailSqlBuff.append(" DSS.DISC_AMT \"DISCOUNT AMOUNT\",");
detailSqlBuff.append(" DSS.MRP \"MRP\",");
detailSqlBuff.append(" DSS.PTR \"PTR\",");
detailSqlBuff.append(" DSS.PTS \"PTS\",");
detailSqlBuff.append(" DSS.HSN_CODE \"HSN CODE\",");
detailSqlBuff.append(" DSS.PACK \"PACK CODE\",");
detailSqlBuff.append(" DUE_DATE \"DUE DATE\",");
detailSqlBuff.append(" DSS.CITY \"CITY\",");
detailSqlBuff.append(" DSS.ITEM_BRAND \"ITEM BRAND\",");
detailSqlBuff.append(" DSS.CGST_AMT \"CGST AMOUNT\",");
detailSqlBuff.append(" DSS.CGST_RATE \"CGST RATE\",");
detailSqlBuff.append(" DSS.SGST_AMT \"SGST AMOUNT\",");
detailSqlBuff.append(" DSS.SGST_RATE \"SGST RATE\",");
detailSqlBuff.append(" DSS.IGST_AMT \"IGST AMOUNT\",");
detailSqlBuff.append(" DSS.IGST_RATE \"IGST RATE\",");
detailSqlBuff.append(" DSS.CUST_CODE__BIL as \"CUSTOMER CODE BILLING\",");
detailSqlBuff.append(" DSS.POS_CODE as \"LEVEL CODE\",");
detailSqlBuff.append(" DHH.lv4 as \"LEVEL1 CODE\",");
detailSqlBuff.append(" DHH.lv4_descr as \"LEVEL1 DESCRIPTION\",");
detailSqlBuff.append(" DHH.lv3 as \"LEVEL2 CODE\",");
detailSqlBuff.append(" DHH.lv3_descr as \"LEVEL2 DESCRIPTION\",");
detailSqlBuff.append(" DHH.lv2 as \"LEVEL3 CODE\",");
detailSqlBuff.append(" DHH.lv2_descr as \"LEVEL3 DESCRIPTION\",");
detailSqlBuff.append(" DHH.lv1 as \"LEVEL4 CODE\",");
detailSqlBuff.append(" DHH.lv1_descr as \"LEVEL4 DESCRIPTION\" ");
detailSqlBuff.append(" from MESMERVIS.DWH_SALES_SUM DSS");
detailSqlBuff.append(" LEFT OUTER JOIN MESMERVIS.ITEM I ON DSS.ITEM_CODE = I.ITEM_CODE");
detailSqlBuff.append(" LEFT OUTER JOIN MESMERVIS.ITEMSER ISER ON I.ITEM_SER = ISER.ITEM_SER,");
detailSqlBuff.append(" (");
detailSqlBuff.append(" select lv1.pos_code lv1, lv1.pos_code__repto lv1_repo, case when lv1.descr is null then 'NA' else lv1.descr end lv1_descr,");
detailSqlBuff.append(" lv2.pos_code lv2, lv2.pos_code__repto lv2_repo, case when lv2.descr is null then 'NA' else lv2.descr end lv2_descr,");
detailSqlBuff.append(" lv3.pos_code lv3, lv3.pos_code__repto lv3_repo, case when lv3.descr is null then 'NA' else lv3.descr end lv3_descr,");
detailSqlBuff.append(" lv4.pos_code lv4, lv4.pos_code__repto lv4_repo, case when lv4.descr is null then 'NA' else lv4.descr end lv4_descr,");
detailSqlBuff.append(" lv1.pos_code, lv1.table_no, lv1.version_id, lv1.pool_code");
detailSqlBuff.append(" from MESMERVIS.org_structure lv1");
detailSqlBuff.append(" left outer join MESMERVIS.org_structure lv2 on lv1.pos_code__repto = lv2.pos_code and Lv1.TABLE_NO=Lv2.TABLE_NO and Lv1.VERSION_ID=Lv2.VERSION_ID");
detailSqlBuff.append(" left outer join MESMERVIS.org_structure lv3 on lv2.pos_code__repto = lv3.pos_code and Lv2.TABLE_NO=Lv3.TABLE_NO and Lv2.VERSION_ID=Lv3.VERSION_ID");
detailSqlBuff.append(" left outer join MESMERVIS.org_structure lv4 on lv3.pos_code__repto = lv4.pos_code and Lv3.TABLE_NO=Lv4.TABLE_NO and Lv3.VERSION_ID=Lv4.VERSION_ID");
detailSqlBuff.append(" ) DHH");
detailSqlBuff.append(" WHERE DHH.POS_CODE = DSS.POS_CODE");
detailSqlBuff.append(" AND DHH.VERSION_ID in (SELECT V.VERSION_ID FROM MESMERVIS.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO)");
detailSqlBuff.append(" AND DHH.TABLE_NO=NVL(ISER.TABLE_NO__HIER, ISER.ITEM_SER)");
detailSqlBuff.append(" AND to_char(DSS.DOC_DATE, 'MM/YYYY')= '"+ month +"'");
detailSqlBuff.append(" AND I.ITEM_SER >= '00'");
detailSqlBuff.append(" AND I.ITEM_SER <= 'zz'");
detailSqlBuff.append(" AND DSS.SITE_CODE = '" + siteCode + "' ");
detailSqlBuff.append(" AND DSS.POS_CODE IN (");
detailSqlBuff.append(" SELECT POS_CODE FROM MESMERVIS.ORG_STRUCTURE");
detailSqlBuff.append(" WHERE VERSION_ID IN (SELECT V.VERSION_ID FROM MESMERVIS.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) AND TABLE_NO <> 'NFE'");
detailSqlBuff.append(" START WITH POS_CODE = ( SELECT POS_CODE FROM MESMERVIS.ORG_STRUCTURE ");
detailSqlBuff.append(" WHERE EMP_CODE= '" + empCode + "' ");
detailSqlBuff.append(" AND VERSION_ID IN (SELECT V.VERSION_ID FROM MESMERVIS.VERSION V WHERE TO_DATE(SYSDATE) BETWEEN V.EFF_FROM AND V.VALID_UPTO) AND TABLE_NO <> 'NFE' )");
detailSqlBuff.append(" CONNECT BY PRIOR POS_CODE = POS_CODE__REPTO)");
HashMap sqlDataMap = getSQLResultData(detailSqlBuff.toString(), transDB);
System.out.println("Result sqlDataMap !" + sqlDataMap);
ArrayList<HashMap<String, String>> dataRows = (ArrayList<HashMap<String, String>>) sqlDataMap.get("ROWS");
HashMap<Integer, String> dataCols = (HashMap<Integer, String>)sqlDataMap.get("COLS");
int noOfRows = dataRows.size();
int totalRows = noOfRows > 100 ? 100 : noOfRows;
int noOfColumns = dataCols.size();
htmlStrBuff.append("<TABLE id =\"dataTable\">");
htmlStrBuff.append("<tr>");
for( int ctr = 1; ctr <= noOfColumns; ctr++ ) {
htmlStrBuff.append("<th>");
htmlStrBuff.append(dataCols.get(ctr));
htmlStrBuff.append("</th>");
}
htmlStrBuff.append("</tr>");
for( int rowNum = 0; rowNum < totalRows; rowNum++ ) {
htmlStrBuff.append("<tr>");
HashMap<String, String> dataMap = dataRows.get(rowNum);
for( int ctr = 1; ctr <= noOfColumns; ctr++ ) {
String keyStr = dataCols.get(ctr);
htmlStrBuff.append("<td>");
htmlStrBuff.append(dataMap.get(keyStr));
htmlStrBuff.append("</td>");
}
htmlStrBuff.append("</tr>");
}
htmlStrBuff.append("</TABLE>");
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<%=htmlStrBuff.toString()%>
</Div >
</body>
</html>
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