Commit 3c873880 authored by prumde's avatar prumde

Done changes for fetching data from DWH_INV_SRET_SUM table and Displaying Top Brands as Chart

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@212048 ce508802-f39f-4f6c-b175-0d175dae99d5
parent ba06a145
......@@ -144,6 +144,49 @@ private String getSalesSummarySQL(String empCode, String siteCode, String monthS
return summarySqlBuff.toString();
}
private String getSalesInfoSQL(String empCode, String monthStr, boolean isGroupByDate )
{
String schemaName = "";
StringBuffer summarySqlBuff = new StringBuffer();
summarySqlBuff.append(" SELECT SUM(NET_VAL) NET_VAL, ");
if( isGroupByDate ) summarySqlBuff.append(" TRAN_DATE, ");
summarySqlBuff.append(" SUM(SALES_VAL) SALES_VAL, ");
summarySqlBuff.append(" SUM(RETURN_VAL) RETURN_VAL, ");
summarySqlBuff.append(" SUM(REPLACEMENT_VAL) REPLACEMENT_VAL, ");
summarySqlBuff.append(" SUM(FREE_VAL) FREE_VAL ");
summarySqlBuff.append(" FROM " + schemaName + "DWH_INV_SRET_SUM ");
summarySqlBuff.append(" WHERE EMP_CODE = '" + empCode + "' ");
summarySqlBuff.append(" AND TO_CHAR(TRAN_DATE, 'MM/YYYY')= '"+ monthStr +"' ");
if( isGroupByDate ) summarySqlBuff.append(" GROUP BY TRAN_DATE ORDER BY TRAN_DATE ");
System.out.println("summarySqlBuff !" + summarySqlBuff.toString());
return summarySqlBuff.toString();
}
private String getSITopBrandSQL(String empCode, String monthStr)
{
String schemaName = "";
StringBuffer summarySqlBuff = new StringBuffer();
summarySqlBuff.append(" SELECT BRAND_CODE, ");
summarySqlBuff.append(" BRAND_NAME, ");
summarySqlBuff.append(" SUM(NET_VAL) NET_VAL, ");
summarySqlBuff.append(" SUM(SALES_VAL) SALES_VAL, ");
summarySqlBuff.append(" SUM(RETURN_VAL) RETURN_VAL, ");
summarySqlBuff.append(" SUM(REPLACEMENT_VAL) REPLACEMENT_VAL, ");
summarySqlBuff.append(" SUM(FREE_VAL) FREE_VAL ");
summarySqlBuff.append(" FROM DWH_INV_SRET_SUM ");
summarySqlBuff.append(" WHERE EMP_CODE = '" + empCode + "' ");
summarySqlBuff.append(" AND TO_CHAR(TRAN_DATE, 'MM/YYYY')= '"+ monthStr +"' ");
summarySqlBuff.append(" GROUP BY BRAND_CODE, BRAND_NAME ");
summarySqlBuff.append(" ORDER BY NET_VAL DESC ");
System.out.println("summarySqlBuff !" + summarySqlBuff.toString());
return summarySqlBuff.toString();
}
private String replace(String value, String serach, String replacement)
{
if(value != null)
......@@ -193,7 +236,7 @@ public HashMap getSQLResultData(String sqlStr, String transDB) throws Exception
dataCols.put(ctr, rsmd.getColumnName(ctr));
}
String colName = rsmd.getColumnName(ctr);
if( colName.endsWith("VALUE") )
if( colName.endsWith("_VAL") )
{
rowDataMap.put(rsmd.getColumnName(ctr), formatValue(rs.getString(ctr)));
}
......@@ -518,6 +561,26 @@ private String format(String pattern, Object value)
.no-kpi-count{
height: 18px;
}
.chart-1 {
width: calc( 99% - 5px ) !important;
}
.chart-detail-box {
display: block;
color: #fff;
text-align: center;
height: 350px;
width: calc(100% - 32px);
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: 8px;
padding: 0 8px;
border-radius: 4px;
overflow: hidden;
background: #fff;
}
</style>
</head>
<body>
......@@ -536,18 +599,18 @@ private String format(String pattern, Object value)
}
String userCode = userInfo.getLoginCode();
String transDB = userInfo.getTransDB();
String site = userInfo.getPropValue("SITE_CODE");
//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 siteCode = request.getParameter("siteCode");
//if( siteCode == null || siteCode.trim().length() == 0)
//{
// siteCode = site;
//}
String monthStr = request.getParameter("month");
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1 ;
......@@ -580,14 +643,14 @@ private String format(String pattern, Object value)
System.out.println("monthStr ==>" + year);
CommonDBAccessEJB localCDBAccess = new CommonDBAccessEJB();
String empDetail = localCDBAccess.getDBColumnValue( " EMPLOYEE ", " EMP_FNAME || ' ' || EMP_LNAME || ' (' || trim(EMP_CODE) || ')' AS EMP_NAME ", " WHERE EMP_CODE = '"+empCode+"' ", transDB);
String siteDetail = localCDBAccess.getDBColumnValue( " SITE ", " DESCR || ' (' || TRIM(SITE_CODE) || ')' AS SITE_DESCR ", " WHERE SITE_CODE = '"+siteCode+"' ", transDB);
//String siteDetail = localCDBAccess.getDBColumnValue( " SITE ", " DESCR || ' (' || TRIM(SITE_CODE) || ')' AS SITE_DESCR ", " WHERE SITE_CODE = '"+siteCode+"' ", transDB);
StringBuffer htmlHeadBuff = new StringBuffer();
htmlHeadBuff.append("<div class=\"db-kpi-header\"> ");
htmlHeadBuff.append(" <div class=\"db-kpi-header-title\">Sales Information</div>");
htmlHeadBuff.append(" <div class=\"db-kpi-header-info\">");
htmlHeadBuff.append(" <span>").append(empDetail).append("</span>");
htmlHeadBuff.append(" <span>").append(siteDetail).append("</span>");
//htmlHeadBuff.append(" <span>").append(siteDetail).append("</span>");
htmlHeadBuff.append(" <span>").append(getMonth(month+"", year)).append("</span>");
htmlHeadBuff.append(" </div>");
htmlHeadBuff.append("</div>");
......@@ -597,10 +660,16 @@ private String format(String pattern, Object value)
String grossSalesData = "[]";
String grossReturnData = "[]";
String replReturnData = "[]";
int totalBrands = 0;
String brandsLable = "[]";
String brandsData = "[]";
StringBuffer htmlStrBuff = new StringBuffer();
try
{
String salesSummarySql = getSalesSummarySQL(empCode, siteCode, monthStr, false);
//String salesSummarySql = getSalesSummarySQL(empCode, siteCode, monthStr, false);
String salesSummarySql = getSalesInfoSQL(empCode, monthStr, false);
//UpdateDWHSalesSumStanCodeWise updtDwhSalesObj = new UpdateDWHSalesSumStanCodeWise();
//HashMap sqlDataMap = updtDwhSalesObj.getSQLResultData(salesSummarySql, transDB);
HashMap sqlDataMap = getSQLResultData(salesSummarySql, transDB);
......@@ -636,7 +705,7 @@ private String format(String pattern, Object value)
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-count\">").append(dataMap.get("NET_VAL")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\">Month to Date</span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
......@@ -653,51 +722,39 @@ private String format(String pattern, Object value)
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=\"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-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-count\">").append(dataMap.get("SALES_VAL")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\"></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(" <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\">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-count\">").append(dataMap.get("RETURN_VAL")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\"></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(" <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\">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-count\">").append(dataMap.get("REPLACEMENT_VAL")).append("</span>");
htmlStrBuff.append(" <span class=\"kpi-summary\"></span>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
......@@ -746,9 +803,22 @@ private String format(String pattern, Object value)
htmlStrBuff.append("</div>");
*/
}
//TOP Brands Chart added
htmlStrBuff.append("<div class=\"db-kpi-container\">");
htmlStrBuff.append(" <div class=\"kpi-container\">");
htmlStrBuff.append(" <div class=\"chart-1 column kpi-card-containers\">");
htmlStrBuff.append(" <div id=\"top-brand-chart-container\" class=\"chart-detail-box\">");
htmlStrBuff.append(" <canvas id=\"top-brand-chart\" width=\"100%\" height=\"100%\"></canvas>");
htmlStrBuff.append(" <img src=\"images/fullscreen_enter.svg\" class=\"maximize-button\" onClick=\"toggleFullscreen('top-brand-chart-container', this);\"/>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append(" </div>");
htmlStrBuff.append("</div>");
htmlStrBuff.append("</div>");
salesSummarySql = getSalesSummarySQL(empCode, siteCode, monthStr, true);
//salesSummarySql = getSalesSummarySQL(empCode, siteCode, monthStr, true);
salesSummarySql = getSalesInfoSQL(empCode, monthStr, true);
//sqlDataMap = updtDwhSalesObj.getSQLResultData(salesSummarySql, transDB);
sqlDataMap = getSQLResultData(salesSummarySql, transDB);
System.out.println("Result sqlDataMap !" + sqlDataMap);
......@@ -767,16 +837,16 @@ private String format(String pattern, Object value)
{
HashMap<String, String> dataMap = dataRows.get(rowNum);
String dateStr = dataMap.get("DOC_DATE");
String dateStr = dataMap.get("TRAN_DATE");
dateStr = genUtil.getValidDateString(dateStr, "yyyy-MM-dd", "dd-MMM");
lableList.add("'" + dateStr + "'");
String netS = replace(dataMap.get("NET SALES VALUE"), "," ,"");
String netS = replace(dataMap.get("NET_VAL"), "," ,"");
netSList.add(netS);
String groS = replace(dataMap.get("GROSS SALES VALUE"), "," ,"");
String groS = replace(dataMap.get("SALES_VAL"), "," ,"");
groSList.add(groS);
String groR = replace(dataMap.get("GROSS RETURN VALUE"), "," ,"");
String groR = replace(dataMap.get("RETURN_VAL"), "," ,"");
groRList.add(groR);
String rplR = replace(dataMap.get("REPLACEMENT RETURN VALUE"), "," ,"");
String rplR = replace(dataMap.get("REPLACEMENT_VAL"), "," ,"");
rplRList.add(rplR);
}
lables = lableList.toString();
......@@ -791,6 +861,31 @@ private String format(String pattern, Object value)
System.out.println(grossReturnData);
System.out.println(replReturnData);
*/
//Top Brands Data Calculation Starts
salesSummarySql = getSITopBrandSQL(empCode, monthStr);
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> brandsLableList = new ArrayList<String>();
ArrayList<String> brandsDataList = new ArrayList<String>();
for( int rowNum = 0; rowNum < noOfRows; rowNum++ )
{
HashMap<String, String> dataMap = dataRows.get(rowNum);
String brandName = replace(dataMap.get("BRAND_NAME"), "," ,"");
String brandCode = replace(dataMap.get("BRAND_CODE"), "," ,"");
brandsLableList.add("'"+brandName+"(" + brandCode + ")'");
String netVal = replace(dataMap.get("NET_VAL"), "," ,"");
brandsDataList.add(netVal);
totalBrands++;
}
brandsLable = brandsLableList.toString();
brandsData = brandsDataList.toString();
//Top Brands Data Calculation Ends
}
catch(Exception e)
{
......@@ -861,6 +956,59 @@ private String format(String pattern, Object value)
});
}
//Top Brands Chart Configuration Starts
loadBrands('top-brand-chart');
function loadBrands(elmId) {
// Global Options:
Chart.defaults.global.defaultFontColor = 'dodgerblue';
Chart.defaults.global.defaultFontSize = 16;
// Data with datasets options
var data = {
labels: <%=brandsLable%>,
datasets: [
{
label: "Top Brands(<%=totalBrands%>)",
fill: true,
backgroundColor: ['moccasin','saddlebrown','lightpink'],
data: <%=brandsData%>
}
]
};
// Chart declaration:
new Chart(document.getElementById(elmId), {
type: 'horizontalBar',
data: data,
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
xAxes: [{
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.xLabel);
}
}
}
}
});
}
//Top Brands Chart Configuration Ends
// Fullscreen
function numConversion(val) {
if (val >= 10000000) val = (val / 10000000).toFixed(2) + ' Cr';
......
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