/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(schoolYearsRequest $request) { $tableau = explode('-', $request->ann_scol); $year1 = $tableau[0]; $year2 = $tableau[1]; $yearNow = Carbon::now()->year; $year_prec = Carbon::now()->year - 1; $year_next = Carbon::now()->year + 1; if ($year1 > $yearNow && $year2 > $year_next) { return redirect()->back()->withErrors("Désolé vous ne pouvez pas ajouter cette année scolaire en ce moment !"); } $ann_scol = $request->ann_scol; $trim_semis = $request->TrimSemis; $champ1start = Carbon::parse($request->champ1start); $champ1end = Carbon::parse($request->champ1end); $champ2start = Carbon::parse($request->champ2start); $champ2end = Carbon::parse($request->champ2end); if (!is_null($request->champ3start) && !is_null($request->champ3end)) { $champ3start = Carbon::parse($request->champ3start); $champ3end = Carbon::parse($request->champ3end); } // vérifier l'enchainement semistrielle if ($trim_semis == 'Semis') { if ($champ1start < $champ1end && $champ1end < $champ2start && $champ2start < $champ2end && $champ1start->diffInMonths($champ2end) >= 8 && $champ1start->year == $year1 && $champ2end->year == $year2) { } else { return redirect()->back()->withErrors("l'enchainement des dates est incorrect\n ou durée totale est moins de 8 mois\n ou Correspondance avec l'année scolaire est incorrecte "); } } // vérifier l'enchainement trimistrielle if ($trim_semis == 'Trim') { if ($champ1start < $champ1end && $champ1end < $champ2start && $champ2start < $champ2end && $champ2end < $champ3start && $champ3start < $champ3end && $champ1start->diffInMonths($champ3end) >= 8 && $champ1start->year == $year1 && $champ3end->year == $year2) { } else { return redirect()->back()->withErrors("l'enchainement des dates est\n incorrect ou durée totale est moins de 8 mois ou\n Correspondance avec l'année scolaire est incorrecte"); } } // early inscription for Next Year if (Carbon::now()->month >= 1 && $year1 == $yearNow && $year2 == $year_next && $champ1start->month == 9 || $champ1start->month == 10) { // si trouvé une mise à jour $sc_year = SchoolYear::where('user_id', \Auth::user()->id)->where('ann_scol', $ann_scol)->first(); if ($sc_year) { $sc_year->startch1 = $champ1start; $sc_year->endch1 = $champ1end; $sc_year->startch2 = $champ2start; $sc_year->endch2 = $champ2end; if ($trim_semis == 'Trim') { $sc_year->startch3 = $champ3start; $sc_year->endch3 = $champ3end; } else { $sc_year->startch3 = null; $sc_year->endch3 = null; } $sc_year->type = $trim_semis; $sc_year->current = 0; $sc_year->save(); } else { // créer l'année scolaire pour l'année prochaine $sc = new SchoolYear(); $sc->ann_scol = $ann_scol; $sc->type = $trim_semis; $sc->startch1 = $champ1start; $sc->endch1 = $champ1end; $sc->startch2 = $champ2start; $sc->endch2 = $champ2end; $sc->current = 0; if ($trim_semis == 'Trim') { $sc->startch3 = $champ3start; $sc->endch3 = $champ3end; } $sc->user_id = \Auth::user()->id; $sc->save(); Grade::AddGradesAndLevels(\Auth::user()->id, $sc->id); } } if ($year1 == $year_prec && $year2 == $yearNow && Carbon::now()->month <= 6) { $sc_year = SchoolYear::where('user_id', \Auth::user()->id)->where('ann_scol', $ann_scol)->first(); if ($sc_year) { $sc_year->startch1 = $champ1start; $sc_year->endch1 = $champ1end; $sc_year->startch2 = $champ2start; $sc_year->endch2 = $champ2end; if ($trim_semis == 'Trim') { $sc_year->startch3 = $champ3start; $sc_year->endch3 = $champ3end; } else { $sc_year->startch3 = null; $sc_year->endch3 = null; } $sc_year->type = $trim_semis; $sc_year->save(); } else { $sc = new SchoolYear(); $sc->ann_scol = $ann_scol; $sc->type = $trim_semis; $sc->startch1 = $champ1start; $sc->endch1 = $champ1end; $sc->startch2 = $champ2start; $sc->endch2 = $champ2end; $sc->current = 1; if ($trim_semis == 'Trim') { $sc->startch3 = $champ3start; $sc->endch3 = $champ3end; } $sc->user_id = \Auth::user()->id; $sc->save(); if ($sc->id) { Grade::AddGradesAndLevels(\Auth::user()->id, $sc->id); } /* if ($sc->id) { $forCurrentYear = SchoolYear::where('user_id', \Auth::user()->id) ->get(); foreach ($forCurrentYear as $ok) { $yes = SchoolYear::where('user_id', \Auth::user()->id) ->where('id', '!=', $sc->id)->first(); if ($yes) { $yes->current = 0; $yes->save(); } } }*/ } } return redirect()->back()->with('success', 'Bien Enregistrés'); }