@php $stageBadge = [ 'prospect' => 'sky', 'contacted' => 'cyan', 'meeting' => 'indigo', 'requirement' => 'violet', 'qualified' => 'fuchsia', 'proposal' => 'amber', 'negotiation' => 'orange', 'won' => 'emerald', 'lost' => 'rose', 'deferred' => 'slate', ]; $today = now()->startOfDay(); $overdue = $opportunity->isOpen() && $opportunity->next_action_due && $opportunity->next_action_due->lt($today); $notGiven = __('Not recorded'); $field = fn ($value) => filled($value) ? $value : null; $doneCount = collect($checklist)->where('done', true)->count(); $select = 'mt-1 block w-full rounded-xl border-slate-300 text-sm shadow-sm focus:border-indigo-500 focus:ring-indigo-500'; @endphp
{{ __('Won is reached when Administration links the confirmed job for this opportunity.') }}
@endif{{ __('Next action') }}
{{ $opportunity->next_action ?: __('No next action recorded') }}
@if ($opportunity->next_action_due) {{ $overdue ? __('Overdue since :date', ['date' => $opportunity->next_action_due->format('j M Y')]) : __('Due :date', ['date' => $opportunity->next_action_due->format('l j M Y')]) }} @else {{ __('No date given') }} @endif
{{ __('Outcome') }}
{{ \App\Models\Opportunity::STAGES[$opportunity->stage] }} @if ($opportunity->outcome_at) · {{ $opportunity->outcome_at->timezone(config('app.display_timezone'))->format('j M Y') }} @endif
@if ($reasonLabel){{ $reasonLabel }}
@endif @if ($opportunity->reason_note){{ $opportunity->reason_note }}
@endif @if ($opportunity->stage === 'deferred' && $opportunity->review_on){{ __('Review again on :date.', ['date' => $opportunity->review_on->format('j M Y')]) }}
@endif| {{ __('Item') }} | {{ __('Size or variant') }} | {{ __('Qty') }} | {{ __('Unit price') }} | {{ __('Total') }} |
|---|---|---|---|---|
| {{ $line->description }} | {{ $line->variant ?: __('None') }} | {{ (float) $line->quantity }} | @if ($line->unit_price === null) {{ __('Not estimated') }} @else {{ $opportunity->currency_code }} {{ number_format((float) $line->unit_price, 2) }} @endif | @if ($line->estimatedTotal() === null) {{ __('Not estimated') }} @else {{ $opportunity->currency_code }} {{ number_format($line->estimatedTotal(), 2) }} @endif |
|
|
||||
{{ __('Line total: :amount', ['amount' => $opportunity->currency_code.' '.number_format($catalogueLines->sum(fn ($line) => $line->estimatedTotal()), 2)]) }}
@else{{ __('Line total: Not estimated') }}
@endif{{ __('The Products note above is for anything not in the catalogue. The estimated value can follow these lines and can still be changed.') }}
{{ __('Estimated value') }}
@if ($opportunity->estimated_value === null){{ __('Not estimated') }}
@else{{ $opportunity->currency_code }} {{ number_format((float) $opportunity->estimated_value, 2) }}
@if ($baseCode && $opportunity->currency_code !== $baseCode){{ $baseCode }} {{ number_format($opportunity->estimatedValueBaseOrNull(), 2) }} {{ __('at the rate when opened') }}
@endif @endif{{ __('People') }}
{{ __('Qualification checklist') }}
{{ $doneCount }}/{{ count($checklist) }}{{ __('All six are needed before Qualified, and before a quote stage.') }}
{{ __('The originator stays the same. The new and old owners are told, and the reason is kept on the timeline.') }}
{{ __('Collaborators support the owner and can work on the opportunity. They are credited under "supported", never added to the owner\'s figures.') }}