From 91ac61faf9b313eeace020ea7ce336ea495a3a46 Mon Sep 17 00:00:00 2001 From: cmoreno Date: Sun, 11 Oct 2026 23:16:25 -0300 Subject: [PATCH] modificaciones --- app/Http/Controllers/denunciasController.php | 58 ++- app/Http/Requests/StoreDenunciasRequest.php | 19 +- app/Models/EstadosDenuncias.php | 20 + app/Models/TiposDenuncias.php | 20 + app/Models/denuncias.php | 35 +- config/adminlte.php | 2 +- resources/views/denuncias/index.blade.php | 13 +- resources/views/denuncias/new.blade.php | 291 +++++++++--- resources/views/denuncias/show.blade.php | 476 +++++++++++++------ resources/views/personal/new.blade.php | 2 +- 10 files changed, 671 insertions(+), 265 deletions(-) create mode 100644 app/Models/EstadosDenuncias.php create mode 100644 app/Models/TiposDenuncias.php diff --git a/app/Http/Controllers/denunciasController.php b/app/Http/Controllers/denunciasController.php index a71a3f8..49aabb8 100644 --- a/app/Http/Controllers/denunciasController.php +++ b/app/Http/Controllers/denunciasController.php @@ -5,6 +5,8 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\RedirectResponse; use App\Models\denuncias; +use App\Models\civiles; +use App\Models\TiposDenuncias; use App\Http\Requests\UpdatedDenunciasRequest; use App\Http\Requests\StoreDenunciasRequest; @@ -13,33 +15,73 @@ class denunciasController extends Controller { public function index(Request $request){ - $denuncias = denuncias::all(); + $denuncias = denuncias::with('tipo')->get(); return view('denuncias.index', ['denuncias'=>$denuncias]); } public function show($id){ - $denuncias = denuncias::findOrfail($id); - return view('denuncias.show', ["denuncias"=>$denuncias]); + $denuncia = denuncias::with('tipo','estado','civiles')->findOrFail($id); + + return view('denuncias.show', ["denuncia"=>$denuncia]); } public function create(){ - return view('denuncias.new'); + $civiles = Civiles::get(); + $tipos = TiposDenuncias::get(); + return view('denuncias.new',["civiles"=>$civiles, "tipos"=>$tipos] ); } public function store(StoreDenunciasRequest $request){ $denuncias = new denuncias(); $denuncias->fill([ - 'nombre_denunciante' => $request->input('nombre'), - 'apellido_denunciante' => $request->input('apellido'), - 'dni_denunciante' => $request->input('dni'), 'fecha' => $request->input('fecha'), - 'tipo' => $request->input('tipo'), + 'fecha_hecho' => $request->input('fecha_hecho'), + 'tipo_id' => $request->input('tipo_id'), 'descripcion' => $request->input('descripcion'), 'lugar' => $request->input('lugar'), + 'estado_id' => 1, ]); $denuncias->save(); + //guardar denunciantes (A) + foreach ($request->input('denunciantes', []) as $civil_id) { + + $denuncias->civiles()->attach($civil_id, [ + 'rol_en_denuncia' => 'A' + ]); + + } + + + //Guardar denunciados (D) + foreach ($request->input('denunciados', []) as $civil_id) { + + $denuncias->civiles()->attach($civil_id, [ + 'rol_en_denuncia' => 'D' + ]); + + } + + + //Guardar víctimas (V) + foreach ($request->input('victimas', []) as $civil_id) { + + $denuncias->civiles()->attach($civil_id, [ + 'rol_en_denuncia' => 'V' + ]); + + } + + + //Guardar testigos (T) + foreach ($request->input('testigos', []) as $civil_id) { + + $denuncias->civiles()->attach($civil_id, [ + 'rol_en_denuncia' => 'T' + ]); + + } $request->session()->flash('mensaje-success', 'La denuncia fue guardada exitosamente.'); return redirect('/denuncias'); } diff --git a/app/Http/Requests/StoreDenunciasRequest.php b/app/Http/Requests/StoreDenunciasRequest.php index bee441b..8767c1f 100644 --- a/app/Http/Requests/StoreDenunciasRequest.php +++ b/app/Http/Requests/StoreDenunciasRequest.php @@ -20,11 +20,9 @@ class StoreDenunciasRequest extends FormRequest public function rules(): array { return [ - 'nombre' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/', - 'apellido' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/', - 'dni' => 'required|numeric|digits_between:7,8|unique:denuncias,dni_denunciante', + 'fecha' => 'required|date', - 'tipo' => 'required|max:100', + 'tipo_id' => 'required', 'descripcion' => 'required|max:1000', 'lugar' => 'required|max:100', ]; @@ -36,22 +34,11 @@ class StoreDenunciasRequest extends FormRequest public function messages(): array { return [ - 'nombre.required' => 'El campo nombre es requerido', - 'nombre.regex' => 'El campo nombre sólo debe contener letras', - - 'apellido.required' => 'El campo apellido es requerido', - 'apellido.regex' => 'El campo apellido sólo debe contener letras', - - 'dni.required' => 'El campo DNI es requerido', - 'dni.numeric' => 'El campo DNI sólo admite números', - 'dni.digits_between' => 'El campo DNI debe tener entre 7 y 8 dígitos', - 'dni.unique' => 'El DNI ya se encuentra registrado en otra denuncia', 'fecha.required' => 'El campo fecha es requerido', 'fecha.date' => 'La fecha ingresada no es válida', - 'tipo.required' => 'El campo tipo es requerido', - 'tipo.max' => 'El tipo no puede superar los 100 caracteres', + 'tipo_id.required' => 'El campo tipo es requerido', 'descripcion.required' => 'El campo descripción es requerido', 'descripcion.max' => 'La descripción no puede superar los 1000 caracteres', diff --git a/app/Models/EstadosDenuncias.php b/app/Models/EstadosDenuncias.php new file mode 100644 index 0000000..50d9bfb --- /dev/null +++ b/app/Models/EstadosDenuncias.php @@ -0,0 +1,20 @@ +belongsTo( + TiposDenuncias::class, + 'tipo_id','id_tipo' + ); +} + +public function estado() +{ + return $this->belongsTo( + EstadosDenuncias::class, + 'estado_id','id_estado' + ); +} + public function civiles() +{ + return $this->belongsToMany( + civiles::class, + 'civil_denuncia', + 'denuncia_id', + 'civil_id', + 'id_denuncia', + 'id_civil' + )->withPivot('rol_en_denuncia') + ->withTimestamps(); +} } diff --git a/config/adminlte.php b/config/adminlte.php index 1915d71..9520c30 100644 --- a/config/adminlte.php +++ b/config/adminlte.php @@ -451,7 +451,7 @@ return [ ], ], 'Select2' => [ - 'active' => false, + 'active' => true, 'files' => [ [ 'type' => 'js', diff --git a/resources/views/denuncias/index.blade.php b/resources/views/denuncias/index.blade.php index 6d44224..9e3e44d 100644 --- a/resources/views/denuncias/index.blade.php +++ b/resources/views/denuncias/index.blade.php @@ -33,11 +33,10 @@ Id - Denunciante - DNI Fecha Tipo Lugar + Descripcion Acciones @@ -50,18 +49,14 @@ {{ $den->id_denuncia }} - - {{ $den->nombre_denunciante }} - {{ $den->apellido_denunciante }} - - - {{ $den->dni_denunciante }} + {{ $den->fecha }} - {{ $den->tipo }} + {{ $den->tipo->nombre }} {{ $den->lugar }} + {{ $den->descripcion }} diff --git a/resources/views/denuncias/new.blade.php b/resources/views/denuncias/new.blade.php index 1f3fdb5..d0dbdb5 100644 --- a/resources/views/denuncias/new.blade.php +++ b/resources/views/denuncias/new.blade.php @@ -27,74 +27,14 @@ @csrf - -
- - -
- - - -
- - - -
- - - - - -
- - - -
- - - - - -
- -
- -
-
+
+
- - -
- -
+ + +
+ + + + + +
+ + -
+