@extends('layouts.app') @section('title', 'Cotizaciones — ' . \App\Models\Setting::get('app_name', 'TI Manager')) @section('content')
{{-- Filtros --}}
@php $currentStatus = request('status', 'all'); @endphp Todos los estados @if(!auth()->user()->isClient()) Borrador @endif {{ auth()->user()->isClient() ? 'Por Aprobar' : 'Enviada' }} Aceptada Rechazada
@if($quotes->count() > 0) {{-- VISTA LISTA: Tabla --}}
@if(auth()->user()->isAdmin()) @endif @foreach($quotes as $quote) @if(auth()->user()->isAdmin()) @endif @endforeach
Número Cliente / EmpresaCreadorFecha Total Estado Acciones
{{ $quote->quote_number }}
{{ $quote->customer_name }}
@if($quote->customer_email)
{{ $quote->customer_email }}
@endif
{{ $quote->creator ? $quote->creator->name : 'Sistema' }}
{{ $quote->created_at->format('d M, Y') }} ${{ number_format($quote->total, 0) }} @php $statusColors = [ 'Borrador' => ['bg' => 'rgba(150, 150, 150, 0.1)', 'color' => '#6b7280'], 'Enviada' => ['bg' => 'rgba(20, 167, 237, 0.1)', 'color' => '#14a7ed'], 'Aceptada' => ['bg' => 'rgba(145, 200, 73, 0.1)', 'color' => '#91c849'], 'Rechazada' => ['bg' => 'rgba(239, 68, 68, 0.1)', 'color' => '#ef4444'], ]; $color = $statusColors[$quote->status] ?? $statusColors['Borrador']; $isExpired = $quote->valid_until && $quote->valid_until->isPast() && $quote->status !== 'Aceptada'; @endphp
{{ (auth()->user()->isClient() && $quote->status === 'Enviada') ? 'Por Aprobar' : $quote->status }} @if($isExpired) Vencida @endif
@if(auth()->user()->isClient() && $quote->status === 'Enviada') Aprobar @endif @if(!auth()->user()->isClient() && $quote->status === 'Borrador') @endif @if(!auth()->user()->isClient() && in_array($quote->status, ['Enviada', 'Aceptada', 'Rechazada'])) @endif @if(!auth()->user()->isClient())
@csrf @method('DELETE')
@endif
{{-- VISTA TARJETAS: Grid responsivo --}}
@foreach($quotes as $quote)
{{ $quote->quote_number }}
@php $statusColors = [ 'Borrador' => ['bg' => 'rgba(150, 150, 150, 0.1)', 'color' => '#6b7280'], 'Enviada' => ['bg' => 'rgba(20, 167, 237, 0.1)', 'color' => '#14a7ed'], 'Aceptada' => ['bg' => 'rgba(145, 200, 73, 0.1)', 'color' => '#91c849'], 'Rechazada' => ['bg' => 'rgba(239, 68, 68, 0.1)', 'color' => '#ef4444'], ]; $color = $statusColors[$quote->status] ?? $statusColors['Borrador']; $isExpired = $quote->valid_until && $quote->valid_until->isPast() && $quote->status !== 'Aceptada'; @endphp
{{ (auth()->user()->isClient() && $quote->status === 'Enviada') ? 'Por Aprobar' : $quote->status }} @if($isExpired) Vencida @endif
{{ $quote->customer_name }}
@if($quote->customer_email)
Email {{ $quote->customer_email }}
@endif @if(auth()->user()->isAdmin())
Creador {{ $quote->creator ? $quote->creator->name : 'Sistema' }}
@endif
Fecha {{ $quote->created_at->format('d/m/Y') }}
Total ${{ number_format($quote->total, 0) }}
@if(auth()->user()->isClient() && $quote->status === 'Enviada') Aprobar Imprimir @endif Ver @if(!auth()->user()->isClient() && in_array($quote->status, ['Enviada', 'Aceptada', 'Rechazada'])) @endif @if(!auth()->user()->isClient() && $quote->status === 'Borrador') Editar @endif @if(!auth()->user()->isClient())
@csrf @method('DELETE')
@endif
@endforeach
{{-- Paginación --}} @if($quotes->hasPages())
{{ $quotes->links() }}
@endif @else

No hay cotizaciones registradas

Aún no hay cotizaciones en el sistema.

@if(!auth()->user()->isClient()) Crear la primera cotización @endif
@endif
@endsection