Laravel 5

Bien planifier les séances de moto et des entretiens de moto

  • Avatar de Soufiane1
    Membre depuis :
    09/03/2019
    Messages :
    19

    Bonjour,

    Je suis bloqué sur un problème.
    Lorsque je planifie un entrainement le 10/09/2019

    My soucis est que losque je planifie une revision (un entretien) par exemple le 09/09/2019 au 11/09/2019.
    Je peux ajouter un enregistrement, j'aimerais mieux gérer ce bloquant, étant donné que la moto est sensé être en séance d'entrainement.

    Voici une idée de mon Controller Training


    public function store(Request $request)
    {
    $request->validate([
    'date_seance' => 'required',
    'hour_start' => 'required',
    'hour_end' => 'required',
    'fk_motorbike' => 'required',
    'fk_former' => 'required',
    'fk_student' => 'required'

    ]);

    $date_start = $request->get('date_seance');
    $hour_start = $request->get('hour_start');
    $hour_end = $request->get('hour_end');
    $fk_motorbike = $request->get('fk_motorbike');
    $fk_former = $request->get('fk_former');

    $conflictTraining = Training::where('fk_motorbike', $fk_motorbike)
    ->whereDate('date_seance', "=" , $date_start)
    ->where('hour_start', "<=" , $request->get('hour_start'))
    ->where('hour_end', ">=" , $request->get('hour_end'))
    ->where('fk_former', $request->get('fk_former'))
    ->first();

    $conflictRevision = Revision::where('fk_motorbike', $fk_motorbike)
    ->whereDate('date_revision_start', "<=" , $date_start)
    ->whereDate('date_revision_end', ">=", $date_start)
    ->where('hour_start', "<=" , $request->get('hour_start'))
    ->where('hour_end', ">=" , $request->get('hour_end'))
    ->first();

    $conflictFormer = Training::where('fk_former', $fk_former)
    ->whereDate('date_seance', "=" , $date_start)
    ->where('hour_start', "<=" , $request->get('hour_start'))
    ->where('hour_end', ">=" , $request->get('hour_end'))
    ->first();

    $conflictMotorbike = Training::where('fk_motorbike', $fk_motorbike)
    ->whereDate('date_seance', "=" , $date_start)
    ->where('hour_start', "<=" , $request->get('hour_start'))
    ->where('hour_end', ">=" , $request->get('hour_end'))
    ->first();

    if(isset($conflictTraining)){
    return redirect()->route('trainings.index')
    ->with('error', 'Duplicate ! ');
    }

    if(isset($conflictRevision)){
    return redirect()->route('trainings.index')
    ->with('error', 'The motorbike is in revision! ');
    }

    if(isset($conflictFormer)){
    return redirect()->route('trainings.index')
    ->with('error', 'Duplicate former ! ');
    }

    if(isset($conflictMotorbike)){
    return redirect()->route('trainings.index')
    ->with('error', 'Duplicate motorbik ! ');
    }

    else{
    Training::create($request->all());
    return redirect()->route('trainings.index')
    ->with('success', 'Add');
    }

    }

    Merci pour votre aide.

  • Avatar de CinquièmeDimension
    Membre depuis :
    18/04/2019
    Messages :
    32

    Si je comprends bien (ce n'est pas très clair) tu peux planifier des entraînements de moto et tu peux planifier des révisions aussi.

    Comment gère-tu les disponibilités des moto ? Tu peux te dire que c'est dispo 24/24 7/7 sauf indication contraire (auquel cas on peux réserver un entrainement pour 2050 à 3h du matin) ou tu te dis que la moto n'est pas dispo sauf indication contraire. C'est toi qui voit.

    Pour parler plus théorie que pratique, quel est le processus que tu veux pour la planification d'un entraînement ?

    Tu peux vérifier si la moto est dispo et si il n'y a aucune revision a ce moment là. Et pour la révision, pareil, on vérifie si pas d'entraînement.
    Donc soit ta moto est dispo tout le temps et il faut vérifier les deux, soit c'est toi qui rentre les dispo de la moto et la révision supprime une dispo automatiquement.

    Je suis pas certain d'être assez clair...

Vous ne pouvez pas répondre à ce sujet.