@extends('adminlte::page')
@section('title', 'Template: ' . $template->nome)
@section('content_header')
Torna alla biblioteca
@if(!auth()->user()->can('manage-banche-dati-generali') && $template->created_by != auth()->id())
Clona questo template
@endif
@if($template->descrizione)
Descrizione: {{ $template->descrizione }}
@endif
Visibilità:
@if($template->pubblica)
Pubblico
@else
Privato
@endif
@php
$dieta = $template->dieta;
$labelsPasti = [
'colazione' => 'Colazione',
'spuntino_mattutino' => 'Spuntino di metà mattina',
'pranzo' => 'Pranzo',
'spuntino_pomeridiano' => 'Spuntino pomeridiano',
'cena' => 'Cena',
];
$ordineGiorni = [
'lunedi',
'martedi',
'mercoledi',
'giovedi',
'venerdi',
'sabato',
'domenica',
];
$ordinePasti = [
'colazione',
'spuntino_mattutino',
'pranzo',
'spuntino_pomeridiano',
'cena',
];
$normalizzaChiave = function (string $valore): string {
return str_replace(
['à', 'è', 'é', 'ì', 'ò', 'ù', ' '],
['a', 'e', 'e', 'i', 'o', 'u', '_'],
mb_strtolower(trim($valore))
);
};
$dietaOrdinata = collect($dieta)->sortBy(function ($pasti, $giorno) use ($ordineGiorni, $normalizzaChiave) {
$chiave = $normalizzaChiave((string) $giorno);
$indice = array_search($chiave, $ordineGiorni, true);
return $indice === false ? 999 : $indice;
});
$alimentoIds = collect($dieta)->flatMap(fn ($pasti) => collect($pasti)->pluck('alimenti'))->flatten(1)->pluck('alimento_id')->filter()->unique()->all();
$alimenti = $alimentoIds ? \App\Models\Alimento::whereIn('id', $alimentoIds)->get()->keyBy('id') : collect();
@endphp
@foreach($dietaOrdinata as $giorno => $pasti)
{{ $giorno }}
@foreach($ordinePasti as $pastoKey)
@continue(!array_key_exists($pastoKey, $pasti))
@php
$dati = $pasti[$pastoKey];
@endphp
{{ $labelsPasti[$pastoKey] ?? $pastoKey }}
@if(!empty($dati['ora']))
({{ $dati['ora'] }})
@endif
@forelse($dati['alimenti'] ?? [] as $item)
@php
$alimento = $alimenti->get($item['alimento_id'] ?? 0);
$nome = $alimento ? $alimento->nome : ('ID ' . ($item['alimento_id'] ?? '-'));
$qta = $item['quantita_g'] ?? 0;
@endphp
- {{ $nome }} — {{ $qta }} g
@empty
- Nessun alimento
@endforelse
@endforeach
@foreach($pasti as $pastoKey => $dati)
@continue(in_array($pastoKey, $ordinePasti, true))
{{ $labelsPasti[$pastoKey] ?? $pastoKey }}
@if(!empty($dati['ora']))
({{ $dati['ora'] }})
@endif
@forelse($dati['alimenti'] ?? [] as $item)
@php
$alimento = $alimenti->get($item['alimento_id'] ?? 0);
$nome = $alimento ? $alimento->nome : ('ID ' . ($item['alimento_id'] ?? '-'));
$qta = $item['quantita_g'] ?? 0;
@endphp
- {{ $nome }} — {{ $qta }} g
@empty
- Nessun alimento
@endforelse
@endforeach
@endforeach
@if(!auth()->user()->can('manage-banche-dati-generali') && $template->created_by != auth()->id())
@endif
@stop