$utilisation_func = utilisation_rdv($plages_func, $listPlace, $plage); } if ($display_nb_consult == "etab") { $where["chir_id"] = CSQLDataSource::prepareIn(array_keys($listAllPrat)); /** @var CPlageconsult[] $plages_etab */ $plages_etab = $plage->loadList($where); $utilisation_etab = utilisation_rdv($plages_etab, $listPlace, $plage); } // next consult $next_plage = $plage->getNextPlage(); // previous consult $previous_plage = $plage->getPreviousPlage(); } // user's function available $mediuser = new CMediusers(); $mediusers = $mediuser->loadProfessionnelDeSanteByPref(PERM_READ, $function_id); // Vérifier le droit d'écriture sur la plage sélectionnée $plage->canDo(); // Création du template $smarty = new CSmartyDP(); $smarty->assign("plageconsult_id", $plageconsult_id); $smarty->assign("plage", $plage); $smarty->assign("listPlace", $listPlace); $smarty->assign("next_plage", $next_plage); $smarty->assign("list_users", $mediusers); $smarty->assign("previous_plage", $previous_plage); $smarty->assign("listBefore", $listBefore); $smarty->assign("listAfter", $listAfter); $smarty->assign("quotas", $quotas); $smarty->assign("multiple", $multiple); $smarty->assign("consultation", $consultation_target);
$_chir->loadRefFunction(); } } else { $listChir = CConsultation::loadPraticiens(PERM_EDIT); } // Liste des consultations a avancer si desistement $ds = $plage->getDS(); $now = CMbDT::date(); // get desistements $count_si_desistement = CConsultation::countDesistementsForDay($function_id ? array_keys($listChir) : array($chirSel), $now); // Liste des praticiens $fnc = new CFunctions(); $listFnc = $fnc->loadListWithPerms(PERM_READ, array("group_id" => " = '{$group->_id}' "), 'text'); $mediuser = new CMediusers(); foreach ($listFnc as $id => $_fnc) { $users = $mediuser->loadProfessionnelDeSanteByPref(PERM_READ, $_fnc->_id, null, true); if (!count($users)) { unset($listFnc[$id]); } } // if only one function and function_id if (count($listFnc) == 1 && !$chirSel) { $function_id = reset($listFnc)->_id; } // Période $today = CMbDT::date(); $debut = CValue::getOrSession("debut", $today); $debut = CMbDT::date("last sunday", $debut); $fin = CMbDT::date("next sunday", $debut); $debut = CMbDT::date("+1 day", $debut); $prev = CMbDT::date("-1 week", $debut);
$where = CValue::get('where', array()); $whereComplex = CValue::get('whereComplex', array()); $ljoin = CValue::get("ljoin", array()); CSessionHandler::writeClose(); /** @var CMediusers $object */ $object = new CMediusers(); $user = CMediusers::get(); $use_edit = CAppUI::pref("useEditAutocompleteUsers"); if (!$edit && $use_edit) { $edit = 1; } // Droits sur les utilisateurs retournés $permType = $edit ? PERM_EDIT : PERM_READ; // Récupération de la liste des utilisateurs if ($rdv) { $listUsers = $object->loadProfessionnelDeSanteByPref($permType, null, $keywords); } elseif ($praticiens) { $listUsers = $object->loadPraticiens($permType, null, $keywords); } else { $listUsers = $object->loadUsers($permType, null, $keywords); } if ($compta) { $listUsersCompta = CConsultation::loadPraticiensCompta(); foreach ($listUsers as $_user) { if (!isset($listUsersCompta[$_user->_id])) { unset($listUsers[$_user->_id]); } } } $template = $object->getTypedTemplate("autocomplete"); // Création du template
/** * Charge les praticiens susceptibles d'être concernés par les consultation * en fonction de les préférences utilisateurs * * @param int $permType Type de permission * @param ref $function_id Fonction spécifique * @param string $name Nom spécifique * @param bool $secondary Chercher parmi les fonctions secondaires * @param bool $actif Seulement les actifs * * @return CMediusers[] */ static function loadPraticiens($permType = PERM_READ, $function_id = null, $name = null, $secondary = false, $actif = true) { $user = new CMediusers(); return $user->loadProfessionnelDeSanteByPref($permType, $function_id, $name, $secondary, $actif); }
unset($plageSel->_ref_consultations[$keyConsult]); continue; } $consultation->loadRefSejour(1); $consultation->loadRefPatient(1); $consultation->loadRefCategorie(1); $consultation->countDocItems(); } if ($chirSel && $plageSel->chir_id != $chirSel) { $plageconsult_id = null; $plageSel = new CPlageconsult(); } CValue::setSession("plageconsult_id", $plageconsult_id); // Liste des chirurgiens $mediusers = new CMediusers(); $listChirs = $mediusers->loadProfessionnelDeSanteByPref(PERM_EDIT); $listDaysSelect = array(); for ($i = 0; $i < 7; $i++) { $dateArr = CMbDT::date("+{$i} day", $debut); $listDaysSelect[$dateArr] = $dateArr; } $holidays = CMbDate::getHolidays(); // Variable permettant de compter les jours pour la suppression du samedi et du dimanche $i = 0; // Détermination des bornes du semainier $min = CPlageconsult::$hours_start . ":" . reset(CPlageconsult::$minutes) . ":00"; $max = CPlageconsult::$hours_stop . ":" . end(CPlageconsult::$minutes) . ":00"; // Extension du semainier s'il y a des plages qui dépassent des bornes // de configuration hours_start et hours_stop $hours = CPlageconsult::$hours; $min_hour = sprintf("%01d", CMbDT::transform($min, null, "%H"));
* @link http://www.mediboard.org */ CCanDo::checkRead(); $function_id = CValue::getOrSession("function_id"); $date = CValue::getOrSession("date"); // filters $show_free = CValue::get("show_free", 1); $cancelled = CValue::get("cancelled"); $hide_in_conge = CValue::get("hide_in_conge", 0); $facturated = CValue::get("facturated"); $finished = CValue::get("finished"); $actes = CValue::get("actes"); $function = new CFunctions(); $function->load($function_id); $muser = new CMediusers(); $musers = $muser->loadProfessionnelDeSanteByPref(PERM_READ, $function_id, null, true); $planning = new CPlanningWeek(0, 0, count($musers), count($musers), false, "auto"); $planning->title = "Planning du " . htmlentities(CMbDT::format($date, "%A %d %B %Y")); $planning->guid = "planning_j_n"; $planning->dragndrop = 1; $planning->hour_divider = 12; $planning->show_half = true; $i = 0; foreach ($musers as $_user) { $user_id = $_user->_id; // plages conge $conge = new CPlageConge(); $where = array(); $where["date_debut"] = " <= '{$date}'"; $where["date_fin"] = " >= '{$date}'"; $where["user_id"] = " = '{$_user->_id}'";