Feat: Agregada gestión de tablas ISR en settings

- Nueva tabla isr_tables y isr_brackets en BD
- Controlador IsrController para CRUD de tablas ISR
- Integración con pestaña ISR en settings
- Soporte para importación via CSV
- Captura manual de brackets
This commit is contained in:
2026-04-21 13:22:01 -06:00
parent 66df616eee
commit 4abf89c57f
11 changed files with 778 additions and 24 deletions

View File

@@ -3,16 +3,31 @@
@section('title', 'Configuración')
@section('content')
<div class="row">
<div class="col-12">
<h2 class="mb-4">
<i class="bi bi-gear text-primary"></i> Configuración
</h2>
</div>
</div>
<ul class="nav nav-tabs" id="settingsTabs" role="tablist">
<li class="nav-item">
<button class="nav-link{{ request('tab') != 'isr' ? ' active' : '' }}" id="laboral-tab" data-bs-toggle="tab" data-bs-target="#laboral" type="button" role="tab">
<i class="bi bi-briefcase"></i> Datos Laborales
</button>
</li>
<li class="nav-item">
<button class="nav-link" id="comision-tab" data-bs-toggle="tab" data-bs-target="#comision" type="button" role="tab">
<i class="bi bi-percent"></i> Comisión
</button>
</li>
<li class="nav-item">
<button class="nav-link{{ request('tab') == 'isr' ? ' active' : '' }}" id="isr-tab" data-bs-toggle="tab" data-bs-target="#isr" type="button" role="tab">
<i class="bi bi-calculator"></i> ISR
</button>
</li>
<li class="nav-item">
<button class="nav-link" id="password-tab" data-bs-toggle="tab" data-bs-target="#password" type="button" role="tab">
<i class="bi bi-key"></i> Contraseña
</button>
</li>
</ul>
<div class="row">
<div class="col-md-8">
<div class="tab-content mt-3" id="settingsTabsContent">
<div class="tab-pane fade{{ request('tab') != 'isr' ? ' show active' : '' }}" id="laboral" role="tabpanel">
<!-- Datos Laborales -->
<div class="card mb-4">
<div class="card-header bg-success text-white">
@@ -77,7 +92,9 @@
</form>
</div>
</div>
</div>
<div class="tab-pane fade" id="comision" role="tabpanel">
<!-- Configuración de Comisión -->
<div class="card mb-4">
<div class="card-header bg-primary text-white">
@@ -131,7 +148,13 @@
</form>
</div>
</div>
</div>
<div class="tab-pane fade{{ request('tab') == 'isr' ? ' show active' : '' }}" id="isr" role="tabpanel">
@include('settings.isr.index', ['isrTables' => \App\Models\IsrTable::with('brackets')->get()])
</div>
<div class="tab-pane fade" id="password" role="tabpanel">
<!-- Cambiar Contraseña -->
<div class="card mb-4">
<div class="card-header bg-secondary text-white">
@@ -178,8 +201,10 @@
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="row mt-4">
<div class="col-md-12">
<!-- Información del Usuario -->
<div class="card mb-4">
<div class="card-header bg-dark text-white">
@@ -189,32 +214,32 @@
</div>
<div class="card-body">
<dl class="row">
<dt class="col-sm-4">Nombre:</dt>
<dd class="col-sm-8">{{ auth()->user()->name }}</dd>
<dt class="col-sm-2">Nombre:</dt>
<dd class="col-sm-10">{{ auth()->user()->name }}</dd>
<dt class="col-sm-4">Email:</dt>
<dd class="col-sm-8">{{ auth()->user()->email }}</dd>
<dt class="col-sm-2">Email:</dt>
<dd class="col-sm-10">{{ auth()->user()->email }}</dd>
@if(auth()->user()->razon_social)
<dt class="col-sm-4">Empresa:</dt>
<dd class="col-sm-8">{{ auth()->user()->razon_social }}</dd>
<dt class="col-sm-2">Empresa:</dt>
<dd class="col-sm-10">{{ auth()->user()->razon_social }}</dd>
@endif
@if(auth()->user()->fecha_ingreso)
<dt class="col-sm-4">Ingreso:</dt>
<dd class="col-sm-8">{{ auth()->user()->fecha_ingreso->format('d/m/Y') }}</dd>
<dt class="col-sm-2">Ingreso:</dt>
<dd class="col-sm-10">{{ auth()->user()->fecha_ingreso->format('d/m/Y') }}</dd>
@endif
<dt class="col-sm-4">Comisión:</dt>
<dd class="col-sm-8">
<dt class="col-sm-2">Comisión:</dt>
<dd class="col-sm-10">
<span class="badge bg-primary">{{ auth()->user()->commission_percentage }}%</span>
</dd>
<dt class="col-sm-4">Salario:</dt>
<dd class="col-sm-8">${{ number_format(auth()->user()->monthly_salary, 2) }}</dd>
<dt class="col-sm-2">Salario:</dt>
<dd class="col-sm-10">${{ number_format(auth()->user()->monthly_salary, 2) }}</dd>
<dt class="col-sm-4">Estado:</dt>
<dd class="col-sm-8">
<dt class="col-sm-2">Estado:</dt>
<dd class="col-sm-10">
@if(auth()->user()->is_active)
<span class="badge bg-success">Activo</span>
@else