lundi 7 octobre 2019

Date for revision and training

I have a problem with my date...

In my form Revision, I have encoded the date for a revision.

On 01/09/2019 to 15/09/2019 from 14:00 to 16:00.

enter image description here

Then, in my form Training, I have encoded a date for a training, for example:

On 15/09/2019 from 08:00 to 10:00.

enter image description here

Normally, the bike is unavailable because the motorbike is in revision.

enter image description here

I don't understand my problem, how should I better manage revisions?

Here is my 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',
                'fk_typeseance' => 'required'


        ]);


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


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

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


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

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

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

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



       if(isset($conflictTraining1) || isset($conflictTraining2)){
            return redirect()->route('trainings.index')
             ->with('error', 'The training is already booked');
        }

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

       if(isset($conflitFormer)){
            return redirect()->route('trainings.index')
            ->with('error', 'The former is already booked');
        }

       if(isset($conflitMotorbike)){
            return redirect()->route('trainings.index')
            ->with('error', 'The bike is already booked');
        }

       if(isset($conflitStudent)){
            return redirect()->route('trainings.index')
            ->with('error', 'The student is already booked');
        }


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



    }

Thank you for your help.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire