File indexing completed on 2024-05-12 16:42:07

0001 /*
0002     SPDX-FileCopyrightText: 2005-2009 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "kmymoneyfileinfodlg.h"
0008 
0009 // ----------------------------------------------------------------------------
0010 // QT Includes
0011 
0012 #include <QLabel>
0013 #include <QList>
0014 #include <QDate>
0015 
0016 // ----------------------------------------------------------------------------
0017 // KDE Includes
0018 
0019 // ----------------------------------------------------------------------------
0020 // Project Includes
0021 
0022 #include "ui_kmymoneyfileinfodlg.h"
0023 
0024 #include "mymoneystoragemgr.h"
0025 #include "mymoneyfile.h"
0026 #include "mymoneyinstitution.h"
0027 #include "mymoneyaccount.h"
0028 #include "mymoneypayee.h"
0029 #include "mymoneyprice.h"
0030 #include "mymoneyschedule.h"
0031 #include "mymoneytransaction.h"
0032 #include "mymoneytransactionfilter.h"
0033 #include "mymoneyenums.h"
0034 
0035 KMyMoneyFileInfoDlg::KMyMoneyFileInfoDlg(QWidget *parent) :
0036     QDialog(parent),
0037     ui(new Ui::KMyMoneyFileInfoDlg)
0038 {
0039     ui->setupUi(this);
0040     // Now fill the fields with data
0041     auto storage = MyMoneyFile::instance()->storage();
0042 
0043     ui->m_creationDate->setText(storage->creationDate().toString(Qt::ISODate));
0044     ui->m_lastModificationDate->setText(storage->lastModificationDate().toString(Qt::ISODate));
0045     ui->m_baseCurrency->setText(storage->value("kmm-baseCurrency"));
0046 
0047     ui->m_payeeCount->setText(QString::fromLatin1("%1").arg(storage->payeeList().count()));
0048     ui->m_institutionCount->setText(QString::fromLatin1("%1").arg(storage->institutionList().count()));
0049 
0050     QList<MyMoneyAccount> a_list;
0051     storage->accountList(a_list);
0052     ui->m_accountCount->setText(QString::fromLatin1("%1").arg(a_list.count()));
0053 
0054     QMap<eMyMoney::Account::Type, int> accountMap;
0055     QMap<eMyMoney::Account::Type, int> accountMapClosed;
0056     QList<MyMoneyAccount>::const_iterator it_a;
0057     for (it_a = a_list.constBegin(); it_a != a_list.constEnd(); ++it_a) {
0058         accountMap[(*it_a).accountType()] = accountMap[(*it_a).accountType()] + 1;
0059         accountMapClosed[(*it_a).accountType()] = accountMapClosed[(*it_a).accountType()] + 0;
0060         if ((*it_a).isClosed())
0061             accountMapClosed[(*it_a).accountType()] = accountMapClosed[(*it_a).accountType()] + 1;
0062     }
0063 
0064     QMap<eMyMoney::Account::Type, int>::const_iterator it_m;
0065     for (it_m = accountMap.constBegin(); it_m != accountMap.constEnd(); ++it_m) {
0066         QTreeWidgetItem *item = new QTreeWidgetItem();
0067         item->setText(0, MyMoneyAccount::accountTypeToString(it_m.key()));
0068         item->setText(1, QString::fromLatin1("%1").arg(*it_m));
0069         item->setText(2, QString::fromLatin1("%1").arg(accountMapClosed[it_m.key()]));
0070         ui->m_accountView->invisibleRootItem()->addChild(item);
0071     }
0072 
0073     MyMoneyTransactionFilter filter;
0074     filter.setReportAllSplits(false);
0075     ui->m_transactionCount->setText(QString::fromLatin1("%1").arg(storage->transactionList(filter).count()));
0076     filter.setReportAllSplits(true);
0077     ui->m_splitCount->setText(QString::fromLatin1("%1").arg(storage->transactionList(filter).count()));
0078     ui->m_scheduleCount->setText(QString::fromLatin1("%1").arg(storage->scheduleList(QString(), eMyMoney::Schedule::Type::Any, eMyMoney::Schedule::Occurrence::Any, eMyMoney::Schedule::PaymentType::Any,
0079                                  QDate(), QDate(), false).count()));
0080     MyMoneyPriceList list = storage->priceList();
0081     MyMoneyPriceList::const_iterator it_p;
0082     int pCount = 0;
0083     for (it_p = list.constBegin(); it_p != list.constEnd(); ++it_p)
0084         pCount += (*it_p).count();
0085     ui->m_priceCount->setText(QString::fromLatin1("%1").arg(pCount));
0086 }
0087 
0088 KMyMoneyFileInfoDlg::~KMyMoneyFileInfoDlg()
0089 {
0090     delete ui;
0091 }