# HG changeset patch # User Matti Hamalainen # Date 1503496385 -10800 # Node ID 10c6bd84eb32a90b63948a36d5c1c4933d1dce58 # Parent f6685c2eb75d0b1c100683682632c903d4977eb5 Add "total balance" information in the UI, which displays the total sum balance of all people. diff -r f6685c2eb75d -r 10c6bd84eb32 src/main.cpp --- a/src/main.cpp Wed Aug 23 14:11:27 2017 +0300 +++ b/src/main.cpp Wed Aug 23 16:53:05 2017 +0300 @@ -84,7 +84,8 @@ { QTextStream out(&fh); out << - slDateTimeToLocal(QDateTime::currentDateTimeUtc()).toString(QStringLiteral("yyyy-MM-dd hh:mm:ss")) + slDateTimeToLocal(QDateTime::currentDateTimeUtc()). + toString(QStringLiteral("yyyy-MM-dd hh:mm:ss")) << " : " << msg << "\n"; fh.close(); } @@ -914,7 +915,7 @@ // void SyntilistaMainWindow::updatePersonList() { - static QString queryBase = + static const QString queryBase = "SELECT id,last_name,first_name," "(SELECT TOTAL(value) FROM transactions WHERE transactions.person=people.id) AS balance," "updated FROM people"; @@ -976,6 +977,44 @@ model_People->setHeaderData(2, Qt::Horizontal, tr("Etunimi")); model_People->setHeaderData(3, Qt::Horizontal, tr("Tase")); model_People->setHeaderData(4, Qt::Horizontal, tr("Muutettu")); + + updateTotalBalance(); +} + + +// +// Update total balance value in the UI +// +void SyntilistaMainWindow::updateTotalBalance() +{ + // Update total balance value + QSqlQuery query; + query.prepare(QStringLiteral("SELECT TOTAL(value) FROM transactions AS balance")); + query.exec(); + if (!slCheckAndReportSQLError("updatePersonList() get total balance query", query.lastError())) + { + slErrorMsg( + tr("SQL-tietokantavirhe"), + tr("Tietokantaa kyseltäessä tapahtui virhe.")); + } + else + { + double balance; + QString tmp ; + if (query.next()) + { + balance = query.value(0).toDouble();; + tmp = slMoneyValueToStr(balance); + } + else + { + balance = -1; + tmp = "?"; + } + + ui->label_TotalBalanceValue->setText(tmp); + ui->label_TotalBalanceValue->setStyleSheet(balance < 0 ? "color: red;" : "color: green;"); + } } @@ -1023,6 +1062,8 @@ QSqlDatabase::database().commit(); + updateTotalBalance(); + return 0; } diff -r f6685c2eb75d -r 10c6bd84eb32 src/main.h --- a/src/main.h Wed Aug 23 14:11:27 2017 +0300 +++ b/src/main.h Wed Aug 23 16:53:05 2017 +0300 @@ -131,6 +131,7 @@ int addTransaction(qint64 id, double value, PersonInfo &info); int addTransactionGUI(qint64 id, bool debt, double value); void updatePersonList(); + void updateTotalBalance(); bool printDocumentPage(SLPageInfo &pinfo, const bool getPageInfo, const int page, QPainter *pt, QPrinter *printer); diff -r f6685c2eb75d -r 10c6bd84eb32 src/mainwindow.ui --- a/src/mainwindow.ui Wed Aug 23 14:11:27 2017 +0300 +++ b/src/mainwindow.ui Wed Aug 23 16:53:05 2017 +0300 @@ -50,6 +50,31 @@ + + + + + Kokonaistase: + + + + + + + 12345 + + + + + + + EUR + + + + + +