/** * 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; }
/** * Get list All owners of dashboards * * @access public * @param array $options, Data for list * @return array * * @author Marco Antonio Nina <*****@*****.**> * @copyright Colosa - Bolivia */ public function getOwnerByDasUid($options = array()) { Validator::isArray($options, '$options'); G::LoadClass("dashboards"); $das_uid = isset( $options["das_uid"] ) ? $options["das_uid"] : ""; $start = isset( $options["start"] ) ? $options["start"] : "0"; $limit = isset( $options["limit"] ) ? $options["limit"] : ""; $search = isset( $options["search"] ) ? $options["search"] : ""; $paged = isset( $options["paged"] ) ? $options["paged"] : true; $type = "extjs"; $start = (int)$start; $start = abs($start); if ($start != 0) { $start--; } $limit = (int)$limit; $limit = abs($limit); if ($limit == 0) { G::LoadClass("configuration"); $conf = new \Configurations(); $configList = $conf->getConfiguration('ENVIRONMENT_SETTINGS', ''); if (isset($configList['casesListRowNumber'])) { $limit = (int)$configList['casesListRowNumber']; } else { $limit = 25; } } else { $limit = (int)$limit; } $dashboards = new \Dashboards(); $result = $dashboards->getOwnerByDasUid($das_uid, $start, $limit, $search); if ($paged == false) { $response = $result['data']; } else { $response['totalCount'] = $result['totalCount']; $response['start'] = $start+1; $response['limit'] = $limit; $response['search'] = $search; $response['owner'] = $result['data']; } return $response; }
/** * Get Case Notes * * @access public * @param string $app_uid, Uid for case * @return array * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia */ public function getCaseNotes($app_uid, $usr_uid, $data_get) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); Validator::isString($usr_uid, '$usr_uid'); Validator::usrUid($usr_uid, '$usr_uid'); Validator::isArray($data_get, '$data_get'); Validator::isArray($data_get, '$data_get'); $start = isset( $data_get["start"] ) ? $data_get["start"] : "0"; $limit = isset( $data_get["limit"] ) ? $data_get["limit"] : ""; $sort = isset( $data_get["sort"] ) ? $data_get["sort"] : "APP_NOTES.NOTE_DATE"; $dir = isset( $data_get["dir"] ) ? $data_get["dir"] : "DESC"; $user = isset( $data_get["user"] ) ? $data_get["user"] : ""; $dateFrom = (!empty( $data_get["dateFrom"] )) ? substr( $data_get["dateFrom"], 0, 10 ) : ""; $dateTo = (!empty( $data_get["dateTo"] )) ? substr( $data_get["dateTo"], 0, 10 ) : ""; $search = isset( $data_get["search"] ) ? $data_get["search"] : ""; $paged = isset( $data_get["paged"] ) ? $data_get["paged"] : true; $case = new \Cases(); $caseLoad = $case->loadCase($app_uid); $pro_uid = $caseLoad['PRO_UID']; $tas_uid = \AppDelegation::getCurrentTask($app_uid); $respView = $case->getAllObjectsFrom( $pro_uid, $app_uid, $tas_uid, $usr_uid, 'VIEW' ); $respBlock = $case->getAllObjectsFrom( $pro_uid, $app_uid, $tas_uid, $usr_uid, 'BLOCK' ); if ($respView['CASES_NOTES'] == 0 && $respBlock['CASES_NOTES'] == 0) { throw (new \Exception(\G::LoadTranslation("ID_CASES_NOTES_NO_PERMISSIONS"))); } if ($sort != 'APP_NOTE.NOTE_DATE') { $sort = G::toUpper($sort); $columnsAppCacheView = \AppNotesPeer::getFieldNames(\BasePeer::TYPE_FIELDNAME); if (!(in_array($sort, $columnsAppCacheView))) { $sort = 'APP_NOTES.NOTE_DATE'; } else { $sort = 'APP_NOTES.'.$sort; } } if ((int)$start == 1 || (int)$start == 0) { $start = 0; } $dir = G::toUpper($dir); if (!($dir == 'DESC' || $dir == 'ASC')) { $dir = 'DESC'; } if ($user != '') { Validator::usrUid($user, '$usr_uid'); } if ($dateFrom != '') { Validator::isDate($dateFrom, 'Y-m-d', '$date_from'); } if ($dateTo != '') { Validator::isDate($dateTo, 'Y-m-d', '$date_to'); } $appNote = new \AppNotes(); $note_data = $appNote->getNotesList($app_uid, $user, $start, $limit, $sort, $dir, $dateFrom, $dateTo, $search); $response = array(); if ($paged === true) { $response['total'] = $note_data['array']['totalCount']; $response['start'] = $start; $response['limit'] = $limit; $response['sort'] = $sort; $response['dir'] = $dir; $response['usr_uid'] = $user; $response['date_to'] = $dateTo; $response['date_from'] = $dateFrom; $response['search'] = $search; $response['data'] = array(); $con = 0; foreach ($note_data['array']['notes'] as $value) { $response['data'][$con]['app_uid'] = $value['APP_UID']; $response['data'][$con]['usr_uid'] = $value['USR_UID']; $response['data'][$con]['note_date'] = $value['NOTE_DATE']; $response['data'][$con]['note_content'] = $value['NOTE_CONTENT']; $con++; } } else { $con = 0; foreach ($note_data['array']['notes'] as $value) { $response[$con]['app_uid'] = $value['APP_UID']; $response[$con]['usr_uid'] = $value['USR_UID']; $response[$con]['note_date'] = $value['NOTE_DATE']; $response[$con]['note_content'] = $value['NOTE_CONTENT']; $con++; } } return $response; }
/** * Get list status indicator * * @access public * @param array $options, Data for list * @return array * * @author Marco Antonio Nina <*****@*****.**> * @copyright Colosa - Bolivia */ public function getStatusIndicator($options = array()) { Validator::isArray($options, '$options'); $usrUid = isset( $options["usrUid"] ) ? $options["usrUid"] : ""; G::loadClass('indicatorsCalculator'); $calculator = new \IndicatorsCalculator(); $result = $calculator->statusIndicator($usrUid); return $result; }
/** * Save Department * @var string $dep_data. Data for Process * @var string $create. Flag for create or update * * @access public * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia * * @return array */ public function saveDepartment($dep_data, $create = true) { Validator::isArray($dep_data, '$dep_data'); Validator::isNotEmpty($dep_data, '$dep_data'); Validator::isBoolean($create, '$create'); $dep_data = array_change_key_case($dep_data, CASE_UPPER); if ($create) { unset($dep_data["DEP_UID"]); } $oDepartment = new \Department(); if (isset($dep_data['DEP_UID']) && $dep_data['DEP_UID'] != '') { Validator::depUid($dep_data['DEP_UID']); } if (isset($dep_data['DEP_PARENT']) && $dep_data['DEP_PARENT'] != '') { Validator::depUid($dep_data['DEP_PARENT'], 'dep_parent'); } if (isset($dep_data['DEP_MANAGER']) && $dep_data['DEP_MANAGER'] != '') { Validator::usrUid($dep_data['DEP_MANAGER'], 'dep_manager'); } if (isset($dep_data['DEP_STATUS'])) { Validator::depStatus($dep_data['DEP_STATUS']); } if (!$create) { if (isset($dep_data["DEP_TITLE"])) { $this->throwExceptionIfExistsTitle($dep_data["DEP_TITLE"], strtolower("DEP_TITLE"), $dep_data["DEP_UID"]); $dep_data["DEPO_TITLE"] = $dep_data["DEP_TITLE"]; } $oDepartment->update($dep_data); $oDepartment->updateDepartmentManager($dep_data['DEP_UID']); } else { if (isset($dep_data['DEP_TITLE'])) { $this->throwExceptionIfExistsTitle($dep_data["DEP_TITLE"], strtolower("DEP_TITLE")); } else { throw new \Exception(\G::LoadTranslation("ID_FIELD_REQUIRED", array('dep_title'))); } $dep_uid = $oDepartment->create($dep_data); $response = $this->getDepartment($dep_uid); return $response; } }