<?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');
}
}