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
-
-
-
-
|