Cambiar la lógica para obtener los contadores

HOR-1447
Cambiar la lógica para obtener los contadores
This commit is contained in:
dheeyi william
2016-07-28 14:20:04 -04:00
parent d1507fdacf
commit c901b6052a
10 changed files with 229 additions and 46 deletions

View File

@@ -306,5 +306,18 @@ class ListCanceled extends BaseListCanceled {
return $data; 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 } // ListCanceled

View File

@@ -320,5 +320,18 @@ class ListCompleted extends BaseListCompleted
return $data; 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 } // ListCompleted

View File

@@ -598,5 +598,24 @@ class ListInbox extends BaseListInbox
return isset($aRow[$fieldName]) ? $aRow[$fieldName] : NULL; 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;
}
} }

View File

@@ -405,5 +405,18 @@ class ListParticipatedLast extends BaseListParticipatedLast
} }
BasePeer::doUpdate($criteriaWhere, $criteriaSet, $con); 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;
}
} }

View File

@@ -328,5 +328,18 @@ class ListPaused extends BaseListPaused {
return $data; 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 } // ListPaused

View File

@@ -460,5 +460,45 @@ class ListUnassigned extends BaseListUnassigned
return $tasks; 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;
}
} }

View File

@@ -4251,6 +4251,15 @@
<column name="DEL_CURRENT_USR_USERNAME" type="VARCHAR" size="100" default=""/> <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_FIRSTNAME" type="VARCHAR" size="50" default=""/>
<column name="DEL_CURRENT_USR_LASTNAME" 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>
<table name="LIST_PAUSED"> <table name="LIST_PAUSED">
<vendor type="mysql"> <vendor type="mysql">

View File

@@ -2393,7 +2393,8 @@ CREATE TABLE `LIST_COMPLETED`
`DEL_CURRENT_USR_USERNAME` VARCHAR(100) default '', `DEL_CURRENT_USR_USERNAME` VARCHAR(100) default '',
`DEL_CURRENT_USR_FIRSTNAME` VARCHAR(50) default '', `DEL_CURRENT_USR_FIRSTNAME` VARCHAR(50) default '',
`DEL_CURRENT_USR_LASTNAME` 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'; )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Completed list';
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
#-- LIST_PAUSED #-- LIST_PAUSED

View File

@@ -1106,4 +1106,20 @@ class Consolidated
$oCase->updateCase($appUid, $aData); $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;
}
} }

View File

@@ -10,6 +10,74 @@ use \UsersPeer;
*/ */
class Lists { 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 * Get list for Cases
* *
@@ -190,56 +258,34 @@ class Lists {
/** /**
* Get counters for lists * Get counters for lists
* * @param $userId
* @access public
* @param array $userId, User Uid
* @return array * @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/ */
public function getCounters($userId) public function getCounters($userId)
{ {
$criteria = new Criteria(); $list = $this->mapList;
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_INBOX); $response = array();
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_DRAFT); foreach ($list as $listObject => $item) {
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_CANCELLED); switch ($listObject) {
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_PARTICIPATED); case 'ListInbox':
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_PAUSED); $total = $this->$listObject->getCountList($userId, 'TO_DO');
$criteria->addSelectColumn(UsersPeer::USR_TOTAL_COMPLETED); array_push($response, (array('count' => $total, 'item' => $item)));
$criteria->add( UsersPeer::USR_UID, $userId, Criteria::EQUAL ); break;
$dataset = UsersPeer::doSelectRS($criteria); /*----------------------------------********---------------------------------*/
$dataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); case 'ListConsolidated':
$dataset->next(); $licensedFeatures = &\PMLicensedFeatures::getSingleton();
$aRow = $dataset->getRow(); if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
$total = $this->$listObject->getCountList($userId);
$oAppCache = new \AppCacheView(); array_push($response, (array('count' => $total, 'item' => $item)));
$totalUnassigned = $oAppCache->getListCounters('selfservice', $userId, false); }
break;
$response = array( /*----------------------------------********---------------------------------*/
array('count' => $aRow['USR_TOTAL_INBOX'], 'item' => 'CASES_INBOX'), default:
array('count' => $aRow['USR_TOTAL_DRAFT'], 'item' => 'CASES_DRAFT'), $totalInbox = $this->$listObject->getCountList($userId);
array('count' => $aRow['USR_TOTAL_CANCELLED'], 'item' => 'CASES_CANCELLED'), array_push($response, (array('count' => $totalInbox, 'item' => $item)));
array('count' => $aRow['USR_TOTAL_PARTICIPATED'], 'item' => 'CASES_SENT'), break;
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');
} }
/*----------------------------------********---------------------------------*/
return $response; return $response;
} }
} }