{{-- Encabezado del reporte --}} {{-- Información de filtros aplicados --}} @if(request('search') || request('tipo_retencion') || request('origen')) @endif @if(count($data) > 0) {{-- Encabezados de la tabla --}} @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 @endforeach @php $totalRetenciones = count($data); $retencionesPorTipo = collect($data)->groupBy('tipo_retencion'); $retencionesPorOrigen = collect($data)->groupBy('origen'); $proveedoresUnicos = collect($data)->unique('proveedor')->count(); @endphp @foreach($retencionesPorTipo as $tipo => $retencionesTipo) @php $montoTipoRetencion = collect($retencionesTipo)->sum('monto_retenido'); $porcentajeDelTotal = $totalMontoRetenido > 0 ? ($montoTipoRetencion / $totalMontoRetenido) * 100 : 0; @endphp @endforeach @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 @endforeach @else @endif {{-- Pie de página --}}
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.
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
Proveedor Documento Afectado Origen Fecha Tipo de Retención Monto Movimiento Monto Base Porcentaje Monto Retenido
{{ $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) }}
TOTALES: ${{ number_format($totalMontoMovimiento, 2) }} ${{ number_format($totalMontoBase, 2) }} - ${{ number_format($totalMontoRetenido, 2) }}
RESUMEN ESTADÍSTICO
TOTAL DE RETENCIONES: {{ $totalRetenciones }} PROVEEDORES ÚNICOS: {{ $proveedoresUnicos }}
MONTO TOTAL RETENIDO: ${{ number_format($totalMontoRetenido, 2) }}
DESGLOSE POR TIPO DE RETENCIÓN
{{ $tipo ?? 'Sin tipo' }}: {{ count($retencionesTipo) }} retenciones | Monto: ${{ number_format($montoTipoRetencion, 2) }} ({{ number_format($porcentajeDelTotal, 1) }}% del total)
DESGLOSE POR ORIGEN
{{ $nombreOrigen }}: {{ count($retencionesOrigen) }} retenciones | Monto: ${{ number_format($montoOrigenRetencion, 2) }}
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.
Sistema de Gestión de Tesorería | Reporte generado automáticamente | Documento confidencial