['TIO','NOEL','ROIS'], 'anniversary' => ['ANNIV','SANT'], ]; // Vue courante (URL > Session > défaut) $currentView = strtolower($_GET['view'] ?? ($_SESSION['gift_view'] ?? 'nadal')); if (!isset($VIEWS[$currentView])) $currentView = 'nadal'; $_SESSION['gift_view'] = $currentView; $allowedOccasions = $VIEWS[$currentView]; // En vue anniversary, on ajoute 3 adultes pour Pol et Pep uniquement $extraAdults = ['Pauline', 'Papy JC', 'Mamy Caro']; $adultsByChildForAnniv = [ 'Pol' => array_merge($baseAdults, $extraAdults), 'Pep' => array_merge($baseAdults, $extraAdults), 'Elna' => $baseAdults, 'Bru' => $baseAdults, 'Guim' => $baseAdults, ]; // Labels d’occasion (affichage) $allOccasionLabels = [ 'TIO' => 'Tió', 'NOEL' => 'Nadal', 'ROIS' => 'Reis', 'ANNIV' => 'Anniversary', 'SANT' => 'Sant', ]; // Icônes (pense à ajouter les 2 nouvelles images) $occasionIcons = [ 'TIO' => '/modules/gift-list/assets/img/tio.png', 'NOEL' => '/modules/gift-list/assets/img/santa.png', 'ROIS' => '/modules/gift-list/assets/img/reis.png', 'ANNIV' => '/modules/gift-list/assets/img/corona.png', 'SANT' => '/modules/gift-list/assets/img/sant.png', ]; // Nom de table (renommée -> pf_gifts), fallback si pas encore migrée $tableGifts = 'pf_gifts'; // Récup données filtrées par vue $inMarks = implode(',', array_fill(0, count($allowedOccasions), '?')); $sql = " SELECT * FROM {$tableGifts} WHERE year = ? AND occasion IN ($inMarks) ORDER BY adult_name, child_name, occasion, created_at "; $stmt = $pdo->prepare($sql); $params = array_merge([$year], $allowedOccasions); $stmt->execute($params); $gifts = $stmt->fetchAll(PDO::FETCH_ASSOC) ?: []; // Index [occasion][child][adult] $byOccasion = []; foreach ($gifts as $gift) { $o = $gift['occasion']; $c = $gift['child_name']; $a = $gift['adult_name']; $byOccasion[$o][$c][$a][] = $gift; } // Occasions à afficher pour la vue $occasionsToShow = array_values(array_intersect(array_keys($allOccasionLabels), $allowedOccasions)); ?>

Llista de regals

Vista per festa

No hi ha cap regal registrat per a en aquesta vista.

(float)$g['amount'], $lists[$adultName])); } // max() compatible PHP 8 $counts = array_map('count', $lists); $maxRowsChild = !empty($counts) ? max($counts) : 0; ?>
( €)
(pagat per )

Resum del pressupost

prepare($sqlSum); $stmtSum->execute($params); $sums = $stmtSum->fetchAll(PDO::FETCH_ASSOC); ?>
AdultInfantFestaTotal
0 && $adult !== $payer) { $matrix[$adult][$payer] += $amt; } } $settlements = []; for ($i = 0; $i < count($people); $i++) { for ($j = $i + 1; $j < count($people); $j++) { $a = $people[$i]; $b = $people[$j]; $net = $matrix[$a][$b] - $matrix[$b][$a]; if ($net > 0.009) $settlements[] = [$a, $b, $net]; elseif ($net < -0.009) $settlements[] = [$b, $a, -$net]; } } ?>

Tricount

0 ? 'cl-mtx-owe' : 'cl-mtx-empty'); ?>
Deutor ↓Creditor →

Liquidacions

Cap deute pendent.

Llista detallada de regals

AdultInfantFestaRegalEnllaç
🔗