@extends('layouts.app') @section('title', $project->reference) @section('content')

{{ $project->reference }}

{{ $project->title }}

Stage: {{ $project->stage }} · Currency {{ $project->currency }} @if($project->isArchived())· Archived@endif

Edit @unless($project->isArchived())
@csrf
@endunless
@if($project->notes)

{{ $project->notes }}

@endif

Revisions & files

@forelse($project->revisions as $revision)

Revision {{ $revision->revision_number }} {{ $revision->status }}

@if(! $revision->isApproved())
@csrf
@else Approved by {{ $revision->approver?->username }} on {{ $revision->approved_at?->format('d M Y') }} @endif
@if($revision->change_notes)

{{ $revision->change_notes }}

@endif
    @foreach($revision->files as $file)
  • {{ $file->extension }} {{ $file->original_filename }} ({{ number_format($file->byte_size / 1024, 1) }} KB) Download
  • @endforeach
@empty

No revisions uploaded yet.

@endforelse
Upload a new revision
@csrf

Listings

@forelse($project->listingLinks as $link)

Listing #{{ $link->listing_id }} {{ $link->variation_key }}@if($link->isDetached())Detached@endif

@unless($link->isDetached())
@csrf @method('DELETE')
@endunless

{{ $link->title_snapshot }} · State: {{ $link->state_snapshot ?? 'unknown' }} · Synced {{ $link->synced_at?->diffForHumans() ?? 'never' }}

@if($link->liveRelease)

Live: revision {{ $link->liveRelease->revision->revision_number }} ({{ $link->liveRelease->action }} on {{ $link->liveRelease->released_at->format('d M Y') }})

@else

No release pointer set yet.

@endif
Release / revert
@csrf
@if($project->releases->isNotEmpty())
@csrf
@endif
@empty

No listings linked yet.

@endforelse
Link an Etsy listing
@csrf

Costing

@forelse($project->costSnapshots as $snapshot) @empty @endforelse
RevisionBasisFilamentPackagingShippingTotalPer unit
Rev {{ $snapshot->revision->revision_number }} {{ $snapshot->basis }} {{ $snapshot->filament_total ?? 'not costed' }} {{ $snapshot->packaging_total ?? 'not costed' }} {{ $snapshot->shipping_total ?? 'not costed' }} {{ $snapshot->grand_total ?? 'not costed' }} {{ $snapshot->perUnitGrandTotal() ?? '—' }} / {{ $snapshot->batch_units }}
No cost snapshots recorded.
Record a cost snapshot
@csrf

{{ $project->currency }} only. Filament and packaging quantities cover the batch. Shipping quantities describe parcels in one shipment; cost is allocated by units per parcel to the saleable yield. Enter zero intentionally; omit uncosted categories. Excludes fees, tax, labour and energy — not net profit.

@for($i = 0; $i < 3; $i++)
Cost line {{ $i + 1 }}
@endfor

History

@endsection