diff src/main.cpp @ 218:c3f47d489097

Implement global transactions viewer dialog.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 06 Mar 2018 14:37:39 +0200
parents 58af72da7f60
children 5406b8664f00
line wrap: on
line diff
--- a/src/main.cpp	Tue Jan 02 01:47:38 2018 +0200
+++ b/src/main.cpp	Tue Mar 06 14:37:39 2018 +0200
@@ -14,6 +14,7 @@
 #include "ui_mainwindow.h"
 #include "ui_editperson.h"
 #include "ui_aboutwindow.h"
+#include "ui_viewtransactions.h"
 
 
 //
@@ -845,6 +846,12 @@
 }
 
 
+void SyntilistaMainWindow::on_button_ViewTransactions_clicked()
+{
+    new ViewTransactions(this);
+}
+
+
 void SyntilistaMainWindow::on_button_DeletePerson_clicked()
 {
     if (currPerson.id <= 0)
@@ -1582,3 +1589,63 @@
 {
     close();
 }
+
+
+//
+// Global transactions list viewer
+//
+ViewTransactions::ViewTransactions(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::ViewTransactions)
+{
+    ui->setupUi(this);
+
+    slSetCommonStyleSheet(this);
+
+    setModal(true);
+    setAttribute(Qt::WA_DeleteOnClose);
+    show();
+    activateWindow();
+    raise();
+    setFocus();
+
+    model_Transactions = new SLTransactionSQLModel();
+    ui->tableview_Transactions->setModel(model_Transactions);
+    ui->tableview_Transactions->setItemDelegate(new QSqlRelationalDelegate(ui->tableview_Transactions));
+    ui->tableview_Transactions->verticalHeader()->setVisible(false);
+    ui->tableview_Transactions->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+
+    QSqlQuery query;
+    query.prepare(QStringLiteral(
+        "SELECT transactions.id,transactions.value,transactions.added,"
+        "people.last_name,people.first_name FROM transactions "
+        "LEFT JOIN people ON transactions.person=people.id ORDER BY transactions.added DESC"
+        ));
+
+    query.exec();
+    slCheckAndReportSQLError("SELECT transactions for tableview_Transactions", query.lastError());
+
+    model_Transactions->setQuery(query);
+
+    model_Transactions->setHeaderData(0, Qt::Horizontal, tr("ID"));
+    model_Transactions->setHeaderData(1, Qt::Horizontal, tr("Summa"));
+    model_Transactions->setHeaderData(2, Qt::Horizontal, tr("Aika"));
+    model_Transactions->setHeaderData(3, Qt::Horizontal, tr("Sukunimi"));
+    model_Transactions->setHeaderData(4, Qt::Horizontal, tr("Etunimi"));
+
+    ui->tableview_Transactions->setModel(model_Transactions);
+    ui->tableview_Transactions->setColumnHidden(0, true);
+}
+
+
+ViewTransactions::~ViewTransactions()
+{
+    delete ui;
+    delete model_Transactions;
+}
+
+
+void ViewTransactions::on_button_Close_clicked()
+{
+    close();
+}