@if(!empty($logoSrc)) Logo @endif {!! $header !!}

Piano Dietetico Personalizzato

@if(isset($userInfo['cliente']) && !empty($userInfo['cliente'])) Nome: {{ $userInfo['cliente'] }} @else Piano Alimentare Personalizzato @endif

@if(isset($pianoInfo))

Creato: {{ \Carbon\Carbon::parse($pianoInfo['created_at'])->format('d/m/Y') }}

@endif
@if(!empty($userInfo['numeroAlternative'])) @endif
Peso: {{ (is_string($userInfo['peso']) || is_numeric($userInfo['peso'])) ? $userInfo['peso'] : (is_array($userInfo['peso']) ? implode(', ', $userInfo['peso']) : 'N/A') }} kg Altezza: {{ (is_string($userInfo['altezza']) || is_numeric($userInfo['altezza'])) ? $userInfo['altezza'] : (is_array($userInfo['altezza']) ? implode(', ', $userInfo['altezza']) : 'N/A') }} cm Sesso: {{ $userInfo['sesso'] == 'M' ? 'Maschio' : 'Femmina' }} Età: {{ (is_string($userInfo['eta']) || is_numeric($userInfo['eta'])) ? $userInfo['eta'] : (is_array($userInfo['eta']) ? implode(', ', $userInfo['eta']) : 'N/A') }}
Alternative per Pasto: {{ (is_string($userInfo['numeroAlternative']) || is_numeric($userInfo['numeroAlternative'])) ? $userInfo['numeroAlternative'] : (is_array($userInfo['numeroAlternative']) ? implode(', ', $userInfo['numeroAlternative']) : 'Non specificato') }}
@if(isset($userInfo['note']) && trim((string) $userInfo['note']) !== '')

Note per il paziente

{!! nl2br(e((string) $userInfo['note'])) !!}

@endif
@if(!empty($userInfo['ragionamento']))

🔍 Valutazione Nutrizionale

{{ $userInfo['ragionamento'] }}

@endif @php // Mappatura giorni con accenti $giorniSettimana = [ 'Lunedi' => 'Lunedì', 'Martedi' => 'Martedì', 'Mercoledi' => 'Mercoledì', 'Giovedi' => 'Giovedì', 'Venerdi' => 'Venerdì', 'Sabato' => 'Sabato', 'Domenica' => 'Domenica' ]; @endphp @php $giornoCount = 0; $totalGiorni = count($data); @endphp @foreach($data as $giorno => $pianoDieta) @php $giornoCount++; // Determina se forzare un page break basato sulla posizione $forceBreak = false; // Forza break dopo il 2° e 4° giorno per distribuire meglio il contenuto if ($giornoCount == 2 || $giornoCount == 4) { $forceBreak = true; } // Se ci sono più di 6 giorni, forza break ogni 3 giorni if ($totalGiorni > 6 && $giornoCount % 3 == 0 && $giornoCount < $totalGiorni) { $forceBreak = true; } @endphp
{{ $giorniSettimana[$giorno] ?? ucfirst($giorno) }}
@php $etichettePastiStandard = [ 'colazione' => 'Colazione', 'spuntino_mattutino' => 'Spuntino Mattutino', 'pranzo' => 'Pranzo', 'spuntino_pomeridiano' => 'Spuntino Pomeridiano', 'cena' => 'Cena', ]; $ordinePastiStandard = array_keys($etichettePastiStandard); $pastiDaMostrare = collect($pianoDieta) ->filter(function ($contenutoPasto, $chiavePasto): bool { return is_string($chiavePasto) && !in_array($chiavePasto, ['totali_giorno', 'Composizione dieta'], true) && is_array($contenutoPasto); }) ->sortBy(function ($contenutoPasto, $chiavePasto) use ($ordinePastiStandard): int { $posizione = array_search($chiavePasto, $ordinePastiStandard, true); return $posizione === false ? (1000 + crc32((string) $chiavePasto)) : $posizione; }) ->all(); @endphp @foreach($pastiDaMostrare as $chiavePasto => $pasto) @php $labelPasto = $etichettePastiStandard[$chiavePasto] ?? (trim((string) ($pasto['_nome_pasto'] ?? '')) !== '' ? trim((string) $pasto['_nome_pasto']) : ucfirst(str_replace('_', ' ', $chiavePasto))); $pastoPrincipale = $pasto['principale'] ?? 'Non specificato'; @endphp
{{ $labelPasto }}:
@if(is_array($pastoPrincipale)) @foreach($pastoPrincipale as $item)
{{ is_string($item) ? $item : (is_array($item) ? implode(', ', $item) : 'Non specificato') }}
@endforeach @elseif(is_string($pastoPrincipale)) {{ $pastoPrincipale }} @else {{ is_array($pastoPrincipale) ? implode(', ', $pastoPrincipale) : 'Non specificato' }} @endif @if(isset($pasto['alternative']) && is_array($pasto['alternative']) && !empty($pasto['alternative']))
Alternative:
    @foreach($pasto['alternative'] as $alternativa)
  • {{ is_string($alternativa) ? $alternativa : (is_array($alternativa) ? implode(', ', $alternativa) : 'Non specificato') }}
  • @endforeach
@endif
@endforeach @if(isset($pianoDieta['Composizione dieta']) && !($nascondiMacroKcal ?? false))
Macronutrienti: @php $macro = $pianoDieta['Composizione dieta']; $parts = []; if(isset($macro['carboidrati'])) $parts[] = 'Carboidrati: ' . ((is_string($macro['carboidrati']) || is_numeric($macro['carboidrati'])) ? $macro['carboidrati'] : (is_array($macro['carboidrati']) ? implode(', ', $macro['carboidrati']) : 'N/A')) . 'g'; if(isset($macro['proteine'])) $parts[] = 'Proteine: ' . ((is_string($macro['proteine']) || is_numeric($macro['proteine'])) ? $macro['proteine'] : (is_array($macro['proteine']) ? implode(', ', $macro['proteine']) : 'N/A')) . 'g'; if(isset($macro['grassi'])) $parts[] = 'Grassi: ' . ((is_string($macro['grassi']) || is_numeric($macro['grassi'])) ? $macro['grassi'] : (is_array($macro['grassi']) ? implode(', ', $macro['grassi']) : 'N/A')) . 'g'; if(isset($macro['fibre'])) $parts[] = 'Fibre: ' . ((is_string($macro['fibre']) || is_numeric($macro['fibre'])) ? $macro['fibre'] : (is_array($macro['fibre']) ? implode(', ', $macro['fibre']) : 'N/A')) . 'g'; if(isset($macro['acqua'])) $parts[] = 'Acqua: ' . ((is_string($macro['acqua']) || is_numeric($macro['acqua'])) ? $macro['acqua'] : (is_array($macro['acqua']) ? implode(', ', $macro['acqua']) : 'N/A')) . 'ml'; if(isset($macro['kcal'])) $parts[] = 'Calorie: ' . ((is_string($macro['kcal']) || is_numeric($macro['kcal'])) ? $macro['kcal'] : (is_array($macro['kcal']) ? implode(', ', $macro['kcal']) : 'N/A')) . 'kcal'; echo implode(' | ', $parts); @endphp
@endif
@endforeach