@extends('layouts.app') @section('titulo', 'Contrato #'.$caso->id_processo) @section('conteudo') @if($caso->emRedacao()) {{-- A redação corre na fila (Word no mini, 70-95 s): a página recarrega até acabar. --}}
A redigir o contrato — a página atualiza-se sozinha quando estiver pronto (cerca de 1 a 2 minutos).
@endif

{{ $caso->nome ?? 'Processo '.$caso->id_processo }}

@if($caso->estado === 'publicado') {{ $caso->estadoLegivel() }} @elseif(in_array($caso->estado, ['gerado_completo', 'gerado_com_falta'])) {{ $caso->estadoLegivel() }} @else {{ $caso->estadoLegivel() }} @endif

Resumo

Processo{{ $caso->id_processo }}
MAI{{ $caso->mai }}
Zona{{ $caso->zona }}
Admissão{{ $caso->admissao?->format('d/m/Y') }}
Modalidade{{ $meta['modalidade'] ?? '—' }}
Cliente{{ $campos['cliente_nome'] ?? '—' }}
Data início{{ $campos['data_inicio'] ?? '—' }}
Data fim{{ $campos['data_fim'] ?? '—' }}
Duração (dias/meses){{ $campos['duracao_meses'] ?? '—' }} {{ $campos['duracao_unidade'] ?? '' }}
Horas{{ $campos['horas'] ?? '—' }}
Retribuição{{ $campos['vencimento'] ?? '—' }}
@if(!empty($caso->manifesto['perguntas'])) @php $opcoesPerguntas = $caso->opcoesPerguntas(); @endphp

À espera de respostas: {{ implode(', ', $caso->perguntasPendentesRotulos()) }}

O motor não conseguiu redigir o contrato sem estes dados (dados incompletos no Sabichão). Responda e o contrato é gerado de novo.

@csrf @foreach($caso->manifesto['perguntas'] as [$chave, $texto])
{{ $texto }}
@switch($chave) @case('modalidade') @break @case('especialidade') @if(!empty($opcoesPerguntas['especialidade'])) @else
Rascunho antigo sem a lista de cartões do funcionário — escolha pelo cartão que ele tem.
@endif @break @case('documento') @break @case('categoria') @break @case('horas') @break @case('cliente') @if(!empty($opcoesPerguntas['cliente'])) @else
Sem cliente no Sabichão? Texto livre:
@endif @break @case('cliente_morada') @break @case('duracao') @break @case('data_fim') @break @case('renovacao') @break @default @endswitch
@endforeach
@if(empty($opcoesPerguntas['cliente'] ?? [])) @endif @endif @if($caso->estaGerado())

Pré-visualização

@php $pdfRevisao = $meta['pdf_revisao'] ?? null; $motorConversor = $meta['conversor'] ?? null; @endphp @if($motorConversor)

@if($caso->pdf_path) PDF gerado com: {{ $motorConversor === 'word' ? 'Word (mini)' : 'LibreOffice (recurso)' }} @else Pré-visualização de revisão pelo LibreOffice; o PDF final sai pelo Word quando não houver campos por preencher. @endif

@endif @if($pdfRevisao)
verde: do Sabichão · azul: calculado · cinzento: escrito por ti · amarelo: por preencher
@if($caso->pdf_path) Ver PDF final (sem cores) @else

Sem PDF final: há campos [FALTA] por preencher (caixas acima) ou pode transferir o .docx e completar no Word.

Transferir .docx @endif @elseif($caso->pdf_path) @else

Sem PDF — há campos [FALTA] por preencher; o .docx pode ser transferido e completado no Word.

Transferir .docx @endif
@endif @php $chavesFalta = $caso->chavesFalta(); $valoresManuais = (array) ($caso->valores_manuais ?? []); $chavesPreencher = array_values(array_unique(array_merge($chavesFalta, array_keys($valoresManuais)))); @endphp @if(!empty($chavesPreencher) && $caso->estado !== 'publicado')

Campos por preencher

@csrf @foreach($chavesPreencher as $chave)
@if(in_array($chave, $chavesFalta, true)) [FALTA] @endif
@endforeach
@endif
@php $motivoBloqueio = $caso->motivoBloqueioPublicacao(); @endphp
@if(in_array($caso->estado, ['gerado_completo', 'gerado_com_falta']))
@csrf
@csrf
@endif
@if($motivoBloqueio)

Não é possível publicar: {{ $motivoBloqueio }}

@endif
@if($caso->publicado_por_marcar)
@csrf
@endif

Histórico

@foreach($eventos as $evento) @endforeach
QuandoTipoUtilizadorDetalhe
{{ $evento->created_at->format('d/m/Y H:i') }} {{ $evento->tipo }} {{ $evento->user?->name ?? '—' }} {{ $evento->dados ? json_encode($evento->dados, JSON_UNESCAPED_UNICODE) : '' }}
@endsection