@php $moeda = fn ($v) => 'R$ '.number_format((float) $v, 2, ',', '.'); $inteiro = fn ($v) => number_format((int) $v, 0, ',', '.'); // [título, dados, explicação] $custos = [ ['Custo total de venda', $custoVenda, 'custo_total_venda'], ['Custo total de operação', $custoOperacao, 'custo_total_operacao'], ]; $parte = fn ($v, $total) => (float) $total > 0 ? number_format((float) $v / (float) $total * 100, 1, ',', '.').'%' : '—'; // Toda linha que abre, para o "Abrir tudo": e{categoria} nas entradas, // g{grupo} e g{grupo}c{categoria} nas saídas. $chaves = [ ...$dre['entradas']->categorias->map(fn ($c) => 'e'.$c->id)->all(), ...$dre['saidas']->grupos->flatMap(fn ($g) => ['g'.$g->codigo, ...$g->categorias->map(fn ($c) => 'g'.$g->codigo.'c'.$c->id)->all()])->all(), ]; // [título, nota, coleção, rótulo da primeira coluna, campo, é débito] // A última soma entradas e saídas, então o total dela não é despesa. $listas = [ ['Saídas por destino', 'o marcador da origem já resolvido: unidade quando é unidade, linha de negócio quando não é', $marcadores, 'Destino', 'destino', true], ['Por forma de pagamento', 'entradas e saídas juntas, em valor absoluto — a coluna que o preparo manual do arquivo descartava todo mês', $formas, 'Forma', 'forma', false], ]; @endphp @if ($vendasForaDoCaixa) {{-- O arquivo do contas a receber parou de trazer a venda de veículo em abr/2025. Sem este aviso, o caixa do mês parece um rombo. --}}

As entradas deste mês estão incompletas. O arquivo do contas a receber não traz a venda de veículo desde abril de 2025, e em {{ $rotulos['atual'] }} foram {{ $inteiro($vendasForaDoCaixa['veiculos']) }} veículos vendidos, {{ $moeda($vendasForaDoCaixa['valor']) }}, sem a entrada correspondente aqui. Para o resultado das lojas, use o Mensal.

@endif
{{-- Os dois cards que o legado erra: ele compara o mês corrente consigo mesmo no lugar do ano anterior. Aqui o comparativo é o mesmo dos demais cartões da casa. --}}
@foreach ($custos as [$titulo, $card, $explicacao]) @endforeach
{{-- DRE do caixa: cada nível abre o seguinte, até o lançamento. O estado de aberto/fechado fica no Alpine — a árvore do mês inteiro já veio, então abrir uma linha não volta ao servidor. --}} Despesas pelas regras de custo
@php $seta = ''; @endphp {{-- (+) Entradas --}} @forelse ($dre['entradas']->categorias as $cat) @php $k = 'e'.$cat->id; @endphp @include('livewire.partes.lancamentos-do-dre', ['lancamentos' => $cat->lancamentos, 'mostrar' => "abertos['$k']", 'recuo' => 'pl-14', 'debito' => false]) @empty @endforelse {{-- (−) Saídas: grupo → categoria → lançamento --}} @foreach ($dre['saidas']->grupos as $grupo) @php $kg = 'g'.$grupo->codigo; @endphp @foreach ($grupo->categorias as $cat) @php $kc = $kg.'c'.$cat->id; @endphp @include('livewire.partes.lancamentos-do-dre', ['lancamentos' => $cat->lancamentos, 'mostrar' => "abertos['$kg'] && abertos['$kc']", 'recuo' => 'pl-20', 'debito' => true]) @endforeach @endforeach {{-- (=) Resultado --}}
Conta Lançamentos Valor Parte
(+) Entradas {{ $inteiro($dre['entradas']->quantidade) }} {{ number_format($dre['entradas']->total, 2, ',', '.') }}
{{ $inteiro($cat->lancamentos->count()) }} {{ number_format($cat->total, 2, ',', '.') }} {{ $parte($cat->total, $dre['entradas']->total) }}
Nenhuma entrada no mês.
(−) Saídas {{ $inteiro($dre['saidas']->quantidade) }} {{ number_format($dre['saidas']->total, 2, ',', '.') }}
{{ $inteiro($grupo->quantidade) }} {{ number_format($grupo->total, 2, ',', '.') }} {{ $parte($grupo->total, $dre['saidas']->total) }}
{{ $inteiro($cat->lancamentos->count()) }} {{ number_format($cat->total, 2, ',', '.') }} {{ $parte($cat->total, $dre['saidas']->total) }}
(=) Resultado do caixa $dre['resultado'] < 0, 'text-emerald-700' => $dre['resultado'] >= 0])>{{ number_format($dre['resultado'], 2, ',', '.') }}
@foreach ($listas as [$titulo, $nota, $linhas, $cabecalho, $campo, $debito]) @forelse ($linhas as $linha) @empty @endforelse
{{ $cabecalho }} Lançamentos Total
{{ $linha->{$campo} }} @if ($campo === 'destino' && $linha->entra_no_rateio) rateado @endif {{ $inteiro($linha->lancamentos) }} $debito])>{{ number_format((float) $linha->total, 2, ',', '.') }}
Nada no período.
@endforeach