getAnnoDisponibile($idAnnuncio, $annoCorrente); } $nome_tabella = "note"; $option_1 = "numid = '$idAnnuncio' and anno = '$anno'"; $query_nome = $config->DB_select($nome_tabella, $option_1); if (!empty($query_nome)) { $intestazione = stripslashes($query_nome[0]['Intestazione']); $note = stripslashes($query_nome[0]['Note1']); } ?>

> Cambia Anno:
Prezzi per Annuncio #

Intestazione

Prezzi per i vari periodi

prepare(" SELECT p.id as id_periodo, p.id_annuncio, p.etichetta, p.data_inizio, p.data_fine, pr.id as id_prezzo, pr.min_persone, pr.numero_persone, pr.prezzo_euro, pr.sigla FROM tabella_periodi p LEFT JOIN prezzi pr ON pr.id_periodo = p.id WHERE p.id_annuncio = ? AND YEAR(p.data_inizio) = ? ORDER BY p.etichetta, p.data_inizio, CASE WHEN pr.sigla IS NOT NULL AND pr.sigla <> '' THEN pr.id ELSE pr.numero_persone END ASC "); $stmt->execute([$idAnnuncio, $anno]); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!empty($rows)) { // Organizza per etichetta $grouped = []; foreach ($rows as $r) { $eti = $r['etichetta']; if (!isset($grouped[$eti])) { $grouped[$eti] = [ 'etichetta' => $eti, 'periodi' => [], 'prezzi_unici' => [], // <— NOVITÀ 'first_periodo_id'=> null, // utile per tasto “+ prezzo” se ti serve ]; } // Periodo $pid = (int)$r['id_periodo']; if (!isset($grouped[$eti]['periodi'][$pid])) { $grouped[$eti]['periodi'][$pid] = [ 'id_periodo' => $pid, 'data_inizio' => $r['data_inizio'], 'data_fine' => $r['data_fine'], 'range' => date('d/m/Y', strtotime($r['data_inizio'])) . " → " . date('d/m/Y', strtotime($r['data_fine'])), 'prezzi' => [], // se vuoi tenerli anche per periodo ]; if ($grouped[$eti]['first_periodo_id'] === null) { $grouped[$eti]['first_periodo_id'] = $pid; } } // Prezzi (per periodo, opzionale) if ($r['id_prezzo']) { $grouped[$eti]['periodi'][$pid]['prezzi'][] = [ 'id_prezzo' => (int)$r['id_prezzo'], 'min_persone' => (int)$r['min_persone'], 'numero_persone' => (int)$r['numero_persone'], 'prezzo_euro' => (string)$r['prezzo_euro'], 'sigla' => (string)$r['sigla'], ]; // Prezzi UNICI per ETICHETTA (dedup) // chiave di dedup: numero_persone + prezzo (se vuoi dedup solo per persone, usa solo numero_persone) $key = $r['numero_persone'].'|'.number_format((float)$r['prezzo_euro'], 2, '.', ''); if (!isset($grouped[$eti]['prezzi_unici'][$key])) { $grouped[$eti]['prezzi_unici'][$key] = [ 'id_prezzo' => (int)$r['id_prezzo'], // prendi il primo come rappresentante 'ids_prezzo' => [(int)$r['id_prezzo']], // se poi vorrai “applica a tutti” 'min_persone' => (int)$r['min_persone'], 'numero_persone' => (int)$r['numero_persone'], 'prezzo_euro' => (string)$r['prezzo_euro'], 'sigla' => (string)$r['sigla'], ]; } else { $grouped[$eti]['prezzi_unici'][$key]['ids_prezzo'][] = (int)$r['id_prezzo']; } } } ?>
$data): ?>
Etichetta
Periodo

Prezzi Da a pers → €
Nessun prezzo

Nessun periodo / prezzi impostato

Note