mymoneydatabasemgr.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MYMONEYDATABASEMGR_H
00019 #define MYMONEYDATABASEMGR_H
00020
00021
00022
00023
00024
00025
00026
00027 #include "imymoneyserialize.h"
00028 #include "imymoneystorage.h"
00029 #include "mymoneymap.h"
00030 #include "mymoneystoragesql.h"
00031
00044 class MyMoneyDatabaseMgr : public IMyMoneyStorage, public IMyMoneySerialize,
00045 public MyMoneyKeyValueContainer
00046 {
00047 public:
00048 MyMoneyDatabaseMgr();
00049 ~MyMoneyDatabaseMgr();
00050
00051
00052 virtual const MyMoneyPayee user(void) const;
00053 virtual const QDate creationDate(void) const;
00054 virtual const QDate lastModificationDate(void) const;
00055 virtual unsigned int currentFixVersion(void) const;
00056 virtual unsigned int fileFixVersion(void) const;
00057
00058
00059 virtual void setUser(const MyMoneyPayee& user);
00060 virtual void setFileFixVersion(const unsigned int v);
00061
00062
00063 virtual void setValue(const QString& key, const QString& value);
00064 virtual const QString value(const QString& key) const;
00065 virtual void deletePair(const QString& key);
00066
00072 virtual MyMoneyDatabaseMgr const * duplicate(void);
00073
00081 virtual void addAccount(MyMoneyAccount& account);
00082
00093 virtual void addAccount(MyMoneyAccount& parent, MyMoneyAccount& account);
00094
00102 virtual void addPayee(MyMoneyPayee& payee);
00103
00112 virtual const MyMoneyPayee payee(const QString& id) const;
00113
00123 virtual const MyMoneyPayee payeeByName(const QString& payee) const;
00124
00132 virtual void modifyPayee(const MyMoneyPayee& payee);
00133
00141 virtual void removePayee(const MyMoneyPayee& payee);
00142
00149 virtual const QValueList<MyMoneyPayee> payeeList(void) const;
00150
00160 virtual const MyMoneyAccount account(const QString& id) const;
00161
00171 virtual bool isStandardAccount(const QString& id) const;
00172
00182 virtual void setAccountName(const QString& id, const QString& name);
00183
00194 virtual void addInstitution(MyMoneyInstitution& institution);
00195
00208 virtual void addTransaction(MyMoneyTransaction& transaction, const bool skipAccountUpdate = false);
00209
00219 virtual bool hasActiveSplits(const QString& id) const;
00220
00232 virtual const MyMoneyMoney balance(const QString& id, const QDate& date) const;
00233
00245 virtual const MyMoneyMoney totalBalance(const QString& id, const QDate& date) const;
00246
00254 virtual const MyMoneyInstitution institution(const QString& id) const;
00255
00262 virtual bool dirty(void) const;
00263
00273 virtual void setDirty(void);
00274
00281 virtual unsigned int accountCount(void) const;
00282
00290 virtual const QValueList<MyMoneyInstitution> institutionList(void) const;
00291
00300 virtual void modifyAccount(const MyMoneyAccount& account, const bool skipCheck = false);
00301
00310 virtual void modifyInstitution(const MyMoneyInstitution& institution);
00311
00320 virtual void modifyTransaction(const MyMoneyTransaction& transaction);
00321
00330 virtual void reparentAccount(MyMoneyAccount &account, MyMoneyAccount& parent);
00331
00340 virtual void removeTransaction(const MyMoneyTransaction& transaction);
00341
00353 virtual unsigned int transactionCount(const QString& account = QString()) const;
00354
00364 virtual const QMap<QString, unsigned long> transactionCountMap(void) const;
00365
00379 virtual const QValueList<MyMoneyTransaction> transactionList(MyMoneyTransactionFilter& filter) const;
00380
00389 virtual void transactionList(QValueList<MyMoneyTransaction>& list, MyMoneyTransactionFilter& filter) const;
00390
00399 virtual void transactionList(QValueList<QPair<MyMoneyTransaction, MyMoneySplit> >& list, MyMoneyTransactionFilter& filter) const;
00400
00410 virtual void removeAccount(const MyMoneyAccount& account);
00411
00421 virtual void removeInstitution(const MyMoneyInstitution& institution);
00422
00431 virtual const MyMoneyTransaction transaction(const QString& id) const;
00432
00441 virtual const MyMoneyTransaction transaction(const QString& account, const int idx) const;
00442
00449 virtual unsigned int institutionCount(void) const;
00450
00458 virtual void accountList(QValueList<MyMoneyAccount>& list) const;
00459
00464 virtual const MyMoneyAccount liability(void) const;
00465
00470 virtual const MyMoneyAccount asset(void) const;
00471
00476 virtual const MyMoneyAccount expense(void) const;
00477
00482 virtual const MyMoneyAccount income(void) const;
00483
00488 virtual const MyMoneyAccount equity(void) const;
00489
00499 virtual void addSecurity(MyMoneySecurity& security);
00500
00509 virtual void modifySecurity(const MyMoneySecurity& security);
00510
00519 virtual void removeSecurity(const MyMoneySecurity& security);
00520
00530 virtual const MyMoneySecurity security(const QString& id) const;
00531
00538 virtual const QValueList<MyMoneySecurity> securityList(void) const;
00539
00540 virtual void addPrice(const MyMoneyPrice& price);
00541 virtual void removePrice(const MyMoneyPrice& price);
00542 virtual const MyMoneyPrice price(const QString& fromId, const QString& toId, const QDate& date, const bool exactDate) const;
00543
00549 virtual const MyMoneyPriceList priceList(void) const;
00550
00561 virtual void addSchedule(MyMoneySchedule& sched);
00562
00571 virtual void modifySchedule(const MyMoneySchedule& sched);
00572
00581 virtual void removeSchedule(const MyMoneySchedule& sched);
00582
00592 virtual const MyMoneySchedule schedule(const QString& id) const;
00593
00620 virtual const QValueList<MyMoneySchedule> scheduleList(const QString& accountId = QString(),
00621 const MyMoneySchedule::typeE type = MyMoneySchedule::TYPE_ANY,
00622 const MyMoneySchedule::occurenceE occurence = MyMoneySchedule::OCCUR_ANY,
00623 const MyMoneySchedule::paymentTypeE paymentType = MyMoneySchedule::STYPE_ANY,
00624 const QDate& startDate = QDate(),
00625 const QDate& endDate = QDate(),
00626 const bool overdue = false) const;
00627
00628 virtual const QValueList<MyMoneySchedule> scheduleListEx( int scheduleTypes,
00629 int scheduleOcurrences,
00630 int schedulePaymentTypes,
00631 QDate startDate,
00632 const QStringList& accounts=QStringList()) const;
00633
00643 virtual void addCurrency(const MyMoneySecurity& currency);
00644
00653 virtual void modifyCurrency(const MyMoneySecurity& currency);
00654
00663 virtual void removeCurrency(const MyMoneySecurity& currency);
00664
00674 virtual const MyMoneySecurity currency(const QString& id) const;
00675
00684 virtual const QValueList<MyMoneySecurity> currencyList(void) const;
00685
00694 virtual const QValueList<MyMoneyReport> reportList( void ) const;
00695
00706 virtual void addReport( MyMoneyReport& report );
00707
00716 virtual void modifyReport( const MyMoneyReport& report );
00717
00724 virtual unsigned countReports( void ) const;
00725
00735 virtual const MyMoneyReport report( const QString& id ) const;
00736
00745 virtual void removeReport(const MyMoneyReport& report);
00746
00755 virtual const QValueList<MyMoneyBudget> budgetList( void ) const;
00756
00767 virtual void addBudget( MyMoneyBudget& budget );
00768
00778 virtual const MyMoneyBudget budgetByName(const QString& budget) const;
00779
00788 virtual void modifyBudget( const MyMoneyBudget& budget );
00789
00796 virtual unsigned countBudgets( void ) const;
00797
00807 virtual MyMoneyBudget budget( const QString& id ) const;
00808
00817 virtual void removeBudget(const MyMoneyBudget& budget);
00818
00819
00820
00824 virtual void clearCache(void);
00825
00837 virtual bool isReferenced(const MyMoneyObject& obj, const MyMoneyFileBitArray& skipCheck = MyMoneyFileBitArray()) const;
00838
00842 virtual void close(void);
00843
00847 virtual void startTransaction(void);
00848 virtual bool commitTransaction(void);
00849 virtual void rollbackTransaction(void);
00850
00851
00852 virtual void setCreationDate(const QDate& val);
00853
00857 virtual KSharedPtr <MyMoneyStorageSql> connectToDatabase
00858 (const KURL& url);
00864 virtual void fillStorage();
00865
00874 virtual void setLastModificationDate(const QDate& val);
00875
00880 virtual bool isDuplicateTransaction(const QString&) const;
00881
00882 virtual void loadAccounts(const QMap<QString, MyMoneyAccount>& map);
00883 virtual void loadTransactions(const QMap<QString, MyMoneyTransaction>& map);
00884 virtual void loadInstitutions(const QMap<QString, MyMoneyInstitution>& map);
00885 virtual void loadPayees(const QMap<QString, MyMoneyPayee>& map);
00886 virtual void loadSchedules(const QMap<QString, MyMoneySchedule>& map);
00887 virtual void loadSecurities(const QMap<QString, MyMoneySecurity>& map);
00888 virtual void loadCurrencies(const QMap<QString, MyMoneySecurity>& map);
00889 virtual void loadReports( const QMap<QString, MyMoneyReport>& reports );
00890 virtual void loadBudgets( const QMap<QString, MyMoneyBudget>& budgets );
00891 virtual void loadPrices(const MyMoneyPriceList& list);
00892
00893 virtual unsigned long accountId(void) const;
00894 virtual unsigned long transactionId(void) const;
00895 virtual unsigned long payeeId(void) const;
00896 virtual unsigned long institutionId(void) const;
00897 virtual unsigned long scheduleId(void) const;
00898 virtual unsigned long securityId(void) const;
00899 virtual unsigned long reportId(void) const;
00900 virtual unsigned long budgetId(void) const;
00901
00902 virtual void loadAccountId(const unsigned long id);
00903 virtual void loadTransactionId(const unsigned long id);
00904 virtual void loadPayeeId(const unsigned long id);
00905 virtual void loadInstitutionId(const unsigned long id);
00906 virtual void loadScheduleId(const unsigned long id);
00907 virtual void loadSecurityId(const unsigned long id);
00908 virtual void loadReportId(const unsigned long id);
00909 virtual void loadBudgetId(const unsigned long id);
00910
00919 virtual const QMap<QString, QString> pairs(void) const;
00920
00932 virtual void setPairs(const QMap<QString, QString>& list);
00933
00938 virtual void rebuildAccountBalances(void);
00939
00940 private:
00946 QDate m_creationDate;
00947
00952 unsigned int m_currentFixVersion;
00953
00958 unsigned int m_fileFixVersion;
00959
00964 QDate m_lastModificationDate;
00965
00969 KSharedPtr <MyMoneyStorageSql> m_sql;
00970
00975 MyMoneyPayee m_user;
00976
00981 const QString nextInstitutionID(void);
00982
00987 const QString nextAccountID(void);
00988
00993 const QString nextTransactionID(void);
00994
00999 const QString nextPayeeID(void);
01000
01005 const QString nextScheduleID(void);
01006
01011 const QString nextSecurityID(void);
01012
01013 const QString nextReportID(void);
01014
01019 const QString nextBudgetID(void);
01020
01021 void removeReferences(const QString& id);
01022
01023 static const int INSTITUTION_ID_SIZE = 6;
01024 static const int ACCOUNT_ID_SIZE = 6;
01025 static const int TRANSACTION_ID_SIZE = 18;
01026 static const int PAYEE_ID_SIZE = 6;
01027 static const int SCHEDULE_ID_SIZE = 6;
01028 static const int SECURITY_ID_SIZE = 6;
01029 static const int REPORT_ID_SIZE = 6;
01030 static const int BUDGET_ID_SIZE = 6;
01031
01032
01033
01034
01035 static const int CURRENT_FIX_VERSION = 3;
01036
01037 };
01038 #endif