From 003597e9d9d9cdc47ec85e88dc07e8f5dc5fa0c1 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 10:39:55 +0100 Subject: [PATCH 01/13] New window for computing of a period turnover --- documents/LaTexTemplate | 2 +- fact-team.github.io | 2 +- src/gui/dialogs/computeturnoverdialog.cpp | 14 ++++++++++++++ src/gui/dialogs/computeturnoverdialog.h | 22 ++++++++++++++++++++++ src/gui/dialogs/computeturnoverdialog.ui | 18 ++++++++++++++++++ src/src.pro | 9 ++++++--- tests/QTestRunner | 2 +- 7 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 src/gui/dialogs/computeturnoverdialog.cpp create mode 100644 src/gui/dialogs/computeturnoverdialog.h create mode 100644 src/gui/dialogs/computeturnoverdialog.ui diff --git a/documents/LaTexTemplate b/documents/LaTexTemplate index 34fcc24..5c18e6e 160000 --- a/documents/LaTexTemplate +++ b/documents/LaTexTemplate @@ -1 +1 @@ -Subproject commit 34fcc2473d13eb55e40235562fe4da67b5bf83e6 +Subproject commit 5c18e6e55e09a899cc44aa7db8d4ae8c98824376 diff --git a/fact-team.github.io b/fact-team.github.io index 845a343..77871cb 160000 --- a/fact-team.github.io +++ b/fact-team.github.io @@ -1 +1 @@ -Subproject commit 845a34366127f4999b650aa7f812f209600564d2 +Subproject commit 77871cb8dec4e9b1528d982a1fcfd13777a1314c diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp new file mode 100644 index 0000000..747c8b7 --- /dev/null +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -0,0 +1,14 @@ +#include "computeturnoverdialog.h" +#include "ui_computeturnoverdialog.h" + +ComputeTurnoverDialog::ComputeTurnoverDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::ComputeTurnoverDialog) +{ + ui->setupUi(this); +} + +ComputeTurnoverDialog::~ComputeTurnoverDialog() +{ + delete ui; +} diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h new file mode 100644 index 0000000..08da93a --- /dev/null +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -0,0 +1,22 @@ +#ifndef COMPUTETURNOVERDIALOG_H +#define COMPUTETURNOVERDIALOG_H + +#include + +namespace Ui { +class ComputeTurnoverDialog; +} + +class ComputeTurnoverDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ComputeTurnoverDialog(QWidget *parent = 0); + ~ComputeTurnoverDialog(); + +private: + Ui::ComputeTurnoverDialog *ui; +}; + +#endif // COMPUTETURNOVERDIALOG_H diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui new file mode 100644 index 0000000..6148e70 --- /dev/null +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -0,0 +1,18 @@ + + ComputeTurnoverDialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + diff --git a/src/src.pro b/src/src.pro index 98e323c..d59e06e 100644 --- a/src/src.pro +++ b/src/src.pro @@ -90,7 +90,8 @@ SOURCES += gui/mainwindow/mainwindow.cpp \ gui/widgets/checkfields/checkipaddress.cpp \ gui/widgets/checkfields/checklogin.cpp \ gui/widgets/checkfields/checkportnumber.cpp \ - models/people.cpp + models/people.cpp \ + gui/dialogs/computeturnoverdialog.cpp HEADERS += gui/mainwindow/mainwindow.h \ utils/log.h\ @@ -196,7 +197,8 @@ HEADERS += gui/mainwindow/mainwindow.h \ gui/widgets/checkfields/checkipaddress.h \ gui/widgets/checkfields/checklogin.h \ gui/widgets/checkfields/checkportnumber.h \ - models/people.h + models/people.h \ + gui/dialogs/computeturnoverdialog.h FORMS += gui/mainwindow/mainwindow.ui \ @@ -214,7 +216,8 @@ FORMS += gui/mainwindow/mainwindow.ui \ gui/dialogs/messagebox.ui \ gui/docks/searchdock.ui \ gui/dialogs/startedwindowsdialog.ui \ - gui/widgets/databasesettingswidget.ui + gui/widgets/databasesettingswidget.ui \ + gui/dialogs/computeturnoverdialog.ui RESOURCES += \ icons.qrc \ diff --git a/tests/QTestRunner b/tests/QTestRunner index 7a32d32..0b1b7b6 160000 --- a/tests/QTestRunner +++ b/tests/QTestRunner @@ -1 +1 @@ -Subproject commit 7a32d323d064ad362ea398b575f9f48482ad3a82 +Subproject commit 0b1b7b6d02fb304c6a15d944afcb57d176f32ab0 From 9e9d458c81d6d5d54e2542ba8eedb0db25e0aaec Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 11:02:15 +0100 Subject: [PATCH 02/13] Filling of the Compute window --- src/gui/dialogs/computeturnoverdialog.ui | 80 ++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 6148e70..72b2b7d 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -1,17 +1,89 @@ + ComputeTurnoverDialog - + 0 0 - 400 - 300 + 441 + 365 - Dialog + Calcul du chiffre d'affaires + + + + 0 + 30 + 431 + 201 + + + + + + + Fin de période + + + + + + + + + + Début de période + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + 285 + 310 + 141 + 22 + + + + Calculer + + + + + + 170 + 250 + 59 + 14 + + + + + + From 77a4bded88b7c59e3c0f8467b76c524690285b76 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 11:30:20 +0100 Subject: [PATCH 03/13] Turnover menu and opening of Compute window by this menu --- src/gui/dialogs/computeturnoverdialog.cpp | 5 ++ src/gui/dialogs/computeturnoverdialog.h | 10 ++++ src/gui/mainwindow/mainwindow.cpp | 7 +++ src/gui/mainwindow/mainwindow.h | 8 +++ src/gui/mainwindow/mainwindow.ui | 65 ++++++++++++++++------- 5 files changed, 77 insertions(+), 18 deletions(-) diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index 747c8b7..d80acdb 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -1,6 +1,9 @@ #include "computeturnoverdialog.h" #include "ui_computeturnoverdialog.h" + +namespace Gui { +namespace Dialogs { ComputeTurnoverDialog::ComputeTurnoverDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ComputeTurnoverDialog) @@ -12,3 +15,5 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() { delete ui; } +} +} diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h index 08da93a..289c3a9 100644 --- a/src/gui/dialogs/computeturnoverdialog.h +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -1,12 +1,20 @@ #ifndef COMPUTETURNOVERDIALOG_H #define COMPUTETURNOVERDIALOG_H +#include "database/projectdatabase.h" #include namespace Ui { class ComputeTurnoverDialog; } +namespace Gui { +namespace Dialogs { +/** + * @author Manantsoa Razanajatovo + * @brief The ComputeTurnoverDialog class window + * to compute a turnover with a period + */ class ComputeTurnoverDialog : public QDialog { Q_OBJECT @@ -18,5 +26,7 @@ class ComputeTurnoverDialog : public QDialog private: Ui::ComputeTurnoverDialog *ui; }; +} +} #endif // COMPUTETURNOVERDIALOG_H diff --git a/src/gui/mainwindow/mainwindow.cpp b/src/gui/mainwindow/mainwindow.cpp index 590a724..a70927f 100644 --- a/src/gui/mainwindow/mainwindow.cpp +++ b/src/gui/mainwindow/mainwindow.cpp @@ -288,6 +288,13 @@ void MainWindow::openPdf() } +void MainWindow::computeTurnover() +{ + ComputeTurnoverDialog cp; + + cp.exec(); +} + void MainWindow::search(QString text) { updateUI(text); diff --git a/src/gui/mainwindow/mainwindow.h b/src/gui/mainwindow/mainwindow.h index 6c9d173..5644302 100644 --- a/src/gui/mainwindow/mainwindow.h +++ b/src/gui/mainwindow/mainwindow.h @@ -24,8 +24,10 @@ #include "gui/dialogs/dialogaddcustomer.h" #include "gui/dialogs/addprojectdialog.h" #include "gui/dialogs/addquotedialog.h" +#include "gui/dialogs/computeturnoverdialog.h" #include "gui/docks/searchdock.h" + #include "exceptions/fileexception.h" #include "utils/pointers.h" @@ -198,6 +200,12 @@ public slots: */ void openPdf(); + /** + * @brief MainWindow::computeTurnover open window to allow computation + * of a period turnover + */ + void computeTurnover(); + private slots: /** * @brief MainWindow::openContextualMenuTable open contextual menu diff --git a/src/gui/mainwindow/mainwindow.ui b/src/gui/mainwindow/mainwindow.ui index b1cf9ec..d9085a2 100644 --- a/src/gui/mainwindow/mainwindow.ui +++ b/src/gui/mainwindow/mainwindow.ui @@ -368,7 +368,7 @@ 0 0 1413 - 22 + 19 @@ -384,9 +384,9 @@ Client - + @@ -403,9 +403,16 @@ + + + Statistiques + + + + @@ -679,6 +686,11 @@ Nouveau projet + + + Calculer CA d'une période + + @@ -967,8 +979,8 @@ addProject() - 499 - 130 + 483 + 114 797 @@ -983,8 +995,8 @@ editProject() - 499 - 130 + 483 + 114 738 @@ -999,8 +1011,8 @@ removeProject() - 499 - 130 + 483 + 114 0 @@ -1095,8 +1107,8 @@ editDoc() - 411 - 542 + 576 + 677 319 @@ -1111,8 +1123,8 @@ removeDoc() - 525 - 529 + 756 + 677 609 @@ -1143,8 +1155,8 @@ openPdf() - 828 - 522 + 1091 + 677 827 @@ -1191,8 +1203,8 @@ billingIsPaid() - 742 - 533 + 978 + 677 733 @@ -1207,8 +1219,8 @@ copyDoc() - 645 - 527 + 892 + 676 666 @@ -1216,6 +1228,22 @@ + + actComputeTurnover + triggered() + MainWindow + computeTurnover() + + + -1 + -1 + + + 706 + 359 + + + addCustomer() @@ -1251,5 +1279,6 @@ openPdf() billingIsPaid() copyDoc() + computeTurnover() From cd2eb37528feca7a3f519e2c890018280c5be0c8 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 13:41:28 +0100 Subject: [PATCH 04/13] Get projects between two dates and slot of turnover computation --- src/database/projectdatabase.cpp | 12 +++++ src/database/projectdatabase.h | 9 ++++ src/gui/dialogs/computeturnoverdialog.cpp | 18 +++++++ src/gui/dialogs/computeturnoverdialog.h | 7 +++ src/gui/dialogs/computeturnoverdialog.ui | 63 +++++++++++++++++++---- 5 files changed, 98 insertions(+), 11 deletions(-) diff --git a/src/database/projectdatabase.cpp b/src/database/projectdatabase.cpp index 77da3d7..d1c7b93 100644 --- a/src/database/projectdatabase.cpp +++ b/src/database/projectdatabase.cpp @@ -72,6 +72,18 @@ QList ProjectDatabase::getAllProjects() return list; } +QList ProjectDatabase::getAllProjectsBetweenDates(QDate begin, QDate end) +{ + QList list; + + for (Project *p: getAllProjects()) { + if (p->getBeginDate() < begin) { + list.append(p); + } + } + return list; +} + Models::Project* ProjectDatabase::getProject(const int pId) { diff --git a/src/database/projectdatabase.h b/src/database/projectdatabase.h index b25613f..8159b12 100644 --- a/src/database/projectdatabase.h +++ b/src/database/projectdatabase.h @@ -117,6 +117,15 @@ class ProjectDatabase : public Database */ QList getAllProjects(); + /** + * @brief Project::getAllProjectsBetweenDates Return the list of + * projects between a begin date and an end date + * @param begin the beginning date where projects can start + * @param end the end date until where the projects can finish + * @return the list of Project in the set + */ + QList getAllProjectsBetweenDates(QDate begin, QDate end); + private: static ProjectDatabase* _instance;//!< Singleton instance of ProjectDatabase diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index d80acdb..c7a52ed 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -15,5 +15,23 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() { delete ui; } + +void ComputeTurnoverDialog::computeTurnover() +{ + QList projects; + double turnover = 0; + + projects = Databases::ProjectDatabase::instance() + ->getAllProjectsBetweenDates( + ui->dtBeginPeriod->date(),ui->dtEndPeriod->date()); + + for (Project *p: projects) { + turnover+= p->getCost(); + } + + ui->lbCompute->setAlignment(Qt::AlignCenter); + ui->lbCompute->setText("Le CA est de " + QString::number(turnover)); + +} } } diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h index 289c3a9..4ca04d0 100644 --- a/src/gui/dialogs/computeturnoverdialog.h +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -23,6 +23,13 @@ class ComputeTurnoverDialog : public QDialog explicit ComputeTurnoverDialog(QWidget *parent = 0); ~ComputeTurnoverDialog(); +public slots: + /** + * @brief ComputeTurnoverDialog::computeTurnover compute + * the turnover between chosen dates in the window + */ + void computeTurnover(); + private: Ui::ComputeTurnoverDialog *ui; }; diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 72b2b7d..16eaa23 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -7,7 +7,7 @@ 0 0 441 - 365 + 352 @@ -16,8 +16,8 @@ - 0 - 30 + 10 + 10 431 201 @@ -31,7 +31,24 @@ - + + + + + + QDateTimeEdit::DaySection + + + true + + + Qt::LocalTime + + @@ -41,7 +58,11 @@ - + + + true + + @@ -61,8 +82,8 @@ - 285 - 310 + 280 + 300 141 22 @@ -74,10 +95,10 @@ - 170 + 18 250 - 59 - 14 + 401 + 20 @@ -86,5 +107,25 @@ - + + + btnCompute + released() + ComputeTurnoverDialog + computeTurnover() + + + 335 + 311 + + + 361 + 235 + + + + + + computeTurnover() + From 46d8cf7d335b06fdf35dac2edff9ec2b81ca0cd9 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 15:25:10 +0100 Subject: [PATCH 05/13] Cost of project method and displayin of dates --- src/database/projectdatabase.cpp | 11 ++++++++++- src/database/projectdatabase.h | 10 +++++++++- src/gui/dialogs/computeturnoverdialog.cpp | 8 ++++---- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/database/projectdatabase.cpp b/src/database/projectdatabase.cpp index d1c7b93..db4c5e5 100644 --- a/src/database/projectdatabase.cpp +++ b/src/database/projectdatabase.cpp @@ -77,13 +77,22 @@ QList ProjectDatabase::getAllProjectsBetweenDates(QDate begin, QDate QList list; for (Project *p: getAllProjects()) { - if (p->getBeginDate() < begin) { + if (p->getBeginDate() >= begin) { list.append(p); } } return list; } +double ProjectDatabase::getCostProjects(QList projects) +{ + double cost = 0; + for (Project *p: projects) { + cost+= p->getCost(); + } + return cost; +} + Models::Project* ProjectDatabase::getProject(const int pId) { diff --git a/src/database/projectdatabase.h b/src/database/projectdatabase.h index 8159b12..4b65203 100644 --- a/src/database/projectdatabase.h +++ b/src/database/projectdatabase.h @@ -118,7 +118,7 @@ class ProjectDatabase : public Database QList getAllProjects(); /** - * @brief Project::getAllProjectsBetweenDates Return the list of + * @brief ProjectDatabase::getAllProjectsBetweenDates Return the list of * projects between a begin date and an end date * @param begin the beginning date where projects can start * @param end the end date until where the projects can finish @@ -126,6 +126,14 @@ class ProjectDatabase : public Database */ QList getAllProjectsBetweenDates(QDate begin, QDate end); + /** + * @brief ProjectDatabase::getCostProjects compute the cost of + * the project list given in parameter + * @param projects the list of projects + * @return the cost of the list given + */ + double getCostProjects(QList projects); + private: static ProjectDatabase* _instance;//!< Singleton instance of ProjectDatabase diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index c7a52ed..cd86ff8 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -25,12 +25,12 @@ void ComputeTurnoverDialog::computeTurnover() ->getAllProjectsBetweenDates( ui->dtBeginPeriod->date(),ui->dtEndPeriod->date()); - for (Project *p: projects) { - turnover+= p->getCost(); - } + turnover = Databases::ProjectDatabase::instance()->getCostProjects(projects); ui->lbCompute->setAlignment(Qt::AlignCenter); - ui->lbCompute->setText("Le CA est de " + QString::number(turnover)); + ui->lbCompute->setText("Votre CA du "+ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + + " au " + ui->dtEndPeriod->date().toString("dd/MM/yyyy") + + " est de " + QString::number(turnover)); } } From 34b310d73bdc65bae6384e086a94f22f55dfd3b0 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 20:48:08 +0100 Subject: [PATCH 06/13] Computation of TO by contributories and projects --- src/database/billingdatabase.cpp | 30 +++++++++++++++++++++++ src/database/billingdatabase.h | 8 ++++++ src/gui/dialogs/computeturnoverdialog.cpp | 15 +++++++++--- src/gui/dialogs/computeturnoverdialog.h | 4 ++- 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/src/database/billingdatabase.cpp b/src/database/billingdatabase.cpp index 533a0f7..ebe2d1d 100644 --- a/src/database/billingdatabase.cpp +++ b/src/database/billingdatabase.cpp @@ -385,4 +385,34 @@ QList BillingDatabase::getBillings(const int projectId) return bills; } +QList BillingDatabase::getAllBillingsOnly(const int idProject) +{ + QList bills; + QSqlQuery q; + q.prepare( + "SELECT DISTINCT b.idBilling, title, description, number, " + "isBilling, date, isPaid " + "FROM Billing b, BillingProject bp " + "WHERE idProject=:idProject " + "AND b.idBilling = bp.idBilling " + "AND isBilling = 1 " + ); + + q.bindValue(":idProject",idProject); + + + if(!q.exec()) { + throw new DbException( + "Impossible de récupérer les Factures", + "BddCustomer::getBillings", + lastError(q), + 1.3); + } + + while(q.next()) { + bills.append(*getBilling(q)); + } + return bills; +} + } diff --git a/src/database/billingdatabase.h b/src/database/billingdatabase.h index e050252..e3b9933 100644 --- a/src/database/billingdatabase.h +++ b/src/database/billingdatabase.h @@ -146,6 +146,14 @@ class BillingDatabase : public Database */ QList getBillings(const int projectId); + /** + * @brief BillingDatabase::getAllBillingsOnly get all billings which aren't + * quotes for the project p + * @param p + * @return the list of Billing + */ + QList getAllBillingsOnly(const int idProject); + private: static BillingDatabase* _instance;//!< Singleton instance of BillingDatabase diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index cd86ff8..fddfdc9 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -19,13 +19,20 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() void ComputeTurnoverDialog::computeTurnover() { QList projects; + QList bills; + QList contributories; double turnover = 0; - projects = Databases::ProjectDatabase::instance() - ->getAllProjectsBetweenDates( - ui->dtBeginPeriod->date(),ui->dtEndPeriod->date()); + projects = Databases::ProjectDatabase::instance()->getAllProjects(); + + for (Project *p : projects) { + for (Billing *b : Databases::BillingDatabase::instance()->getAllBillingsOnly(p->getId())) { + Models::ContributoriesList cl = Databases::ContributoryDatabase::instance()->getContributoriesByBillingAndProject(b->getId(), p->getId()); + Rate rate = Databases::RateDatabase::instance()->getRate(b->getId(), p->getId()); + turnover += (cl.getSumQuantity()) * rate.getHourlyRate(); + } + } - turnover = Databases::ProjectDatabase::instance()->getCostProjects(projects); ui->lbCompute->setAlignment(Qt::AlignCenter); ui->lbCompute->setText("Votre CA du "+ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h index 4ca04d0..d15b898 100644 --- a/src/gui/dialogs/computeturnoverdialog.h +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -1,7 +1,9 @@ #ifndef COMPUTETURNOVERDIALOG_H #define COMPUTETURNOVERDIALOG_H -#include "database/projectdatabase.h" +#include "database/billingdatabase.h" +#include "database/contributorydatabase.h" +#include "database/ratedatabase.h" #include namespace Ui { From e88c9ed79bc82ad5b0f4f91c3f58eaff5d3a46a9 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 21:16:20 +0100 Subject: [PATCH 07/13] Computation of turnover with the begin date only --- src/database/billingdatabase.cpp | 11 +++++++++++ src/database/billingdatabase.h | 9 +++++++++ src/gui/dialogs/computeturnoverdialog.cpp | 10 ++++++---- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/database/billingdatabase.cpp b/src/database/billingdatabase.cpp index ebe2d1d..009c864 100644 --- a/src/database/billingdatabase.cpp +++ b/src/database/billingdatabase.cpp @@ -415,4 +415,15 @@ QList BillingDatabase::getAllBillingsOnly(const int idProject) return bills; } +QList BillingDatabase::getBillingsBetweenDates(QList bills, QDate begin, QDate end) +{ + QList billings; + for (Billing b : bills) { + if (b.getDate()>=begin) { + billings.append(b); + } + } + return billings; +} + } diff --git a/src/database/billingdatabase.h b/src/database/billingdatabase.h index e3b9933..2684244 100644 --- a/src/database/billingdatabase.h +++ b/src/database/billingdatabase.h @@ -154,6 +154,15 @@ class BillingDatabase : public Database */ QList getAllBillingsOnly(const int idProject); + /** + * @brief BillingDatabase::getBillingsBetweenDates get billings in the list + * between begin and end dates + * @param begin + * @param end + * @return the list of Billing + */ + QList getBillingsBetweenDates(QList bills, QDate begin, QDate end); + private: static BillingDatabase* _instance;//!< Singleton instance of BillingDatabase diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index fddfdc9..257fd8c 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -19,16 +19,18 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() void ComputeTurnoverDialog::computeTurnover() { QList projects; - QList bills; + QList bills; QList contributories; double turnover = 0; projects = Databases::ProjectDatabase::instance()->getAllProjects(); + for (Project *p : projects) { - for (Billing *b : Databases::BillingDatabase::instance()->getAllBillingsOnly(p->getId())) { - Models::ContributoriesList cl = Databases::ContributoryDatabase::instance()->getContributoriesByBillingAndProject(b->getId(), p->getId()); - Rate rate = Databases::RateDatabase::instance()->getRate(b->getId(), p->getId()); + bills = Databases::BillingDatabase::instance()->getAllBillingsOnly(p->getId()); + for (Billing b : Databases::BillingDatabase::instance()->getBillingsBetweenDates(bills,ui->dtBeginPeriod->date(),ui->dtEndPeriod->date())) { + Models::ContributoriesList cl = Databases::ContributoryDatabase::instance()->getContributoriesByBillingAndProject(b.getId(), p->getId()); + Rate rate = Databases::RateDatabase::instance()->getRate(b.getId(), p->getId()); turnover += (cl.getSumQuantity()) * rate.getHourlyRate(); } } From d387eda27b3f21afa33686d10804b0a36ea5704d Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 22:40:06 +0100 Subject: [PATCH 08/13] Control of dateEdit --- src/gui/dialogs/computeturnoverdialog.cpp | 14 ++++++++++ src/gui/dialogs/computeturnoverdialog.h | 14 ++++++++++ src/gui/dialogs/computeturnoverdialog.ui | 34 +++++++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index 257fd8c..75a8ee2 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -42,5 +42,19 @@ void ComputeTurnoverDialog::computeTurnover() " est de " + QString::number(turnover)); } + +void ComputeTurnoverDialog::endDateControl(QDate end) +{ + if (end < ui->dtBeginPeriod->date()) { + ui->dtBeginPeriod->setDate(ui->dtEndPeriod->date()); + } +} + +void ComputeTurnoverDialog::beginDateControl(QDate begin) +{ + if (begin > ui->dtEndPeriod->date()) { + ui->dtEndPeriod->setDate(ui->dtBeginPeriod->date()); + } +} } } diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h index d15b898..b9a8d4f 100644 --- a/src/gui/dialogs/computeturnoverdialog.h +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -32,6 +32,20 @@ public slots: */ void computeTurnover(); + /** + * @brief ComputeTurnoverDialog::endDateControl controls if + * the end date field is valid + * @param end + */ + void endDateControl(QDate end); + + /** + * @brief ComputeTurnoverDialog::beginDateControl controls + * if the begin date field is valid + * @param begin + */ + void beginDateControl(QDate begin); + private: Ui::ComputeTurnoverDialog *ui; }; diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 16eaa23..40f0902 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -124,8 +124,42 @@ + + dtEndPeriod + dateChanged(QDate) + ComputeTurnoverDialog + endDateControl(QDate) + + + 193 + 153 + + + 124 + 197 + + + + + dtBeginPeriod + dateChanged(QDate) + ComputeTurnoverDialog + beginDateControl(QDate) + + + 208 + 72 + + + 310 + 108 + + + computeTurnover() + endDateControl(QDate) + beginDateControl(QDate) From ca813a53174620d5908e48623d2f4988dbdcedef Mon Sep 17 00:00:00 2001 From: manantsoa Date: Mon, 16 Mar 2015 23:49:24 +0100 Subject: [PATCH 09/13] Computation of turnover in a date interval and billing counting --- src/database/billingdatabase.cpp | 2 +- src/gui/dialogs/computeturnoverdialog.cpp | 10 +++++----- src/gui/dialogs/computeturnoverdialog.ui | 13 +++++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/database/billingdatabase.cpp b/src/database/billingdatabase.cpp index 009c864..9f891e5 100644 --- a/src/database/billingdatabase.cpp +++ b/src/database/billingdatabase.cpp @@ -419,7 +419,7 @@ QList BillingDatabase::getBillingsBetweenDates(QList bills, QD { QList billings; for (Billing b : bills) { - if (b.getDate()>=begin) { + if (b.getDate() >= begin && b.getDate() <= end) { billings.append(b); } } diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index 75a8ee2..bf7ad64 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -20,26 +20,26 @@ void ComputeTurnoverDialog::computeTurnover() { QList projects; QList bills; - QList contributories; double turnover = 0; + int nbBillings = 0; projects = Databases::ProjectDatabase::instance()->getAllProjects(); - for (Project *p : projects) { bills = Databases::BillingDatabase::instance()->getAllBillingsOnly(p->getId()); for (Billing b : Databases::BillingDatabase::instance()->getBillingsBetweenDates(bills,ui->dtBeginPeriod->date(),ui->dtEndPeriod->date())) { Models::ContributoriesList cl = Databases::ContributoryDatabase::instance()->getContributoriesByBillingAndProject(b.getId(), p->getId()); Rate rate = Databases::RateDatabase::instance()->getRate(b.getId(), p->getId()); turnover += (cl.getSumQuantity()) * rate.getHourlyRate(); + ++nbBillings; } } - - ui->lbCompute->setAlignment(Qt::AlignCenter); ui->lbCompute->setText("Votre CA du "+ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + " au " + ui->dtEndPeriod->date().toString("dd/MM/yyyy") + - " est de " + QString::number(turnover)); + " est de " + QString::number(turnover) + " euro(s)"); + ui->lbBillingNb->setAlignment(Qt::AlignCenter); + ui->lbBillingNb->setText(QString::number(nbBillings) + " Facture(s) trouvée(s)"); } diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 40f0902..6981d38 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -105,6 +105,19 @@ + + + + 18 + 230 + 401 + 20 + + + + + + From 845332924911b01d913e9155063620fd8ebdf3c9 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Tue, 17 Mar 2015 01:25:03 +0100 Subject: [PATCH 10/13] Refactoring, deleting and testing --- src/database/projectdatabase.cpp | 12 -------- src/database/projectdatabase.h | 9 ------ src/gui/dialogs/computeturnoverdialog.cpp | 16 ++++++----- src/gui/dialogs/computeturnoverdialog.h | 8 ++++++ src/gui/dialogs/computeturnoverdialog.ui | 6 ++++ tests/database/billingdatabasetest.cpp | 35 +++++++++++++++++++++++ tests/database/billingdatabasetest.h | 2 ++ 7 files changed, 60 insertions(+), 28 deletions(-) diff --git a/src/database/projectdatabase.cpp b/src/database/projectdatabase.cpp index db4c5e5..9788f42 100644 --- a/src/database/projectdatabase.cpp +++ b/src/database/projectdatabase.cpp @@ -72,18 +72,6 @@ QList ProjectDatabase::getAllProjects() return list; } -QList ProjectDatabase::getAllProjectsBetweenDates(QDate begin, QDate end) -{ - QList list; - - for (Project *p: getAllProjects()) { - if (p->getBeginDate() >= begin) { - list.append(p); - } - } - return list; -} - double ProjectDatabase::getCostProjects(QList projects) { double cost = 0; diff --git a/src/database/projectdatabase.h b/src/database/projectdatabase.h index 4b65203..d9442e7 100644 --- a/src/database/projectdatabase.h +++ b/src/database/projectdatabase.h @@ -117,15 +117,6 @@ class ProjectDatabase : public Database */ QList getAllProjects(); - /** - * @brief ProjectDatabase::getAllProjectsBetweenDates Return the list of - * projects between a begin date and an end date - * @param begin the beginning date where projects can start - * @param end the end date until where the projects can finish - * @return the list of Project in the set - */ - QList getAllProjectsBetweenDates(QDate begin, QDate end); - /** * @brief ProjectDatabase::getCostProjects compute the cost of * the project list given in parameter diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index bf7ad64..0c5e0ec 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -16,6 +16,14 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() delete ui; } +void ComputeTurnoverDialog::fillLabels(const int nbBillings, const int turnover) +{ + ui->lbCompute->setText("Votre CA du "+ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + + " au " + ui->dtEndPeriod->date().toString("dd/MM/yyyy") + + " est de " + QString::number(turnover) + " euro(s)"); + ui->lbBillingNb->setText(QString::number(nbBillings) + " Facture(s) trouvée(s)"); +} + void ComputeTurnoverDialog::computeTurnover() { QList projects; @@ -34,13 +42,7 @@ void ComputeTurnoverDialog::computeTurnover() ++nbBillings; } } - ui->lbCompute->setAlignment(Qt::AlignCenter); - ui->lbCompute->setText("Votre CA du "+ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + - " au " + ui->dtEndPeriod->date().toString("dd/MM/yyyy") + - " est de " + QString::number(turnover) + " euro(s)"); - ui->lbBillingNb->setAlignment(Qt::AlignCenter); - ui->lbBillingNb->setText(QString::number(nbBillings) + " Facture(s) trouvée(s)"); - + fillLabels(nbBillings,turnover); } void ComputeTurnoverDialog::endDateControl(QDate end) diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h index b9a8d4f..f77435b 100644 --- a/src/gui/dialogs/computeturnoverdialog.h +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -25,6 +25,14 @@ class ComputeTurnoverDialog : public QDialog explicit ComputeTurnoverDialog(QWidget *parent = 0); ~ComputeTurnoverDialog(); + /** + * @brief ComputeTurnoverDialog::fillLabels Fills the + * labels with nbBillings and turnover + * @param nbBillings the number of Billings + * @param turnover the turnover computed + */ + void fillLabels(const int nbBillings,const int turnover); + public slots: /** * @brief ComputeTurnoverDialog::computeTurnover compute diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 6981d38..0a19937 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -104,6 +104,9 @@ + + Qt::AlignCenter + @@ -117,6 +120,9 @@ + + Qt::AlignCenter + diff --git a/tests/database/billingdatabasetest.cpp b/tests/database/billingdatabasetest.cpp index 9cf1aa5..ec94e8a 100644 --- a/tests/database/billingdatabasetest.cpp +++ b/tests/database/billingdatabasetest.cpp @@ -169,3 +169,38 @@ void BillingDatabaseTest::getBilling() } +void BillingDatabaseTest::getAllBillingsOnly() +{ + bool billing = true; + + for (Billing b : Databases::BillingDatabase::instance()->getAllBillingsOnly(1)) { + if (!b.isBilling()) { + billing = false; + } + } + + QVERIFY(billing); + +} + +void BillingDatabaseTest::getBillingsBetweenDates() +{ + QList bills; + QList bills2; + bills.append(Billing(1)); + bills.append(Billing(2)); + + bills2 = Databases::BillingDatabase::instance() + ->getBillingsBetweenDates(bills,QDate(2015,2,13),QDate(2035,2,13)); + + + QVERIFY(bills2.count() == 2 + && bills2.first().getDate() == QDate(2015,2,13) + && bills2.first().getTitle() == "Coucou" + && bills2.first().getDescription() == "Mon super devis de la " + "mort qui rox du poulet" + && bills2.last().getDate() == QDate(2015,2,13) + && bills2.last().getTitle() == "Bonjour" + && bills2.last().getDescription() == "Manger du poney"); +} + diff --git a/tests/database/billingdatabasetest.h b/tests/database/billingdatabasetest.h index 34acddb..1363bb0 100644 --- a/tests/database/billingdatabasetest.h +++ b/tests/database/billingdatabasetest.h @@ -26,6 +26,8 @@ private slots: void getMaxBillingNumberOfCustomer(); void getMaxQuoteNumberOfCustomer(); void getBilling(); + void getAllBillingsOnly(); + void getBillingsBetweenDates(); private: Billing* b1; int _lastInsert; From f71acb198ee1cc298cc6ff777ec134e36415ee48 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Tue, 17 Mar 2015 16:12:22 +0100 Subject: [PATCH 11/13] Cleaning, respect of convention --- src/gui/dialogs/computeturnoverdialog.cpp | 31 +++++++++++++++-------- src/gui/dialogs/computeturnoverdialog.h | 4 +-- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index 0c5e0ec..6e55535 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -18,10 +18,14 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() void ComputeTurnoverDialog::fillLabels(const int nbBillings, const int turnover) { - ui->lbCompute->setText("Votre CA du "+ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + - " au " + ui->dtEndPeriod->date().toString("dd/MM/yyyy") + - " est de " + QString::number(turnover) + " euro(s)"); - ui->lbBillingNb->setText(QString::number(nbBillings) + " Facture(s) trouvée(s)"); + ui->lbCompute->setText("Votre CA du "+ + ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + + " au " + + ui->dtEndPeriod->date().toString("dd/MM/yyyy") + + " est de " + + QString::number(turnover) + " euro(s)"); + ui->lbBillingNb->setText(QString::number(nbBillings) + + " Facture(s) trouvée(s)"); } void ComputeTurnoverDialog::computeTurnover() @@ -34,10 +38,17 @@ void ComputeTurnoverDialog::computeTurnover() projects = Databases::ProjectDatabase::instance()->getAllProjects(); for (Project *p : projects) { - bills = Databases::BillingDatabase::instance()->getAllBillingsOnly(p->getId()); - for (Billing b : Databases::BillingDatabase::instance()->getBillingsBetweenDates(bills,ui->dtBeginPeriod->date(),ui->dtEndPeriod->date())) { - Models::ContributoriesList cl = Databases::ContributoryDatabase::instance()->getContributoriesByBillingAndProject(b.getId(), p->getId()); - Rate rate = Databases::RateDatabase::instance()->getRate(b.getId(), p->getId()); + bills = Databases::BillingDatabase::instance() + ->getAllBillingsOnly(p->getId()); + for (Billing b : Databases::BillingDatabase::instance() + ->getBillingsBetweenDates(bills, + ui->dtBeginPeriod->date(), + ui->dtEndPeriod->date())) { + ContributoriesList cl = Databases::ContributoryDatabase::instance() + ->getContributoriesByBillingAndProject(b.getId(), + p->getId()); + Rate rate = Databases::RateDatabase::instance()->getRate(b.getId(), + p->getId()); turnover += (cl.getSumQuantity()) * rate.getHourlyRate(); ++nbBillings; } @@ -45,14 +56,14 @@ void ComputeTurnoverDialog::computeTurnover() fillLabels(nbBillings,turnover); } -void ComputeTurnoverDialog::endDateControl(QDate end) +void ComputeTurnoverDialog::endDateControl(const QDate end) { if (end < ui->dtBeginPeriod->date()) { ui->dtBeginPeriod->setDate(ui->dtEndPeriod->date()); } } -void ComputeTurnoverDialog::beginDateControl(QDate begin) +void ComputeTurnoverDialog::beginDateControl(const QDate begin) { if (begin > ui->dtEndPeriod->date()) { ui->dtEndPeriod->setDate(ui->dtBeginPeriod->date()); diff --git a/src/gui/dialogs/computeturnoverdialog.h b/src/gui/dialogs/computeturnoverdialog.h index f77435b..876ba37 100644 --- a/src/gui/dialogs/computeturnoverdialog.h +++ b/src/gui/dialogs/computeturnoverdialog.h @@ -45,14 +45,14 @@ public slots: * the end date field is valid * @param end */ - void endDateControl(QDate end); + void endDateControl(const QDate end); /** * @brief ComputeTurnoverDialog::beginDateControl controls * if the begin date field is valid * @param begin */ - void beginDateControl(QDate begin); + void beginDateControl(const QDate begin); private: Ui::ComputeTurnoverDialog *ui; From e753769b36ad099e69be0648e2dcb83880e7611a Mon Sep 17 00:00:00 2001 From: manantsoa Date: Wed, 18 Mar 2015 01:16:40 +0100 Subject: [PATCH 12/13] IHM improvements and corrections --- src/gui/dialogs/computeturnoverdialog.cpp | 3 + src/gui/dialogs/computeturnoverdialog.ui | 327 ++++++++++++---------- 2 files changed, 184 insertions(+), 146 deletions(-) diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index 6e55535..2ec7b40 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -9,6 +9,8 @@ ComputeTurnoverDialog::ComputeTurnoverDialog(QWidget *parent) : ui(new Ui::ComputeTurnoverDialog) { ui->setupUi(this); + ui->dtBeginPeriod->setDate(QDate(QDate::currentDate().year(),1,1)); + ui->dtEndPeriod->setDate(QDate::currentDate()); } ComputeTurnoverDialog::~ComputeTurnoverDialog() @@ -26,6 +28,7 @@ void ComputeTurnoverDialog::fillLabels(const int nbBillings, const int turnover) QString::number(turnover) + " euro(s)"); ui->lbBillingNb->setText(QString::number(nbBillings) + " Facture(s) trouvée(s)"); + ui->leTurnover->setText(QString::number(turnover)); } void ComputeTurnoverDialog::computeTurnover() diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 0a19937..3708a18 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -6,126 +6,193 @@ 0 0 - 441 - 352 + 500 + 200 + + + 500 + 200 + + + + + 600 + 250 + + Calcul du chiffre d'affaires - - - - 10 - 10 - 431 - 201 - - - - - - - Fin de période - - - - - - - - - - QDateTimeEdit::DaySection - - - true - - - Qt::LocalTime - - - - - - - Début de période - - - - - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - 280 - 300 - 141 - 22 - - - - Calculer - - - - - - 18 - 250 - 401 - 20 - - - - - - - Qt::AlignCenter - - - - - - 18 - 230 - 401 - 20 - - - - - - - Qt::AlignCenter - - + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Calculer + + + + :/icons/img/rate.png:/icons/img/rate.png + + + + + + + + + + 291 + 0 + + + + Période + + + + + + + + Fin + + + + + + + + + + QDateTimeEdit::DaySection + + + true + + + Qt::LocalTime + + + + + + + Début + + + + + + + true + + + + + + + Qt::Horizontal + + + + 20 + 20 + + + + + + + + + + + + + Qt::AlignCenter + + + + + + + 0 + + + + + CA + + + + + + + true + + + + + + + € (euros) + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::AlignCenter + + + + + + + - + + + btnCompute @@ -143,38 +210,6 @@ - - dtEndPeriod - dateChanged(QDate) - ComputeTurnoverDialog - endDateControl(QDate) - - - 193 - 153 - - - 124 - 197 - - - - - dtBeginPeriod - dateChanged(QDate) - ComputeTurnoverDialog - beginDateControl(QDate) - - - 208 - 72 - - - 310 - 108 - - - computeTurnover() From 0499ef09e223892fd3e7414ec464d590cf8af736 Mon Sep 17 00:00:00 2001 From: manantsoa Date: Wed, 18 Mar 2015 14:04:59 +0100 Subject: [PATCH 13/13] Add of calendars, choice of paid billing only, test correction --- src/database/billingdatabase.cpp | 1 + src/gui/dialogs/computeturnoverdialog.cpp | 20 +++--- src/gui/dialogs/computeturnoverdialog.ui | 81 +++++++++++++---------- tests/database/billingdatabasetest.cpp | 2 +- 4 files changed, 58 insertions(+), 46 deletions(-) diff --git a/src/database/billingdatabase.cpp b/src/database/billingdatabase.cpp index 9f891e5..a0222cf 100644 --- a/src/database/billingdatabase.cpp +++ b/src/database/billingdatabase.cpp @@ -395,6 +395,7 @@ QList BillingDatabase::getAllBillingsOnly(const int idProject) "FROM Billing b, BillingProject bp " "WHERE idProject=:idProject " "AND b.idBilling = bp.idBilling " + "AND isPaid = 1 " "AND isBilling = 1 " ); diff --git a/src/gui/dialogs/computeturnoverdialog.cpp b/src/gui/dialogs/computeturnoverdialog.cpp index 2ec7b40..462612f 100644 --- a/src/gui/dialogs/computeturnoverdialog.cpp +++ b/src/gui/dialogs/computeturnoverdialog.cpp @@ -9,8 +9,8 @@ ComputeTurnoverDialog::ComputeTurnoverDialog(QWidget *parent) : ui(new Ui::ComputeTurnoverDialog) { ui->setupUi(this); - ui->dtBeginPeriod->setDate(QDate(QDate::currentDate().year(),1,1)); - ui->dtEndPeriod->setDate(QDate::currentDate()); + ui->clBeginPeriod->setSelectedDate(QDate(QDate::currentDate().year(),1,1)); + ui->clEndPeriod->setSelectedDate(QDate::currentDate()); } ComputeTurnoverDialog::~ComputeTurnoverDialog() @@ -21,9 +21,9 @@ ComputeTurnoverDialog::~ComputeTurnoverDialog() void ComputeTurnoverDialog::fillLabels(const int nbBillings, const int turnover) { ui->lbCompute->setText("Votre CA du "+ - ui->dtBeginPeriod->date().toString("dd/MM/yyyy") + + ui->clBeginPeriod->selectedDate().toString("dd/MM/yyyy") + " au " + - ui->dtEndPeriod->date().toString("dd/MM/yyyy") + + ui->clEndPeriod->selectedDate().toString("dd/MM/yyyy") + " est de " + QString::number(turnover) + " euro(s)"); ui->lbBillingNb->setText(QString::number(nbBillings) + @@ -45,8 +45,8 @@ void ComputeTurnoverDialog::computeTurnover() ->getAllBillingsOnly(p->getId()); for (Billing b : Databases::BillingDatabase::instance() ->getBillingsBetweenDates(bills, - ui->dtBeginPeriod->date(), - ui->dtEndPeriod->date())) { + ui->clBeginPeriod->selectedDate(), + ui->clEndPeriod->selectedDate())) { ContributoriesList cl = Databases::ContributoryDatabase::instance() ->getContributoriesByBillingAndProject(b.getId(), p->getId()); @@ -61,15 +61,15 @@ void ComputeTurnoverDialog::computeTurnover() void ComputeTurnoverDialog::endDateControl(const QDate end) { - if (end < ui->dtBeginPeriod->date()) { - ui->dtBeginPeriod->setDate(ui->dtEndPeriod->date()); + if (end < ui->clBeginPeriod->selectedDate()) { + ui->clBeginPeriod->setSelectedDate(ui->clEndPeriod->selectedDate()); } } void ComputeTurnoverDialog::beginDateControl(const QDate begin) { - if (begin > ui->dtEndPeriod->date()) { - ui->dtEndPeriod->setDate(ui->dtBeginPeriod->date()); + if (begin > ui->clEndPeriod->selectedDate()) { + ui->clEndPeriod->setSelectedDate(ui->clBeginPeriod->selectedDate()); } } } diff --git a/src/gui/dialogs/computeturnoverdialog.ui b/src/gui/dialogs/computeturnoverdialog.ui index 3708a18..5270ffc 100644 --- a/src/gui/dialogs/computeturnoverdialog.ui +++ b/src/gui/dialogs/computeturnoverdialog.ui @@ -6,20 +6,20 @@ 0 0 - 500 - 200 + 700 + 350 - 500 - 200 + 650 + 340 - 600 - 250 + 700 + 350 @@ -75,26 +75,6 @@ - - - - - - - QDateTimeEdit::DaySection - - - true - - - Qt::LocalTime - - - @@ -102,13 +82,6 @@ - - - - true - - - @@ -122,6 +95,12 @@ + + + + + + @@ -201,8 +180,8 @@ computeTurnover() - 335 - 311 + 610 + 339 361 @@ -210,6 +189,38 @@ + + clBeginPeriod + clicked(QDate) + ComputeTurnoverDialog + beginDateControl(QDate) + + + 184 + 147 + + + 503 + 296 + + + + + clEndPeriod + clicked(QDate) + ComputeTurnoverDialog + endDateControl(QDate) + + + 411 + 165 + + + 580 + 270 + + + computeTurnover() diff --git a/tests/database/billingdatabasetest.cpp b/tests/database/billingdatabasetest.cpp index ec94e8a..cc20951 100644 --- a/tests/database/billingdatabasetest.cpp +++ b/tests/database/billingdatabasetest.cpp @@ -173,7 +173,7 @@ void BillingDatabaseTest::getAllBillingsOnly() { bool billing = true; - for (Billing b : Databases::BillingDatabase::instance()->getAllBillingsOnly(1)) { + for (Billing b : Databases::BillingDatabase::instance()->getAllBillingsOnly(23)) { if (!b.isBilling()) { billing = false; }