File indexing completed on 2024-05-12 16:43:41

0001 /*
0002     SPDX-FileCopyrightText: 2005-2017 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-FileCopyrightText: 2005-2006 Ace Jones <acejones@users.sourceforge.net>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef TESTUTILITIES_H
0008 #define TESTUTILITIES_H
0009 
0010 #include <QList>
0011 #include <QDate>
0012 
0013 class QDomDocument;
0014 
0015 #include "mymoneyaccount.h"
0016 #include "mymoneytransaction.h"
0017 #include "mymoneymoney.h"
0018 class MyMoneyReport;
0019 
0020 namespace reports
0021 {
0022 class PivotTable;
0023 class QueryTable;
0024 }
0025 
0026 namespace test
0027 {
0028 
0029 extern const MyMoneyMoney moCheckingOpen;
0030 extern const MyMoneyMoney moCreditOpen;
0031 extern const MyMoneyMoney moConverterCheckingOpen;
0032 extern const MyMoneyMoney moConverterCreditOpen;
0033 extern const MyMoneyMoney moZero;
0034 extern const MyMoneyMoney moSolo;
0035 extern const MyMoneyMoney moParent1;
0036 extern const MyMoneyMoney moParent2;
0037 extern const MyMoneyMoney moParent;
0038 extern const MyMoneyMoney moChild;
0039 extern const MyMoneyMoney moThomas;
0040 extern const MyMoneyMoney moNoPayee;
0041 
0042 extern QString acAsset;
0043 extern QString acLiability;
0044 extern QString acExpense;
0045 extern QString acIncome;
0046 extern QString acChecking;
0047 extern QString acCredit;
0048 extern QString acSolo;
0049 extern QString acParent;
0050 extern QString acChild;
0051 extern QString acSecondChild;
0052 extern QString acGrandChild1;
0053 extern QString acGrandChild2;
0054 extern QString acForeign;
0055 extern QString acCanChecking;
0056 extern QString acJpyChecking;
0057 extern QString acCanCash;
0058 extern QString acJpyCash;
0059 extern QString inBank;
0060 extern QString eqStock1;
0061 extern QString eqStock2;
0062 extern QString eqStock3;
0063 extern QString eqStock4;
0064 extern QString acInvestment;
0065 extern QString acStock1;
0066 extern QString acStock2;
0067 extern QString acStock3;
0068 extern QString acStock4;
0069 extern QString acDividends;
0070 extern QString acInterest;
0071 extern QString acFees;
0072 extern QString acTax;
0073 extern QString acCash;
0074 
0075 class TransactionHelper: public MyMoneyTransaction
0076 {
0077 private:
0078     QString m_id;
0079 public:
0080     TransactionHelper(const QDate& _date, const QString& _action, MyMoneyMoney _value, const QString& _accountid, const QString& _categoryid, const QString& _currencyid = QString(), const QString& _payee = "Test Payee");
0081     ~TransactionHelper();
0082     void update();
0083 protected:
0084     TransactionHelper() {}
0085 };
0086 
0087 class InvTransactionHelper: public TransactionHelper
0088 {
0089 public:
0090     InvTransactionHelper(const QDate& _date, const QString& _action, MyMoneyMoney _shares, MyMoneyMoney _value, const QString& _stockaccountid, const QString& _transferid, const QString& _categoryid, MyMoneyMoney _fee = MyMoneyMoney());
0091     void init(const QDate& _date, const QString& _action, MyMoneyMoney _shares, MyMoneyMoney _price, MyMoneyMoney _fee, const QString& _stockaccountid, const QString& _transferid, const QString& _categoryid);
0092 };
0093 
0094 class BudgetEntryHelper
0095 {
0096 private:
0097     QDate m_date;
0098     QString m_categoryid;
0099     MyMoneyMoney m_amount;
0100 
0101 public:
0102     BudgetEntryHelper() {}
0103     BudgetEntryHelper(const QDate& _date, const QString& _categoryid, bool /* _applytosub */, const MyMoneyMoney& _amount): m_date(_date), m_categoryid(_categoryid), m_amount(_amount) {}
0104 };
0105 
0106 class BudgetHelper: public QList<BudgetEntryHelper>
0107 {
0108     MyMoneyMoney budgetAmount(const QDate& _date, const QString& _categoryid, bool& _applytosub);
0109 };
0110 
0111 extern QString makeAccount(const QString& _name, eMyMoney::Account::Type _type, MyMoneyMoney _balance, const QDate& _open, const QString& _parent, QString _currency = "", bool _taxReport = false, bool _openingBalance = false);
0112 extern void makePrice(const QString& _currencyid, const QDate& _date, const MyMoneyMoney& _price);
0113 QString makeEquity(const QString& _name, const QString& _symbol);
0114 extern void makeEquityPrice(const QString& _id, const QDate& _date, const MyMoneyMoney& _price);
0115 extern void writeRCFtoXMLDoc(const MyMoneyReport& filter, QDomDocument* doc);
0116 extern void writeRCFtoXML(const MyMoneyReport& filter, const QString& _filename = QString());
0117 extern bool readRCFfromXMLDoc(QList<MyMoneyReport>& list, QDomDocument* doc);
0118 extern bool readRCFfromXML(QList<MyMoneyReport>& list, const QString& filename);
0119 extern void XMLandback(MyMoneyReport& filter);
0120 extern MyMoneyMoney searchHTML(const QString& _html, const QString& _search);
0121 
0122 } // end namespace test
0123 
0124 #endif // TESTUTILITIES_H