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