/*************************************************************************** mymoneydatabasemgr.h - description ------------------- begin : June 5 2007 copyright : (C) 2007 by Fernando Vilas email : Fernando Vilas ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef MYMONEYDATABASEMGR_H #define MYMONEYDATABASEMGR_H // ---------------------------------------------------------------------------- // TQt Includes // ---------------------------------------------------------------------------- // Project Includes #include "imymoneyserialize.h" #include "imymoneystorage.h" #include "mymoneymap.h" #include "mymoneystoragesql.h" /** * The MyMoneyDatabaseMgr class represents the storage engine for databases. * The actual connection and internal storage is handled through the * MyMoneyStorageSql interface. * * The MyMoneyDatabaseMgr must have a MyMoneyStorageSql connected to a * database to be useful. Once connected, data will be loaded from/sent to the * database synchronously. The method dirty() will always return false. Making * this many trips to the database is not very fast, so when possible, the * data cache in MyMoneyFile is used. * */ class MyMoneyDatabaseMgr : public IMyMoneyStorage, public IMyMoneySerialize, public MyMoneyKeyValueContainer { public: MyMoneyDatabaseMgr(); ~MyMoneyDatabaseMgr(); // general get functions virtual const MyMoneyPayee user(void) const; virtual const TQDate creationDate(void) const; virtual const TQDate lastModificationDate(void) const; virtual unsigned int currentFixVersion(void) const; virtual unsigned int fileFixVersion(void) const; // general set functions virtual void setUser(const MyMoneyPayee& user); virtual void setFileFixVersion(const unsigned int v); // methods provided by MyMoneyKeyValueContainer virtual void setValue(const TQString& key, const TQString& value); virtual const TQString value(const TQString& key) const; virtual void deletePair(const TQString& key); /** * This method is used to duplicate an IMyMoneyStorage object and return * a pointer to the newly created copy. The caller of this method is the * new owner of the object and must destroy it. */ virtual MyMoneyDatabaseMgr const * duplicate(void); /** * This method is used to create a new account * * An exception will be thrown upon error conditions. * * @param account MyMoneyAccount filled with data */ virtual void addAccount(MyMoneyAccount& account); /** * This method is used to add one account as sub-ordinate to another * (parent) account. The objects that are passed will be modified * accordingly. * * An exception will be thrown upon error conditions. * * @param parent parent account the account should be added to * @param account the account to be added */ virtual void addAccount(MyMoneyAccount& parent, MyMoneyAccount& account); /** * This method is used to create a new payee * * An exception will be thrown upon error conditions * * @param payee MyMoneyPayee reference to payee information */ virtual void addPayee(MyMoneyPayee& payee); /** * This method is used to retrieve information about a payee * An exception will be thrown upon error conditions. * * @param id TQString reference to id of payee * * @return MyMoneyPayee object of payee */ virtual const MyMoneyPayee payee(const TQString& id) const; /** * This method is used to retrieve the id to a corresponding * name of a payee/receiver. * An exception will be thrown upon error conditions. * * @param payee TQString reference to name of payee * * @return MyMoneyPayee object of payee */ virtual const MyMoneyPayee payeeByName(const TQString& payee) const; /** * This method is used to modify an existing payee * * An exception will be thrown upon error conditions * * @param payee MyMoneyPayee reference to payee information */ virtual void modifyPayee(const MyMoneyPayee& payee); /** * This method is used to remove an existing payee * * An exception will be thrown upon error conditions * * @param payee MyMoneyPayee reference to payee information */ virtual void removePayee(const MyMoneyPayee& payee); /** * This method returns a list of the payees * inside a MyMoneyStorage object * * @return TQValueList containing the payee information */ virtual const TQValueList payeeList(void) const; /** * Returns the account addressed by it's id. * * An exception will be thrown upon error conditions. * * @param id id of the account to locate. * @return reference to MyMoneyAccount object. An exception is thrown * if the id is unknown */ virtual const MyMoneyAccount account(const TQString& id) const; /** * This method is used to check whether a given * account id references one of the standard accounts or not. * * An exception will be thrown upon error conditions. * * @param id account id * @return true if account-id is one of the standards, false otherwise */ virtual bool isStandardAccount(const TQString& id) const; /** * This method is used to set the name for the specified standard account * within the storage area. An exception will be thrown, if an error * occurs * * @param id TQString reference to one of the standard accounts. * @param name TQString reference to the name to be set * */ virtual void setAccountName(const TQString& id, const TQString& name); /** * Adds an institution to the storage. A * respective institution-ID will be generated within this record. * The ID is stored as TQString in the object passed as argument. * * An exception will be thrown upon error conditions. * * @param institution The complete institution information in a * MyMoneyInstitution object */ virtual void addInstitution(MyMoneyInstitution& institution); /** * Adds a transaction to the file-global transaction pool. A respective * transaction-ID will be generated within this record. The ID is stored * TQString with the object. * * An exception will be thrown upon error conditions. * * @param transaction reference to the transaction * @param skipAccountUpdate if set, the transaction lists of the accounts * referenced in the splits are not updated. This is used for * bulk loading a lot of transactions but not during normal operation */ virtual void addTransaction(MyMoneyTransaction& transaction, const bool skipAccountUpdate = false); /** * This method is used to determince, if the account with the * given ID is referenced by any split in m_transactionList. * * An exception will be thrown upon error conditions. * * @param id id of the account to be checked for * @return true if account is referenced, false otherwise */ virtual bool hasActiveSplits(const TQString& id) const; /** * This method is used to return the actual balance of an account * without it's sub-ordinate accounts. If a @p date is presented, * the balance at the beginning of this date (not including any * transaction on this date) is returned. Otherwise all recorded * transactions are included in the balance. * * @param id id of the account in question * @param date return balance for specific date * @return balance of the account as MyMoneyMoney object */ virtual const MyMoneyMoney balance(const TQString& id, const TQDate& date) const; /** * This method is used to return the actual balance of an account * including it's sub-ordinate accounts. If a @p date is presented, * the balance at the beginning of this date (not including any * transaction on this date) is returned. Otherwise all recorded * transactions are included in the balance. * * @param id id of the account in question * @param date return balance for specific date * @return balance of the account as MyMoneyMoney object */ virtual const MyMoneyMoney totalBalance(const TQString& id, const TQDate& date) const; /** * Returns the institution of a given ID * * @param id id of the institution to locate * @return MyMoneyInstitution object filled with data. If the institution * could not be found, an exception will be thrown */ virtual const MyMoneyInstitution institution(const TQString& id) const; /** * This method returns an indicator if the storage object has been * changed after it has last been saved to permanent storage. * * @return true if changed, false if not (for a database, always false). */ virtual bool dirty(void) const; /** * This method can be used by an external object to force the * storage object to be dirty. This is used e.g. when an upload * to an external destination failed but the previous storage * to a local disk was ok. * * Since the database is synchronized with the application, this method * is a no-op. */ virtual void setDirty(void); /** * This method returns the number of accounts currently known to this storage * in the range 0..MAXUINT * * @return number of accounts currently known inside a MyMoneyFile object */ virtual unsigned int accountCount(void) const; /** * This method returns a list of the institutions * inside a MyMoneyStorage object * * @return TQValueList containing the * institution information */ virtual const TQValueList institutionList(void) const; /** * Modifies an already existing account in the file global account pool. * * An exception will be thrown upon error conditions. * * @param account reference to the new account information * @param skipCheck allows to skip the builtin consistency checks */ virtual void modifyAccount(const MyMoneyAccount& account, const bool skipCheck = false); /** * Modifies an already existing institution in the file global * institution pool. * * An exception will be thrown upon error conditions. * * @param institution The complete new institution information */ virtual void modifyInstitution(const MyMoneyInstitution& institution); /** * This method is used to update a specific transaction in the * transaction pool of the MyMoneyFile object * * An exception will be thrown upon error conditions. * * @param transaction reference to transaction to be changed */ virtual void modifyTransaction(const MyMoneyTransaction& transaction); /** * This method re-parents an existing account * * An exception will be thrown upon error conditions. * * @param account MyMoneyAccount reference to account to be re-parented * @param parent MyMoneyAccount reference to new parent account */ virtual void reparentAccount(MyMoneyAccount &account, MyMoneyAccount& parent); /** * This method is used to remove a transaction from the transaction * pool (journal). * * An exception will be thrown upon error conditions. * * @param transaction const reference to transaction to be deleted */ virtual void removeTransaction(const MyMoneyTransaction& transaction); /** * This method returns the number of transactions currently known to file * in the range 0..MAXUINT * * @param account TQString reference to account id. If account is empty + all transactions (the journal) will be counted. If account * is not empty it returns the number of transactions * that have splits in this account. * * @return number of transactions in journal/account */ virtual unsigned int transactionCount(const TQString& account = TQString()) const; /** * This method returns a TQMap filled with the number of transactions * per account. The account id serves as index into the map. If one * needs to have all transactionCounts() for many accounts, this method * is faster than calling transactionCount(const TQString& account) many * times. * * @return TQMap with numbers of transactions per account */ virtual const TQMap transactionCountMap(void) const; /** * This method is used to pull a list of transactions from the file * global transaction pool. It returns all those transactions * that match the filter passed as argument. If the filter is empty, * the whole journal will be returned. * The list returned is sorted according to the transactions posting date. * If more than one transaction exists for the same date, the order among * them is undefined. * * @param filter MyMoneyTransactionFilter object with the match criteria * * @return set of transactions in form of a TQValueList */ virtual const TQValueList transactionList(MyMoneyTransactionFilter& filter) const; /** * This method is the same as above, but instead of a return value, a * parameter is used. * * @param list The set of transactions returned. The list passed in will * be cleared before filling with results. * @param filter MyMoneyTransactionFilter object with the match criteria */ virtual void transactionList(TQValueList& list, MyMoneyTransactionFilter& filter) const; /** * This method is the same as above, but the list contains pairs of * transactions and splits. * * @param list The set of transactions returned. The list passed in will * be cleared before filling with results. * @param filter MyMoneyTransactionFilter object with the match criteria */ virtual void transactionList(TQValueList >& list, MyMoneyTransactionFilter& filter) const; /** * Deletes an existing account from the file global account pool * This method only allows to remove accounts that are not * referenced by any split. Use moveSplits() to move splits * to another account. An exception is thrown in case of a * problem. * * @param account reference to the account to be deleted. */ virtual void removeAccount(const MyMoneyAccount& account); /** * Deletes an existing institution from the file global institution pool * Also modifies the accounts that reference this institution as * their institution. * * An exception will be thrown upon error conditions. * * @param institution institution to be deleted. */ virtual void removeInstitution(const MyMoneyInstitution& institution); /** * This method is used to extract a transaction from the file global * transaction pool through an id. In case of an invalid id, an * exception will be thrown. * * @param id id of transaction as TQString. * @return the requested transaction */ virtual const MyMoneyTransaction transaction(const TQString& id) const; /** * This method is used to extract a transaction from the file global * transaction pool through an index into an account. * * @param account id of the account as TQString * @param idx number of transaction in this account * @return MyMoneyTransaction object */ virtual const MyMoneyTransaction transaction(const TQString& account, const int idx) const; /** * This method returns the number of institutions currently known to file * in the range 0..MAXUINT * * @return number of institutions known to file */ virtual unsigned int institutionCount(void) const; /** * This method returns a list of accounts inside the storage object. * * @param list reference to TQValueList receiving the account objects * * @note The standard accounts will not be returned */ virtual void accountList(TQValueList& list) const; /** * This method is used to return the standard liability account * @return MyMoneyAccount liability account(group) */ virtual const MyMoneyAccount liability(void) const; /** * This method is used to return the standard asset account * @return MyMoneyAccount asset account(group) */ virtual const MyMoneyAccount asset(void) const; /** * This method is used to return the standard expense account * @return MyMoneyAccount expense account(group) */ virtual const MyMoneyAccount expense(void) const; /** * This method is used to return the standard income account * @return MyMoneyAccount income account(group) */ virtual const MyMoneyAccount income(void) const; /** * This method is used to return the standard equity account * @return MyMoneyAccount equity account(group) */ virtual const MyMoneyAccount equity(void) const; /** * This method is used to create a new security object. The ID will be * created automatically. The object passed with the parameter @p security * is modified to contain the assigned id. * * An exception will be thrown upon error conditions. * * @param security MyMoneySecurity filled with data */ virtual void addSecurity(MyMoneySecurity& security); /** * This method is used to modify an existing MyMoneySecurity * object. * * An exception will be thrown upon erronous situations. * * @param security reference to the MyMoneySecurity object to be updated */ virtual void modifySecurity(const MyMoneySecurity& security); /** * This method is used to remove an existing MyMoneySecurity object * from the engine. * * An exception will be thrown upon erronous situations. * * @param security reference to the MyMoneySecurity object to be removed */ virtual void removeSecurity(const MyMoneySecurity& security); /** * This method is used to retrieve a single MyMoneySecurity object. * The id of the object must be supplied in the parameter @p id. * * An exception will be thrown upon erronous situations. * * @param id TQString containing the id of the MyMoneySecurity object * @return MyMoneySecurity object */ virtual const MyMoneySecurity security(const TQString& id) const; /** * This method returns a list of the security objects * inside a MyMoneyStorage object * * @return TQValueList containing objects */ virtual const TQValueList securityList(void) const; virtual void addPrice(const MyMoneyPrice& price); virtual void removePrice(const MyMoneyPrice& price); virtual const MyMoneyPrice price(const TQString& fromId, const TQString& toId, const TQDate& date, const bool exactDate) const; /** * This method returns a list of all prices. * * @return MyMoneyPriceList of all MyMoneyPrice objects. */ virtual const MyMoneyPriceList priceList(void) const; /** * This method is used to add a scheduled transaction to the engine. * It must be sure, that the id of the object is not filled. When the * method returns to the caller, the id will be filled with the * newly created object id value. * * An exception will be thrown upon erronous situations. * * @param sched reference to the MyMoneySchedule object */ virtual void addSchedule(MyMoneySchedule& sched); /** * This method is used to modify an existing MyMoneySchedule * object. Therefor, the id attribute of the object must be set. * * An exception will be thrown upon erronous situations. * * @param sched const reference to the MyMoneySchedule object to be updated */ virtual void modifySchedule(const MyMoneySchedule& sched); /** * This method is used to remove an existing MyMoneySchedule object * from the engine. The id attribute of the object must be set. * * An exception will be thrown upon erronous situations. * * @param sched const reference to the MyMoneySchedule object to be updated */ virtual void removeSchedule(const MyMoneySchedule& sched); /** * This method is used to retrieve a single MyMoneySchedule object. * The id of the object must be supplied in the parameter @p id. * * An exception will be thrown upon erronous situations. * * @param id TQString containing the id of the MyMoneySchedule object * @return MyMoneySchedule object */ virtual const MyMoneySchedule schedule(const TQString& id) const; /** * This method is used to extract a list of scheduled transactions * according to the filter criteria passed as arguments. * * @param accountId only search for scheduled transactions that reference * accound @p accountId. If accountId is the empty string, * this filter is off. Default is @p TQString(). * @param type only schedules of type @p type are searched for. * See MyMoneySchedule::typeE for details. * Default is MyMoneySchedule::TYPE_ANY * @param occurence only schedules of occurence type @p occurance are searched for. * See MyMoneySchedule::occurenceE for details. * Default is MyMoneySchedule::OCCUR_ANY * @param paymentType only schedules of payment method @p paymentType * are searched for. * See MyMoneySchedule::paymentTypeE for details. * Default is MyMoneySchedule::STYPE_ANY * @param startDate only schedules with payment dates after @p startDate * are searched for. Default is all dates (TQDate()). * @param endDate only schedules with payment dates ending prior to @p endDate * are searched for. Default is all dates (TQDate()). * @param overdue if true, only those schedules that are overdue are * searched for. Default is false (all schedules will be returned). * * @return const TQValueList list of schedule objects. */ virtual const TQValueList scheduleList(const TQString& accountId = TQString(), const MyMoneySchedule::typeE type = MyMoneySchedule::TYPE_ANY, const MyMoneySchedule::occurenceE occurence = MyMoneySchedule::OCCUR_ANY, const MyMoneySchedule::paymentTypeE paymentType = MyMoneySchedule::STYPE_ANY, const TQDate& startDate = TQDate(), const TQDate& endDate = TQDate(), const bool overdue = false) const; virtual const TQValueList scheduleListEx( int scheduleTypes, int scheduleOcurrences, int schedulePaymentTypes, TQDate startDate, const TQStringList& accounts=TQStringList()) const; /** * This method is used to add a new currency object to the engine. * The ID of the object is the trading symbol, so there is no need for an additional * ID since the symbol is guaranteed to be unique. * * An exception will be thrown upon erronous situations. * * @param currency reference to the MyMoneySecurity object */ virtual void addCurrency(const MyMoneySecurity& currency); /** * This method is used to modify an existing MyMoneySecurity * object. * * An exception will be thrown upon erronous situations. * * @param currency reference to the MyMoneyCurrency object */ virtual void modifyCurrency(const MyMoneySecurity& currency); /** * This method is used to remove an existing MyMoneySecurity object * from the engine. * * An exception will be thrown upon erronous situations. * * @param currency reference to the MyMoneySecurity object */ virtual void removeCurrency(const MyMoneySecurity& currency); /** * This method is used to retrieve a single MyMoneySecurity object. * The id of the object must be supplied in the parameter @p id. * * An exception will be thrown upon erronous situations. * * @param id TQString containing the id of the MyMoneySecurity object * @return MyMoneyCurrency object */ virtual const MyMoneySecurity currency(const TQString& id) const; /** * This method is used to retrieve the list of all currencies * known to the engine. * * An exception will be thrown upon erronous situations. * * @return TQValueList of all MyMoneySecurity objects representing a currency. */ virtual const TQValueList currencyList(void) const; /** * This method is used to retrieve the list of all reports * known to the engine. * * An exception will be thrown upon erronous situations. * * @return TQValueList of all MyMoneyReport objects. */ virtual const TQValueList reportList( void ) const; /** * This method is used to add a new report to the engine. * It must be sure, that the id of the object is not filled. When the * method returns to the caller, the id will be filled with the * newly created object id value. * * An exception will be thrown upon erronous situations. * * @param report reference to the MyMoneyReport object */ virtual void addReport( MyMoneyReport& report ); /** * This method is used to modify an existing MyMoneyReport * object. Therefor, the id attribute of the object must be set. * * An exception will be thrown upon erronous situations. * * @param report const reference to the MyMoneyReport object to be updated */ virtual void modifyReport( const MyMoneyReport& report ); /** * This method returns the number of reports currently known to file * in the range 0..MAXUINT * * @return number of reports known to file */ virtual unsigned countReports( void ) const; /** * This method is used to retrieve a single MyMoneyReport object. * The id of the object must be supplied in the parameter @p id. * * An exception will be thrown upon erronous situations. * * @param id TQString containing the id of the MyMoneyReport object * @return MyMoneyReport object */ virtual const MyMoneyReport report( const TQString& id ) const; /** * This method is used to remove an existing MyMoneyReport object * from the engine. The id attribute of the object must be set. * * An exception will be thrown upon erronous situations. * * @param report const reference to the MyMoneyReport object to be updated */ virtual void removeReport(const MyMoneyReport& report); /** * This method is used to retrieve the list of all budgets * known to the engine. * * An exception will be thrown upon erronous situations. * * @return TQValueList of all MyMoneyBudget objects. */ virtual const TQValueList budgetList( void ) const; /** * This method is used to add a new budget to the engine. * It must be sure, that the id of the object is not filled. When the * method returns to the caller, the id will be filled with the * newly created object id value. * * An exception will be thrown upon erronous situations. * * @param budget reference to the MyMoneyBudget object */ virtual void addBudget( MyMoneyBudget& budget ); /** * This method is used to retrieve the id to a corresponding * name of a budget * An exception will be thrown upon error conditions. * * @param budget TQString reference to name of budget * * @return MyMoneyBudget object of budget */ virtual const MyMoneyBudget budgetByName(const TQString& budget) const; /** * This method is used to modify an existing MyMoneyBudget * object. Therefor, the id attribute of the object must be set. * * An exception will be thrown upon erronous situations. * * @param budget const reference to the MyMoneyBudget object to be updated */ virtual void modifyBudget( const MyMoneyBudget& budget ); /** * This method returns the number of budgets currently known to file * in the range 0..MAXUINT * * @return number of budgets known to file */ virtual unsigned countBudgets( void ) const; /** * This method is used to retrieve a single MyMoneyBudget object. * The id of the object must be supplied in the parameter @p id. * * An exception will be thrown upon erronous situations. * * @param id TQString containing the id of the MyMoneyBudget object * @return MyMoneyBudget object */ virtual MyMoneyBudget budget( const TQString& id ) const; /** * This method is used to remove an existing MyMoneyBudget object * from the engine. The id attribute of the object must be set. * * An exception will be thrown upon erronous situations. * * @param budget const reference to the MyMoneyBudget object to be updated */ virtual void removeBudget(const MyMoneyBudget& budget); /** * Clear all internal caches (used internally for performance measurements) */ virtual void clearCache(void); /** * This method checks, if the given @p object is referenced * by another engine object. * * @param obj const reference to object to be checked * @param skipCheck MyMoneyFileBitArray with ReferenceCheckBits set for which * the check should be skipped * * @retval false @p object is not referenced * @retval true @p institution is referenced */ virtual bool isReferenced(const MyMoneyObject& obj, const MyMoneyFileBitArray& skipCheck = MyMoneyFileBitArray()) const; /** * This method is provided to allow closing of the database before logoff */ virtual void close(void); /** * These methods have to be provided to allow transaction safe data handling. */ virtual void startTransaction(void); virtual bool commitTransaction(void); virtual void rollbackTransaction(void); // general set functions virtual void setCreationDate(const TQDate& val); /** * This method is used to get a SQL reader for subsequent database access */ virtual TDESharedPtr connectToDatabase (const KURL& url); /** * This method is used when a database file is open, and the data is to * be saved in a different file or format. It will ensure that all data * from the database is available in memory to enable it to be written. */ virtual void fillStorage(); /** * This method is used to set the last modification date of * the storage object. It also clears the dirty flag and should * therefor be called as last operation when loading from a * file. * * @param val TQDate of last modification */ virtual void setLastModificationDate(const TQDate& val); /** * This method returns whether a given transaction is already in memory, to avoid * reloading it from the database */ virtual bool isDuplicateTransaction(const TQString&) const; virtual void loadAccounts(const TQMap& map); virtual void loadTransactions(const TQMap& map); virtual void loadInstitutions(const TQMap& map); virtual void loadPayees(const TQMap& map); virtual void loadSchedules(const TQMap& map); virtual void loadSecurities(const TQMap& map); virtual void loadCurrencies(const TQMap& map); virtual void loadReports( const TQMap& reports ); virtual void loadBudgets( const TQMap& budgets ); virtual void loadPrices(const MyMoneyPriceList& list); virtual unsigned long accountId(void) const; virtual unsigned long transactionId(void) const; virtual unsigned long payeeId(void) const; virtual unsigned long institutionId(void) const; virtual unsigned long scheduleId(void) const; virtual unsigned long securityId(void) const; virtual unsigned long reportId(void) const; virtual unsigned long budgetId(void) const; virtual void loadAccountId(const unsigned long id); virtual void loadTransactionId(const unsigned long id); virtual void loadPayeeId(const unsigned long id); virtual void loadInstitutionId(const unsigned long id); virtual void loadScheduleId(const unsigned long id); virtual void loadSecurityId(const unsigned long id); virtual void loadReportId(const unsigned long id); virtual void loadBudgetId(const unsigned long id); /** * This method is used to retrieve the whole set of key/value pairs * from the container. It is meant to be used for permanent storage * functionality. See MyMoneyKeyValueContainer::pairs() for details. * * @return TQMap containing all key/value pairs of * this container. */ virtual const TQMap pairs(void) const; /** * This method is used to initially store a set of key/value pairs * in the container. It is meant to be used for loading functionality * from permanent storage. See MyMoneyKeyValueContainer::setPairs() * for details * * @param list const TQMap containing the set of * key/value pairs to be loaded into the container. * * @note All existing key/value pairs in the container will be deleted. */ virtual void setPairs(const TQMap& list); /** * This method recalculates the balances of all accounts * based on the transactions stored in the engine. */ virtual void rebuildAccountBalances(void); private: /** * This member variable keeps the creation date of this MyMoneySeqAccessMgr * object. It is set during the constructor and can only be modified using * the stream read operator. */ TQDate m_creationDate; /** * This member variable contains the current fix level of application * data files. (see kmymoneyview.cpp) */ unsigned int m_currentFixVersion; /** * This member variable contains the current fix level of the * presently open data file. (see kmymoneyview.cpp) */ unsigned int m_fileFixVersion; /** * This member variable keeps the date of the last modification of * the MyMoneySeqAccessMgr object. */ TQDate m_lastModificationDate; /** * This contains the interface with SQL reader for database access */ TDESharedPtr m_sql; /** * This member variable keeps the User information. * @see setUser() */ MyMoneyPayee m_user; /** * This method is used to get the next valid ID for a institution * @return id for a institution */ const TQString nextInstitutionID(void); /** * This method is used to get the next valid ID for an account * @return id for an account */ const TQString nextAccountID(void); /** * This method is used to get the next valid ID for a transaction * @return id for a transaction */ const TQString nextTransactionID(void); /** * This method is used to get the next valid ID for a payee * @return id for a payee */ const TQString nextPayeeID(void); /** * This method is used to get the next valid ID for a scheduled transaction * @return id for a scheduled transaction */ const TQString nextScheduleID(void); /** * This method is used to get the next valid ID for an security object. * @return id for an security object */ const TQString nextSecurityID(void); const TQString nextReportID(void); /** * This method is used to get the next valid ID for a budget object. * @return id for an budget object */ const TQString nextBudgetID(void); void removeReferences(const TQString& id); static const int INSTITUTION_ID_SIZE = 6; static const int ACCOUNT_ID_SIZE = 6; static const int TRANSACTION_ID_SIZE = 18; static const int PAYEE_ID_SIZE = 6; static const int SCHEDULE_ID_SIZE = 6; static const int SECURITY_ID_SIZE = 6; static const int REPORT_ID_SIZE = 6; static const int BUDGET_ID_SIZE = 6; // Increment this to force an update in KMMView. // This is different from the db schema version stored in // MMStorageSql::m_majorVersion static const int CURRENT_FIX_VERSION = 3; }; #endif