Nº {{ $numero_recibo }}
Dados do Cliente
Razão Social / Nome:
{{ $cliente['razao_social'] }}
CNPJ / CPF:
{{ $cliente['cnpj_cpf'] }}
@if($cliente['email'])
E-mail:
{{ $cliente['email'] }}
@endif
@if($cliente['endereco'])
Endereço:
{{ $cliente['endereco'] }}
@endif
@if(!empty($eh_troca_plano) && $eh_troca_plano)
Detalhes da Troca de Plano
@else
Plano Contratado
@endif
@if(!empty($eh_troca_plano) && $eh_troca_plano)
Tipo da Operação:
{{ strtoupper($tipo_troca ?? 'MIGRAÇÃO') }}
@endif
{{ (!empty($eh_troca_plano) && $eh_troca_plano) ? 'Novo Plano:' : 'Plano:' }}
{{ $plano['nome'] }}
@if(!empty($eh_troca_plano) && $eh_troca_plano && !empty($valor_mensal_anterior))
Mensalidade Anterior:
{{ $valor_mensal_anterior }}
@endif
{{ (!empty($eh_troca_plano) && $eh_troca_plano) ? 'Nova Mensalidade:' : 'Mensalidade:' }}
{{ $valor_mensalidade_formatado }} / mês
@if($valor_adesao > 0)
{{ (!empty($eh_troca_plano) && $eh_troca_plano) ? 'Taxa de Migração:' : 'Taxa de Adesão:' }}
{{ $valor_adesao_formatado }} ({{ $valor_extenso }})
@endif
Recursos e Limites Contratados
| Recursos do Plano |
@foreach($recursos_plano as $recurso)
| {{ $recurso }} |
@endforeach
Informações de Autenticidade e Validade Jurídica
Data do Aceite: {{ $data_aceite }}
Aceito por: {{ $assinado_por }}
IP de Origem: {{ $ip_aceite }}
Data de Emissão: {{ $data_emissao }}
Hash de Integridade (SHA-256):
{{ $hash_documento }}
@if(!empty($clausulas_aceitas))
@php
$textoClausulas = trim((string) $clausulas_aceitas);
$textoClausulas = preg_replace('/\r\n?/', "\n", $textoClausulas) ?? $textoClausulas;
$textoClausulas = preg_replace('/\n{3,}/', "\n\n", $textoClausulas) ?? $textoClausulas;
$blocosRaw = collect(preg_split('/\n\s*\n/', $textoClausulas))
->map(fn ($bloco) => trim((string) $bloco))
->filter()
->values();
if ($blocosRaw->isEmpty() && $textoClausulas !== '') {
$blocosRaw = collect([$textoClausulas]);
}
$blocosClausulas = $blocosRaw->map(function ($bloco) {
$linhas = collect(preg_split('/\n+/', (string) $bloco))
->map(fn ($linha) => trim((string) $linha))
->filter()
->values();
if ($linhas->isEmpty()) {
return null;
}
$titulo = '';
$corpo = '';
if ($linhas->count() > 1) {
$titulo = (string) $linhas->first();
$corpo = (string) $linhas->slice(1)->implode("\n");
} else {
$linha = (string) $linhas->first();
if (preg_match('/^(CL[ÁA]USULA\s+[A-Z0-9IVXLCM\-\s]+)[:\-\.\s]+(.+)$/iu', $linha, $match)) {
$titulo = trim((string) ($match[1] ?? 'CLÁUSULA'));
$corpo = trim((string) ($match[2] ?? ''));
} else {
$titulo = 'CLÁUSULA';
$corpo = $linha;
}
}
if (str_contains($corpo, '|')) {
$partesCorpo = collect(explode('|', $corpo))
->map(fn ($parte) => trim((string) $parte))
->filter()
->values();
$corpo = $partesCorpo->implode("\n");
}
$titulo = $titulo !== '' ? $titulo : 'CLÁUSULA';
$corpo = $corpo !== '' ? $corpo : '-';
return [
'titulo' => $titulo,
'corpo' => $corpo,
];
})->filter()->values();
@endphp
@if($blocosClausulas->isNotEmpty())
Cláusulas Aceitas - {{ $titulo_contrato }} (v{{ $versao_contrato }})
@foreach($blocosClausulas as $blocoClausula)
{{ $blocoClausula['titulo'] }}
{!! nl2br(e($blocoClausula['corpo'])) !!}
@endforeach
@endif
@endif
@if(($assinatura['tipo'] ?? '') === 'imagem' && !empty($assinatura['valor']))

@elseif(($assinatura['tipo'] ?? '') === 'texto' && !empty($assinatura['valor']))
{{ $assinatura['valor'] }}
@endif
{{ $contrato->assinado_por_nome }}
{{ $contrato->assinado_por_documento ?: $cliente['cnpj_cpf'] }}
Documento gerado eletronicamente em {{ $data_emissao }}