@php use Illuminate\Support\Facades\DB; use Carbon\Carbon; $modelo = request('modelo', 'padrao'); $forma = request('forma', 'lado'); // lado | verso // ── Etiqueta do tipo de membro ── $tipoLabel = match($membro->Tipo ?? 'E') { 'E' => 'Membro', 'F' => 'Congregado', 'C' => 'Criança', 'V' => 'Visitante', default => 'Membro' }; // ── Paletas por modelo ── $paletas = [ 'padrao' => ['bg'=>'#eef0f5','txt'=>'#1a1a2e','accent'=>'#1e3a8a','versoBg'=>'linear-gradient(150deg,#7c6750 0%,#5a4a3a 55%,#3d3228 100%)'], 'obreiro' => ['bg'=>'#16213e','txt'=>'#e8e8e8','accent'=>'#d4af37','versoBg'=>'linear-gradient(150deg,#0f0f1a 0%,#1a1a2e 100%)'], 'pastor' => ['bg'=>'#1e0a3c','txt'=>'#f0e8ff','accent'=>'#d4b8ff','versoBg'=>'linear-gradient(150deg,#2d0a5e 0%,#1a0635 100%)'], 'congregado' => ['bg'=>'#072218','txt'=>'#e0ffe8','accent'=>'#4ade80','versoBg'=>'linear-gradient(150deg,#05160e 0%,#0a2e18 100%)'], 'pb' => ['bg'=>'#f8f8f8','txt'=>'#111','accent'=>'#374151','versoBg'=>'linear-gradient(150deg,#1f2937 0%,#374151 100%)'], ]; $p = $paletas[$modelo] ?? $paletas['padrao']; // ── Modelo personalizado (credencial_modelos) ── $modeloCustom = null; $bgImageUrl = null; if (str_starts_with($modelo, 'custom_')) { $customId = (int) str_replace('custom_', '', $modelo); try { $modeloCustom = DB::table('credencial_modelos') ->where('idModelo', $customId)->first(); } catch (\Exception $e) {} $p = $paletas['padrao']; if ($modeloCustom && $modeloCustom->ImagemFundo) { $bgImageUrl = asset('storage/' . $modeloCustom->ImagemFundo); } } // ── URLs ── $logoUrl = ($igreja && $igreja->Imagem) ? asset('storage/logos/' . $igreja->Imagem) : null; $fotoUrl = ($membro && $membro->Imagem) ? asset('storage/fotos/' . $membro->Imagem) : null; // ── Endereço resumido ── $endStr = ''; if ($endereco) { $parts = array_filter([ trim(($endereco->Logradouro ?? '') . ($endereco->Numero ? ', ' . $endereco->Numero : '')), $endereco->Bairro ?? null, ($endereco->Cidade ?? null) ? ($endereco->Cidade . ($endereco->UF ? ' - ' . $endereco->UF : '')) : null, ]); $endStr = implode(' | ', $parts); } // ── Data de batismo via historicos ── $dtBatismo = null; try { $bat = DB::table('historicopmembro as hm') ->join('historicos as h', 'h.idHistorico', '=', 'hm.idHistorico') ->where('hm.idMembro', $membro->idMembro) ->where('h.NomeHistorico', 'like', '%atismo%') ->orderBy('hm.DtOcorrencia') ->select('hm.DtOcorrencia') ->first(); if ($bat && $bat->DtOcorrencia && $bat->DtOcorrencia !== '0000-00-00') { $dtBatismo = $bat->DtOcorrencia; } } catch (\Exception $e) {} // ── QR data ── $qrData = urlencode('SISATOS|' . ($membro->idMembro ?? '') . '|' . ($membro->Nome ?? '')); // ── Código de barras (pattern visual) ── $bcId = (int)($membro->idMembro ?? 0); $bcText = '* ' . str_pad($bcId, 4, '0', STR_PAD_LEFT) . ' *'; // ── Pastor / Responsável ── $pastorNome = $igreja->PastorNome ?? ($igreja->Nome ?? 'Pastor Presidente'); @endphp
@endif