From 045be9468e23808c8b22887d930b0191944e9875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vermot?= Date: Sun, 19 May 2024 00:25:22 +0200 Subject: [PATCH] Mailing avec plus de dates de demandes --- src/AeroDms.cpp | 17 +++++++++++++++++ src/ManageDb.cpp | 41 ++++++++++++++++++++++++++++++++++++----- src/ManageDb.h | 3 ++- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/AeroDms.cpp b/src/AeroDms.cpp index c4aacef..678b1d0 100644 --- a/src/AeroDms.cpp +++ b/src/AeroDms.cpp @@ -684,6 +684,15 @@ AeroDms::AeroDms(QWidget* parent) :QMainWindow(parent) mailing->addAction(mailingPilotesActifsBrevetes); mailingPilotesDerniereDemandeSubvention = new QAction(QIcon("./ressources/email-multiple.svg"), tr("Envoyer un mail aux pilotes concernés par la dernière demande de subvention"), this); mailing->addAction(mailingPilotesDerniereDemandeSubvention); + QMenu* menuMailDemandesSubvention = mailing->addMenu(QIcon("./ressources/email-multiple.svg"), tr("Envoyer un mail aux pilotes concernés par une demande de subvention")); + QList datesDemandes = db->recupererDatesDesDemandesDeSubventions(); + for (int i = 0; i < datesDemandes.size(); i++) + { + QAction *action = new QAction(QIcon("./ressources/email-multiple.svg"), tr("Demande du ") + datesDemandes.at(i).toString("dd/MM/yyyy"), this); + action->setData(datesDemandes.at(i).toString("yyyy-MM-dd")); + menuMailDemandesSubvention->addAction(action); + connect(action, SIGNAL(triggered()), this, SLOT(envoyerMail())); + } connect(mailingPilotesAyantCotiseCetteAnnee, SIGNAL(triggered()), this, SLOT(envoyerMail())); connect(mailingPilotesActifsAyantCotiseCetteAnnee, SIGNAL(triggered()), this, SLOT(envoyerMail())); connect(mailingPilotesActifsBrevetes, SIGNAL(triggered()), this, SLOT(envoyerMail())); @@ -2308,6 +2317,14 @@ void AeroDms::envoyerMail() + "?subject=[Section aéronautique] Chèques aéro&body=" + parametresMetiers.texteMailDispoCheques, QUrl::TolerantMode)); } + else + { + QAction* action = qobject_cast(sender()); + QDesktopServices::openUrl(QUrl("mailto:" + + db->recupererMailDerniereDemandeDeSubvention(action->data().toString()) + + "?subject=[Section aéronautique] Chèques aéro&body=" + + parametresMetiers.texteMailDispoCheques, QUrl::TolerantMode)); + } } diff --git a/src/ManageDb.cpp b/src/ManageDb.cpp index 934cead..969f74f 100644 --- a/src/ManageDb.cpp +++ b/src/ManageDb.cpp @@ -1460,16 +1460,47 @@ QString ManageDb::recupererMailPilotes( const int p_annee, return listeMail; } -QString ManageDb::recupererMailDerniereDemandeDeSubvention() +QList ManageDb::recupererDatesDesDemandesDeSubventions() { - QString listeMail; + QList listeDemandes; QSqlQuery query; - query.prepare("SELECT dateDemande FROM mailParDateDeDemandeDeSubvention GROUP BY dateDemande ORDER BY dateDemande DESC LIMIT 1"); + query.prepare("SELECT dateDemande FROM mailParDateDeDemandeDeSubvention GROUP BY dateDemande ORDER BY dateDemande DESC LIMIT 5"); query.exec(); - if (query.next()) + + while (query.next()) + { + QDate date = QDate::fromString(query.value("dateDemande").toString(), "yyyy-MM-dd"); + listeDemandes.append(date); + } + + return listeDemandes; +} + +QString ManageDb::recupererMailDerniereDemandeDeSubvention(const QString p_date) +{ + QString listeMail; + + QSqlQuery query; + QString date = ""; + + if (p_date == "") + { + + query.prepare("SELECT dateDemande FROM mailParDateDeDemandeDeSubvention GROUP BY dateDemande ORDER BY dateDemande DESC LIMIT 1"); + query.exec(); + if (query.next()) + { + date = query.value("dateDemande").toString(); + } + } + else + { + date = p_date; + } + + if (date != "") { - const QString date = query.value("dateDemande").toString(); query.prepare("SELECT mail FROM mailParDateDeDemandeDeSubvention WHERE dateDemande = :dateDemande"); query.bindValue(":dateDemande", date); query.exec(); diff --git a/src/ManageDb.h b/src/ManageDb.h index b36784b..3b79f28 100644 --- a/src/ManageDb.h +++ b/src/ManageDb.h @@ -125,7 +125,8 @@ class ManageDb : public QWidget { const bool p_pilotesActifsSeulement, const bool p_pilotesBrevetes = false); const AeroDmsTypes::StatsAeronefs recupererStatsAeronefs(const int p_annee); - QString recupererMailDerniereDemandeDeSubvention(); + QList recupererDatesDesDemandesDeSubventions(); + QString recupererMailDerniereDemandeDeSubvention(const QString p_date = ""); const AeroDmsTypes::StatsPilotes recupererStatsPilotes();