HOR-1447
Cambiar la lógica para obtener los contadores HOR-1447 Cambiar la lógica para obtener los contadores
This commit is contained in:
@@ -306,5 +306,18 @@ class ListCanceled extends BaseListCanceled {
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
* @param $usrUid
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(ListCanceledPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
||||
$total = ListCanceledPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
} // ListCanceled
|
||||
|
||||
|
||||
@@ -320,5 +320,18 @@ class ListCompleted extends BaseListCompleted
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
* @param $usrUid
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(ListCompletedPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
||||
$total = ListCompletedPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
} // ListCompleted
|
||||
|
||||
|
||||
@@ -598,5 +598,24 @@ class ListInbox extends BaseListInbox
|
||||
return isset($aRow[$fieldName]) ? $aRow[$fieldName] : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
* @param $usrUid
|
||||
* @param string $appStatus
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid, $appStatus = 'DRAFT')
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(ListInboxPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
||||
if ($appStatus == 'TO_DO') {
|
||||
$criteria->add(ListInboxPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL);
|
||||
} else {
|
||||
$criteria->add(ListInboxPeer::APP_STATUS, 'DRAFT', Criteria::EQUAL);
|
||||
}
|
||||
$total = ListInboxPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -405,5 +405,18 @@ class ListParticipatedLast extends BaseListParticipatedLast
|
||||
}
|
||||
BasePeer::doUpdate($criteriaWhere, $criteriaSet, $con);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
* @param $usrUid
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(ListParticipatedLastPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
||||
$total = ListParticipatedLastPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -328,5 +328,18 @@ class ListPaused extends BaseListPaused {
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
* @param $usrUid
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(ListPausedPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
||||
$total = ListPausedPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
} // ListPaused
|
||||
|
||||
|
||||
@@ -460,5 +460,45 @@ class ListUnassigned extends BaseListUnassigned
|
||||
|
||||
return $tasks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
* @param $userUid
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($userUid)
|
||||
{
|
||||
$criteria = new Criteria('workflow');
|
||||
$tasks = $this->getSelfServiceTasks($userUid);
|
||||
$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(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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$criteria->add(
|
||||
$criterionAux->addOr($criteria->getNewCriterion(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN))
|
||||
);
|
||||
} else {
|
||||
//Self Service
|
||||
$criteria->add(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN);
|
||||
}
|
||||
$total = ListUnassignedPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4251,6 +4251,15 @@
|
||||
<column name="DEL_CURRENT_USR_USERNAME" type="VARCHAR" size="100" default=""/>
|
||||
<column name="DEL_CURRENT_USR_FIRSTNAME" type="VARCHAR" size="50" default=""/>
|
||||
<column name="DEL_CURRENT_USR_LASTNAME" type="VARCHAR" size="50" default=""/>
|
||||
<index name="usrListCompleted">
|
||||
<index-column name="USR_UID"/>
|
||||
<vendor type="mysql">
|
||||
<parameter name="Table" value="LIST_COMPLETED"/>
|
||||
<parameter name="Non_unique" value="1"/>
|
||||
<parameter name="Key_name" value="usrListCompleted"/>
|
||||
<parameter name="Seq_in_index" value="1"/>
|
||||
</vendor>
|
||||
</index>
|
||||
</table>
|
||||
<table name="LIST_PAUSED">
|
||||
<vendor type="mysql">
|
||||
|
||||
@@ -2393,7 +2393,8 @@ CREATE TABLE `LIST_COMPLETED`
|
||||
`DEL_CURRENT_USR_USERNAME` VARCHAR(100) default '',
|
||||
`DEL_CURRENT_USR_FIRSTNAME` VARCHAR(50) default '',
|
||||
`DEL_CURRENT_USR_LASTNAME` VARCHAR(50) default '',
|
||||
PRIMARY KEY (`APP_UID`)
|
||||
PRIMARY KEY (`APP_UID`),
|
||||
KEY `usrListCompleted`(`USR_UID`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Completed list';
|
||||
#-----------------------------------------------------------------------------
|
||||
#-- LIST_PAUSED
|
||||
|
||||
@@ -1106,4 +1106,20 @@ class Consolidated
|
||||
|
||||
$oCase->updateCase($appUid, $aData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $usrUid
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(\CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE');
|
||||
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \AppCacheViewPeer::TAS_UID, Criteria::LEFT_JOIN);
|
||||
$criteria->add(\AppCacheViewPeer::USR_UID, $usrUid);
|
||||
$criteria->add(\AppCacheViewPeer::DEL_THREAD_STATUS, 'OPEN');
|
||||
$criteria->add(\AppCacheViewPeer::APP_STATUS, 'TO_DO');
|
||||
$total = \CaseConsolidatedCorePeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,74 @@ use \UsersPeer;
|
||||
*/
|
||||
class Lists {
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $mapList;
|
||||
/**
|
||||
* @var \ListInbox
|
||||
*/
|
||||
private $ListInbox;
|
||||
/**
|
||||
* @var \ListInbox
|
||||
*/
|
||||
private $ListDraft;
|
||||
/**
|
||||
* @var \ListCanceled
|
||||
*/
|
||||
private $ListCanceled;
|
||||
/**
|
||||
* @var \ListParticipatedLast
|
||||
*/
|
||||
private $ListParticipated;
|
||||
/**
|
||||
* @var \ListPaused
|
||||
*/
|
||||
private $ListPaused;
|
||||
/**
|
||||
* @var \ListCompleted
|
||||
*/
|
||||
private $ListCompleted;
|
||||
/**
|
||||
* @var Consolidated
|
||||
*/
|
||||
private $ListConsolidated;
|
||||
/**
|
||||
* @var \ListUnassigned
|
||||
*/
|
||||
private $ListSelfService;
|
||||
|
||||
/**
|
||||
* Lists constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->mapList = array(
|
||||
'ListInbox' => 'CASES_INBOX',
|
||||
'ListDraft' => 'CASES_DRAFT',
|
||||
'ListCanceled' => 'CASES_CANCELLED',
|
||||
'ListParticipated' => 'CASES_SENT',
|
||||
'ListPaused' => 'CASES_PAUSED',
|
||||
'ListCompleted' => 'CASES_COMPLETED',
|
||||
/*----------------------------------********---------------------------------*/
|
||||
'ListConsolidated' => 'CONSOLIDATED_CASES',
|
||||
/*----------------------------------********---------------------------------*/
|
||||
'ListSelfService' => 'CASES_SELFSERVICE'
|
||||
);
|
||||
|
||||
$this->ListInbox = new \ListInbox();
|
||||
$this->ListDraft = new \ListInbox();
|
||||
$this->ListCanceled = new \ListCanceled();
|
||||
$this->ListParticipated = new \ListParticipatedLast();
|
||||
$this->ListPaused = new \ListPaused();
|
||||
$this->ListCompleted = new \ListCompleted();
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$this->ListConsolidated = new Consolidated();
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$this->ListSelfService = new \ListUnassigned();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get list for Cases
|
||||
*
|
||||
@@ -190,56 +258,34 @@ class Lists {
|
||||
|
||||
/**
|
||||
* Get counters for lists
|
||||
*
|
||||
* @access public
|
||||
* @param array $userId, User Uid
|
||||
* @param $userId
|
||||
* @return array
|
||||
*
|
||||
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
|
||||
* @copyright Colosa - Bolivia
|
||||
*/
|
||||
public function getCounters($userId)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_INBOX);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_DRAFT);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_CANCELLED);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_PARTICIPATED);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_PAUSED);
|
||||
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_COMPLETED);
|
||||
$criteria->add( UsersPeer::USR_UID, $userId, Criteria::EQUAL );
|
||||
$dataset = UsersPeer::doSelectRS($criteria);
|
||||
$dataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$dataset->next();
|
||||
$aRow = $dataset->getRow();
|
||||
|
||||
$oAppCache = new \AppCacheView();
|
||||
$totalUnassigned = $oAppCache->getListCounters('selfservice', $userId, false);
|
||||
|
||||
$response = array(
|
||||
array('count' => $aRow['USR_TOTAL_INBOX'], 'item' => 'CASES_INBOX'),
|
||||
array('count' => $aRow['USR_TOTAL_DRAFT'], 'item' => 'CASES_DRAFT'),
|
||||
array('count' => $aRow['USR_TOTAL_CANCELLED'], 'item' => 'CASES_CANCELLED'),
|
||||
array('count' => $aRow['USR_TOTAL_PARTICIPATED'], 'item' => 'CASES_SENT'),
|
||||
array('count' => $aRow['USR_TOTAL_PAUSED'], 'item' => 'CASES_PAUSED'),
|
||||
array('count' => $aRow['USR_TOTAL_COMPLETED'], 'item' => 'CASES_COMPLETED'),
|
||||
array('count' => $totalUnassigned, 'item' => 'CASES_SELFSERVICE')
|
||||
);
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$licensedFeatures = & \PMLicensedFeatures::getSingleton();
|
||||
if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(\CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE');
|
||||
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \AppCacheViewPeer::TAS_UID, Criteria::LEFT_JOIN);
|
||||
$criteria->add(\AppCacheViewPeer::USR_UID, $userId);
|
||||
$criteria->add(\AppCacheViewPeer::DEL_THREAD_STATUS, 'OPEN');
|
||||
$criteria->add(\AppCacheViewPeer::APP_STATUS, 'TO_DO');
|
||||
$total = \CaseConsolidatedCorePeer::doCount( $criteria );
|
||||
$response[] = array('count' => $total, 'item' => 'CONSOLIDATED_CASES');
|
||||
$list = $this->mapList;
|
||||
$response = array();
|
||||
foreach ($list as $listObject => $item) {
|
||||
switch ($listObject) {
|
||||
case 'ListInbox':
|
||||
$total = $this->$listObject->getCountList($userId, 'TO_DO');
|
||||
array_push($response, (array('count' => $total, 'item' => $item)));
|
||||
break;
|
||||
/*----------------------------------********---------------------------------*/
|
||||
case 'ListConsolidated':
|
||||
$licensedFeatures = &\PMLicensedFeatures::getSingleton();
|
||||
if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
|
||||
$total = $this->$listObject->getCountList($userId);
|
||||
array_push($response, (array('count' => $total, 'item' => $item)));
|
||||
}
|
||||
break;
|
||||
/*----------------------------------********---------------------------------*/
|
||||
default:
|
||||
$totalInbox = $this->$listObject->getCountList($userId);
|
||||
array_push($response, (array('count' => $totalInbox, 'item' => $item)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user