From 6117eb75c61c8acc60be823d86ec61553e2d9059 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Mon, 13 Apr 2015 11:48:14 -0400 Subject: [PATCH 01/50] Add field tas_duration in app_cache_view --- workflow/engine/config/schema.xml | 1 + workflow/engine/data/mysql/insert.sql | 8 ++------ workflow/engine/data/mysql/schema.sql | 3 ++- .../engine/methods/setup/setupSchemas/app_cache_view.sql | 1 + .../methods/setup/setupSchemas/app_cache_view_insert.sql | 6 ++++-- .../setup/setupSchemas/triggerAppDelegationInsert.sql | 8 ++++++-- .../setup/setupSchemas/triggerAppDelegationUpdate.sql | 5 ++++- .../setup/setupSchemas/triggerFillReportByProcess.sql | 2 +- .../setup/setupSchemas/triggerFillReportByUser.sql | 2 +- .../engine/templates/strategicDashboard/formDashboard.js | 6 ++++-- 10 files changed, 26 insertions(+), 16 deletions(-) diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index 38a332e67..efa6b2048 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -2458,6 +2458,7 @@ + diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index 4a9996c20..e4abbff97 100755 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -4542,7 +4542,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_PROCESS_INEFFICIENCE','en','Process Inefficiency Cost','2015-04-01') , ( 'LABEL','ID_EMPLYEE_EFFICIENCIE','en','Employee Efficience Index','2015-03-09') , ( 'LABEL','ID_USER_INEFFICIENCE','en','Inefficience Cost By User','2015-03-09') , -( 'LABEL','ID_OVER_DUE','en','% Overdue','2015-04-01') , +( 'LABEL','ID_OVER_DUE','en','Status','2015-04-01') , ( 'LABEL','ID_NEW_CASES','en','% New Cases','2015-04-06') , ( 'LABEL','ID_COMPLETED_CASES','en','Completed Cases','2015-03-09') , ( 'LABEL','ID_WORKING_CASES','en','% In Progress','2015-04-06') , @@ -59976,8 +59976,4 @@ INSERT INTO CATALOG (CAT_UID, CAT_LABEL_ID, CAT_TYPE, CAT_FLAG, CAT_OBSERVATION, ('400','ID_YEAR','PERIODICITY','','','2015-03-04','2015-03-04'), ('1010','ID_PROCESS_EFFICIENCE','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'), -('1060','ID_NEW_CASES','INDICATOR','','','2015-03-04','2015-03-04'), -('1070','ID_COMPLETED_CASES','INDICATOR','','','2015-03-04','2015-03-04'), -('1080','ID_WORKING_CASES','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/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index a58a464de..f1a7059b0 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -1175,6 +1175,7 @@ CREATE TABLE `APP_CACHE_VIEW` `APP_FINISH_DATE` DATETIME, `APP_UPDATE_DATE` DATETIME NOT NULL, `APP_OVERDUE_PERCENTAGE` DOUBLE NOT NULL, + `TAS_DURATION` DOUBLE default 0 NOT NULL, PRIMARY KEY (`APP_UID`,`DEL_INDEX`), KEY `indexAppNumber`(`APP_NUMBER`), KEY `protitle`(`APP_PRO_TITLE`), @@ -2786,7 +2787,7 @@ CREATE TABLE `DASHBOARD_DAS_IND` ( `DAS_UID` VARCHAR(32) default '' NOT NULL, `OWNER_UID` VARCHAR(32) default '' NOT NULL, - `OWNER_TYPE` VARCHAR(15) default '' NOT NULL + `OWNER_TYPE` VARCHAR(15) default '' NOT NULL, PRIMARY KEY (`DAS_UID`), CONSTRAINT `fk_dashboard_indicator_dashboard_das_ind` FOREIGN KEY (`DAS_UID`) diff --git a/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql b/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql index 74cf64bbb..bffb45cba 100755 --- a/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql +++ b/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql @@ -31,6 +31,7 @@ CREATE TABLE `APP_CACHE_VIEW` `APP_FINISH_DATE` DATETIME, `APP_UPDATE_DATE` DATETIME NOT NULL, `APP_OVERDUE_PERCENTAGE` DOUBLE NOT NULL, + `TAS_DURATION` DOUBLE default 0 NOT NULL, PRIMARY KEY (`APP_UID`,`DEL_INDEX`), KEY `indexAppNumber`(`APP_NUMBER`), KEY `indexAppUser`(`USR_UID`, `APP_STATUS`) diff --git a/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql b/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql index e3e4ccdf9..42ede2e57 100755 --- a/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql +++ b/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql @@ -33,7 +33,8 @@ INSERT INTO APP_CACHE_VIEW ( APP_FINISH_DATE, APP_UPDATE_DATE, APP_OVERDUE_PERCENTAGE, - DEL_LAST_INDEX + DEL_LAST_INDEX, + TAS_DURATION ) SELECT @@ -77,7 +78,8 @@ SELECT IF (APPLICATION.APP_STATUS = 'COMPLETED', APPLICATION.APP_FINISH_DATE, NULL), APPLICATION.APP_UPDATE_DATE, APP_DELEGATION.APP_OVERDUE_PERCENTAGE, - APP_DELEGATION.DEL_LAST_INDEX + APP_DELEGATION.DEL_LAST_INDEX, + if (TASK.TAS_TIMEUNIT = "DAYS", TASK.TAS_DURATION, (TASK.TAS_DURATION/24)) FROM APPLICATION FORCE INDEX (PRIMARY) LEFT JOIN APP_DELEGATION ON (APPLICATION.APP_UID=APP_DELEGATION.APP_UID) diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql index f884649ba..d6e79b344 100755 --- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql @@ -12,6 +12,7 @@ BEGIN DECLARE PREVIOUS_USR_UID VARCHAR(32); DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255); DECLARE APP_THREAD_STATUS VARCHAR(32); + DECLARE TAS_DURATION DOUBLE; SET @DEFAULT_LANG = '{lang}'; SET @APP_CURRENT_USER = ''; SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; @@ -42,6 +43,7 @@ BEGIN SET @APP_THREAD_STATUS = 'OPEN'; END IF; SET @TAS_TYPE = (SELECT TAS_TYPE FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1); + SELECT IF (TASK.TAS_TIMEUNIT = "DAYS", TASK.TAS_DURATION, (TASK.TAS_DURATION/24)) into @TAS_DURATION FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1; UPDATE APP_CACHE_VIEW SET DEL_LAST_INDEX = 0 WHERE APP_UID = NEW.APP_UID; IF( @TAS_TYPE != 'SUBPROCESS') THEN INSERT INTO `APP_CACHE_VIEW` ( @@ -75,7 +77,8 @@ BEGIN APP_FINISH_DATE, APP_UPDATE_DATE, APP_OVERDUE_PERCENTAGE, - DEL_LAST_INDEX + DEL_LAST_INDEX, + TAS_DURATION ) VALUES ( NEW.APP_UID, @@ -108,7 +111,8 @@ BEGIN NULL, NOW(), NEW.APP_OVERDUE_PERCENTAGE, - NEW.DEL_LAST_INDEX + NEW.DEL_LAST_INDEX, + @TAS_DURATION ); END IF; END diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql index f5592c526..cf2b124c7 100755 --- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql @@ -12,6 +12,7 @@ BEGIN DECLARE PREVIOUS_USR_UID VARCHAR(32); DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255); DECLARE APP_THREAD_STATUS VARCHAR(32); + DECLARE TAS_DURATION DOUBLE; SET @DEFAULT_LANG = '{lang}'; SET @APP_CURRENT_USER = ''; SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; @@ -42,6 +43,7 @@ BEGIN SET @APP_THREAD_STATUS = 'OPEN'; END IF; SET @TAS_TYPE = (SELECT TAS_TYPE FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1); + SELECT IF (TASK.TAS_TIMEUNIT = "DAYS", TASK.TAS_DURATION, (TASK.TAS_DURATION/24)) into @TAS_DURATION FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1; IF( @TAS_TYPE != 'SUBPROCESS') THEN UPDATE `APP_CACHE_VIEW` SET @@ -71,7 +73,8 @@ BEGIN DEL_DELAYED = NEW.DEL_DELAYED, APP_FINISH_DATE = NULL, APP_OVERDUE_PERCENTAGE = NEW.APP_OVERDUE_PERCENTAGE, - DEL_LAST_INDEX = NEW.DEL_LAST_INDEX + DEL_LAST_INDEX = NEW.DEL_LAST_INDEX, + TAS_DURATION = @TAS_DURATION WHERE APP_UID = NEW.APP_UID AND DEL_INDEX = NEW.DEL_INDEX; diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql index eb3dc4808..e62d919e3 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql @@ -42,7 +42,7 @@ GROUP BY APPLICATION.PRO_UID; UPDATE PRO_REPORTING SET PRO_REPORTING.CONFIGURED_PROCESS_TIME = ( - SELECT SUM(if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*8), TASK.TAS_DURATION)) + SELECT SUM(if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*24), TASK.TAS_DURATION)) FROM TASK WHERE PRO_REPORTING.PRO_UID = TASK.PRO_UID ); diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql index 9ffb5b5ea..114565856 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql @@ -55,7 +55,7 @@ UPDATE USR_REPORTING INNER JOIN TASK ON USR_REPORTING.TAS_UID = TASK.TAS_UID -SET USR_REPORTING.CONFIGURED_TASK_TIME = if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*8), TASK.TAS_DURATION) +SET USR_REPORTING.CONFIGURED_TASK_TIME = if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*24), TASK.TAS_DURATION) diff --git a/workflow/engine/templates/strategicDashboard/formDashboard.js b/workflow/engine/templates/strategicDashboard/formDashboard.js index 950714d06..0140e7aec 100644 --- a/workflow/engine/templates/strategicDashboard/formDashboard.js +++ b/workflow/engine/templates/strategicDashboard/formDashboard.js @@ -504,7 +504,7 @@ Ext.onReady( function() { enableTabScroll : true, //anchor : '98%', width : '100%', - height : 315, + height : 260, defaults : { autoScroll :true }, @@ -730,7 +730,7 @@ var addTab = function (flag) { width : "100%", items : [ new Ext.Panel({ - height : 275, + height : 230, width : "100%", border : true, bodyStyle : 'padding:10px', @@ -797,6 +797,7 @@ var addTab = function (flag) { paddingLeft: "30px", marginLeft : "60px", layout : 'hbox', + hidden : true, items : [ new Ext.form.ComboBox({ editable : false, @@ -828,6 +829,7 @@ var addTab = function (flag) { anchor : '40%', maskRe : /([0-9\.]+)$/, maxLength : 9, + value : 1, width : 80, allowBlank : false, listeners : { From fadeab3691bda2e944a004e6dab4ad4369a6cd84 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Tue, 14 Apr 2015 14:13:32 -0400 Subject: [PATCH 02/50] Improvement form Dashboards quit field goal --- workflow/engine/config/schema.xml | 1 - workflow/engine/data/mysql/schema.sql | 1 - .../methods/setup/setupSchemas/app_cache_view.sql | 1 - .../setup/setupSchemas/app_cache_view_insert.sql | 6 ++---- .../setup/setupSchemas/triggerAppDelegationInsert.sql | 10 +++------- .../setup/setupSchemas/triggerAppDelegationUpdate.sql | 5 +---- 6 files changed, 6 insertions(+), 18 deletions(-) diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index efa6b2048..38a332e67 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -2458,7 +2458,6 @@ - diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index f1a7059b0..2af1322f7 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -1175,7 +1175,6 @@ CREATE TABLE `APP_CACHE_VIEW` `APP_FINISH_DATE` DATETIME, `APP_UPDATE_DATE` DATETIME NOT NULL, `APP_OVERDUE_PERCENTAGE` DOUBLE NOT NULL, - `TAS_DURATION` DOUBLE default 0 NOT NULL, PRIMARY KEY (`APP_UID`,`DEL_INDEX`), KEY `indexAppNumber`(`APP_NUMBER`), KEY `protitle`(`APP_PRO_TITLE`), diff --git a/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql b/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql index bffb45cba..74cf64bbb 100755 --- a/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql +++ b/workflow/engine/methods/setup/setupSchemas/app_cache_view.sql @@ -31,7 +31,6 @@ CREATE TABLE `APP_CACHE_VIEW` `APP_FINISH_DATE` DATETIME, `APP_UPDATE_DATE` DATETIME NOT NULL, `APP_OVERDUE_PERCENTAGE` DOUBLE NOT NULL, - `TAS_DURATION` DOUBLE default 0 NOT NULL, PRIMARY KEY (`APP_UID`,`DEL_INDEX`), KEY `indexAppNumber`(`APP_NUMBER`), KEY `indexAppUser`(`USR_UID`, `APP_STATUS`) diff --git a/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql b/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql index 42ede2e57..e3e4ccdf9 100755 --- a/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql +++ b/workflow/engine/methods/setup/setupSchemas/app_cache_view_insert.sql @@ -33,8 +33,7 @@ INSERT INTO APP_CACHE_VIEW ( APP_FINISH_DATE, APP_UPDATE_DATE, APP_OVERDUE_PERCENTAGE, - DEL_LAST_INDEX, - TAS_DURATION + DEL_LAST_INDEX ) SELECT @@ -78,8 +77,7 @@ SELECT IF (APPLICATION.APP_STATUS = 'COMPLETED', APPLICATION.APP_FINISH_DATE, NULL), APPLICATION.APP_UPDATE_DATE, APP_DELEGATION.APP_OVERDUE_PERCENTAGE, - APP_DELEGATION.DEL_LAST_INDEX, - if (TASK.TAS_TIMEUNIT = "DAYS", TASK.TAS_DURATION, (TASK.TAS_DURATION/24)) + APP_DELEGATION.DEL_LAST_INDEX FROM APPLICATION FORCE INDEX (PRIMARY) LEFT JOIN APP_DELEGATION ON (APPLICATION.APP_UID=APP_DELEGATION.APP_UID) diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql index d6e79b344..2e142025e 100755 --- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql @@ -12,7 +12,6 @@ BEGIN DECLARE PREVIOUS_USR_UID VARCHAR(32); DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255); DECLARE APP_THREAD_STATUS VARCHAR(32); - DECLARE TAS_DURATION DOUBLE; SET @DEFAULT_LANG = '{lang}'; SET @APP_CURRENT_USER = ''; SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; @@ -43,8 +42,7 @@ BEGIN SET @APP_THREAD_STATUS = 'OPEN'; END IF; SET @TAS_TYPE = (SELECT TAS_TYPE FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1); - SELECT IF (TASK.TAS_TIMEUNIT = "DAYS", TASK.TAS_DURATION, (TASK.TAS_DURATION/24)) into @TAS_DURATION FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1; - UPDATE APP_CACHE_VIEW SET DEL_LAST_INDEX = 0 WHERE APP_UID = NEW.APP_UID; + UPDATE APP_CACHE_VIEW SET DEL_LAST_INDEX = 0 WHERE APP_UID = NEW.APP_UID; IF( @TAS_TYPE != 'SUBPROCESS') THEN INSERT INTO `APP_CACHE_VIEW` ( APP_UID, @@ -77,8 +75,7 @@ BEGIN APP_FINISH_DATE, APP_UPDATE_DATE, APP_OVERDUE_PERCENTAGE, - DEL_LAST_INDEX, - TAS_DURATION + DEL_LAST_INDEX ) VALUES ( NEW.APP_UID, @@ -111,8 +108,7 @@ BEGIN NULL, NOW(), NEW.APP_OVERDUE_PERCENTAGE, - NEW.DEL_LAST_INDEX, - @TAS_DURATION + NEW.DEL_LAST_INDEX ); END IF; END diff --git a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql index cf2b124c7..f5592c526 100755 --- a/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql @@ -12,7 +12,6 @@ BEGIN DECLARE PREVIOUS_USR_UID VARCHAR(32); DECLARE APP_DEL_PREVIOUS_USER VARCHAR(255); DECLARE APP_THREAD_STATUS VARCHAR(32); - DECLARE TAS_DURATION DOUBLE; SET @DEFAULT_LANG = '{lang}'; SET @APP_CURRENT_USER = ''; SELECT APPLICATION.APP_NUMBER into @APP_NUMBER FROM APPLICATION WHERE APP_UID = NEW.APP_UID LIMIT 1; @@ -43,7 +42,6 @@ BEGIN SET @APP_THREAD_STATUS = 'OPEN'; END IF; SET @TAS_TYPE = (SELECT TAS_TYPE FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1); - SELECT IF (TASK.TAS_TIMEUNIT = "DAYS", TASK.TAS_DURATION, (TASK.TAS_DURATION/24)) into @TAS_DURATION FROM TASK WHERE TAS_UID = NEW.TAS_UID LIMIT 1; IF( @TAS_TYPE != 'SUBPROCESS') THEN UPDATE `APP_CACHE_VIEW` SET @@ -73,8 +71,7 @@ BEGIN DEL_DELAYED = NEW.DEL_DELAYED, APP_FINISH_DATE = NULL, APP_OVERDUE_PERCENTAGE = NEW.APP_OVERDUE_PERCENTAGE, - DEL_LAST_INDEX = NEW.DEL_LAST_INDEX, - TAS_DURATION = @TAS_DURATION + DEL_LAST_INDEX = NEW.DEL_LAST_INDEX WHERE APP_UID = NEW.APP_UID AND DEL_INDEX = NEW.DEL_INDEX; From 639210ef71e82e2ed3e4ae4312e7901dddd1a590 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Wed, 15 Apr 2015 12:07:21 -0400 Subject: [PATCH 03/50] Add endpoint status indicator --- .../classes/class.indicatorsCalculator.php | 69 +++++++++++++++++++ .../BusinessModel/ReportingIndicators.php | 22 ++++++ .../Services/Api/ReportingIndicators.php | 23 +++++++ 3 files changed, 114 insertions(+) diff --git a/workflow/engine/classes/class.indicatorsCalculator.php b/workflow/engine/classes/class.indicatorsCalculator.php index c4fa95bd1..03f40aa20 100644 --- a/workflow/engine/classes/class.indicatorsCalculator.php +++ b/workflow/engine/classes/class.indicatorsCalculator.php @@ -468,6 +468,75 @@ class indicatorsCalculator return $retval; } + public function statusIndicator($usrUid) + { + $params[':usrUid'] = $usrUid; + + $response = array(); + + $sqlString = "SELECT + COALESCE( SUM( DATEDIFF( DEL_DUE_DATE , NOW( ) ) < 0 ) , 0 ) AS OVERDUE, + COALESCE( SUM( DATEDIFF( DEL_DUE_DATE , NOW( ) ) > 0 ) , 0 ) AS ONTIME, + COALESCE( SUM( DATEDIFF( DEL_RICK_DATE , NOW( ) ) < 0 ) , 0 ) AS ATRISK + FROM LIST_INBOX + WHERE USR_UID = :usrUid + AND APP_STATUS = 'TO_DO' + AND DEL_DUE_DATE IS NOT NULL "; + $result = $this->pdoExecutor($sqlString, $params); + + $response['overdue'] = 0; + $response['atRisk'] = 0; + $response['onTime'] = 0; + $response['porcentageOverdue'] = 0; + $response['porcentageAtRisk'] = 0; + $response['procentageOnTime'] = 0; + $response['DATALIST'] = array(); + + if (is_array($result) && isset($result[0])) { + $response['overdue'] = $result[0]['OVERDUE']; + $response['atRisk'] = $result[0]['ONTIME']; + $response['onTime'] = $result[0]['ATRISK']; + + $total = $response['overdue'] + $response['atRisk'] + $response['onTime']; + if ($total != 0) { + $response['porcentageOverdue'] = ($response['overdue']*100)/$total; + $response['porcentageAtRisk'] = ($response['atRisk']*100)/$total; + $response['procentageOnTime'] = ($response['onTime']*100)/$total; + } + } + + + $sqlString = "SELECT + TAS_UID, + PRO_UID, + APP_TAS_TITLE AS taskTitle, + APP_PRO_TITLE AS proTitle, + + COALESCE( SUM( DATEDIFF( DEL_DUE_DATE , NOW( ) ) < 0 ) , 0 ) AS overdue, + COALESCE( SUM( DATEDIFF( DEL_DUE_DATE , NOW( ) ) > 0 ) , 0 ) AS onTime, + COALESCE( SUM( DATEDIFF( DEL_RICK_DATE , NOW( ) ) < 0 ) , 0 ) AS atRisk + FROM LIST_INBOX + WHERE USR_UID = :usrUid + AND APP_STATUS = 'TO_DO' + AND DEL_DUE_DATE IS NOT NULL + GROUP BY TAS_UID"; + $result = $this->pdoExecutor($sqlString, $params); + + foreach ($result as $key => $value) { + $result[$key]['overdue'] = $value['overdue']; + $result[$key]['atRisk'] = $value['atRisk']; + $result[$key]['onTime'] = $value['onTime']; + $total = $value['overdue'] + $value['onTime'] + $value['atRisk']; + if ($total != 0) { + $result[$key]['porcentageOverdue'] = ($value['overdue']*100)/$total; + $result[$key]['porcentageAtRisk'] = ($value['atRisk']*100)/$total; + $result[$key]['procentageOnTime'] = ($value['onTime']*100)/$total; + } + } + + $response['DATALIST'] = $result; + return $response; + } private function periodicityFieldsForSelect($periodicity) { $periodicityFields = $this->periodicityFieldsString($periodicity); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/ReportingIndicators.php b/workflow/engine/src/ProcessMaker/BusinessModel/ReportingIndicators.php index 37bd2b45b..1c702e039 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/ReportingIndicators.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/ReportingIndicators.php @@ -296,5 +296,27 @@ class ReportingIndicators ); return $returnValue; } + + /** + * Get list status indicator + * + * @access public + * @param array $options, Data for list + * @return array + * + * @author Marco Antonio Nina + * @copyright Colosa - Bolivia + */ + public function getStatusIndicator($options = array()) + { + Validator::isArray($options, '$options'); + + $usrUid = isset( $options["usrUid"] ) ? $options["usrUid"] : ""; + + G::loadClass('indicatorsCalculator'); + $calculator = new \IndicatorsCalculator(); + $result = $calculator->statusIndicator($usrUid); + return $result; + } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/ReportingIndicators.php b/workflow/engine/src/ProcessMaker/Services/Api/ReportingIndicators.php index 3df2ef4d3..60db98f0e 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/ReportingIndicators.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/ReportingIndicators.php @@ -390,6 +390,29 @@ class ReportingIndicators extends Api throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } + + /** + * Get list Status indicator + * + * @return array + * + * @author Marco Antonio Nina + * @copyright Colosa - Bolivia + * + * @url GET /status-indicator + */ + public function doGetStatusIndicator() { + try { + $options['usrUid'] = $this->getUserId(); + + $indicatorsObj = new \ProcessMaker\BusinessModel\ReportingIndicators(); + $response = $indicatorsObj->getStatusIndicator($options); + return $response; + } catch (\Exception $e) { + throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); + } + } + } From 8a8373684c310fe79c1c5a8251444dae576cd2f4 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Wed, 15 Apr 2015 12:42:48 -0400 Subject: [PATCH 04/50] Add validation indicator 1050 "Status" --- .../strategicDashboard/formDashboard.js | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/workflow/engine/templates/strategicDashboard/formDashboard.js b/workflow/engine/templates/strategicDashboard/formDashboard.js index 0140e7aec..ddd718507 100644 --- a/workflow/engine/templates/strategicDashboard/formDashboard.js +++ b/workflow/engine/templates/strategicDashboard/formDashboard.js @@ -574,7 +574,13 @@ Ext.onReady( function() { if (typeof dataIndicator[id-1]['DAS_IND_DIRECTION'] != 'undefined') { Ext.getCmp('DAS_IND_DIRECTION_'+id).setValue(idDirection); } - if (dataIndicator[id-1]['DAS_IND_TYPE'] != '1010' && dataIndicator[id-1]['DAS_IND_TYPE'] != '1030') { + var field = ''; + if (dataIndicator[id-1]['DAS_IND_TYPE'] != '1050') { + field = Ext.getCmp('IND_PROCESS_'+id); + field.enable(); + field.show(); + } + if (dataIndicator[id-1]['DAS_IND_TYPE'] != '1010' && dataIndicator[id-1]['DAS_IND_TYPE'] != '1030' && dataIndicator[id-1]['DAS_IND_TYPE'] != '1050') { var fields = ['DAS_IND_FIRST_FIGURE_'+id,'DAS_IND_FIRST_FREQUENCY_'+ id,'DAS_IND_SECOND_FIGURE_'+id, 'DAS_IND_SECOND_FREQUENCY_'+ id]; for (var k=0; k