lundi 14 octobre 2019

How to correctly handle dates and times?

In my model Training I have a recording.

enter image description here

date training : 15/09/2019 | hour_start : 18:00 | hour_end : 20:00 | motorbike : 000001

Then, if I have the motorbike 000001 in Revision, on 01/09/2019 to 15/09/2019 from 14:00 to 16:00.

enter image description here

Now, If I want to add a recording in my form Training for example :

enter image description here

date training : 15/09/2019 | hour_start : 08:00 | hour_end : 10:00 | motorbike : 000001

Normally, the motorbike is in revision, but here I can the add ??? How to create a blocking?

<?php

namespace App\Http\Controllers;

use App\Motorbike;
use App\Former;
use App\Training;
use App\Revision;
use App\Student; 
use App\Payment; 
use App\Typeseance; 

use Carbon\Carbon;

use Illuminate\Http\Request;

class TrainingController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

    public function index()
    {
        $trainings = Training::oldest()->paginate(5);
        return view('admin.trainings.index', compact('trainings'));
                with('i', (request()->input('page', 1) -1) *5);
    }



    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {   
        $motorbikes = Motorbike::all();
        $formers = Former::all();
        $students = Student::all();
        $typeseances = Typeseance::all();
        return view('admin.trainings.create', compact('motorbikes','formers', 'students', 'typeseances', 'trainings'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    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 = Carbon::parse($request->get('date_seance'))->format('Y-m-d');
       $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');


       $conflictTraining = Training::where('fk_motorbike', $request->get('fk_motorbike')) 
       ->whereDate('date_seance', "=" , Carbon::parse($date_seance)) 
       ->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', "<=" ,  Carbon::parse($date_seance)) 
       ->where('hour_start', "<=" , $request->get('hour_start')) 
       ->where('hour_end', ">=" , $request->get('hour_end'))
       ->whereDate('date_revision_end', "<=" ,  Carbon::parse($date_seance))
       ->first();

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

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

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



    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

I think my problem is here with the hours ?

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

I think you in advance.



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/32diVMQ
via IFTTT

Aucun commentaire:

Enregistrer un commentaire