Feat: Implementado cálculo de ISR en nóminas

- Agregado campo isr_table_id en tabla months para seleccionar tabla ISR por mes
- Creado servicio IsrCalculator para calcular ISR mensual y quincenal
- Modificado CommissionCalculator para descontar ISR del total a pagar
- Agregado selector de tabla ISR en formulario de crear/editar mes
- Actualizada vista de meses para mostrar tabla ISR asignada
- Actualizados reportes mensual y quincenal para mostrar ISR descontado
This commit is contained in:
2026-04-21 13:45:39 -06:00
parent 4abf89c57f
commit e8aac6eaa5
10 changed files with 213 additions and 21 deletions

View File

@@ -48,31 +48,53 @@
<div class="card-body">
<div class="row text-center">
@if($report['type'] === 'anticipo')
<div class="col-md-4">
<div class="col-md-3">
<h6 class="text-muted">Mitad Sueldo</h6>
<h3>${{ number_format($report['biweekly_salary'], 2) }}</h3>
</div>
<div class="col-md-4">
<div class="col-md-3">
<h6 class="text-muted">Comisiones del Mes</h6>
<h3 class="text-success">+${{ number_format($report['commission_amount'], 2) }}</h3>
</div>
<div class="col-md-4">
@if(isset($report['isr_amount']) && $report['isr_amount'] > 0)
<div class="col-md-3">
<h6 class="text-muted">ISR Quincenal</h6>
<h3 class="text-danger">-${{ number_format($report['isr_amount'], 2) }}</h3>
</div>
<div class="col-md-3">
<h6 class="text-muted">Total ANTICIPO</h6>
<h2 class="text-success">${{ number_format($report['total_earning'], 2) }}</h2>
</div>
@else
<div class="col-md-3">
<h6 class="text-muted">Total ANTICIPO</h6>
<h2 class="text-success">${{ number_format($report['total_earning'], 2) }}</h2>
</div>
@endif
@else
<div class="col-md-4">
<div class="col-md-3">
<h6 class="text-muted">Mitad Sueldo</h6>
<h3>${{ number_format($report['biweekly_salary'], 2) }}</h3>
</div>
<div class="col-md-4">
<div class="col-md-3">
<h6 class="text-muted">Gastos Q{{ $biweekly }}</h6>
<h3 class="text-danger">-${{ number_format($report['expenses_q2'], 2) }}</h3>
</div>
<div class="col-md-4">
@if(isset($report['isr_amount']) && $report['isr_amount'] > 0)
<div class="col-md-3">
<h6 class="text-muted">ISR Quincenal</h6>
<h3 class="text-danger">-${{ number_format($report['isr_amount'], 2) }}</h3>
</div>
<div class="col-md-3">
<h6 class="text-muted">Total LIQUIDACIÓN</h6>
<h2 class="{{ $report['total_earning'] >= 0 ? 'text-success' : 'text-danger' }}">${{ number_format($report['total_earning'], 2) }}</h2>
</div>
@else
<div class="col-md-3">
<h6 class="text-muted">Total LIQUIDACIÓN</h6>
<h2 class="{{ $report['total_earning'] >= 0 ? 'text-success' : 'text-danger' }}">${{ number_format($report['total_earning'], 2) }}</h2>
</div>
@endif
@endif
</div>
</div>