From 68d32dbd88aa52e0de74b25a04b42de788723d42 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 28 Feb 2026 10:23:56 -0600 Subject: [PATCH] se anexa token de api de google maps para rastreo de ubicaciones --- app/Http/Controllers/CodeController.php | 15 +- app/Http/Controllers/HorarioController.php | 32 +-- config/services.php | 4 + ..._02_20_115106_create_incidencias_table.php | 8 +- database/seeders/RoleSeeder.php | 8 +- resources/views/area/index.blade.php | 3 - resources/views/code/show.blade.php | 197 ++++++++++++++++++ resources/views/horario/create.blade.php | 8 +- resources/views/horario/edit.blade.php | 13 +- resources/views/horario/index.blade.php | 5 +- .../views/layouts/_partials/menu.blade.php | 6 +- resources/views/layouts/landing.blade.php | 3 +- resources/views/note/index.blade.php | 1 + routes/web.php | 1 + 14 files changed, 259 insertions(+), 45 deletions(-) create mode 100644 resources/views/code/show.blade.php diff --git a/app/Http/Controllers/CodeController.php b/app/Http/Controllers/CodeController.php index a968160a..078bacd6 100644 --- a/app/Http/Controllers/CodeController.php +++ b/app/Http/Controllers/CodeController.php @@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Auth; class CodeController extends Controller { public function __construct() { - $this->middleware('can:code.index')->only('index','show','create'); + $this->middleware('can:asistencia')->only('index','show','create'); } public function index() @@ -23,8 +23,17 @@ class CodeController extends Controller return view('code.index',compact('codes','registros')); } - public function show() + public function registros() { - return view('code.show'); + $user = Auth::user(); + + $codes = Code::where('user_id', $user->id) + ->orderBy('registro', 'desc') + ->get() + ->groupBy(function ($code) { + return $code->registro->format('Y-m-d'); + }); + + return view('code.show',compact('codes')); } } diff --git a/app/Http/Controllers/HorarioController.php b/app/Http/Controllers/HorarioController.php index 58b00bb4..8c468c50 100644 --- a/app/Http/Controllers/HorarioController.php +++ b/app/Http/Controllers/HorarioController.php @@ -12,11 +12,12 @@ class HorarioController extends Controller { public function __construct() { - $this->middleware('can:horario.index')->only('index','show'); - $this->middleware('can:horario.create')->only('create','store'); - $this->middleware('can:horario.edit')->only('edit','update'); - $this->middleware('can:horario.destroy')->only('destroy'); + $this->middleware('can:horario.index')->only('index','show'); + $this->middleware('can:horario.create')->only('create','store'); + $this->middleware('can:horario.edit')->only('edit','update'); + $this->middleware('can:horario.destroy')->only('destroy'); } + public function index() { $usuarios = User::with(['roles'])->has('horarios')->get(); @@ -26,7 +27,10 @@ class HorarioController extends Controller public function create() { - $usuarios = User::where('code','!=','0')->get(); + $usuarios = User::with(['roles']) + ->where('code', '!=', '0') + ->doesntHave('horarios') + ->get();; $inicioSemana = Carbon::now()->startOfWeek(); @@ -80,7 +84,6 @@ class HorarioController extends Controller return view('horario.edit', compact('user','usuarios','dias','horarios')); } - public function update(Request $request, User $user) { foreach ($request->horarios as $h) { @@ -111,14 +114,15 @@ class HorarioController extends Controller return view('horario.show',compact('areacode')); } - public function destroy(Horario $horario) + public function destroy(User $user) { - // $areacode->delete(); - // session()->flash('swal',[ - // 'icon'=>'success', - // 'title'=>'Eliminado!', - // 'text'=>'Se ha eliminado el registro correctamente' - // ]); - // return redirect()->route('horario.index'); + $user->horarios()->delete(); + session()->flash('swal',[ + 'icon'=>'success', + 'title'=>'Eliminado!', + 'text'=>'Se han eliminado los registros correctamente' + ]); + return redirect()->route('horario.index'); } + } diff --git a/config/services.php b/config/services.php index 148b4afa..2fd4952f 100644 --- a/config/services.php +++ b/config/services.php @@ -41,4 +41,8 @@ return [ 'webhook_secret' => env('STRIPE_WEBHOOK_SECRET'), ], + 'google_maps' => [ + 'key' => env('GOOGLE_MAPS_API_KEY'), + ], + ]; diff --git a/database/migrations/2026_02_20_115106_create_incidencias_table.php b/database/migrations/2026_02_20_115106_create_incidencias_table.php index 04ed35d7..6bd17a6c 100644 --- a/database/migrations/2026_02_20_115106_create_incidencias_table.php +++ b/database/migrations/2026_02_20_115106_create_incidencias_table.php @@ -6,20 +6,16 @@ use Illuminate\Support\Facades\Schema; return new class extends Migration { - /** - * Run the migrations. - */ public function up(): void { Schema::create('incidencias', function (Blueprint $table) { $table->id(); + $table->string('user_id'); $table->dateTime('dia'); + $table->string('description'); }); } - /** - * Reverse the migrations. - */ public function down(): void { Schema::dropIfExists('incidencias'); diff --git a/database/seeders/RoleSeeder.php b/database/seeders/RoleSeeder.php index ada379eb..f7063e0b 100644 --- a/database/seeders/RoleSeeder.php +++ b/database/seeders/RoleSeeder.php @@ -108,13 +108,7 @@ class RoleSeeder extends Seeder Permission::create(['name'=>'areacode.edit','description'=>'Editar códigos qr'])->syncRoles([$role1]); Permission::create(['name'=>'areacode.destroy','description'=>'Eliminar códigos qr'])->syncRoles([$role1]); - Permission::create(['name'=>'code.index','description'=>'Ver asistencia digital'])->syncRoles([$role1]); - Permission::create(['name'=>'code.create','description'=>'Asistencia digital'])->syncRoles([$role1]); - - Permission::create(['name'=>'asistencia.index','description'=>'Ver asistencias'])->syncRoles([$role1]); - Permission::create(['name'=>'asistencia.create','description'=>'Crear asistencias'])->syncRoles([$role1]); - Permission::create(['name'=>'asistencia.edit','description'=>'Editar asistencias'])->syncRoles([$role1]); - Permission::create(['name'=>'asistencia.destroy','description'=>'Eliminar asistencias'])->syncRoles([$role1]); + Permission::create(['name'=>'asistencia','description'=>'asistencia digital'])->syncRoles([$role1]); Permission::create(['name'=>'mail.index','description'=>'Ver mail'])->syncRoles([$role1]); Permission::create(['name'=>'mail.create','description'=>'Crear mail'])->syncRoles([$role1]); diff --git a/resources/views/area/index.blade.php b/resources/views/area/index.blade.php index 2f405ee3..172a0fd7 100644 --- a/resources/views/area/index.blade.php +++ b/resources/views/area/index.blade.php @@ -58,9 +58,6 @@ - - - diff --git a/resources/views/code/show.blade.php b/resources/views/code/show.blade.php new file mode 100644 index 00000000..d121e9b5 --- /dev/null +++ b/resources/views/code/show.blade.php @@ -0,0 +1,197 @@ +@extends('layouts.landing') + +@section('title',"show") + +@section('content') + +
+ +
+ +
+
+ Datos de los registros +
+ + + Regresar + +
+ +
+ + @foreach ($codes as $fecha => $registros) + +
+ +
+ +
+ 📅 {{ \Carbon\Carbon::parse($fecha)->format('d/m/Y') }} +
+ + + +
+ +
+ + @foreach ($registros as $registro) + +
+ Hora: + {{ $registro->registro->format('h:i A') }} +
+ Código: + {{ $registro->codigo }} +
+ + @endforeach + +
+ +
+ + @endforeach + +
+
+ +
+ + +
+ +
+ + + +
+ +
+ +
+ +@endsection + + + +@push('scripts') + +{{-- GOOGLE MAPS --}} + + + + +@endpush diff --git a/resources/views/horario/create.blade.php b/resources/views/horario/create.blade.php index b9bc62a8..c4b0188b 100644 --- a/resources/views/horario/create.blade.php +++ b/resources/views/horario/create.blade.php @@ -7,11 +7,13 @@
-
Crear Nota
+
+
Editar horario
+ Regresar +
- Regresar
@csrf
@@ -74,7 +76,7 @@
@endforeach - +
diff --git a/resources/views/horario/edit.blade.php b/resources/views/horario/edit.blade.php index db645c75..78355d2a 100644 --- a/resources/views/horario/edit.blade.php +++ b/resources/views/horario/edit.blade.php @@ -7,11 +7,18 @@
-
Editar nota
+
+
Editar horario
+ Regresar +
- Regresar + @if (session('info')) +
+ {{session('info')}} +
+ @endif
@csrf @method('PUT') @@ -89,7 +96,7 @@ @endforeach - +
diff --git a/resources/views/horario/index.blade.php b/resources/views/horario/index.blade.php index 215d8b4a..549a4826 100644 --- a/resources/views/horario/index.blade.php +++ b/resources/views/horario/index.blade.php @@ -13,7 +13,7 @@
Horarios
@can('horario.create') - Asignnar horarios a colaborador + Asignar horarios a colaborador @endcan
@@ -52,7 +52,7 @@ @can('horario.destroy')
-
+ @csrf @method('DELETE') @@ -81,4 +81,5 @@ @section('scripts') @include('layouts._partials.tablaScript') + @include('layouts._partials.delete') @endsection diff --git a/resources/views/layouts/_partials/menu.blade.php b/resources/views/layouts/_partials/menu.blade.php index 43cb9230..61fc6da5 100644 --- a/resources/views/layouts/_partials/menu.blade.php +++ b/resources/views/layouts/_partials/menu.blade.php @@ -15,7 +15,7 @@ @@ -149,7 +149,7 @@ --}} - @can('code.index') + @can('asistencia')
diff --git a/resources/views/layouts/landing.blade.php b/resources/views/layouts/landing.blade.php index 7c7dd1c5..ff49c471 100644 --- a/resources/views/layouts/landing.blade.php +++ b/resources/views/layouts/landing.blade.php @@ -25,6 +25,7 @@
+ {{-- JS base --}} @include('layouts._partials.scripts') @@ -103,7 +104,7 @@ document.addEventListener("DOMContentLoaded", function () { }); - +@stack('modals') diff --git a/resources/views/note/index.blade.php b/resources/views/note/index.blade.php index 21eaaf45..2507cc26 100644 --- a/resources/views/note/index.blade.php +++ b/resources/views/note/index.blade.php @@ -73,4 +73,5 @@ @section('scripts') @include('layouts._partials.tablaScript') + @include('layouts._partials.delete') @endsection diff --git a/routes/web.php b/routes/web.php index 47da87c7..caa76b38 100644 --- a/routes/web.php +++ b/routes/web.php @@ -67,6 +67,7 @@ Route::middleware(['auth:sanctum',config('jetstream.auth_session'),'verified', Route::resource('/plane',PlaneController::class); Route::resource('/plantel',PlantelController::class); Route::resource('/prospecto',ProspectoController::class); + Route::get('/registros', [CodeController::class,'registros' ])->name('registros'); Route::resource('/role',RoleController::class); Route::resource('/turno',TurnoController::class); Route::resource('/user',UserController::class);