diff --git a/app/Http/Controllers/denunciasController.php b/app/Http/Controllers/denunciasController.php
new file mode 100644
index 0000000..8e096ce
--- /dev/null
+++ b/app/Http/Controllers/denunciasController.php
@@ -0,0 +1,81 @@
+ get();
+
+ return view('denuncias.index', ['denuncias'=>$denuncias]);
+ }
+ public function show($id){
+ $denuncias = denuncias::findOrfail($id);
+ return view('denuncias.show', ["denuncias"=>$denuncias]);
+ }
+
+ public function destroy(Request $request, $id){
+ $denuncias = denuncias::findOrfail($id);
+ $denuncias->delete();
+ $request->session()->flash('mensaje-success', 'La denuncia fue eliminada.');
+ return redirect('/denuncias');
+ }
+
+ public function create(){
+ return view('denuncias.new');
+ }
+
+ 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'),
+ 'descripcion' => $request->input('descripcion'),
+ 'lugar' => $request->input('lugar'),
+ ]);
+ $denuncias->save();
+ $request->session()->flash('mensaje-success', 'La denuncia fue guardada exitosamente.');
+ return redirect('/denuncias');
+ }
+
+ public function edit($id){
+ $denuncias = denuncias::findOrfail($id);
+ return view('denuncias.edit', ["denuncia"=>$denuncias]);
+ }
+
+ public function update(UpdatedDenunciasRequest $request, $id){
+ $denuncias = denuncias::findOrfail($id);
+ $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'),
+ 'descripcion' => $request->input('descripcion'),
+ 'lugar' => $request->input('lugar'),
+ ]);
+ $denuncias->update();
+ $request->session()->flash('mensaje-success', 'Los datos fueron modificados.');
+ return redirect('/denuncias');
+ }
+
+ public function restaurar(Request $request, $id){
+ $denuncias = denuncias::withTrashed()->findOrfail($id);
+ $denuncias->restore();
+ $request->session()->flash('mensaje-success', 'La denuncia fue restaurada.');
+ return redirect('/denuncias');
+ }
+}
+
diff --git a/app/Http/Controllers/detenidosController.php b/app/Http/Controllers/detenidosController.php
new file mode 100644
index 0000000..b4d43b2
--- /dev/null
+++ b/app/Http/Controllers/detenidosController.php
@@ -0,0 +1,63 @@
+$detenidos]);
+ }
+ public function show($id){
+ $detenidos = detenidos::findOrfail($id);
+ return view('detenidos.show', ["detenido"=>$detenido]);
+ }
+
+ public function create(){
+ return view('detenidos.new');
+ }
+
+ public function store(StoreDetenidosRequest $request){
+
+ $detenidos = new detenidos();
+ $detenidos->fill([
+ 'nombre' => $request->input('nombre'),
+ 'apellido' => $request->input('apellido'),
+ 'dni' => $request->input('dni'),
+ 'fecha_nacimiento' => $request->input('fecha_nacimiento'),
+ 'domicilio' => $request->input('domicilio'),
+ ]);
+ $detenidos->save();
+ $request->session()->flash('mensaje-success', 'Los datos fueron guardados exitosamente.');
+ return redirect('/detenidos');
+ }
+
+ public function edit($id){
+ $detenidos = detenidos::findOrfail($id);
+ return view('detenidos.edit', ["detenido"=>$detenidos]);
+ }
+
+ public function update(UpdatedDetenidosRequest $request, $id){
+ $detenidos = detenidos::findOrfail($id);
+ $detenidos->fill([
+ 'nombre' => $request->input('nombre'),
+ 'apellido' => $request->input('apellido'),
+ 'dni' => $request->input('dni'),
+ 'fecha_nacimiento' => $request->input('fecha_nacimiento'),
+ 'domicilio' => $request->input('domicilio'),
+ ]);
+ $detenidos->update();
+ $request->session()->flash('mensaje-success', 'Los datos fueron modificados exitosamente.');
+ return redirect('/detenidos');
+ }
+}
+
diff --git a/app/Http/Requests/StoreDenunciasRequest.php b/app/Http/Requests/StoreDenunciasRequest.php
new file mode 100644
index 0000000..bee441b
--- /dev/null
+++ b/app/Http/Requests/StoreDenunciasRequest.php
@@ -0,0 +1,63 @@
+ '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',
+ 'descripcion' => 'required|max:1000',
+ 'lugar' => 'required|max:100',
+ ];
+ }
+
+ /**
+ * Mensajes personalizados de validación.
+ */
+ 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',
+
+ 'descripcion.required' => 'El campo descripción es requerido',
+ 'descripcion.max' => 'La descripción no puede superar los 1000 caracteres',
+
+ 'lugar.required' => 'El campo lugar es requerido',
+ 'lugar.max' => 'El lugar no puede superar los 100 caracteres',
+ ];
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Requests/StoreDetenidosRequest.php b/app/Http/Requests/StoreDetenidosRequest.php
new file mode 100644
index 0000000..662a1e0
--- /dev/null
+++ b/app/Http/Requests/StoreDetenidosRequest.php
@@ -0,0 +1,55 @@
+ '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:detenidos,dni',
+ 'fecha_nacimiento' => 'required|date',
+ 'domicilio' => 'required|max:150',
+ ];
+ }
+
+ /**
+ * Mensajes personalizados de validación.
+ */
+ 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',
+
+ 'fecha_nacimiento.required' => 'El campo fecha de nacimiento es requerido',
+ 'fecha_nacimiento.date' => 'La fecha de nacimiento ingresada no es válida',
+
+ 'domicilio.required' => 'El campo domicilio es requerido',
+ 'domicilio.max' => 'El domicilio no puede superar los 150 caracteres',
+ ];
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Requests/UpdatedDenunciasRequest.php b/app/Http/Requests/UpdatedDenunciasRequest.php
new file mode 100644
index 0000000..2bb1d45
--- /dev/null
+++ b/app/Http/Requests/UpdatedDenunciasRequest.php
@@ -0,0 +1,62 @@
+ 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/',
+ 'apellido' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/',
+ 'dni' => 'required|numeric|digits_between:7,8',
+ 'fecha' => 'required|date',
+ 'tipo' => 'required|max:100',
+ 'descripcion' => 'required|max:1000',
+ 'lugar' => 'required|max:100',
+ ];
+ }
+
+ /**
+ * Mensajes personalizados de validación.
+ */
+ 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',
+
+ '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',
+
+ 'descripcion.required' => 'El campo descripción es requerido',
+ 'descripcion.max' => 'La descripción no puede superar los 1000 caracteres',
+
+ 'lugar.required' => 'El campo lugar es requerido',
+ 'lugar.max' => 'El lugar no puede superar los 100 caracteres',
+ ];
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Requests/UpdatedDetenidosRequest.php b/app/Http/Requests/UpdatedDetenidosRequest.php
new file mode 100644
index 0000000..1672010
--- /dev/null
+++ b/app/Http/Requests/UpdatedDetenidosRequest.php
@@ -0,0 +1,54 @@
+ 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/',
+ 'apellido' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/',
+ 'dni' => 'required|numeric|digits_between:7,8',
+ 'fecha_nacimiento' => 'required|date',
+ 'domicilio' => 'required|max:150',
+ ];
+ }
+
+ /**
+ * Mensajes personalizados de validación.
+ */
+ 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',
+
+ 'fecha_nacimiento.required' => 'El campo fecha de nacimiento es requerido',
+ 'fecha_nacimiento.date' => 'La fecha de nacimiento ingresada no es válida',
+
+ 'domicilio.required' => 'El campo domicilio es requerido',
+ 'domicilio.max' => 'El domicilio no puede superar los 150 caracteres',
+ ];
+ }
+}
\ No newline at end of file
diff --git a/app/Models/denuncias.php b/app/Models/denuncias.php
new file mode 100644
index 0000000..d691ea1
--- /dev/null
+++ b/app/Models/denuncias.php
@@ -0,0 +1,27 @@
+ 'SICOP',
- 'logo_img' => 'vendor/adminlte/dist/img/AdminLTELogo.png',
+ 'logo_img' => 'vendor/adminlte/dist/img/logo_sicop.jpg',
'logo_img_class' => 'brand-image img-circle elevation-3',
'logo_img_xl' => null,
'logo_img_xl_class' => 'brand-image-xs',
- 'logo_img_alt' => 'Admin Logo',
+ 'logo_img_alt' => 'Logo SICOP',
/*
|--------------------------------------------------------------------------
@@ -86,7 +86,7 @@ return [
'auth_logo' => [
'enabled' => false,
'img' => [
- 'path' => 'vendor/adminlte/dist/img/AdminLTELogo.png',
+ 'path' => 'vendor/adminlte/dist/img/logo_sicop.jpg',
'alt' => 'Auth Logo',
'class' => '',
'width' => 50,
@@ -298,7 +298,9 @@ return [
|
*/
- 'menu' => [
+
+
+ 'menu' => [
[
'text' => 'Inicio',
@@ -309,8 +311,8 @@ return [
['header' => 'ADMINISTRACIÓN'],
[
- 'text' => 'personal',
- 'icon' => 'fas fa-fw fa-list',
+ 'text' => 'Personal',
+ 'icon' => 'fas fa-fw fa-user',
'submenu' => [
[
@@ -328,8 +330,51 @@ return [
],
],
+ [
+ 'text' => 'Denuncias',
+ 'icon' => 'fas fa-fw fa-file-alt',
+ 'submenu' => [
+
+ [
+ 'text' => 'Listado',
+ 'route' => 'denuncias.index',
+ 'icon' => 'fas fa-fw fa-list-ul',
+ ],
+
+ [
+ 'text' => 'Nueva denuncia',
+ 'route' => 'denuncias.create',
+ 'icon' => 'fas fa-fw fa-plus',
+ ],
+
+ ],
+ ],
+
+ [
+ 'text' => 'Detenidos',
+ 'icon' => 'fas fa-fw fa-user-lock',
+ 'submenu' => [
+
+ [
+ 'text' => 'Listado',
+ 'route' => 'detenidos.index',
+ 'icon' => 'fas fa-fw fa-list-ul',
+ ],
+
+ [
+ 'text' => 'Nuevo detenido',
+ 'route' => 'detenidos.create',
+ 'icon' => 'fas fa-fw fa-plus',
+ ],
+
+ ],
+ ],
+
],
+
+
+
/*
|--------------------------------------------------------------------------
| Menu Filters
diff --git a/public/img/escudo policia.jpg b/public/img/escudo policia.jpg
new file mode 100644
index 0000000..f4992ef
Binary files /dev/null and b/public/img/escudo policia.jpg differ
diff --git a/public/vendor/adminlte/dist/img/logo_sicop.jpg b/public/vendor/adminlte/dist/img/logo_sicop.jpg
new file mode 100644
index 0000000..f4992ef
Binary files /dev/null and b/public/vendor/adminlte/dist/img/logo_sicop.jpg differ
diff --git a/resources/views/denuncias/edit.blade.php b/resources/views/denuncias/edit.blade.php
new file mode 100644
index 0000000..d4b919d
--- /dev/null
+++ b/resources/views/denuncias/edit.blade.php
@@ -0,0 +1,233 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
+
+
+
Editar Datos de la Denuncia
+
+
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+
+
+
+
+@endsection
+
+
+@push('scripts')
+
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/denuncias/index.blade.php b/resources/views/denuncias/index.blade.php
new file mode 100644
index 0000000..23b2ba4
--- /dev/null
+++ b/resources/views/denuncias/index.blade.php
@@ -0,0 +1,155 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
Listado de Denuncias
+
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+ | Id |
+ Denunciante |
+ DNI |
+ Fecha |
+ Tipo |
+ Lugar |
+ Acciones |
+
+
+
+
+
+ @foreach($denuncias as $den)
+
+
+
+ | {{ $den->id_denuncia }} |
+
+
+ {{ $den->nombre_denunciante }}
+ {{ $den->apellido_denunciante }}
+ |
+
+ {{ $den->dni_denunciante }} |
+
+ {{ $den->fecha }} |
+
+ {{ $den->tipo }} |
+
+ {{ $den->lugar }} |
+
+
+
+ @if($den->deleted_at == null)
+
+
+
+ @else
+
+
+
+ @endif
+
+ |
+
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+@endsection
+
+
+@push('styles')
+
+@endpush
+
+
+@push('scripts')
+
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/denuncias/new.blade.php b/resources/views/denuncias/new.blade.php
new file mode 100644
index 0000000..1f3fdb5
--- /dev/null
+++ b/resources/views/denuncias/new.blade.php
@@ -0,0 +1,221 @@
+@extends('layouts.admin')
+@section('contenido')
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+
+
+
+@endsection
+
+
+@push('scripts')
+
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/denuncias/show.blade.php b/resources/views/denuncias/show.blade.php
new file mode 100644
index 0000000..fd1c835
--- /dev/null
+++ b/resources/views/denuncias/show.blade.php
@@ -0,0 +1,189 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
+
+
Ver Datos de la Denuncia
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/detenidos/edit.blade.php b/resources/views/detenidos/edit.blade.php
new file mode 100644
index 0000000..d3bffc5
--- /dev/null
+++ b/resources/views/detenidos/edit.blade.php
@@ -0,0 +1,191 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
+
+
+
Editar Datos del Detenido
+
+
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+
+
+
+
+@endsection
+
+
+@push('scripts')
+
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/detenidos/index.blade.php b/resources/views/detenidos/index.blade.php
new file mode 100644
index 0000000..51c5a19
--- /dev/null
+++ b/resources/views/detenidos/index.blade.php
@@ -0,0 +1,114 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
Listado de Detenidos
+
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+ | Id |
+ Nombre |
+ Apellido |
+ DNI |
+ Fecha de nacimiento |
+ Domicilio |
+ Acciones |
+
+
+
+
+
+ @foreach($detenidos as $det)
+
+
+
+ | {{ $det->id_detenido }} |
+
+ {{ $det->nombre }} |
+
+ {{ $det->apellido }} |
+
+ {{ $det->dni }} |
+
+ {{ $det->fecha_nacimiento }} |
+
+ {{ $det->domicilio }} |
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+@endsection
+
+
+@push('styles')
+
+@endpush
+
+
+@push('scripts')
+
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/detenidos/new.blade.php b/resources/views/detenidos/new.blade.php
new file mode 100644
index 0000000..7bf844d
--- /dev/null
+++ b/resources/views/detenidos/new.blade.php
@@ -0,0 +1,181 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
+
+
+
+
+
+ @include('compartido.mensajes')
+ @include('compartido.errores')
+
+
+
+
+
+
+
+
+
+
+@endsection
+
+
+@push('scripts')
+
+
+
+@endpush
\ No newline at end of file
diff --git a/resources/views/detenidos/show.blade.php b/resources/views/detenidos/show.blade.php
new file mode 100644
index 0000000..0d6a63c
--- /dev/null
+++ b/resources/views/detenidos/show.blade.php
@@ -0,0 +1,148 @@
+@extends('layouts.admin')
+
+@section('contenido')
+
+
+
+
+
+
Ver Datos del Detenido
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/personal/index.blade.php b/resources/views/personal/index.blade.php
index d395a48..7286b8b 100644
--- a/resources/views/personal/index.blade.php
+++ b/resources/views/personal/index.blade.php
@@ -82,14 +82,14 @@
-
+
@else
diff --git a/routes/web.php b/routes/web.php
index 88ee372..3607f5b 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -2,6 +2,9 @@
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\personalController;
+use App\Http\Controllers\denunciasController;
+use App\Http\Controllers\detenidosController;
+
/*
|--------------------------------------------------------------------------
| Web Routes
@@ -20,6 +23,13 @@ Route::get('/', function () {
Route::resource('personal', personalController::class);
Route::put('personal/restaurar/{personal}', [personalController::class, 'restaurar'])->name('personal.restaurar');
+Route::resource('denuncias', denunciasController::class);
+Route::put('denuncias/restaurar/{denuncias}', [denunciasController::class, 'restaurar'])->name('denuncias.restaurar');
+
+Route::resource('detenidos', detenidosController::class);
+
+
+
/*Route::get('personal', [personalController::class, 'index'])->name('personal.index');
Route::post('personal', [personalController::class, 'store'])->name('personal.store');
Route::get('personal/create', [personalController::class, 'create'])->name('personal.create');