/** * Get list for Cases * * @access public * @param array $dataList, Data for list * @return array * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia */ public function getList($listName = 'inbox', $dataList = array(), $total = false) { Validator::isArray($dataList, '$dataList'); if (!isset($dataList["userId"])) { throw (new \Exception(\G::LoadTranslation("ID_USER_NOT_EXIST", array('userId','')))); } else { Validator::usrUid($dataList["userId"], "userId"); } $userUid = $dataList["userId"]; $filters["paged"] = isset( $dataList["paged"] ) ? $dataList["paged"] : true; $filters['count'] = isset( $dataList['count'] ) ? $dataList['count'] : true; $filters["category"] = isset( $dataList["category"] ) ? $dataList["category"] : ""; $filters["process"] = isset( $dataList["process"] ) ? $dataList["process"] : ""; $filters["search"] = isset( $dataList["search"] ) ? $dataList["search"] : ""; $filters["filter"] = isset( $dataList["filter"] ) ? $dataList["filter"] : ""; $filters["dateFrom"] = (!empty( $dataList["dateFrom"] )) ? substr( $dataList["dateFrom"], 0, 10 ) : ""; $filters["dateTo"] = (!empty( $dataList["dateTo"] )) ? substr( $dataList["dateTo"], 0, 10 ) : ""; $filters["start"] = isset( $dataList["start"] ) ? $dataList["start"] : "0"; $filters["limit"] = isset( $dataList["limit"] ) ? $dataList["limit"] : "25"; $filters["sort"] = isset( $dataList["sort"] ) ? $dataList["sort"] : ""; $filters["dir"] = isset( $dataList["dir"] ) ? $dataList["dir"] : "DESC"; $filters["action"] = isset( $dataList["action"] ) ? $dataList["action"] : ""; // Select list switch ($listName) { case 'inbox': $list = new \ListInbox(); $listpeer = 'ListInboxPeer'; break; case 'participated_history': $list = new \ListParticipatedHistory(); $listpeer = 'ListParticipatedHistoryPeer'; break; case 'participated_last': $list = new \ListParticipatedLast(); $listpeer = 'ListParticipatedLastPeer'; break; case 'completed': $list = new \ListCompleted(); $listpeer = 'ListCompletedPeer'; break; case 'paused': $list = new \ListPaused(); $listpeer = 'ListPausedPeer'; break; case 'canceled': $list = new \ListCanceled(); $listpeer = 'ListCanceledPeer'; break; case 'my_inbox': $list = new \ListMyInbox(); $listpeer = 'ListMyInboxPeer'; break; case 'unassigned': $list = new \ListUnassigned(); $listpeer = 'ListUnassignedPeer'; break; } // Validate filters $filters["start"] = (int)$filters["start"]; $filters["start"] = abs($filters["start"]); if ($filters["start"] != 0) { $filters["start"]+1; } $filters["limit"] = (int)$filters["limit"]; $filters["limit"] = abs($filters["limit"]); if ($filters["limit"] == 0) { G::LoadClass("configuration"); $conf = new \Configurations(); $generalConfCasesList = $conf->getConfiguration('ENVIRONMENT_SETTINGS', ''); if (isset($generalConfCasesList['casesListRowNumber'])) { $filters["limit"] = (int)$generalConfCasesList['casesListRowNumber']; } else { $filters["limit"] = 25; } } else { $filters["limit"] = (int)$filters["limit"]; } $filters["sort"] = G::toUpper($filters["sort"]); $columnsList = $listpeer::getFieldNames(\BasePeer::TYPE_FIELDNAME); if (!(in_array($filters["sort"], $columnsList))) { $filters["sort"] = ''; } $filters["dir"] = G::toUpper($filters["dir"]); if (!($filters["dir"] == 'DESC' || $filters["dir"] == 'ASC')) { $filters["dir"] = 'DESC'; } if ($filters["process"] != '') { Validator::proUid($filters["process"], '$pro_uid'); } if ($filters["category"] != '') { Validator::catUid($filters["category"], '$cat_uid'); } if ($filters["dateFrom"] != '') { Validator::isDate($filters["dateFrom"], 'Y-m-d', '$date_from'); } if ($filters["dateTo"] != '') { Validator::isDate($filters["dateTo"], 'Y-m-d', '$date_to'); } if ($total) { $total = $list->countTotal($userUid, $filters); return $total; } $result = $list->loadList($userUid, $filters); if (!empty($result)) { foreach ($result as &$value) { if (isset($value['DEL_PREVIOUS_USR_UID'])) { $value['PREVIOUS_USR_UID'] = $value['DEL_PREVIOUS_USR_UID']; $value['PREVIOUS_USR_USERNAME'] = $value['DEL_PREVIOUS_USR_USERNAME']; $value['PREVIOUS_USR_FIRSTNAME'] = $value['DEL_PREVIOUS_USR_FIRSTNAME']; $value['PREVIOUS_USR_LASTNAME'] = $value['DEL_PREVIOUS_USR_LASTNAME']; } if (isset($value['DEL_DUE_DATE'])) { $value['DEL_TASK_DUE_DATE'] = $value['DEL_DUE_DATE']; } if (isset($value['APP_PAUSED_DATE'])) { $value['APP_UPDATE_DATE'] = $value['APP_PAUSED_DATE']; } if (isset($value['DEL_CURRENT_USR_USERNAME'])) { $value['USR_USERNAME'] = $value['DEL_CURRENT_USR_USERNAME']; $value['USR_FIRSTNAME'] = $value['DEL_CURRENT_USR_FIRSTNAME']; $value['USR_LASTNAME'] = $value['DEL_CURRENT_USR_LASTNAME']; $value['APP_UPDATE_DATE'] = $value['DEL_DELEGATE_DATE']; } if (isset($value['APP_STATUS'])) { $value['APP_STATUS_LABEL'] = G::LoadTranslation( "ID_{$value['APP_STATUS']}" ); } //$value = array_change_key_case($value, CASE_LOWER); } } $response = array(); if ($filters["paged"]) { $filtersData = array(); $filtersData['start'] = $filters["start"]; $filtersData['limit'] = $filters["limit"]; $filtersData['sort'] = G::toLower($filters["sort"]); $filtersData['dir'] = G::toLower($filters["dir"]); $filtersData['cat_uid'] = $filters["category"]; $filtersData['pro_uid'] = $filters["process"]; $filtersData['search'] = $filters["search"]; $filtersData['date_from'] = $filters["dateFrom"]; $filtersData['date_to'] = $filters["dateTo"]; $response['filters'] = $filtersData; $response['data'] = $result; $filtersData['action'] = $filters["action"]; $response['totalCount'] = $list->countTotal($userUid, $filtersData); } else { $response = $result; } return $response; }
$listpeer = 'ListCompletedPeer'; break; case 'paused': $list = new ListPaused(); $listpeer = 'ListPausedPeer'; break; case 'canceled': $list = new ListCanceled(); $listpeer = 'ListCanceledPeer'; break; case 'my_inbox': $list = new ListMyInbox(); $listpeer = 'ListMyInboxPeer'; break; case 'unassigned': $list = new ListUnassigned(); $listpeer = 'ListUnassignedPeer'; break; } // Validate filters $filters['start'] = (int) $filters['start']; $filters['start'] = abs($filters['start']); if ($filters['start'] != 0) { $filters['start'] + 1; } $filters['limit'] = (int) $filters['limit']; $filters['limit'] = abs($filters['limit']); if ($filters['limit'] == 0) { G::LoadClass("configuration"); $conf = new Configurations(); $generalConfCasesList = $conf->getConfiguration('ENVIRONMENT_SETTINGS', '');
/** * 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; }
$listpeer = 'ListCanceledPeer'; break; case 'my_inbox': $list = new ListMyInbox(); $listpeer = 'ListMyInboxPeer'; break; case 'unassigned': $list = new ListUnassigned(); $listpeer = 'ListUnassignedPeer'; break; } // Validate filters $filters['start'] = (int)$filters['start'];