{{-- Facturar la reserva: el TOTAL (pagada al 100 %) o CADA ABONO (App\Services\ReservationInvoicer). Si faltan datos del cliente, primero se abre la ventana "Datos para facturar" (sin recargar) y al guardarla se emite la factura. $reservation, $invoices, $invoice_options, $billing_missing, $formas_pago, $v3 (diseño moderno) --}} @php $r = $reservation; $v3 = $v3 ?? false; $btn = $v3 ? 'v3-btn' : 'btn btn-sm btn-outline-primary'; $btnMain = $v3 ? 'v3-btn v3-btn-primary' : 'btn btn-primary'; $c = $r->customer && !\App\Reservation::isGenericCustomer($r->customer) ? $r->customer : null; $sriPill = function ($estado) use ($v3) { $ok = $estado === 'autorizado'; return $v3 ? '' . e($ok ? 'Autorizada' : 'Sin autorizar') . '' : '' . e($ok ? 'Autorizada' : 'Sin autorizar') . ''; }; $abonos = $r->payments->sortBy('id')->values(); @endphp

Facturación

@if($invoices->isNotEmpty())
@foreach($invoices as $inv)
{{ $inv->tipo == 'total' ? 'Factura del total' : 'Factura de abono' }} · {{ $inv->numero_documento }} ${{ number_format($inv->grand_total ?? $inv->amount, 2) }} · {{ \Carbon\Carbon::parse($inv->created_at)->format('d/m/Y H:i') }} {!! $sriPill($inv->estado_fact_sri) !!}
@endforeach
@if($invoices->contains(function ($i) { return $i->estado_fact_sri !== 'autorizado'; }))

Las facturas sin autorizar se reintentan en Facturas pendientes del SRI.

@endif @endif @if($invoice_options['total'] || $invoice_options['abonos']) @if($billing_missing)

Faltan datos para facturar {{ ucfirst(implode(', ', $billing_missing)) }}. Al facturar se te pedirán.

@endif @if($invoice_options['total']) {!! Form::open(['route' => ['reservations.invoice', $r->id], 'method' => 'post', 'class' => 'invoice-form mb-2']) !!} {!! Form::close() !!} @endif @if($invoice_options['abonos'])

{{ $invoice_options['total'] ? 'O factura cada abono por separado:' : 'Facturar abonos:' }}

@foreach($abonos as $i => $p) @if(in_array($p->id, $invoice_options['abonos'])) {!! Form::open(['route' => ['reservations.invoice', $r->id], 'method' => 'post', 'class' => 'invoice-form mb-1']) !!} {!! Form::close() !!} @endif @endforeach

Si facturas un abono, el resto se factura por abonos (no se puede facturar el total encima). Confírmalo con tu contador.

@endif @elseif($invoices->isEmpty())

{{ $invoice_options['why'] ?: 'Todavía no se puede facturar.' }}

@endif
@if($invoice_options['total'] || $invoice_options['abonos']) {{-- Ventana "Datos para facturar": completa el cliente sin salir de la reserva y luego emite la factura pendiente. --}} @endif