Resumo Final — Sessão #{{ $sessao->numero }} ({{ $sessao->tipo }})
{{ $sessao->data_sessao->format('d/m/Y') }}
{{ ucfirst($sessao->status) }} Gerar Relatório Final Ver auditoria completa
@if($sessao->status !== 'encerrada')
Sessão ainda em andamento — dados parciais.
@endif {{-- ===================== Conferência da Sessão ===================== --}}
Conferência da Sessão
{{ $conferencia['sessao_encerrada'] ? '✓' : '⚠' }} Sessão {{ $conferencia['sessao_encerrada'] ? 'encerrada' : 'ainda não encerrada' }} {{ $conferencia['presenca_registrada'] ? '✓' : '⚠' }} Presença {{ $conferencia['presenca_registrada'] ? 'registrada' : 'não registrada' }} {{ $conferencia['sem_votacao_aberta'] ? '✓ Nenhuma votação aberta' : '⚠ Existe votação aberta' }} {{ $conferencia['resultados_consolidados'] ? '✓' : '⚠' }} Resultados consolidados {{ $conferencia['auditoria_disponivel'] ? '✓' : '⚠' }} Auditoria {{ $conferencia['auditoria_disponivel'] ? 'disponível' : 'sem eventos' }} @if(! $conferencia['ata']) ⚠ Ata ainda não gerada @elseif(! $conferencia['ata']->publicar_site) ⚠ Ata ainda não publicada @else ✓ Ata publicada @endif
@if(! $conferencia['ata'])
@csrf
@elseif(! $conferencia['ata']->publicar_site) Visualizar Ata @else Visualizar Ata @endif
{{-- ===================== Cabeçalho ===================== --}}
Identificação
Número / Tipo#{{ $sessao->numero }} — {{ $sessao->tipo }}
Data{{ $sessao->data_sessao->format('d/m/Y') }}
Situação{{ ucfirst($sessao->status) }}
Legislatura{{ $sessao->legislatura?->label() ?? '—' }}
Sessão Legislativa{{ $sessao->sessaoLegislativa?->nome ?? '—' }}
Horário de início{{ $cabecalho['horario_abertura']?->format('H:i') ?? '—' }}
Horário de encerramento{{ $cabecalho['horario_encerramento']?->format('H:i') ?? '—' }}
Duração total @if($cabecalho['duracao_segundos'] !== null) {{ sprintf('%dh%02dmin', intdiv($cabecalho['duracao_segundos'], 3600), intdiv($cabecalho['duracao_segundos'] % 3600, 60)) }} @else — @endif
Presidente{{ $cabecalho['presidente']?->name ?? '—' }}
1º Secretário{{ $cabecalho['secretario']?->name ?? '—' }}
{{-- ===================== Presença ===================== --}}
Presença
{{ $presenca['total'] }} vereadores — {{ $presenca['presentes'] }} presentes, {{ $presenca['ausentes'] }} ausentes
{{-- ===================== Matérias da Sessão ===================== --}}
Matérias da Sessão
Total{{ $materias['total'] }}
Apreciadas{{ $materias['apreciadas']->count() }}
Somente lidas{{ $materias['somente_lidas']->count() }}
Aprovadas{{ $materias['aprovadas'] }}
Rejeitadas{{ $materias['rejeitadas'] }}
Não apreciadas{{ $materias['nao_apreciadas']->count() }}
@if($materias['apreciadas']->isNotEmpty()) @foreach($materias['apreciadas'] as $sm) @endforeach
MatériaAutorResultado
{{ $sm->materia->tipo }}{{ $sm->materia->numero ? ' nº ' . $sm->materia->numero . '/' . $sm->materia->ano : '' }} — {{ $sm->materia->titulo }} {{ $sm->materia->autor?->name ?? '—' }} {{ ucfirst($sm->resultado) }} Detalhes
@endif
{{-- ===================== Resumo das Votações ===================== --}}
Resumo das Votações @forelse($votacoes as $v)
@if($v['tipo'] === 'individual') {{ $v['materia']->tipo }}{{ $v['materia']->numero ? ' nº ' . $v['materia']->numero . '/' . $v['materia']->ano : '' }} — {{ $v['materia']->titulo }} @else Votação em bloco — {{ $v['itens']->count() }} matérias
{{ $v['itens']->map(fn ($i) => $i->materia->titulo)->implode('; ') }}
@endif
{{ ucfirst($v['resultado']) }} Favor: {{ $v['favor'] }} · Contra: {{ $v['contra'] }} · Abstenção: {{ $v['abstencao'] }} @if($v['modalidade']) · Modalidade: {{ $v['modalidade'] }} @endif @if($v['abertura'] && $v['encerramento']) · {{ $v['abertura']->format('H:i') }}–{{ $v['encerramento']->format('H:i') }} @endif
{{-- Microetapa "Relatório Nominal" (Parte B) — nunca mostra nomes em votação secreta (nominal === null), item 23. --}} @if($v['nominal'])
Favor @forelse($v['nominal']['favor'] as $nome)
{{ $nome }}
@empty
—
@endforelse
Contra @forelse($v['nominal']['contra'] as $nome)
{{ $nome }}
@empty
—
@endforelse
Abstenção @forelse($v['nominal']['abstencao'] as $nome)
{{ $nome }}
@empty
—
@endforelse
@else
Votação secreta — votos individuais não divulgados.
@endif @if($v['deliberacao'])
Regra: {{ $v['deliberacao']['regra_nome'] }} @if($v['deliberacao']['necessarios'] !== null) · Necessários: {{ $v['deliberacao']['necessarios'] }} @endif
@endif
@empty

Nenhuma votação finalizada nesta sessão.

@endforelse
{{-- ===================== Tentativas de votação canceladas ===================== --}} @if($votacoesCanceladas->isNotEmpty())
Tentativas de votação canceladas
@foreach($votacoesCanceladas as $c)
{{ $c['materia'] }}
Tentativa {{ $c['tentativa'] ?? '—' }} — Cancelada @if($c['motivo'])
Motivo: {{ $c['motivo'] }}@endif
Horário: {{ $c['horario'] }}
Operador: {{ $c['operador'] }}
{{ $c['votos_registrados'] }} {{ $c['votos_registrados'] === 1 ? 'voto havia sido registrado' : 'votos haviam sido registrados' }}
@endforeach
@endif {{-- ===================== Suspensões ===================== --}}
Suspensões da Sessão @forelse($suspensoes as $s)
Suspensa às {{ $s['suspensa_em'] }}{{ $s['motivo'] ? ' — Motivo: ' . $s['motivo'] : '' }}
@if($s['retomada_em']) Retomada às {{ $s['retomada_em'] }}{{ $s['duracao'] ? ' — duração: ' . $s['duracao'] : '' }} @else Ainda suspensa @endif — Operador: {{ $s['operador'] }}
@empty

Nenhuma suspensão registrada.

@endforelse
{{-- ===================== Ocorrências ===================== --}}
Ocorrências @forelse($ocorrencias as $o)
{{ $o['horario'] }} — {{ $o['tipo'] }}
{{ $o['descricao'] }} — registrado por {{ $o['responsavel'] }}
@empty

Nenhuma ocorrência registrada.

@endforelse
{{-- ===================== Questões de Ordem (Etapa F) ===================== --}} @if($questoesOrdem['total'] > 0)
Questões de Ordem @foreach(['pendentes' => 'Pendentes', 'decididas' => 'Decididas', 'retiradas' => 'Retiradas'] as $grupo => $rotulo) @if($questoesOrdem[$grupo]->isNotEmpty())
{{ $rotulo }} @if($grupo === 'decididas')@endif @foreach($questoesOrdem[$grupo] as $qo) @if($grupo === 'decididas') @endif @endforeach
HorárioVereadorMatériaQuestãoDecisão
{{ $qo->suscitada_em->format('H:i') }} {{ $qo->vereador->name }} @if($qo->sessaoMateria?->materia) {{ $qo->sessaoMateria->materia->tipo }}{{ $qo->sessaoMateria->materia->numero ? ' nº '.$qo->sessaoMateria->materia->numero.'/'.$qo->sessaoMateria->materia->ano : '' }} @else — @endif {{ \Illuminate\Support\Str::limit($qo->questao, 80) }}{{ \Illuminate\Support\Str::limit($qo->decisao, 80) }} ({{ $qo->decidida_em?->format('H:i') }})
@endif @endforeach
@endif {{-- ===================== Requerimentos / Incidentes (Etapa I) ===================== --}} @if($requerimentos->isNotEmpty())
Requerimentos / Incidentes @foreach($requerimentos as $r) @endforeach
TipoMatériaSolicitanteDecisão VotaçãoResultadoEfeitoStatus
{{ $r['tipo'] }} @if($r['materia']) {{ $r['materia']->tipo }}{{ $r['materia']->numero ? ' nº '.$r['materia']->numero.'/'.$r['materia']->ano : '' }} @else — @endif {{ $r['solicitante'] }} @if($r['registrado_por'])
registrado por {{ $r['registrado_por'] }} @endif
{{ $r['forma_decisao'] === 'plenario' ? 'Plenário' : ($r['forma_decisao'] === 'automatica' ? 'Automática' : 'Presidência') }} @if($r['decisao_presidencial'])
{{ \Illuminate\Support\Str::limit($r['decisao_presidencial'], 60) }} @endif @if($r['autoridade'])
Autoridade: {{ $r['autoridade'] }}@if($r['executor'] && $r['executor'] !== $r['autoridade']) · registrado por {{ $r['executor'] }}@endif @endif
@if($r['regra_deliberativa']) {{ $r['regra_deliberativa'] }} @if($r['votos_necessarios'] !== null)
Necessários: {{ $r['votos_necessarios'] }}@endif @if($r['votos_favor'] !== null)
Favor: {{ $r['votos_favor'] }} · Contra: {{ $r['votos_contra'] }} · Abst.: {{ $r['votos_abstencao'] }} @endif @else — @endif
{{ in_array($r['status'], ['aprovado','deferido']) ? ucfirst($r['status']) : (in_array($r['status'], ['rejeitado','indeferido']) ? ucfirst($r['status']) : '—') }} {{ $r['efeito_aplicado'] ? (\App\Models\Requerimento::LABELS_EFEITO[$r['efeito_aplicado']] ?? $r['efeito_aplicado']) : '—' }} {{ ucfirst(str_replace('_', ' ', $r['status'])) }}
@endif {{-- ===================== Subscrições de Matéria (Etapa N) — instituto PRÓPRIO de AUTORIA, independente de Requerimentos acima. Só solicitações DECIDIDAS nesta sessão (pendentes/canceladas ficam de fora — Resumo é pós-sessão, só fato consumado). ===================== --}} @if($subscricoes->isNotEmpty())
Subscrições de Matéria @foreach($subscricoes as $s) @endforeach
VereadorMatériaDecisãoAutoridade
{{ $s->vereador->name }} @if($s->registradoPor)
registrada por {{ $s->registradoPor->name }} @endif
{{ $s->materia->tipo }}{{ $s->materia->numero ? ' nº '.$s->materia->numero.'/'.$s->materia->ano : '' }} {{ $s->isAceita() ? 'Aceita' : 'Recusada' }} {{ $s->autoridadeDecisao?->name ?? '—' }}
@endif {{-- ===================== Encaminhamento (Etapa K) ===================== --}} @if($encaminhamentos->isNotEmpty())
Encaminhamento @foreach($encaminhamentos as $e)
Matéria: {{ $e['materia'] }}
Aberto: {{ $e['aberto_em'] ?? '—' }} · Encerrado: {{ $e['encerrado_em'] ?? 'em andamento' }}
@if(! empty($e['oradores']))
Oradores:
    @foreach($e['oradores'] as $orador)
  • {{ $orador['nome'] }}@if($orador['inicio']) — {{ $orador['inicio'] }}@if($orador['fim']) às {{ $orador['fim'] }}@endif @endif
  • @endforeach
@endif
@endforeach
@endif {{-- ===================== Verificações de Quórum (Etapa E) ===================== --}} @if($verificacoesQuorum->isNotEmpty())
Verificações de Quórum @foreach($verificacoesQuorum as $v) @endforeach
HorárioFinalidadeFaseMatériaPresentes
{{ $v->criado_em->format('H:i') }} {{ $v->finalidadeLabel() }} {{ $v->faseRegimental->nome ?? '—' }} @if($v->sessaoMateria?->materia) {{ $v->sessaoMateria->materia->tipo }}{{ $v->sessaoMateria->materia->numero ? ' nº '.$v->sessaoMateria->materia->numero.'/'.$v->sessaoMateria->materia->ano : '' }} @else — @endif {{ $v->total_presentes }}
@endif {{-- ===================== Discussões (Etapa D) ===================== --}} @if($discussoes->isNotEmpty())
Discussões @foreach($discussoes as $d) @endforeach
MatériaAbertaEncerrada
{{ $d->materia->tipo }}{{ $d->materia->numero ? ' nº '.$d->materia->numero.'/'.$d->materia->ano : '' }} {{ $d->discussao_iniciada_em->format('H:i') }} {{ $d->discussao_encerrada_em?->format('H:i') ?? '— (não encerrada)' }}
@endif {{-- ===================== Uso da Palavra ===================== --}} @if($usoDaPalavra->isNotEmpty())
Uso da Palavra @foreach($usoDaPalavra as $u) @endforeach
VereadorFalasDuração
{{ $u['nome'] }} {{ $u['falas'] }} @if($u['duracao_total_segundos'] !== null) {{ sprintf('%02d:%02d', intdiv($u['duracao_total_segundos'], 60), $u['duracao_total_segundos'] % 60) }} @if($u['falas_sem_duracao_registrada'] > 0) ({{ $u['falas_sem_duracao_registrada'] }} sem tempo registrado) @endif @else — (tempo não registrado) @endif
@endif