Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.8 kB
3
Indexable
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Maintenance;
use Illuminate\Validation\Rule;


class MaintenanceController extends Controller
{

    public function index()
    {
        $maintenance=Maintenance::all();
        return view('back.allMaintenance',['maintenance'=>$maintenance]);
    }

    public function create(Request $request)
    {
        $reclamationId = $request->input('reclamation_id');
        return view('back.addMaintenance', compact('reclamationId'));
    }

    public function store(Request $request)
{
    $request->validate([
        'reclamation_id' => 'required',
        'date_debut' => [
            'required',
            'date',
            'after_or_equal:today',
        ],
        'date_fin' => [
            'required',
            'date',
            'after:date_debut',
        ],
    ], [
        'reclamation_id.required' => 'Le champ Réclamation est requis.',
        'date_debut.required' => 'Le champ Date de début est requis.',
        'date_debut.date' => 'Le champ Date de début doit être une date valide.',
        'date_debut.after_or_equal' => 'Le champ Date de début doit être égale ou postérieure à aujourd\'hui.',
        'date_fin.required' => 'Le champ Date de fin est requis.',
        'date_fin.date' => 'Le champ Date de fin doit être une date valide.',
        'date_fin.after' => 'Le champ Date de fin doit être postérieure à la date de début.',
    ]);

    $reclamationId = $request->input('reclamation_id');
    $dateDebut = $request->input('date_debut');
    $dateFin = $request->input('date_fin');

    // Vous n'avez pas besoin de spécifier 'etat' ici, il sera par défaut 'pending'.

    // Créez la nouvelle Maintenance avec les valeurs appropriées.
    Maintenance::create([
        'reclamation_id' => $reclamationId,
        'date_debut' => $dateDebut,
        'date_fin' => $dateFin,
        'etat'=>"in_progress"
    ]);

    // Redirigez l'utilisateur avec un message de succès.
    return redirect(route('maintenance.index'))->with('success', 'Maintenance créée avec succès');
}

    
public function edit(Maintenance $maintenance)
{
    return view('back.editMaintenance',['maintenance'=>$maintenance]);
}

public function update(Request $request, Maintenance $maintenance)
{
    $newDateFin = $request->input('date_fin');

    // Mettez à jour la date de fin de la maintenance
    $maintenance->date_fin = $newDateFin;
    $maintenance->save();

    // Redirigez l'utilisateur ou affichez un message de confirmation.
    return redirect()->route('maintenance.index')->with('success', 'Date de fin mise à jour avec succès');
}

    
}