@php $numero = fn ($v): string => number_format((int) $v, 0, ',', '.'); $mes = fn (string $m): string => substr($m, 5, 2).'/'.substr($m, 0, 4); $tipos = ['financeiro' => 'Lançamentos', 'veiculos' => 'Veículos', 'estoque' => 'Estoque']; $botaoPrincipal = 'inline-flex h-[2.125rem] items-center gap-2 rounded-md bg-marca-700 px-4 text-sm font-medium text-white shadow-xs transition-colors hover:bg-marca-800 disabled:opacity-60'; @endphp
{{-- O seletor nativo fala inglês ("Choose File") e ignora o desenho do sistema: o campo real fica escondido e o rótulo vira o botão. --}}
Arquivo .csv ou .xls
$errors->has('arquivo'), 'border-fio' => ! $errors->has('arquivo'), ])> Nenhum arquivo escolhido enviando…
@error('arquivo')

{{ $message }}

@enderror {{-- O que acontece com cada linha, no rodapé do próprio passo. --}}
@foreach ([ ['Nova', 'entra; linhas iguais no mesmo arquivo entram todas', 'bg-emerald-500'], ['Já importada', 'outro arquivo já trouxe a mesma linha', 'bg-slate-400'], ['Recusada', 'data inválida, loja desconhecida, coluna faltando: vai para a quarentena', 'bg-rose-500'], ] as [$rotulo, $explicacao, $cor])
{{ $rotulo }}
{{ $explicacao }}
@endforeach
@if ($conferencia)

Conferido, nada gravado ainda

@foreach ([ ['Linhas lidas', $conferencia['lidas'], 'text-tinta'], ['Novas', $conferencia['importadas'], 'text-emerald-700'], ['Já importadas', $conferencia['repetidas'], 'text-suave'], ['Recusadas', $conferencia['total_recusadas'], $conferencia['total_recusadas'] > 0 ? 'text-rose-700' : 'text-suave'], ] as [$rotulo, $valor, $cor])
{{ $rotulo }}
{{ $numero($valor) }}
@endforeach
@if (count($conferencia['meses']) > 1)

O arquivo tem linhas de {{ count($conferencia['meses']) }} meses: @foreach ($conferencia['meses'] as $m => $linhas) {{ $mes((string) $m) }} ({{ $numero($linhas) }}){{ $loop->last ? '.' : ',' }} @endforeach Confira se é o arquivo certo.

@elseif ($conferencia['tipo'] === 'estoque') {{-- O estoque não é de um mês: é a fotografia de um momento. --}}

Fotografia do estoque: {{ $conferencia['arquivo'] }}. Ela passa a ser a mais recente se for mais nova que a que já está no painel.

@elseif (count($conferencia['meses']) === 1)

Mês: {{ $mes((string) array_key_first($conferencia['meses'])) }}

@endif @if ($conferencia['total_parecidas'] > 0)

{{ $numero($conferencia['total_parecidas']) }} linhas novas se parecem com lançamentos de outro arquivo: mesmo favorecido, datas e valor, com descrição diferente. Elas entram — confira se não são o mesmo título editado no sistema de gestão.

Linhas {{ implode(', ', $conferencia['parecidas']) }}{{ $conferencia['total_parecidas'] > count($conferencia['parecidas']) ? '…' : '' }}

@endif @if ($conferencia['total_recusadas'] > 0)

Recusadas, que irão para a quarentena

    @foreach ($conferencia['recusadas'] as $recusada)
  • linha {{ $recusada['linha'] }} {{ $recusada['motivo'] }}
  • @endforeach
@if ($conferencia['total_recusadas'] > count($conferencia['recusadas']))

e mais {{ $numero($conferencia['total_recusadas'] - count($conferencia['recusadas'])) }}

@endif
@endif
@if ($conferencia['importadas'] > 0) @else

Nenhuma linha nova: não há o que importar.

@endif
@elseif ($concluida)
$concluida['gravada'] && $concluida['total_recusadas'] === 0, 'border-amber-200 bg-amber-50 text-amber-900' => $concluida['gravada'] && $concluida['total_recusadas'] > 0, 'border-fio bg-superficie text-tinta' => ! $concluida['gravada'], ])> @if ($concluida['gravada'])

Importado: {{ $concluida['arquivo'] }}

{{ $numero($concluida['importadas']) }} novas, {{ $numero($concluida['repetidas']) }} já importadas, {{ $numero($concluida['total_recusadas']) }} recusadas.

@if ($concluida['total_recusadas'] > 0)

As recusadas estão na quarentena. Reveja antes de usar os números do mês.

@endif @else

Nada foi gravado: {{ $concluida['arquivo'] }}

Nenhuma linha nova passou.

@endif
@endif @forelse ($historico as $importacao) @empty @endforelse
Quando Arquivo Tipo Mês Novas Já importadas Recusadas Por
{{ date('d/m/Y H:i', (int) strtotime((string) $importacao->created_at)) }} {{ $importacao->arquivo }} {{ $tipos[$importacao->tipo] ?? $importacao->tipo }} {{ $importacao->competencia ? $mes(substr((string) $importacao->competencia, 0, 7)) : '—' }} {{ $numero($importacao->linhas_importadas) }} {{ $numero($importacao->linhas_repetidas) }} @if ($importacao->linhas_recusadas > 0) {{ $numero($importacao->linhas_recusadas) }} @else 0 @endif {{ $importacao->usuario ?? 'linha de comando' }}
Nenhum arquivo importado pelo sistema novo ainda.