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 {
G::LoadClass("groups");
$arrayApplicationUid = array();
$arrayAppAssignSelfServiceValueData = array();
//Get APP_UIDs
$group = new Groups();
@@ -345,6 +345,8 @@ class AppCacheView extends BaseAppCacheView
$criteria->setDistinct();
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);
$arrayCondition = array();
$arrayCondition[] = array(AppAssignSelfServiceValuePeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL);
@@ -362,12 +364,16 @@ class AppCacheView extends BaseAppCacheView
while ($rsCriteria->next()) {
$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 $arrayApplicationUid;
return $arrayAppAssignSelfServiceValueData;
} catch (Exception $e) {
throw $e;
}
@@ -401,13 +407,31 @@ class AppCacheView extends BaseAppCacheView
$criteria->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
$criteria->add(AppCacheViewPeer::USR_UID, '');
$cases = $this->getSelfServiceCasesByEvaluate($userUid);
if (!empty($cases)) {
$arrayAppAssignSelfServiceValueData = $this->getSelfServiceCasesByEvaluate($userUid);
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->getNewCriterion(AppCacheViewPeer::TAS_UID, $tasks, Criteria::IN)->
addOr($criteria->getNewCriterion(AppCacheViewPeer::APP_UID, $cases, Criteria::IN))
$criterionAux->addOr($criteria->getNewCriterion(AppCacheViewPeer::TAS_UID, $tasks, Criteria::IN))
);
} else {
//Self Service
$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->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))
);
@@ -1760,7 +1784,7 @@ class AppCacheView extends BaseAppCacheView
/**
* Get all columns by APP_CACHE_VIEW
*
* @return object criteria
* @return object criteria
*/
public function getSelAllColumns(){
$criteria = new Criteria("workflow");