diff --git a/workflow/engine/classes/model/AppCacheView.php b/workflow/engine/classes/model/AppCacheView.php index 8e8624b11..9a2d1a8de 100755 --- a/workflow/engine/classes/model/AppCacheView.php +++ b/workflow/engine/classes/model/AppCacheView.php @@ -1793,67 +1793,52 @@ class AppCacheView extends BaseAppCacheView return $criteria; } - /*----------------------------------********---------------------------------*/ - function fillReportByUser () - { - try { - global $sFilter; - global $dateInit; - global $dateFinish; - - if (strpos($sFilter, 'report_by_user') === false) { - return false; - } - if ($dateInit == null) { - eprintln("You must enter the starting date.", "red"); - 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 'User Reporting'..."); - $appcv->fillReportByUser($dateInit, $dateFinish); - setExecutionResultMessage("DONE"); - } catch (Exception $e) { - setExecutionResultMessage("WITH ERRORS", "error"); - eprintln(" '-" . $e->getMessage(), "red"); - saveLog("fillReportByUser", "error", "Error in fill report by user: " . $e->getMessage()); - } - } - - function fillReportByProcess () - { - try { - global $sFilter; - global $dateInit; - global $dateFinish; - - if (strpos($sFilter, 'report_by_process') === false) { - return false; - } - - if ($dateInit == null) { - eprintln("You must enter the starting date.", "red"); - 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()); - } - } + /*----------------------------------********---------------------------------*/ + public function fillReportByUser ($dateInit, $dateFinish) + { + $con = Propel::getConnection("workflow"); + $stmt = $con->createStatement(); + + $filenameSql = $this->pathToAppCacheFiles . "triggerFillReportByUser.sql"; + + if (!file_exists($filenameSql)) { + throw (new Exception("file triggerFillReportByUser.sql doesn't exist")); + } + + $sql = "TRUNCATE TABLE USR_REPORTING"; + $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC); + + $sql = explode(';', file_get_contents($filenameSql)); + + foreach ($sql as $key => $val) { + $val = str_replace('{init_date}', $dateInit, $val); + $val = str_replace('{finish_date}', $dateFinish, $val); + $stmt->executeQuery($val); + } + } + + public function fillReportByProcess ($dateInit, $dateFinish) + { + $con = Propel::getConnection("workflow"); + $stmt = $con->createStatement(); + + $filenameSql = $this->pathToAppCacheFiles . "triggerFillReportByProcess.sql"; + + if (!file_exists($filenameSql)) { + throw (new Exception("file triggerFillReportByProcess.sql doesn't exist")); + } + + $sql = "TRUNCATE TABLE PRO_REPORTING"; + $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC); + + $sql = explode(';', file_get_contents($filenameSql)); + + foreach ($sql as $key => $val) { + $val = str_replace('{init_date}', $dateInit, $val); + $val = str_replace('{finish_date}', $dateFinish, $val); + $stmt->executeQuery($val); + } + } /*----------------------------------********---------------------------------*/ } diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index 527ae5862..5ae24fc38 100755 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -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'), ('400','ID_YEAR','PERIODICITY','','','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'), ('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'), diff --git a/workflow/engine/menus/processmaker.php b/workflow/engine/menus/processmaker.php index 3a72c200d..00938be7a 100755 --- a/workflow/engine/menus/processmaker.php +++ b/workflow/engine/menus/processmaker.php @@ -55,7 +55,7 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1 || $RBAC->userCanAccess('PM_USERS') == // NEW DASHBOARD MODULE $licensedFeatures = & PMLicensedFeatures::getSingleton(); 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'); } /*----------------------------------********---------------------------------*/ diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql index da1aeef85..eb3dc4808 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql @@ -20,7 +20,6 @@ INSERT INTO PRO_REPORTING ( TOTAL_CASES_OVERDUE, TOTAL_CASES_ON_TIME ) - SELECT APPLICATION.PRO_UID, DATE_FORMAT(APPLICATION.APP_INIT_DATE, '%m') AS `MONTH`, diff --git a/workflow/engine/templates/strategicDashboard/formDashboard.js b/workflow/engine/templates/strategicDashboard/formDashboard.js index 96e91b426..036ca32bd 100644 --- a/workflow/engine/templates/strategicDashboard/formDashboard.js +++ b/workflow/engine/templates/strategicDashboard/formDashboard.js @@ -506,7 +506,7 @@ Ext.onReady( function() { enableTabScroll : true, //anchor : '98%', width : '100%', - height : 300, + height : 315, defaults : { autoScroll :true }, @@ -663,7 +663,7 @@ Ext.onReady( function() { { text : _('ID_CANCEL'), id : 'cancel', - handler : function(){ + handler : function() { window.location = 'dashboardList'; } } @@ -726,13 +726,14 @@ var addTab = function (flag) { return false; } var tab = { - //title : _('ID_INDICATOR') + (++indexTab), title : _('ID_INDICATOR')+ ' '+ (++indexTab), id : indexTab, iconCls : 'tabs', + width : "100%", items : [ new Ext.Panel({ - height : 260, + height : 275, + width : "100%", border : true, bodyStyle : 'padding:10px', items : [ @@ -792,7 +793,11 @@ var addTab = function (flag) { }), new Ext.form.FieldSet({ title : _('ID_INDICATOR_GOAL'), - bodyStyle: 'paddingLeft: 143px', + width : "90%", + id : 'fieldSet_'+ indexTab, + bodyStyle: 'paddingLeft: 75px;', + paddingLeft: "30px", + marginLeft : "60px", layout : 'hbox', items : [ new Ext.form.ComboBox({ @@ -826,7 +831,18 @@ var addTab = function (flag) { width : 80, 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({ anchor : '85%', @@ -1065,6 +1081,11 @@ var saveAllIndicators = function (DAS_UID) { } tabPanel.getItem(tabActivate[tab]).show(); 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['DAS_UID'] = DAS_UID; @@ -1076,54 +1097,38 @@ var saveAllIndicators = function (DAS_UID) { } id = node.id; - value = node.getValue(); - switch (index) { - case "0": - data['DAS_IND_UID'] = value.trim(); - break; - case "1": - if (value.trim() == '') { - 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; + id = id.split('_'); + field = ''; + for (var part = 0; part