format('Y-m-d') . ' ' . $params['heure'] . ':00', $params['duree'], $params['id_patient'], $params['id_medecin']) !== FALSE) { if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ){ Response::quickResponse(200, json_encode([ 'status' => 'success', 'title' => 'Création effectuée!', 'message' => 'La consultation du '.$params['date']->format('d/m/Y').' à '.$params['heure'].' a bien été créée.' ])); }else{ $response = new Response(); $response->setHeader('Location',"http://".$_SERVER['HTTP_HOST']."/Consultations.php?type=creation"); $response->send(); } }else{ if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ){ Response::quickResponse(200, json_encode([ 'status' => 'error', 'title' => 'Erreur de création!' ])); }else{ $response->send(); $response = new Response(); $response->setHeader('Location',"http://".$_SERVER['HTTP_HOST']."/Consultations.php?type=error"); } } }else{ if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ){ Response::quickResponse(200, json_encode([ 'status' => 'error', 'title' => 'Erreur de paramètre', 'message' => 'Date incorrecte' ])); }else{ $response = new Response(); $response->setHeader('Location',"http://".$_SERVER['HTTP_HOST']."/Consultations.php?type=error"); $response->send(); } } } public function delete($params){ if(RDVRepo::delete($params['id_consultation']) !== FALSE){ $_status = 'success'; $_title = 'Suppression effectuée!'; $_message = 'La consultation a bien été supprimée.'; if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) Response::quickResponse(200, json_encode([ 'status' => $_status, 'title' => $_title, 'message' => $_message ])); else{ $response = new Response(); $response->setHeader('Location', 'http://'.$_SERVER['HTTP_HOST'].'/Consultations.php?status='.$_status.'&title='.$_title.'&message='.$_message); $response->send(); } }else{ $_status = 'error'; $_title = 'Erreur lors de la suppression!'; $_message = 'La suppression de la consultation a échoué!'; if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) Response::quickResponse(200, json_encode([ 'status' => $_status, 'title' => $_title, 'message' => $_message ])); else{ $response = new Response(); $response->setHeader('Location', 'http://'.$_SERVER['HTTP_HOST'].'/Consultations.php?status='.$_status.'&title='.$_title.'&message='.$_message); } } } public function update($params){ // si params ok if( StaticRepo::checkParam($params['id_consultation'], 'Numeric') && StaticRepo::checkParam($params['jour'], 'Date') && StaticRepo::checkParam($params['heure'], 'Heure') && StaticRepo::checkParam($params['Duree'], 'Heure') ){ $params['date'] = DateTime::createFromFormat('d/m/Y H:i', $params['jour'].' '.$params['heure']); $params['dureeTime'] = $params['Duree'].':00'; // var_dump($params['dureeTime']); if (RDVRepo::updateDateTime($params['id_consultation'], $params['date']->format('Y-m-d H:i:00'), $params['dureeTime'] ) !== FALSE) { $_status = 'success'; $_title = 'Modification effectuée!'; $_message = 'La consultation du '.$params['date']->format('d/m/Y').' à '.$params['heure'].' a bien été mise à jour.'; if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) Response::quickResponse(200, json_encode([ 'status' => $_status, 'title' => $_title, 'message' => $_message ])); else{ $response = new Response(); $response->setHeader('Location', 'http://'.$_SERVER['HTTP_HOST'].'/Consultations.php?status='.$_status.'&title='.$_title.'&message='.$_message); $response->send(); } }else{ $_status = 'error'; $_title = 'Erreur lors de la modifiction!'; $_message = 'La consultation n\'a pas pu être modifiée!'; if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) Response::quickResponse(200, json_encode([ 'status' => $_status, 'title' => $_title, 'message' => $_message ])); else{ $response = new Response(); $response->setHeader('Location', 'http://'.$_SERVER['HTTP_HOST'].'/Consultations.php?status='.$_status.'&title='.$_title.'&message='.$_message); $response->send(); } } }else{ $_status = 'error'; $_title = 'Erreur de paramètre!'; $_message = 'Date Incorrecte!'; if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) Response::quickResponse(200, json_encode([ 'status' => $_status, 'title' => $_title, 'message' => $_message ])); else{ $response = new Response(); $response->setHeader('Location', 'http://'.$_SERVER['HTTP_HOST'].'/Consultations.php?status='.$_status.'&title='.$_title.'&message='.$_message); $response->send(); } } } public function getConsultationsForMonth($month){ // conversion du mois if( preg_match('/^(\d{2})\/(\d{4})$/', $month, $m) ){ $mois = $m[1]; $annee = $m[2]; }else{ $mois = '12'; $annee = '2015'; } /* RECHERCHE REUSSIE */ if( ($rdvList=RDVRepo::getForMonth($mois, $annee)) !== FALSE ){ foreach($rdvList as $RDV){ var_dump($RDV); } }else{ echo "error"; } } 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 $days = ['Mon'=>0,'Tue'=>1,'Wed'=>2,'Thu'=>3,'Fri'=>4,'Sat'=>5,'Sun'=>6]; $svgCalendar = " Calendar "; $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 .= ' ' . $day . ' ' . $date . ' '; //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 .= ' ' . date('G:i', strtotime($rdv['DateRDV'])) . ' ' . $rdv['Minute'] . 'mn ' . $medecin['Prenom'] . ' ' . $medecin['Nom'] . ' ' . $patient['Prenom'] . ' ' . $patient['Nom'] . ' '; } $svgCalendar .= ''; } //on met u fond (sinon on voit les consultation en arrière plan) $svgCalendar .= ''; $svgCalendar.=''; //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.=''; }else{ if($days[$day] % 2 != 0){$color='f0f0f0';}else{$color='fff';} $svgCalendar.=''; } $svgCalendar.=''.$day_nbr.''; $x+=1100; if($days[$day] == 6){ $i=0; array_push($cal,$week); $week = []; $y+=1100; $x=0; } } $svgCalendar .= ''; echo $svgCalendar; } }