PM-3080 "Procesos con asignacion selfService..." SOLVED

> Code Isuue:
  Procesos con asignacion selfService y selfService Value Based generan casos duplicados
> Solution:
  Cuando se tiene selfService y selfService por valor, ya no se muestra duplicados.
  Se a completado a la validacion en la condicion del query cuando es selfService por valor el "del_index" y "tas_uid"
This commit is contained in:
Luis Fernando Saisa Lopez
2015-07-11 02:19:41 -04:00
parent 604f7ecd6a
commit 41f0f71279

View File

@@ -333,7 +333,7 @@ class AppCacheView extends BaseAppCacheView
try { try {
G::LoadClass("groups"); G::LoadClass("groups");
$arrayApplicationUid = array(); $arrayAppAssignSelfServiceValueData = array();
//Get APP_UIDs //Get APP_UIDs
$group = new Groups(); $group = new Groups();
@@ -345,6 +345,8 @@ class AppCacheView extends BaseAppCacheView
$criteria->setDistinct(); $criteria->setDistinct();
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID); $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);
$arrayCondition = array(); $arrayCondition = array();
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL); $arrayCondition[] = array(AppAssignSelfServiceValuePeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL);
@@ -362,12 +364,16 @@ class AppCacheView extends BaseAppCacheView
while ($rsCriteria->next()) { while ($rsCriteria->next()) {
$row = $rsCriteria->getRow(); $row = $rsCriteria->getRow();
$arrayApplicationUid[] = $row["APP_UID"]; $arrayAppAssignSelfServiceValueData[] = array(
"APP_UID" => $row["APP_UID"],
"DEL_INDEX" => $row["DEL_INDEX"],
"TAS_UID" => $row["TAS_UID"]
);
} }
} }
//Return //Return
return $arrayApplicationUid; return $arrayAppAssignSelfServiceValueData;
} catch (Exception $e) { } catch (Exception $e) {
throw $e; throw $e;
} }
@@ -401,13 +407,31 @@ class AppCacheView extends BaseAppCacheView
$criteria->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); $criteria->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
$criteria->add(AppCacheViewPeer::USR_UID, ''); $criteria->add(AppCacheViewPeer::USR_UID, '');
$cases = $this->getSelfServiceCasesByEvaluate($userUid); $arrayAppAssignSelfServiceValueData = $this->getSelfServiceCasesByEvaluate($userUid);
if (!empty($cases)) {
if (!empty($arrayAppAssignSelfServiceValueData)) {
//Self Service Value Based Assignment
$criterionAux = null;
foreach ($arrayAppAssignSelfServiceValueData as $value) {
if (is_null($criterionAux)) {
$criterionAux = $criteria->getNewCriterion(AppCacheViewPeer::APP_UID, $value["APP_UID"], Criteria::EQUAL)->addAnd(
$criteria->getNewCriterion(AppCacheViewPeer::DEL_INDEX, $value["DEL_INDEX"], Criteria::EQUAL))->addAnd(
$criteria->getNewCriterion(AppCacheViewPeer::TAS_UID, $value["TAS_UID"], Criteria::EQUAL));
} else {
$criterionAux = $criteria->getNewCriterion(AppCacheViewPeer::APP_UID, $value["APP_UID"], Criteria::EQUAL)->addAnd(
$criteria->getNewCriterion(AppCacheViewPeer::DEL_INDEX, $value["DEL_INDEX"], Criteria::EQUAL))->addAnd(
$criteria->getNewCriterion(AppCacheViewPeer::TAS_UID, $value["TAS_UID"], Criteria::EQUAL))->addOr(
$criterionAux
);
}
}
$criteria->add( $criteria->add(
$criteria->getNewCriterion(AppCacheViewPeer::TAS_UID, $tasks, Criteria::IN)-> $criterionAux->addOr($criteria->getNewCriterion(AppCacheViewPeer::TAS_UID, $tasks, Criteria::IN))
addOr($criteria->getNewCriterion(AppCacheViewPeer::APP_UID, $cases, Criteria::IN))
); );
} else { } else {
//Self Service
$criteria->add(AppCacheViewPeer::TAS_UID, $tasks, Criteria::IN); $criteria->add(AppCacheViewPeer::TAS_UID, $tasks, Criteria::IN);
} }
@@ -1660,7 +1684,7 @@ class AppCacheView extends BaseAppCacheView
$oCriteria->addJoin(AppCacheViewPeer::DEL_INDEX , AppDelayPeer::APP_DEL_INDEX, Criteria::LEFT_JOIN); $oCriteria->addJoin(AppCacheViewPeer::DEL_INDEX , AppDelayPeer::APP_DEL_INDEX, Criteria::LEFT_JOIN);
$oCriteria->add( $oCriteria->add(
$oCriteria->getNewCriterion(AppDelayPeer::APP_TYPE, NULL, Criteria::ISNULL)->addOr( $oCriteria->getNewCriterion(AppDelayPeer::APP_TYPE, NULL, Criteria::ISNULL)->addOr(
$oCriteria->getNewCriterion(AppDelayPeer::APP_TYPE, 'REASSIGN', Criteria::NOT_EQUAL)) $oCriteria->getNewCriterion(AppDelayPeer::APP_TYPE, 'REASSIGN', Criteria::NOT_EQUAL))
); );
@@ -1760,7 +1784,7 @@ class AppCacheView extends BaseAppCacheView
/** /**
* Get all columns by APP_CACHE_VIEW * Get all columns by APP_CACHE_VIEW
* *
* @return object criteria * @return object criteria
*/ */
public function getSelAllColumns(){ public function getSelAllColumns(){
$criteria = new Criteria("workflow"); $criteria = new Criteria("workflow");