public function update(Ue $ue, UeRequest $request) { if (!Helpers::isAdmin()) { return redirect('/'); } $choix_precedents = $ue->parcours_ues()->get(); $ue->update($request->all()); $liste_parcours = Parcours::all(); $parcours_ue = []; foreach ($liste_parcours as $parcours) { $statut = $request->get('statut' . $parcours->id); $nbmin = $request->get('nbmin' . $parcours->id); $nbmax = $request->get('nbmax' . $parcours->id); if ($statut == 2 && $choix_precedents->contains('parcours_id', $parcours->id)) { // C'est une suppression de parcours_ue $ue->parcours_ues()->where('parcours_id', $parcours->id)->delete(); Choix::parUe($ue->id)->delete(); $parc_ue = $choix_precedents->where('parcours_id', $parcours->id)->first(); } if ($statut != 2 && !empty($nbmin) && !empty($nbmax)) { if ($choix_precedents->contains('parcours_id', $parcours->id)) { // C'est une mise à jour de parcours_ue $parc_ue = $choix_precedents->where('parcours_id', $parcours->id)->first(); if ($parc_ue->statut != $statut || $parc_ue->nbmin != $nbmin || $parc_ue->nbmax != $nbmax) { Parcours_ue::where('parcours_id', $parcours->id)->where('ue_id', $ue->id)->update(['est_optionnel' => $statut, 'nbmin' => $nbmin, 'nbmax' => $nbmax]); } } else { // C'est une création de parcours_ue $parc_ue = new Parcours_ue(); $parc_ue->parcours_id = $parcours->id; $parc_ue->est_optionnel = $statut; $parc_ue->nbmin = $nbmin; $parc_ue->nbmax = $nbmax; array_push($parcours_ue, $parc_ue); } } $ue->parcours_ues()->saveMany($parcours_ue); } return redirect('admin/ue'); }
public function getNbMaxParParcours($ue_id, $parcours_id) { return Parcours_ue::where('ue_id', $ue_id)->where('parcours_id', $parcours_id)->first()->nbmax; }