You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmymoney/kmymoney2/dialogs/kendingbalancedlg.h

150 lines
4.9 KiB

/***************************************************************************
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
// ----------------------------------------------------------------------------
// QT Includes
#include <tqwidget.h>
#include <tqgroupbox.h>
#include <tqlabel.h>
#include <tqpushbutton.h>
#include <tqdialog.h>
#include <tqdatetime.h>
// ----------------------------------------------------------------------------
// KDE Includes
#include <klocale.h>
// ----------------------------------------------------------------------------
// Project Includes
class kMyMoneyEdit;
#include <kmymoney/kmymoneydateinput.h>
#include <kmymoney/mymoneyaccount.h>
#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
{
Q_OBJECT
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
{
Q_OBJECT
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