$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);
示例#2
0
        $_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"));
示例#6
0
 * @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}'";