@php
// Função para converter imagens em base64 otimizada para PDF
function base64_img($path)
{
$fullPath = public_path($path);
$fullPath = str_replace(['/', '\\'], DIRECTORY_SEPARATOR, $fullPath);
if (!file_exists($fullPath)) {
return null;
}
$type = pathinfo($fullPath, PATHINFO_EXTENSION);
$data = file_get_contents($fullPath);
return 'data:image/' . $type . ';base64,' . base64_encode($data);
}
// Mapeamento de ícones meteorológicos
$meteocons = [
'Ensolarado' => base64_img('pmar/assets/img/icons/weather/ensolarado.png'),
'Sol com poucas nuvens' => base64_img('pmar/assets/img/icons/weather/sol-com-poucas-nuvens.png'),
'Sol com muitas nuvens' => base64_img('pmar/assets/img/icons/weather/sol-com-muitas-nuvens.png'),
'Nublado' => base64_img('pmar/assets/img/icons/weather/nublado.png'),
'Sol com possibilidade de chuva' => base64_img('pmar/assets/img/icons/weather/sol-com-possibilidade-de-chuva.png'),
'Nublado com possibilidade de chuva' => base64_img('pmar/assets/img/icons/weather/nublado-com-possibilidade-de-chuva.png'),
'Chuvoso' => base64_img('pmar/assets/img/icons/weather/chuvoso.png'),
'Pancadas de chuva e trovoada' => base64_img('pmar/assets/img/icons/weather/pancadas-de-chuva-e-trovoada.png'),
'Pancadas de chuva' => base64_img('pmar/assets/img/icons/weather/pancadas-de-chuva.png'),
'Sem nuvens' => base64_img('pmar/assets/img/icons/weather/sem-nuvens.png'),
'Poucas nuvens' => base64_img('pmar/assets/img/icons/weather/poucas-nuvens.png'),
'Muitas nuvens' => base64_img('pmar/assets/img/icons/weather/muitas-nuvens.png'),
'Muitas nuvens com possibilidade de chuva' => base64_img('pmar/assets/img/icons/weather/muitas-nuvens-com-possibilidade-de-chuva.png'),
];
// Mapeamento de ícones de informações
$iconMap = [
'Temperatura' => base64_img('pmar/assets/img/icons/weather/temperatura.png'),
'Umidade' => base64_img('pmar/assets/img/icons/weather/umidade.png'),
'Chuva' => base64_img('pmar/assets/img/icons/weather/chuva.png'),
'Vento' => base64_img('pmar/assets/img/icons/weather/vento.png'),
'Ressaca' => base64_img('pmar/assets/img/icons/weather/ressaca.png'),
'Warning' => base64_img('pmar/assets/img/icons/weather/warning.png'),
'i' => base64_img('pmar/assets/img/icons/weather/i.png'),
];
// Cores para os níveis de ação
$cores = [
'VIGILÂNCIA' => 'green',
'OBSERVAÇÃO' => 'warning',
'ATENÇÃO' => 'danger',
'ALERTA' => 'red',
'ALERTA MÁXIMO' => 'indigo'
];
$cor = $cores[$boletim->nivel_de_acao] ?? 'secondary';
$textClass = ($cor === 'warning') ? 'text-dark' : 'text-white';
// Determinar condição atual baseada na hora
$horaAtual = \Carbon\Carbon::now()->subHours(3);
$hora = $horaAtual->format('H');
if ($hora >= 5 && $hora < 12) {
$condicao = $boletim->estado_manha;
} elseif ($hora >= 12 && $hora < 18) {
$condicao = $boletim->estado_tarde;
} else {
$condicao = $boletim->estado_noite;
}
// Cores hexadecimais
$corHex = [
'green' => '#28a745',
'warning' => '#ffc107',
'danger' => '#fd7e14',
'red' => '#dc3545',
'indigo' => '#6f42c1',
'secondary' => '#6c757d'
];
@endphp
{{ \Carbon\Carbon::parse($boletim->data)->locale('pt_BR')->translatedFormat('d/m/Y (l)') }}
NÍVEL DE AÇÃO: {{ $boletim->nivel_de_acao }}
↓ {{ $boletim->temperatura_minima }}° /
{{ $boletim->temperatura_maxima }}° ↑
|
|
Previsão por Período
Manhã
{{ $boletim->estado_manha }}
|
Tarde
{{ $boletim->estado_tarde }}
|
Noite
{{ $boletim->estado_noite }}
|
Destaques de Hoje
Temperatura
{{ $boletim->temperatura_minima }}° / {{ $boletim->temperatura_maxima }}°
Mín/Máx
|
Umidade do ar
{{ $boletim->umidade_minima }}% / {{ $boletim->umidade_maxima }}%
Mín/Máx
|
Probabilidade de Chuva
{{ $boletim->probabilidade_chuva }}%
Probabilidade
|
Volume de Chuva
{{ $boletim->volume_chuva }} mm
Precipitação
|
Tábua de Marés
|
{{ $tabuaTresDias['anterior']['dataFormatada'] }}
@if($tabuaTresDias['anterior']['dados'])
@foreach($tabuaTresDias['anterior']['dados'] as $m)
-
{{ $m['hora'] }}
{{ number_format($m['altura'], 2, ',', '.') }} m
@endforeach
@else
Dados não disponíveis
@endif
|
{{ $tabuaTresDias['atual']['dataFormatada'] }}
@if($tabuaTresDias['atual']['dados'])
@foreach($tabuaTresDias['atual']['dados'] as $m)
-
{{ $m['hora'] }}
{{ number_format($m['altura'], 2, ',', '.') }} m
@endforeach
@else
Dados não disponíveis
@endif
|
{{ $tabuaTresDias['seguinte']['dataFormatada'] }}
@if($tabuaTresDias['seguinte']['dados'])
@foreach($tabuaTresDias['seguinte']['dados'] as $m)
-
{{ $m['hora'] }}
{{ number_format($m['altura'], 2, ',', '.') }} m
@endforeach
@else
Dados não disponíveis
@endif
|
Informações Complementares
{{ $boletim->nivel_de_acao }}
Legenda:
VIGILÂNCIA - Normalidade
OBSERVAÇÃO - Risco
Baixo
ATENÇÃO - Risco Moderado
ALERTA - Risco Elevado
ALERTA MÁXIMO - Risco Crítico
|
@php
$temAvisoAtivado = $boletim->status_aviso_chuva == 'ATIVADO' ||
$boletim->status_aviso_vento == 'ATIVADO' ||
$boletim->status_aviso_ressaca == 'ATIVADO';
@endphp
@if (!$temAvisoAtivado)
Estamos sem avisos meteorológicos para nossa região.
@else
@if ($boletim->status_aviso_chuva == 'ATIVADO')
|
Chuva
|
@endif
@if ($boletim->status_aviso_vento == 'ATIVADO')
Vento
|
@endif
@if ($boletim->status_aviso_ressaca == 'ATIVADO')
Ressaca
|
@endif
@if ($temAvisoAtivado)
Fonte: Instituto Nacional de Meteorologia
@endif
@endif
Responsável:
{{ $boletim->creator->name ?? __('Não informado') }}
Sobreaviso:
{{ $boletim->sobreavisoCemaden->nome ?? 'Nenhum sobreaviso definido' }}
|
@if($boletim->acoes_programadas || $boletim->observacao)
Informações Adicionais
@if($boletim->acoes_programadas)
{{ $boletim->acoes_programadas }}
@endif
@if($boletim->observacao)
{{ $boletim->observacao }}
@endif
@endif
Cadastre-se para receber os ALERTAS da Defesa Civil pelos QR Codes abaixo:
Alertas via WhatsApp
|
Alertas via Telegram
|
Alertas via SMS por CEP
|
Áreas de Risco e Pontos de Apoio
|