function getAllCounters() { $userUid = isset($_SESSION['USER_LOGGED']) && $_SESSION['USER_LOGGED'] != '' ? $_SESSION['USER_LOGGED'] : null; $oAppCache = new AppCacheView(); $aTypes = array(); $aTypes['to_do'] = 'CASES_INBOX'; $aTypes['draft'] = 'CASES_DRAFT'; $aTypes['cancelled'] = 'CASES_CANCELLED'; $aTypes['sent'] = 'CASES_SENT'; $aTypes['paused'] = 'CASES_PAUSED'; $aTypes['completed'] = 'CASES_COMPLETED'; $aTypes['selfservice'] = 'CASES_SELFSERVICE'; //$aTypes['to_revise'] = 'CASES_TO_REVISE'; //$aTypes['to_reassign'] = 'CASES_TO_REASSIGN'; $solrEnabled = false; if (($solrConf = System::solrEnv()) !== false) { G::LoadClass('AppSolr'); $ApplicationSolrIndex = new AppSolr($solrConf['solr_enabled'], $solrConf['solr_host'], $solrConf['solr_instance']); if ($ApplicationSolrIndex->isSolrEnabled() && $solrConf['solr_enabled'] == true) { $solrEnabled = true; } } if ($solrEnabled) { $aCount = $ApplicationSolrIndex->getCasesCount($userUid); //get paused count $aCountMissing = $oAppCache->getAllCounters(array('completed', 'cancelled'), $userUid); $aCount = array_merge($aCount, $aCountMissing); } else { $aCount = $oAppCache->getAllCounters(array_keys($aTypes), $userUid); } $response = array(); $i = 0; foreach ($aCount as $type => $count) { $response[$i] = new stdclass(); $response[$i]->item = $aTypes[$type]; $response[$i]->count = $count; $i++; } echo G::json_encode($response); }
require_once 'classes/model/Department.php'; require_once 'classes/model/AppCacheView.php'; G::LoadClass('configuration'); $oUser = new Users(); $data = $oUser->loadDetailed($_REQUEST['USR_UID']); $data['USR_STATUS'] = G::LoadTranslation('ID_' . $data['USR_STATUS']); $oAppCache = new AppCacheView(); $aTypes = array(); $aTypes['to_do'] = 'CASES_INBOX'; $aTypes['draft'] = 'CASES_DRAFT'; $aTypes['cancelled'] = 'CASES_CANCELLED'; $aTypes['sent'] = 'CASES_SENT'; $aTypes['paused'] = 'CASES_PAUSED'; $aTypes['completed'] = 'CASES_COMPLETED'; $aTypes['selfservice'] = 'CASES_SELFSERVICE'; $aCount = $oAppCache->getAllCounters(array_keys($aTypes), $_REQUEST['USR_UID']); $dep = new Department(); if ($dep->existsDepartment($data['DEP_UID'])) { $dep->Load($data['DEP_UID']); $dep_name = $dep->getDepTitle(); } else { $dep_name = ''; } if ($data['USR_REPLACED_BY'] != '') { $user = new Users(); $u = $user->load($data['USR_REPLACED_BY']); $c = new Configurations(); $replaced_by = $c->usersNameFormat($u['USR_USERNAME'], $u['USR_FIRSTNAME'], $u['USR_LASTNAME']); } else { $replaced_by = ''; }
/** * Migrate all cases to New list * * return all LIST TABLES with data */ public function migrateList ($workSpace) { if ($this->listFirstExecution('check')) { return 1; } $this->initPropel(true); $appCache = new AppCacheView(); $users = new Users(); G::LoadClass("case"); $case = new Cases(); //Select data CANCELLED $canCriteria = $appCache->getSelAllColumns(); $canCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL); $canCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($canCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert data LIST_CANCELED while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listCanceled = new ListCanceled(); $listCanceled->remove($row["APP_UID"]); $listCanceled->setDeleted(false); $listCanceled->create($row); } CLI::logging("> Completed table LIST_CANCELED\n"); //Select data COMPLETED $comCriteria = $appCache->getSelAllColumns(); $comCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL); $comCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($comCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert new data LIST_COMPLETED while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listCompleted = new ListCompleted(); $listCompleted->remove($row["APP_UID"]); $listCompleted->setDeleted(false); $listCompleted->create($row); } CLI::logging("> Completed table LIST_COMPLETED\n"); //Select data TO_DO OR DRAFT $inbCriteria = $appCache->getSelAllColumns(); $rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $criteriaUser = new Criteria(); $criteriaUser->addSelectColumn( UsersPeer::USR_UID ); $criteriaUser->addSelectColumn( UsersPeer::USR_FIRSTNAME ); $criteriaUser->addSelectColumn( UsersPeer::USR_LASTNAME ); $criteriaUser->addSelectColumn( UsersPeer::USR_USERNAME ); //Insert new data LIST_INBOX while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $isSelfService = ($row['USR_UID'] == '') ? true : false; if($row["DEL_THREAD_STATUS"] == 'OPEN'){ //Update information about the previous_user $row["DEL_PREVIOUS_USR_UID"] = $row["PREVIOUS_USR_UID"]; $criteriaUser->add( UsersPeer::USR_UID, $row["PREVIOUS_USR_UID"] ); $datasetU = UsersPeer::doSelectRS($criteriaUser); $datasetU->setFetchmode(ResultSet::FETCHMODE_ASSOC); $datasetU->next(); $arrayUsers = $datasetU->getRow(); $row["DEL_PREVIOUS_USR_USERNAME"] = $arrayUsers["USR_USERNAME"]; $row["DEL_PREVIOUS_USR_FIRSTNAME"]= $arrayUsers["USR_FIRSTNAME"]; $row["DEL_PREVIOUS_USR_LASTNAME"] = $arrayUsers["USR_LASTNAME"]; //Update the due date $row["DEL_DUE_DATE"] = $row["DEL_TASK_DUE_DATE"]; $listInbox = new ListInbox(); $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]); $listInbox->setDeleted(false); $listInbox->create($row, $isSelfService); } else { // create participated List when the thread is CLOSED $listParticipatedHistory = new ListParticipatedHistory(); $listParticipatedHistory->remove($row['APP_UID'], $row['DEL_INDEX']); $listParticipatedHistory = new ListParticipatedHistory(); $listParticipatedHistory->create($row); $oCriteria = new Criteria('workflow'); $oCriteria->add(ListParticipatedLastPeer::APP_UID, $row['APP_UID']); $oCriteria->add(ListParticipatedLastPeer::USR_UID, $row['USR_UID']); ListParticipatedLastPeer::doDelete($oCriteria); $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->create($row); $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->refresh($row); } } CLI::logging("> Completed table LIST_INBOX\n"); //With this List is populated the LIST_PARTICIPATED_HISTORY and LIST_PARTICIPATED_LAST CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n"); CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n"); //Select data TO_DO OR DRAFT CASES CREATED BY AN USER $myiCriteria = $appCache->getSelAllColumns(); $myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert new data LIST_MY_INBOX while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listMyInbox = new ListMyInbox(); $listMyInbox ->remove($row["APP_UID"],$row["USR_UID"]); $listMyInbox->setDeleted(false); $listMyInbox->create($row); } CLI::logging("> Completed table LIST_MY_INBOX\n"); //Select data PAUSED $delaycriteria = new Criteria("workflow"); $delaycriteria->addSelectColumn(AppDelayPeer::APP_UID); $delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID); $delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX); $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER); $delaycriteria->addSelectColumn(AppCacheViewPeer::USR_UID); $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_STATUS); $delaycriteria->addSelectColumn(AppCacheViewPeer::TAS_UID); $delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID . ' AND ' . AppCacheViewPeer::DEL_INDEX . ' = ' . AppDelayPeer::APP_DEL_INDEX, Criteria::INNER_JOIN ); $delaycriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, "0", CRITERIA::EQUAL); $delaycriteria->add(AppDelayPeer::APP_TYPE, "PAUSE", CRITERIA::EQUAL); $rsCriteria = AppDelayPeer::doSelectRS($delaycriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert new data LIST_PAUSED while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $data = $row; $data["DEL_INDEX"] = $row["APP_DEL_INDEX"]; $listPaused = new ListPaused(); $listPaused ->remove($row["APP_UID"],$row["APP_DEL_INDEX"],$data); $listPaused->setDeleted(false); $listPaused->create($data); } CLI::logging("> Completed table LIST_PAUSED\n"); //Select and Insert LIST_UNASSIGNED $unaCriteria = $appCache->getSelAllColumns(); $unaCriteria->add(AppCacheViewPeer::USR_UID, "", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($unaCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $del = new ListUnassignedPeer(); $del->doDeleteAll(); $del = new ListUnassignedGroupPeer(); $del->doDeleteAll(); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listUnassigned = new ListUnassigned(); $unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]); } CLI::logging("> Completed table LIST_UNASSIGNED\n"); CLI::logging("> Completed table LIST_UNASSIGNED_GROUP\n"); // ADD LISTS COUNTS $aTypes = array( 'to_do', 'draft', 'cancelled', 'sent', 'paused', 'completed', 'selfservice' ); $users = new Users(); $criteria = new Criteria(); $criteria->addSelectColumn(UsersPeer::USR_UID); $dataset = UsersPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while($dataset->next()) { $aRow = $dataset->getRow(); $oAppCache = new AppCacheView(); $aCount = $oAppCache->getAllCounters( $aTypes, $aRow['USR_UID'] ); $newData = array( 'USR_UID' => $aRow['USR_UID'], 'USR_TOTAL_INBOX' => $aCount['to_do'], 'USR_TOTAL_DRAFT' => $aCount['draft'], 'USR_TOTAL_CANCELLED' => $aCount['cancelled'], 'USR_TOTAL_PARTICIPATED' => $aCount['sent'], 'USR_TOTAL_PAUSED' => $aCount['paused'], 'USR_TOTAL_COMPLETED' => $aCount['completed'], 'USR_TOTAL_UNASSIGNED' => $aCount['selfservice'] ); $users->update($newData); } $this->listFirstExecution('insert'); return true; }
/** * Get counters each type of list * @param $userId * @return array * @throws \Exception */ public function getCounterCase($userId) { try { $userUid = (isset( $userId ) && $userId != '') ? $userId : null; $oAppCache = new \AppCacheView(); $aTypes = Array (); $aTypes['to_do'] = 'toDo'; $aTypes['draft'] = 'draft'; $aTypes['cancelled'] = 'cancelled'; $aTypes['sent'] = 'participated'; $aTypes['paused'] = 'paused'; $aTypes['completed'] = 'completed'; $aTypes['selfservice'] = 'unassigned'; $aCount = $oAppCache->getAllCounters( array_keys( $aTypes ), $userUid ); $response = Array (); foreach ($aCount as $type => $count) { $response[$aTypes[$type]] = $count; } } catch (\Exception $e) { throw $e; } return $response; }