CValue::setSession("elem_concerne", $elem_concerne); CValue::setSession("evenements", $evenements); CValue::setSession("filter_item", $filter_item); $selected_fiche_id = CValue::getOrSession("selected_fiche_id"); $where = array(); if ($elem_concerne) { $where["fiches_ei.elem_concerne"] = "= '{$elem_concerne}'"; } if ($selected_user_id) { $where["fiches_ei.user_id"] = "= '{$selected_user_id}'"; } if ($selected_service_valid_user_id) { $where["fiches_ei.service_valid_user_id"] = "= '{$selected_service_valid_user_id}'"; } $user_id = null; if ($type == "AUTHOR" || CCanDo::edit() && !CCanDo::admin()) { $user_id = $user->_id; } if ($evenements) { $listeFiches = CFicheEi::loadFichesEtat($type, $user_id, $where, 0, false, null, true); $item = new CEiItem(); $item->ei_categorie_id = $evenements; $listTypes = array_keys($item->loadMatchingList()); foreach ($listeFiches as $id => $fiche) { if (count(array_intersect($fiche->_ref_evenement, $listTypes)) == 0) { unset($listeFiches[$id]); } if ($filter_item != "" && strrpos($fiche->evenements, $filter_item) === false) { unset($listeFiches[$id]); } }
} function doStore() { global $doc_ged_id, $file_id, $_validation; $this->_obj->date = CMbDT::dateTime(); $this->_obj->remarques = CAppUI::tr("Modele"); $this->_obj->doc_ged_id = $doc_ged_id; if ($file_id !== null) { $this->_obj->file_id = $file_id; $this->_obj->doc_ged_suivi_id = null; } if ($msg = $this->_obj->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); if ($this->redirectError) { $this->redirect =& $this->redirectError; } } } } $do1 = new CDoDocGedAddEdit(); if (!CCanDo::admin()) { $do1->doRedirect(); } $do1->doIt(); if ($file_id) { $do2 = new CDoDocGedSuiviAddEdit(); $do2->doIt(); } elseif ($_firstModeleGed) { $do1->dodelete(); CAppUI::setMsg("CDocGed-msg-error_file", UI_MSG_ERROR); }
/** * @see parent::canRead() */ function canRead() { if (!$this->sejour_id || CCanDo::admin()) { return parent::canRead(); } // Tout utilisateur peut consulter une consultation de séjour en lecture seule return $this->_canRead = 1; }
* @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision: 19316 $ */ CCanDo::checkRead(); $fiche_ei_id = CValue::get("fiche_ei_id", 0); //Récupération du type de fiche à générer et de la RSPO concernée. $type_ei_id = CValue::get("type_ei_id"); $blood_salvage_id = CValue::get("blood_salvage_id"); $fiche = new CFicheEi(); $listFct = new CFunctions(); // Droit admin et edition de fiche if (CCanDo::admin() && $fiche_ei_id) { $fiche->load($fiche_ei_id); } // Chargement des Utilisateurs if (CCanDo::admin()) { $listFct = CMediusers::loadFonctions(PERM_READ); foreach ($listFct as $fct) { $fct->loadRefsUsers(); } } $fiche->loadRefsFwd(); if (!$fiche->_ref_evenement) { $fiche->_ref_evenement = array(); } /* * Si l'on est dans le cas où nous souhaitons préremplir automatiquement * quelques champs à l'aide du modèle de fiche d'incident (module cell saver). */ if ($type_ei_id) { $type_fiche = new CTypeEi();
*/ CCanDo::checkRead(); $user = CUser::get(); $fiche_ei_id = CValue::getOrSession("fiche_ei_id", null); $ficheAnnuleVisible = CValue::getOrSession("ficheAnnuleVisible", 0); $ficheTermineVisible = CValue::getOrSession("ficheTermineVisible", 0); $selected_user_id = CValue::getOrSession("selected_user_id"); $selected_service_valid_user_id = CValue::getOrSession("selected_service_valid_user_id"); $elem_concerne = CValue::getOrSession("elem_concerne"); $evenements = CValue::getOrSession("evenements"); $filter_item = CValue::getOrSession("filter_item"); $catFiche = array(); $fiche = new CFicheEi(); $droitFiche = !$fiche->load($fiche_ei_id); $droitFiche = $droitFiche || !CCanDo::edit() && $fiche->user_id != $user->_id; $droitFiche = $droitFiche || CCanDo::edit() && !CCanDo::admin() && $fiche->user_id != $user->_id && $fiche->service_valid_user_id != $user->_id; // Liste des Catégories d'EI $categorie = new CEiCategorie(); /** @var CEiCategorie[] $listCategories */ $listCategories = $categorie->loadList(null, "nom"); if ($droitFiche) { // Cette fiche n'est pas valide $fiche_ei_id = null; CValue::setSession("fiche_ei_id"); $fiche = new CFicheEi(); } else { $fiche->loadRefsFwd(); $fiche->loadRefItems(); foreach ($listCategories as $keyCat => $_categorie) { foreach ($fiche->_ref_items as $keyItem => $_item) { if ($_item->ei_categorie_id == $keyCat) {
$where["object_class"] = "= '{$filter->object_class}'"; } } if ($filter->type) { $where["type"] = "= '{$filter->type}'"; } if ($filter->_date_min) { $where[] = "date >= '{$filter->_date_min}'"; } if ($filter->_date_max) { $where[] = "date <= '{$filter->_date_max}'"; } $log = new CUserLog(); $list = null; $list_count = null; $is_admin = CCanDo::admin(); $dossiers_medicaux_shared = CAppUI::conf("dPetablissement dossiers_medicaux_shared"); if (!$stats) { $index = isset($where["object_id"]) ? "object_id" : null; /** @var CUserLog[] $list */ $list = $log->loadList($where, "date DESC", "{$start}, 100", null, null, $index); // Sort by id with PHP cuz dumbass MySQL won't limit rowscan before sorting // even though `date` is explicit as first intention sorter AND obvious index in most cases // Tends to be a known limitation array_multisort(CMbArray::pluck($list, "_id"), SORT_DESC, $list); $list_count = $log->countList($where, null, null, $index); $group_id = CGroups::loadCurrent()->_id; $users = CStoredObject::massLoadFwdRef($list, "user_id"); CStoredObject::massLoadFwdRef($list, "object_id"); // Mass loading des mediusers et des fonctions $mediuser = new CMediusers();