/** 
  * @brief	Retourne l'instance de la classe et permet d'instancier un DoctorsManager si c'est le premier appel.
  * @return	DoctorsManager		Retourne l'instance de la classe DoctorsManager
  */
 public static function instance()
 {
     if (self::$instance == null) {
         self::$instance = new DoctorsManager();
     }
     return self::$instance;
 }
<?php

defined("_nova_district_token_") or die('');
//RECUPERATION DE LA RECHERCHE
if (isset($_POST['search-doctorname']) and $_POST['search-doctorname'] != "") {
    $doctor_result = DoctorsManager::instance()->searchByName($_POST['search-doctorname']);
    if (count($doctor_result) == 0) {
        $error = new Error('Aucun médecin trouvé à ce nom');
        $errors['admin_doctors'] = $error;
    }
}
//ENVOI D'UN MSG
if (isset($_POST['message_to_user']) and isset($_GET['msg_id'])) {
    $message = AdminManager::instance()->sendMessage($_GET['msg_id'], $_POST['message_to_user']);
    $errors["msg-admin-members"] = $message;
}
//CHANGEMENT DE STATUT
if (isset($_GET['id']) and isset($_GET['idmed']) and isset($_POST['status'])) {
    $statusChange = AdminManager::instance()->changeStatus($_GET['id'], $_POST['status'], $_GET['idmed']);
    if (Tools::getClass($statusChange) == "Error") {
        $errors["status_change"] = $statusChange;
    }
}
//RECUPERATION DES DEMANDES EN COURS
$future_doctor_result = AdminManager::instance()->searchAllFutureDoctors();
if (Tools::getClass($future_doctor_result) == "Error") {
    $errors["admin_future_doctors"] = $future_doctor_result;
}
//inclusion de la vue correspondante
include dirname(__FILE__) . '/../../views/modules/admin-practicians.php';
예제 #3
0
<?php

defined("_nova_district_token_") or die('');
$medCat = DoctorsManager::instance()->getMedicines();
$categories = "";
foreach ($medCat as $cat) {
    if (isset($_POST['rechsp']) and $_POST['rechsp'] == $cat['id_medicine']) {
        $categories .= '<option value="' . $cat['id_medicine'] . '" selected="selected" >' . $cat['medicine_name'] . '</option>';
    } else {
        $categories .= '<option value="' . $cat['id_medicine'] . '">' . $cat['medicine_name'] . '</option>';
    }
}
$departmentSelected = "";
if (isset($_POST['department']) and $_POST['department'] == "on") {
    $departmentSelected = "checked";
}
$nameSearch = "";
if (isset($_POST['searchname']) and $_POST['searchname'] != "") {
    $nameSearch = Tools::secure($_POST['searchname']);
}
?>
<script type='text/javascript'>
$(document).ready(function() {
	$("#recherche-name").submit(App.Form.check);
	$("#recherche-speciality").submit(App.Form.check);
});
</script>

<div class="content-block" id='recherche'>
	<h2 class='h2-block-grey'>Trouver un médecin pour prendre un rendez-vous</h2>
	<div id="recherche-doc">
예제 #4
0
<?php

defined("_nova_district_token_") or die('');
$docProfile = '<span class="profile-empty"' . $_SESSION['user']->getProfile('médecin généraliste') . '</span>';
if ($_SESSION['user']->getIdGeneralist()) {
    $doctor = DoctorsManager::instance()->getDoctor($_SESSION['user']->getIdGeneralist());
    if (Tools::getClass($doctor) == "Doctor") {
        $docProfile = '<a href="index.php?p=booking&doctor=' . $_SESSION['user']->getIdGeneralist() . '">' . ucfirst($doctor->getProfile('nom')) . ' ' . ucfirst($doctor->getProfile('prénom')) . '</a>';
    }
}
?>
<div id='small-profile'>
	<div class='center'>
		<div id='small-profile-left'>
			<img src='img/<?php 
echo $_SESSION['user']->getProfile('sexe');
?>
_icon.jpg' alt=''/>
			<div class="custom-button-orange custom-button">
				<a href="index.php?p=profile">Mon profil</a>
			</div>
		</div>
		<div id='small-profile-right'>
			<h2><?php 
echo ucfirst($_SESSION['user']->getProfile('nom')) . " " . ucfirst($_SESSION['user']->getProfile('prénom'));
?>
</h2>
			<dl>
				<dt>Nom</dt><dd><?php 
echo ucfirst($_SESSION['user']->getProfile('nom'));
?>
예제 #5
0
<?php

defined("_nova_district_token_") or die('');
//token 2
$_SESSION['token2'] = $_SESSION['token'];
$registersMembers = UsersManager::instance()->countMembers();
$registersDoctors = DoctorsManager::instance()->countDoctors();
//On inclut la vue
include dirname(__FILE__) . '/../views/footer.php';
예제 #6
0
<?php

defined("_nova_district_token_") or die('');
//VERIFICATION DE L'URL & RECUPERATION DU DOCTEUR
$calendrier = "";
if (isset($_GET['doctor']) and is_numeric($_GET['doctor'])) {
    $doctor = DoctorsManager::instance()->getDoctor(intval($_GET['doctor']));
    if (Tools::getClass($doctor) == "Doctor") {
        if (isset($_GET['start'])) {
            if (preg_match("#[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}#", $_GET['start'])) {
                // forme dd-mm-yyyy : index.php?p=booking&start=18-05-2014
                $tmp = explode("-", $_GET['start']);
                $dateStart = new DateTime();
                $dateStart->setDate(intval($tmp[0]), intval($tmp[1]), intval($tmp[2]));
            }
        }
        if (!isset($_GET['start']) or !isset($dateStart)) {
            $dateStart = new DateTime(date("Y-m-d H:i:s"));
        }
    } else {
        Tools::redirect("home");
    }
} else {
    Tools::redirect("home");
}
//PRISE D'UN RENDEZ-VOUS
if (isset($_POST['date-rdv']) and isset($_POST['time-rdv']) and isset($_POST['tk']) and $_POST['tk'] == $_SESSION['token2'] and $_SESSION['user']->getIdMember() != $_GET['doctor']) {
    if (Tools::checkDate($_POST['date-rdv']) and Tools::checkTime($_POST['time-rdv']) and isset($_POST['valid-rdv'])) {
        $sc = new Schedule();
        $sc->setIdDoctor($doctor->getIdMember());
        $sc->setIdMember($_SESSION['user']->getIdMember());
예제 #7
0
defined("_nova_district_token_") or die('');
if (isset($_POST['form-horaires'])) {
    if (isset($_POST['hdebut']) and isset($_POST['hfin']) and isset($_POST['dureerdv'])) {
        if (Tools::checkTime($_POST['hdebut']) and Tools::checkTime($_POST['hfin']) and is_numeric($_POST['dureerdv'])) {
            $_SESSION['user']->setRdvDuration($_POST['dureerdv']);
            $_SESSION['user']->setStartHour($_POST['hdebut']);
            $_SESSION['user']->setEndHour($_POST['hfin']);
            if (isset($_POST['confirmrdv'])) {
                $_SESSION['user']->setRdvConfirm(1);
            } else {
                $_SESSION['user']->setRdvConfirm(0);
            }
            // METTRE A JOUR les informations dans la BDD : on récupère un objet de type ERROR
            $errors['gestion-edit'] = DoctorsManager::instance()->updateProfile($_SESSION['user']);
        } else {
            $errors['gestion-horaires'] = new Error("Veuillez indiquer une heure ou durée de RDV correcte (en minutes, ex: 20)");
        }
    }
} else {
    if (isset($_POST['form-infopro'])) {
        if (isset($_POST['infopro'])) {
            //	$_SESSION['user']->setInfoPro(Tools::secure($_POST['infopro']);
            $_SESSION['user']->setInfoPro($_POST['infopro']);
            // METTRE A JOUR les informations dans la BDD : on récupère un objet de type ERROR
            $errors['gestion-infopro'] = DoctorsManager::instance()->updateProfile($_SESSION['user']);
        }
    }
}
//vue
include dirname(__FILE__) . '/../../views/modules/gestion-config.php';
 require_once "../../../models/SchedulesManager.class.php";
 require_once "../../../models/DoctorsManager.class.php";
 require_once "../../../models/Schedule.class.php";
 setlocale(LC_TIME, 'fr_FR');
 date_default_timezone_set('Europe/Paris');
 //vars
 $doc = intval($_GET['doctor']);
 $dateStart = intval($_GET['dateStart']);
 //TS du départ de l'heure cliquée
 $hourStart = intval($_GET['hourStart']);
 //heure en STRING de l'heure cliquée (info uniquement)
 $dayStartHour = intval($_GET['dayStartHour']);
 // heure de démarrage de la journée !
 $dayEndHour = intval($_GET['dayEndHour']);
 // heure de fin de la journée !
 $doctor = DoctorsManager::instance()->getDoctor($doc);
 if (get_class($doctor) != "Doctor") {
     die($doc . " Une erreur est survenue : " . $doctor->getMessage());
 }
 $duration = $doctor->getRdvDuration();
 //en minutes (int)
 $nbrBlocks = ceil(60 / $duration) + 2;
 $blocked = SchedulesManager::instance()->getBlockSchedule($doctor, $dateStart, $dateStart + $nbrBlocks * $duration * 60);
 $rdv = SchedulesManager::instance()->getSchedule($doctor, $dateStart, $dateStart + $nbrBlocks * $duration * 60);
 $rdv = array_merge($rdv, $blocked);
 //récupération du DERNIER RDV ou BLOCKED précédent l'heure de départ (ou à cheval) pour se baser dessus pour le découpage des créneaux
 $found = false;
 foreach ($rdv as $sched) {
     if ($sched->getDateStart() == $dateStart) {
         //le start est pile au début
         $found = true;
예제 #9
0
<?php

defined("_nova_district_token_") or die('');
if (isset($_POST['searchname']) and Tools::checkName($_POST['searchname'])) {
    $docsearch = DoctorsManager::instance()->searchByName($_POST['searchname']);
} else {
    if (isset($_POST['rechsp'])) {
        $departement = null;
        if (isset($_POST['department']) and !isset($_POST['closest']) and $_SESSION['user']->getProfile("code postal") != "Non renseigné") {
            $departement = substr($_SESSION['user']->getProfile("code postal"), 0, 2);
        }
        $docsearch = DoctorsManager::instance()->searchBySpeciality($_POST['rechsp'], $departement);
    } else {
        $docsearch = "<div><p>Aucun résultat...</p></div>";
    }
}
//On inclut la vue
include dirname(__FILE__) . '/../views/search.php';