Beispiel #1
0
    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" 
					}]';
        }
    }