From 01774e9feab31f8cba59e14d4b1fa1fc9e9adde8 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Fri, 10 Feb 2017 12:27:28 -0400 Subject: [PATCH] Review the filters --- workflow/engine/classes/model/ListInbox.php | 53 +++++++------- .../classes/model/ListParticipatedLast.php | 30 ++++---- workflow/engine/classes/model/ListPaused.php | 72 ++++++------------- .../engine/classes/model/ListUnassigned.php | 36 ---------- 4 files changed, 67 insertions(+), 124 deletions(-) diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php index 9d2e6f8f8..3a8513837 100644 --- a/workflow/engine/classes/model/ListInbox.php +++ b/workflow/engine/classes/model/ListInbox.php @@ -334,7 +334,7 @@ class ListInbox extends BaseListInbox self::create($data, $isSelfService); } - public static function loadFilters (&$criteria, $filters) + public function loadFilters (&$criteria, $filters) { $action = isset($filters['action']) ? $filters['action'] : ""; $usrUid = isset($filters['usr_uid']) ? $filters['usr_uid'] : ""; @@ -348,6 +348,7 @@ class ListInbox extends BaseListInbox $newestthan = isset($filters['newestthan'] ) ? $filters['newestthan'] : ''; $oldestthan = isset($filters['oldestthan'] ) ? $filters['oldestthan'] : ''; + //Check the inbox to call switch ($action) { case 'draft': $criteria->add( ListInboxPeer::APP_STATUS, 'DRAFT', Criteria::EQUAL ); @@ -371,6 +372,7 @@ class ListInbox extends BaseListInbox break; } + //Filter Read Unread All switch ($filter) { case 'read': $criteria->add( ListInboxPeer::DEL_INIT_DATE, NULL, Criteria::ISNOTNULL ); @@ -380,29 +382,7 @@ class ListInbox extends BaseListInbox break; } - if ($search != '') { - $criteria->add( - $criteria->getNewCriterion(ListInboxPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( - $criteria->getNewCriterion(ListInboxPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( - $criteria->getNewCriterion(ListInboxPeer::APP_PRO_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( - $criteria->getNewCriterion(ListInboxPeer::APP_UID, $search, Criteria::EQUAL)->addOr( - $criteria->getNewCriterion(ListInboxPeer::APP_NUMBER, $search, Criteria::EQUAL) - ))))); - } - - if ($process != '') { - $criteria->add( ListInboxPeer::PRO_UID, $process, Criteria::EQUAL); - } - - if ($category != '') { - // INNER JOIN FOR TAS_TITLE - $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); - $aConditions = array(); - $aConditions[] = array(ListInboxPeer::PRO_UID, ProcessPeer::PRO_UID); - $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); - $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); - } - + //Filter Task Status switch ($filterStatus) { case 'ON_TIME': $criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE." , NOW( ) ) > 0", Criteria::CUSTOM); @@ -415,6 +395,31 @@ class ListInbox extends BaseListInbox $criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE." , NOW( ) ) < 0", Criteria::CUSTOM); break; } + + //Filter Search + if ($search != '') { + $criteria->add( + $criteria->getNewCriterion(ListInboxPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion(ListInboxPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion(ListInboxPeer::APP_PRO_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion(ListInboxPeer::APP_UID, $search, Criteria::EQUAL)->addOr( + $criteria->getNewCriterion(ListInboxPeer::APP_NUMBER, $search, Criteria::EQUAL) + ))))); + } + + //Filter Process Id + if ($process != '') { + $criteria->add( ListInboxPeer::PRO_UID, $process, Criteria::EQUAL); + } + + //Filter Category + if ($category != '') { + $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); + $aConditions = array(); + $aConditions[] = array(ListInboxPeer::PRO_UID, ProcessPeer::PRO_UID); + $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); + $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); + } } /** diff --git a/workflow/engine/classes/model/ListParticipatedLast.php b/workflow/engine/classes/model/ListParticipatedLast.php index cca44fe46..728a1ae91 100644 --- a/workflow/engine/classes/model/ListParticipatedLast.php +++ b/workflow/engine/classes/model/ListParticipatedLast.php @@ -208,6 +208,7 @@ class ListParticipatedLast extends BaseListParticipatedLast $newestthan = isset($filters['newestthan'] ) ? $filters['newestthan'] : ''; $oldestthan = isset($filters['oldestthan'] ) ? $filters['oldestthan'] : ''; + //Filter Started by me and Completed by me switch ($filter) { case 'started': $criteria->add(ListParticipatedLastPeer::DEL_INDEX, 1, Criteria::EQUAL); @@ -216,6 +217,21 @@ class ListParticipatedLast extends BaseListParticipatedLast $criteria->add( ListParticipatedLastPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL); break; } + //Check the inbox to call + switch ($filterStatus) { + case 'DRAFT': + $criteria->add( ListParticipatedLastPeer::APP_STATUS, 'DRAFT', Criteria::EQUAL ); + break; + case 'TO_DO': + $criteria->add( ListParticipatedLastPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL ); + break; + case 'COMPLETED': + $criteria->add( ListParticipatedLastPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL ); + break; + case 'CANCELLED': + $criteria->add( ListParticipatedLastPeer::APP_STATUS, 'CANCELLED', Criteria::EQUAL ); + break; + } if ($search != '' ) { $criteria->add( @@ -226,25 +242,11 @@ class ListParticipatedLast extends BaseListParticipatedLast )))); } - switch ($filterStatus) { - case 'ON_TIME': - $criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE." , NOW( ) ) > 0", Criteria::CUSTOM); - break; - case 'AT_RISK': - $criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE .", NOW( ) ) < 0", Criteria::CUSTOM); - $criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE .", NOW( ) ) > 0", Criteria::CUSTOM); - break; - case 'OVERDUE': - $criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE." , NOW( ) ) < 0", Criteria::CUSTOM); - break; - } - if ($process != '') { $criteria->add( ListParticipatedLastPeer::PRO_UID, $process, Criteria::EQUAL); } if ($category != '') { - // INNER JOIN FOR TAS_TITLE $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $aConditions = array(); $aConditions[] = array(ListParticipatedLastPeer::PRO_UID, ProcessPeer::PRO_UID); diff --git a/workflow/engine/classes/model/ListPaused.php b/workflow/engine/classes/model/ListPaused.php index 456156b06..2c30913f9 100644 --- a/workflow/engine/classes/model/ListPaused.php +++ b/workflow/engine/classes/model/ListPaused.php @@ -195,18 +195,16 @@ class ListPaused extends BaseListPaused { $search = isset($filters['search']) ? $filters['search'] : ""; $process = isset($filters['process']) ? $filters['process'] : ""; $category = isset($filters['category']) ? $filters['category'] : ""; - $dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : ""; - $dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : ""; + $filterStatus = isset($filters['filterStatus']) ? $filters['filterStatus'] : ""; - if ($filter != '') { - switch ($filter) { - case 'read': - $criteria->add( ListPausedPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL ); - break; - case 'unread': - $criteria->add( ListPausedPeer::DEL_INIT_DATE, null, Criteria::ISNULL ); - break; - } + //Filter Read Unread All + switch ($filter) { + case 'read': + $criteria->add(ListPausedPeer::DEL_INIT_DATE, NULL, Criteria::ISNOTNULL); + break; + case 'unread': + $criteria->add(ListPausedPeer::DEL_INIT_DATE, NULL, Criteria::ISNULL); + break; } if ($search != '') { @@ -219,50 +217,16 @@ class ListPaused extends BaseListPaused { } if ($process != '') { - $criteria->add( ListPausedPeer::PRO_UID, $process, Criteria::EQUAL); + $criteria->add(ListPausedPeer::PRO_UID, $process, Criteria::EQUAL); } if ($category != '') { - // INNER JOIN FOR TAS_TITLE $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $aConditions = array(); $aConditions[] = array(ListPausedPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); } - - if ($dateFrom != "") { - if ($dateTo != "") { - if ($dateFrom == $dateTo) { - $dateSame = $dateFrom; - $dateFrom = $dateSame . " 00:00:00"; - $dateTo = $dateSame . " 23:59:59"; - } else { - $dateFrom = $dateFrom . " 00:00:00"; - $dateTo = $dateTo . " 23:59:59"; - } - - $criteria->add( $criteria->getNewCriterion( ListPausedPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL )-> - addAnd( $criteria->getNewCriterion( ListPausedPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ) ) ); - } else { - $dateFrom = $dateFrom . " 00:00:00"; - - $criteria->add( ListPausedPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL ); - } - } elseif ($dateTo != "") { - $dateTo = $dateTo . " 23:59:59"; - - $criteria->add( ListPausedPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ); - } - } - - public function countTotal ($usr_uid, $filters = array()) - { - $criteria = new Criteria(); - $criteria->add( ListPausedPeer::USR_UID, $usr_uid, Criteria::EQUAL ); - self::loadFilters($criteria, $filters); - $total = ListPausedPeer::doCount( $criteria ); - return (int)$total; } public function loadList($usr_uid, $filters = array(), $callbackRecord = null) @@ -327,15 +291,23 @@ class ListPaused extends BaseListPaused { /** * Returns the number of cases of a user - * @param $usrUid + * @param string $usrUid + * @param array $filters * @return int */ - public function getCountList($usrUid) + public function getCountList($usrUid, $filters = array()) { $criteria = new Criteria(); + $criteria->addSelectColumn('COUNT(*) AS TOTAL'); $criteria->add(ListPausedPeer::USR_UID, $usrUid, Criteria::EQUAL); - $total = ListPausedPeer::doCount($criteria); - return (int)$total; + if (count($filters)) { + self::loadFilters($criteria, $filters); + } + $dataset = ListPausedPeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $dataset->next(); + $aRow = $dataset->getRow(); + return (int)$aRow['TOTAL']; } } // ListPaused diff --git a/workflow/engine/classes/model/ListUnassigned.php b/workflow/engine/classes/model/ListUnassigned.php index 64f6636af..992dcd502 100644 --- a/workflow/engine/classes/model/ListUnassigned.php +++ b/workflow/engine/classes/model/ListUnassigned.php @@ -160,17 +160,6 @@ class ListUnassigned extends BaseListUnassigned $dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : ""; $dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : ""; - if ($filter != '') { - switch ($filter) { - case 'read': - $criteria->add( ListUnassignedPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL ); - break; - case 'unread': - $criteria->add( ListUnassignedPeer::DEL_INIT_DATE, null, Criteria::ISNULL ); - break; - } - } - if ($search != '') { $criteria->add( $criteria->getNewCriterion(ListUnassignedPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( @@ -185,37 +174,12 @@ class ListUnassigned extends BaseListUnassigned } if ($category != '') { - // INNER JOIN FOR TAS_TITLE $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $aConditions = array(); $aConditions[] = array(ListUnassignedPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); } - - if ($dateFrom != "") { - if ($dateTo != "") { - if ($dateFrom == $dateTo) { - $dateSame = $dateFrom; - $dateFrom = $dateSame . " 00:00:00"; - $dateTo = $dateSame . " 23:59:59"; - } else { - $dateFrom = $dateFrom . " 00:00:00"; - $dateTo = $dateTo . " 23:59:59"; - } - - $criteria->add( $criteria->getNewCriterion( ListUnassignedPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL )-> - addAnd( $criteria->getNewCriterion( ListUnassignedPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ) ) ); - } else { - $dateFrom = $dateFrom . " 00:00:00"; - - $criteria->add( ListUnassignedPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL ); - } - } elseif ($dateTo != "") { - $dateTo = $dateTo . " 23:59:59"; - - $criteria->add( ListUnassignedPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ); - } } public function loadList($usr_uid, $filters = array(), $callbackRecord = null)