Commit 3d2292f0 authored by prumde's avatar prumde

Updated

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@212126 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 29f9924b
......@@ -165,23 +165,26 @@ private String getSalesInfoSQL(String empCode, String monthStr, boolean isGroupB
return summarySqlBuff.toString();
}
private String getSITopBrandSQL(String empCode, String monthStr)
private String getSITopBrandSQL(String empCode, String monthStr, int topCnt)
{
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 ");
summarySqlBuff.append(" SELECT * FROM ( ");
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(" AND NET_VAL > 0 ");
summarySqlBuff.append(" GROUP BY BRAND_CODE, BRAND_NAME ");
summarySqlBuff.append(" ORDER BY NET_VAL DESC ");
summarySqlBuff.append(" )WHERE ROWNUM < " + (topCnt + 1 )+ " ORDER BY NET_VAL DESC ");
System.out.println("summarySqlBuff !" + summarySqlBuff.toString());
return summarySqlBuff.toString();
......@@ -236,17 +239,24 @@ public HashMap getSQLResultData(String sqlStr, String transDB) throws Exception
dataCols.put(ctr, rsmd.getColumnName(ctr));
}
String colName = rsmd.getColumnName(ctr);
if( colName.endsWith("_VAL") )
{
rowDataMap.put(rsmd.getColumnName(ctr), formatValue(rs.getString(ctr)));
}
else
String colValue = rs.getString(ctr);
if( colValue != null )
{
rowDataMap.put(rsmd.getColumnName(ctr), rs.getString(ctr));
if( colName.endsWith("_VAL") )
{
rowDataMap.put(rsmd.getColumnName(ctr), formatValue(colValue));
}
else
{
rowDataMap.put(rsmd.getColumnName(ctr), colValue);
}
}
}
//System.out.println("Result dataMap !" + dataMap);
dataRows.add(rowDataMap);
if( rowDataMap.size() > 0 )
{
dataRows.add(rowDataMap);
}
noOfRows++;
}
//System.out.println("Result dataArray !" + dataArray);
......@@ -290,7 +300,16 @@ private String formatValue(String valueStr)
valueStr = valueStr.trim();
if( !"0".equalsIgnoreCase(valueStr) )
{
valueStr = format( Double.parseDouble(valueStr) );
double value = Double.parseDouble(valueStr);
if(value < 0)
{
value = value * -1;
valueStr = "-" + format( value );
}
else
{
valueStr = format( value );
}
}
}
catch(Exception e)
......@@ -569,7 +588,7 @@ private String format(String pattern, Object value)
display: block;
color: #fff;
text-align: center;
height: 350px;
height: 250px;
width: calc(100% - 32px);
position: relative;
MIN-WIDTH: 0;
......@@ -710,12 +729,22 @@ private String format(String pattern, Object value)
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>");
*/
//TOP Brands Chart added
htmlStrBuff.append(" <div class=\"chart-2 column kpi-card-containers\">");
htmlStrBuff.append(" <div id=\"top-brand-chart-container\" class=\"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>");
......@@ -802,18 +831,19 @@ private String format(String pattern, Object value)
htmlStrBuff.append(" </div>");
htmlStrBuff.append("</div>");
*/
//Sales Info 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=\"sales-info-chart-container\" class=\"chart-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>");
}
//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>");
......@@ -862,7 +892,7 @@ private String format(String pattern, Object value)
System.out.println(replReturnData);
*/
//Top Brands Data Calculation Starts
salesSummarySql = getSITopBrandSQL(empCode, monthStr);
salesSummarySql = getSITopBrandSQL(empCode, monthStr, 5);
sqlDataMap = getSQLResultData(salesSummarySql, transDB);
System.out.println("Result sqlDataMap !" + sqlDataMap);
......@@ -947,10 +977,18 @@ private String format(String pattern, Object value)
},
tooltips: {
callbacks: {
label: function(tooltipItem) {
return "\u20B9 " + numConversion(tooltipItem.yLabel);
label: function(tooltipItem, data) {
var label = data.datasets[tooltipItem.datasetIndex].label || '';
if (label) {
label += ': ';
}
label += "\u20B9 " + numFormat(tooltipItem.yLabel);
return label;
}
}
},
mode: 'index',
intersect: false,
position: 'nearest'
}
}
});
......@@ -960,55 +998,192 @@ private String format(String pattern, Object value)
loadBrands('top-brand-chart');
function loadBrands(elmId) {
// Global Options:
Chart.defaults.global.defaultFontColor = 'dodgerblue';
Chart.defaults.global.defaultFontSize = 16;
//Blue : background-image: linear-gradient(-45deg, #007bab, #00c9ff);
//Orange : background-image: linear-gradient(-45deg, #e47842, #ffac83);
//Voilate : background-image: linear-gradient(-45deg, #7053cc, #c3b3f7);
//Green : background-image: linear-gradient(-45deg, #01a27f, #00e1af);
//Gray : background-image: linear-gradient(-45deg, #333333, #666666);
// Chart Context declaration:
var ctx = document.getElementById(elmId).getContext("2d");
var gradientBlue = getGradient(ctx,'blue');
var gradientOrange = getGradient(ctx,'blue');
var gradientVoilate = getGradient(ctx,'blue');
var gradientGreen = getGradient(ctx,'blue');
var gradientGray = getGradient(ctx,'blue');
var bGradients = [gradientGreen, gradientBlue, gradientVoilate, gradientOrange, gradientGray];
console.log(ctx);
// Data with datasets options
var _dataNum = <%=brandsData%>;
var data = {
labels: <%=brandsLable%>,
datasets: [
{
label: "Top Brands(<%=totalBrands%>)",
label: "Net Sales",
fill: true,
backgroundColor: ['moccasin','saddlebrown','lightpink'],
data: <%=brandsData%>
backgroundColor : bGradients,
hoverBackgroundColor: bGradients,
barThickness: 1,
data: _dataNum,
borderWidth: 10,
borderColor: 'transparent'
}
]
};
// Chart declaration:
new Chart(document.getElementById(elmId), {
var chart = new Chart(ctx, {
type: 'horizontalBar',
data: data,
options: {
responsive: true,
maintainAspectRatio: false,
legend: {
display: false
},
title: {
display: true,
text: 'Top Brands'
},
scales: {
xAxes: [{
xAxes: [{
ticks: {
display: false //this will remove only the label
// Include a dollar sign in the ticks
callback: function(value, index, values) {
return '\u20B9 ' + numConversion(value);
}
//callback: function(value, index, values) {
// return '\u20B9 ' + numConversion(value);
//}
},
scaleLabel:{
display: true,
labelString : 'Value in (\u20B9)'
}
display: false
},
gridLines:{
display:false
}
}],
yAxes: [{
ticks: {
beginAtZero:true
},
scaleLabel:{
display: false
},
gridLines:{
display:false
}
}]
},
tooltips: {
callbacks: {
label: function(tooltipItem) {
return "\u20B9 " + numConversion(tooltipItem.xLabel);
label: function(tooltipItem, data) {
var label = data.datasets[tooltipItem.datasetIndex].label || '';
if (label) {
label += ': ';
}
label += "\u20B9 " + numFormat(tooltipItem.xLabel);
return label;
}
}
}
},
mode: 'y',
intersect: true,
position: 'nearest',
backgroundColor: 'rgba(0,0,0,1)'
},
hover:{
animationDuration: 0
},
animation: {
duration: 1,
onComplete: function() {
var chartInstance = this.chart,
ctx = chartInstance.ctx;
ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
ctx.textAlign = 'center';
ctx.textBaseline = 'bottom';
ctx.fillStyle = '#666666';
this.data.datasets.forEach(function(dataset, i) {
var meta = chartInstance.controller.getDatasetMeta(i);
meta.data.forEach(function(bar, index) {
var data = dataset.data[index];
var x_pos = bar._model.x + 30;
var y_pos = bar._model.y + 7;
if ( index == 0 )
{
x_pos = bar._model.x - 40;
y_pos = bar._model.y - 5;
ctx.fillStyle = '#007bab';
//ctx.fillText( "\u2606 ", x_pos - 40, y_pos);
ctx.fillText( "\u272A ", x_pos - 40, y_pos);
ctx.fillStyle = '#666666';
ctx.fillText( "\u20B9 " + numConversion(data), x_pos , y_pos);
}
else
{
ctx.fillText( "\u20B9 " + numConversion(data), x_pos , y_pos);
}
});
});
}
}
}
});
}
/*
this.data.datasets.forEach(function (dataset) {
for (var i = 0; i < dataset.data.length; i++) {
var model = dataset._meta[Object.keys(dataset._meta)[0]].data[i]._model,
scale_max = dataset._meta[Object.keys(dataset._meta)[0]].data[i]._yScale.maxHeight;
ctx.fillStyle = '#444';
var y_pos = model.y - 5;
// Make sure data value does not get overflown and hidden
// when the bar's value is too close to max value of scale
// Note: The y value is reverse, it counts from top down
if ((scale_max - model.y) / scale_max >= 0.93)
y_pos = model.y + 20;
ctx.fillText(dataset.data[i], model.x, y_pos);
}
}); */
//Top Brands Chart Configuration Ends
function getGradient(ctx, color)
{
var gradient;
switch(color){
case 'blue':
gradient= ctx.createLinearGradient(200, 0, 0, -200);
gradient.addColorStop(1, '#007bab');
gradient.addColorStop(0, '#00c9ff');
break;
case 'violet':
gradient= ctx.createLinearGradient(200, 0, 0, -200);
gradient.addColorStop(1, '#7053cc');
gradient.addColorStop(0, '#c3b3f7');
break;
case 'green':
gradient= ctx.createLinearGradient(200, 0, 0, -200);
gradient.addColorStop(1, '#01a27f');
gradient.addColorStop(0, '#00e1af');
break;
case 'orange':
gradient= ctx.createLinearGradient(200, 0, 0, -200);
gradient.addColorStop(1, '#e47842');
gradient.addColorStop(0, '#ffac83');
break;
case 'gray':
gradient= ctx.createLinearGradient(200, 0, 0, -200);
gradient.addColorStop(1, '#333333');
gradient.addColorStop(0, '#666666');
break;
default:
gradient= ctx.createLinearGradient(200, 0, 0, -200);
gradient.addColorStop(1, '#333333');
gradient.addColorStop(0, '#666666');
break;
}
return gradient;
}
// Fullscreen
function numConversion(val) {
if (val >= 10000000) val = (val / 10000000).toFixed(2) + ' Cr';
......@@ -1017,6 +1192,14 @@ private String format(String pattern, Object value)
return val;
}
function numFormat(val) {
var numFormatter = new Intl.NumberFormat('en-IN', {
maximumFractionDigits: 3,
minimumFractionDigits: 0
})
return numFormatter.format(val);
}
function toggleFullscreen(elmId, srcElm) {
if( !isFullscreen )
......
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