@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
| This period | Previous | Change | |
|---|---|---|---|
| {{ $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']) !!} |
| Received from clients | {{ money($cash['received']) }} |
| Paid to vendors | −{{ money($cash['vendors']) }} |
| Operating expenses paid | −{{ money($cash['expenses']) }} |
| Net cash flow | {{ money($net) }} |