@extends('layouts.enterprise') @section('title', 'Vistas Previas') @section('content') @php $indexRoute = request()->routeIs('accountant.*') ? route('accountant.incomes.generated_invoices') : route('admin.incomes.generated_invoices'); @endphp

Vistas Previas

Consulta las vistas previas finalizadas. Aquí ya no verás borradores: solo documentos listos para imprimir, revisar o convertir en factura.

Filtros @if(($filters['q'] ?? '') !== '') Activos @endif
El RC cliente capturado por artículo no reemplaza el RC solicitud (Pipefy); aquí el buscador revisa folio, cliente y solicitudes ligadas.
Limpiar
Resultados: {{ $generatedInvoices->total() }} Solo vistas previas finalizadas
@forelse($generatedInvoices as $invoice) @php $invoiceRequests = ($hasGroupingPivot ?? false) ? ($invoice->pipefyRequests ?? collect()) : collect(); if ($invoiceRequests->isEmpty() && $invoice->pipefyRequest) { $invoiceRequests = collect([$invoice->pipefyRequest]); } @endphp @empty @endforelse
Folio Fecha Cliente Oficina Solicitudes Subtotal IVA Total Vista previa Factura
{{ $invoice->folio }} {{ optional($invoice->issue_date)->format('Y-m-d') ?: '-' }} {{ $invoice->client?->name ?: '-' }} @if($invoice->office) {{ $invoice->office->office_code ?: 'SIN-COD' }} | {{ $invoice->office->name }} @else - @endif
{{ $invoiceRequests->count() }} solicitud(es)
JN(s): {{ $invoiceRequests->pluck('title')->filter()->implode(', ') ?: '-' }}
@foreach($invoiceRequests->take(4) as $invoiceRequest)
#{{ $invoiceRequest->id }} | JN {{ $invoiceRequest->title ?: '-' }} | RC solicitud (Pipefy): {{ $invoiceRequest->rc_list ?: '-' }}
@endforeach @if($invoiceRequests->count() > 4)
+{{ $invoiceRequests->count() - 4 }} más
@endif @if($invoice->items->isNotEmpty()) @php $invoiceItemsPayload = $invoice->items->map(function ($generatedItem) { $itemRequest = $generatedItem->pipefyRequestItem?->request; return [ 'label' => ($generatedItem->sat_item_label ?: 'Artículo') . ' | $' . number_format((float) $generatedItem->line_total, 2), 'concept' => (string) ($generatedItem->description ?: '-'), 'request' => '#'.($itemRequest?->id ?: '-') . ' | JN ' . ($itemRequest?->title ?: '-'), 'item_rc' => (string) ($generatedItem->item_rc ?: 'Sin RC capturado'), 'quantity' => number_format((float) $generatedItem->quantity, 2), 'unit_price' => number_format((float) $generatedItem->unit_price, 2), ]; })->values()->all(); @endphp
Ver artículos ({{ $invoice->items->count() }})
@endif
${{ number_format((float) $invoice->subtotal, 2) }} ${{ number_format((float) $invoice->tax, 2) }} ${{ number_format((float) $invoice->total, 2) }} @if($invoice->id) Abrir PDF @else PDF no disponible @endif @if(!($hasFacturamaColumns ?? false)) Migración pendiente @elseif($invoice->facturama_cfdi_id)
Creada @if($invoice->facturama_pdf_path) PDF @endif @if($invoice->facturama_xml_path) XML @endif
@if(($hasFacturamaPaymentComplementColumns ?? false) && $invoice->facturama_payment_complement_cfdi_id)
Complemento creado @if($invoice->facturama_payment_complement_pdf_path) PDF pago @endif @if($invoice->facturama_payment_complement_xml_path) XML pago @endif
@elseif(($hasFacturamaPaymentComplementColumns ?? false))
Registrar pago
@endif @if($invoice->facturama_error_message)
{{ $invoice->facturama_error_message }}
@endif @if(($hasFacturamaPaymentComplementColumns ?? false) && $invoice->facturama_payment_complement_error_message)
{{ $invoice->facturama_payment_complement_error_message }}
@endif @elseif($invoice->facturama_status === \App\Models\GeneratedInvoice::FACTURAMA_STATUS_FAILED) Error
{{ $invoice->facturama_error_message ?: 'Revisa la vista previa para reintentar.' }}
@else Pendiente @endif
Aún no hay vistas previas finalizadas.
{{ $generatedInvoices->links('vendor.pagination.enterprise') }}
Cerrar
@endsection @push('styles') @endpush @push('scripts') @endpush