00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef IMYMONEYSERIALIZE_H
00024 #define IMYMONEYSERIALIZE_H
00025
00026
00027
00028
00029 #include <qstring.h>
00030 #include <qvaluelist.h>
00031
00032
00033
00034
00035 #include <kmymoney/mymoneyutils.h>
00036 #include <kmymoney/mymoneyinstitution.h>
00037 #include <kmymoney/mymoneyaccount.h>
00038 #include <kmymoney/mymoneytransaction.h>
00039 #include <kmymoney/mymoneypayee.h>
00040 #include <kmymoney/mymoneyscheduled.h>
00041 #include <kmymoney/mymoneytransactionfilter.h>
00042 #include <kmymoney/mymoneysecurity.h>
00043 #include <kmymoney/mymoneyprice.h>
00044 #include <kmymoney/mymoneyreport.h>
00045 #include <kmymoney/mymoneybudget.h>
00046 #include "mymoneystoragesql.h"
00047
00055 class IMyMoneySerialize {
00056 public:
00057 IMyMoneySerialize();
00058 virtual ~IMyMoneySerialize();
00059
00060
00061 virtual const MyMoneyPayee user(void) const = 0;
00062 virtual const QDate creationDate(void) const = 0;
00063 virtual const QDate lastModificationDate(void) const = 0;
00064 virtual unsigned int currentFixVersion(void) const = 0;
00065 virtual unsigned int fileFixVersion(void) const = 0;
00066
00067
00068 virtual void setUser(const MyMoneyPayee& val) = 0;
00069 virtual void setCreationDate(const QDate& val) = 0;
00070 virtual void setFileFixVersion(const unsigned int v) = 0;
00074 virtual MyMoneyStorageSql *connectToDatabase
00075 (const KURL& url) = 0;
00081 virtual void fillStorage() = 0;
00082
00091 virtual void setLastModificationDate(const QDate& val) = 0;
00092
00100 virtual void accountList(QValueList<MyMoneyAccount>& list) const = 0;
00101
00108 virtual const QValueList<MyMoneyInstitution> institutionList(void) const = 0;
00109
00120 virtual void transactionList(QValueList<MyMoneyTransaction>& list, MyMoneyTransactionFilter& filter) const = 0;
00121
00135
00136
00141 virtual bool isDuplicateTransaction(const QCString&) const = 0;
00148 virtual const QValueList<MyMoneyPayee> payeeList(void) const = 0;
00149
00156 virtual const QValueList<MyMoneySchedule> scheduleList(const QCString& = QCString(),
00157 const MyMoneySchedule::typeE = MyMoneySchedule::TYPE_ANY,
00158 const MyMoneySchedule::occurenceE = MyMoneySchedule::OCCUR_ANY,
00159 const MyMoneySchedule::paymentTypeE = MyMoneySchedule::STYPE_ANY,
00160 const QDate& = QDate(),
00161 const QDate& = QDate(),
00162 const bool = false) const = 0;
00163
00168 virtual const QValueList<MyMoneySecurity> securityList(void) const = 0;
00169
00174 virtual const MyMoneyAccount liability(void) const = 0;
00175
00180 virtual const MyMoneyAccount asset(void) const = 0;
00181
00186 virtual const MyMoneyAccount expense(void) const = 0;
00187
00192 virtual const MyMoneyAccount income(void) const = 0;
00193
00198 virtual const MyMoneyAccount equity(void) const = 0;
00199
00207 virtual void addAccount(MyMoneyAccount& account) = 0;
00208
00224 virtual void addAccount(MyMoneyAccount& parent, MyMoneyAccount& account) = 0;
00225
00239 virtual void addPayee(MyMoneyPayee& payee) = 0;
00240
00256 virtual void addInstitution(MyMoneyInstitution& institution) = 0;
00257
00277 virtual void addTransaction(MyMoneyTransaction& transaction, const bool skipAccountUpdate = false) = 0;
00278
00279 virtual void loadAccounts(const QMap<QCString, MyMoneyAccount>& map) = 0;
00280 virtual void loadTransactions(const QMap<QCString, MyMoneyTransaction>& map) = 0;
00281 virtual void loadInstitutions(const QMap<QCString, MyMoneyInstitution>& map) = 0;
00282 virtual void loadPayees(const QMap<QCString, MyMoneyPayee>& map) = 0;
00283 virtual void loadSchedules(const QMap<QCString, MyMoneySchedule>& map) = 0;
00284 virtual void loadSecurities(const QMap<QCString, MyMoneySecurity>& map) = 0;
00285 virtual void loadCurrencies(const QMap<QCString, MyMoneySecurity>& map) = 0;
00286 virtual void loadReports( const QMap<QCString, MyMoneyReport>& reports ) = 0;
00287 virtual void loadBudgets( const QMap<QCString, MyMoneyBudget>& budgets ) = 0;
00288 virtual void loadPrices(const MyMoneyPriceList& list) = 0;
00289
00290 virtual unsigned long accountId(void) const = 0;
00291 virtual unsigned long transactionId(void) const = 0;
00292 virtual unsigned long payeeId(void) const = 0;
00293 virtual unsigned long institutionId(void) const = 0;
00294 virtual unsigned long scheduleId(void) const = 0;
00295 virtual unsigned long securityId(void) const = 0;
00296 virtual unsigned long reportId(void) const = 0;
00297 virtual unsigned long budgetId(void) const = 0;
00298
00299 virtual void loadAccountId(const unsigned long id) = 0;
00300 virtual void loadTransactionId(const unsigned long id) = 0;
00301 virtual void loadPayeeId(const unsigned long id) = 0;
00302 virtual void loadInstitutionId(const unsigned long id) = 0;
00303 virtual void loadScheduleId(const unsigned long id) = 0;
00304 virtual void loadSecurityId(const unsigned long id) = 0;
00305 virtual void loadReportId(const unsigned long id) = 0;
00306 virtual void loadBudgetId(const unsigned long id) = 0;
00307
00316 virtual const QMap<QCString, QString> pairs(void) const = 0;
00317
00329 virtual void setPairs(const QMap<QCString, QString>& list) = 0;
00330
00331 virtual const QValueList<MyMoneySchedule> scheduleListEx( int scheduleTypes,
00332 int scheduleOcurrences,
00333 int schedulePaymentTypes,
00334 QDate startDate,
00335 const QCStringList& accounts=QCStringList()) const = 0;
00336
00345 virtual const QValueList<MyMoneySecurity> currencyList(void) const = 0;
00346
00355 virtual const QValueList<MyMoneyReport> reportList( void ) const = 0;
00356
00365 virtual const QValueList<MyMoneyBudget> budgetList( void ) const = 0;
00366
00367
00371 virtual void addPrice(const MyMoneyPrice& price) = 0;
00372
00378 virtual const MyMoneyPriceList priceList(void) const = 0;
00379
00384 virtual void rebuildAccountBalances(void) = 0;
00385
00386 };
00387
00388 #endif