Commit 83e3fe76 authored by prumde's avatar prumde

Updated

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@211363 ce508802-f39f-4f6c-b175-0d175dae99d5
parent b9f009c9
...@@ -7,14 +7,153 @@ ...@@ -7,14 +7,153 @@
<%@page import="ibase.ejb.CommonDBAccessEJB"%> <%@page import="ibase.ejb.CommonDBAccessEJB"%>
<%@page import="java.io.*,java.text.*,java.util.*,java.util.Calendar,java.util.zip.*"%> <%@page import="java.io.*,java.text.*,java.util.*,java.util.Calendar,java.util.zip.*"%>
<%@page import="java.text.SimpleDateFormat"%> <%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.sql.Connection"%> <%-- <%@page import="ibase.webitm.dashboard.fin.ejb.UpdateDWHSalesSumStanCodeWise"%> --%>
<%@page import="java.sql.*"%> <%@page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="ibase.system.config.ConnDriver"%> <%@page import="ibase.system.config.ConnDriver"%>
<%! <%!
public HashMap getSQLResultData(String sqlStr, String transDB) private String getMonth(String selectedMonth, int selectedYear)
{
System.out.println(" selectedMonth = "+selectedMonth);
String monthInChar = "";
try
{
if (selectedMonth.equals("1"))
{
monthInChar = "Jan";
}
if (selectedMonth.equals("2"))
{
monthInChar = "Feb";
}
if (selectedMonth.equals("3"))
{
monthInChar = "Mar";
}
if (selectedMonth.equals("4"))
{
monthInChar = "Apr";
}
if (selectedMonth.equals("5"))
{
monthInChar = "May";
}
if (selectedMonth.equals("6"))
{
monthInChar = "Jun";
}
if (selectedMonth.equals("7"))
{
monthInChar = "Jul";
}
if (selectedMonth.equals("8"))
{
monthInChar = "Aug";
}
if (selectedMonth.equals("9"))
{
monthInChar = "Sep";
}
if (selectedMonth.equals("10"))
{
monthInChar = "Oct";
}
if (selectedMonth.equals("11"))
{
monthInChar = "Nov";
}
if (selectedMonth.equals("12"))
{
monthInChar = "Dec";
}
}
catch(Exception e)
{
System.out.println("Inside SaleTrendsDetails:: getMonth :: "+ e.getMessage());
}
String resultStr = monthInChar + " " + selectedYear;
System.out.println(" resultStr = "+resultStr);
return resultStr;
}
private String getSalesSummarySQL(String empCode, String siteCode, String monthStr, boolean isGroupByDate )
{
String schemaName = "";
StringBuffer summarySqlBuff = new StringBuffer();
summarySqlBuff.append(" select DHH.POS_CODE, DHH.LV1_DESCR, ");
if( isGroupByDate ) summarySqlBuff.append(" DSS.DOC_DATE, ");
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 " + schemaName + "DWH_SALES_SUM DSS ");
summarySqlBuff.append(" LEFT OUTER JOIN " + schemaName + "ITEM I ON DSS.ITEM_CODE = I.ITEM_CODE ");
summarySqlBuff.append(" LEFT OUTER JOIN " + schemaName + "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 " + schemaName + "org_structure lv1 ");
summarySqlBuff.append(" left outer join " + schemaName + "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 " + schemaName + "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 " + schemaName + "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 " + schemaName + "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')= '"+ monthStr +"' ");
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 " + schemaName + "ORG_STRUCTURE ");
summarySqlBuff.append(" WHERE VERSION_ID IN (SELECT V.VERSION_ID FROM " + schemaName + "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 " + schemaName + "ORG_STRUCTURE WHERE EMP_CODE= '" + empCode + "' AND VERSION_ID IN (SELECT V.VERSION_ID FROM " + schemaName + "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 ");
if( isGroupByDate ) summarySqlBuff.append(" ,DSS.DOC_DATE ORDER BY DSS.DOC_DATE ");
System.out.println("summarySqlBuff !" + summarySqlBuff.toString());
return summarySqlBuff.toString();
}
private String replace(String value, String serach, String replacement)
{
if(value != null)
{
value = value.replaceAll(serach, replacement);
}
return value;
}
public HashMap getSQLResultData(String sqlStr, String transDB) throws Exception
{ {
HashMap sqlDataMap = null; HashMap sqlDataMap = null;
Connection con = null; Connection con = null;
...@@ -76,6 +215,7 @@ public HashMap getSQLResultData(String sqlStr, String transDB) ...@@ -76,6 +215,7 @@ public HashMap getSQLResultData(String sqlStr, String transDB)
sqlDataMap = null; sqlDataMap = null;
System.out.println("Inside SaleTrendsDetails::getSQLResultData Exception : " + e.getMessage()); System.out.println("Inside SaleTrendsDetails::getSQLResultData Exception : " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
throw new Exception(e);
} }
finally finally
{ {
...@@ -100,261 +240,284 @@ public HashMap getSQLResultData(String sqlStr, String transDB) ...@@ -100,261 +240,284 @@ public HashMap getSQLResultData(String sqlStr, String transDB)
return sqlDataMap; return sqlDataMap;
} }
private String formatValue(String value) private String formatValue(String valueStr)
{ {
try try
{ {
if( !"0".equalsIgnoreCase(value) ) valueStr = valueStr.trim();
if( !"0".equalsIgnoreCase(valueStr) )
{ {
NumberFormat nf = NumberFormat.getCurrencyInstance(); valueStr = format( Double.parseDouble(valueStr) );
nf.setMaximumFractionDigits(0);
value = nf.format(Double.parseDouble(value));
} }
} }
catch(Exception e) catch(Exception e)
{ {
} }
return value; return valueStr;
} }
public String format(double value)
private String getMonth(String selectedMonth, int selectedYear)
{ {
System.out.println(" selectedMonth = "+selectedMonth); if (value < 1000)
String monthInChar = "";
try
{
if (selectedMonth.equals("1"))
{
monthInChar = "Jan";
}
if (selectedMonth.equals("2"))
{
monthInChar = "Feb";
}
if (selectedMonth.equals("3"))
{
monthInChar = "Mar";
}
if (selectedMonth.equals("4"))
{
monthInChar = "Apr";
}
if (selectedMonth.equals("5"))
{
monthInChar = "May";
}
if (selectedMonth.equals("6"))
{
monthInChar = "Jun";
}
if (selectedMonth.equals("7"))
{
monthInChar = "Jul";
}
if (selectedMonth.equals("8"))
{
monthInChar = "Aug";
}
if (selectedMonth.equals("9"))
{
monthInChar = "Sep";
}
if (selectedMonth.equals("10"))
{
monthInChar = "Oct";
}
if (selectedMonth.equals("11"))
{
monthInChar = "Nov";
}
if (selectedMonth.equals("12"))
{
monthInChar = "Dec";
}
}
catch(Exception e)
{ {
System.out.println("Inside SaleTrendsDetails:: getMonth :: "+ e.getMessage()); return format("###", value);
}
else
{
double hundreds = value % 1000;
int other = (int) (value / 1000);
return format(",##", other) + ',' + format("000", hundreds);
} }
String resultStr = monthInChar + " " + selectedYear;
System.out.println(" resultStr = "+resultStr);
return resultStr;
} }
private String format(String pattern, Object value)
{
return new DecimalFormat(pattern).format(value);
}
%> %>
<html> <html>
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<style> <style>
*{
*{ font-family: Arial, Helvetica, sans-serif;
font-family: Arial, Helvetica, sans-serif; }
} body{
background-color: #efefef;
body{ margin: 0;
background-color: #efefef; padding: 0;
} }
.sales-container{
.db-kpi-container{ max-width: 1024px;
background-color: #efefef; margin: auto;
display: grid; }
width: 100%; .db-kpi-container{
height: auto; background-color: #efefef;
} display: grid;
.db-kpi-row { width: 100%;
display: flex; height: auto;
flex-direction: row; }
flex-wrap: wrap; .db-kpi-row {
width: 100%; display: flex;
} flex-direction: row;
.db-kpi-column { flex-wrap: wrap;
display: flex; width: 100%;
flex-direction: column; }
flex-basis: 100%; .db-kpi-column {
flex: 1; display: flex;
padding: 3px; flex-direction: column;
} flex-basis: 100%;
flex: 1;
.kpi-card-containers { padding: 3px;
padding: 0 0.3em 0 0; }
} .kpi-card-containers {
padding: 0;
.detail-box { }
display: block; .detail-box {
color: #fff; display: block;
text-align: center; color: #fff;
height: 150px; text-align: center;
width: calc(100% - 16px); height: 150px;
position: relative; width: calc(100% - 32px);
MIN-WIDTH: 0; position: relative;
float: left; MIN-WIDTH: 0;
box-shadow: 0 0 15px -5px rgba(0,0,0,.1), 0 0 0 1px rgb(144,157,165,.1); float: left;
margin: 10px; box-shadow: 0 0 15px -5px rgba(0,0,0,.1), 0 0 0 1px rgb(144,157,165,.1);
border-radius: 4px; margin: 8px;
overflow: hidden; padding: 0 8px;
border-radius: 4px;
} overflow: hidden;
background: #fff;
.detail-box-kpi-value{ }
display: block; .detail-box-kpi-value{
font-size: 52px; display: block;
position: relative; font-size: 52px;
height: 108px; position: relative;
line-height: 118px; height: 108px;
} line-height: 118px;
.detail-box-kpi-name{ }
font-size: 14px; .detail-box-kpi-name{
display: block; font-size: 14px;
position: relative; display: block;
background-color: rgba(0,0,0,.07); position: relative;
height: 42px; background-color: rgba(0,0,0,.07);
line-height: 44px; height: 42px;
font-weight: 700; line-height: 44px;
} font-weight: 700;
}
.summary-box{ .summary-box{
display: block; display: block;
text-align: center; text-align: center;
height: 80px; height: 80px;
width: calc(100% - 16px); width: calc(100% - 16px);
position: relative; position: relative;
MIN-WIDTH: 0; MIN-WIDTH: 0;
background-color: #fff; background-color: #fff;
float: left; float: left;
box-shadow: 0 0 15px -5px rgba(0,0,0,.1), 0 0 0 1px rgb(144,157,165,.1); box-shadow: 0 0 15px -5px rgba(0,0,0,.1), 0 0 0 1px rgb(144,157,165,.1);
margin: 10px; margin: 8px;
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
}
} .summary-box-kpi-value{
font-size: 42px;
.summary-box-kpi-value{ line-height: 68px;
font-size: 42px; }
line-height: 68px; .summary-box-kpi-value:before {
} content: "\20B9 ";
.summary-box-kpi-name{ }
display: block; .summary-box-kpi-name{
position: relative; display: block;
bottom: 14px; position: relative;
font-size: 14px; bottom: 14px;
font-weight: bold; font-size: 14px;
line-height: 24px; font-weight: bold;
} line-height: 24px;
text-transform: capitalize;
@media screen and (min-width: 64em){ }
.large-3 { @media screen and (min-width: 64em){
width: calc(25% - 5px) !important; .chart-2{
} width: calc(66.66% - 12px) !important;
.banner-3 { }
/*width: calc(75% - 5px) !important;*/ .large-3 {
width: calc(33.33% - 5px) !important; width: calc(33.33333% - 5px) !important;
margin: 0 21% !important; }
} .db-kpi-header{
.db-kpi-header{ width: calc( 100% - 32px);
width: calc( 75% - 20px); }
} }
} @media screen and (max-width: 39.9375em) {
.small-12 {
width: 100% !important;
@media screen and (max-width: 39.9375em) { }
.small-12 { .chart-2 {
width: 100% !important; width: calc( 99% - 5px ) !important;
} }
.banner-12 { }
width: 100% !important; @media screen and (min-width: 40em){
} .chart-2 {
} width: calc(66.66666% - 5px);
}
.medium-4 {
@media screen and (min-width: 40em){ width: calc(33.33333% - 5px);
.medium-4 { }
width: calc(33.33333% - 5px); }
} .column, .columns {
.banner-4 { float: left;
/*width: calc(100% - 5px) ;*/ }
width: calc(50% - 5px); .db-kpi-header-title {
margin: 0 25%; font-size: 18px;
} color: #666;
} }
.db-kpi-header-info {
.column, .columns { font-size: 14px;
float: left; font-weight: 400;
} color: #787878;
white-space: nowrap;
.db-kpi-header-title { overflow: hidden;
font-size: 18px; text-overflow: ellipsis;
color: #666; display: flex;
} flex-direction: column;
}
.db-kpi-header-info { .db-kpi-header{
font-size: 14px; padding: 10px;
font-weight: 400; display: flex;
color: #787878; justify-content: space-between;
white-space: nowrap; }
overflow: hidden; .nodata-msg-cont {
text-overflow: ellipsis; height: 100px;
display: flex; width: auto;
flex-direction: column; line-height: 100px;
} text-align: center;
font-size: 12px;
.db-kpi-header{ padding: 10px 0 10px 10px;
padding: 10px; box-shadow: 0 0 1px 0px #666;
display: flex; }
justify-content: space-between; .maximize-button{
top: 0;
} right: 0px;
position: absolute;
.nodata-msg-cont { width: 18px;
height: 100px; height: 18px;
width: auto; padding: 7px;
line-height: 100px; cursor: pointer;
text-align: center; }
font-size: 12px; .kpi-box {
padding: 10px 0 10px 10px; height: 150px;
box-shadow: 0 0 1px 0px #666; max-height: 150px;
} box-shadow: 0px 0px 15px -5px rgba(0,0,0,.1), 0px 0px 0px 1px rgb(144, 157, 165,.1);
position: relative;
border-radius: 4px;
cursor: pointer;
display: flex;
flex-direction: column;
margin: 8px;
width: calc( 100% - 16px);
}
.kpi-header {
display: inline-block;
height: 32px;
width: 100%;
}
.kpi-icon {
color: #fff;
padding: 4px;
margin: 4px;
border-radius: 50%;
background: rgba(0, 0, 0, .1);
display: inline-block;
position: relative;
width: 20px;
height: 20px;
}
.kpi-icon img {
height: 15px;
width: 15px;
margin: 3px;
padding: 0;
}
.kpi-title {
color: #fff;
font-size: 16px;
width: calc( 100% - 44px );
line-height: 32px;
display: inline-block;
position: absolute;
text-align: right;
margin: 0 8px 0 0;
text-transform: capitalize;
}
.kpi-count-summary {
display: block;
margin: auto;
padding-bottom: 24px;
height: 50px;
}
.kpi-count {
color: #fff;
padding: 0;
font-size: 42px;
display: block;
text-align: center;
height: 36px;
line-height: 36px;
}
.kpi-count:before {
content: "\20B9 ";
}
.kpi-summary {
color: #fff;
padding: 0;
font-size: 12px;
display: block;
text-align: right;
line-height: 24px;
}
.no-kpi-count{
height: 18px;
}
</style> </style>
</head> </head>
<body> <body>
...@@ -421,7 +584,7 @@ private String getMonth(String selectedMonth, int selectedYear) ...@@ -421,7 +584,7 @@ private String getMonth(String selectedMonth, int selectedYear)
StringBuffer htmlHeadBuff = new StringBuffer(); StringBuffer htmlHeadBuff = new StringBuffer();
htmlHeadBuff.append("<div class=\"db-kpi-header\"> "); htmlHeadBuff.append("<div class=\"db-kpi-header\"> ");
htmlHeadBuff.append(" <div class=\"db-kpi-header-title\">Current Sales Summary</div>"); htmlHeadBuff.append(" <div class=\"db-kpi-header-title\">Sales Information</div>");
htmlHeadBuff.append(" <div class=\"db-kpi-header-info\">"); htmlHeadBuff.append(" <div class=\"db-kpi-header-info\">");
htmlHeadBuff.append(" <span>").append(empDetail).append("</span>"); htmlHeadBuff.append(" <span>").append(empDetail).append("</span>");
htmlHeadBuff.append(" <span>").append(siteDetail).append("</span>"); htmlHeadBuff.append(" <span>").append(siteDetail).append("</span>");
...@@ -429,90 +592,59 @@ private String getMonth(String selectedMonth, int selectedYear) ...@@ -429,90 +592,59 @@ private String getMonth(String selectedMonth, int selectedYear)
htmlHeadBuff.append(" </div>"); htmlHeadBuff.append(" </div>");
htmlHeadBuff.append("</div>"); htmlHeadBuff.append("</div>");
String lables = "[]";
String netSalesData = "[]";
String grossSalesData = "[]";
String grossReturnData = "[]";
String replReturnData = "[]";
StringBuffer htmlStrBuff = new StringBuffer(); StringBuffer htmlStrBuff = new StringBuffer();
try try
{ {
StringBuffer summarySqlBuff = new StringBuffer(); String salesSummarySql = getSalesSummarySQL(empCode, siteCode, monthStr, false);
summarySqlBuff.append(" select DHH.POS_CODE, DHH.LV1_DESCR, "); //UpdateDWHSalesSumStanCodeWise updtDwhSalesObj = new UpdateDWHSalesSumStanCodeWise();
summarySqlBuff.append(" SUM(DSS.SALES_VALUE) as \"SALES VALUE\", "); //HashMap sqlDataMap = updtDwhSalesObj.getSQLResultData(salesSummarySql, transDB);
summarySqlBuff.append(" SUM(DSS.SALES_QTY) as \"SALES QUANTITY\", "); HashMap sqlDataMap = getSQLResultData(salesSummarySql, transDB);
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 SUNERP.DWH_SALES_SUM DSS ");
summarySqlBuff.append(" LEFT OUTER JOIN SUNERP.ITEM I ON DSS.ITEM_CODE = I.ITEM_CODE ");
summarySqlBuff.append(" LEFT OUTER JOIN SUNERP.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 SUNERP.org_structure lv1 ");
summarySqlBuff.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 ");
summarySqlBuff.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 ");
summarySqlBuff.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 ");
summarySqlBuff.append(" ) DHH ");
summarySqlBuff.append(" WHERE DHH.POS_CODE = DSS.POS_CODE ");
summarySqlBuff.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) ");
summarySqlBuff.append(" AND DHH.TABLE_NO=NVL(ISER.TABLE_NO__HIER, ISER.ITEM_SER) ");
summarySqlBuff.append(" AND to_char(DSS.DOC_DATE, 'MM/YYYY')= '"+ monthStr +"' ");
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 SUNERP.ORG_STRUCTURE ");
summarySqlBuff.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) ");
summarySqlBuff.append(" AND TABLE_NO <> 'NFE' ");
summarySqlBuff.append(" START WITH POS_CODE = (SELECT POS_CODE FROM SUNERP.ORG_STRUCTURE WHERE EMP_CODE= '" + empCode + "' 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' ) ");
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); System.out.println("Result sqlDataMap !" + sqlDataMap);
ArrayList<HashMap<String, String>> dataRows = (ArrayList<HashMap<String, String>>) sqlDataMap.get("ROWS"); ArrayList<HashMap<String, String>> dataRows = (ArrayList<HashMap<String, String>>) sqlDataMap.get("ROWS");
int noOfRows = dataRows.size(); int noOfRows = dataRows.size();
System.out.println("Result dataRows !" + dataRows); System.out.println("Result dataRows !" + dataRows);
htmlStrBuff.append("<div class=\"sales-container\">");
if( noOfRows == 0 ) if( noOfRows == 0 )
{ {
htmlStrBuff.append(htmlHeadBuff); htmlStrBuff.append(htmlHeadBuff);
htmlStrBuff.append("<div class=\"nodata-msg-cont\">No data to display</div>"); htmlStrBuff.append("<div class=\"nodata-msg-cont\">No data to display</div>");
} }
else //Temporary
{
noOfRows = 1;
}
for( int rowNum = 0; rowNum < noOfRows; rowNum++ ) { for( int rowNum = 0; rowNum < noOfRows; rowNum++ )
{
HashMap<String, String> dataMap = dataRows.get(rowNum); HashMap<String, String> dataMap = dataRows.get(rowNum);
htmlStrBuff.append(htmlHeadBuff); htmlStrBuff.append(htmlHeadBuff);
//htmlStrBuff.append("<details open style=\"padding: 10px 0;\" >");
htmlStrBuff.append("<div class=\"db-kpi-container\">"); htmlStrBuff.append("<div class=\"db-kpi-container\">");
htmlStrBuff.append(" <div class=\"kpi-container\">"); htmlStrBuff.append(" <div class=\"kpi-container\">");
htmlStrBuff.append(" <div class=\"banner-12 banner-4 banner-3 column kpi-card-containers\">"); 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(" <div class=\"kpi-box\" style=\"background-image:linear-gradient(-45deg, #e47842, #ffac83);\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-value\">").append(dataMap.get("NET SALES VALUE")).append("</span>"); htmlStrBuff.append(" <div class=\"kpi-header\">");
htmlStrBuff.append(" <span class=\"detail-box-kpi-name\">NET SALES VALUE</span>"); htmlStrBuff.append(" <div class=\"kpi-icon\"><img src=\"images/net-sales.svg\"/></div>");
htmlStrBuff.append(" <div class=\"kpi-title\">net sales</div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-count-summary\">");
htmlStrBuff.append(" <span class=\"kpi-count\">").append(dataMap.get("NET SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\">Month to Date</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"chart-2 column kpi-card-containers\">");
htmlStrBuff.append(" <div id=\"sales-info-chart-container\" class=\"detail-box\" >");
htmlStrBuff.append(" <canvas id=\"sales-info-chart\" width=\"100%\" height=\"100%\"></canvas>");
htmlStrBuff.append(" <img src=\"images/fullscreen_enter.svg\" class=\"maximize-button\" onClick=\"toggleFullscreen('sales-info-chart-container', this);\"/>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
...@@ -521,82 +653,141 @@ private String getMonth(String selectedMonth, int selectedYear) ...@@ -521,82 +653,141 @@ private String getMonth(String selectedMonth, int selectedYear)
htmlStrBuff.append("<div class=\"db-kpi-container\">"); htmlStrBuff.append("<div class=\"db-kpi-container\">");
htmlStrBuff.append(" <div class=\"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=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"summary-box\" >"); //htmlStrBuff.append(" <div class=\"summary-box\" >");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #89cbfc;\">").append(dataMap.get("SALES VALUE")).append("</span>"); //htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #89cbfc;\">").append(dataMap.get("GROSS SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">SALES VALUE</span>"); //htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">GROSS SALES VALUE</span>");
//htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-box\" style=\"background-image:linear-gradient(-45deg, #01a27f, #00e1af);\">");
htmlStrBuff.append(" <div class=\"kpi-header\">");
htmlStrBuff.append(" <div class=\"kpi-icon\"><img src=\"images/gross-sales.svg\"/></div>");
htmlStrBuff.append(" <div class=\"kpi-title\">gross sales</div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-count-summary\">");
htmlStrBuff.append(" <span class=\"kpi-count\">").append(dataMap.get("GROSS SALES VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\"></span>");
htmlStrBuff.append(" </div>");
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=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"summary-box\" >"); //htmlStrBuff.append(" <div class=\"summary-box\" >");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #89cbfc;\">").append(dataMap.get("FREE SALES VALUE")).append("</span>"); //htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #89cbfc;\">").append(dataMap.get("GROSS RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">FREE SALES VALUE</span>"); //htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">GROSS RETURN VALUE</span>");
//htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-box\" style=\"background-image:linear-gradient(-45deg, #7053cc, #c3b3f7);\">");
htmlStrBuff.append(" <div class=\"kpi-header\">");
htmlStrBuff.append(" <div class=\"kpi-icon\"><img src=\"images/gross-return.svg\"/></div>");
htmlStrBuff.append(" <div class=\"kpi-title\">gross return</div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-count-summary\">");
htmlStrBuff.append(" <span class=\"kpi-count\">").append(dataMap.get("GROSS RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\"></span>");
htmlStrBuff.append(" </div>");
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=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"summary-box\" >"); //htmlStrBuff.append(" <div class=\"summary-box\" >");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #89cbfc;\">").append(dataMap.get("GROSS SALES VALUE")).append("</span>"); //htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #89cbfc;\">").append(dataMap.get("REPLACEMENT RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">GROSS SALES VALUE</span>"); //htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">REPLACEMENT RETURN VALUE</span>");
//htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-box\" style=\"background-image:linear-gradient(-45deg, #007bab, #00c9ff);\">");
htmlStrBuff.append(" <div class=\"kpi-header\">");
htmlStrBuff.append(" <div class=\"kpi-icon\"><img src=\"images/repl-return.svg\"/></div>");
htmlStrBuff.append(" <div class=\"kpi-title\">replacement return</div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"kpi-count-summary\">");
htmlStrBuff.append(" <span class=\"kpi-count\">").append(dataMap.get("REPLACEMENT RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\"></span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>"); 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("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=\"db-kpi-container\">");
htmlStrBuff.append(" <div class=\"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=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"summary-box\" >"); htmlStrBuff.append(" <div class=\"summary-box\" >");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("SALEABLE RETURN VALUE")).append("</span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("SALEABLE RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">SALEABLE RETURN VALUE</span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">saleable return</span>");
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=\"summary-box\">"); htmlStrBuff.append(" <div class=\"summary-box\">");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\"> ").append(dataMap.get("DAMAGED RETURN VALUE")).append(" </span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("DAMAGED RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">DAMAGED RETURN VALUE</span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">damaged return</span>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
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=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"summary-box\" >"); htmlStrBuff.append(" <div class=\"summary-box\" >");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("EXPIRY RETURN VALUE")).append("</span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("EXPIRY RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">EXPIRY RETURN VALUE</span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">expiry return</span>");
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=\"summary-box\">"); htmlStrBuff.append(" <div class=\"summary-box\">");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\"> ").append(dataMap.get("CANCELED RETURN VALUE")).append(" </span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("CANCELED RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">CANCELED RETURN VALUE</span>"); htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">canceled return</span>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
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=\"small-12 medium-4 large-3 column kpi-card-containers\">");
htmlStrBuff.append(" <div class=\"summary-box\" >");
htmlStrBuff.append(" <span class=\"summary-box-kpi-value\" style=\"color: #f37487;\">").append(dataMap.get("GROSS RETURN VALUE")).append("</span>");
htmlStrBuff.append(" <span class=\"summary-box-kpi-name\">GROSS RETURN VALUE</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" <div class=\"summary-box\">"); 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-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(" <span class=\"summary-box-kpi-name\">net return</span>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>"); htmlStrBuff.append(" </div>");
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>");
} }
htmlStrBuff.append("</div>");
salesSummarySql = getSalesSummarySQL(empCode, siteCode, monthStr, true);
//sqlDataMap = updtDwhSalesObj.getSQLResultData(salesSummarySql, transDB);
sqlDataMap = getSQLResultData(salesSummarySql, transDB);
System.out.println("Result sqlDataMap !" + sqlDataMap);
dataRows = (ArrayList<HashMap<String, String>>) sqlDataMap.get("ROWS");
noOfRows = dataRows.size();
System.out.println("Result dataRows !" + dataRows);
ArrayList<String> lableList = new ArrayList<String>();
ArrayList<String> netSList = new ArrayList<String>();
ArrayList<String> groSList = new ArrayList<String>();
ArrayList<String> groRList = new ArrayList<String>();
ArrayList<String> rplRList = new ArrayList<String>();
E12GenericUtility genUtil = new E12GenericUtility();
for( int rowNum = 0; rowNum < noOfRows; rowNum++ )
{
HashMap<String, String> dataMap = dataRows.get(rowNum);
String dateStr = dataMap.get("DOC_DATE");
dateStr = genUtil.getValidDateString(dateStr, "yyyy-MM-dd", "dd-MMM");
lableList.add("'" + dateStr + "'");
String netS = replace(dataMap.get("NET SALES VALUE"), "," ,"");
netSList.add(netS);
String groS = replace(dataMap.get("GROSS SALES VALUE"), "," ,"");
groSList.add(groS);
String groR = replace(dataMap.get("GROSS RETURN VALUE"), "," ,"");
groRList.add(groR);
String rplR = replace(dataMap.get("REPLACEMENT RETURN VALUE"), "," ,"");
rplRList.add(rplR);
}
lables = lableList.toString();
netSalesData = netSList.toString();
grossSalesData = groSList.toString();
grossReturnData = groRList.toString();
replReturnData = rplRList.toString();
/*
System.out.println(lables);
System.out.println(netSalesData);
System.out.println(grossSalesData);
System.out.println(grossReturnData);
System.out.println(replReturnData);
*/
} }
catch(Exception e) catch(Exception e)
{ {
...@@ -606,14 +797,112 @@ private String getMonth(String selectedMonth, int selectedYear) ...@@ -606,14 +797,112 @@ private String getMonth(String selectedMonth, int selectedYear)
} }
%> %>
<%=htmlStrBuff.toString()%> <%=htmlStrBuff.toString()%>
<!--
<form method="POST" action="saleTrendsDetails.jsp"> <script>
<%=htmlStrBuff.toString()%> var isFullscreen = false;
<input type="hidden" name="empCode" id="empCode" value='<%=empCode%>'/> loadChart("sales-info-chart");
<input type="hidden" name="siteCode" id="siteCode" value='<%=siteCode%>'/> function loadChart(elmId)
<input type="hidden" name="month" id="month" value='<%=monthStr%>'/> {
<button type="submit">Explore Data</button> new Chart(document.getElementById(elmId), {
</form> type: 'line',
--> data: {
labels: <%=lables%>,
datasets: [{
data: <%=netSalesData%>,
label: "Net Sales",
borderColor: "#fb9f6e",
fill: false
}, {
data: <%=grossSalesData%>,
label: "Gross Sales",
borderColor: "#38c796",
fill: false
}, {
data: <%=grossReturnData%>,
label: "Gross Return",
borderColor: "#a79fec",
fill: false
}, {
data: <%=replReturnData%>,
label: "Replacement Return",
borderColor: "#68beff",
fill: false
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
yAxes: [{
ticks: {
// Include a dollar sign in the ticks
callback: function(value, index, values) {
return '\u20B9 ' + numConversion(value);
}
},
scaleLabel:{
display: true,
labelString : 'Value in (\u20B9)'
}
}]
},
tooltips: {
callbacks: {
label: function(tooltipItem) {
return "\u20B9 " + numConversion(tooltipItem.yLabel);
}
}
}
}
});
}
// Fullscreen
function numConversion(val) {
if (val >= 10000000) val = (val / 10000000).toFixed(2) + ' Cr';
else if (val >= 100000) val = (val / 100000).toFixed(2) + ' Lac';
else if (val >= 1000) val = (val / 1000).toFixed(2) + ' K';
return val;
}
function toggleFullscreen(elmId, srcElm) {
if( !isFullscreen )
{
srcElm.src = "images/fullscreen_back.svg";
}
else
{
srcElm.src = "images/fullscreen_enter.svg";
}
var elem = document.getElementById(elmId);
elem = elem || document.documentElement;
if (!document.fullscreenElement && !document.mozFullScreenElement &&
!document.webkitFullscreenElement && !document.msFullscreenElement) {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
isFullscreen = !isFullscreen;
}
</script>
</body> </body>
</html> </html>
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
body{ body{
background-color: #efefef; background-color: #efefef;
padding: 0;
margin: 0;
} }
.input-field label{ .input-field label{
...@@ -46,6 +48,10 @@ body{ ...@@ -46,6 +48,10 @@ body{
.input-form{ .input-form{
padding: 10px; padding: 10px;
} }
.sales-container{
max-width: 1024px;
margin: auto;
}
</style> </style>
</head> </head>
<body> <body>
...@@ -92,28 +98,29 @@ body{ ...@@ -92,28 +98,29 @@ body{
} }
} }
%> %>
<div class="sales-container">
<div style="padding: 10px 0 10px 10px;"> <div style="padding: 10px 0 10px 10px;">
<div class="ang-dbtitle"> <div class="ang-dbtitle">
Current Sales Summary Sales Information
</div> </div>
</div>
<form method="POST" action="executeSaleTrends.jsp">
<div class="input-form">
<div class="input-field">
<label>Employee Code : </label>
<input type="text" name="empCode" id="empCode" value="<%=empCode%>"/>
</div>
<div class="input-field">
<label>Site Code : </label>
<input type="text" name="siteCode" id="siteCode" value="<%=siteCode%>"/>
</div> </div>
<div class="input-field"> <form method="POST" action="executeSaleTrends.jsp">
<label>Month : </label> <div class="input-form">
<input type="text" placeholder="MM/YYYY" name="month" id="month" value="<%=monthStr%>"/> <div class="input-field">
</div> <label>Employee Code : </label>
<button class="view-button" type="submit">View Data</button> <input type="text" name="empCode" id="empCode" value="<%=empCode%>"/>
</div> </div>
</form> <div class="input-field">
<label>Site Code : </label>
<input type="text" name="siteCode" id="siteCode" value="<%=siteCode%>"/>
</div>
<div class="input-field">
<label>Month : </label>
<input type="text" placeholder="MM/YYYY" name="month" id="month" value="<%=monthStr%>"/>
</div>
<button class="view-button" type="submit">View Data</button>
</div>
</form>
</div>
</body> </body>
</html> </html>
...@@ -6,94 +6,6 @@ ...@@ -6,94 +6,6 @@
<%@page import="ibase.utility.UserInfoBean"%> <%@page import="ibase.utility.UserInfoBean"%>
<%@page import="java.io.*,java.util.*,java.util.zip.*"%> <%@page import="java.io.*,java.util.*,java.util.zip.*"%>
<%@page import="java.text.SimpleDateFormat"%> <%@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> <html>
<head> <head>
...@@ -272,9 +184,6 @@ public HashMap getSQLResultData(String sqlStr, String transDB) ...@@ -272,9 +184,6 @@ public HashMap getSQLResultData(String sqlStr, String transDB)
int totalRows = noOfRows > 100 ? 100 : noOfRows; int totalRows = noOfRows > 100 ? 100 : noOfRows;
int noOfColumns = dataCols.size(); int noOfColumns = dataCols.size();
htmlStrBuff.append("<TABLE id =\"dataTable\">"); htmlStrBuff.append("<TABLE id =\"dataTable\">");
htmlStrBuff.append("<tr>"); htmlStrBuff.append("<tr>");
for( int ctr = 1; ctr <= noOfColumns; ctr++ ) { for( int ctr = 1; ctr <= noOfColumns; ctr++ ) {
......
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