changeset 13:ca5ce74c0563

Refactoring.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 30 Mar 2017 16:54:11 +0300
parents 07db1a0bbdc7
children 8a6a90ce0e0f
files main.cpp main.h
diffstat 2 files changed, 49 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/main.cpp	Thu Mar 30 15:53:10 2017 +0300
+++ b/main.cpp	Thu Mar 30 16:54:11 2017 +0300
@@ -324,35 +324,6 @@
 }
 
 
-int SyntilistaMainWindow::deletePerson(qint64 id)
-{
-    QSqlDatabase::database().transaction();
-
-    QSqlQuery del;
-    del.prepare("DELETE FROM people WHERE id=?");
-    del.addBindValue(id);
-    del.exec();
-    if (!checkAndReportSQLError("delete user", del.lastError()))
-    {
-        QSqlDatabase::database().rollback();
-        return -1;
-    }
-    
-    del.prepare("DELETE FROM transactions WHERE person=?");
-    del.addBindValue(id);
-    del.exec();
-
-    if (!checkAndReportSQLError("delete user transactions", del.lastError()))
-    {
-        QSqlDatabase::database().rollback();
-        return -2;
-    }
-    
-    QSqlDatabase::database().commit();
-    return 0;
-}
-
-
 void SyntilistaMainWindow::on_button_DeletePerson_clicked()
 {
     if (currPerson.id <= 0)
@@ -378,7 +349,7 @@
 
     if (ret == QMessageBox::Yes)
     {
-        int rv = deletePerson(info.id);
+        int rv = model_People->deletePerson(info.id);
         if (rv != 0)
         {
             errorMsg(tr("SQL-tietokantavirhe"),
@@ -867,7 +838,7 @@
 }
 
 
-void PersonSQLModel::updatePerson(const PersonInfo &info)
+int PersonSQLModel::updatePerson(const PersonInfo &info)
 {
     QSqlQuery np;
 
@@ -879,14 +850,19 @@
     np.addBindValue(info.id);
     np.exec();
 
-    checkAndReportSQLError("PersonSQLModel::updatePerson()", np.lastError());
+    if (!checkAndReportSQLError("PersonSQLModel::updatePerson()", np.lastError()))
+    {
+        return -1;
+    }
+
     QSqlDatabase::database().commit();
     
     updateModel();
+    return 0;
 }
 
 
-void PersonSQLModel::addPerson(const PersonInfo &info)
+int PersonSQLModel::addPerson(const PersonInfo &info)
 {
 //    beginInsertRows(QModelIndex(), rowCount(), rowCount());
 
@@ -899,11 +875,47 @@
     np.addBindValue(QDateTime::currentDateTimeUtc());
     np.exec();
 
-    checkAndReportSQLError("PersonSQLModel::addPerson()", np.lastError());
+    if (!checkAndReportSQLError("PersonSQLModel::addPerson()", np.lastError()))
+    {
+        return -1;
+    }
+    
     QSqlDatabase::database().commit();
 
 //    endInsertRows();    
     updateModel();
+    return 0;
+}
+
+
+int PersonSQLModel::deletePerson(qint64 id)
+{
+    QSqlDatabase::database().transaction();
+    QSqlQuery del;
+
+    del.prepare("DELETE FROM people WHERE id=?");
+    del.addBindValue(id);
+    del.exec();
+
+    if (!checkAndReportSQLError("delete user", del.lastError()))
+    {
+        QSqlDatabase::database().rollback();
+        return -1;
+    }
+    
+    del.prepare("DELETE FROM transactions WHERE person=?");
+    del.addBindValue(id);
+    del.exec();
+
+    if (!checkAndReportSQLError("delete user transactions", del.lastError()))
+    {
+        QSqlDatabase::database().rollback();
+        return -2;
+    }
+    
+    QSqlDatabase::database().commit();
+    updateModel();
+    return 0;
 }
 
 
--- a/main.h	Thu Mar 30 15:53:10 2017 +0300
+++ b/main.h	Thu Mar 30 16:54:11 2017 +0300
@@ -62,8 +62,9 @@
 
     QVariant data(const QModelIndex &item, int role) const Q_DECL_OVERRIDE;
 
-    void updatePerson(const PersonInfo &person);
-    void addPerson(const PersonInfo &person);
+    int  updatePerson(const PersonInfo &person);
+    int  addPerson(const PersonInfo &person);
+    int  deletePerson(qint64 id);
     void updateModel();
 };
 
@@ -109,7 +110,6 @@
     int  addTransaction(qint64 id, double value, PersonInfo &info);
     int  addTransactionGUI(qint64 id, bool debt, double value);
     void updatePersonList();
-    int  deletePerson(qint64 id);
 
     PersonSQLModel *model_People;