@extends('layout') @section('title',$project->code.' · '.$project->name) @section('content')
← Projects
{{ $project->code }}Project delivery

{{ $project->name }}

{{ $project->actor->name }} · {{ $project->manager?->name ?? 'Manager missing' }}

{{ $project->status->label() }}{{ str($project->health)->replace('_',' ')->title() }}
@if(auth()->user()->canAtlas('projects.manage'))Edit project@endif
@foreach(['invoiced','collected','cost','cash_margin','outstanding'] as $key)
{{ str($key)->replace('_',' ')->title() }}{{ number_format($financial[$key],0) }} {{ $project->currency }}
@endforeach
Delivery sequence

Milestones & acceptance

@forelse($project->milestones as $milestone)@empty@endforelse
MilestoneOwnerDueAmountStatus
{{ $milestone->title }}{{ $milestone->acceptance_criteria }}{{ $milestone->owner?->name ?? 'Unassigned' }}{{ $milestone->due_on?->format('d M Y') ?? 'Not set' }}{{ $milestone->amount ? number_format((float)$milestone->amount,0).' '.$project->currency : '—' }}@if(auth()->user()->canAtlas('projects.manage'))
@csrf @method('PUT')
@else{{ str($milestone->status)->replace('_',' ')->title() }}@endif
No milestones recorded.
Scope control

Definition of done

{{ $project->definition_of_done ?: 'Not recorded.' }}
Start
{{ $project->starts_on?->format('d M Y') ?? 'Not set' }}
End
{{ $project->ends_on?->format('d M Y') ?? 'Not set' }}
Opportunity
@if($project->opportunity){{ $project->opportunity->code }}@else Direct project @endif
Governed work

Decisions, commitments & exceptions

@if(auth()->user()->canAtlas('records.create'))+ Add record@endif
@forelse($project->records as $record){{ $record->title }}{{ $record->code }} · {{ $record->type->label() }}{{ str($record->status)->replace('_',' ')->title() }}@empty
No governed records connected to this project.
@endforelse
Billing & collection

Invoices

Finance workspace
@forelse($project->invoices as $invoice)
{{ $invoice->number }}{{ $invoice->due_on?->format('d M Y') ?? 'No due date' }} · collected {{ number_format($invoice->collectedAmount(),0) }}{{ number_format((float)$invoice->total,0) }} {{ $invoice->currency }}
@empty
No invoice connected.
@endforelse
@if(auth()->user()->canAtlas('projects.manage'))
@csrf
Delivery evidence

New milestone

@endif @endsection