{{-- Header bar: recalculate all --}}
@foreach ($rows as $channelId => $row) {{-- Channel name + status badges + rule/calc meta --}} {{-- Cost (ex tax) --}} {{-- Markup --}} {{-- Fee --}} {{-- Price ex Tax --}} {{-- Tax Rate --}} {{-- Price inc Tax --}} {{-- Margin --}} {{-- Calculation breakdown (right-side vertical stack) --}} @endforeach
Channel Cost (ex tax) Markup Fee Price ex Tax Tax Rate Price inc Tax Margin markup ÷ sell price
@php $platformSlug = $row['channel_platform'] ?? ''; $iconPath = public_path("vendor/channels/platforms/small/{$platformSlug}.svg"); $hasIcon = $platformSlug && file_exists($iconPath); $initial = mb_strtoupper(mb_substr($row['channel_name'], 0, 1)); @endphp
@if ($hasIcon) {{ $platformSlug }} @else {{ $initial }} @endif {{ $row['channel_name'] }}
{{-- Locked + Pricer: !unlocked && !isFixed --}} {{-- Locked + Fixed: !unlocked && isFixed --}} Fixed {{-- Unlocked / Editing --}} Editing
{{-- Rule + last calculated --}}
@if ($row['rule_name']) {{ $row['rule_name'] }} · @endif @if ($row['calculated_at']) Calc: {{ $row['calculated_at'] }} @else Never calculated @endif
{{-- Recalculate always on its own line --}}
{{-- Tax rate changed indicator --}}
⚠ Tax rate changed — save, then recalculate
£{{ number_format($row['cost_price'], 2) }} @if ($row['using_average_cost']) AVG @endif @if ($row['fee'] !== '') £{{ $row['fee'] }} @if (($row['fee_summary'] ?? '') !== '') ({{ $row['fee_summary'] }}) @endif @else — @endif
£
%
£
{{-- Cost (always first) --}}
{{ $row['using_average_cost'] ? 'Cost (avg)' : 'Cost' }} £{{ number_format($row['cost_price'], 2) }}
{{-- Option B layout: Cost → Postage → Landed cost subtotal → Markup → Platform fees --}} {{-- Standard layout: Markup → all fee lines (postage + platform) --}} {{-- = ex VAT --}}
ex VAT =
{{-- VAT --}}
+
{{-- = inc VAT --}}
inc VAT =
Prices are locked by default. Click Override to edit — any change marks the price as Fixed. Reset to Pricer to let the pricer recalculate.