Merged in dashboards2 (pull request #2365)
PM-2987 - Error en el Inbox si no están los KPIs habilitados en la licencia
This commit is contained in:
@@ -4852,22 +4852,23 @@
|
||||
<parameter name="Create_options" value="" />
|
||||
<parameter name="Comment" value="Data calculated users by task"/>
|
||||
</vendor>
|
||||
<column name="USR_UID" type="VARCHAR" size="32" required="true" primaryKey="true" />
|
||||
<column name="TAS_UID" type="VARCHAR" size="32" required="true" primaryKey="true" />
|
||||
<column name="PRO_UID" type="VARCHAR" size="32" required="true" />
|
||||
<column name="MONTH" type="INTEGER" required="true" default="0" primaryKey="true" />
|
||||
<column name="YEAR" type="INTEGER" required="true" default="0" primaryKey="true" />
|
||||
<column name="TOTAL_TIME_BY_TASK" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_IN" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_OUT" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="USER_HOUR_COST" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="AVG_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="SDV_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="CONFIGURED_TASK_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_OVERDUE" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_ON_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="PRO_COST" type="DECIMAL" size="7,2" required="false" default="0"/>
|
||||
<column name="PRO_UNIT_COST" type="VARCHAR" size="50" required="false" default=""/>
|
||||
<column name="USR_UID" type="VARCHAR" size="32" required="true" primaryKey="true" />
|
||||
<column name="TAS_UID" type="VARCHAR" size="32" required="true" primaryKey="true" />
|
||||
<column name="PRO_UID" type="VARCHAR" size="32" required="true" />
|
||||
<column name="MONTH" type="INTEGER" required="true" default="0" primaryKey="true" />
|
||||
<column name="YEAR" type="INTEGER" required="true" default="0" primaryKey="true" />
|
||||
<column name="TOTAL_QUEUE_TIME_BY_TASK" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_TIME_BY_TASK" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_IN" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_OUT" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="USER_HOUR_COST" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="AVG_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="SDV_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="CONFIGURED_TASK_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_OVERDUE" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="TOTAL_CASES_ON_TIME" type="DECIMAL" size="7,2" default="0" />
|
||||
<column name="PRO_COST" type="DECIMAL" size="7,2" required="false" default="0"/>
|
||||
<column name="PRO_UNIT_COST" type="VARCHAR" size="50" required="false" default=""/>
|
||||
<index name="indexReporting">
|
||||
<index-column name="USR_UID"/>
|
||||
<index-column name="TAS_UID"/>
|
||||
|
||||
@@ -2702,22 +2702,23 @@ DROP TABLE IF EXISTS `USR_REPORTING`;
|
||||
|
||||
CREATE TABLE `USR_REPORTING`
|
||||
(
|
||||
`USR_UID` VARCHAR(32) NOT NULL,
|
||||
`TAS_UID` VARCHAR(32) NOT NULL,
|
||||
`PRO_UID` VARCHAR(32) NOT NULL,
|
||||
`MONTH` INTEGER default 0 NOT NULL,
|
||||
`YEAR` INTEGER default 0 NOT NULL,
|
||||
`TOTAL_TIME_BY_TASK` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_IN` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_OUT` DECIMAL(7,2) default 0,
|
||||
`USER_HOUR_COST` DECIMAL(7,2) default 0,
|
||||
`AVG_TIME` DECIMAL(7,2) default 0,
|
||||
`SDV_TIME` DECIMAL(7,2) default 0,
|
||||
`CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0,
|
||||
`PRO_COST` DECIMAL(7,2) default 0,
|
||||
`PRO_UNIT_COST` VARCHAR(50) default '',
|
||||
`USR_UID` VARCHAR(32) NOT NULL,
|
||||
`TAS_UID` VARCHAR(32) NOT NULL,
|
||||
`PRO_UID` VARCHAR(32) NOT NULL,
|
||||
`MONTH` INTEGER default 0 NOT NULL,
|
||||
`YEAR` INTEGER default 0 NOT NULL,
|
||||
`TOTAL_QUEUE_TIME_BY_TASK` DECIMAL(7,2) default 0,
|
||||
`TOTAL_TIME_BY_TASK` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_IN` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_OUT` DECIMAL(7,2) default 0,
|
||||
`USER_HOUR_COST` DECIMAL(7,2) default 0,
|
||||
`AVG_TIME` DECIMAL(7,2) default 0,
|
||||
`SDV_TIME` DECIMAL(7,2) default 0,
|
||||
`CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0,
|
||||
`TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0,
|
||||
`PRO_COST` DECIMAL(7,2) default 0,
|
||||
`PRO_UNIT_COST` VARCHAR(50) default '',
|
||||
PRIMARY KEY (`USR_UID`, `TAS_UID`,`MONTH`,`YEAR`),
|
||||
KEY `indexReporting`(`USR_UID`, `TAS_UID`, `PRO_UID`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Data calculated users by task';
|
||||
|
||||
@@ -113,6 +113,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToMonth = function (monthList) {
|
||||
this.endPeriodState.list = monthList;
|
||||
this.initPeriodState.visible = true;
|
||||
this.endPeriodState.visible = true;
|
||||
this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.MONTH, new Date());
|
||||
}
|
||||
|
||||
TimeSeriesPresenter.prototype.changePeriodicityToQuarter = function (quarterList) {
|
||||
@@ -120,6 +121,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToQuarter = function (quarterList
|
||||
this.endPeriodState.list = quarterList;
|
||||
this.initPeriodState.visible = true;
|
||||
this.endPeriodState.visible = true;
|
||||
this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.QUARTER, new Date());
|
||||
}
|
||||
|
||||
TimeSeriesPresenter.prototype.changePeriodicityToSemester = function (semesterList) {
|
||||
@@ -127,6 +129,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToSemester = function (semesterLi
|
||||
this.endPeriodState.list = semesterList;
|
||||
this.initPeriodState.visible = true;
|
||||
this.endPeriodState.visible = true;
|
||||
this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.SEMESTER, new Date());
|
||||
}
|
||||
|
||||
TimeSeriesPresenter.prototype.changePeriodicityToYear = function (yearList) {
|
||||
@@ -134,6 +137,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToYear = function (yearList) {
|
||||
this.endPeriodState.list = [];
|
||||
this.initPeriodState.visible = false;
|
||||
this.endPeriodState.visible = false;
|
||||
this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.YEAR, new Date());
|
||||
}
|
||||
|
||||
TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, initPeriod,
|
||||
@@ -145,7 +149,7 @@ TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, i
|
||||
this.model.historicData(indicator, periodicity, initDate, endDate).done(function (data) {
|
||||
var graphData = [];
|
||||
$.each(data, function(index, originalObject) {
|
||||
var newObject = {datalabel: that.periodValue(periodicity, originalObject) + '/' + originalObject['YEAR'],
|
||||
var newObject = {datalabel: that.periodColumnName(periodicity, originalObject) + '/' + originalObject['YEAR'],
|
||||
value: originalObject.VALUE
|
||||
}
|
||||
graphData.push(newObject);
|
||||
@@ -157,7 +161,7 @@ TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, i
|
||||
}
|
||||
|
||||
|
||||
TimeSeriesPresenter.prototype.periodValue = function (periodicity, object) {
|
||||
TimeSeriesPresenter.prototype.periodColumnName = function (periodicity, object) {
|
||||
var retval = "";
|
||||
switch (periodicity*1) {
|
||||
case this.helper.ReportingPeriodicityEnum.MONTH:
|
||||
@@ -179,6 +183,48 @@ TimeSeriesPresenter.prototype.periodValue = function (periodicity, object) {
|
||||
return retval;
|
||||
}
|
||||
|
||||
TimeSeriesPresenter.prototype.periodEquivalentFromDate = function (periodicity, date) {
|
||||
var retval = null;
|
||||
var year = date.getFullYear();
|
||||
|
||||
switch (periodicity * 1) {
|
||||
case this.helper.ReportingPeriodicityEnum.MONTH:
|
||||
for (var i = 1; i < 12; i++) {
|
||||
var periodInitDate = this.periodInitDate (periodicity, i, year);
|
||||
var periodEndDate = this.periodEndDate (periodicity, i, year);
|
||||
if (periodInitDate <= date && periodEndDate >= date) {
|
||||
retval = i;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case this.helper.ReportingPeriodicityEnum.QUARTER:
|
||||
for (var i = 1; i < 4; i++) {
|
||||
var periodInitDate = this.periodInitDate (periodicity, i, year);
|
||||
var periodEndDate = this.periodEndDate (periodicity, i, year);
|
||||
if (periodInitDate <= date && periodEndDate >= date) {
|
||||
retval = i;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case this.helper.ReportingPeriodicityEnum.SEMESTER:
|
||||
for (var i = 1; i < 2; i++) {
|
||||
var periodInitDate = this.periodInitDate (periodicity, i, year);
|
||||
var periodEndDate = this.periodEndDate (periodicity, i, year);
|
||||
if (periodInitDate <= date && periodEndDate >= date) {
|
||||
retval = i;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case this.helper.ReportingPeriodicityEnum.YEAR:
|
||||
retval = year
|
||||
break;
|
||||
}
|
||||
if (retval == null) {
|
||||
throw new Error("The periodicity " + periodicity + " is not supported.");
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
TimeSeriesPresenter.prototype.periodInitDate = function (periodicity, period, year) {
|
||||
var retval = null;
|
||||
switch (periodicity * 1) {
|
||||
|
||||
@@ -505,7 +505,7 @@ var loadIndicator = function (indicatorId, initDate, endDate) {
|
||||
fillSpecialIndicatorFirstView(viewModel);
|
||||
break;
|
||||
case "1050":
|
||||
fillStatusIndicatorFirstView(viewModel);
|
||||
//fillStatusIndicatorFirstView(viewModel);
|
||||
break;
|
||||
default:
|
||||
fillGeneralIndicatorFirstView(viewModel);
|
||||
|
||||
@@ -12,6 +12,7 @@ INSERT INTO USR_REPORTING (
|
||||
PRO_UID,
|
||||
MONTH,
|
||||
YEAR,
|
||||
TOTAL_QUEUE_TIME_BY_TASK,
|
||||
TOTAL_TIME_BY_TASK,
|
||||
TOTAL_CASES_IN,
|
||||
TOTAL_CASES_OUT,
|
||||
@@ -31,6 +32,7 @@ SELECT
|
||||
ACV.PRO_UID,
|
||||
DATE_FORMAT(ACV.DEL_INIT_DATE, '%m') AS `MONTH`,
|
||||
DATE_FORMAT(ACV.DEL_INIT_DATE, '%Y') AS `YEAR`,
|
||||
SUM(ACV.DEL_QUEUE_DURATION*24) AS TOTAL_QUEUE_TIME_BY_TASK,
|
||||
SUM(ACV.DEL_DURATION*24) AS TOT_TIME_BY_TASK,
|
||||
COUNT(ACV.DEL_INIT_DATE) AS TOT_CASES_IN,
|
||||
COUNT(ACV.DEL_FINISH_DATE) AS TOT_CASES_OUT,
|
||||
|
||||
@@ -1058,6 +1058,9 @@ Ext.onReady ( function() {
|
||||
});
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
if (typeof filterStatus == 'undefined') {
|
||||
filterStatus = [];
|
||||
}
|
||||
var comboFilterStatus = new Ext.form.ComboBox({
|
||||
width : 180,
|
||||
boxMaxWidth : 200,
|
||||
@@ -1071,6 +1074,7 @@ Ext.onReady ( function() {
|
||||
mode : 'local',
|
||||
autocomplete : true,
|
||||
triggerAction : 'all',
|
||||
hidden : filterStatus.length == 0 ? true : false,
|
||||
store : new Ext.data.ArrayStore({
|
||||
fields : ['UID','NAME'],
|
||||
data : filterStatus
|
||||
@@ -1705,8 +1709,11 @@ Ext.onReady ( function() {
|
||||
'-',
|
||||
btnAll,
|
||||
'->', // begin using the right-justified button container
|
||||
_('ID_OVERDUE'),
|
||||
comboFilterStatus,
|
||||
filterStatus.length != 0 ?[
|
||||
_('ID_OVERDUE'),
|
||||
comboFilterStatus
|
||||
] : [
|
||||
],
|
||||
_("ID_CATEGORY"),
|
||||
comboCategory,
|
||||
"-",
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
data-indicator-type="<%- indicator.type %>"
|
||||
data-gs-min-width="3" data-gs-min-height="2" data-gs-max-height="2"
|
||||
data-toggle="tooltip" data-original-title={translate label="ID_DASH_HELP_INBOX_STATUS"}>
|
||||
<div class="ind-container-selector panel grid-stack-item-content" style="min-width:200px;">
|
||||
<div class="ind-container-selector panel grid-stack-item-content panel-status" style="min-width:200px;">
|
||||
<a data-toggle="collapse" href="#efficiencyindex" aria-expanded="false" aria-controls="efficiencyindex">
|
||||
<div class="panel-heading status-indicator-low"
|
||||
style=" width:<%- indicator.percentageOverdueWidth %>%;
|
||||
@@ -373,15 +373,15 @@
|
||||
|
||||
<div id="compareIndicators" class="row pull-left">
|
||||
|
||||
<div class="span4 pull-left">
|
||||
<div class="span4 pull-left" style="margin:15px; ">
|
||||
<span id="indicatorLabel"></span>
|
||||
<select id="indicatorList"></select>
|
||||
<span id="periodicityLabel"></span>
|
||||
<span id="periodicityLabel" style="margin-left:15px;"></span>
|
||||
<select id="periodicityList" style="width:auto;"></select>
|
||||
<span id="initPeriodLabel"></span>
|
||||
<span id="initPeriodLabel" style="margin-left:15px;"></span>
|
||||
<select id="initPeriodList"></select>
|
||||
<select id="initYearList"></select>
|
||||
<span id="endPeriodLabel"></span>
|
||||
<span id="endPeriodLabel" style="margin-left:15px;"></span>
|
||||
<select id="endPeriodList"></select>
|
||||
<select id="endYearList"></select>
|
||||
</div>
|
||||
|
||||
@@ -585,8 +585,8 @@ table.dataTable thead .sorting:after {
|
||||
margin-bottom: 45px;
|
||||
}
|
||||
|
||||
.panel-green:hover, .panel-red:hover, .panel-high:hover, .panel-low:hover{
|
||||
box-shadow:0px 3px 2px #dfdfdf;
|
||||
.panel-green:hover, .panel-red:hover, .panel-high:hover, .panel-low, .panel-status:hover{
|
||||
box-shadow:0px 3px 2px #dfdfdf;
|
||||
}
|
||||
|
||||
.small{
|
||||
|
||||
Reference in New Issue
Block a user