diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
commit | dadc34655c3ab961b0b0b94a10eaaba710f0b5e8 (patch) | |
tree | 99e72842fe687baea16376a147619b6048d7e441 /kmymoney2/dialogs/kreconciledlg.cpp | |
download | kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.tar.gz kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.zip |
Added kmymoney
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmymoney2/dialogs/kreconciledlg.cpp')
-rw-r--r-- | kmymoney2/dialogs/kreconciledlg.cpp | 463 |
1 files changed, 463 insertions, 0 deletions
diff --git a/kmymoney2/dialogs/kreconciledlg.cpp b/kmymoney2/dialogs/kreconciledlg.cpp new file mode 100644 index 0000000..75e7b48 --- /dev/null +++ b/kmymoney2/dialogs/kreconciledlg.cpp @@ -0,0 +1,463 @@ +/*************************************************************************** + kreconciledlg.cpp + ------------------- + copyright : (C) 2000 by Michael Edwardes + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +#include <kmessagebox.h> +#include <kglobal.h> +#include <klocale.h> +#if QT_VERSION > 300 +#include <kstandarddirs.h> +#else +#include <kstddirs.h> +#endif + + +#include "kreconciledlg.h" + +KReconcileDlg::KReconcileDlg(const MyMoneyMoney /* previousBal */, const MyMoneyMoney /* endingBal */, + const QDate /* endingDate */, MyMoneyAccount* /*accountIndex */, + const MyMoneyFile* /* file */, QWidget *parent, const char *name) + : KReconcileDlgDecl(parent,name,true) +{ +/* + m_balanced = false; + m_debitsQList.setAutoDelete(false); + m_creditsQList.setAutoDelete(false); + m_reconciledTransactions.setAutoDelete(false); + + m_file = file; + m_accountIndex = accountIndex; + m_endingBalance = endingBal; + m_previousBalance = previousBal; + m_clearedBalance.setAmount(0.0); + m_debitBalance.setAmount(0.0); + m_creditBalance.setAmount(0.0); + m_endingDate = endingDate; + + + totalCreditsLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + totalDebitsLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + previousLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + endingLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + differenceLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + + + debitListView->setRootIsDecorated(false); + debitListView->addColumn(i18n("Date")); + debitListView->addColumn(i18n("Number")); + debitListView->addColumn(i18n("Payee")); + debitListView->addColumn(i18n("Amount")); + debitListView->addColumn(i18n("C")); + debitListView->setMultiSelection(true); + debitListView->setAllColumnsShowFocus(true); + // never show a horizontal scroll bar + debitListView->setHScrollBarMode(QScrollView::AlwaysOff); + + creditListView->setRootIsDecorated(false); + creditListView->addColumn(i18n("Date")); + creditListView->addColumn(i18n("Number")); + creditListView->addColumn(i18n("Payee")); + creditListView->addColumn(i18n("Amount")); + creditListView->addColumn(i18n("C")); + creditListView->setMultiSelection(true); + creditListView->setAllColumnsShowFocus(true); + // never show a horizontal scroll bar + creditListView->setHScrollBarMode(QScrollView::AlwaysOff); + + endingLabel->setText(KGlobal::locale()->formatMoney(m_clearedBalance.amount(),"")); + + previousLabel->setText(KGlobal::locale()->formatMoney(m_endingBalance.amount(),"")); + + broughtForwardLabel->setText(KGlobal::locale()->formatMoney(m_previousBalance.amount(),"")); + + totalCreditsLabel->setText(i18n("Deposits: ") + KGlobal::locale()->formatMoney(m_creditBalance.amount(),"")); + + totalDebitsLabel->setText(i18n("Withdrawals: ") + KGlobal::locale()->formatMoney(m_debitBalance.amount(),"")); + + + loadLists(); + insertTransactions(); + + connect(debitListView, SIGNAL(clicked(QListViewItem*, const QPoint&, int)), this, SLOT(slotDebitSelected(QListViewItem*, const QPoint&, int))); + connect(creditListView, SIGNAL(clicked(QListViewItem*, const QPoint&, int)), this, SLOT(slotCreditSelected(QListViewItem*, const QPoint&, int))); + connect(buttonCancel, SIGNAL(clicked()), this, SLOT(cancelClicked())); + connect(buttonOk, SIGNAL(clicked()), this, SLOT(finishClicked())); + connect(buttonEdit, SIGNAL(clicked()), this, SLOT(editClicked())); + + doDifference(); +*/ +} + +KReconcileDlg::~KReconcileDlg() +{ +} + +void KReconcileDlg::clearReconcile() +{ +/* + MyMoneyTransaction *temp_transaction; + for(temp_transaction = m_creditsQList.first();temp_transaction;temp_transaction = m_creditsQList.next()) + { + if(temp_transaction->state() == MyMoneyTransaction::Reconciled) + { + temp_transaction->setState(MyMoneyTransaction::Unreconciled); + } + } + for(temp_transaction = m_debitsQList.first();temp_transaction;temp_transaction = m_debitsQList.next()) + { + if(temp_transaction->state() == MyMoneyTransaction::Reconciled) + { + temp_transaction->setState(MyMoneyTransaction::Unreconciled); + } + } +*/ +} + +void KReconcileDlg::loadLists(void) +{ +/* + // Load the internal transaaction lists + m_creditsQList.clear(); + m_debitsQList.clear(); + + unsigned int i=0; + MyMoneyTransaction *transaction; + for (i=0, transaction=m_accountIndex->transactionFirst(); transaction; transaction=m_accountIndex->transactionNext(), i++) { + if (transaction->date()>m_endingDate) + break; + + if (transaction->state()!=MyMoneyTransaction::Reconciled) { + if (transaction->type() == MyMoneyTransaction::Debit) { + transaction->setIndex(i); + m_debitsQList.append(transaction); + } + else { + transaction->setIndex(i); + m_creditsQList.append(transaction); + } + } + } + resizeEvent(NULL); +*/ +} + +void KReconcileDlg::insertTransactions(void) +{ +/* + creditListView->clear(); + debitListView->clear(); + + QListIterator<MyMoneyTransaction> it(m_debitsQList); + for ( ; it.current(); ++it) { + (void) new KReconcileListItem(debitListView, it.current()); + } + + QListIterator<MyMoneyTransaction> it2(m_creditsQList); + for ( ; it2.current(); ++it2) { + (void) new KReconcileListItem(creditListView, it2.current()); + } + + resizeEvent(0); +*/ +} + +void KReconcileDlg::slotDebitSelected(QListViewItem* /* item */, const QPoint&/*p*/, int/* col*/) +{ +/* + KReconcileListItem *reconcileItem = (KReconcileListItem*)item; + if (!reconcileItem) + return; + + // Changed double types to MyMoneyMoney because in the future + // we will support mulitple currencies and have our own incompatable + // internal format. (one that rounds properly and supports large numbers + // e.g unsigned long.int with sign being a boolean). +// MyMoneyMoney dblDebit = m_debitBalance; +// MyMoneyMoney dblCleared = m_clearedBalance; + MyMoneyMoney dblItem = reconcileItem->transaction()->amount(); + + if(reconcileItem->isSelected()) + { + m_debitBalance += dblItem; + m_clearedBalance -= dblItem; + reconcileItem->setReconciled(true); + m_reconciledTransactions.append(reconcileItem->transaction()); + } + else + { + m_debitBalance -= dblItem; + m_clearedBalance += dblItem; + reconcileItem->setReconciled(false); + m_reconciledTransactions.remove(reconcileItem->transaction()); + } + totalDebitsLabel->setText(i18n("Withdrawals: ") + KGlobal::locale()->formatMoney(m_debitBalance.amount(),"")); + + endingLabel->setText(KGlobal::locale()->formatMoney(m_clearedBalance.amount(),"")); + + doDifference(); +*/ +} + +void KReconcileDlg::slotCreditSelected(QListViewItem* /* item */, const QPoint&, int) +{ +/* + KReconcileListItem *reconcileItem = (KReconcileListItem*)item; + if (!reconcileItem) + return; + + // See above func +// double dblCredit = m_creditBalance.amount(); +// double dblCleared = m_clearedBalance.amount(); + MyMoneyMoney dblItem = reconcileItem->transaction()->amount(); + if(reconcileItem->isSelected()) + { + m_creditBalance += dblItem; + m_clearedBalance += dblItem; + reconcileItem->setReconciled(true); + m_reconciledTransactions.append(reconcileItem->transaction()); + } + else + { + m_creditBalance -= dblItem; + m_clearedBalance -= dblItem; + reconcileItem->setReconciled(false); + m_reconciledTransactions.remove(reconcileItem->transaction()); + } + + totalCreditsLabel->setText(i18n("Deposits: ") + KGlobal::locale()->formatMoney(m_creditBalance.amount(),"")); + + endingLabel->setText(KGlobal::locale()->formatMoney(m_clearedBalance.amount(),"")); + + doDifference(); +*/ +} + +void KReconcileDlg::doDifference(void) +{ +/* + MyMoneyMoney difference((m_previousBalance + m_clearedBalance)- m_endingBalance); + + differenceLabel->setText(KGlobal::locale()->formatMoney(difference.amount(),"")); + if (difference.isZero()) + m_balanced = true; + else + m_balanced = false; +*/ +} + +void KReconcileDlg::finishClicked(void) +{ +/* + if (!m_balanced) { + if ((KMessageBox::questionYesNo(this, i18n("Account did not balance, are you sure ?")))==KMessageBox::No) { + clearReconcile(); + return; + } + } +// else +// { +// } + emit reconcileFinished(true); +*/ +} + +/* +void KReconcileDlg::updateData(void) +{ + // Simply reload the list clearing the status. + qDebug("In updateData"); + m_reconciledTransactions.clear(); + m_debitsQList.clear(); + m_creditsQList.clear(); + + loadLists(); + insertTransactions(); + doDifference(); +} +*/ +void KReconcileDlg::cancelClicked() +{ +/* + clearReconcile(); + // Stop the transaction view from being refreshed on + // cancel by passing false. + emit reconcileFinished(false); +*/ +} + +void KReconcileDlg::resetData(const MyMoneyMoney /* previousBal */, const MyMoneyMoney /* endingBal */, const QDate /* endingDate */, MyMoneyAccount* /* accountIndex */, const MyMoneyFile* /* file */) +{ +/* + m_reconciledTransactions.clear(); + m_debitsQList.clear(); + m_creditsQList.clear(); + + m_balanced = false; + + m_file = file; + m_bankIndex = bankIndex; + m_accountIndex = accountIndex; + m_endingBalance = endingBal; + m_previousBalance = previousBal; + m_clearedBalance.setAmount(0.0); + m_debitBalance.setAmount(0.0); + m_creditBalance.setAmount(0.0); + m_endingDate = endingDate; + + + //totalCreditsLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + //totalDebitsLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + //previousLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + //endingLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + //differenceLabel->setAlignment(AlignRight | AlignVCenter | ExpandTabs | SingleLine); + + + endingLabel->setText(KGlobal::locale()->formatMoney(m_clearedBalance.amount(),"")); + + previousLabel->setText(KGlobal::locale()->formatMoney(m_endingBalance.amount(),"")); + + broughtForwardLabel->setText(KGlobal::locale()->formatMoney(m_previousBalance.amount(),"")); + + totalCreditsLabel->setText(i18n("Deposits: ") + KGlobal::locale()->formatMoney(m_creditBalance.amount(),"")); + + totalDebitsLabel->setText(i18n("Withdrawals: ") + KGlobal::locale()->formatMoney(m_debitBalance.amount(),"")); + + loadLists(); + insertTransactions(); +*/ +} + +void KReconcileDlg::slotTransactionChanged() +{ +/* + reloadLists(); + insertTransactions(); + show(); +*/ +} + +/** No descriptions */ +void KReconcileDlg::reloadLists() +{ +/* + unsigned int i=0; + MyMoneyTransaction *transaction; + for (i=0, transaction=m_accountIndex->transactionFirst(); transaction; transaction=m_accountIndex->transactionNext(), i++) { + if (transaction->state()!=MyMoneyTransaction::Reconciled) { + if (transaction->type() == MyMoneyTransaction::Debit) { + transaction->setIndex(i); + if(m_debitsQList.find(transaction) < 0) + { + m_debitsQList.append(transaction); + } + } + else { + transaction->setIndex(i); + if(m_creditsQList.find(transaction) < 0) + { + m_creditsQList.append(transaction); + } + } + } + } + + + QListIterator<MyMoneyTransaction> it(m_debitsQList); + for ( ; it.current(); ++it) { + bool transactionFound = inTransactions(it.current()); + if(transactionFound == false) + m_debitsQList.remove(it.current()); + } + + QListIterator<MyMoneyTransaction> it2(m_creditsQList); + for ( ; it2.current(); ++it2) { + bool transactionFound = inTransactions(it2.current()); + if(transactionFound == false) + m_creditsQList.remove(it2.current()); + } +*/ +} + + +/** No descriptions */ +bool KReconcileDlg::inTransactions(MyMoneyTransaction * /*credittrans */) +{ +/* + MyMoneyTransaction *transaction; + int i = 0; + for ( i=0, transaction=m_accountIndex->transactionFirst(); transaction; transaction=m_accountIndex->transactionNext(), i++) { + if( credittrans == transaction) + return true; + } +*/ + return false; +} + +/* Not used (yet?) +bool KReconcileDlg::inCredits(MyMoneyTransaction *transaction) +{ + QListIterator<MyMoneyTransaction> it(m_creditsQList); + for ( ; it.current(); ++it) { + if(transaction == it.current()) + return true; + } + + return false; + +} +*/ + +/* Not used (yet?) +bool KReconcileDlg::inDebits(MyMoneyTransaction *transaction) +{ + QListIterator<MyMoneyTransaction> it(m_debitsQList); + for ( ; it.current(); ++it) { + if(transaction == it.current()) + return true; + } + + return false; + +} +*/ + +void KReconcileDlg::editClicked() +{ +/* + hide(); +*/ +} + +void KReconcileDlg::resizeEvent(QResizeEvent* /* e */) +{ +/* + debitListView->setColumnWidth( 2, debitListView->visibleWidth() + - debitListView->columnWidth(0) + - debitListView->columnWidth(1) + - debitListView->columnWidth(3) + - debitListView->columnWidth(4)); + + creditListView->setColumnWidth( 2, creditListView->visibleWidth() + - creditListView->columnWidth(0) + - creditListView->columnWidth(1) + - creditListView->columnWidth(3) + - creditListView->columnWidth(4)); + + // call base class resizeEvent() + KReconcileDlgDecl::resizeEvent(e); +*/ +} + +#include "kreconciledlg.moc" |