From 9c52d6c4402db3f8202bef3ed63c564e044b42ab Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Fri, 21 Jul 2017 17:20:18 -0400 Subject: [PATCH 1/2] HOR-3180 --- .../engine/classes/model/ListUnassigned.php | 142 +++++------------- 1 file changed, 38 insertions(+), 104 deletions(-) diff --git a/workflow/engine/classes/model/ListUnassigned.php b/workflow/engine/classes/model/ListUnassigned.php index 26cf113eb..108b50395 100644 --- a/workflow/engine/classes/model/ListUnassigned.php +++ b/workflow/engine/classes/model/ListUnassigned.php @@ -214,15 +214,13 @@ class ListUnassigned extends BaseListUnassigned * This function get the information in the corresponding cases list * @param string $usr_uid, must be show cases related to this user * @param array $filters for apply in the result - * @param null $callbackRecord + * @param callable $callbackRecord * @return array $data * @throws PropelException */ - public function loadList($usr_uid, $filters = array(), $callbackRecord = null) + public function loadList($usr_uid, $filters = array(), callable $callbackRecord = null) { - $resp = array(); $pmTable = new PmTable(); - $tasks = $this->getSelfServiceTasks($usr_uid); $criteria = $pmTable->addPMFieldsToList('unassigned'); $this->additionalClassName = $pmTable->tableClassName; $additionalColumns = $criteria->getSelectColumns(); @@ -244,60 +242,7 @@ class ListUnassigned extends BaseListUnassigned $criteria->addSelectColumn(ListUnassignedPeer::DEL_DUE_DATE); $criteria->addSelectColumn(ListUnassignedPeer::DEL_PRIORITY); //Self Service Value Based Assignment - $aSelfServiceValueBased = $this->getSelfServiceCasesByEvaluate($usr_uid); - - if (!empty($aSelfServiceValueBased)) { - $criterionAux = null; - //Load Self Service Value Based Assignment - foreach ($aSelfServiceValueBased as $value) { - if (is_null($criterionAux)) { - $criterionAux = $criteria->getNewCriterion( - ListUnassignedPeer::APP_UID, - $value["APP_UID"], - Criteria::EQUAL - )->addAnd( - $criteria->getNewCriterion( - ListUnassignedPeer::DEL_INDEX, - $value["DEL_INDEX"], - Criteria::EQUAL - ) - )->addAnd( - $criteria->getNewCriterion( - ListUnassignedPeer::TAS_UID, - $value["TAS_UID"], - Criteria::EQUAL - ) - ); - } else { - $criterionAux = $criteria->getNewCriterion( - ListUnassignedPeer::APP_UID, - $value["APP_UID"], - Criteria::EQUAL - )->addAnd( - $criteria->getNewCriterion( - ListUnassignedPeer::DEL_INDEX, - $value["DEL_INDEX"], - Criteria::EQUAL - ) - )->addAnd( - $criteria->getNewCriterion( - ListUnassignedPeer::TAS_UID, - $value["TAS_UID"], - Criteria::EQUAL - ) - )->addOr( - $criterionAux - ); - } - } - //And Load Selfservice - $criteria->add( - $criterionAux->addOr($criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN)) - ); - } else { - //Load Selfservice - $criteria->add(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN); - } + $criteria= $this->getCriteriaWhereSelfService($criteria, $usr_uid); //Apply some filters self::loadFilters($criteria, $filters, $additionalColumns); @@ -346,10 +291,11 @@ class ListUnassigned extends BaseListUnassigned } /** - * Get Selfservice Value Based + * Get SelfService Value Based * * @param string $userUid - * @return array criteria $arrayAppAssignSelfServiceValueData + * @return array $arrayAppAssignSelfServiceValueData + * @throws Exception */ public function getSelfServiceCasesByEvaluate($userUid) { @@ -402,8 +348,8 @@ class ListUnassigned extends BaseListUnassigned /** * get user's SelfService tasks - * @param string $sUIDUser - * @return $rows + * @param string $userUid + * @return array $tasks */ public function getSelfServiceTasks($userUid = '') { @@ -465,62 +411,50 @@ class ListUnassigned extends BaseListUnassigned /** * Returns the number of cases of a user - * @param $userUid + * @param string $userUid * @param array $filters - * @return int + * @return int $total */ public function getCountList($userUid, $filters = array()) { - $criteria = new Criteria('workflow'); - $tasks = $this->getSelfServiceTasks($userUid); - $arrayAppAssignSelfServiceValueData = $this->getSelfServiceCasesByEvaluate($userUid); + $criteria = $criteria = new Criteria('workflow'); + $this->getCriteriaWhereSelfService($criteria, $userUid); + $total = ListUnassignedPeer::doCount($criteria); + return (int)$total; + } - if (!empty($arrayAppAssignSelfServiceValueData)) { + /** + * This function get the where criteria for the SelfService and SelfService value based + * + * @param criteria $criteria + * @param string $userUid + * @return criteria $criteria + */ + public function getCriteriaWhereSelfService($criteria, $userUid) + { + $tasks = $this->getSelfServiceTasks($userUid); + $aSelfServiceValueBased = $this->getSelfServiceCasesByEvaluate($userUid); + + if (!empty($aSelfServiceValueBased)) { //Self Service Value Based Assignment $criterionAux = null; - foreach ($arrayAppAssignSelfServiceValueData as $value) { - if (is_null($criterionAux)) { - $criterionAux = $criteria->getNewCriterion( - ListUnassignedPeer::APP_UID, - $value["APP_UID"], - Criteria::EQUAL - )->addAnd( - $criteria->getNewCriterion(ListUnassignedPeer::DEL_INDEX, $value["DEL_INDEX"], Criteria::EQUAL) - )->addAnd( - $criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $value["TAS_UID"], Criteria::EQUAL) - ); - } else { - $criterionAux = $criteria->getNewCriterion( - ListUnassignedPeer::APP_UID, - $value["APP_UID"], - Criteria::EQUAL - )->addAnd( - $criteria->getNewCriterion( - ListUnassignedPeer::DEL_INDEX, - $value["DEL_INDEX"], - Criteria::EQUAL - ) - )->addAnd( - $criteria->getNewCriterion( - ListUnassignedPeer::TAS_UID, - $value["TAS_UID"], - Criteria::EQUAL - ) - )->addOr( - $criterionAux - ); - } + //Load Self Service Value Based Assignment + $firstRow = current($aSelfServiceValueBased); + $criterionAux = sprintf("((LIST_UNASSIGNED.APP_UID='%s' AND LIST_UNASSIGNED.DEL_INDEX=%d AND LIST_UNASSIGNED.TAS_UID='%s') ", $firstRow["APP_UID"], $firstRow["DEL_INDEX"], $firstRow["TAS_UID"]); + foreach (array_slice($aSelfServiceValueBased, 1) as $value) { + $criterionAux .= sprintf(" OR (LIST_UNASSIGNED.APP_UID='%s' AND LIST_UNASSIGNED.DEL_INDEX=%d AND LIST_UNASSIGNED.TAS_UID='%s') ", $value["APP_UID"], $value["DEL_INDEX"], $value["TAS_UID"]); } - + $criterionAux .= ")"; + //And Load SelfService $criteria->add( - $criterionAux->addOr($criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN)) + $criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN)->addOr($criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $criterionAux, Criteria::CUSTOM)) ); } else { //Self Service $criteria->add(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN); } - $total = ListUnassignedPeer::doCount($criteria); - return (int)$total; + + return $criteria; } } From 4d4aa1d9c8b9b015a13097520b7fa6b4df4b34f6 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Mon, 24 Jul 2017 15:12:11 -0400 Subject: [PATCH 2/2] CS observations --- .../engine/classes/model/ListUnassigned.php | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/workflow/engine/classes/model/ListUnassigned.php b/workflow/engine/classes/model/ListUnassigned.php index 108b50395..562c01b6e 100644 --- a/workflow/engine/classes/model/ListUnassigned.php +++ b/workflow/engine/classes/model/ListUnassigned.php @@ -242,7 +242,7 @@ class ListUnassigned extends BaseListUnassigned $criteria->addSelectColumn(ListUnassignedPeer::DEL_DUE_DATE); $criteria->addSelectColumn(ListUnassignedPeer::DEL_PRIORITY); //Self Service Value Based Assignment - $criteria= $this->getCriteriaWhereSelfService($criteria, $usr_uid); + $criteria = $this->getCriteriaWhereSelfService($criteria, $usr_uid); //Apply some filters self::loadFilters($criteria, $filters, $additionalColumns); @@ -417,7 +417,7 @@ class ListUnassigned extends BaseListUnassigned */ public function getCountList($userUid, $filters = array()) { - $criteria = $criteria = new Criteria('workflow'); + $criteria = new Criteria('workflow'); $this->getCriteriaWhereSelfService($criteria, $userUid); $total = ListUnassignedPeer::doCount($criteria); return (int)$total; @@ -441,14 +441,42 @@ class ListUnassigned extends BaseListUnassigned //Load Self Service Value Based Assignment $firstRow = current($aSelfServiceValueBased); - $criterionAux = sprintf("((LIST_UNASSIGNED.APP_UID='%s' AND LIST_UNASSIGNED.DEL_INDEX=%d AND LIST_UNASSIGNED.TAS_UID='%s') ", $firstRow["APP_UID"], $firstRow["DEL_INDEX"], $firstRow["TAS_UID"]); + $criterionAux = sprintf( + "(( + LIST_UNASSIGNED.APP_UID='%s' AND + LIST_UNASSIGNED.DEL_INDEX=%d AND + LIST_UNASSIGNED.TAS_UID='%s' + ) ", + $firstRow["APP_UID"], + $firstRow["DEL_INDEX"], + $firstRow["TAS_UID"] + ); foreach (array_slice($aSelfServiceValueBased, 1) as $value) { - $criterionAux .= sprintf(" OR (LIST_UNASSIGNED.APP_UID='%s' AND LIST_UNASSIGNED.DEL_INDEX=%d AND LIST_UNASSIGNED.TAS_UID='%s') ", $value["APP_UID"], $value["DEL_INDEX"], $value["TAS_UID"]); + $criterionAux .= sprintf( + " OR ( + LIST_UNASSIGNED.APP_UID='%s' AND + LIST_UNASSIGNED.DEL_INDEX=%d AND + LIST_UNASSIGNED.TAS_UID='%s' + ) ", + $value["APP_UID"], + $value["DEL_INDEX"], + $value["TAS_UID"] + ); } $criterionAux .= ")"; //And Load SelfService $criteria->add( - $criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN)->addOr($criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $criterionAux, Criteria::CUSTOM)) + $criteria->getNewCriterion( + ListUnassignedPeer::TAS_UID, + $tasks, + Criteria::IN + )->addOr( + $criteria->getNewCriterion( + ListUnassignedPeer::TAS_UID, + $criterionAux, + Criteria::CUSTOM + ) + ) ); } else { //Self Service