{{-- Encabezado del reporte --}}
|
HOSPITAL ROSALES
|
|
LIBRO DE RETENCIONES
|
|
PERÍODO: {{ request('fecha_inicio') && request('fecha_fin') ? request('fecha_inicio') . ' - ' . request('fecha_fin') : 'Todos los registros' }}
|
FECHA DE EMISIÓN: {{ now()->format('d/m/Y H:i:s') }}
|
|
Este reporte presenta el registro detallado de todas las retenciones realizadas sobre proveedores, incluyendo retenciones de IVA, ISR, y otras retenciones aplicables según la legislación vigente.
Es fundamental para el control tributario y seguimiento de las obligaciones fiscales de la institución.
|
{{-- Información de filtros aplicados --}}
@if(request('search') || request('tipo_retencion') || request('origen'))
|
FILTROS APLICADOS:
@if(request('search'))
Búsqueda: "{{ request('search') }}" |
@endif
@if(request('tipo_retencion'))
Tipo: {{ request('tipo_retencion') }} |
@endif
@if(request('origen'))
Origen: {{ request('origen') }}
@endif
|
@endif
|
@if(count($data) > 0)
{{-- Encabezados de la tabla --}}
| N° |
Proveedor |
Documento Afectado |
Origen |
Fecha |
Tipo de Retención |
Monto Movimiento |
Monto Base |
Porcentaje |
Monto Retenido |
@php
$totalMontoMovimiento = 0;
$totalMontoBase = 0;
$totalMontoRetenido = 0;
@endphp
{{-- Datos de las retenciones --}}
@foreach($data as $index => $ret)
@php
// Inicialización
$nunDocumento = '';
$OrigenRetencion = '';
$montoMovimiento = 0;
// Tipo de documento
if ($ret->origen === 'caja_chica') {
$nunDocumento = $ret->numero_documento ?? 'S/N';
} else {
$nunDocumento = $ret->obligacionPagar?->numero_documento ?? 'N/A';
}
if ($ret->origen === 'caja_chica') {
$OrigenRetencion = 'Caja Chica';
} elseif ($ret->obligacion_pagar_id) {
$OrigenRetencion = 'Obligación por Pagar';
} elseif ($ret->nomina_id) {
$OrigenRetencion = 'Nómina';
} elseif ($ret->compra_id) {
$OrigenRetencion = 'Compra Directa';
} else {
$OrigenRetencion = 'Otro';
}
if ($ret->origen === 'caja_chica') {
$montoMovimiento = $ret->monto_movimiento ?? 0;
} else {
$montoMovimiento = $ret->obligacion_pagar?->monto_movimiento ?? $ret->obligacion_pagar?->total ?? 0;
}
// Acumular totales
$totalMontoMovimiento += $montoMovimiento;
$totalMontoBase += $ret->monto_base;
$totalMontoRetenido += $ret->monto_retenido;
// Color de fila según tipo de retención
$colorFila = '#ffffff';
$tipoRetencion = strtolower($ret->tipo_retencion ?? '');
if (str_contains($tipoRetencion, 'isr') || str_contains($tipoRetencion, 'renta')) {
$colorFila = '#e3f2fd';
} elseif (str_contains($tipoRetencion, '1%') || str_contains($tipoRetencion, 'uno por ciento')) {
$colorFila = '#fff3e0';
}
@endphp
| {{ $index + 1 }} |
{{ $ret->proveedor }} |
{{ $nunDocumento }} |
{{ $OrigenRetencion }} |
{{ $ret->fecha }} |
{{ $ret->tipo_retencion }} |
${{ number_format($montoMovimiento, 2) }} |
${{ number_format($ret->monto_base, 2) }} |
{{ $ret->porcentaje }}% |
${{ number_format($ret->monto_retenido, 2) }} |
@endforeach
|
TOTALES:
|
${{ number_format($totalMontoMovimiento, 2) }}
|
${{ number_format($totalMontoBase, 2) }}
|
- |
${{ number_format($totalMontoRetenido, 2) }}
|
|
@php
$totalRetenciones = count($data);
$retencionesPorTipo = collect($data)->groupBy('tipo_retencion');
$retencionesPorOrigen = collect($data)->groupBy('origen');
$proveedoresUnicos = collect($data)->unique('proveedor')->count();
@endphp
|
RESUMEN ESTADÍSTICO
|
|
TOTAL DE RETENCIONES:
|
{{ $totalRetenciones }}
|
PROVEEDORES ÚNICOS:
|
{{ $proveedoresUnicos }}
|
|
MONTO TOTAL RETENIDO:
|
${{ number_format($totalMontoRetenido, 2) }}
|
|
DESGLOSE POR TIPO DE RETENCIÓN
|
@foreach($retencionesPorTipo as $tipo => $retencionesTipo)
@php
$montoTipoRetencion = collect($retencionesTipo)->sum('monto_retenido');
$porcentajeDelTotal = $totalMontoRetenido > 0 ? ($montoTipoRetencion / $totalMontoRetenido) * 100 : 0;
@endphp
|
{{ $tipo ?? 'Sin tipo' }}:
|
{{ count($retencionesTipo) }} retenciones |
Monto: ${{ number_format($montoTipoRetencion, 2) }}
({{ number_format($porcentajeDelTotal, 1) }}% del total)
|
@endforeach
|
DESGLOSE POR ORIGEN
|
@foreach($retencionesPorOrigen as $origen => $retencionesOrigen)
@php
$montoOrigenRetencion = collect($retencionesOrigen)->sum('monto_retenido');
$nombreOrigen = '';
if ($origen === 'caja_chica') {
$nombreOrigen = 'Caja Chica';
} elseif ($origen === 'obligacion_pagar') {
$nombreOrigen = 'Obligación por Pagar';
} elseif ($origen === 'nomina') {
$nombreOrigen = 'Nómina';
} elseif ($origen === 'compra') {
$nombreOrigen = 'Compra Directa';
} else {
$nombreOrigen = ucfirst($origen);
}
@endphp
|
{{ $nombreOrigen }}:
|
{{ count($retencionesOrigen) }} retenciones |
Monto: ${{ number_format($montoOrigenRetencion, 2) }}
|
@endforeach
@else
| N° |
Proveedor |
Documento Afectado |
Origen |
Fecha |
Tipo de Retención |
Monto Movimiento |
Monto Base |
Porcentaje |
Monto Retenido |
|
No se encontraron registros de retenciones para el período seleccionado.
|
@endif
{{-- Pie de página --}}
|
|
Sistema de Gestión de Tesorería | Reporte generado automáticamente | Documento confidencial
|