From 61e2a7505c2a23ae254ea6ea4688e8755e541a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Tue, 12 Sep 2017 20:58:57 +0200 Subject: [PATCH] Fix a bug in Database.cpp : operation forced to non virtual in LinkOrUnlinkOperation --- src/model/Database.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/model/Database.cpp b/src/model/Database.cpp index 50a14f4..bd1af54 100644 --- a/src/model/Database.cpp +++ b/src/model/Database.cpp @@ -495,15 +495,17 @@ void Database::LinkOrUnlinkOperation(User* user, Operation& op) bool _virtual; QSqlQuery query(_db); + account = user->GetAccount(op.account); + if (op.transfert) { // No one or not linked if (!GetOperation(op.transfert, &linked) || op.description != linked.description || op.amount != -linked.amount || op.account == linked.account) { - req = QString("UPDATE operation SET transfert='', virtual='0' WHERE id='%1'").arg(op.id); + op._virtual = account._virtual; + req = QString("UPDATE operation SET transfert='', virtual='%1' WHERE id='%2'").arg(op._virtual?"1":"0", op.id); EXECUTE_SQL_UPDATE(req, ); op.transfert = 0; - op._virtual = false; return; } } @@ -516,8 +518,9 @@ void Database::LinkOrUnlinkOperation(User* user, Operation& op) if (query.next()) { + op._virtual = account._virtual; set = query.record(); - req = QString("UPDATE operation SET transfert='', virtual='0' WHERE id='%1'").arg(set.value("id").toString()); + req = QString("UPDATE operation SET transfert='', virtual='%1' WHERE id='%2'").arg(op._virtual?"1":"0", set.value("id").toString()); query.clear(); EXECUTE_SQL_UPDATE(req, ); } @@ -529,8 +532,6 @@ void Database::LinkOrUnlinkOperation(User* user, Operation& op) EXECUTE_SQL_QUERY(req, ); - op._virtual = false; - // Don't need to link if (!query.next()) return ; @@ -541,7 +542,6 @@ void Database::LinkOrUnlinkOperation(User* user, Operation& op) op.transfert = linked.id; - account = user->GetAccount(op.account); account2 = user->GetAccount(set.value("account").toInt()); _virtual = account._virtual || account2._virtual;