From aabb1b8e917a3245a849d456d8e5e0bd5b2ee09a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Wojni=C5=82owicz?= Date: Sat, 2 Jul 2016 14:49:02 +0200 Subject: [PATCH 19/22] Set type of QIF statement according to account type stored BUG: 364777 --- kmymoney/converter/mymoneyqifreader.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/kmymoney/converter/mymoneyqifreader.cpp b/kmymoney/converter/mymoneyqifreader.cpp index 823e243..9614bfb 100644 --- a/kmymoney/converter/mymoneyqifreader.cpp +++ b/kmymoney/converter/mymoneyqifreader.cpp @@ -133,10 +133,11 @@ void MyMoneyQifReader::Private::finishStatement() qDebug("Statement with %d transactions, %d prices and %d securities added to the statement list", st.m_listTransactions.count(), st.m_listPrices.count(), st.m_listSecurities.count()); } + MyMoneyStatement::EType type = st.m_eType; //stash type and... // start with a fresh statement st = MyMoneyStatement(); st.m_skipCategoryMatching = !mapCategories; - st.m_eType = (transactionType == MyMoneyQifReader::EntryTransaction) ? MyMoneyStatement::etCheckings : MyMoneyStatement::etInvestment; + st.m_eType = type; } const QString MyMoneyQifReader::Private::accountTypeToQif(MyMoneyAccount::accountTypeE type) const @@ -593,6 +594,7 @@ void MyMoneyQifReader::processQifSpecial(const QString& _line) d->transactionType = m_entryType = EntryTransaction; } else if (line.toLower() == "invst" || line.toLower() == i18nc("QIF tag for investment account", "Invst").toLower()) { + d->accountType = MyMoneyAccount::Investment; d->transactionType = m_entryType = EntryInvestmentTransaction; } else if (line.toLower() == "invoice" || KMyMoneyGlobalSettings::qifInvoice().toLower().contains(line.toLower())) { @@ -1067,8 +1069,24 @@ void MyMoneyQifReader::processTransactionEntry() d->st.m_accountId = m_account.id(); s1.m_accountId = d->st.m_accountId; + switch (d->accountType) { + case MyMoneyAccount::Checkings: + d->st.m_eType=MyMoneyStatement::etCheckings; + break; + case MyMoneyAccount::Savings: + d->st.m_eType=MyMoneyStatement::etSavings; + break; + case MyMoneyAccount::Investment: + d->st.m_eType=MyMoneyStatement::etInvestment; + break; + case MyMoneyAccount::CreditCard: + d->st.m_eType=MyMoneyStatement::etCreditCard; + break; + default: + d->st.m_eType=MyMoneyStatement::etNone; + break; + } - d->st.m_eType = MyMoneyStatement::etCheckings; tr.m_datePosted = (m_qifProfile.date(extractLine('D'))); if (!tr.m_datePosted.isValid()) { int rc = KMessageBox::warningContinueCancel(0, -- 2.7.4