From: <vo...@us...> - 2013-10-16 09:45:22
|
Revision: 4874 http://sourceforge.net/p/moneymanagerex/code/4874 Author: vomikan Date: 2013-10-16 09:45:16 +0000 (Wed, 16 Oct 2013) Log Message: ----------- cleanup Modified Paths: -------------- trunk/src/mmhomepagepanel.cpp trunk/src/mmtransaction.cpp trunk/src/mmtransaction.h Modified: trunk/src/mmhomepagepanel.cpp =================================================================== --- trunk/src/mmhomepagepanel.cpp 2013-10-16 07:20:09 UTC (rev 4873) +++ trunk/src/mmhomepagepanel.cpp 2013-10-16 09:45:16 UTC (rev 4874) @@ -27,6 +27,7 @@ #include "reports/mmgraphincexpensesmonth.h" #include "mmCurrencyFormatter.h" #include <algorithm> + #include "model/Model_Setting.h" #include "model/Model_Asset.h" #include "model/Model_Payee.h" @@ -90,7 +91,6 @@ void mmHomePagePanel::createFrames() { - if (!core_->db_.get()) return; if (mmIniOptions::instance().ignoreFutureTransactions_) date_range_ = new mmCurrentMonthToDate; @@ -202,7 +202,6 @@ wxString mmHomePagePanel::displayAccounts(double& tBalance, int type) { bool type_is_bank = type == Model_Account::CHECKING; - double tRecBalance = 0.0; mmHTMLBuilder hb; hb.startTable("100%"); @@ -212,6 +211,29 @@ else if (frame_->expandedTermAccounts() && !type_is_bank) hb.addText(displaySummaryHeader(_("Term account"))); + //TODO: mmIniOptions::instance().ignoreFutureTransactions_ + //TODO: move it from here (runs twice) + std::map<int, std::pair<double, double> > accountStats; + Model_Checking::Data_Set transactions = Model_Checking::instance().all(); + for (const auto& trx : transactions) + { + if (Model_Checking::status(trx) != Model_Checking::VOID_) + { + double amount = (Model_Checking::type(trx) == Model_Checking::DEPOSIT ? trx.TRANSAMOUNT : -trx.TRANSAMOUNT); + double reconciled_amount = (Model_Checking::status(trx) == Model_Checking::RECONCILED ? amount : 0); + + accountStats[trx.ACCOUNTID].first += reconciled_amount; + accountStats[trx.ACCOUNTID].second += amount; + + if (Model_Checking::type(trx) == Model_Checking::TRANSFER) + { + reconciled_amount = (Model_Checking::status(trx) == Model_Checking::RECONCILED ? trx.TOTRANSAMOUNT : 0); + accountStats[trx.TOACCOUNTID].first += reconciled_amount; + accountStats[trx.TOACCOUNTID].second += trx.TOTRANSAMOUNT; + } + } + } + // Get account balances and display accounts if we want them displayed for (const auto& account: Model_Account::instance().all(Model_Account::COL_ACCOUNTNAME)) { @@ -219,12 +241,8 @@ Model_Currency::Data* currency = Model_Account::currency(account); - double bal = Model_Account::balance(account); - double reconciledBal = account.INITIALBAL + core_->bTransactionList_.getReconciledBalance(account.ACCOUNTID - , mmIniOptions::instance().ignoreFutureTransactions_); - double rate = currency->BASECONVRATE; - tBalance += bal * rate; // actual amount in that account in the original rate - tRecBalance += reconciledBal * rate; + double bal = accountStats[account.ACCOUNTID].second; //Model_Account::balance(account); + double reconciledBal = account.INITIALBAL + accountStats[account.ACCOUNTID].first; // Display the individual account links if we want to display them if ( ((type_is_bank) ? frame_->expandedBankAccounts() : frame_->expandedTermAccounts()) @@ -246,7 +264,7 @@ } } const wxString totalStr = (type_is_bank) ? _("Bank Accounts Total:") : _("Term Accounts Total:"); - hb.addText(displaySectionTotal(totalStr, tRecBalance, tBalance)); + hb.addText(displaySectionTotal(totalStr, 0, tBalance)); //TODO: totals hb.endTable(); return hb.getHTMLinTableWraper(); @@ -400,7 +418,10 @@ wxString mmHomePagePanel::getStatWidget() { mmHTMLBuilder hb; - int countFollowUp = core_->bTransactionList_.countFollowupTransactions(); + //FIXME: + Model_Checking::Data_Set transactions = Model_Checking::instance().all(); + int countFollowUp = 0, total_transactions = transactions.size(); + for (const auto &trx : Model_Checking::instance().all()) {if (trx.STATUS == "Follow up") countFollowUp++;} hb.startTable("100%"); hb.addTableHeaderRow(_("Transaction Statistics"), 2); @@ -415,7 +436,7 @@ hb.startTableRow(); hb.addTableCell( _("Total Transactions: ")); - hb.addTableCell(wxString::Format("%ld", core_->bTransactionList_.transactions_.size()), true, true, true); + hb.addTableCell(wxString::Format("%ld", total_transactions), true, true, true); hb.endTableRow(); hb.endTable(); Modified: trunk/src/mmtransaction.cpp =================================================================== --- trunk/src/mmtransaction.cpp 2013-10-16 07:20:09 UTC (rev 4873) +++ trunk/src/mmtransaction.cpp 2013-10-16 09:45:16 UTC (rev 4874) @@ -1004,42 +1004,6 @@ return amt; } -double mmBankTransactionList::getReconciledBalance(int accountID, bool ignoreFuture) const -{ - double balance = 0.0; - for (const auto & pBankTransaction: transactions_) - { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip - - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) - continue; //skip future dated transactions - } - - if (pBankTransaction->status_ != "R") - continue; // skip - - balance += pBankTransaction->value(accountID); - } - - return balance; -} - -int mmBankTransactionList::countFollowupTransactions() const -{ - int numFollowup = 0; - for (const auto & pBankTransaction: transactions_) - { - if (pBankTransaction->status_ != "F") - continue; // skip - - numFollowup++; - } - return numFollowup; -} - /** removes the transaction from memory */ bool mmBankTransactionList::removeTransaction(int accountID, int transactionID) { Modified: trunk/src/mmtransaction.h =================================================================== --- trunk/src/mmtransaction.h 2013-10-16 07:20:09 UTC (rev 4873) +++ trunk/src/mmtransaction.h 2013-10-16 09:45:16 UTC (rev 4874) @@ -178,8 +178,6 @@ , bool ignoreFuture = false) const; wxDateTime getLastDate(int accountID) const; - double getReconciledBalance(int accountID, bool ignoreFuture = false) const; - int countFollowupTransactions() const; int getLastUsedCategoryID(int accountID, int payeeID, const wxString& sType, int& subcategID) const; int getLastUsedPayeeID(int accountID, const wxString& sType, int& categID, int& subcategID) const; wxArrayString getTransactionNumber(int accountID, const wxDateTime& transaction_date) const; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |