# HG changeset patch # User Matti Hamalainen # Date 1490882051 -10800 # Node ID ca5ce74c05630410a52506d81e5cf5a9468bc90d # Parent 07db1a0bbdc715a5459ad542ce8bbe1080ad87f8 Refactoring. diff -r 07db1a0bbdc7 -r ca5ce74c0563 main.cpp --- 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; } diff -r 07db1a0bbdc7 -r ca5ce74c0563 main.h --- 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;