@foreach($recibos as $recibo) @php $facturaPrincipal = $recibo->facturas->first(); $conexion = $facturaPrincipal?->conexion; $cliente = $conexion?->cliente; $medidor = $conexion?->medidor; $via = $conexion?->via; $sector = $via?->sector; $idConexion = $conexion?->id_conexion; $cargosPeriodo = (float) ($recibo->facturas->sum('monto_total') ?? 0); $nombreMesActual = \Carbon\Carbon::create() ->month((int) $cronograma->mes) ->locale('es') ->translatedFormat('F'); $deudaInicial = 0; $fechaCorteDeudaInicial = null; if ($idConexion && isset($deudasIniciales[$idConexion])) { $deudaInicial = (float) $deudasIniciales[$idConexion]->monto_deuda; $fechaCorteDeudaInicial = $deudasIniciales[$idConexion]->fecha_corte; } $deudaAnterior = 0; $rangoFechas = ''; if ($idConexion && isset($deudasAnteriores[$idConexion]) && $deudasAnteriores[$idConexion]->count() > 0) { $deudaAnterior = (float) $deudasAnteriores[$idConexion]->sum('monto_total'); $minMes = $deudasAnteriores[$idConexion]->min(fn($d) => optional($d->cronograma)->mes ?? 0); $maxMes = $deudasAnteriores[$idConexion]->max(fn($d) => optional($d->cronograma)->mes ?? 0); $anioDeuda = optional($deudasAnteriores[$idConexion]->first()->cronograma)->anio ?? $cronograma->anio; if (!$minMes || !$maxMes) { $minDate = $deudasAnteriores[$idConexion]->min('fecha_vencimiento'); $maxDate = $deudasAnteriores[$idConexion]->max('fecha_vencimiento'); if ($minDate && $maxDate) { $minMes = \Carbon\Carbon::parse($minDate)->month; $maxMes = \Carbon\Carbon::parse($maxDate)->month; $anioDeuda = \Carbon\Carbon::parse($minDate)->year; } } if ($minMes && $maxMes) { $mesInicio = \Carbon\Carbon::create() ->month((int) $minMes) ->locale('es') ->translatedFormat('F'); $mesFin = \Carbon\Carbon::create() ->month((int) $maxMes) ->locale('es') ->translatedFormat('F'); $rangoFechas = ucfirst($mesInicio); if ($minMes != $maxMes) { $rangoFechas .= ' - ' . ucfirst($mesFin); } $rangoFechas .= " $anioDeuda"; } } $totalPagar = $cargosPeriodo + $deudaInicial + $deudaAnterior; $mesActual = (int) $cronograma->mes; $anioActual = (int) $cronograma->anio; $mesInicioPeriodo = $mesActual - 1; $anioInicioPeriodo = $anioActual; if ($mesInicioPeriodo <= 0) { $mesInicioPeriodo = 12; $anioInicioPeriodo--; } $nombreMesInicio = \Carbon\Carbon::create() ->month((int) $mesInicioPeriodo) ->locale('es') ->translatedFormat('F'); $nombreMesFin = \Carbon\Carbon::create() ->month((int) $mesActual) ->locale('es') ->translatedFormat('F'); $fechaFin = \Carbon\Carbon::parse($fechaFinCobro); $fechaDiaAnterior = $fechaFin->copy()->subDay(); $diaAnterior = $fechaDiaAnterior->day; $diaFin = $fechaFin->day; $mesCobro = $fechaFin->locale('es')->translatedFormat('F'); $historial = $idConexion ? ($historiales->get($idConexion) ?? collect()) : collect(); $maxConsumo = max(1, $historial->max('consumo') ?? 1); @endphp

Junta de Administración de Servicios de Saneamiento (JASS) San Pedro

Plazoleta San Isidro s/n San Pedro - Canchis - Cusco
Comunidad Campesina San Pedro de K´acha
Periodo
{{ ucfirst($nombreMesInicio) }}
{{ ucfirst($nombreMesFin) }}
{{ $cronograma->anio }}
N° Recibo: {{ $recibo->numero_recibo }} N° de Registro: {{ $conexion->cod_inscripcion ?? '—' }}

Información del suministro y cliente

Cliente: {{ $cliente->nombres_razon_social ?? 'N/A' }} Documento: {{ $cliente->documento_identidad ?? '—' }}
Dirección: {{ $via->nombre_via ?? '—' }} N° {{ $conexion->nro_casa ?? '—' }}
Barrio: {{ $sector->nombre_sector ?? '—' }} Medidor: {{ $medidor->numero_serie ?? '—' }}
Categoría: {{ optional($conexion?->categoriaTarifa)->nombre_categoria ?? '—' }} Estado: {{ $conexion->estado ?? '—' }}
Obs: @if(($conexion->estado ?? '') === 'Cortado') SERVICIO CORTADO @elseif(($conexion->estado ?? '') === 'Suspendido') SERVICIO SUSPENDIDO @else — @endif
Total a pagar
S/. {{ number_format($totalPagar, 2) }}
Vence: {{ \Carbon\Carbon::parse($fechaFinCobro)->format('d/m/Y') }}
Presentar este recibo al momento del pago
Días de cobro: {{ $diaAnterior }} y {{ $diaFin }} de {{ ucfirst($mesCobro) }}
Hora: 3:00 p.m. a 6:00 p.m.
Lugar: Local JASS plazoleta San Isidro
@foreach($recibo->facturas as $factura) @php $consumo = (float) ($factura->consumo ?? 0); $monto = (float) ($factura->monto_total ?? 0); $tarifa = $consumo > 0 ? $monto / $consumo : null; @endphp @endforeach
Concepto Lect. Ant. Lect. Act. Consumo Tarifa Monto
Agua Potable {{ number_format($factura->lectura_anterior ?? 0, 2) }} {{ number_format($factura->lectura_actual ?? 0, 2) }} {{ number_format($consumo, 2) }} {{ $tarifa !== null ? 'S/. ' . number_format($tarifa, 2) : '—' }} S/. {{ number_format($monto, 2) }}
@if($historial->count() > 0) @foreach($historial as $item) @php $altura = ($item->consumo / $maxConsumo) * 28; @endphp @endforeach @foreach($historial as $item) @endforeach @foreach($historial as $item) @endforeach
Historial de Consumo
{{ sprintf('%02d', $item->periodo_mes) }}
{{ number_format($item->consumo, 0) }}
@endif
@if($deudaInicial > 0) @endif @if($deudaAnterior > 0) @endif
Resumen de importes
Cargos del período ({{ ucfirst($nombreMesActual) }} {{ $cronograma->anio }}): S/. {{ number_format($cargosPeriodo, 2) }}
Deuda inicial @if($fechaCorteDeudaInicial) hasta {{ \Carbon\Carbon::parse($fechaCorteDeudaInicial)->format('m/Y') }} @endif: S/. {{ number_format($deudaInicial, 2) }}
Deuda anterior {{ $rangoFechas ? '(' . $rangoFechas . ')' : '' }}: S/. {{ number_format($deudaAnterior, 2) }}
TOTAL A PAGAR: S/. {{ number_format($totalPagar, 2) }} Vence: {{ \Carbon\Carbon::parse($fechaFinCobro)->format('d/m/Y') }}
Cupón de pago
N° Recibo: {{ $recibo->numero_recibo }}
Cliente: {{ $cliente->nombres_razon_social ?? 'N/A' }}
Documento: {{ $cliente->documento_identidad ?? '—' }}
N° Registro: {{ $conexion->cod_inscripcion ?? '—' }}
Medidor: {{ $medidor->numero_serie ?? '—' }}
Dirección: {{ $via->nombre_via ?? '—' }} N° {{ $conexion->nro_casa ?? '—' }}
Periodo
{{ ucfirst($nombreMesInicio) }} - {{ ucfirst($nombreMesFin) }} {{ $cronograma->anio }}

Vence:
{{ \Carbon\Carbon::parse($fechaFinCobro)->format('d/m/Y') }}

TOTAL
S/. {{ number_format($totalPagar, 2) }}
Días de cobro: {{ $diaAnterior }} y {{ $diaFin }} de {{ ucfirst($mesCobro) }} | Lugar: Local JASS plazoleta San Isidro
@if($conexion && $conexion->estado === 'Cortado')
CORTADO
@elseif($conexion && $conexion->estado === 'Suspendido')
SUSPENDIDO
@elseif($recibo->estado === 'Anulado')
ANULADO
@elseif($recibo->estado !== 'Completado')
PENDIENTE
@endif
@endforeach