diff --git a/src/AeroDms.cpp b/src/AeroDms.cpp index 678b1d0..7107d6f 100644 --- a/src/AeroDms.cpp +++ b/src/AeroDms.cpp @@ -34,7 +34,7 @@ along with this program. If not, see . AeroDms::AeroDms(QWidget* parent) :QMainWindow(parent) { QApplication::setApplicationName("AeroDms"); - QApplication::setApplicationVersion("4.4"); + QApplication::setApplicationVersion("4.5"); QApplication::setWindowIcon(QIcon("./ressources/shield-airplane.svg")); mainTabWidget = new QTabWidget(this); setCentralWidget(mainTabWidget); @@ -556,7 +556,6 @@ AeroDms::AeroDms(QWidget* parent) :QMainWindow(parent) connect(pdf, SIGNAL(mettreAJourNombreFacturesATraiter(int)), this, SLOT(ouvrirFenetreProgressionGenerationPdf(int))); connect(pdf, SIGNAL(mettreAJourNombreFacturesTraitees(int)), this, SLOT(mettreAJourFenetreProgressionGenerationPdf(int))); connect(pdf, SIGNAL(generationTerminee(QString)), this, SLOT(mettreAJourBarreStatusFinGenerationPdf(QString))); - //========================Menu Fichier QMenu* menuFichier = menuBar()->addMenu(tr("Fichier")); @@ -1011,13 +1010,13 @@ void AeroDms::peuplerTablePilotes() vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_PRENOM, new QTableWidgetItem(subvention.prenom)); vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_ANNEE, new QTableWidgetItem(QString::number(subvention.annee))); vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_HEURES_ENTRAINEMENT_SUBVENTIONNEES, new QTableWidgetItem(subvention.entrainement.heuresDeVol)); - vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_ENTRAINEMENT_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.entrainement.montantRembourse).append(" €"))); + vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_ENTRAINEMENT_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.entrainement.montantRembourse, 'f', 2).append(" €"))); vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_HEURES_BALADES_SUBVENTIONNEES, new QTableWidgetItem(subvention.balade.heuresDeVol)); - vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_BALADES_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.balade.montantRembourse).append(" €"))); + vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_BALADES_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.balade.montantRembourse, 'f', 2).append(" €"))); vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_HEURES_SORTIES_SUBVENTIONNEES, new QTableWidgetItem(subvention.sortie.heuresDeVol)); - vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_SORTIES_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.sortie.montantRembourse).append(" €"))); + vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_SORTIES_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.sortie.montantRembourse, 'f', 2).append(" €"))); vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_HEURES_TOTALES_SUBVENTIONNEES, new QTableWidgetItem(subvention.totaux.heuresDeVol)); - vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_TOTAL_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.totaux.montantRembourse).append(" €"))); + vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_MONTANT_TOTAL_SUBVENTIONNE, new QTableWidgetItem(QString::number(subvention.totaux.montantRembourse, 'f', 2).append(" €"))); vuePilotes->setItem(i, AeroDmsTypes::PiloteTableElement_PILOTE_ID, new QTableWidgetItem(subvention.idPilote)); } vuePilotes->resizeColumnsToContents(); @@ -1044,8 +1043,8 @@ void AeroDms::peuplerTableVols() twSoumisCe->setIcon(AeroDmsServices::recupererIcone(vol.estSoumisCe)); vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_SOUMIS_CE, twSoumisCe); vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_DUREE, new QTableWidgetItem(vol.duree)); - vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_COUT, new QTableWidgetItem(QString::number(vol.coutVol).append(" €"))); - vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_SUBVENTION, new QTableWidgetItem(QString::number(vol.montantRembourse).append(" €"))); + vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_COUT, new QTableWidgetItem(QString::number(vol.coutVol, 'f', 2).append(" €"))); + vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_SUBVENTION, new QTableWidgetItem(QString::number(vol.montantRembourse, 'f', 2).append(" €"))); vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_TYPE_DE_VOL, new QTableWidgetItem(vol.typeDeVol)); vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_REMARQUE, new QTableWidgetItem(vol.remarque)); vueVols->setItem(nbItems, AeroDmsTypes::VolTableElement_ACTIVITE, new QTableWidgetItem(vol.activite)); @@ -1077,7 +1076,7 @@ void AeroDms::peuplerTableVolsDetectes(const AeroDmsTypes::ListeDonneesFacture p AeroDmsTypes::DonneesFacture facture = p_factures.at(i); vueVolsDetectes->setItem(i, AeroDmsTypes::VolsDetectesTableElement_DATE, new QTableWidgetItem(facture.dateDuVol.toString("dd/MM/yyyy"))); vueVolsDetectes->setItem(i, AeroDmsTypes::VolsDetectesTableElement_DUREE, new QTableWidgetItem(facture.dureeDuVol.toString("hh:mm"))); - vueVolsDetectes->setItem(i, AeroDmsTypes::VolsDetectesTableElement_MONTANT, new QTableWidgetItem(QString::number(facture.coutDuVol).append(" €"))); + vueVolsDetectes->setItem(i, AeroDmsTypes::VolsDetectesTableElement_MONTANT, new QTableWidgetItem(QString::number(facture.coutDuVol, 'f', 2).append(" €"))); vueVolsDetectes->setItem(i, AeroDmsTypes::VolsDetectesTableElement_IMMAT, new QTableWidgetItem(facture.immat)); //Par défaut => vol entrainement vueVolsDetectes->setItem(i, AeroDmsTypes::VolsDetectesTableElement_TYPE, new QTableWidgetItem(typeDeVol->itemText(2))); @@ -1095,7 +1094,7 @@ void AeroDms::peuplerTableFactures() { const AeroDmsTypes::DemandeRemboursementFacture facture = listeFactures.at(i); vueFactures->setItem(i, AeroDmsTypes::FactureTableElement_INTITULE, new QTableWidgetItem(facture.intitule)); - vueFactures->setItem(i, AeroDmsTypes::FactureTableElement_MONTANT, new QTableWidgetItem(QString::number(facture.montant).append(" €"))); + vueFactures->setItem(i, AeroDmsTypes::FactureTableElement_MONTANT, new QTableWidgetItem(QString::number(facture.montant, 'f', 2).append(" €"))); vueFactures->setItem(i, AeroDmsTypes::FactureTableElement_PAYEUR, new QTableWidgetItem(facture.payeur)); vueFactures->setItem(i, AeroDmsTypes::FactureTableElement_NOM_SORTIE, new QTableWidgetItem(facture.nomSortie)); vueFactures->setItem(i, AeroDmsTypes::FactureTableElement_TYPE_SORTIE, new QTableWidgetItem(facture.typeDeSortie)); @@ -1124,7 +1123,7 @@ void AeroDms::peuplerTableRecettes() AeroDmsTypes::RecetteDetail recette = listeRecettesCotisations.at(i); vueRecettes->setItem(i, AeroDmsTypes::RecetteTableElement_INTITULE, new QTableWidgetItem(recette.intitule)); vueRecettes->setItem(i, AeroDmsTypes::RecetteTableElement_ID, new QTableWidgetItem(recette.id)); - vueRecettes->setItem(i, AeroDmsTypes::RecetteTableElement_MONTANT, new QTableWidgetItem(QString::number(recette.montant) + " €")); + vueRecettes->setItem(i, AeroDmsTypes::RecetteTableElement_MONTANT, new QTableWidgetItem(QString::number(recette.montant, 'f', 2) + " €")); vueRecettes->setItem(i, AeroDmsTypes::RecetteTableElement_DATE, new QTableWidgetItem(QString::number(recette.annee))); vueRecettes->setItem(i, AeroDmsTypes::RecetteTableElement_TYPE_DE_RECETTE, new QTableWidgetItem(recette.typeDeRecette)); if (recette.estSoumisCe) @@ -1141,7 +1140,7 @@ void AeroDms::peuplerTableRecettes() vueRecettes->setItem(position, AeroDmsTypes::RecetteTableElement_INTITULE, new QTableWidgetItem(recette.intitule)); vueRecettes->setItem(position, AeroDmsTypes::RecetteTableElement_ID, new QTableWidgetItem(recette.id)); - vueRecettes->setItem(position, AeroDmsTypes::RecetteTableElement_MONTANT, new QTableWidgetItem(QString::number(recette.montant) + " €")); + vueRecettes->setItem(position, AeroDmsTypes::RecetteTableElement_MONTANT, new QTableWidgetItem(QString::number(recette.montant, 'f', 2) + " €")); vueRecettes->setItem(position, AeroDmsTypes::RecetteTableElement_DATE, new QTableWidgetItem(QString::number(recette.annee))); vueRecettes->setItem(position, AeroDmsTypes::RecetteTableElement_TYPE_DE_RECETTE, new QTableWidgetItem(recette.typeDeRecette)); if (recette.estSoumisCe) @@ -1540,7 +1539,7 @@ void AeroDms::enregistrerUneFacture() + " du " + dateDeFacture->date().toString("dd/MM/yyyy") + " (" - + QString::number(montantFacture->value()) + + QString::number(montantFacture->value(), 'f', 2) + "€) ajoutée."); montantFacture->setValue(0); @@ -1668,13 +1667,13 @@ void AeroDms::enregistrerUnVol() + " (" + dureeDuVol->time().toString("hh:mm") + "/" - + QString::number(prixDuVol->value()) + + QString::number(prixDuVol->value(), 'f', 2) + "€) " + volAjouteModifie + ". Montant subvention : " - + QString::number(montantSubventionne) + + QString::number(montantSubventionne, 'f', 2) + "€ / Subvention entrainement restante : " - + QString::number(subventionRestante) + + QString::number(subventionRestante, 'f', 2) + "€"); //Et on supprime la vol de la liste des vols détectés si on en avait chargé un @@ -2096,9 +2095,9 @@ void AeroDms::volsSelectionnes() hdvTotales = hdvTotales + vueVols->item(numeroLigne, AeroDmsTypes::VolTableElement_DUREE_EN_MINUTES)->data(0).toInt(); statusBar()->showMessage("Vols sélectionnés : Coût total : " - + QString::number(coutTotal) + + QString::number(coutTotal, 'f', 2) + " € / Montant subventionné total : " - + QString::number(montantTotalSubventionne) + + QString::number(montantTotalSubventionne, 'f', 2) + " € / Nombres d'heures de vol totales : " + AeroDmsServices::convertirMinutesEnHeuresMinutes(hdvTotales)); } diff --git a/src/AeroDms.h b/src/AeroDms.h index 332dd7e..9ef3cf9 100644 --- a/src/AeroDms.h +++ b/src/AeroDms.h @@ -138,6 +138,7 @@ class AeroDms : public QMainWindow //Barre de progression QProgressDialog *progressionGenerationPdf; QPushButton *boutonProgressionGenerationPdf; + AeroDmsTypes::ParametresMetier parametresMetiers; //Bouttons diff --git a/src/AeroDms.vcxproj b/src/AeroDms.vcxproj index 13472ee..69f1591 100644 --- a/src/AeroDms.vcxproj +++ b/src/AeroDms.vcxproj @@ -43,7 +43,7 @@ true - C:\Qt\6.6.1\msvc2019_64 + C:\Qt\6.7.1\msvc2019_64 core;gui;widgets;printsupport;sql;webenginecore;charts;webenginewidgets;pdf;pdfwidgets release true diff --git a/src/ManageDb.cpp b/src/ManageDb.cpp index 969f74f..83440b7 100644 --- a/src/ManageDb.cpp +++ b/src/ManageDb.cpp @@ -1485,8 +1485,7 @@ QString ManageDb::recupererMailDerniereDemandeDeSubvention(const QString p_date) 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()) @@ -1525,7 +1524,7 @@ QString ManageDb::recupererMailDerniereDemandeDeSubvention(const QString p_date) // -la structure de la BDD évolue // -on souhaite empecher l'utilisation d'une version du logiciel avec laquelle // un défaut peut avoir un impact sur la BDD (cela imposera de mette à jour -// AeroDMS avant de pouvoir utiliser le logiciel en ecriture sur la BDD +// AeroDMS avant de pouvoir utiliser le logiciel en ecriture sur la BDD) const bool ManageDb::laBddEstALaVersionAttendue() { QSqlQuery query; diff --git a/src/PdfRenderer.cpp b/src/PdfRenderer.cpp index 4d16269..31ab1b6 100644 --- a/src/PdfRenderer.cpp +++ b/src/PdfRenderer.cpp @@ -483,42 +483,42 @@ void PdfRenderer::imprimerLeFichierPdfDeRecapAnnuel( const int p_annee, QString item = templateTableItem; item.replace("__pilote__", QString(p_listePilotesDeCetteAnnee.at(i).nom).append(" ").append(p_listePilotesDeCetteAnnee.at(i).prenom)); item.replace("__HdvEnt__", p_listePilotesDeCetteAnnee.at(i).entrainement.heuresDeVol); - item.replace("__CouEnt__", QString::number(p_listePilotesDeCetteAnnee.at(i).entrainement.coutTotal)); - item.replace("__SubEnt__", QString::number(p_listePilotesDeCetteAnnee.at(i).entrainement.montantRembourse)); + item.replace("__CouEnt__", QString::number(p_listePilotesDeCetteAnnee.at(i).entrainement.coutTotal, 'f', 2)); + item.replace("__SubEnt__", QString::number(p_listePilotesDeCetteAnnee.at(i).entrainement.montantRembourse, 'f', 2)); item.replace("__HdVBal__", p_listePilotesDeCetteAnnee.at(i).balade.heuresDeVol); - item.replace("__CouBal__", QString::number(p_listePilotesDeCetteAnnee.at(i).balade.coutTotal)); - item.replace("__SubBal__", QString::number(p_listePilotesDeCetteAnnee.at(i).balade.montantRembourse)); + item.replace("__CouBal__", QString::number(p_listePilotesDeCetteAnnee.at(i).balade.coutTotal, 'f', 2)); + item.replace("__SubBal__", QString::number(p_listePilotesDeCetteAnnee.at(i).balade.montantRembourse, 'f', 2)); item.replace("__HdVSor__", p_listePilotesDeCetteAnnee.at(i).sortie.heuresDeVol); - item.replace("__CouSor__", QString::number(p_listePilotesDeCetteAnnee.at(i).sortie.coutTotal)); - item.replace("__SubSor__", QString::number(p_listePilotesDeCetteAnnee.at(i).sortie.montantRembourse)); + item.replace("__CouSor__", QString::number(p_listePilotesDeCetteAnnee.at(i).sortie.coutTotal, 'f', 2)); + item.replace("__SubSor__", QString::number(p_listePilotesDeCetteAnnee.at(i).sortie.montantRembourse, 'f', 2)); item.replace("__HdvTot__", p_listePilotesDeCetteAnnee.at(i).totaux.heuresDeVol); - item.replace("__CouTot__", QString::number(p_listePilotesDeCetteAnnee.at(i).totaux.coutTotal)); - item.replace("__SubTot__", QString::number(p_listePilotesDeCetteAnnee.at(i).totaux.montantRembourse)); + item.replace("__CouTot__", QString::number(p_listePilotesDeCetteAnnee.at(i).totaux.coutTotal, 'f', 2)); + item.replace("__SubTot__", QString::number(p_listePilotesDeCetteAnnee.at(i).totaux.montantRembourse, 'f', 2)); templateTable.replace("", item); } templateTable.replace("__TotHdvEnt__", p_totaux.entrainement.heuresDeVol); - templateTable.replace("__TotCouEnt__", QString::number(p_totaux.entrainement.coutTotal)); - templateTable.replace("__TotSubEnt__", QString::number(p_totaux.entrainement.montantRembourse)); + templateTable.replace("__TotCouEnt__", QString::number(p_totaux.entrainement.coutTotal, 'f', 2)); + templateTable.replace("__TotSubEnt__", QString::number(p_totaux.entrainement.montantRembourse, 'f', 2)); templateTable.replace("__TotHdVBal__", p_totaux.balade.heuresDeVol); - templateTable.replace("__TotCouBal__", QString::number(p_totaux.balade.coutTotal)); - templateTable.replace("__TotSubBal__", QString::number(p_totaux.balade.montantRembourse)); + templateTable.replace("__TotCouBal__", QString::number(p_totaux.balade.coutTotal, 'f', 2)); + templateTable.replace("__TotSubBal__", QString::number(p_totaux.balade.montantRembourse, 'f', 2)); templateTable.replace("__TotHdVSor__", p_totaux.sortie.heuresDeVol); - templateTable.replace("__TotCouSor__", QString::number(p_totaux.sortie.coutTotal)); - templateTable.replace("__TotSubSor__", QString::number(p_totaux.sortie.montantRembourse)); + templateTable.replace("__TotCouSor__", QString::number(p_totaux.sortie.coutTotal, 'f', 2)); + templateTable.replace("__TotSubSor__", QString::number(p_totaux.sortie.montantRembourse, 'f', 2)); templateTable.replace("__TotHdvTot__", p_totaux.totaux.heuresDeVol); - templateTable.replace("__TotCouTot__", QString::number(p_totaux.totaux.coutTotal)); - templateTable.replace("__TotSubTot__", QString::number(p_totaux.totaux.montantRembourse)); + templateTable.replace("__TotCouTot__", QString::number(p_totaux.totaux.coutTotal, 'f', 2)); + templateTable.replace("__TotSubTot__", QString::number(p_totaux.totaux.montantRembourse, 'f', 2)); if (p_ajouterLesRecettes) { templateTable.replace("", templateTableRecettes); const AeroDmsTypes::TotauxRecettes totaux = db->recupererTotauxRecettes(p_annee); - templateTable.replace("_RecetteCotisation_", QString::number(totaux.cotisations) + " €"); - templateTable.replace("_RecetteBalade_", QString::number(totaux.balades) + " €"); - templateTable.replace("_RecetteSortie_", QString::number(totaux.sorties) + " €"); + templateTable.replace("_RecetteCotisation_", QString::number(totaux.cotisations, 'f', 2) + " €"); + templateTable.replace("_RecetteBalade_", QString::number(totaux.balades, 'f', 2) + " €"); + templateTable.replace("_RecetteSortie_", QString::number(totaux.sorties, 'f', 2) + " €"); } if ( demandeEnCours.mergerTousLesPdf @@ -566,7 +566,7 @@ void PdfRenderer::produireFichierPdfGlobal() void PdfRenderer::remplirLeChampMontant(QString &p_html, const float p_montant) { - QString montantARembourser = QString::number(p_montant); + QString montantARembourser = QString::number(p_montant, 'f', 2); QString partieEntiere; QString partieDecimale; if (montantARembourser.contains(".")) diff --git a/src/StatistiqueDiagrammeCirculaireWidget.cpp b/src/StatistiqueDiagrammeCirculaireWidget.cpp index 9e3247c..c5ddee4 100644 --- a/src/StatistiqueDiagrammeCirculaireWidget.cpp +++ b/src/StatistiqueDiagrammeCirculaireWidget.cpp @@ -40,6 +40,7 @@ StatistiqueDiagrammeCirculaireWidget::StatistiqueDiagrammeCirculaireWidget(Manag QObject::connect(detailParPilote, &QPieSeries::clicked, chart, &StatistiqueDiagrammeCirculaire::handleSliceClicked); *donneesTypeDeVolParPilote << new StatistiqueDiagrammeCirculairePartie(detailParPilote->sum(), subventionParPilote.at(i).prenom + " " + subventionParPilote.at(i).nom, detailParPilote); + } QObject::connect(donneesTypeDeVolParPilote, &QPieSeries::clicked, chart, &StatistiqueDiagrammeCirculaire::handleSliceClicked);