{{ __('Relatório dinâmico — Projetos e Programas') }}
{{ __('Impressão do relatório personalizado (colunas e agrupamentos selecionados).') }}
@php $allowedColumns = $allowedColumns ?? []; $selectedColumns = $selectedColumns ?? []; $reportRows = $reportRows ?? []; // Denominação sempre aparece como 1ª coluna; excluir da lista de colunas extras. $printColsData = []; foreach ($selectedColumns as $c) { if ($c !== 'denominacao' && isset($allowedColumns[$c])) { $printColsData[] = $c; } } // Total de colunas: 1 (nome) + extras + 3 (qtd, previsto, disponível) $colCount = 1 + count($printColsData) + 3; @endphp @foreach($printColsData as $colKey) @endforeach @forelse($reportRows as $row) @php $type = (string) ($row['type'] ?? 'data'); $depth = (int) ($row['depth'] ?? 0); $pad = 10 * $depth; @endphp @if($type === 'group_header') @continue @endif @if($type === 'subtotal') @continue @endif @if($type === 'grand_total') @continue @endif {{-- Linha de dado --}} @foreach($printColsData as $colKey) @endforeach @empty @endforelse
{{ __('Projeto / Grupo') }}{{ $allowedColumns[$colKey] }}{{ __('Qtd.') }} {{ __('Total previsto') }} {{ __('Total disponível') }}
{{ (string) ($row['label'] ?? '') }}
{{ __('Subtotal') }} {{ $row['totals']['count'] ?? '' }} R$ {{ number_format((float)($row['totals']['orcamento_previsto'] ?? 0), 2, ',', '.') }} R$ {{ number_format((float)($row['totals']['orcamento_disponivel'] ?? 0), 2, ',', '.') }}
{{ __('Total geral') }} {{ $row['totals']['count'] ?? '' }} R$ {{ number_format((float)($row['totals']['orcamento_previsto'] ?? 0), 2, ',', '.') }} R$ {{ number_format((float)($row['totals']['orcamento_disponivel'] ?? 0), 2, ',', '.') }}
{{ (string) ($row['label'] ?? '') }} @if($colKey === 'prazo') {!! nl2br(e($row['cols'][$colKey] ?? '')) !!} @else {{ $row['cols'][$colKey] ?? '' }} @endif 1 R$ {{ number_format((float)($row['totals']['orcamento_previsto'] ?? 0), 2, ',', '.') }} R$ {{ number_format((float)($row['totals']['orcamento_disponivel'] ?? 0), 2, ',', '.') }}