Merge pull request #2124 from marcoAntonioNina/BUG-13402
BUG-13402 SOLR esta tratando de mostar la lista de casos para la carpeta... SOLVED
This commit is contained in:
@@ -446,7 +446,11 @@ class AppSolr
|
||||
$delegationIndexes[] = "APP_UNASSIGNED_USER_GROUP_DEL_INDEX_" . trim ($group ['GRP_UID']) . '_txt';
|
||||
}
|
||||
}
|
||||
|
||||
// Paused, add condition
|
||||
if ($userUid != null && $action == 'paused') {
|
||||
$solrSearchText .= "APP_PAUSED_USERS:" . $userUid . ' AND ';
|
||||
$delegationIndexes[] = "APP_PAUSED_USER_DEL_INDEX_" . trim ($userUid) . '_txt';
|
||||
}
|
||||
//search action
|
||||
if ($action == 'search'){
|
||||
if($dateFrom != "" || $dateTo != "") {
|
||||
@@ -515,12 +519,12 @@ class AppSolr
|
||||
'resultFormat' => 'json'
|
||||
);
|
||||
|
||||
|
||||
$solrRequestData = Entity_SolrRequestData::createForRequestPagination ($data);
|
||||
// use search index to return list of cases
|
||||
$searchIndex = new BpmnEngine_Services_SearchIndex ($this->_solrIsEnabled, $this->_solrHost);
|
||||
// execute query
|
||||
$solrQueryResult = $searchIndex->getDataTablePaginatedList ($solrRequestData);
|
||||
|
||||
if($this->debug)
|
||||
{
|
||||
$this->afterSolrQueryTime = microtime (true);
|
||||
@@ -770,7 +774,7 @@ class AppSolr
|
||||
public function getCasesCount($userUid)
|
||||
{
|
||||
$casesCount = array ();
|
||||
|
||||
|
||||
// get number of records in todo list
|
||||
$data = $this->getAppGridData ($userUid, 0, 0, 'todo', null, null, null, null, null,
|
||||
null, null, null, null, null, null, true);
|
||||
@@ -787,7 +791,10 @@ class AppSolr
|
||||
$data = $this->getAppGridData ($userUid, 0, 0, 'unassigned', null, null, null, null,
|
||||
null, null, null, null, null, null, null, true);
|
||||
$casesCount ['selfservice'] = $data ['totalCount'];
|
||||
|
||||
$data = $this->getAppGridData ($userUid, 0, 0, 'paused', null, null, null, null,
|
||||
null, null, null, null, null, null, null, true);
|
||||
$casesCount ['paused'] = $data ['totalCount'];
|
||||
|
||||
return $casesCount;
|
||||
}
|
||||
|
||||
@@ -1309,7 +1316,6 @@ class AppSolr
|
||||
*/
|
||||
public function updateApplicationSearchIndex($aaAPPUIDs, $saveDBRecord = false)
|
||||
{
|
||||
|
||||
if (empty ($aaAPPUIDs))
|
||||
return;
|
||||
|
||||
@@ -1582,8 +1588,8 @@ class AppSolr
|
||||
|
||||
foreach ($indexes as $index) {
|
||||
$aaAppData[] = $aaAllAppDelData [$index];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$result = $this->getApplicationIndexData ($aAPPUID ['APP_UID'], $aaAppData);
|
||||
|
||||
if($this->debug)
|
||||
@@ -1642,6 +1648,7 @@ class AppSolr
|
||||
$participatedUsersCompletedByUser = $result [11];
|
||||
$unassignedUsers = $result [12];
|
||||
$unassignedGroups = $result [13];
|
||||
$pausedtUser = $result [14];
|
||||
|
||||
try {
|
||||
|
||||
@@ -1649,7 +1656,7 @@ class AppSolr
|
||||
$xmlCurrentDoc = $this->buildSearchIndexDocumentPMOS2 ($documentInformation, $dynaformFieldTypes,
|
||||
$lastUpdateDate, $maxPriority, $delLastIndex, $assignedUsers, $assignedUsersRead, $assignedUsersUnread,
|
||||
$draftUser, $participatedUsers, $participatedUsersStartedByUser, $participatedUsersCompletedByUser,
|
||||
$unassignedUsers, $unassignedGroups);
|
||||
$unassignedUsers, $unassignedGroups,$pausedtUser);
|
||||
|
||||
//concat doc to the list of docs
|
||||
$xmlDoc .= $xmlCurrentDoc;
|
||||
@@ -1749,7 +1756,7 @@ class AppSolr
|
||||
public function buildSearchIndexDocumentPMOS2($documentData, $dynaformFieldTypes, $lastUpdateDate,
|
||||
$maxPriority, $delLastIndex, $assignedUsers, $assignedUsersRead, $assignedUsersUnread, $draftUser,
|
||||
$participatedUsers, $participatedUsersStartedByUser, $participatedUsersCompletedByUser,
|
||||
$unassignedUsers, $unassignedGroups)
|
||||
$unassignedUsers, $unassignedGroups,$pausedtUser)
|
||||
{
|
||||
// build xml document
|
||||
|
||||
@@ -1889,7 +1896,7 @@ class AppSolr
|
||||
$writer->text ($draftUser ['USR_UID']);
|
||||
$writer->endElement ();
|
||||
}
|
||||
|
||||
|
||||
if (is_array ($participatedUsers) && ! empty ($participatedUsers)) {
|
||||
foreach ($participatedUsers as $userUID) {
|
||||
$writer->startElement ("field");
|
||||
@@ -1964,6 +1971,19 @@ class AppSolr
|
||||
$writer->endElement ();
|
||||
}
|
||||
}
|
||||
if (! empty ($pausedtUser)) {
|
||||
foreach ($pausedtUser as $paused) {
|
||||
$writer->startElement ("field");
|
||||
$writer->writeAttribute ('name', 'APP_PAUSED_USERS');
|
||||
$writer->text ($paused ['USR_UID']);
|
||||
$writer->endElement ();
|
||||
|
||||
$writer->startElement ("field");
|
||||
$writer->writeAttribute ('name', 'APP_PAUSED_USER_DEL_INDEX_' . trim ($paused ['USR_UID']) . '_txt');
|
||||
$writer->text ($paused ['DEL_INDEX']);
|
||||
$writer->endElement ();
|
||||
}
|
||||
}
|
||||
|
||||
// get the serialized fields
|
||||
if (! empty ($documentData ['APP_DATA']) && $documentData ['APP_DATA'] != "N;" ) {
|
||||
@@ -2184,7 +2204,8 @@ class AppSolr
|
||||
$indexes = $this->aaSearchRecords ($allAppDbData, array (
|
||||
'DEL_THREAD_STATUS' => 'OPEN',
|
||||
'DEL_FINISH_DATE' => 'NULL',
|
||||
'APP_STATUS' => 'TO_DO' //, 'APP_THREAD_STATUS' => 'OPEN'
|
||||
'APP_STATUS' => 'TO_DO', //, 'APP_THREAD_STATUS' => 'OPEN'
|
||||
'APP_TYPE' => ''
|
||||
));
|
||||
foreach ($indexes as $index) {
|
||||
$assignedUsers [] = array (
|
||||
@@ -2263,6 +2284,19 @@ class AppSolr
|
||||
'DEL_INDEX' => $allAppDbData [$index] ['DEL_INDEX']
|
||||
);
|
||||
}
|
||||
|
||||
$pausedUsers = array ();
|
||||
$indexes = $this->aaSearchRecords ($allAppDbData, array (
|
||||
'APP_TYPE' => 'PAUSE'
|
||||
));
|
||||
foreach ($indexes as $index) {
|
||||
if ($allAppDbData [$index] ['APP_DISABLE_ACTION_USER'] == null || $allAppDbData [$index] ['APP_DISABLE_ACTION_USER'] == 0) {
|
||||
$pausedUsers [] = array (
|
||||
'USR_UID' => $allAppDbData [$index] ['USR_UID'],
|
||||
'DEL_INDEX' => $allAppDbData [$index] ['DEL_INDEX']
|
||||
);
|
||||
}
|
||||
}
|
||||
// search information of unassigned users
|
||||
// the unassigned users are the self service users and groups.
|
||||
// the self service users are defined in the TASKs of the PROCESS.
|
||||
@@ -2369,7 +2403,8 @@ class AppSolr
|
||||
$participatedUsersStartedByUser,
|
||||
$participatedUsersCompletedByUser,
|
||||
$unassignedUsers,
|
||||
$unassignedGroups
|
||||
$unassignedGroups,
|
||||
$pausedUsers
|
||||
);
|
||||
|
||||
return $result;
|
||||
@@ -2649,7 +2684,6 @@ class AppSolr
|
||||
*/
|
||||
public function getListApplicationUpdateDelegationData($aaAppUIDs)
|
||||
{
|
||||
|
||||
$allAppDbData = array ();
|
||||
|
||||
$c = new Criteria ();
|
||||
@@ -2685,17 +2719,22 @@ class AppSolr
|
||||
$c->addSelectColumn ('ad.DEL_FINISHED');
|
||||
$c->addSelectColumn ('ad.DEL_DELAYED');
|
||||
$c->addSelectColumn ('ad.APP_OVERDUE_PERCENTAGE');
|
||||
|
||||
|
||||
$c->addSelectColumn ('at.APP_THREAD_INDEX');
|
||||
$c->addSelectColumn ('at.APP_THREAD_PARENT');
|
||||
$c->addSelectColumn ('at.APP_THREAD_STATUS');
|
||||
|
||||
$c->addSelectColumn ('ade.APP_DELAY_UID');
|
||||
$c->addSelectColumn ('ade.APP_TYPE');
|
||||
$c->addSelectColumn ('ade.APP_DISABLE_ACTION_USER');
|
||||
|
||||
$c->addAsColumn("PRO_CATEGORY_UID", "pro.PRO_CATEGORY");
|
||||
|
||||
|
||||
$c->addAlias ('capp', 'CONTENT');
|
||||
$c->addAlias ('cpro', 'CONTENT');
|
||||
$c->addAlias ('ad', 'APP_DELEGATION');
|
||||
$c->addAlias ('at', 'APP_THREAD');
|
||||
$c->addAlias ('ade', 'APP_DELAY');
|
||||
$c->addAlias ("pro", ProcessPeer::TABLE_NAME);
|
||||
|
||||
$aConditions = array ();
|
||||
@@ -2740,29 +2779,52 @@ class AppSolr
|
||||
'at.APP_THREAD_INDEX'
|
||||
);
|
||||
$c->addJoinMC ($aConditions, Criteria::JOIN);
|
||||
|
||||
$aConditions = array ();
|
||||
$aConditions [] = array (
|
||||
'ad.APP_UID',
|
||||
'ade.APP_UID'
|
||||
);
|
||||
$aConditions [] = array (
|
||||
'ad.DEL_INDEX',
|
||||
'ade.APP_DEL_INDEX'
|
||||
);
|
||||
//$aConditions [] = array (
|
||||
// 'ade.APP_DISABLE_ACTION_USER',
|
||||
// DBAdapter::getStringDelimiter () . 'null' . DBAdapter::getStringDelimiter ()
|
||||
//);
|
||||
$aConditions [] = array (
|
||||
'ade.APP_DISABLE_ACTION_USER',
|
||||
DBAdapter::getStringDelimiter () . '0' . DBAdapter::getStringDelimiter ()
|
||||
);
|
||||
$aConditions [] = array (
|
||||
'ade.APP_TYPE',
|
||||
DBAdapter::getStringDelimiter () . 'PAUSE' . DBAdapter::getStringDelimiter ()
|
||||
);
|
||||
$c->addJoinMC($aConditions, Criteria::LEFT_JOIN);
|
||||
|
||||
|
||||
$arrayCondition = array();
|
||||
$arrayCondition[] = array(ApplicationPeer::PRO_UID, "pro.PRO_UID");
|
||||
$c->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
$c->add (ApplicationPeer::APP_UID, $aaAppUIDs, Criteria::IN);
|
||||
|
||||
|
||||
$rs = ApplicationPeer::doSelectRS ($c);
|
||||
$rs->setFetchmode (ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
|
||||
$rs->next ();
|
||||
$row = $rs->getRow ();
|
||||
|
||||
|
||||
while (is_array ($row)) {
|
||||
$allAppDbData [] = $row;
|
||||
$rs->next ();
|
||||
$row = $rs->getRow ();
|
||||
}
|
||||
|
||||
//Propel::close();
|
||||
|
||||
return $allAppDbData;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of groups of unassigned users of the specified task from
|
||||
|
||||
@@ -289,7 +289,7 @@ function getAllCounters ()
|
||||
$aCount = $ApplicationSolrIndex->getCasesCount( $userUid );
|
||||
|
||||
//get paused count
|
||||
$aCountMissing = $oAppCache->getAllCounters( array ('paused','completed','cancelled'), $userUid );
|
||||
$aCountMissing = $oAppCache->getAllCounters( array ('completed','cancelled'), $userUid );
|
||||
|
||||
$aCount = array_merge( $aCount, $aCountMissing );
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user