From be282690ad475859a6a794a68bfbe2d7480fcc49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vermot?= Date: Mon, 4 Mar 2024 21:06:52 +0100 Subject: [PATCH] =?UTF-8?q?Les=20vols=20qui=20n'ont=20pas=20de=20recette?= =?UTF-8?q?=20associ=C3=A9es=20dans=20l'onglet=20"Ajoute=20recette"=20appa?= =?UTF-8?q?raissent=20d=C3=A9sormais=20en=20rouge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AeroDms.cpp | 13 ++++++++++--- src/AeroDmsTypes.h | 9 +++++++++ src/ManageDb.cpp | 21 +++++++++++++++++---- src/ManageDb.h | 2 +- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/AeroDms.cpp b/src/AeroDms.cpp index bae3d4e..c6ba627 100644 --- a/src/AeroDms.cpp +++ b/src/AeroDms.cpp @@ -1391,6 +1391,7 @@ void AeroDms::enregistrerUneRecette() montantRecette->clear(); peuplerTableRecettes(); + peuplerListeBaladesEtSorties(); } float AeroDms::calculerCoutHoraire() @@ -1456,12 +1457,18 @@ void AeroDms::peuplerListeBaladesEtSorties() { listeBaladesEtSorties->clear(); - QStringList itemLabels = db->recupererBaladesEtSorties(typeDeRecette->currentText()); - QStringListIterator it(itemLabels); + //QStringList itemLabels = db->recupererBaladesEtSorties(typeDeRecette->currentText()); + AeroDmsTypes::ListeVolSortieOuBalade itemLabels = db->recupererBaladesEtSorties(typeDeRecette->currentText()); + QListIterator it(itemLabels); while (it.hasNext()) { - QListWidgetItem* itemBaladesEtSorties = new QListWidgetItem(it.next(), listeBaladesEtSorties); + const AeroDmsTypes::VolSortieOuBalade & vol = it.next(); + QListWidgetItem* itemBaladesEtSorties = new QListWidgetItem(vol.nomVol, listeBaladesEtSorties); itemBaladesEtSorties->setCheckState(Qt::Unchecked); + if (!vol.volAAuMoinsUnPaiement) + { + itemBaladesEtSorties->setForeground(Qt::red); + } listeBaladesEtSorties->addItem(itemBaladesEtSorties); } } diff --git a/src/AeroDmsTypes.h b/src/AeroDmsTypes.h index 63a3c10..99c955b 100644 --- a/src/AeroDmsTypes.h +++ b/src/AeroDmsTypes.h @@ -159,6 +159,8 @@ class AeroDmsTypes QString heuresDeVol; int tempsDeVolEnMinutes; }; + static const HeureDeVolRemboursement K_INIT_HEURE_DE_VOL_REMBOURSEMENT; + struct SubventionsParPilote { QString idPilote; int annee; @@ -170,6 +172,7 @@ class AeroDmsTypes HeureDeVolRemboursement sortie; HeureDeVolRemboursement totaux; }; + static const SubventionsParPilote K_INIT_SUBVENTION_PAR_PILOTE; typedef QList ListeSubventionsParPilotes; struct Vol { @@ -254,6 +257,12 @@ class AeroDmsTypes }; typedef QList< StatsHeuresDeVol> ListeStatsHeuresDeVol; + struct VolSortieOuBalade { + QString nomVol; + bool volAAuMoinsUnPaiement; + }; + typedef QList ListeVolSortieOuBalade; + struct StatsHeuresDeVolParActivite { QString piloteId; QString nomPrenomPilote; diff --git a/src/ManageDb.cpp b/src/ManageDb.cpp index d9cf8e4..f98a8db 100644 --- a/src/ManageDb.cpp +++ b/src/ManageDb.cpp @@ -1093,15 +1093,28 @@ QStringList ManageDb::recupererTypesDesVol(const bool recupererUniquementLesType return liste; } -QStringList ManageDb::recupererBaladesEtSorties(const QString p_typeDeVol) +AeroDmsTypes::ListeVolSortieOuBalade ManageDb::recupererBaladesEtSorties(const QString p_typeDeVol) { - QStringList liste; + AeroDmsTypes::ListeVolSortieOuBalade liste; QSqlQuery query; query.prepare("SELECT * FROM 'volsBaladesEtSorties' WHERE typeDeVol = :typeDeVol"); query.bindValue(":typeDeVol", p_typeDeVol); query.exec(); - while (query.next()) { - liste.append(query.value(2).toString()); + while (query.next()) + { + AeroDmsTypes::VolSortieOuBalade vol; + vol.nomVol = query.value("NomVol").toString(); + + QSqlQuery paiementAssocie; + paiementAssocie.prepare("SELECT COUNT(*) AS nombreVol FROM 'xAssociationRecette-Vol' WHERE volId = :volId"); + paiementAssocie.bindValue(":volId", query.value("volId").toInt()); + paiementAssocie.exec(); + paiementAssocie.next(); + + vol.volAAuMoinsUnPaiement = (paiementAssocie.value("nombreVol").toInt() != 0 ); + + liste.append(vol); + } return liste; diff --git a/src/ManageDb.h b/src/ManageDb.h index 9fff57b..7aaff9f 100644 --- a/src/ManageDb.h +++ b/src/ManageDb.h @@ -95,7 +95,7 @@ class ManageDb : public QWidget { QStringList recupererTypesDesVol(bool recupererUniquementLesTypesDeVolAvecRecette = false); - QStringList recupererBaladesEtSorties(const QString p_typeDeVol); + AeroDmsTypes::ListeVolSortieOuBalade recupererBaladesEtSorties(const QString p_typeDeVol); QList recupererAnnees(); QList recupererAnneesAvecVolNonSoumis(); AeroDmsTypes::ListeSortie recupererListeSorties();