/** * @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"); }
if (get_class($previous) != "Schedule") { // pas trouvé de départ bloqué. On prend l'heure de démarrage de la journée $previous = new Schedule(); $temp = intval(date('i', $dayStartHour)); $previous->setDateStart($dayStartHour - $temp * 60); $previous->setDateStop($dayStartHour); } //$rdv[] = $previous; } $result = ""; $hourWidth = 800 / $nbrBlocks; //pixel - border * 2 $baseCalcul = $hourWidth / ($duration * 60); /** Au choix ici, on peut choisir de conserver l'organisation générale des créneaux ou s'adapter par rapport au dernier pris **/ //$dateStart = $dayStartHour + floor(($dateStart - $dayStartHour) / ($doctor->getRdvDuration() * 60)) * ($doctor->getRdvDuration() * 60); $dateStart = $previous->getDateStop() + floor(($dateStart - $previous->getDateStop()) / ($doctor->getRdvDuration() * 60)) * ($doctor->getRdvDuration() * 60); for ($i = 0; $i < $nbrBlocks; $i++) { if ($dateStart + $i * $duration * 60 + $duration * 60 <= $dayStartHour or $dateStart + $i * $duration * 60 + $duration * 60 > $dayEndHour) { continue; } $cur = $dateStart + $i * $duration * 60; //timestamp gauche du block courant $hour = date("H:i", $cur); //visuel uniquement $class = "selection-part-content-free"; $result .= "<div class='selection-part' style='width: " . $hourWidth . "px'>\n\t\t\t\t\t\t<div class='selection-part-hour'>" . $hour . "</div>\n\t\t\t\t\t\t<div class='selection-part-content " . $class . "' data-calendar-selection-date='" . date("Y-m-d", $cur) . "'>"; foreach ($rdv as $sched) { $left = 0; $width = 0; if ($sched->getDateStart() >= $cur and $sched->getDateStart() <= $cur + $duration * 60) { //le start est dans l'heure