From 5eb1529680b0cf0f3a592e25d8024168715faeab Mon Sep 17 00:00:00 2001 From: Richie314 Date: Mon, 10 Jun 2024 21:50:43 +0200 Subject: [PATCH] Email non iscritti --- load/models/iscrizione.php | 11 +++++++++++ queries/views/iscrizioni.sql | 14 ++++++++++++-- staff/reminder.php | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 staff/reminder.php diff --git a/load/models/iscrizione.php b/load/models/iscrizione.php index 17303ee..46c3da0 100644 --- a/load/models/iscrizione.php +++ b/load/models/iscrizione.php @@ -184,6 +184,17 @@ public function Update(mysqli $connection) return false; return $stmt->affected_rows === 1; } + + public static function EmailNonSubscribed(mysqli $connection, int $year): ?array + { + if (!$connection) + return null; + $query = "SELECT nome, sesso, email FROM non_iscritti WHERE anno = ? AND email IS NOT NULL"; + $result = $connection->execute_query($query, array($year)); + if (!$result) + return array(); + return $result->fetch_array(); + } } class Maglie diff --git a/queries/views/iscrizioni.sql b/queries/views/iscrizioni.sql index af22456..3e7c49a 100644 --- a/queries/views/iscrizioni.sql +++ b/queries/views/iscrizioni.sql @@ -9,6 +9,16 @@ SELECT IFNULL (a.`email`, '') AS "email" FROM `iscritti` i INNER JOIN `anagrafiche_espanse` a ON a.`id` = i.`dati_anagrafici` - INNER JOIN `edizioni` e ON e.id = i.`edizione` + INNER JOIN `edizioni` e ON e.`id` = i.`edizione` WHERE e.`anno` = YEAR(CURRENT_DATE) -ORDER BY i.`parrocchia`; \ No newline at end of file +ORDER BY i.`parrocchia`; + +CREATE OR REPLACE VIEW `non_iscritti` AS +SELECT a.*, e.anno +FROM `anagrafiche_espanse` a + CROSS JOIN `edizioni` e +WHERE NOT EXISTS ( + SELECT * + FROM `iscritti` i + WHERE i.`dati_anagrafici` = a.`id` AND i.`edizione` = e.`id`) +ORDER BY e.`id` ASC, a.`eta` DESC, a.`cognome` ASC; \ No newline at end of file diff --git a/staff/reminder.php b/staff/reminder.php new file mode 100644 index 0000000..4e6bc34 --- /dev/null +++ b/staff/reminder.php @@ -0,0 +1,34 @@ +is_admin) + { + header("Location: index.php"); + exit; + } + + $emails = Iscrizione::EmailNonSubscribed($connection, (int)date("Y")); +?> + + + + + + Amichiamoci | Email inviate + + + + + + +
+ +
+ +
+ +
+ + + + \ No newline at end of file