[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kmymoney/frameworks] kmymoney/plugins/csvimport: Make matching securities by their symbols case ins
From:       Łukasz_Wojniłowicz <lukasz.wojnilowicz () gmail ! com>
Date:       2016-04-24 5:17:00
Message-ID: E1auCPk-0005wx-KS () scm ! kde ! org
[Download RAW message or body]

Git commit 84eaeecc2e48a9d9391d77154243d6ea052a0c6f by Łukasz Wojniłowicz.
Committed on 24/04/2016 at 05:14.
Pushed by wojnilowicz into branch 'frameworks'.

Make matching securities by their symbols case insensitive

Fixes bug #360435. "XYZ" and "xyz" securities should be recognized as
the same type of security during CSV import. Moreover securities symbols
are always uppercase (see stock quotes in NASDAQ for example), so make
them uppercase by default in KMM.

M  +4    -5    kmymoney/plugins/csvimport/csvwizard.cpp
M  +4    -4    kmymoney/plugins/csvimport/investprocessing.cpp

http://commits.kde.org/kmymoney/84eaeecc2e48a9d9391d77154243d6ea052a0c6f

diff --git a/kmymoney/plugins/csvimport/csvwizard.cpp \
b/kmymoney/plugins/csvimport/csvwizard.cpp index f5b2d6a..d74b93e 100644
--- a/kmymoney/plugins/csvimport/csvwizard.cpp
+++ b/kmymoney/plugins/csvimport/csvwizard.cpp
@@ -1678,21 +1678,20 @@ bool LinesDatePage::validatePage()
       if (m_wizDlg->m_csvDialog->ui->tableWidget->item(row, col) == 0) {  //  This \
cell does not exist  continue;
       }
-      symbl = m_wizDlg->m_csvDialog->ui->tableWidget->item(row, \
col)->text().toLower().trimmed(); +      symbl = \
                m_wizDlg->m_csvDialog->ui->tableWidget->item(row, \
                col)->text().toUpper().trimmed();
       int detail = m_wizDlg->m_pageInvestment->ui->comboBoxInv_detailCol->currentIndex();
                
-      securityName = m_wizDlg->m_csvDialog->ui->tableWidget->item(row, \
detail)->text().toLower(); +      securityName = \
m_wizDlg->m_csvDialog->ui->tableWidget->item(row, detail)->text().trimmed();  // \
Check if we already have the security on file.  // Just use the symbol for matching, \
because the security name  // field is unstandardised and very variable.
-      bool exists;
+      bool exists = false;
       QString name;
       QList<MyMoneySecurity>::ConstIterator it = list.constBegin();
       while (it != list.constEnd()) {
-        exists = false;
         if (!symbl.isEmpty())  {     //  symbol already exists
           sec = *it;
           name.clear();
-          if (sec.tradingSymbol() == symbl) {
+          if (symbl.compare(sec.tradingSymbol(), Qt::CaseInsensitive) == 0) {
             exists = true;
             name = sec.name();
             break;
diff --git a/kmymoney/plugins/csvimport/investprocessing.cpp \
b/kmymoney/plugins/csvimport/investprocessing.cpp index 73e4e4d..4298ad4 100644
--- a/kmymoney/plugins/csvimport/investprocessing.cpp
+++ b/kmymoney/plugins/csvimport/investprocessing.cpp
@@ -1376,12 +1376,12 @@ int InvestProcessing::processInvestLine(const QString& \
inBuffer)  if (m_symbolColumn == -1) {
         return KMessageBox::Cancel;
       }
-      QString symbol = m_columnList[m_symbolColumn].toLower().trimmed();
+      QString symbol = m_columnList[m_symbolColumn].toUpper().trimmed();
       if (!symbol.isEmpty()) {
         name = m_map.value(symbol);
         m_columnList[i] = symbol;
       } else {
-        name = m_columnList[m_detailColumn].toLower();
+        name = m_columnList[m_detailColumn].trimmed();
       }
 
       m_trInvestData.symbol = symbol;
@@ -1391,11 +1391,11 @@ int InvestProcessing::processInvestLine(const QString& \
                inBuffer)
     else if (m_columnTypeList[i] == "detail") { //                Detail Col
       QString str = m_csvDialog->m_detailFilter;
       QString name;
-      QString symbol = m_columnList[m_symbolColumn].toLower().trimmed();
+      QString symbol = m_columnList[m_symbolColumn].toUpper().trimmed();
       if (!symbol.isEmpty()) {
         name = m_map.value(symbol);
       } else {
-        name = m_columnList[m_detailColumn].toLower();
+        name = m_columnList[m_detailColumn].trimmed();
       }
       txt = m_columnList[i];
       if (m_csvDialog->m_symbolTableDlg->m_widget->tableWidget->item(m_symbolRow, 2) \
!= 0) {   //  If this item exists...


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic