From: <ste...@us...> - 2011-01-01 23:17:11
|
Revision: 1052 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1052&view=rev Author: stef145g Date: 2011-01-01 23:17:05 +0000 (Sat, 01 Jan 2011) Log Message: ----------- Bug Fix: [Tracker id-2974010] Error while maintaining Payee List - Release payeeID on Transfer. Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2011-01-01 23:12:35 UTC (rev 1051) +++ trunk/mmex/src/mmtransaction.cpp 2011-01-01 23:17:05 UTC (rev 1052) @@ -543,9 +543,11 @@ return pCopyTransaction; } -void mmBankTransactionList::updateTransaction( - boost::shared_ptr<mmBankTransaction> pBankTransaction) +void mmBankTransactionList::updateTransaction(boost::shared_ptr<mmBankTransaction> pBankTransaction) { + if (pBankTransaction->transType_ == wxT("Transfer")) + pBankTransaction->payeeID_ = -1; + static const char sql[] = "update CHECKINGACCOUNT_V1 " "SET ACCOUNTID=?, TOACCOUNTID=?, PAYEEID=?, TRANSCODE=?, " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2011-04-10 13:58:00
|
Revision: 1225 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1225&view=rev Author: stef145g Date: 2011-04-10 13:57:54 +0000 (Sun, 10 Apr 2011) Log Message: ----------- Code update - no real changes Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2011-04-10 11:34:53 UTC (rev 1224) +++ trunk/mmex/src/mmtransaction.cpp 2011-04-10 13:57:54 UTC (rev 1225) @@ -18,6 +18,10 @@ #include "util.h" #include "mmcoredb.h" +const wxString TRANS_TYPE_WITHDRAWAL = wxT("Withdrawal"); +const wxString TRANS_TYPE_DEPOSIT = wxT("Deposit"); +const wxString TRANS_TYPE_TRANSFER = wxT("Transfer"); + void mmSplitTransactionEntries::addSplit(boost::shared_ptr<mmSplitTransactionEntry> split) { total_ += split->splitAmount_; @@ -164,7 +168,7 @@ bool forceUpdate ) { - if ((isInited_) && (transType_ != wxT("Transfer")) && !forceUpdate) + if ((isInited_) && (transType_ != TRANS_TYPE_TRANSFER) && !forceUpdate) { return; } @@ -182,7 +186,7 @@ mmex::formatDoubleToCurrencyEdit(toAmt_, displayToTransAmtString); transToAmtString_ = displayToTransAmtString; - if (transType_ != wxT("Transfer")) + if (transType_ != TRANS_TYPE_TRANSFER) { boost::shared_ptr<mmPayee> pPayee = payee_.lock(); wxASSERT(pPayee); @@ -192,15 +196,15 @@ depositStr_ = wxT(""); withdrawalStr_ = wxT(""); - if (transType_ == wxT("Deposit")) + if (transType_ == TRANS_TYPE_DEPOSIT) { depositStr_ = displayTransAmtString; } - else if (transType_== wxT("Withdrawal")) + else if (transType_== TRANS_TYPE_WITHDRAWAL) { withdrawalStr_ = displayTransAmtString; } - else if (transType_ == wxT("Transfer")) + else if (transType_ == TRANS_TYPE_TRANSFER) { wxString fromAccount = core->accountList_.getAccountSharedPtr(accountID_)->accountName_; wxString toAccount = core->accountList_.getAccountSharedPtr(toAccountID_)->accountName_; @@ -269,15 +273,15 @@ double mmBankTransaction::value(int accountID) { double balance = 0.0; - if (transType_ == wxT("Deposit")) + if (transType_ == TRANS_TYPE_DEPOSIT) { balance = amt_; } - else if (transType_== wxT("Withdrawal")) + else if (transType_== TRANS_TYPE_WITHDRAWAL) { balance -= amt_; } - else if (transType_ == wxT("Transfer")) + else if (transType_ == TRANS_TYPE_TRANSFER) { if (accountID_ == accountID) @@ -545,7 +549,7 @@ void mmBankTransactionList::updateTransaction(boost::shared_ptr<mmBankTransaction> pBankTransaction) { - if (pBankTransaction->transType_ == wxT("Transfer")) + if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) pBankTransaction->payeeID_ = -1; static const char sql[] = @@ -687,7 +691,7 @@ if (pBankTransaction && (pBankTransaction->payeeID_ == payeeID)) { pBankTransaction->payee_ = core->payeeList_.getPayeeSharedPtr(payeeID); - if (pBankTransaction->transType_ != wxT("Transfer")) + if (pBankTransaction->transType_ != TRANS_TYPE_TRANSFER) { boost::shared_ptr<mmPayee> pPayee = pBankTransaction->payee_.lock(); wxASSERT(pPayee); @@ -730,11 +734,11 @@ // We got this far, get the currency conversion rate for this account double convRate = mmDBWrapper::getCurrencyBaseConvRate(db_.get(), pBankTransaction->accountID_); - if (pBankTransaction->transType_ == wxT("Deposit")) + if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT) income += pBankTransaction->amt_ * convRate; - else if (pBankTransaction->transType_ == wxT("Withdrawal")) + else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL) expenses += pBankTransaction->amt_ * convRate; - else if (pBankTransaction->transType_ == wxT("Transfer")) + else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) { // transfers are not considered in income/expenses calculations } @@ -776,11 +780,11 @@ continue; //skip } - if (pBankTransaction->transType_ == wxT("Deposit")) + if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT) ++number; - else if (pBankTransaction->transType_ == wxT("Withdrawal")) + else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL) ++number; - else if (pBankTransaction->transType_ == wxT("Transfer")) + else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) { ++number; } @@ -810,14 +814,14 @@ continue; //skip } - if (pBankTransaction->transType_ == wxT("Transfer")) + if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) continue; double convRate = mmDBWrapper::getCurrencyBaseConvRate(db_.get(), pBankTransaction->accountID_); - if (pBankTransaction->transType_ == wxT("Withdrawal")) + if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL) amt -= pBankTransaction->amt_ * convRate; - else if (pBankTransaction->transType_ == wxT("Deposit")) + else if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT) amt += pBankTransaction->amt_ * convRate; } } @@ -855,14 +859,14 @@ continue; //skip } - if (pBankTransaction->transType_ == wxT("Transfer")) + if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) continue; double convRate = mmDBWrapper::getCurrencyBaseConvRate(db_.get(), pBankTransaction->accountID_); - if (pBankTransaction->transType_ == wxT("Withdrawal")) { + if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL) { amt -= pBankTransaction->getAmountForSplit(categID, subcategID) * convRate; - } else if (pBankTransaction->transType_ == wxT("Deposit")) { + } else if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT) { amt += pBankTransaction->getAmountForSplit(categID, subcategID) * convRate; } } @@ -896,11 +900,11 @@ continue; //skip future dated transactions } - if (pBankTransaction->transType_ == wxT("Deposit")) + if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT) balance += pBankTransaction->amt_; - else if (pBankTransaction->transType_ == wxT("Withdrawal")) + else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL) balance -= pBankTransaction->amt_; - else if (pBankTransaction->transType_ == wxT("Transfer")) + else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) { if (pBankTransaction->accountID_ == accountID) { @@ -941,11 +945,11 @@ if (pBankTransaction->status_ != wxT("R")) continue; // skip - if (pBankTransaction->transType_ == wxT("Deposit")) + if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT) balance += pBankTransaction->amt_; - else if (pBankTransaction->transType_ == wxT("Withdrawal")) + else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL) balance -= pBankTransaction->amt_; - else if (pBankTransaction->transType_ == wxT("Transfer")) + else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER) { if (pBankTransaction->accountID_ == accountID) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2011-06-09 10:55:42
|
Revision: 1316 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1316&view=rev Author: stef145g Date: 2011-06-09 10:55:36 +0000 (Thu, 09 Jun 2011) Log Message: ----------- Error Trapping: if database becomes corrupt stops mmex from crashing. Gives possibility to fix database. Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2011-06-09 08:08:01 UTC (rev 1315) +++ trunk/mmex/src/mmtransaction.cpp 2011-06-09 10:55:36 UTC (rev 1316) @@ -188,10 +188,23 @@ if (transType_ != TRANS_TYPE_TRANSFER) { - boost::shared_ptr<mmPayee> pPayee = payee_.lock(); - wxASSERT(pPayee); - payeeStr_ = pPayee->payeeName_; - payeeID_ = pPayee->payeeID_; + // needed to correct possible crash if database becomes corrupt. + if (payee_.lock() == 0 ) + { + wxString errMsg = _("Payee not found in database for Account ID:"); + errMsg << accountID_; + wxMessageBox(errMsg,_("MMEX DATABASE ERROR"),wxICON_ERROR); + payeeID_ = -1; + payeeStr_ = wxT("Payee Error"); + status_ = wxT("V"); + } + else + { + boost::shared_ptr<mmPayee> pPayee = payee_.lock(); + wxASSERT(pPayee); + payeeStr_ = pPayee->payeeName_; + payeeID_ = pPayee->payeeID_; + } } depositStr_ = wxT(""); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-02-10 06:55:06
|
Revision: 1772 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1772&view=rev Author: guanlisheng Date: 2012-02-10 06:54:59 +0000 (Fri, 10 Feb 2012) Log Message: ----------- format Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-02-10 06:45:19 UTC (rev 1771) +++ trunk/mmex/src/mmtransaction.cpp 2012-02-10 06:54:59 UTC (rev 1772) @@ -229,8 +229,8 @@ } else if (transType_ == TRANS_TYPE_TRANSFER_STR) { - wxString fromAccount = core->accountList_.getAccountSharedPtr(accountID_)->name_; - wxString toAccount = core->accountList_.getAccountSharedPtr(toAccountID_)->name_; + wxString fromAccount = core->getAccountName(accountID_); + wxString toAccount = core->getAccountName(toAccountID_); if (accountID_ == accountID) { @@ -244,7 +244,7 @@ } } - fromAccountStr_ = core->accountList_.getAccountSharedPtr(accountID_)->name_; + fromAccountStr_ = core->getAccountName(accountID_); boost::shared_ptr<mmCategory> pCategory = category_.lock(); if (!pCategory && !splitEntries_->numEntries()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-02-25 15:25:40
|
Revision: 1886 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1886&view=rev Author: guanlisheng Date: 2012-02-25 15:25:34 +0000 (Sat, 25 Feb 2012) Log Message: ----------- reuse mmBankTransaction::value Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-02-25 15:16:38 UTC (rev 1885) +++ trunk/mmex/src/mmtransaction.cpp 2012-02-25 15:25:34 UTC (rev 1886) @@ -311,9 +311,8 @@ { balance -= amt_; } - else + else if (toAccountID_ == accountID) { - wxASSERT(toAccountID_ == accountID); balance += toAmt_; } } @@ -935,25 +934,7 @@ continue; //skip future dated transactions } - if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - balance += pBankTransaction->amt_; - else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - balance -= pBankTransaction->amt_; - else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - { - if (pBankTransaction->accountID_ == accountID) - { - balance -= pBankTransaction->amt_; - } - else if (pBankTransaction->toAccountID_ == accountID) - { - balance += pBankTransaction->toAmt_; - } - } - else - { - wxASSERT(false); - } + balance += pBankTransaction->value(accountID); } } @@ -981,31 +962,7 @@ continue; //skip future dated transactions } - double &balance = daily_balance[pBankTransaction->date_]; - - if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - { - balance += pBankTransaction->amt_ * convRate; - } - else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - { - balance -= pBankTransaction->amt_ * convRate; - } - else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - { - if (pBankTransaction->accountID_ == accountID) - { - balance -= pBankTransaction->amt_ * convRate; - } - else if (pBankTransaction->toAccountID_ == accountID) - { - balance += pBankTransaction->toAmt_ * convRate; - } - } - else - { - wxASSERT(false); - } + daily_balance[pBankTransaction->date_] += pBankTransaction->value(accountID) * convRate; } } @@ -1032,26 +989,7 @@ if (pBankTransaction->status_ != wxT("R")) continue; // skip - if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - balance += pBankTransaction->amt_; - else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - balance -= pBankTransaction->amt_; - else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - { - if (pBankTransaction->accountID_ == accountID) - { - balance -= pBankTransaction->amt_; - } - else if (pBankTransaction->toAccountID_ == accountID) - { - balance += pBankTransaction->toAmt_; - } - } - else - { - wxASSERT(false); - } - + balance += pBankTransaction->value(accountID); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-02-25 15:42:21
|
Revision: 1888 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1888&view=rev Author: guanlisheng Date: 2012-02-25 15:42:15 +0000 (Sat, 25 Feb 2012) Log Message: ----------- reuse mmBankTransaction::value and format Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-02-25 15:30:20 UTC (rev 1887) +++ trunk/mmex/src/mmtransaction.cpp 2012-02-25 15:42:15 UTC (rev 1888) @@ -714,6 +714,7 @@ } } } + return 0; } @@ -789,14 +790,7 @@ continue; //skip } - if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - ++number; - else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - ++number; - else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - { - ++number; - } + ++number; } } } @@ -831,18 +825,12 @@ continue; double convRate = mmDBWrapper::getCurrencyBaseConvRate(db_.get(), pBankTransaction->accountID_); - - if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - { - amt -= pBankTransaction->amt_ * convRate; - } - else if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - { - amt += pBankTransaction->amt_ * convRate; - } + + amt += pBankTransaction->value(-1) * convRate; } } } + return amt; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-03-06 11:57:39
|
Revision: 1933 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1933&view=rev Author: guanlisheng Date: 2012-03-06 11:57:29 +0000 (Tue, 06 Mar 2012) Log Message: ----------- cleanup Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-03-06 11:32:17 UTC (rev 1932) +++ trunk/mmex/src/mmtransaction.cpp 2012-03-06 11:57:29 UTC (rev 1933) @@ -91,8 +91,7 @@ st.Finalize(); } -void mmSplitTransactionEntries::loadFromBDDB(mmCoreDB* core, - int bdID) +void mmSplitTransactionEntries::loadFromBDDB(mmCoreDB* core, int bdID) { entries_.clear(); total_ = 0.0; @@ -172,15 +171,12 @@ bool forceUpdate ) { - if ((isInited_) && (transType_ != TRANS_TYPE_TRANSFER_STR) && !forceUpdate) - { - return; - } + if ((isInited_) && (transType_ != TRANS_TYPE_TRANSFER_STR) && !forceUpdate) return; /* Load the Account Currency Settings for Formatting Strings */ currencyPtr->loadCurrencySettings(); - dateStr_ = mmGetDateForDisplay(db_.get(), date_); + dateStr_ = mmGetDateForDisplay(db_.get(), date_); wxString displayTransAmtString; mmex::formatDoubleToCurrencyEdit(amt_, displayTransAmtString); @@ -251,10 +247,7 @@ { // If category is missing, we mark is as unknown int categID = core->getCategoryID(wxT("Unknown")); - if (categID == -1) - { - categID = core->addCategory(wxT("Unknown")); - } + if (categID == -1) categID = core->addCategory(wxT("Unknown")); category_ = core->getCategorySharedPtr(categID, -1); pCategory = category_.lock(); @@ -290,6 +283,7 @@ catStr_= wxT(""); subCatStr_ = wxT(""); } + isInited_ = true; } @@ -375,15 +369,10 @@ } else if (categID_ == categID) { - if (ignoreSubCateg) - return true; - - if (subcategID_ == subcategID) - { - return true; - } - + if (ignoreSubCateg) return true; + if (subcategID_ == subcategID) return true; } + return false; } @@ -408,6 +397,7 @@ { return amt_; } + return splitAmount; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-05-23 02:13:46
|
Revision: 2364 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2364&view=rev Author: guanlisheng Date: 2012-05-23 02:13:40 +0000 (Wed, 23 May 2012) Log Message: ----------- correct the usage to adapt 2.9.x Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-05-20 13:14:56 UTC (rev 2363) +++ trunk/mmex/src/mmtransaction.cpp 2012-05-23 02:13:40 UTC (rev 2364) @@ -521,7 +521,7 @@ pCopyTransaction->payeeID_= pBankTransaction->payeeID_; pCopyTransaction->transType_= pBankTransaction->transType_; pCopyTransaction->amt_ = pBankTransaction->amt_; - pCopyTransaction->status_ = (useOriginalDate ? wxChar('D') : pBankTransaction->status_); + pCopyTransaction->status_ = (useOriginalDate ? wxString("D") : pBankTransaction->status_); pCopyTransaction->transNum_= pBankTransaction->transNum_; pCopyTransaction->notes_= pBankTransaction->notes_; pCopyTransaction->categID_ = pBankTransaction->categID_; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-10-14 06:58:19
|
Revision: 3047 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3047&view=rev Author: vomikan Date: 2012-10-14 06:58:13 +0000 (Sun, 14 Oct 2012) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-10-14 05:30:43 UTC (rev 3046) +++ trunk/mmex/src/mmtransaction.cpp 2012-10-14 06:58:13 UTC (rev 3047) @@ -96,7 +96,7 @@ entries_.clear(); total_ = 0.0; - static const char sql[] = + static const char sql[] = "select SPLITTRANSID, " "SPLITTRANSAMOUNT, " "CATEGID, " @@ -171,118 +171,127 @@ bool forceUpdate ) { - if ((isInited_) && (transType_ != TRANS_TYPE_TRANSFER_STR) && !forceUpdate) return; + if ((isInited_) && (transType_ != TRANS_TYPE_TRANSFER_STR) && !forceUpdate) return; - /* Load the Account Currency Settings for Formatting Strings */ - currencyPtr->loadCurrencySettings(); + /* Load the Account Currency Settings for Formatting Strings */ + currencyPtr->loadCurrencySettings(); - dateStr_ = mmGetDateForDisplay(db_.get(), date_); + dateStr_ = mmGetDateForDisplay(db_.get(), date_); - wxString displayTransAmtString; - mmex::formatDoubleToCurrencyEdit(amt_, displayTransAmtString); - transAmtString_ = displayTransAmtString; + wxString displayTransAmtString; + mmex::formatDoubleToCurrencyEdit(amt_, displayTransAmtString); + transAmtString_ = displayTransAmtString; - wxString displayToTransAmtString; - mmex::formatDoubleToCurrencyEdit(toAmt_, displayToTransAmtString); - transToAmtString_ = displayToTransAmtString; + wxString displayToTransAmtString; + mmex::formatDoubleToCurrencyEdit(toAmt_, displayToTransAmtString); + transToAmtString_ = displayToTransAmtString; - if (transType_ != TRANS_TYPE_TRANSFER_STR) - { - // needed to correct possible crash if database becomes corrupt. - if (payee_.lock() == 0 ) - { - if (core->displayDatabaseError_) - { - wxString errMsg = _("Payee not found in database for Account: "); - errMsg << core->accountList_.GetAccountName(accountID_) + if (transType_ != TRANS_TYPE_TRANSFER_STR) + { + // needed to correct possible crash if database becomes corrupt. + if (payee_.lock() == 0 ) + { + if (core->displayDatabaseError_) + { + wxString errMsg = _("Payee not found in database for Account: "); + errMsg << core->accountList_.GetAccountName(accountID_) << wxT("\n\n") << _("Subsequent errors not displayed."); - wxMessageBox(errMsg,_("MMEX DATABASE ERROR"),wxICON_ERROR); - core->displayDatabaseError_ = false; - } - payeeID_ = -1; - payeeStr_ = wxT("Payee Error"); - status_ = wxT("V"); - } - else - { - boost::shared_ptr<mmPayee> pPayee = payee_.lock(); - wxASSERT(pPayee); - payeeStr_ = pPayee->name_; - payeeID_ = pPayee->id_; - } - } + wxMessageBox(errMsg,_("MMEX DATABASE ERROR"),wxICON_ERROR); + core->displayDatabaseError_ = false; + } + payeeID_ = -1; + payeeStr_ = wxT("Payee Error"); + status_ = wxT("V"); + } + else + { + boost::shared_ptr<mmPayee> pPayee = payee_.lock(); + wxASSERT(pPayee); + payeeStr_ = pPayee->name_; + payeeID_ = pPayee->id_; + } + } - depositStr_ = wxT(""); - withdrawalStr_ = wxT(""); - if (transType_ == TRANS_TYPE_DEPOSIT_STR) - { - depositStr_ = displayTransAmtString; - } - else if (transType_== TRANS_TYPE_WITHDRAWAL_STR) - { - withdrawalStr_ = displayTransAmtString; - } - else if (transType_ == TRANS_TYPE_TRANSFER_STR) - { - wxString fromAccount = core->accountList_.GetAccountName(accountID_); - wxString toAccount = core->accountList_.GetAccountName(toAccountID_); + depositStr_ = wxT(""); + withdrawalStr_ = wxT(""); + if (transType_ == TRANS_TYPE_DEPOSIT_STR) + { + depositStr_ = displayTransAmtString; + } + else if (transType_== TRANS_TYPE_WITHDRAWAL_STR) + { + withdrawalStr_ = displayTransAmtString; + } + else if (transType_ == TRANS_TYPE_TRANSFER_STR) + { + wxString fromAccount = core->accountList_.GetAccountName(accountID_); + wxString toAccount = core->accountList_.GetAccountName(toAccountID_); - if (accountID_ == accountID) - { + if (accountID_ == accountID) + { withdrawalStr_ = displayTransAmtString; payeeStr_ = toAccount; - } - else if (toAccountID_ == accountID) - { + } + else if (toAccountID_ == accountID) + { depositStr_ = displayToTransAmtString; payeeStr_ = fromAccount; - } - } + } + } - fromAccountStr_ = core->accountList_.GetAccountName(accountID_); + fromAccountStr_ = core->accountList_.GetAccountName(accountID_); - boost::shared_ptr<mmCategory> pCategory = category_.lock(); - if (!pCategory && !splitEntries_->numEntries()) - { - // If category is missing, we mark is as unknown - int categID = core->categoryList_.GetCategoryId(wxT("Unknown")); - if (categID == -1) categID = core->categoryList_.AddCategory(wxT("Unknown")); + boost::shared_ptr<mmCategory> pCategory = category_.lock(); + if (!pCategory && !splitEntries_->numEntries()) + { + // If category is missing, we mark is as unknown + int categID = core->categoryList_.GetCategoryId(wxT("Unknown")); + if (categID == -1) categID = core->categoryList_.AddCategory(wxT("Unknown")); - category_ = core->categoryList_.GetCategorySharedPtr(categID, -1); - pCategory = category_.lock(); - wxASSERT(pCategory); - updateRequired_ = true; - } + category_ = core->categoryList_.GetCategorySharedPtr(categID, -1); + pCategory = category_.lock(); + wxASSERT(pCategory); + updateRequired_ = true; + } - if (pCategory) - { - boost::shared_ptr<mmCategory> parent = pCategory->parent_.lock(); - if (parent) - { - catStr_ = parent->categName_; - subCatStr_ = pCategory->categName_; - categID_ = parent->categID_; - subcategID_ = pCategory->categID_; - fullCatStr_ = catStr_ + wxT(":") +subCatStr_; - } - else - { - catStr_ = pCategory->categName_; - subCatStr_ = wxT(""); - categID_ = pCategory->categID_; - subcategID_ = -1; - fullCatStr_ = catStr_; - } - } - else if (splitEntries_->numEntries() > 0) - { - fullCatStr_ = _("Split Category"); - categID_ = -1; - subcategID_ = -1; - catStr_= wxT(""); - subCatStr_ = wxT(""); - } + if (pCategory) + { + boost::shared_ptr<mmCategory> parent = pCategory->parent_.lock(); + if (parent) + { + catStr_ = parent->categName_; + subCatStr_ = pCategory->categName_; + categID_ = parent->categID_; + subcategID_ = pCategory->categID_; + fullCatStr_ = core->categoryList_.GetFullCategoryString(categID_, subcategID_); + } + else + { + catStr_ = pCategory->categName_; + subCatStr_ = wxT(""); + categID_ = pCategory->categID_; + subcategID_ = -1; + fullCatStr_ = catStr_; + } + } + else if (splitEntries_->numEntries() == 1) + { + categID_ = -1; + subcategID_ = -1; + catStr_= wxT(""); + subCatStr_ = wxT(""); + fullCatStr_= core->categoryList_.GetFullCategoryString( + splitEntries_->entries_[0]->categID_, splitEntries_->entries_[0]->subCategID_); + } + else if (splitEntries_->numEntries() > 1) + { + fullCatStr_ = _("Split Category"); + categID_ = -1; + subcategID_ = -1; + catStr_= wxT(""); + subCatStr_ = wxT(""); + } isInited_ = true; } @@ -408,51 +417,51 @@ int mmBankTransactionList::addTransaction(mmCoreDB* core, boost::shared_ptr<mmBankTransaction> pBankTransaction) { - if (checkForExistingTransaction(pBankTransaction)) - { - pBankTransaction->status_ = wxT("D"); - } - - if(core->payeeList_.PayeeExists(pBankTransaction->payeeID_) == false) - { - pBankTransaction->payeeID_ = -1; - } - - static const char sql[] = - "insert into CHECKINGACCOUNT_V1 ( " - "ACCOUNTID, TOACCOUNTID, PAYEEID, TRANSCODE, " - "TRANSAMOUNT, STATUS, TRANSACTIONNUMBER, NOTES, " - "CATEGID, SUBCATEGID, TRANSDATE, FOLLOWUPID, TOTRANSAMOUNT " - ") values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, -1, ?)"; - - wxSQLite3Statement st = db_->PrepareStatement(sql); - mmBankTransaction &r = *pBankTransaction; - - int i = 0; - st.Bind(++i, r.accountID_); - st.Bind(++i, r.toAccountID_); - st.Bind(++i, r.payeeID_); - st.Bind(++i, r.transType_); - st.Bind(++i, r.amt_); - st.Bind(++i, r.status_); - st.Bind(++i, r.transNum_); - st.Bind(++i, r.notes_); - st.Bind(++i, r.categID_); - st.Bind(++i, r.subcategID_); - st.Bind(++i, r.date_.FormatISODate()); - st.Bind(++i, r.toAmt_); - - wxASSERT(st.GetParamCount() == i); - st.ExecuteUpdate(); - - r.transactionID(db_->GetLastRowId().ToLong()); - st.Finalize(); - mmOptions::instance().databaseUpdated_ = true; - - r.splitEntries_->updateToDB(db_, r.transactionID(), false); - transactions_.push_back(pBankTransaction); - - return pBankTransaction->transactionID(); + if (checkForExistingTransaction(pBankTransaction)) + { + pBankTransaction->status_ = wxT("D"); + } + + if(core->payeeList_.PayeeExists(pBankTransaction->payeeID_) == false) + { + pBankTransaction->payeeID_ = -1; + } + + static const char sql[] = + "insert into CHECKINGACCOUNT_V1 ( " + "ACCOUNTID, TOACCOUNTID, PAYEEID, TRANSCODE, " + "TRANSAMOUNT, STATUS, TRANSACTIONNUMBER, NOTES, " + "CATEGID, SUBCATEGID, TRANSDATE, FOLLOWUPID, TOTRANSAMOUNT " + ") values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, -1, ?)"; + + wxSQLite3Statement st = db_->PrepareStatement(sql); + mmBankTransaction &r = *pBankTransaction; + + int i = 0; + st.Bind(++i, r.accountID_); + st.Bind(++i, r.toAccountID_); + st.Bind(++i, r.payeeID_); + st.Bind(++i, r.transType_); + st.Bind(++i, r.amt_); + st.Bind(++i, r.status_); + st.Bind(++i, r.transNum_); + st.Bind(++i, r.notes_); + st.Bind(++i, r.categID_); + st.Bind(++i, r.subcategID_); + st.Bind(++i, r.date_.FormatISODate()); + st.Bind(++i, r.toAmt_); + + wxASSERT(st.GetParamCount() == i); + st.ExecuteUpdate(); + + r.transactionID(db_->GetLastRowId().ToLong()); + st.Finalize(); + mmOptions::instance().databaseUpdated_ = true; + + r.splitEntries_->updateToDB(db_, r.transactionID(), false); + transactions_.push_back(pBankTransaction); + + return pBankTransaction->transactionID(); } bool mmBankTransactionList::checkForExistingTransaction(boost::shared_ptr<mmBankTransaction> pBankTransaction) @@ -473,30 +482,30 @@ "TOTRANSAMOUNT = ? and " "TRANSID > 0"; // is not null - bool found = false; + bool found = false; + + wxSQLite3Statement st = db_->PrepareStatement(sql); + const mmBankTransaction &r = *pBankTransaction; + + int i = 0; + st.Bind(++i, r.accountID_); + st.Bind(++i, r.toAccountID_); + st.Bind(++i, r.payeeID_); + st.Bind(++i, r.transType_); + st.Bind(++i, r.amt_); + st.Bind(++i, r.transNum_); + st.Bind(++i, r.notes_); + st.Bind(++i, r.categID_); + st.Bind(++i, r.subcategID_); + st.Bind(++i, r.date_.FormatISODate()); + st.Bind(++i, r.toAmt_ ); + + wxASSERT(st.GetParamCount() == i); + + wxSQLite3ResultSet q1 = st.ExecuteQuery(); + found = q1.NextRow(); // TODO: Need to check split entries + st.Finalize(); - wxSQLite3Statement st = db_->PrepareStatement(sql); - const mmBankTransaction &r = *pBankTransaction; - - int i = 0; - st.Bind(++i, r.accountID_); - st.Bind(++i, r.toAccountID_); - st.Bind(++i, r.payeeID_); - st.Bind(++i, r.transType_); - st.Bind(++i, r.amt_); - st.Bind(++i, r.transNum_); - st.Bind(++i, r.notes_); - st.Bind(++i, r.categID_); - st.Bind(++i, r.subcategID_); - st.Bind(++i, r.date_.FormatISODate()); - st.Bind(++i, r.toAmt_ ); - - wxASSERT(st.GetParamCount() == i); - - wxSQLite3ResultSet q1 = st.ExecuteQuery(); - found = q1.NextRow(); // TODO: Need to check split entries - st.Finalize(); - return found; } @@ -929,7 +938,7 @@ const mmCoreDB* core, int categID, int subcategID, - bool ignoreDate, + bool ignoreDate, const wxDateTime &dtBegin, const wxDateTime &dtEnd, bool evaluateTransfer, // activates the asDeposit parameter. @@ -1182,25 +1191,25 @@ if (mmDBWrapper::relocatePayee(db_.get(), destPayeeID, sourcePayeeID) == 0) { - changedPayees_=0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) - { - boost::shared_ptr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction && (pBankTransaction->payeeID_ == sourcePayeeID)) - { - pBankTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(destPayeeID); + changedPayees_=0; + for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + { + boost::shared_ptr<mmBankTransaction> pBankTransaction = *i; + if (pBankTransaction && (pBankTransaction->payeeID_ == sourcePayeeID)) + { + pBankTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(destPayeeID); pBankTransaction->payeeStr_ = core->payeeList_.GetPayeeName(destPayeeID); pBankTransaction->payeeID_ = destPayeeID; changedPayees_++; - } - } + } + } - } - return 0; + } + return 0; } int mmBankTransactionList::RelocateCategory(mmCoreDB* core, - const int destCatID, const int destSubCatID, const int sourceCatID, const int sourceSubCatID, + const int destCatID, const int destSubCatID, const int sourceCatID, const int sourceSubCatID, int& changedCats, int& changedSubCats) { int err = mmDBWrapper::relocateCategory(db_.get(), @@ -1208,41 +1217,41 @@ if ( err == 0 ) { - changedCats=0; - changedSubCats=0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) - { - boost::shared_ptr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction && (pBankTransaction->categID_ == sourceCatID) - && pBankTransaction->subcategID_== sourceSubCatID) - { - pBankTransaction->category_ = core->categoryList_.GetCategorySharedPtr(destCatID, destSubCatID); + changedCats=0; + changedSubCats=0; + for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + { + boost::shared_ptr<mmBankTransaction> pBankTransaction = *i; + if (pBankTransaction && (pBankTransaction->categID_ == sourceCatID) + && pBankTransaction->subcategID_== sourceSubCatID) + { + pBankTransaction->category_ = core->categoryList_.GetCategorySharedPtr(destCatID, destSubCatID); pBankTransaction->catStr_ = core->categoryList_.GetCategoryName(destCatID); pBankTransaction->subCatStr_ = core->categoryList_.GetSubCategoryName(destCatID, destSubCatID); pBankTransaction->categID_ = destCatID; pBankTransaction->subcategID_ = destSubCatID; pBankTransaction->fullCatStr_ = core->categoryList_.GetFullCategoryString(destCatID, destSubCatID); changedCats++; - } - else if (pBankTransaction && (pBankTransaction->categID_ == -1)) - { - mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); - pBankTransaction->getSplitTransactions(core, splits); + } + else if (pBankTransaction && (pBankTransaction->categID_ == -1)) + { + mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); + pBankTransaction->getSplitTransactions(core, splits); - for (int i = 0; i < (int)splits->entries_.size(); ++i) - { - if (splits->entries_[i]->categID_==sourceCatID && splits->entries_[i]->subCategID_==sourceSubCatID) - { - splits->entries_[i]->categID_ = destCatID; - splits->entries_[i]->subCategID_ = destSubCatID; - changedSubCats++; - } - } + for (int i = 0; i < (int)splits->entries_.size(); ++i) + { + if (splits->entries_[i]->categID_==sourceCatID && splits->entries_[i]->subCategID_==sourceSubCatID) + { + splits->entries_[i]->categID_ = destCatID; + splits->entries_[i]->subCategID_ = destSubCatID; + changedSubCats++; + } + } - } - } - } - return err; + } + } + } + return err; } void mmBankTransactionList::ChangeDateFormat() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2012-11-12 11:44:01
|
Revision: 3133 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3133&view=rev Author: stef145g Date: 2012-11-12 11:43:50 +0000 (Mon, 12 Nov 2012) Log Message: ----------- Fix LastUsedPayee backward search Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2012-11-11 10:09:27 UTC (rev 3132) +++ trunk/mmex/src/mmtransaction.cpp 2012-11-12 11:43:50 UTC (rev 3133) @@ -875,23 +875,25 @@ int mmBankTransactionList::getLastUsedPayeeID(const int accountID, int& categID, int& subcategID) const { int payee_id = -1; - if (transactions_.empty()) return payee_id; - for (const_iterator i = (transactions_.end()-1); i >= transactions_.begin(); --i) + int index = transactions_.size() - 1; + bool searching = true; + while (searching && index >= 0) { - boost::shared_ptr<const mmBankTransaction> pBankTransaction = *i; - + boost::shared_ptr<const mmBankTransaction> pBankTransaction = transactions_[index]; if (pBankTransaction) { - if (pBankTransaction->accountID_ != accountID - || pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) + if (pBankTransaction->accountID_ == accountID && + pBankTransaction->transType_ != TRANS_TYPE_TRANSFER_STR) { - continue; // skip + payee_id = pBankTransaction->payeeID_; + categID = pBankTransaction->categID_; + subcategID = pBankTransaction->subcategID_; + searching = false; } - payee_id = pBankTransaction->payeeID_; - categID = pBankTransaction->categID_; - subcategID = pBankTransaction->subcategID_; } + index --; } + return payee_id; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2013-01-13 03:16:27
|
Revision: 3354 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3354&view=rev Author: stef145g Date: 2013-01-13 03:16:15 +0000 (Sun, 13 Jan 2013) Log Message: ----------- Fix crash Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-01-13 02:26:55 UTC (rev 3353) +++ trunk/mmex/src/mmtransaction.cpp 2013-01-13 03:16:15 UTC (rev 3354) @@ -1294,17 +1294,19 @@ index --; } - mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); - pBankTransaction->getSplitTransactions(core, splits); + if (pBankTransaction) + { + mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); + pBankTransaction->getSplitTransactions(core, splits); - for (int i = 0; i < (int)splits->entries_.size(); ++i) - { - if (splits->entries_[i]->categID_==iCatID && splits->entries_[i]->subCategID_==iSubCatID) + for (int i = 0; i < (int)splits->entries_.size(); ++i) { - searching = true; + if (splits->entries_[i]->categID_==iCatID && splits->entries_[i]->subCategID_==iSubCatID) + { + searching = true; + } } } - return searching; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-01-28 06:00:48
|
Revision: 3398 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3398&view=rev Author: vomikan Date: 2013-01-28 06:00:40 +0000 (Mon, 28 Jan 2013) Log Message: ----------- fix Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-01-24 20:53:12 UTC (rev 3397) +++ trunk/mmex/src/mmtransaction.cpp 2013-01-28 06:00:40 UTC (rev 3398) @@ -1281,33 +1281,33 @@ bool mmBankTransactionList::IsCategoryUsed(mmCoreDB* core, const int iCatID, const int iSubCatID, bool bIgnor_subcat) const { int index = transactions_.size() - 1; - bool searching = false; + boost::shared_ptr<mmBankTransaction> pBankTransaction; - while (!searching && index >= 0) + while (index >= 0) { pBankTransaction = transactions_[index]; - if (pBankTransaction && (pBankTransaction->categID_ == iCatID) - && (bIgnor_subcat ? true : pBankTransaction->subcategID_== iSubCatID)) + if (pBankTransaction) { - searching = true; - } - index --; - } + if ((pBankTransaction->categID_ == iCatID) + && (bIgnor_subcat ? true : pBankTransaction->subcategID_== iSubCatID)) + { + return true; + } - if (pBankTransaction) - { - mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); - pBankTransaction->getSplitTransactions(core, splits); - - for (int i = 0; i < (int)splits->entries_.size(); ++i) - { - if (splits->entries_[i]->categID_==iCatID && splits->entries_[i]->subCategID_==iSubCatID) + mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); + pBankTransaction->getSplitTransactions(core, splits); + + for (int i = 0; i < (int)splits->entries_.size(); ++i) { - searching = true; + if (splits->entries_[i]->categID_==iCatID && splits->entries_[i]->subCategID_==iSubCatID) + { + return true; + } } } + index --; } - return searching; + return false; } bool mmBankTransactionList::IsPayeeUsed(const int iPayeeID) const This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-13 10:46:24
|
Revision: 3472 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3472&view=rev Author: vomikan Date: 2013-02-13 10:46:17 +0000 (Wed, 13 Feb 2013) Log Message: ----------- fix Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-02-13 09:56:35 UTC (rev 3471) +++ trunk/mmex/src/mmtransaction.cpp 2013-02-13 10:46:17 UTC (rev 3472) @@ -299,29 +299,24 @@ double mmBankTransaction::value(int accountID) const { - double balance = 0.0; - if (transType_ == TRANS_TYPE_DEPOSIT_STR) - { - balance = amt_; - } - else if (transType_== TRANS_TYPE_WITHDRAWAL_STR) - { - balance -= amt_; - } - else if (transType_ == TRANS_TYPE_TRANSFER_STR) - { + double balance = 0.0; + if (transType_ == TRANS_TYPE_DEPOSIT_STR) + balance = amt_; + else if (transType_== TRANS_TYPE_WITHDRAWAL_STR) + balance -= amt_; + else if (transType_ == TRANS_TYPE_TRANSFER_STR) + { + //Bug fix for brocken transactions (as result of wrong import) if account and to account the same + if (accountID_ != toAccountID_) + { + if (accountID_ == accountID) + balance -= amt_; + else if (toAccountID_ == accountID) + balance += toAmt_; + } + } - if (accountID_ == accountID) - { - balance -= amt_; - } - else if (toAccountID_ == accountID) - { - balance += toAmt_; - } - } - - return balance; + return balance; } void mmBankTransaction::getSplitTransactions(mmCoreDB* core, mmSplitTransactionEntries* splits) const { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-18 12:56:21
|
Revision: 3510 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3510&view=rev Author: vomikan Date: 2013-02-18 12:56:14 +0000 (Mon, 18 Feb 2013) Log Message: ----------- wxASSERT() added Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-02-18 11:38:07 UTC (rev 3509) +++ trunk/mmex/src/mmtransaction.cpp 2013-02-18 12:56:14 UTC (rev 3510) @@ -183,6 +183,8 @@ mmex::formatDoubleToCurrencyEdit(amt_, displayTransAmtString); transAmtString_ = displayTransAmtString; + wxASSERT(toAmt_ >= 0); + wxASSERT(amt_ >= 0); if (toAmt_ < 0) toAmt_ = amt_; wxString displayToTransAmtString; mmex::formatDoubleToCurrencyEdit(toAmt_, displayToTransAmtString); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-03-11 20:49:23
|
Revision: 3569 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3569&view=rev Author: vomikan Date: 2013-03-11 20:49:14 +0000 (Mon, 11 Mar 2013) Log Message: ----------- split support for check for duplicate function Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-03-11 20:11:41 UTC (rev 3568) +++ trunk/mmex/src/mmtransaction.cpp 2013-03-11 20:49:14 UTC (rev 3569) @@ -453,7 +453,31 @@ wxASSERT(st.GetParamCount() == i); wxSQLite3ResultSet q1 = st.ExecuteQuery(); - found = q1.NextRow(); // TODO: Need to check split entries + while (q1.NextRow() && !found) + { + int transactionID = q1.GetInt(wxT("TRANSID")); + if (pBankTransaction->categID_ == -1) + { + mmSplitTransactionEntries* splits = pBankTransaction->splitEntries_.get(); + + boost::shared_ptr<mmBankTransaction> pTempTransaction = getBankTransactionPtr(transactionID); + mmSplitTransactionEntries* temp_splits = pTempTransaction->splitEntries_.get(); + + if (splits->entries_.size() != temp_splits->entries_.size()) + continue; + + for (int i = 0; i < (int)splits->entries_.size(); ++i) + { + if (splits->entries_[i]->splitAmount_ != temp_splits->entries_[i]->splitAmount_) + continue; + if (splits->entries_[i]->categID_ != temp_splits->entries_[i]->categID_) + continue; + if (splits->entries_[i]->subCategID_ != temp_splits->entries_[i]->subCategID_) + continue; + } + } + found = true; + } st.Finalize(); return found; @@ -483,7 +507,7 @@ pCopyTransaction->payee_ = pBankTransaction->payee_; pCopyTransaction->payeeID_ = pBankTransaction->payeeID_; pCopyTransaction->transType_ = pBankTransaction->transType_; - pCopyTransaction->status_ = (useOriginalDate ? wxT("D") : pBankTransaction->status_); + pCopyTransaction->status_ = pBankTransaction->status_; pCopyTransaction->transNum_ = pBankTransaction->transNum_; pCopyTransaction->notes_ = pBankTransaction->notes_; pCopyTransaction->categID_ = pBankTransaction->categID_; @@ -497,6 +521,8 @@ pBankTransaction->getSplitTransactions(splitTransEntries.get()); pCopyTransaction->splitEntries_.get()->entries_ = splitTransEntries->entries_; + if (checkForExistingTransaction(pCopyTransaction)) pCopyTransaction->status_ = wxT("D"); + wxSQLite3Statement st = db_->PrepareStatement(INSERT_INTO_CHECKINGACCOUNT_V1); const mmBankTransaction &r = *pBankTransaction; @@ -807,7 +833,7 @@ if (pTransaction) { if ((pTransaction->accountID_ == accountID || pTransaction->toAccountID_ == accountID) - && pTransaction->transType_ == sType + && pTransaction->transType_ == sType && pTransaction->payeeID_ == payeeID) { categ_id = pTransaction->categID_; @@ -920,7 +946,7 @@ } if (!ignoreDate) { - if ((pBankTransaction->date_.GetDateOnly() < dtBegin.GetDateOnly()) + if ((pBankTransaction->date_.GetDateOnly() < dtBegin.GetDateOnly()) || (pBankTransaction->date_.GetDateOnly() > dtEnd.GetDateOnly())) { continue; //skip @@ -1219,7 +1245,7 @@ } } } - + bool mmBankTransactionList::IsCategoryUsed(/*mmCoreDB* core,*/ const int iCatID, const int iSubCatID, bool bIgnor_subcat) const { int index = transactions_.size() - 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-04-09 06:14:07
|
Revision: 3658 http://sourceforge.net/p/moneymanagerex/code/3658 Author: vomikan Date: 2013-04-09 06:14:04 +0000 (Tue, 09 Apr 2013) Log Message: ----------- fix for payeeID Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-04-07 17:07:49 UTC (rev 3657) +++ trunk/mmex/src/mmtransaction.cpp 2013-04-09 06:14:04 UTC (rev 3658) @@ -501,20 +501,21 @@ else pCopyTransaction->accountID_ = pBankTransaction->accountID_; } - pCopyTransaction->toAccountID_ = pBankTransaction->toAccountID_; + pCopyTransaction->date_ = (useOriginalDate ? pBankTransaction->date_ : wxDateTime::Now()); pCopyTransaction->amt_ = pBankTransaction->amt_; pCopyTransaction->toAmt_ = pBankTransaction->toAmt_; + pCopyTransaction->transType_ = pBankTransaction->transType_; + pCopyTransaction->status_ = pBankTransaction->status_; pCopyTransaction->payee_ = pBankTransaction->payee_; + pCopyTransaction->payeeStr_ = pBankTransaction->payeeStr_; pCopyTransaction->payeeID_ = pBankTransaction->payeeID_; - pCopyTransaction->transType_ = pBankTransaction->transType_; - pCopyTransaction->status_ = pBankTransaction->status_; - pCopyTransaction->transNum_ = pBankTransaction->transNum_; - pCopyTransaction->notes_ = pBankTransaction->notes_; + pCopyTransaction->category_ = pBankTransaction->category_; pCopyTransaction->categID_ = pBankTransaction->categID_; pCopyTransaction->subcategID_ = pBankTransaction->subcategID_; - pCopyTransaction->date_ = (useOriginalDate ? pBankTransaction->date_ : wxDateTime::Now()); - pCopyTransaction->category_ = pBankTransaction->category_; pCopyTransaction->followupID_ = pBankTransaction->followupID_; + pCopyTransaction->toAccountID_ = pBankTransaction->toAccountID_; + pCopyTransaction->transNum_ = pBankTransaction->transNum_; + pCopyTransaction->notes_ = pBankTransaction->notes_; // we need to create a new pointer for Split transactions. boost::shared_ptr<mmSplitTransactionEntries> splitTransEntries(new mmSplitTransactionEntries()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-04-29 12:54:35
|
Revision: 3800 http://sourceforge.net/p/moneymanagerex/code/3800 Author: vomikan Date: 2013-04-29 12:54:32 +0000 (Mon, 29 Apr 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-04-29 12:26:11 UTC (rev 3799) +++ trunk/mmex/src/mmtransaction.cpp 2013-04-29 12:54:32 UTC (rev 3800) @@ -878,36 +878,32 @@ const wxDateTime &dtBegin, const wxDateTime &dtEnd, bool ignoreFuture) const { double amt = 0.0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - const wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - if (pBankTransaction->payeeID_ == payeeID) - { - if (pBankTransaction->status_ == "V") - { - continue; // skip - } - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) - continue; //skip future dated transactions - } - if (!ignoreDate) - { - if (!pBankTransaction->date_.IsBetween(dtBegin, dtEnd)) - continue; //skip - } + if (pBankTransaction->payeeID_ == payeeID) + { + if (pBankTransaction->status_ == "V") + { + continue; // skip + } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) + continue; //skip future dated transactions + } + if (!ignoreDate) + { + if (!pBankTransaction->date_.IsBetween(dtBegin, dtEnd)) + continue; //skip + } - if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - continue; + if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) + continue; - double convRate = core_->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); + double convRate = core_->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); - amt += pBankTransaction->value(-1) * convRate; - } - } + amt += pBankTransaction->value(-1) * convRate; + } } return amt; @@ -927,44 +923,43 @@ double amt = 0.0; const wxDateTime dtNow = wxDateTime::Now().GetDateOnly(); - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - if (!i->get()) continue; //skip - if (!i->get()->containsCategory(categID, subcategID)) continue; - if (i->get()->status_ == "V") continue; + if (!pBankTransaction->containsCategory(categID, subcategID)) continue; + if (pBankTransaction->status_ == "V") continue; if (!ignoreDate) { - if (!i->get()->date_.GetDateOnly().IsBetween(dtBegin, dtEnd)) continue; + if (!pBankTransaction->date_.GetDateOnly().IsBetween(dtBegin, dtEnd)) continue; } if (ignoreFuture) { //skip future dated transactions - if (i->get()->date_.GetDateOnly().IsLaterThan(dtNow)) continue; + if (pBankTransaction->date_.GetDateOnly().IsLaterThan(dtNow)) continue; } - double convRate = core_->accountList_.getAccountBaseCurrencyConvRate(i->get()->accountID_); - if (i->get()->transType_ == TRANS_TYPE_TRANSFER_STR) + double convRate = core_->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); + if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) { if (evaluateTransfer) { if (asDeposit) { - amt += i->get()->getAmountForSplit(categID, subcategID) * convRate; + amt += pBankTransaction->getAmountForSplit(categID, subcategID) * convRate; } else { - amt -= i->get()->getAmountForSplit(categID, subcategID) * convRate; + amt -= pBankTransaction->getAmountForSplit(categID, subcategID) * convRate; } } continue; //skip } - if (i->get()->transType_ == TRANS_TYPE_WITHDRAWAL_STR) + if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) { - amt -= i->get()->getAmountForSplit(categID, subcategID) * convRate; + amt -= pBankTransaction->getAmountForSplit(categID, subcategID) * convRate; } - else if (i->get()->transType_ == TRANS_TYPE_DEPOSIT_STR) + else if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) { - amt += i->get()->getAmountForSplit(categID, subcategID) * convRate; + amt += pBankTransaction->getAmountForSplit(categID, subcategID) * convRate; } } @@ -974,26 +969,23 @@ double mmBankTransactionList::getBalance(int accountID, bool ignoreFuture) const { double balance = 0.0; - wxDateTime now = wxDateTime::Now(); - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + wxDateTime now = wxDateTime::Now().GetDateOnly(); + for (const auto & pBankTransaction: transactions_) { - const wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip + if ((pBankTransaction->accountID_ != accountID) + && (pBankTransaction->toAccountID_ != accountID)) + continue; // skip - if (pBankTransaction->status_ == "V") - continue; // skip + if (pBankTransaction->status_ == "V") + continue; // skip - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(now)) - continue; //skip future dated transactions - } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(now)) + continue; //skip future dated transactions + } - balance += pBankTransaction->value(accountID); - } + balance += pBankTransaction->value(accountID); } return balance; @@ -1003,25 +995,21 @@ { wxDateTime now = wxDateTime::Now(); double convRate = core->accountList_.getAccountBaseCurrencyConvRate(accountID); - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip + if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) + continue; // skip - if (pBankTransaction->status_ == "V") - continue; // skip + if (pBankTransaction->status_ == "V") + continue; // skip - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(now)) - continue; //skip future dated transactions - } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(now)) + continue; //skip future dated transactions + } - daily_balance[pBankTransaction->date_] += pBankTransaction->value(accountID) * convRate; - } + daily_balance[pBankTransaction->date_] += pBankTransaction->value(accountID) * convRate; } return true; @@ -1030,25 +1018,21 @@ double mmBankTransactionList::getReconciledBalance(int accountID, bool ignoreFuture) const { double balance = 0.0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip + if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) + continue; // skip - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) - continue; //skip future dated transactions - } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) + continue; //skip future dated transactions + } - if (pBankTransaction->status_ != "R") - continue; // skip + if (pBankTransaction->status_ != "R") + continue; // skip - balance += pBankTransaction->value(accountID); - } + balance += pBankTransaction->value(accountID); } return balance; @@ -1057,16 +1041,12 @@ int mmBankTransactionList::countFollowupTransactions() const { int numFollowup = 0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - if (pBankTransaction->status_ != "F") - continue; // skip + if (pBankTransaction->status_ != "F") + continue; // skip - numFollowup++; - } + numFollowup++; } return numFollowup; } @@ -1129,9 +1109,8 @@ { double trx_number, today_number = 1, max_number = 1; wxArrayString number_strings; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; if (pBankTransaction) { if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) @@ -1161,10 +1140,9 @@ { changedPayees_=0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction && (pBankTransaction->payeeID_ == sourcePayeeID)) + if (pBankTransaction->payeeID_ == sourcePayeeID) { pBankTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(destPayeeID); pBankTransaction->payeeStr_ = core->payeeList_.GetPayeeName(destPayeeID); @@ -1188,10 +1166,9 @@ changedCats=0; changedSubCats=0; - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction && (pBankTransaction->categID_ == sourceCatID) + if ((pBankTransaction->categID_ == sourceCatID) && pBankTransaction->subcategID_== sourceSubCatID) { pBankTransaction->category_ = core->categoryList_.GetCategorySharedPtr(destCatID, destSubCatID); @@ -1225,13 +1202,9 @@ void mmBankTransactionList::ChangeDateFormat() { - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + for (const auto & pBankTransaction: transactions_) { - wxSharedPtr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - pBankTransaction->dateStr_ = (pBankTransaction->date_).Format(mmOptions::instance().dateFormat_); - } + pBankTransaction->dateStr_ = (pBankTransaction->date_).Format(mmOptions::instance().dateFormat_); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-04-29 13:43:16
|
Revision: 3802 http://sourceforge.net/p/moneymanagerex/code/3802 Author: vomikan Date: 2013-04-29 13:43:13 +0000 (Mon, 29 Apr 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-04-29 12:58:09 UTC (rev 3801) +++ trunk/mmex/src/mmtransaction.cpp 2013-04-29 13:43:13 UTC (rev 3802) @@ -293,7 +293,7 @@ balance -= amt_; else if (transType_ == TRANS_TYPE_TRANSFER_STR) { - //Bug fix for brocken transactions (as result of wrong import) if account and to account the same + //Bug fix for broken transactions (as result of wrong import) if account and to account the same if (accountID_ != toAccountID_) { if (accountID_ == accountID) @@ -337,21 +337,25 @@ bool mmBankTransaction::containsCategory(int categID, int subcategID, bool ignoreSubCateg) const { - if (splitEntries_->numEntries()) + bool found = false; + if (!splitEntries_->numEntries()) { - for(size_t idx = 0; idx < splitEntries_->numEntries(); ++idx) + found = (categID_ == categID) && (subcategID_ == subcategID || ignoreSubCateg); + } + else + { + for (const auto & pSplitEntry: splitEntries_->entries_) { - if ((splitEntries_->entries_[idx]->categID_ == categID) && - ((ignoreSubCateg) || splitEntries_->entries_[idx]->subCategID_ == subcategID)) + if ((pSplitEntry->categID_ == categID) && + ((ignoreSubCateg) || pSplitEntry->subCategID_ == subcategID)) { - return true; + found = true; + break; } } } - else if (categID_ == categID) - return (subcategID_ == subcategID || ignoreSubCateg); - return false; + return found; } double mmBankTransaction::getAmountForSplit(int categID, int subcategID) const @@ -880,30 +884,30 @@ double amt = 0.0; for (const auto & pBankTransaction: transactions_) { - if (pBankTransaction->payeeID_ == payeeID) - { - if (pBankTransaction->status_ == "V") - { - continue; // skip - } - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) - continue; //skip future dated transactions - } - if (!ignoreDate) - { - if (!pBankTransaction->date_.IsBetween(dtBegin, dtEnd)) - continue; //skip - } + if (pBankTransaction->payeeID_ == payeeID) + { + if (pBankTransaction->status_ == "V") + { + continue; // skip + } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) + continue; //skip future dated transactions + } + if (!ignoreDate) + { + if (!pBankTransaction->date_.IsBetween(dtBegin, dtEnd)) + continue; //skip + } - if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - continue; + if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) + continue; - double convRate = core_->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); + double convRate = core_->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); - amt += pBankTransaction->value(-1) * convRate; - } + amt += pBankTransaction->value(-1) * convRate; + } } return amt; @@ -929,8 +933,8 @@ if (pBankTransaction->status_ == "V") continue; if (!ignoreDate) { - if (!pBankTransaction->date_.GetDateOnly().IsBetween(dtBegin, dtEnd)) continue; - } + if (!pBankTransaction->date_.GetDateOnly().IsBetween(dtBegin, dtEnd)) continue; + } if (ignoreFuture) { //skip future dated transactions @@ -972,20 +976,20 @@ wxDateTime now = wxDateTime::Now().GetDateOnly(); for (const auto & pBankTransaction: transactions_) { - if ((pBankTransaction->accountID_ != accountID) - && (pBankTransaction->toAccountID_ != accountID)) - continue; // skip + if ((pBankTransaction->accountID_ != accountID) + && (pBankTransaction->toAccountID_ != accountID)) + continue; // skip - if (pBankTransaction->status_ == "V") - continue; // skip + if (pBankTransaction->status_ == "V") + continue; // skip - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(now)) - continue; //skip future dated transactions - } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(now)) + continue; //skip future dated transactions + } - balance += pBankTransaction->value(accountID); + balance += pBankTransaction->value(accountID); } return balance; @@ -997,19 +1001,19 @@ double convRate = core->accountList_.getAccountBaseCurrencyConvRate(accountID); for (const auto & pBankTransaction: transactions_) { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip + if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) + continue; // skip - if (pBankTransaction->status_ == "V") - continue; // skip + if (pBankTransaction->status_ == "V") + continue; // skip - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(now)) - continue; //skip future dated transactions - } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(now)) + continue; //skip future dated transactions + } - daily_balance[pBankTransaction->date_] += pBankTransaction->value(accountID) * convRate; + daily_balance[pBankTransaction->date_] += pBankTransaction->value(accountID) * convRate; } return true; @@ -1020,19 +1024,19 @@ double balance = 0.0; for (const auto & pBankTransaction: transactions_) { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip + if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) + continue; // skip - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) - continue; //skip future dated transactions - } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) + continue; //skip future dated transactions + } - if (pBankTransaction->status_ != "R") - continue; // skip + if (pBankTransaction->status_ != "R") + continue; // skip - balance += pBankTransaction->value(accountID); + balance += pBankTransaction->value(accountID); } return balance; @@ -1043,10 +1047,10 @@ int numFollowup = 0; for (const auto & pBankTransaction: transactions_) { - if (pBankTransaction->status_ != "F") - continue; // skip + if (pBankTransaction->status_ != "F") + continue; // skip - numFollowup++; + numFollowup++; } return numFollowup; } @@ -1204,7 +1208,7 @@ { for (const auto & pBankTransaction: transactions_) { - pBankTransaction->dateStr_ = (pBankTransaction->date_).Format(mmOptions::instance().dateFormat_); + pBankTransaction->dateStr_ = (pBankTransaction->date_).Format(mmOptions::instance().dateFormat_); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-04-29 13:49:55
|
Revision: 3803 http://sourceforge.net/p/moneymanagerex/code/3803 Author: vomikan Date: 2013-04-29 13:49:51 +0000 (Mon, 29 Apr 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-04-29 13:43:13 UTC (rev 3802) +++ trunk/mmex/src/mmtransaction.cpp 2013-04-29 13:49:51 UTC (rev 3803) @@ -363,21 +363,19 @@ double splitAmount = 0.0; if (splitEntries_->numEntries()) { - for(size_t idx = 0; idx < splitEntries_->numEntries(); ++idx) + for (const auto & pSplitEntry: splitEntries_->entries_) { - if ((splitEntries_->entries_[idx]->categID_ == categID) && - (splitEntries_->entries_[idx]->subCategID_ == subcategID)) + if ((pSplitEntry->categID_ == categID) && + (pSplitEntry->subCategID_ == subcategID)) { - splitAmount += splitEntries_->entries_[idx]->splitAmount_; + splitAmount += pSplitEntry->splitAmount_; } } - - return splitAmount; } else if ((categID_ == categID) && (subcategID_ == subcategID)) { - return amt_; + splitAmount = amt_; } return splitAmount; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-05-02 23:40:58
|
Revision: 3820 http://sourceforge.net/p/moneymanagerex/code/3820 Author: vomikan Date: 2013-05-02 23:40:53 +0000 (Thu, 02 May 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-05-02 21:56:48 UTC (rev 3819) +++ trunk/mmex/src/mmtransaction.cpp 2013-05-02 23:40:53 UTC (rev 3820) @@ -169,17 +169,12 @@ currencyPtr->loadCurrencySettings(); dateStr_ = mmGetDateForDisplay(date_); + mmex::formatDoubleToCurrencyEdit(amt_, transAmtString_); - wxString displayTransAmtString; - mmex::formatDoubleToCurrencyEdit(amt_, displayTransAmtString); - transAmtString_ = displayTransAmtString; - wxASSERT(toAmt_ >= 0); wxASSERT(amt_ >= 0); if (toAmt_ < 0) toAmt_ = amt_; - wxString displayToTransAmtString; - mmex::formatDoubleToCurrencyEdit(toAmt_, displayToTransAmtString); - transToAmtString_ = displayToTransAmtString; + mmex::formatDoubleToCurrencyEdit(toAmt_, transToAmtString_); if (transType_ != TRANS_TYPE_TRANSFER_STR) { @@ -212,11 +207,11 @@ withdrawalStr_ = ""; if (transType_ == TRANS_TYPE_DEPOSIT_STR) { - depositStr_ = displayTransAmtString; + depositStr_ = transAmtString_; } else if (transType_== TRANS_TYPE_WITHDRAWAL_STR) { - withdrawalStr_ = displayTransAmtString; + withdrawalStr_ = transToAmtString_; } else if (transType_ == TRANS_TYPE_TRANSFER_STR) { @@ -225,12 +220,12 @@ if (accountID_ == accountID) { - withdrawalStr_ = displayTransAmtString; + withdrawalStr_ = transAmtString_; payeeStr_ = toAccount; } else if (toAccountID_ == accountID) { - depositStr_ = displayToTransAmtString; + depositStr_ = transToAmtString_; payeeStr_ = fromAccount; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-05-08 15:07:34
|
Revision: 3862 http://sourceforge.net/p/moneymanagerex/code/3862 Author: vomikan Date: 2013-05-08 15:07:20 +0000 (Wed, 08 May 2013) Log Message: ----------- For a std::map, find operation may return null. [key] directly usage. Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-05-08 14:39:21 UTC (rev 3861) +++ trunk/mmex/src/mmtransaction.cpp 2013-05-08 15:07:20 UTC (rev 3862) @@ -755,16 +755,15 @@ continue; //skip // We got this far, get the currency conversion rate for this account - convRate = acc_conv_rates.find(pBankTransaction->accountID_)->second; + convRate = acc_conv_rates[pBankTransaction->accountID_]; wxDateTime d = pBankTransaction->date_; int idx = group_by_month ? (d.GetYear()*100 + (int)d.GetMonth()) : 0; - std::pair<double, double>& pIncomeExpenses = incomeExpensesStats.find(idx)->second; if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - pIncomeExpenses.first += pBankTransaction->amt_ * convRate; + incomeExpensesStats[idx].first += pBankTransaction->amt_ * convRate; else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - pIncomeExpenses.second += pBankTransaction->amt_ * convRate; + incomeExpensesStats[idx].second += pBankTransaction->amt_ * convRate; else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) { // transfers are not considered in income/expenses calculations @@ -772,52 +771,6 @@ } } -//TODO: Deprecated function. Replace it with getExpensesIncomeStats -void mmBankTransactionList::getExpensesIncome(const mmCoreDB* core, int accountID, double& expenses, double& income, - bool ignoreDate, const wxDateTime &dtBegin, const wxDateTime &dtEnd, bool ignoreFuture) const -{ - for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) - { - const std::shared_ptr<mmBankTransaction> pBankTransaction = *i; - if (pBankTransaction) - { - if (accountID != -1) - { - if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) - continue; // skip - } - if (pBankTransaction->status_ == "V") - { - continue; // skip - } - if (ignoreFuture) - { - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) - continue; //skip future dated transactions - } - if (!ignoreDate) - { - if (!pBankTransaction->date_.IsBetween(dtBegin, dtEnd)) - continue; //skip - } - - // We got this far, get the currency conversion rate for this account - double convRate = core->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); - - if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) - income += pBankTransaction->amt_ * convRate; - else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) - expenses += pBankTransaction->amt_ * convRate; - else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) - { - // transfers are not considered in income/expenses calculations - } - } - } -} - - - void mmBankTransactionList::getTransactionStats(std::map<int, std::map<int, int> > &stats, int start_year) const { //Initialization @@ -843,7 +796,7 @@ int year = pBankTransaction->date_.GetYear(); int month = (int)pBankTransaction->date_.GetMonth()+1; - stats.find(month)->second.find(year)->second += 1; + stats[month][year] += 1; } } @@ -1332,3 +1285,47 @@ } return searching; } + +//TODO: Deprecated function. Replace it with getExpensesIncomeStats +void mmBankTransactionList::getExpensesIncome(const mmCoreDB* core, int accountID, double& expenses, double& income, + bool ignoreDate, const wxDateTime &dtBegin, const wxDateTime &dtEnd, bool ignoreFuture) const +{ + for (const_iterator i = transactions_.begin(); i != transactions_.end(); ++i) + { + const std::shared_ptr<mmBankTransaction> pBankTransaction = *i; + if (pBankTransaction) + { + if (accountID != -1) + { + if (pBankTransaction->accountID_ != accountID && pBankTransaction->toAccountID_ != accountID) + continue; // skip + } + if (pBankTransaction->status_ == "V") + { + continue; // skip + } + if (ignoreFuture) + { + if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now())) + continue; //skip future dated transactions + } + if (!ignoreDate) + { + if (!pBankTransaction->date_.IsBetween(dtBegin, dtEnd)) + continue; //skip + } + + // We got this far, get the currency conversion rate for this account + double convRate = core->accountList_.getAccountBaseCurrencyConvRate(pBankTransaction->accountID_); + + if (pBankTransaction->transType_ == TRANS_TYPE_DEPOSIT_STR) + income += pBankTransaction->amt_ * convRate; + else if (pBankTransaction->transType_ == TRANS_TYPE_WITHDRAWAL_STR) + expenses += pBankTransaction->amt_ * convRate; + else if (pBankTransaction->transType_ == TRANS_TYPE_TRANSFER_STR) + { + // transfers are not considered in income/expenses calculations + } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-06-05 07:11:16
|
Revision: 4033 http://sourceforge.net/p/moneymanagerex/code/4033 Author: vomikan Date: 2013-06-05 07:11:11 +0000 (Wed, 05 Jun 2013) Log Message: ----------- simplification Modified Paths: -------------- trunk/mmex/src/mmtransaction.cpp Modified: trunk/mmex/src/mmtransaction.cpp =================================================================== --- trunk/mmex/src/mmtransaction.cpp 2013-06-04 13:04:01 UTC (rev 4032) +++ trunk/mmex/src/mmtransaction.cpp 2013-06-05 07:11:11 UTC (rev 4033) @@ -859,29 +859,29 @@ void mmBankTransactionList::getTransactionStats(std::map<wxDateTime::Month, std::map<int, int> > &stats, int start_year) const { //Initialization - for (wxDateTime::Month m = wxDateTime::Jan; m != wxDateTime::Inv_Month; m = wxDateTime::Month(m + 1)) - { - std::map<int, int> month_stat; - for (int y = start_year; y <= wxDateTime::Now().GetYear(); y++) + int end_year = wxDateTime::Now().GetYear(); + for (wxDateTime::Month m = wxDateTime::Jan; m != wxDateTime::Inv_Month; m = wxDateTime::Month(m + 1)) + { + std::map<int, int> month_stat; + for (int y = start_year; y <= end_year; y++) { month_stat[y] = 0; } - stats[m] = month_stat; - } + stats[m] = month_stat; + } //Calculations - for (const auto &pBankTransaction : transactions_) + for (const auto &trxs : transactions_) { - if (pBankTransaction->date_.GetYear() < start_year) continue; - if (pBankTransaction->status_ == "V") continue; // skip + if (trxs->status_ == "V") + continue; // skip - if (pBankTransaction->date_.IsLaterThan(wxDateTime::Now() - .SetMonth(wxDateTime::Dec).GetLastMonthDay().GetDateOnly())) - continue; //skip future dated transactions + if (trxs->date_.GetYear() < start_year) + continue; + if (trxs->date_.GetYear() > end_year) + continue; //skip future dated transactions for next years - int year = pBankTransaction->date_.GetYear(); - wxDateTime::Month month = pBankTransaction->date_.GetMonth(); - stats[month][year] += 1; + stats[trxs->date_.GetMonth()][trxs->date_.GetYear()] += 1; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |