Importa piano da PDF
Il piano attuale verrà sostituito completamente dopo la conferma.
@if($erroreImportPdf)
{{ $erroreImportPdf }}
@endif
@error('pdfUpload') {{ $message }} @enderror
Caricamento file...
@if($pdfUpload)
File pronto. Clicca Analizza PDF.
@endif
Estrazione struttura dal PDF. L'operazione può richiedere alcuni secondi.
@if($stepImportPdf === 'mapping_struttura')
Step 1 — Giorni e pasti: verifica le corrispondenze rilevate nel PDF con la struttura del piano manuale, poi procedi al mapping alimenti.
Mapping giorni
@foreach($giorniPdfRilevati as $giornoPdf) @endforeach
Giorno nel PDF Giorno nel piano manuale
{{ $giornoPdf['label'] ?? ($giornoPdf['chiave'] ?? '') }}
Mapping pasti
@foreach($pastiPdfRilevati as $pastoPdf) @endforeach
Pasto nel PDF Pasto nel piano manuale
{{ $pastoPdf['label'] ?? ($pastoPdf['chiave'] ?? '') }}
@endif @if($stepImportPdf === 'mapping_alimenti' && $previewImportPdfPronta) @php $previewImportPdf = $this->previewImportPdf; $righePendenti = $this->righeImportPdfNonSelezionate(); $righeIgnorate = $this->totaleRigheIgnorateImportPdf(); $righeTotali = $this->totaleRigheImportPdf(); $righeMappate = $righeTotali - $righePendenti - $righeIgnorate; $tuttiRisolti = $righePendenti === 0 && $righeTotali > 0; $conversionePdf = $previewImportPdf['conversione'] ?? []; $giorniPdf = array_keys($conversionePdf); @endphp
Step 2 — Alimenti: associa gli alimenti del PDF con la banca dati. Puoi confermare anche se alcuni restano senza associazione: verranno esclusi.
{{ $righeMappate }}/{{ $righeTotali }} mappati @if($righeIgnorate > 0) · {{ $righeIgnorate }} ignorati @endif @if($righePendenti > 0) {{ $righePendenti }} non associati verranno esclusi dall'import. @endif   associato   ignorato   giorno completo
@foreach($giorniPdf as $giornoPdf) @endforeach
@foreach((is_array($conversionePdf[$giornoPreviewImportPdf] ?? null) ? $conversionePdf[$giornoPreviewImportPdf] : []) as $pastoPdf => $datiPastoPdf) @if(!empty($datiPastoPdf['righe'] ?? []))
{{ $this->labelPastoBia($pastoPdf) }}
@foreach($datiPastoPdf['righe'] ?? [] as $idxPdf => $rigaPdf) $this->rigaImportPdfAssociata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf)) && !$this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf)), 'table-secondary' => $this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf)), ])> @foreach(($rigaPdf['sostituti'] ?? []) as $subIdx => $sostitutoPdf) @php $chiaveSostituto = $this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf, (int) $subIdx); $associataSostituto = $this->rigaImportPdfAssociata($chiaveSostituto); $ignorataSostituto = $this->rigaImportPdfIgnorata($chiaveSostituto); @endphp $associataSostituto && !$ignorataSostituto, 'table-secondary' => $ignorataSostituto, 'table-light' => !$associataSostituto && !$ignorataSostituto, ])> @endforeach @endforeach
Alimento PDF Qty Tipo Alimento banca dati
@if($this->rigaImportPdfAssociata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf)) && !$this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf))) @elseif($this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf))) @endif $this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf))])>{{ $rigaPdf['pdf_nome'] ?? '-' }} @if($this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf))) ignorato @else @endif
{{ number_format((float) ($rigaPdf['quantita_g'] ?? 0), 0, ',', '.') }} g Principale @if($this->rigaImportPdfIgnorata($this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf))) — @else @php $chiaveRigaPdf = $this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf); $candidatiRigaPdf = $this->candidatiTendinaImportPdf($rigaPdf['candidati'] ?? [], $chiaveRigaPdf); @endphp
@if(!empty($candidatiManualiImportPdf[$this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf)] ?? []))
@foreach(($candidatiManualiImportPdf[$this->chiaveSelezioneImportPdf($giornoPreviewImportPdf, $pastoPdf, (int) $idxPdf)] ?? []) as $manualId => $manualNome) @endforeach
@endif
@endif
@if($associataSostituto && !$ignorataSostituto) @elseif($ignorataSostituto) @endif $ignorataSostituto])>↳ {{ $sostitutoPdf['pdf_nome'] ?? '-' }} @if($ignorataSostituto) ignorato @else @endif
{{ number_format((float) ($sostitutoPdf['quantita_g'] ?? 0), 0, ',', '.') }} g Alternativa @if($ignorataSostituto) — @else @php $candidatiSostitutoPdf = $this->candidatiTendinaImportPdf($sostitutoPdf['candidati'] ?? [], $chiaveSostituto); @endphp
@if(!empty($candidatiManualiImportPdf[$chiaveSostituto] ?? []))
@foreach(($candidatiManualiImportPdf[$chiaveSostituto] ?? []) as $manualIdSub => $manualNomeSub) @endforeach
@endif
@endif
@endif @endforeach
@endif
@if($stepImportPdf === 'mapping_alimenti' && $previewImportPdfPronta && $mostraConfermaImportParziale)
Confermi l'import? {{ $this->righeImportPdfNonSelezionate() }} alimenti non associati verranno esclusi dal piano. Il piano attuale verrà sostituito.
@endif
@if($stepImportPdf === 'mapping_alimenti' && $previewImportPdfPronta && !$mostraConfermaImportParziale) @endif