Exemplo n.º 1
0
<?php

/**
 * Created by PhpStorm.
 * User: seekdasky
 * Date: 09/12/15
 * Time: 11:40
 */
require_once 'autoloader.php';
$rdv = new RDV();
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php 
var_dump(RDVRepo::isPossible("2015-12-20 13:40:00", 30, 60));
?>
</body>
</html>
Exemplo n.º 2
0
 public function getSVG($params)
 {
     // conversion du mois
     if (preg_match('/^(\\d{2})\\/(\\d{4})$/', $params['mois'], $m)) {
         $mois = $m[2] . '-' . $m[1];
     } else {
         $mois = '2015-12';
     }
     // constantes et début <SVG>
     $days = ['Mon' => 0, 'Tue' => 1, 'Wed' => 2, 'Thu' => 3, 'Fri' => 4, 'Sat' => 5, 'Sun' => 6];
     $svgCalendar = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n                        <!-- Created with PHP Maggle !!LAUUUULEU!! -->\n\n                        <svg\n                           xmlns:svg='http://www.w3.org/2000/svg'\n                           xmlns='http://www.w3.org/2000/svg'\n                           xmlns:xlink='http://www.w3.org/1999/xlink'\n                           version='1.1'\n                           width='80%'\n                           height='auto'\n                           viewbox='0 0 7700 7000'\n                           id='svg2'>\n                          <metadata\n                             id='metadata7'>\n                            <rdf:RDF>\n                              <cc:Work\n                                 rdf:about='>\n                                <dc:format>image/svg+xml</dc:format>\n                                <dc:type\n                                   rdf:resource='http://purl.org/dc/dcmitype/StillImage' />\n                                <dc:title>Calendar</dc:title>\n                              </cc:Work>\n                            </rdf:RDF>\n                          </metadata>\n                          ";
     $current = strtotime($mois);
     //on range les rendez-vous dans un tableau avec leur jour comme clé
     $RDVTemp = RDVRepo::getByMonth($current);
     $RDVs = [];
     foreach ($RDVTemp as $rdv) {
         if (!isset($RDVs[date('j', strtotime($rdv['DateRDV']))])) {
             $RDVs[date('j', strtotime($rdv['DateRDV']))] = [];
         }
         array_push($RDVs[date('j', strtotime($rdv['DateRDV']))], $rdv);
     }
     foreach (range(1, date('t', strtotime($params['mois']))) as $day) {
         //génération du SVG de la journée
         //selon si on a une date sur un ou deux chiffres, on adapte
         $date = strftime("%B   %Y", $current);
         if ($day >= 10) {
             $xDate = 1500;
         } else {
             $xDate = 1000;
         }
         //fond général + affichage de la date
         $svgCalendar .= '<g class="Day_' . $day . '">
             <!-- Case du jour -->
             <rect
                width="7700"
                height="7000"
                x="0"
                y="0"
                class="backgroundDay_' . $day . '"
                style="fill:#fff;fill-opacity:1;stroke:none" />
             
             <!-- Numéro du jour -->
             <text
                x="300"
                y="1000"
                class="TextDay_' . $day . '"
                xml:space="preserve"
                style="font-size:750px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee">
                    <tspan
                      x="300"
                      y="1000"
                      class="TextSpanDay_' . $day . '">' . $day . '
                    </tspan>
             </text>
             
             <!-- Texte du jour -->
             <text
                x="' . $xDate . '"
                y="1000"
                class="TextMonthDay_' . $day . '"
                xml:space="preserve"
                style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                  x="' . $xDate . '"
                  y="1000"
                  class="TextSpanMonthDay_' . $day . '">' . $date . '
                 </tspan>
             </text>
         ';
         //on défini le tableau si jamais
         if (!isset($RDVs[$day])) {
             $RDVs[$day] = [];
         }
         //on parcours les consultations du jour pour les afficher
         foreach ($RDVs[$day] as $key => $rdv) {
             $patient = PatientRepo::getById(intval($rdv['Patient_Id']));
             $medecin = MedecinRepo::getById(intval($rdv['Medecin_id']));
             //couleur suivant le nombre de consultation
             $color = $key % 2 == 0 ? 'f9f9f9' : 'ececec';
             //du svg blablabla
             $yConsult = 1500 + 700 * $key;
             $svgCalendar .= '<g
                class="ConsultationGroupDay' . $day . 'Consult' . $key . '"
                data-patient="' . $rdv['Patient_Id'] . '"
                data-medecin="' . $rdv['Medecin_id'] . '">
               <rect
                  width="7000"
                  height="700"
                  x="300"
                  y="' . $yConsult . '"
                  class="ConsultationBackgroundDay' . $day . 'Consult' . $key . '"
                  style="fill:#' . $color . ';fill-opacity:1;stroke:none" />
               <text x="400" y="' . $yConsult . '"
                  class="ConsultationTextHourDay' . $day . 'Consult' . $key . '"
                  xml:space="preserve"
                  style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                     x="400" y="' . ($yConsult + 500) . '"
                     class="ConsultationTextSpanHourDay' . $day . 'Consult' . $key . '">' . date('G:i', strtotime($rdv['DateRDV'])) . '</tspan></text>
               <g
                  id="g5136">
                 <text
                    x="6100"
                    y="' . ($yConsult + 500) . '"
                    id="text5084"
                    xml:space="preserve"
                    style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                      x="6100"
                      y="' . ($yConsult + 500) . '"
                      id="tspan5086">' . $rdv['Minute'] . 'mn</tspan></text>
                 <g
                    id="g5224">
                   <text
                      x="2500"
                      y="' . ($yConsult + 270) . '"
                      id="text5072"
                      xml:space="preserve"
                      style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                        x="2500"
                        y="' . ($yConsult + 270) . '"
                        id="tspan5074">' . $medecin['Prenom'] . '</tspan></text>
                   <text
                      x="3800"
                      y="' . ($yConsult + 270) . '"
                      id="text5186"
                      xml:space="preserve"
                      style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                        x="3800"
                        y="' . ($yConsult + 270) . '"
                        id="tspan5188"
                        style="font-size:250;fill:#4d4d4d;fill-opacity:1">' . $medecin['Nom'] . '</tspan></text>
                 </g>
                 <g
                    id="g5230">
                   <text
                      x="2500"
                      y="' . ($yConsult + 600) . '"
                      id="text5080"
                      xml:space="preserve"
                      style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                        x="2500"
                        y="' . ($yConsult + 600) . '"
                        id="tspan5082">' . $patient['Prenom'] . '</tspan></text>
                   <text
                      x="3800"
                      y="' . ($yConsult + 600) . '"
                      id="text5194"
                      xml:space="preserve"
                      style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                        x="3800"
                        y="' . ($yConsult + 600) . '"
                        id="tspan5196">' . $patient['Nom'] . '</tspan></text>
                 </g>
             </g>';
         }
         $svgCalendar .= '</g></g>';
     }
     //on met u fond (sinon on voit les consultation en arrière plan)
     $svgCalendar .= '</g></g><g class="Calendar">';
     $svgCalendar .= '<rect
                            width="7700"
                            height="6000"
                            x="0"
                            y="0"
                            class="BackgroundCalendar"
                            style="fill:#fff";fill-opacity:1;stroke:none" />';
     //position x;y de base des jours du calendrier
     $x = 1100 * $days[date('D', $current)];
     $y = 0;
     //initialisation de variables
     $cal = [];
     $week = [];
     //obligé de séparer la génération des consultation et du calendrier pour organiser le svg
     foreach (range(1, date('t', strtotime($params['mois']))) as $day) {
         //génération du svg du calendrier
         $day = date('D', $current);
         $day_nbr = date('d', $current);
         $week[$days[$day]] = date('d', $current);
         $current = strtotime("+1 day", $current);
         if ($y / 1100 % 2 == 0) {
             if ($days[$day] % 2 == 0) {
                 $color = 'f0f0f0';
             } else {
                 $color = 'fff';
             }
             $svgCalendar .= '<rect
                            width="1000"
                            height="1000"
                            ry="90"
                            x="' . $x . '"
                            y="' . $y . '"
                            class="day_' . $days[$day] . '"
                            style="fill:#' . $color . ';fill-opacity:1;stroke:none" />';
         } else {
             if ($days[$day] % 2 != 0) {
                 $color = 'f0f0f0';
             } else {
                 $color = 'fff';
             }
             $svgCalendar .= '<rect
                            width="1000"
                            height="1000"
                            ry="90"
                            x="' . $x . '"
                            y="' . $y . '"
                            class="day_' . $days[$day] . '"
                            style="fill:#' . $color . ';fill-opacity:1;stroke:none" />';
         }
         $svgCalendar .= '<text
                        x="' . ($x - 700) . '"
                        y="' . ($y + 1100 - 700) . '"
                        class="Textday_' . $days[$day] . '"
                        xml:space="preserve"
                        style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan
                          x="' . ($x + 260) . '"
                          y="' . ($y + 1100 - 470) . '"
                          class="TextDay_' . $days[$day] . '">' . $day_nbr . '</tspan></text>';
         $x += 1100;
         if ($days[$day] == 6) {
             $i = 0;
             array_push($cal, $week);
             $week = [];
             $y += 1100;
             $x = 0;
         }
     }
     $svgCalendar .= '</g>';
     echo $svgCalendar;
 }
Exemplo n.º 3
0
						
						<!-- <input type='hidden' name='command' value='RDV:getSVG'> -->

						<input type='submit' value='Affiner'>

					</form></div>

					<!-- HERE COMES THE SVG -->
					<div id='calendar'><?php 
$rdv = new RDV();
if ($moisOpt != null && preg_match('/^(\\d{2})\\/(\\d{4})$/', $moisOpt, $m)) {
    $mois = $m[1];
    $annee = $m[2];
    // $rdv->getSVG(['mois'=>$moisOpt]);
    // on affiche les consutations en fonction de l'affinage
    foreach (RDVRepo::getForMonth($mois, $annee) as $RDV) {
        // affinage par médecin
        if ($medecinOpt == null || $medecinOpt == $RDV['Medecin_Id']) {
            if ($patientOpt == null || $patientOpt == $RDV['Patient_Id']) {
                echo "<div class='RDV'>";
                /* MODIFICATION */
                echo "<form action='managers/' method='POST'>";
                echo "<input type='text' class='jour' name='jour' value='" . date('d/m/Y', strtotime($RDV['DateRDV'])) . "'>";
                echo "<input type='text' class='heure' name='heure' value='" . date('H:i', strtotime($RDV['DateRDV'])) . "'>";
                echo "<input type='text' class='duree' name='Duree' value='" . date('H:i', strtotime($RDV['Duree'])) . "'>";
                echo "<input type='text' readonly class='Medecin' value='Medecin: " . $RDV['M_Prenom'] . " " . $RDV['M_Nom'] . "'>";
                echo "<input type='text' readonly class='Patient' value='Patient: " . $RDV['P_Prenom'] . " " . $RDV['P_Nom'] . "'>";
                echo "<input type='hidden' name='id_consultation' value='" . $RDV['Id'] . "'>";
                echo "<input type='hidden' name='command' value='RDV:update'>";
                echo "<input type='submit' value=''>";
                echo "</form>";
Exemplo n.º 4
0
<?php

/**
 * Created by PhpStorm.
 * User: seekdasky
 * Date: 03/12/15
 * Time: 11:52
 */
require_once 'autoloader.php';
$jsonP = json_decode(file_get_contents('Docs/PatientExemple.json'), true);
$jsonM = json_decode(file_get_contents('Docs/MedecinExemple.json'), true);
$jsonR = json_decode(file_get_contents('Docs/RDVExemple.json'), true);
var_dump(StaticRepo::testConnexion());
$repo = new PatientRepo();
$repoM = new MedecinRepo();
foreach ($jsonM as $patient) {
    $repoM->add($patient['Civilite'], $patient['Prenom'], $patient['Nom']);
}
foreach ($jsonP as $patient) {
    $repo->add($patient['Civilite'], $patient['Prenom'], $patient['Nom'], $patient['Adresse'], NULL, $patient['Ville'], $patient['CodePostal'], $patient['DateNaissance'], $patient['LieuNaissance'], $patient['NumSecuriteSociale'], $patient['MedecinTraitant']);
}
foreach ($jsonR as $rdv) {
    RDVRepo::add($rdv['DateRDV'], $rdv['Duree'], $rdv['Patient_Id'], $rdv['Medecin_Id']);
}