/*************************************************************************** kendingbalancedlg.h ------------------- copyright : (C) 2000 by Michael Edwardes email : mte@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * 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 KENDINGBALANCEDLG_H #define KENDINGBALANCEDLG_H // ---------------------------------------------------------------------------- // TQt Includes #include #include #include #include #include #include // ---------------------------------------------------------------------------- // TDE Includes #include // ---------------------------------------------------------------------------- // Project Includes class kMyMoneyEdit; #include #include #include "../dialogs/kendingbalancedlgdecl.h" /** * This dialog is wizard based and used to enter additional * information required to start the reconciliation process. * This version implements the behaviour for checkings, * savings and credit card accounts. * * @author Thomas Baumgart */ class KEndingBalanceDlg : public KEndingBalanceDlgDecl { TQ_OBJECT public: KEndingBalanceDlg(const MyMoneyAccount& account, TQWidget *parent=0, const char *name=0); ~KEndingBalanceDlg(); const MyMoneyMoney endingBalance(void) const; const MyMoneyMoney previousBalance(void) const; const TQDate statementDate(void) const { return m_statementDate->date(); }; const MyMoneyTransaction interestTransaction(void); const MyMoneyTransaction chargeTransaction(void); protected: bool createTransaction(MyMoneyTransaction& t, const int sign, kMyMoneyEdit *amountEdit, KMyMoneyCategory *categoryEdit, kMyMoneyDateInput* dateEdit); const MyMoneyMoney adjustedReturnValue(const MyMoneyMoney& v) const; void createCategory(const TQString& txt, TQString& id, const MyMoneyAccount& parent); protected slots: void slotCheckPageFinished(void); void slotReloadEditWidgets(void); void help(void); void slotCreateInterestCategory(const TQString& txt, TQString& id); void slotCreateChargesCategory(const TQString& txt, TQString& id); void accept(void); void slotUpdateBalances(void); signals: /** * proxy signal for KMyMoneyPayeeCombo::createItem(const TQString&, TQString&) */ void createPayee(const TQString&, TQString&); /** * emit when a category is about to be created */ void createCategory(MyMoneyAccount& acc, const MyMoneyAccount& parent); private: /// \internal d-pointer class. class Private; /// \internal d-pointer instance. Private* const d; }; /** * This dialog is wizard based and used to enter additional * information required to start the reconciliation process. * This version is implements the behaviour for loan accounts. */ class KEndingBalanceLoanDlg : public KEndingBalanceDlgDecl { TQ_OBJECT public: KEndingBalanceLoanDlg(const MyMoneyAccount& account, TQWidget *parent=0, const char *name=0); ~KEndingBalanceLoanDlg(); /** * This method returns the adjustment transaction if one * has been created. If not, an empty transaction will be returned. */ const MyMoneyTransaction adjustmentTransaction(void) const; /** * This method returns the starting date of the statement as provided * by the user. The value returned is only valid if the dialog returned * with TQDialog::accept. */ const TQDate startDate(void) const { return m_startDateEdit->date(); }; /** * This method returns the ending date of the statement as provided * by the user. The value returned is only valid if the dialog returned * with TQDialog::accept. */ const TQDate endDate(void) const { return m_endDateEdit->date(); }; protected: const MyMoneyMoney totalInterest(const TQDate& start, const TQDate& end) const; const MyMoneyMoney totalAmortization(const TQDate& start, const TQDate& end) const; public slots: void next(); protected slots: void slotCheckPageFinished(void); void help(void); private: /// \internal d-pointer class. class Private; /// \internal d-pointer instance. Private* const d; }; #endif