public function validatePeriod(&$content, Request $request) { if ($request->getParam('id_period')) { if ($request->getParam('start_period') and $request->getParam('end_period')) { $detail_jourdeb = explode("/", $request->getParam('start_period')); $detail_jourfin = explode("/", $request->getParam('end_period')); $formatdatevalid = false; if (isset($detail_jourdeb[0]) and isset($detail_jourdeb[1]) and isset($detail_jourdeb[2])) { if (isset($detail_jourfin[0]) and isset($detail_jourfin[1]) and isset($detail_jourfin[2])) { if (is_numeric($detail_jourfin[0]) and is_numeric($detail_jourfin[1]) and is_numeric($detail_jourfin[2])) { if (is_numeric($detail_jourdeb[0]) and is_numeric($detail_jourdeb[1]) and is_numeric($detail_jourdeb[2])) { $formatdatevalid = true; } } } } if ($formatdatevalid) { $jourdebut = $detail_jourdeb[2] . "-" . $detail_jourdeb[1] . "-" . $detail_jourdeb[0]; $jourfin = $detail_jourfin[2] . "-" . $detail_jourfin[1] . "-" . $detail_jourfin[0]; $heuredebut = "00:00:00"; $heurefin = "23:59:00"; $expdeb = explode(":", $heuredebut); $expfin = explode(":", $heurefin); // On insére ces dates en timestamp Unix GMT $debut_ts = gmmktime($expdeb[0], $expdeb[1], 0, $detail_jourdeb[1], $detail_jourdeb[0], $detail_jourdeb[2]); $fin_ts = gmmktime($expfin[0], $expfin[1], 0, $detail_jourfin[1], $detail_jourfin[0], $detail_jourfin[2]); $PeriodeCalendaire = new PeriodeCalendaire(); $PeriodeCalendaire->id = $request->getParam('id_period'); $PeriodeCalendaire->id_calendar = $PeriodeCalendaire->getCalendarID(); $PeriodeCalendaire->nom = $request->getParam('name_period'); $PeriodeCalendaire->debut_ts = $debut_ts; $PeriodeCalendaire->jourdebut = $jourdebut; $PeriodeCalendaire->heuredebut = $heuredebut; $PeriodeCalendaire->fin_ts = $fin_ts; $PeriodeCalendaire->jourfin = $jourfin; $PeriodeCalendaire->heurefin = $heurefin; $PeriodeCalendaire->periode_note = $request->getParam('periode_notes'); $PeriodeCalendaire->etabvacances = $request->getParam('type'); $PeriodeCalendaire->etabferme = $request->getParam('ouvert'); if ($PeriodeCalendaire->insertable()) { $success = $PeriodeCalendaire->update(); if ($success) { $debut = array(); $fin = array(); calendar::getFrontiersPeriodID($debut, $fin, $PeriodeCalendaire->id); $debut_periode = $debut[0]; $fin_periode = $fin[0]; $num_initial = $request->getParam('num_jour_initial'); $num_final = $request->getParam('num_jour_final'); header('Content-type: text/html;charset=utf-8;'); $content = '[{ "code": "success", "message": "mise à jour de la période effectuée", "new_start": "' . $debut_periode . '", "new_end": "' . $fin_periode . '", "old_start": "' . $num_initial . '", "old_end": "' . $num_final . '" }]'; } else { header('Content-type: text/html;charset=utf-8;'); $code = "error"; $message = "impossible de mettre à jour la période"; $content = '[{ "code": "' . $code . '", "message": "' . $message . '" }]'; } } else { header('Content-type: text/html;charset=utf-8;'); $code = "error"; $message = "Le chevauchement des périodes n'est pas possible"; $content = '[{ "code": "' . $code . '", "message": "' . $message . '" }]'; } } else { header('Content-type: text/html;charset=utf-8;'); $content = '[{ "code": "error", "message": "Le format des dates est non valide" }]'; } } } else { header('Content-type: text/html;charset=utf-8;'); $content = '[{ "code": "error", "message": "Aucune période transmise" }]'; } }