@php use App\Visual\Cores; // [rótulo, campo, alta é boa, formato, soma (a média de 3 meses divide por 3)] $cartoesVenda = [ ['Unidades vendidas', 'quantidade', true, 'inteiro', true, 'vendas_unidades'], ['Valor de venda', 'faturamento', true, 'moeda', true, 'faturamento'], ['Lucro nos veículos', 'lucro', true, 'moeda', true, 'lucro_veiculos'], ['Ticket médio', 'ticket_medio', true, 'moeda', false, 'ticket_medio'], ['Lucro médio', 'lucro_medio', true, 'moeda', false, 'lucro_medio'], ['Dias em pátio', 'dias_patio_medio', false, 'decimal', false, 'dias_patio'], ]; $mediaVenda = fn (string $campo, bool $soma) => (int) $vendas['tresMeses']->quantidade === 0 ? null : ($soma ? (float) $vendas['tresMeses']->{$campo} / 3 : (float) $vendas['tresMeses']->{$campo}); $atual = $vendas['atual']; $comVendas = fn (object $v, string $campo) => (int) $v->quantidade > 0 ? $v->{$campo} : null; @endphp @if ($resultado && ($totalLojas = $resultado['atual']->get('TOTAL LOJAS'))) @php $mediaTotal = fn (string $campo) => ($t = $resultado['tresMeses']->get('TOTAL LOJAS')) ? (float) $t->{$campo} / 3 : null; @endphp
últimos 13 meses Resultado por loja
@foreach ([ ['Lucro nos veículos', 'lucro_veiculos', true, 'lucro_veiculos'], ['Outras receitas', 'outras_receitas', true, 'outras_receitas'], ['Despesas totais', 'custo_total', false, 'despesas_totais'], ] as [$rotulo, $campo, $altaEBoa, $explicacao]) @endforeach
@endif
$resultado !== null])>

{{ $proprio ? 'Minhas vendas' : ($filialNome ? 'Vendas da equipe de '.mb_convert_case($filialNome, MB_CASE_TITLE) : 'Vendas') }}

{{ $proprio ? 'Minhas vendas por marca e loja' : 'Vendas por loja e vendedor' }}
@foreach ($cartoesVenda as [$rotulo, $campo, $altaEBoa, $formato, $soma, $explicacao]) @if ($campo === 'quantidade' && (int) $atual->quantidade > 0) @php $primeira = (int) $atual->primeira_quinzena; $segunda = (int) $atual->quantidade - $primeira; $parte = $primeira / (int) $atual->quantidade * 100; @endphp {{-- Duas cores, e não uma barra que enche: não é progresso, é a divisão do mês entre as duas quinzenas. --}}
{{ $primeira }} na 1ª quinzena {{ $segunda }} na 2ª
@endif
@endforeach
@if ($metas && ((int) $metas['unidades'][1] > 0 || (float) $metas['valor'][1] > 0)) @php $cumprimento = fn (float $feito, float $alvo): ?float => $alvo > 0 ? $feito / $alvo * 100 : null; $tom = fn (?float $p): string => match (true) { $p === null => 'text-suave', $p >= 100 => 'text-emerald-700', $p >= 70 => 'text-amber-700', default => 'text-rose-700' }; $barra = fn (?float $p): string => match (true) { $p === null => 'bg-slate-300', $p >= 100 => 'bg-emerald-600', $p >= 70 => 'bg-amber-500', default => 'bg-rose-500' }; @endphp

{{ $metas['proprio'] ? 'Minha meta' : ($filialNome ? 'Meta da equipe de '.mb_convert_case($filialNome, MB_CASE_TITLE) : 'Meta da equipe') }}

{{ $metas['proprio'] ? 'Minha meta no bimestre, semestre e ano' : 'Meta por vendedor' }}
! $metas['proprio']])> @foreach ([ ['Unidades', $metas['unidades'][0], $metas['unidades'][1], fn ($v) => number_format((float) $v, 0, ',', '.').' veículos', 'meta_unidades'], ['Valor', $metas['valor'][0], $metas['valor'][1], fn ($v) => 'R$ '.number_format((float) $v, 2, ',', '.'), 'meta_valor'], ] as [$rotulo, $feito, $alvo, $formato, $explicacao]) @php $p = $cumprimento((float) $feito, (float) $alvo); @endphp
{{ $rotulo }}
{{ $p === null ? '—' : number_format($p, 1, ',', '.').'%' }} {{ $formato($feito) }} de {{ $formato($alvo) }}
@if ($p !== null) @endif
@endforeach @unless ($metas['proprio'])
Bateram a meta de valor
{{ $metas['bateram'] }} de {{ $metas['comMeta'] }} {{ $metas['comMeta'] === 1 ? 'vendedor com meta' : 'vendedores com meta' }}
@if ($metas['comMeta'] > 0) {{-- Um traço por vendedor: dá para contar quem bateu. --}} @endif
@endunless
@endif @if ($resultado && $resultado['atual']->isNotEmpty()) @php $destinos = $resultado['atual']->filter(fn ($l) => $l->tipo !== 'total')->keys(); $mediaDe = fn (string $destino) => ($t = $resultado['tresMeses']->get($destino)) ? (float) $t->custo_direto / 3 : null; @endphp

Despesas

pelas regras de custo · a geral antes do rateio

Despesas por centro de custo
@foreach ($destinos as $destino) @endforeach
@endif