@extends('layouts.app') @section('title', 'Proposals') @section('content')
{{-- Flash messages --}} @if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif {{-- Page header --}}

Proposals

{{ $totalProposals }} {{ Str::plural('proposal', $totalProposals) }} @if ($pendingCount > 0) · {{ $pendingCount }} pending @endif

@can('proposals.create') New proposal @endcan
{{-- Stat cards --}}
{{-- Total --}}

Total

{{ $totalProposals }}

{{-- Pending --}}

Pending

{{ $pendingCount }}

{{-- Approved --}}

Approved

{{ $approvedCount }}

{{-- Overdue --}}

Overdue

{{ $overdueCount }}

@if ($overdueCount > 0)

requires action

@endif
{{-- Proposals table --}}
@if ($proposals->isEmpty())

No proposals yet

Create your first proposal to get started.

@can('proposals.create') New proposal @endcan
@else @foreach ($proposals as $proposal) @php $sv = $proposal->status instanceof \App\Enums\ProposalStatus ? $proposal->status->value : $proposal->status; $symbol = $proposal->currency instanceof \App\Enums\Currency ? $proposal->currency->symbol() : $proposal->currency; $isOverdue = $proposal->valid_until->isPast() && in_array($sv, ['draft', 'sent']); $badgeClass = match($sv) { 'draft' => 'bg-slate-100 text-slate-600', 'sent' => 'bg-sky-50 text-sky-700', 'approved' => 'bg-emerald-50 text-emerald-700', 'rejected' => 'bg-red-50 text-red-600', 'expired' => 'bg-amber-50 text-amber-700', default => 'bg-slate-100 text-slate-600', }; @endphp @endforeach
Client Project Amount Status Valid Until Actions
{{ $proposal->client->name }} {{ $proposal->project->title }} {{ $symbol }} {{ number_format((float) $proposal->amount, 2) }} {{ ucfirst($sv) }} {{ $proposal->valid_until->format('d M Y') }} View @can('proposals.edit') · Edit @endcan @can('proposals.delete') ·
@csrf @method('DELETE')
@endcan
@if ($proposals->hasPages())

Showing {{ $proposals->firstItem() }}–{{ $proposals->lastItem() }} of {{ $proposals->total() }}

{{ $proposals->links() }}
@endif @endif
@endsection