/**
  * @brief	Génération d'une alerte prédéfinie 
  * @param	int			$idMember	ID du membre concerné
  * @param	Schedule	$Schedule	Représente un rendez-vous 
  * @param	int			$idAlert	Numéro de l'alerte voulue
  * @return 	Void 
  *
  * Liste des possibilités pour @b $idAlert :
  * 	- 0 : alerte PATIENT pour ANNULATION du rendez-vous (à la demande du patient)
  * 	- 1 : alerte PATIENT pour ANNULATION et FACTURATION du rendez-vous (annulation à moins de 24h du rdv)
  * 	- 2 : alerte MEDECIN pour ANNULATION du rendez-vous
  * 	- 3 : alerte MEDECIN pour ANNULATION et FACTURATION du rendez-vous
  * 	- 4 : alerte PATIENT pour ANNULATION du rendez-vous (à le demande du médecin)
  * 	- 5 : alerte PATIENT pour CONFIRMATION du rendez-vous (par le médecin)
  * 	- 6 : alerte PATIENT pour CONFIRMATION de son rendez-vous, sans attente de confirmation du médecin
  * 	- 7 : alerte PATIENT pour PRISE EN COMPTE de son rendez-vous, avec attente de confirmation de la part du médecin
  * 	- 8 : alerte MEDECIN pour NOUVEAU Rendez-vous sans confirmation
  * 	- 9 : alerte MEDECIN pour NOUVEAU Rendez-vous avec confirmation
  * 	- 10 : alerte PATIENT demande à être PRATICIEN
  */
 public function generateAutomaticMessage($idMember, $Schedule, $idAlert)
 {
     $alert = new Alert();
     switch ($idAlert) {
         case 0:
             $title = "Annulation de votre rendez-vous";
             $alertMessage = 'Votre rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ' a bien été annulé.';
             break;
         case 1:
             $title = "Annulation de votre rendez-vous à moins de 24h";
             $alertMessage = 'Votre rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ' a été annulé dans les 24 heures qui le précèdent. Conformément aux conditions générales d\'utilisation, le rendez-vous peut vous être facturé au tarif réglementaire. Veuillez contacter votre praticien';
             break;
         case 2:
             $title = "Annulation de rendez-vous par le patient";
             $alertMessage = 'Le rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ' de M./Mme ' . $_SESSION['user']->getProfile('nom') . ' ' . $_SESSION['user']->getProfile('prénom') . ' a été annulé.';
             break;
         case 3:
             $title = "Annulation de rendez-vous par le patient à moins de 24h";
             $alertMessage = 'Le rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ' de M./Mme ' . $_SESSION['user']->getProfile('nom') . ' ' . $_SESSION['user']->getProfile('prénom') . ' a été annulé. Conformément aux conditions générales d\'utilisation, le rendez-vous pourra lui être facturé au tarif réglementaire.';
             break;
         case 4:
             $title = "Annulation de votre rendez-vous par le médecin";
             $alertMessage = 'Votre médecin, M./Mme ' . $_SESSION['user']->getProfile('nom') . ' ' . $_SESSION['user']->getProfile('prénom') . ' ne peut malheureusement pas confirmer votre rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ', en raison d\'un imprévu. Nous vous invitons à reconsulter son emploi du temps si vous souhaitez prendre un autre rendez-vous. Toutes nos excuses pour la gène occasionnée.';
             break;
         case 5:
             $title = "Confirmation de votre rendez-vous par le médecin";
             $alertMessage = 'Votre médecin, M./Mme ' . $_SESSION['user']->getProfile('nom') . ' ' . $_SESSION['user']->getProfile('prénom') . ' a bien confirmé votre rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart());
             break;
         case 6:
             $title = "Confirmation de votre rendez-vous";
             $alertMessage = 'Votre rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ' à bien été confirmé. Retrouvez les détails de vos rendez-vous sur votre page personnelle.';
             break;
         case 7:
             $title = "Attente de confirmation de votre rendez-vous";
             $alertMessage = 'Votre rendez-vous du ' . date("j-m à H:i", $Schedule->getDateStart()) . ' à bien été pris en compte. Vous serez informé(e) prochainement de la confirmation de votre rendez-vous par le médecin. Retrouvez les détails de vos rendez-vous sur votre page personnelle.';
             break;
         case 8:
             $title = "Nouveau rendez-vous";
             $alertMessage = 'Un nouveau rendez-vous a été pris par M./Mme ' . $_SESSION['user']->getProfile('nom') . ' ' . $_SESSION['user']->getProfile('prénom') . ' pour le ' . date("j-m à H:i", $Schedule->getDateStart()) . ' prochain.';
             break;
         case 9:
             $title = "Nouveau rendez-vous en attente de votre confirmation";
             $alertMessage = 'Un nouveau rendez-vous a été pris pas M./Mme ' . $_SESSION['user']->getProfile('nom') . ' ' . $_SESSION['user']->getProfile('prénom') . ' pour le ' . date("j-m à H:i", $Schedule->getDateStart()) . ' prochain. N\'oubliez pas de confirmer le rendez-vous sur votre page dédiée.';
             break;
     }
     if (isset($alertMessage)) {
         $alert->setMessage($alertMessage);
         $alert->setTitle($title);
         $alert->setIdMember($idMember);
         $this->add($alert);
     }
 }
 /** 
  * @brief	Ajoute un blocage à la base de données
  * @param 	Schedule	$block		Bloquage à enregistrer dans la base de données
  * @return	Error		Retourne une information avec le message de succès
  */
 public function addBlock($block)
 {
     $req = $this->bdd->prepare('INSERT INTO block_schedule (id_doctor, date_start, date_stop, note, recursion) VALUES (:idDoctor , :dstart, :dstop, :note, :recursion) ');
     $req->bindValue(':dstart', $block->getDateStart(), PDO::PARAM_STR);
     $req->bindValue(':dstop', $block->getDateStop(), PDO::PARAM_STR);
     $req->bindValue(':note', $block->getNote(), PDO::PARAM_STR);
     $req->bindValue(':idDoctor', $block->getIdDoctor(), PDO::PARAM_INT);
     $req->bindValue(':recursion', $block->getRecursion(), PDO::PARAM_INT);
     $req->execute();
     return new Error("Le blocage a été ajouté", "info");
 }
示例#3
0
            $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());
        $sc->setDateStart(strtotime($_POST['date-rdv'] . " " . $_POST['time-rdv'] . ":00"));
        $sc->setDateStop($sc->getDateStart() + $doctor->getRdvDuration() * 60);
        if ($doctor->getRdvConfirm() == 0) {
            $sc->setValidate(1);
        }
        if (isset($_POST['note'])) {
            $sc->setNote(Tools::secure($_POST['note']));
        }
        $dayStartHour = strtotime($_POST['date-rdv'] . " " . $doctor->getStartHour('h') . ":" . $doctor->getStartHour('m') . ":00");
        $result = SchedulesManager::instance()->getLastBlockedBlockHour($doctor->getIdMember(), $dayStartHour, $sc->getDateStart());
        $calage = abs($sc->getDateStart() - $result);
        $calage = $calage % ($doctor->getRdvDuration() * 60);
        if ($calage != 0) {
            $errors['rdv'] = new Error("Vous ne pouvez pas prendre un rendez-vous en dehors des heures fixées par le calendrier.");
        } else {
            $result = SchedulesManager::instance()->add($sc);
            if (Tools::getClass($result) == "Error") {