'Tió', 'NOEL' => 'Nadal', 'ROIS' => 'Reis', ]; $occasionIcons = [ 'TIO' => '/modules/christmas-list/assets/img/tio.png', 'NOEL' => '/modules/christmas-list/assets/img/santa.png', 'ROIS' => '/modules/christmas-list/assets/img/reis.png', ]; // Récup toutes les données pour l’année $stmt = $pdo->prepare(" SELECT * FROM pf_christmas_gifts WHERE year = :year ORDER BY adult_name, child_name, occasion, created_at "); $stmt->execute(['year' => $year]); $gifts = $stmt->fetchAll(PDO::FETCH_ASSOC); // Si aucune donnée, on évite les notices plus bas if (!$gifts) { $gifts = []; } // 1) Indexer par [occasion][child][adult] pour l'affichage par fête $byOccasion = []; // [occasion][child][adult][] = gifts foreach ($gifts as $gift) { $o = $gift['occasion']; $c = $gift['child_name']; $a = $gift['adult_name']; $byOccasion[$o][$c][$a][] = $gift; } ?>

Llista de regals

Vista per festa

No hi ha cap regal registrat per a .

$occLabel): ?>

(float)$g['amount'], $lists[$adultName] )); } // Nombre de lignes: max des tailles de listes Laia/Laura/Avi Iaia $maxRowsChild = max(array_map('count', $lists)); ?>
0): ?> ( €)
(pagat per )

Resum del pressupost

prepare(" SELECT adult_name, child_name, occasion, SUM(amount) AS total FROM pf_christmas_gifts WHERE year = :year GROUP BY adult_name, child_name, occasion ORDER BY adult_name, child_name, occasion "); $stmtSum->execute(['year' => $year]); $sums = $stmtSum->fetchAll(PDO::FETCH_ASSOC); ?>
Adult Infant Festa Total
payer) $matrix = []; foreach ($people as $p1) { foreach ($people as $p2) { if (!isset($matrix[$p1])) $matrix[$p1] = []; $matrix[$p1][$p2] = 0.0; } } foreach ($gifts as $g) { $adult = $g['adult_name']; $payer = $g['payer_name'] ?? $g['adult_name']; $amt = (float)$g['amount']; if ($amt > 0 && $adult !== $payer) { $matrix[$adult][$payer] += $amt; } } // Net pairwise (A<->B) $settlements = []; // [ [from, to, amount], ... ] 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]; // a doit à b } elseif ($net < -0.009) { $settlements[] = [$b, $a, -$net]; // b doit à a } } } ?>

Tricount

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

Liquidacions

Cap deute pendent.

Llista detallada de regals

Adult Infant Festa Regal Enllaç
🔗