@php use Illuminate\Support\Carbon; use Illuminate\Support\Str; $money = fn($v) => number_format((float) $v, 2); $date = fn($d) => $d ? Carbon::parse($d)->format('d/m/Y') : '—'; $clientName = $account->client?->name ?? '—'; $logo = brand_logo_url(); $projectName = $account->lote?->project?->name ?? $account->lote?->manzana?->project?->name ?? $account->property?->name ?? '—'; $manzanaName = $account->lote?->manzana?->nombre; $loteNumber = $account->lote?->numero; $referenceAction = $account->lote ? trim('LOTE '.($loteNumber ?: '—').($manzanaName ? ' MZA '.$manzanaName : '')) : ($account->unit_label ?? ('Cuenta #'.$account->id)); $rows = collect($installments)->values(); $monthlyRows = $rows->filter(fn($r) => empty($r->is_annuity)); $annuityRows = $rows->filter(fn($r) => !empty($r->is_annuity)); $customAnnuityRows = collect($annuitySchedule ?? [])->values(); $scheduledTotal = (float) $rows->sum(fn($r) => (float) ($r->amount ?? 0)); $customAnnualTotalToCover = (float) $customAnnuityRows->sum(fn($r) => (float) ($r->amount ?? 0)); $planTotalProgrammed = $scheduledTotal + $customAnnualTotalToCover; $initialContribution = max(0, (float) $account->total_price - $planTotalProgrammed); $monthlyTotalToCover = (float) $monthlyRows->sum(fn($r) => (float) ($r->amount ?? 0)); $annualTotalToCover = $customAnnuityRows->count() ? $customAnnualTotalToCover : (float) $annuityRows->sum(fn($r) => (float) ($r->amount ?? 0)); $termMonths = (int) ($account->term_months ?: $monthlyRows->count()); $issueDate = now()->format('d/m/Y'); $issuedAt = now()->format('d/m/Y H:i'); $startBalance = $scheduledTotal; $companyName = $company['name'] ?: 'Casa Amiga Inmobiliaria'; $companyAddress = $company['address'] ?: '—'; $companyPhone = $company['phone'] ?: '—'; $companyEmail = $company['email'] ?: '—'; @endphp
⬇ Descargar PDF
@if($logo){{ $companyName }}@endif
{{ $companyName }}
Plan de aportaciones
Sucursal / domicilio: {{ $companyAddress }}
Fecha de expedición: {{ $issueDate }}
Teléfono de oficina: {{ $companyPhone }}
Email: {{ $companyEmail }}
Nombre(s) depositante(s) Plan derivado de Referencia de acción en copropiedad Proyecto
{{ $clientName }} Aportaciones {{ $referenceAction }} {{ $projectName }}
Monto total a aportar Monto aport. inicial Monto a cubrir en aport. mens. Monto a cubrir en aport. anual / plazo meses
${{ $money($account->total_price) }} ${{ $money($initialContribution) }} ${{ $money($monthlyTotalToCover) }} ${{ $money($annualTotalToCover) }} / {{ $termMonths }}
Desglose del plan de aportaciones
@php $running = $scheduledTotal; $prevDate = null; @endphp @forelse($rows as $inst) @php $due = !empty($inst->due_date) ? Carbon::parse($inst->due_date) : null; $days = ($prevDate && $due) ? $prevDate->diffInDays($due) : 0; $opening = max(0, $running); $amount = (float) ($inst->amount ?? 0); $newBalance = max(0, $opening - $amount); $isPaid = ($inst->status ?? null) === 'Pagado'; $isOverdue = !$isPaid && $due && $due->lt(now()->startOfDay()); $statusText = $isPaid ? 'Pagado' : ($isOverdue ? 'Vencido' : 'Pendiente'); $statusClass = $isPaid ? 'status-paid' : ($isOverdue ? 'status-overdue' : 'status-pending'); $prevDate = $due; $running = $newBalance; @endphp @empty @endforelse
No.
aport.
Fecha de pago Días
trans.
Monto a cubrir
en aport. mens.
Monto de
aportación
Interés del
periodo
Pago total sin
IVA
IVA Nuevo saldo Estatus Recibo
{{ $inst->number ?? '—' }} {{ $date($inst->due_date ?? null) }} {{ $days }} ${{ $money($opening) }} ${{ $money($amount) }} $0.00 ${{ $money($amount) }} $0.00 ${{ $money($newBalance) }} {{ $statusText }} @if(!empty($inst->id)) Ver recibo @else — @endif
No hay aportaciones programadas.
Total programado
${{ $money($planTotalProgrammed) }}
Aportaciones mensuales
${{ $money($monthlyTotalToCover) }}
Aportaciones anuales
${{ $money($annualTotalToCover) }}
@if($customAnnuityRows->count())
Fechas de pago de anualidad
La anualidad tiene fecha personalizada, por eso se muestra separada del calendario mensual. Si no se define fecha personalizada, la anualidad se suma cada 12 meses junto con la mensualidad.
@foreach($customAnnuityRows as $ann) @endforeach
No. Fecha de pago Concepto Proyecto / lote Monto anualidad
{{ $ann->number }} {{ $date($ann->due_date ?? null) }} {{ $ann->concept ?? ('Anualidad #'.$ann->number) }} {{ $referenceAction }} ${{ $money($ann->amount ?? 0) }}
Total anualidades
${{ $money($customAnnualTotalToCover) }}
@endif