@extends('layouts.app') @section('title', 'Profit & loss') @section('content') @php $change = fn ($c, $p) => abs($p) < 0.005 ? null : round(($c - $p) / abs($p) * 100, 1); $delta = function ($c, $p, $cost = false) use ($change) { $d = $change($c, $p); if ($d === null) return '—'; $dir = abs($d) < 0.05 ? 'flat' : ($d > 0 ? 'up' : 'down'); $icon = $dir === 'up' ? 'arrow-up-right' : ($dir === 'down' ? 'arrow-down-right' : 'dash'); return ''.number_format(abs($d), 1).'%'; }; $net = $cash['received'] - $cash['vendors'] - $cash['expenses']; $rows = [ ['Sales, net of discounts', $revenue, $prev['revenue'], false, 'fw-normal'], ['Less: vendor purchases & job work', -$purchases, -$prev['purchases'], true, 'fw-normal'], ['Gross profit', $grossProfit, $prev['grossProfit'], false, 'fw-bold'], ]; @endphp @include('reports._range')
Sales (net)
{{ money($revenue) }}
{!! $delta($revenue, $prev['revenue']) !!}
Gross profit
{{ money($grossProfit) }}
{!! $delta($grossProfit, $prev['grossProfit']) !!}
Expenses
{{ money($totalExpenses) }}
{!! $delta($totalExpenses, $prev['totalExpenses'], true) !!}
Net profit
{{ money($netProfit) }}
Previous: {{ money($prev['netProfit']) }}
This period vs previous
Profit & loss statementBased on order and bill dates · {{ $orderCount }} orders
@foreach ($rows as [$label, $a, $b, $cost, $weight]) @endforeach @forelse ($expensesByCategory as $row) @php($pv = (float) ($prev['expensesByCategory']->firstWhere('expense_category_id', $row->expense_category_id)->total ?? 0)) @empty @endforelse
 This periodPreviousChange
{{ $label }}{{ money($a) }}{{ money($b) }}{!! $delta($a, $b) !!}
Operating expenses
{{ $row->category->name }}−{{ money($row->total) }}−{{ money($pv) }}{!! $delta((float) $row->total, $pv, true) !!}
No expenses in this period{{ money(0) }}{{ money(0) }}
Total expenses−{{ money($totalExpenses) }}−{{ money($prev['totalExpenses']) }}{!! $delta($totalExpenses, $prev['totalExpenses'], true) !!}
Net profit{{ money($netProfit) }}{{ money($prev['netProfit']) }}{!! $delta($netProfit, $prev['netProfit']) !!}
Cash summaryMoney actually moved
Received from clients{{ money($cash['received']) }}
Paid to vendors−{{ money($cash['vendors']) }}
Operating expenses paid−{{ money($cash['expenses']) }}
Net cash flow{{ money($net) }}
@endsection