Improvement save form Dashboards
This commit is contained in:
@@ -1793,67 +1793,52 @@ class AppCacheView extends BaseAppCacheView
|
|||||||
return $criteria;
|
return $criteria;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
function fillReportByUser ()
|
public function fillReportByUser ($dateInit, $dateFinish)
|
||||||
{
|
{
|
||||||
try {
|
$con = Propel::getConnection("workflow");
|
||||||
global $sFilter;
|
$stmt = $con->createStatement();
|
||||||
global $dateInit;
|
|
||||||
global $dateFinish;
|
$filenameSql = $this->pathToAppCacheFiles . "triggerFillReportByUser.sql";
|
||||||
|
|
||||||
if (strpos($sFilter, 'report_by_user') === false) {
|
if (!file_exists($filenameSql)) {
|
||||||
return false;
|
throw (new Exception("file triggerFillReportByUser.sql doesn't exist"));
|
||||||
}
|
}
|
||||||
if ($dateInit == null) {
|
|
||||||
eprintln("You must enter the starting date.", "red");
|
$sql = "TRUNCATE TABLE USR_REPORTING";
|
||||||
eprintln('Example: +init-date"YYYY-MM-DD HH:MM:SS" +finish-date"YYYY-MM-DD HH:MM:SS"', "red");
|
$stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||||
return false;
|
|
||||||
}
|
$sql = explode(';', file_get_contents($filenameSql));
|
||||||
|
|
||||||
$dateFinish = ($dateFinish != null) ? $dateFinish : date("Y-m-d H:i:s");
|
foreach ($sql as $key => $val) {
|
||||||
|
$val = str_replace('{init_date}', $dateInit, $val);
|
||||||
$appcv = new AppCacheView();
|
$val = str_replace('{finish_date}', $dateFinish, $val);
|
||||||
$appcv->setPathToAppCacheFiles( PATH_METHODS . 'setup' . PATH_SEP . 'setupSchemas' . PATH_SEP );
|
$stmt->executeQuery($val);
|
||||||
setExecutionMessage("Calculating data to fill the 'User Reporting'...");
|
}
|
||||||
$appcv->fillReportByUser($dateInit, $dateFinish);
|
}
|
||||||
setExecutionResultMessage("DONE");
|
|
||||||
} catch (Exception $e) {
|
public function fillReportByProcess ($dateInit, $dateFinish)
|
||||||
setExecutionResultMessage("WITH ERRORS", "error");
|
{
|
||||||
eprintln(" '-" . $e->getMessage(), "red");
|
$con = Propel::getConnection("workflow");
|
||||||
saveLog("fillReportByUser", "error", "Error in fill report by user: " . $e->getMessage());
|
$stmt = $con->createStatement();
|
||||||
}
|
|
||||||
}
|
$filenameSql = $this->pathToAppCacheFiles . "triggerFillReportByProcess.sql";
|
||||||
|
|
||||||
function fillReportByProcess ()
|
if (!file_exists($filenameSql)) {
|
||||||
{
|
throw (new Exception("file triggerFillReportByProcess.sql doesn't exist"));
|
||||||
try {
|
}
|
||||||
global $sFilter;
|
|
||||||
global $dateInit;
|
$sql = "TRUNCATE TABLE PRO_REPORTING";
|
||||||
global $dateFinish;
|
$stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
if (strpos($sFilter, 'report_by_process') === false) {
|
$sql = explode(';', file_get_contents($filenameSql));
|
||||||
return false;
|
|
||||||
}
|
foreach ($sql as $key => $val) {
|
||||||
|
$val = str_replace('{init_date}', $dateInit, $val);
|
||||||
if ($dateInit == null) {
|
$val = str_replace('{finish_date}', $dateFinish, $val);
|
||||||
eprintln("You must enter the starting date.", "red");
|
$stmt->executeQuery($val);
|
||||||
eprintln('Example: +init-date"YYYY-MM-DD HH:MM:SS" +finish-date"YYYY-MM-DD HH:MM:SS"', "red");
|
}
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$dateFinish = ($dateFinish != null) ? $dateFinish : date("Y-m-d H:i:s");
|
|
||||||
$appcv = new AppCacheView();
|
|
||||||
$appcv->setPathToAppCacheFiles( PATH_METHODS . 'setup' . PATH_SEP . 'setupSchemas' . PATH_SEP );
|
|
||||||
|
|
||||||
setExecutionMessage("Calculating data to fill the 'Process Reporting'...");
|
|
||||||
$appcv->fillReportByProcess($dateInit, $dateFinish);
|
|
||||||
setExecutionResultMessage("DONE");
|
|
||||||
} catch (Exception $e) {
|
|
||||||
setExecutionResultMessage("WITH ERRORS", "error");
|
|
||||||
eprintln(" '-" . $e->getMessage(), "red");
|
|
||||||
saveLog("fillReportByProcess", "error", "Error in fill report by process: " . $e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59952,7 +59952,6 @@ INSERT INTO CATALOG (CAT_UID, CAT_LABEL_ID, CAT_TYPE, CAT_FLAG, CAT_OBSERVATION,
|
|||||||
('300','ID_SEMESTER','PERIODICITY','','','2015-03-04','2015-03-04'),
|
('300','ID_SEMESTER','PERIODICITY','','','2015-03-04','2015-03-04'),
|
||||||
('400','ID_YEAR','PERIODICITY','','','2015-03-04','2015-03-04'),
|
('400','ID_YEAR','PERIODICITY','','','2015-03-04','2015-03-04'),
|
||||||
('1010','ID_PROCESS_EFFICIENCE','INDICATOR','','','2015-03-04','2015-03-04'),
|
('1010','ID_PROCESS_EFFICIENCE','INDICATOR','','','2015-03-04','2015-03-04'),
|
||||||
('1020','ID_PROCESS_INEFFICIENCE','INDICATOR','','','2015-03-04','2015-03-04'),
|
|
||||||
('1030','ID_EMPLYEE_EFFICIENCIE','INDICATOR','','','2015-03-04','2015-03-04'),
|
('1030','ID_EMPLYEE_EFFICIENCIE','INDICATOR','','','2015-03-04','2015-03-04'),
|
||||||
('1040','ID_USER_INEFFICIENCE','INDICATOR','','','2015-03-04','2015-03-04'),
|
('1040','ID_USER_INEFFICIENCE','INDICATOR','','','2015-03-04','2015-03-04'),
|
||||||
('1050','ID_OVER_DUE','INDICATOR','%','Unit for displaying','2015-03-04','2015-03-04'),
|
('1050','ID_OVER_DUE','INDICATOR','%','Unit for displaying','2015-03-04','2015-03-04'),
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1 || $RBAC->userCanAccess('PM_USERS') ==
|
|||||||
// NEW DASHBOARD MODULE
|
// NEW DASHBOARD MODULE
|
||||||
$licensedFeatures = & PMLicensedFeatures::getSingleton();
|
$licensedFeatures = & PMLicensedFeatures::getSingleton();
|
||||||
if ($licensedFeatures->verifyfeature('r19Vm5DK1UrT09MenlLYjZxejlhNUZ1b1NhV0JHWjBsZEJ6dnpJa3dTeWVLVT0=') && ($RBAC->userCanAccess('PM_SETUP') == 1 || $RBAC->userCanAccess('PM_USERS') == 1)) {
|
if ($licensedFeatures->verifyfeature('r19Vm5DK1UrT09MenlLYjZxejlhNUZ1b1NhV0JHWjBsZEJ6dnpJa3dTeWVLVT0=') && ($RBAC->userCanAccess('PM_SETUP') == 1 || $RBAC->userCanAccess('PM_USERS') == 1)) {
|
||||||
$G_TMP_MENU->AddIdRawOption('DASHBOARD+', 'strategicDashboard/main', G::LoadTranslation('ID_DASHBOARD'), '', '', '', 'x-pm-dashboard');
|
$G_TMP_MENU->AddIdRawOption('DASHBOARD+', 'strategicDashboard/main', G::LoadTranslation('ID_STRATEGIC_DASHBOARD'), '', '', '', 'x-pm-dashboard');
|
||||||
}
|
}
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ INSERT INTO PRO_REPORTING (
|
|||||||
TOTAL_CASES_OVERDUE,
|
TOTAL_CASES_OVERDUE,
|
||||||
TOTAL_CASES_ON_TIME
|
TOTAL_CASES_ON_TIME
|
||||||
)
|
)
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
APPLICATION.PRO_UID,
|
APPLICATION.PRO_UID,
|
||||||
DATE_FORMAT(APPLICATION.APP_INIT_DATE, '%m') AS `MONTH`,
|
DATE_FORMAT(APPLICATION.APP_INIT_DATE, '%m') AS `MONTH`,
|
||||||
|
|||||||
@@ -506,7 +506,7 @@ Ext.onReady( function() {
|
|||||||
enableTabScroll : true,
|
enableTabScroll : true,
|
||||||
//anchor : '98%',
|
//anchor : '98%',
|
||||||
width : '100%',
|
width : '100%',
|
||||||
height : 300,
|
height : 315,
|
||||||
defaults : {
|
defaults : {
|
||||||
autoScroll :true
|
autoScroll :true
|
||||||
},
|
},
|
||||||
@@ -663,7 +663,7 @@ Ext.onReady( function() {
|
|||||||
{
|
{
|
||||||
text : _('ID_CANCEL'),
|
text : _('ID_CANCEL'),
|
||||||
id : 'cancel',
|
id : 'cancel',
|
||||||
handler : function(){
|
handler : function() {
|
||||||
window.location = 'dashboardList';
|
window.location = 'dashboardList';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -726,13 +726,14 @@ var addTab = function (flag) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var tab = {
|
var tab = {
|
||||||
//title : _('ID_INDICATOR') + (++indexTab),
|
|
||||||
title : _('ID_INDICATOR')+ ' '+ (++indexTab),
|
title : _('ID_INDICATOR')+ ' '+ (++indexTab),
|
||||||
id : indexTab,
|
id : indexTab,
|
||||||
iconCls : 'tabs',
|
iconCls : 'tabs',
|
||||||
|
width : "100%",
|
||||||
items : [
|
items : [
|
||||||
new Ext.Panel({
|
new Ext.Panel({
|
||||||
height : 260,
|
height : 275,
|
||||||
|
width : "100%",
|
||||||
border : true,
|
border : true,
|
||||||
bodyStyle : 'padding:10px',
|
bodyStyle : 'padding:10px',
|
||||||
items : [
|
items : [
|
||||||
@@ -792,7 +793,11 @@ var addTab = function (flag) {
|
|||||||
}),
|
}),
|
||||||
new Ext.form.FieldSet({
|
new Ext.form.FieldSet({
|
||||||
title : _('ID_INDICATOR_GOAL'),
|
title : _('ID_INDICATOR_GOAL'),
|
||||||
bodyStyle: 'paddingLeft: 143px',
|
width : "90%",
|
||||||
|
id : 'fieldSet_'+ indexTab,
|
||||||
|
bodyStyle: 'paddingLeft: 75px;',
|
||||||
|
paddingLeft: "30px",
|
||||||
|
marginLeft : "60px",
|
||||||
layout : 'hbox',
|
layout : 'hbox',
|
||||||
items : [
|
items : [
|
||||||
new Ext.form.ComboBox({
|
new Ext.form.ComboBox({
|
||||||
@@ -826,7 +831,18 @@ var addTab = function (flag) {
|
|||||||
width : 80,
|
width : 80,
|
||||||
allowBlank : false
|
allowBlank : false
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
listeners:
|
||||||
|
{
|
||||||
|
render: function()
|
||||||
|
{
|
||||||
|
var index = tabPanel.getActiveTab().id;
|
||||||
|
var myfieldset = document.getElementById('fieldSet_'+index);
|
||||||
|
myfieldset.style.marginLeft = "70px";
|
||||||
|
myfieldset.style.marginRight = "70px";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}),
|
}),
|
||||||
new Ext.form.ComboBox({
|
new Ext.form.ComboBox({
|
||||||
anchor : '85%',
|
anchor : '85%',
|
||||||
@@ -1065,6 +1081,11 @@ var saveAllIndicators = function (DAS_UID) {
|
|||||||
}
|
}
|
||||||
tabPanel.getItem(tabActivate[tab]).show();
|
tabPanel.getItem(tabActivate[tab]).show();
|
||||||
var fieldsTab = tabPanel.getItem(tabActivate[tab]).items.items[0].items.items[0].items.items;
|
var fieldsTab = tabPanel.getItem(tabActivate[tab]).items.items[0].items.items[0].items.items;
|
||||||
|
var goal = fieldsTab[3];
|
||||||
|
delete fieldsTab[3];
|
||||||
|
fieldsTab.push(goal.items.items[0]);
|
||||||
|
fieldsTab.push(goal.items.items[1]);
|
||||||
|
|
||||||
|
|
||||||
data = [];
|
data = [];
|
||||||
data['DAS_UID'] = DAS_UID;
|
data['DAS_UID'] = DAS_UID;
|
||||||
@@ -1076,54 +1097,38 @@ var saveAllIndicators = function (DAS_UID) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
id = node.id;
|
id = node.id;
|
||||||
value = node.getValue();
|
id = id.split('_');
|
||||||
switch (index) {
|
field = '';
|
||||||
case "0":
|
for (var part = 0; part<id.length-1; part++) {
|
||||||
data['DAS_IND_UID'] = value.trim();
|
if (part == 0) {
|
||||||
break;
|
field = id[part];
|
||||||
case "1":
|
} else {
|
||||||
if (value.trim() == '') {
|
field = field+'_'+id[part];
|
||||||
PMExt.warning(_('ID_DASHBOARD'), _('ID_INDICATOR_TITLE_REQUIRED', tabPanel.getItem(tabActivate[tab]).title));
|
}
|
||||||
node.focus(true,10);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
data['DAS_IND_TITLE'] = value.trim();
|
|
||||||
break;
|
|
||||||
case "2":
|
|
||||||
if (value.trim() == '') {
|
|
||||||
PMExt.warning(_('ID_DASHBOARD'), _('ID_INDICATOR_TYPE_REQUIRED', tabPanel.getItem(tabActivate[tab]).title));
|
|
||||||
node.focus(true,10);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
data['DAS_IND_TYPE'] = value.trim();
|
|
||||||
break;
|
|
||||||
case "3":
|
|
||||||
data['DAS_IND_GOAL'] = value.trim();
|
|
||||||
break;
|
|
||||||
case "4":
|
|
||||||
data['DAS_IND_DIRECTION'] = value;
|
|
||||||
break;
|
|
||||||
case "5":
|
|
||||||
if (value.trim() == '') {
|
|
||||||
PMExt.warning(_('ID_DASHBOARD'), _('ID_INDICATOR_PROCESS_REQUIRED', tabPanel.getItem(tabActivate[tab]).title));
|
|
||||||
node.focus(true,10);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
data['DAS_UID_PROCESS'] = value;
|
|
||||||
break;
|
|
||||||
case "6":
|
|
||||||
data['DAS_IND_FIRST_FIGURE'] = value;
|
|
||||||
break;
|
|
||||||
case "7":
|
|
||||||
data['DAS_IND_FIRST_FREQUENCY'] = value;
|
|
||||||
break;
|
|
||||||
case "8":
|
|
||||||
data['DAS_IND_SECOND_FIGURE'] = value;
|
|
||||||
break;
|
|
||||||
case "9":
|
|
||||||
data['DAS_IND_SECOND_FREQUENCY'] = value;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
value = node.getValue();
|
||||||
|
|
||||||
|
|
||||||
|
if (field == 'IND_TITLE' && value.trim() == '') {
|
||||||
|
PMExt.warning(_('ID_DASHBOARD'), _('ID_INDICATOR_TITLE_REQUIRED', tabPanel.getItem(tabActivate[tab]).title));
|
||||||
|
node.focus(true,10);
|
||||||
|
return false;
|
||||||
|
} else if (field == 'IND_TYPE' && value.trim() == '') {
|
||||||
|
PMExt.warning(_('ID_DASHBOARD'), _('ID_INDICATOR_TYPE_REQUIRED', tabPanel.getItem(tabActivate[tab]).title));
|
||||||
|
node.focus(true,10);
|
||||||
|
return false;
|
||||||
|
} else if (field == 'IND_PROCESS' && value.trim() == '') {
|
||||||
|
PMExt.warning(_('ID_DASHBOARD'), _('ID_INDICATOR_PROCESS_REQUIRED', tabPanel.getItem(tabActivate[tab]).title));
|
||||||
|
node.focus(true,10);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
field = field == 'IND_TITLE' ? 'DAS_IND_TITLE' : field;
|
||||||
|
field = field == 'IND_TYPE' ? 'DAS_IND_TYPE' : field;
|
||||||
|
field = field == 'IND_PROCESS' ? 'DAS_UID_PROCESS' : field;
|
||||||
|
field = field == 'IND_GOAL' ? 'DAS_IND_GOAL' : field;
|
||||||
|
|
||||||
|
data[field] = value.trim();
|
||||||
}
|
}
|
||||||
saveDashboardIndicator(data);
|
saveDashboardIndicator(data);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user