From: <vo...@us...> - 2013-02-12 17:26:24
|
Revision: 3468 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3468&view=rev Author: vomikan Date: 2013-02-12 17:26:15 +0000 (Tue, 12 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-12 13:04:06 UTC (rev 3467) +++ trunk/mmex/src/qif_import.cpp 2013-02-12 17:26:15 UTC (rev 3468) @@ -188,9 +188,8 @@ int numImported = 0; wxString dt = wxDateTime::Now().FormatISODate(); - //wxString date_format = mmDBWrapper::getInfoSettingValue(db, wxT("DATEFORMAT"), mmex::DEFDATEFORMAT); wxString date_format = mmOptions::instance().dateFormat_; - wxString payee, type, amount, categ, subcateg, transNum, notes, convDate, from_account_name; + wxString payee, type, amount, categ, subcateg, transNum, notes, convDate, to_account_name; wxDateTime dtdt = wxDateTime::Now(); int payeeID = -1, categID = -1, subCategID = -1, to_account_id = -1; double val = 0.0; @@ -236,8 +235,8 @@ int i = accountInfoType(readLine); if (i == Name) { - sMsg = wxString() << _("Line: " ) << numLines << _(" : ") - << getLineData(readLine) << _(" account name "); + sMsg = wxString::Format(_("Line: %ld"), numLines) << wxT(" : ") + << wxString::Format(_("Account name: %s"), getLineData(readLine).c_str()); log << sMsg << endl; file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); continue; @@ -288,25 +287,16 @@ break; } - wxString cat, subcat; + wxString cat, subcat, sValid; + to_account_id = -1; + bool bValid = true; - if (lineType(readLine) == Payee) + if (lineType(readLine) == Date) { - payee = getLineData(readLine); - if (payee.Trim().IsEmpty()) - { - payee = wxT("Unknown"); - } + dt = getLineData(readLine); - if (!core->payeeList_.PayeeExists(payee)) - { - log << _("Payee Added: ") << payee << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Payee Added: ") << payee << wxT("\n")); - payeeID = core->payeeList_.AddPayee(payee); - } - else - payeeID = core->payeeList_.GetPayeeId(payee); - + dtdt = mmParseDisplayStringToDate(dt, date_format); + convDate = dtdt.FormatISODate(); continue; } else if (lineType(readLine) == Amount) @@ -315,8 +305,9 @@ if (!mmex::formatCurrencyToDouble(amount, val)) { - log << _("Line: " ) << numLines << _(" invalid amount, skipping.") << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Line: " ) << numLines << _(" invalid amount, skipping.") << wxT("\n")); + sMsg = wxString::Format(_("Line: %ld invalid amount, skipping."), numLines); + log << sMsg << endl; + file_dlg.textCtrl_->AppendText(sMsg << wxT("\n")); continue; } @@ -327,18 +318,11 @@ val = fabs(val); continue; } - else if (lineType(readLine) == Address) + else if (lineType(readLine) == Payee) { + payee = getLineData(readLine); continue; } - else if (lineType(readLine) == Date) - { - dt = getLineData(readLine); - - dtdt = mmParseDisplayStringToDate(dt, date_format); - convDate = dtdt.FormatISODate(); - continue; - } else if (lineType(readLine) == TransNumber) { transNum = getLineData(readLine); @@ -352,24 +336,62 @@ else if (lineType(readLine) == Category) { categ = getLineData(readLine); + } + else if (lineType(readLine) == Address) + { + continue; + } + else if (lineType(readLine) == EOTLT) + { + wxString status = wxT("F"); + if (dt.Trim().IsEmpty()) + { + log << _("Date is empty, ") << endl; + file_dlg.textCtrl_->AppendText(wxString()<< _("Date is empty, ") << wxT("\n")); + bValid = false; + } + else if (type.Trim().IsEmpty()) + { + log << _("Transaction Type is empty") << endl; + file_dlg.textCtrl_->AppendText(wxString()<< _("Transaction Type is empty") << wxT("\n")); + bValid = false; + } + else if (amount.Trim().IsEmpty()) + { + log << _("Amount is empty") << endl; + file_dlg.textCtrl_->AppendText(wxString()<< _("Amount is empty") << wxT("\n")); + bValid = false; + } + + + to_account_id = -1; + if (categ.Left(1).Contains(wxT("[")) && categ.Right(1).Contains(wxT("]"))) { - from_account_name = categ.substr(1, categ.Length()-2); - to_account_id = -1; + to_account_name = categ.substr(1, categ.Length()-2); categ = wxT("Transfer"); - type = wxT("Transfer"); - if (accounts_name.Index(from_account_name) != wxNOT_FOUND) - to_account_id = core->accountList_.GetAccountId(from_account_name); + + if (accounts_name.Index(to_account_name) != wxNOT_FOUND) + { + to_account_id = core->accountList_.GetAccountId(to_account_name); + type = TRANS_TYPE_TRANSFER_STR; + } + else + { + sMsg = wxString::Format(_("Account %s not found\n"), to_account_name.c_str()); + log << sMsg << endl; + file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); + payee = to_account_name; + } } { wxStringTokenizer cattkz(categ, wxT(":")); + cat = cattkz.GetNextToken(); if (cattkz.HasMoreTokens()) - cat = cattkz.GetNextToken(); - if (cattkz.HasMoreTokens()) subcat = cattkz.GetNextToken(); categID = core->categoryList_.GetCategoryId(cat); @@ -388,93 +410,53 @@ } else subCategID = -1; - - continue; } - } - else if (lineType(readLine) == EOTLT) - { - wxString status = wxT("F"); - if (dt.Trim().IsEmpty()) - { - log << _("Date is empty, ") << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Date is empty, ") << wxT("\n")); - } - else if (type.Trim().IsEmpty()) - { - log << _("Transaction Type is empty") << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Transaction Type is empty") << wxT("\n")); - } - else if (amount.Trim().IsEmpty()) - { - log << _("Amount is empty") << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Amount is empty") << wxT("\n")); - } - if (to_account_id == -1) + + if (to_account_id == -1 && type == TRANS_TYPE_TRANSFER_STR) { - log << _("Account: ") << from_account_name << wxT(" ") << _("Unknown") << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Account: ") << from_account_name << wxT(" ") << _("Unknown") << wxT("\n")); + sMsg = wxString(_("Account: ")) << to_account_name << wxT(" ") << _("Unknown"); + log << sMsg << endl; + file_dlg.textCtrl_->AppendText(sMsg << wxT("\n")); //FIXME: Transfer transaction with sane to and from account id will be created to_account_id = fromAccountID; } - if (payee.Trim().IsEmpty()) + if (type != TRANS_TYPE_TRANSFER_STR) { - if (type != wxT("Transfer")) + to_account_id = -1; + if (!core->payeeList_.PayeeExists(payee)) { - payee = wxT("Unknown"); - - if (!core->payeeList_.PayeeExists(payee)) - { - payeeID = core->payeeList_.AddPayee(payee); - log << _("Payee Added: ") << payee << endl; - } - else - { - payeeID = core->payeeList_.GetPayeeId(payee); - } + sMsg = wxString::Format(_("Payee Added: %s"), payee.c_str()); + log << sMsg << endl; + file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); + payeeID = core->payeeList_.AddPayee(payee); } else - payeeID = -1; + payeeID = core->payeeList_.GetPayeeId(payee); } - - if (categ.Trim().IsEmpty()) + else { - // check if category exists for this payee. - boost::shared_ptr<mmPayee> pPayee = core->payeeList_.GetPayeeSharedPtr(payeeID); - if (pPayee->categoryId_ == -1) - { - log << _("Category is empty, marking transaction as Unknown category") << endl; - file_dlg.textCtrl_->AppendText(wxString()<< _("Category is empty, marking transaction as Unknown category") << wxT("\n")); - - categID = core->categoryList_.GetCategoryId(wxT("Unknown")); - if (categID == -1) - { - categID = core->categoryList_.AddCategory(wxT("Unknown")); - } - } + payeeID = -1; } - if(dt.Trim().IsEmpty() || type.Trim().IsEmpty() || amount.Trim().IsEmpty()) - { - sMsg = _("Skipping QIF transaction because date, type, amount is empty/invalid, transaction skipped had "); - sMsg << _(" payee ") << payee << _(" type ") << type - << _(" amount ") << amount << _(" date ") << convDate; - log << sMsg << endl; - file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); - - continue; - } - + if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); file_dlg.textCtrl_->AppendText(wxString::Format( - _("Trx: %s %s %s \n") - , wxString::Format( wxT("Acc:%s"), core->accountList_.GetAccountName(fromAccountID).c_str()) - , wxString::Format( wxT("Amt:%s"), (wxString()<<val).c_str()) - , wxString::Format( wxT("Cat:%s"), core->categoryList_.GetFullCategoryString(categID, subCategID).c_str()) + wxT("Trx:%ld %s D:%s Acc:%s Payee:%s%s Type:%s Amt:%s Cat:%s \n") + , numImported + 1 + , sValid.c_str() + , dtdt.FormatISODate().c_str() + , core->accountList_.GetAccountName(fromAccountID).c_str() + , core->accountList_.GetAccountName(to_account_id).c_str() + , core->payeeList_.GetPayeeName(payeeID).c_str() + , type.Left(1).c_str() + , (wxString()<<val).c_str() + , (core->categoryList_.GetFullCategoryString(categID, subCategID)).c_str() )); + if (!bValid) continue; + boost::shared_ptr<mmBankTransaction> pTransaction(new mmBankTransaction(core->db_)); pTransaction->accountID_ = fromAccountID; pTransaction->toAccountID_ = to_account_id; @@ -500,11 +482,11 @@ categ.clear(); notes.clear(); subCategID = -1; - transNum.clear(); categID = -1; val = 0.0; + transNum.clear(); convDate = wxDateTime::Now().FormatISODate(); - continue; + //continue; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-13 09:37:07
|
Revision: 3470 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3470&view=rev Author: vomikan Date: 2013-02-13 09:36:58 +0000 (Wed, 13 Feb 2013) Log Message: ----------- fix Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-13 07:54:38 UTC (rev 3469) +++ trunk/mmex/src/qif_import.cpp 2013-02-13 09:36:58 UTC (rev 3470) @@ -173,7 +173,8 @@ logFile.SetExt(wxT("log")); fileviewer file_dlg(wxT(""), parent_); - bool canceledbyuser = file_dlg.Show() == wxID_CANCEL; + file_dlg.Show(); + bool canceledbyuser = false; if ( !fileName.IsEmpty() ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-13 13:09:51
|
Revision: 3474 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3474&view=rev Author: vomikan Date: 2013-02-13 13:09:39 +0000 (Wed, 13 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-13 11:14:38 UTC (rev 3473) +++ trunk/mmex/src/qif_import.cpp 2013-02-13 13:09:39 UTC (rev 3474) @@ -186,6 +186,7 @@ wxString readLine; int numLines = 0; + int trxNumLines = 1; int numImported = 0; wxString dt = wxDateTime::Now().FormatISODate(); @@ -200,7 +201,6 @@ while(!input.Eof() && !canceledbyuser) { - readLine = getFileLine(text, numLines); if (readLine.Length() == 0) continue; @@ -365,7 +365,6 @@ bValid = false; } - to_account_id = -1; if (categ.Left(1).Contains(wxT("[")) && categ.Right(1).Contains(wxT("]"))) @@ -413,8 +412,7 @@ subCategID = -1; } - - + //TODO: Is it possible now? if (to_account_id == -1 && type == TRANS_TYPE_TRANSFER_STR) { sMsg = wxString(_("Account: ")) << to_account_name << wxT(" ") << _("Unknown"); @@ -422,6 +420,7 @@ file_dlg.textCtrl_->AppendText(sMsg << wxT("\n")); //FIXME: Transfer transaction with sane to and from account id will be created to_account_id = fromAccountID; + status = wxT("V"); } if (type != TRANS_TYPE_TRANSFER_STR) @@ -444,7 +443,8 @@ if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); file_dlg.textCtrl_->AppendText(wxString::Format( - wxT("Trx:%ld %s D:%s Acc:%s Payee:%s%s Type:%s Amt:%s Cat:%s \n") + wxT("Line:%ld Trx:%ld %s D:%s Acc:%s Payee:%s%s Type:%s Amt:%s Cat:%s \n") + , trxNumLines , numImported + 1 , sValid.c_str() , dtdt.FormatISODate().c_str() @@ -456,6 +456,7 @@ , (core->categoryList_.GetFullCategoryString(categID, subCategID)).c_str() )); + trxNumLines = numLines - 1; if (!bValid) continue; boost::shared_ptr<mmBankTransaction> pTransaction(new mmBankTransaction(core->db_)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-13 21:01:09
|
Revision: 3478 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3478&view=rev Author: vomikan Date: 2013-02-13 21:00:56 +0000 (Wed, 13 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-13 18:59:37 UTC (rev 3477) +++ trunk/mmex/src/qif_import.cpp 2013-02-13 21:00:56 UTC (rev 3478) @@ -144,7 +144,7 @@ if (!warning_message()) return -1; - wxString acctName, sMsg; + wxString sUserProvidedName, acctName, sMsg; wxArrayString accounts_name = core->accountList_.getAccountsName(); if (destinationAccountName == wxEmptyString) @@ -153,11 +153,12 @@ if (scd.ShowModal() != wxID_OK) return -1; - acctName = scd.GetStringSelection(); + sUserProvidedName = scd.GetStringSelection(); } else - acctName = destinationAccountName; + sUserProvidedName = destinationAccountName; + acctName = sUserProvidedName; int fromAccountID = core->accountList_.GetAccountId(acctName); wxString chooseExt; @@ -232,8 +233,15 @@ int i = accountInfoType(readLine); if (i == Name) { + if (core->accountList_.GetAccountId(getLineData(readLine)) > -1) + acctName = getLineData(readLine); + else + acctName = sUserProvidedName; + + fromAccountID = core->accountList_.GetAccountId(acctName); + sMsg = wxString::Format(_("Line: %ld"), numLines) << wxT(" : ") - << wxString::Format(_("Account name: %s"), getLineData(readLine).c_str()); + << wxString::Format(_("Account name: %s"), acctName.c_str()); log << sMsg << endl; file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); continue; @@ -438,19 +446,21 @@ } if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); - file_dlg.textCtrl_->AppendText(wxString::Format( + sMsg = wxString::Format( wxT("Line:%ld Trx:%ld %s D:%s Acc:%s Payee:%s%s Type:%s Amt:%s Cat:%s \n") , trxNumLines , numImported + 1 , sValid.c_str() , dtdt.FormatISODate().c_str() - , core->accountList_.GetAccountName(fromAccountID).c_str() + , acctName.c_str() , core->accountList_.GetAccountName(to_account_id).c_str() , core->payeeList_.GetPayeeName(payeeID).c_str() , type.Left(1).c_str() , (wxString()<<val).c_str() , (core->categoryList_.GetFullCategoryString(categID, subCategID)).c_str() - )); + ); + file_dlg.textCtrl_->AppendText(sMsg); + log << sMsg << endl; trxNumLines = numLines - 1; if (!bValid) continue; @@ -459,7 +469,7 @@ pTransaction->accountID_ = fromAccountID; pTransaction->toAccountID_ = to_account_id; pTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(payeeID); - //payee will be used for determin unique id of transfer transactions + //payee will be used for determine unique id of transfer transactions pTransaction->payeeStr_ = payee; pTransaction->transType_ = type; pTransaction->amt_ = val; @@ -470,9 +480,30 @@ pTransaction->date_ = dtdt; pTransaction->toAmt_ = val; - vQIF_trxs.push_back(pTransaction); + //For any transfer transaction always mirrored transaction present + //Just take alternate amount and skip it + if (type == TRANS_TYPE_TRANSFER_STR) + { + std::vector<boost::shared_ptr<mmBankTransaction> >& refTrans = vQIF_trxs; + for (unsigned int index = 0; index < vQIF_trxs.size(); index++) + { + if (refTrans[index]->transType_ != TRANS_TYPE_TRANSFER_STR) continue; + if (refTrans[index]->date_!= dtdt) continue; + if (refTrans[index]->payeeStr_!= payee) continue; + if (refTrans[index]->accountID_!= to_account_id) continue; + sMsg = wxString::Format(wxT("%f -> %f \n"),refTrans[index]->toAmt_ ,val); + refTrans[index]->toAmt_ = val; + bValid = false; + file_dlg.textCtrl_->AppendText(sMsg); + log << sMsg << endl; + } + } - numImported++; + if (bValid) + { + vQIF_trxs.push_back(pTransaction); + numImported++; + } payee.clear(); type.clear(); amount.clear(); @@ -520,8 +551,7 @@ } else { - core->db_.get()->Commit(); - sMsg = wxString::Format(_("Transactions saved to database in account: %s"), acctName.c_str()); + sMsg = _("Imported transactions discarded by user!"); log << endl << sMsg << endl; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-14 06:03:22
|
Revision: 3479 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3479&view=rev Author: vomikan Date: 2013-02-14 06:03:12 +0000 (Thu, 14 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-13 21:00:56 UTC (rev 3478) +++ trunk/mmex/src/qif_import.cpp 2013-02-14 06:03:12 UTC (rev 3479) @@ -540,9 +540,8 @@ fromAccountID = refTrans[index]->accountID_; boost::shared_ptr<mmCurrency> pCurrencyPtr = core->accountList_.getCurrencyWeakPtr(fromAccountID).lock(); wxASSERT(pCurrencyPtr); - //wxSafeShowMessage(refTrans[index]->payeeStr_, refTrans[index]->transType_); refTrans[index]->updateAllData(core, fromAccountID, pCurrencyPtr); - int transID = core->bTransactionList_.addTransaction(core, refTrans[index]); + core->bTransactionList_.addTransaction(core, refTrans[index]); } core->db_.get()->Commit(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-14 22:00:16
|
Revision: 3482 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3482&view=rev Author: vomikan Date: 2013-02-14 22:00:07 +0000 (Thu, 14 Feb 2013) Log Message: ----------- Split transactions support added Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-14 15:23:53 UTC (rev 3481) +++ trunk/mmex/src/qif_import.cpp 2013-02-14 22:00:07 UTC (rev 3482) @@ -189,15 +189,42 @@ wxString dt = wxDateTime::Now().FormatISODate(); wxString date_format = mmOptions::instance().dateFormat_; - wxString payee, type, amount, categ, subcateg, transNum, notes, convDate, to_account_name; + wxString sPayee, type, sAmount, transNum, notes, convDate, sToAccountName; + wxString sFullCateg, sCateg, sSubCateg, sSplitCategs, sSplitAmount, sValid; + wxDateTime dtdt = wxDateTime::Now(); int payeeID = -1, categID = -1, subCategID = -1, to_account_id = -1; - double val = 0.0; + double val = 0.0, dSplitAmount = 0.0; + bool bTrxComplited = true; std::vector< boost::shared_ptr<mmBankTransaction> > vQIF_trxs; + boost::shared_ptr<mmSplitTransactionEntries> mmSplit(new mmSplitTransactionEntries()); while(!input.Eof() && !canceledbyuser) { + //Init variables for each transaction + if (bTrxComplited) + { + sSplitAmount.clear(); + sSplitCategs.clear(); + mmSplit->entries_.clear(); + + sPayee.clear(); + type.clear(); + sAmount.clear(); + sFullCateg.clear(); + sCateg.clear(); + sSubCateg.clear(); + notes.clear(); + subCategID = -1; + categID = -1; + val = 0.0; + dSplitAmount = 0.0; + transNum.clear(); + convDate = wxDateTime::Now().FormatISODate(); + + bTrxComplited = false; + } readLine = getFileLine(text, numLines); if (readLine.Length() == 0) continue; @@ -292,7 +319,6 @@ break; } - wxString cat, subcat, sSplitCategs, sValid; to_account_id = -1; bool bValid = true; @@ -306,9 +332,9 @@ } else if (lineType(readLine) == Amount) { - amount = getLineData(readLine); + sAmount = getLineData(readLine); - if (!mmex::formatCurrencyToDouble(amount, val)) + if (!sAmount.ToDouble(&val) && !mmex::formatCurrencyToDouble(sAmount, val)) { sMsg = wxString::Format(_("Line: %ld invalid amount, skipping."), numLines); log << sMsg << endl; @@ -325,7 +351,7 @@ } else if (lineType(readLine) == Payee) { - payee = getLineData(readLine); + sPayee = getLineData(readLine); continue; } else if (lineType(readLine) == TransNumber) @@ -340,17 +366,30 @@ } else if (lineType(readLine) == Category) { - categ = getLineData(readLine); + sFullCateg = getLineData(readLine); continue; } else if (lineType(readLine) == CategorySplit) //'S' { - sSplitCategs = getFileLine(text, numLines); + sSplitCategs = getLineData(readLine); continue; } else if (lineType(readLine) == AmountSplit) //'$' { - sSplitCategs = getFileLine(text, numLines); + sSplitAmount = getLineData(readLine); + //Parse split category + core->categoryList_.parseCategoryString(sSplitCategs, sCateg, categID, sSubCateg, subCategID); + //get amount + if (!sSplitAmount.ToDouble(&dSplitAmount) && !mmex::formatCurrencyToDouble(sSplitAmount, dSplitAmount)) + dSplitAmount = 0; //wrong amount //TODO: write it to log + //Add split entry + boost::shared_ptr<mmSplitTransactionEntry> pSplitEntry(new mmSplitTransactionEntry); + pSplitEntry->splitAmount_ = dSplitAmount; + pSplitEntry->categID_ = categID; + pSplitEntry->subCategID_ = subCategID; + pSplitEntry->category_ = core->categoryList_.GetCategorySharedPtr(categID, subCategID); + wxASSERT(pSplitEntry->category_.lock()); + mmSplit->addSplit(pSplitEntry); continue; } //MemoSplit @@ -374,7 +413,7 @@ file_dlg.textCtrl_->AppendText(wxString()<< _("Transaction Type is empty") << wxT("\n")); bValid = false; } - else if (amount.Trim().IsEmpty()) + else if (sAmount.Trim().IsEmpty()) { log << _("Amount is empty") << endl; file_dlg.textCtrl_->AppendText(wxString()<< _("Amount is empty") << wxT("\n")); @@ -383,37 +422,37 @@ to_account_id = -1; - if (categ.Left(1).Contains(wxT("[")) && categ.Right(1).Contains(wxT("]"))) + if (sFullCateg.Left(1).Contains(wxT("[")) && sFullCateg.Right(1).Contains(wxT("]"))) { - to_account_name = categ.substr(1, categ.Length()-2); + sToAccountName = sFullCateg.substr(1, sFullCateg.Length()-2); - categ = wxT("Transfer"); + sFullCateg = wxT("Transfer"); - if (accounts_name.Index(to_account_name) != wxNOT_FOUND) + if (accounts_name.Index(sToAccountName) != wxNOT_FOUND) { - to_account_id = core->accountList_.GetAccountId(to_account_name); + to_account_id = core->accountList_.GetAccountId(sToAccountName); type = TRANS_TYPE_TRANSFER_STR; } else { - sMsg = wxString::Format(_("Account %s not found"), to_account_name.c_str()); + sMsg = wxString::Format(_("Account %s not found"), sToAccountName.c_str()); log << sMsg << endl; file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); - payee = to_account_name; + sPayee = sToAccountName; } } - wxString cat, subcat; - core->categoryList_.parseCategoryString(categ, cat, categID, subcat, subCategID); + //wxString cat, subcat; + core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); if (categID == -1) - categID = core->categoryList_.AddCategory(cat); + categID = core->categoryList_.AddCategory(sCateg); if (subCategID == -1 && categID != -1) - subCategID = core->categoryList_.AddSubCategory(categID, subcat); + subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); //TODO: Is it possible now? if (to_account_id == -1 && type == TRANS_TYPE_TRANSFER_STR) { - sMsg = wxString(_("Account: ")) << to_account_name << wxT(" ") << _("Unknown"); + sMsg = wxString::Format(_("Unknown account: %s"), sToAccountName.c_str()); log << sMsg << endl; file_dlg.textCtrl_->AppendText(sMsg << wxT("\n")); //FIXME: Transfer transaction with sane to and from account id will be created @@ -424,15 +463,15 @@ if (type != TRANS_TYPE_TRANSFER_STR) { to_account_id = -1; - if (!core->payeeList_.PayeeExists(payee)) + if (!core->payeeList_.PayeeExists(sPayee)) { - sMsg = wxString::Format(_("Payee Added: %s"), payee.c_str()); + sMsg = wxString::Format(_("Payee Added: %s"), sPayee.c_str()); log << sMsg << endl; file_dlg.textCtrl_->AppendText(wxString()<< sMsg << wxT("\n")); - payeeID = core->payeeList_.AddPayee(payee); + payeeID = core->payeeList_.AddPayee(sPayee); } else - payeeID = core->payeeList_.GetPayeeId(payee); + payeeID = core->payeeList_.GetPayeeId(sPayee); } else { @@ -456,23 +495,36 @@ file_dlg.textCtrl_->AppendText(sMsg); log << sMsg << endl; + //Debug code + /*for (size_t i = 0; i < mmSplit->entries_.size(); ++i) + { + int c = mmSplit->entries_[i]->categID_; + int s = mmSplit->entries_[i]->subCategID_; + wxString cn = core->categoryList_.GetCategoryName(c); + wxString sn = core->categoryList_.GetSubCategoryName(c, s); + double v = mmSplit->entries_[i]->splitAmount_; + wxSafeShowMessage(cn + wxT(":") + sn , wxString()<< v); + }*/ + trxNumLines = numLines - 1; if (!bValid) continue; boost::shared_ptr<mmBankTransaction> pTransaction(new mmBankTransaction(core->db_)); + pTransaction->date_ = dtdt; pTransaction->accountID_ = fromAccountID; pTransaction->toAccountID_ = to_account_id; pTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(payeeID); //payee will be used for determine unique id of transfer transactions - pTransaction->payeeStr_ = payee; + pTransaction->payeeStr_ = sPayee; pTransaction->transType_ = type; pTransaction->amt_ = val; pTransaction->status_ = status; pTransaction->transNum_ = transNum; pTransaction->notes_ = notes; + pTransaction->toAmt_ = val; + if (mmSplit->numEntries()) categID = -1; pTransaction->category_ = core->categoryList_.GetCategorySharedPtr(categID, subCategID); - pTransaction->date_ = dtdt; - pTransaction->toAmt_ = val; + *pTransaction->splitEntries_ = *mmSplit; //For any transfer transaction always mirrored transaction present //Just take alternate amount and skip it @@ -483,8 +535,9 @@ { if (refTrans[index]->transType_ != TRANS_TYPE_TRANSFER_STR) continue; if (refTrans[index]->date_!= dtdt) continue; - if (refTrans[index]->payeeStr_!= payee) continue; + if (refTrans[index]->payeeStr_!= sPayee) continue; if (refTrans[index]->accountID_!= to_account_id) continue; + if (refTrans[index]->transNum_ != transNum) continue; sMsg = wxString::Format(wxT("%f -> %f \n"),refTrans[index]->toAmt_ ,val); refTrans[index]->toAmt_ = val; bValid = false; @@ -498,16 +551,7 @@ vQIF_trxs.push_back(pTransaction); numImported++; } - payee.clear(); - type.clear(); - amount.clear(); - categ.clear(); - notes.clear(); - subCategID = -1; - categID = -1; - val = 0.0; - transNum.clear(); - convDate = wxDateTime::Now().FormatISODate(); + bTrxComplited = true; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-16 20:29:52
|
Revision: 3494 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3494&view=rev Author: vomikan Date: 2013-02-16 20:29:43 +0000 (Sat, 16 Feb 2013) Log Message: ----------- Fixed transfer from Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-16 17:59:13 UTC (rev 3493) +++ trunk/mmex/src/qif_import.cpp 2013-02-16 20:29:43 UTC (rev 3494) @@ -194,7 +194,7 @@ wxString sFullCateg, sCateg, sSubCateg, sSplitCategs, sSplitAmount, sValid; wxDateTime dtdt = wxDateTime::Now(); - int payeeID = -1, categID = -1, subCategID = -1, to_account_id = -1; + int payeeID = -1, categID = -1, subCategID = -1, to_account_id = -1, from_account_id = -1; double val = 0.0, dSplitAmount = 0.0; bool bTrxComplited = true; @@ -207,7 +207,7 @@ if (bTrxComplited) { sSplitAmount.clear(); - sSplitCategs.clear(); + sSplitCategs.clear(); mmSplit->entries_.clear(); sPayee.clear(); @@ -323,6 +323,7 @@ } to_account_id = -1; + from_account_id = fromAccountID; bool bValid = true; if (lineType(readLine) == Date) // 'D' @@ -336,6 +337,10 @@ else if (lineType(readLine) == Amount) // 'T' { sAmount = getLineData(readLine); + // Until the value has been received, we don't know transaction type + // At the same time we don't know it transfer or no + // Therefore the type of transaction defined as withdrawal + type = TRANS_TYPE_WITHDRAWAL_STR; if (!sAmount.ToDouble(&val) && !mmex::formatCurrencyToDouble(sAmount, val)) { @@ -344,12 +349,6 @@ logWindow->AppendText(sMsg << wxT("\n")); continue; } - - if (val <= 0.0) - type = TRANS_TYPE_WITHDRAWAL_STR; - else - type = TRANS_TYPE_DEPOSIT_STR; - val = fabs(val); continue; } else if (lineType(readLine) == Payee) // 'P' @@ -414,14 +413,14 @@ else if (type.Trim().IsEmpty()) { sMsg = _("Transaction Type is missing"); - log << sMsg << endl; + log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); bValid = false; } else if (sAmount.Trim().IsEmpty()) { sMsg = _("Amount is missing"); - log << sMsg << endl; + log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); bValid = false; } @@ -437,6 +436,12 @@ if (accounts_name.Index(sToAccountName) != wxNOT_FOUND) { to_account_id = core->accountList_.GetAccountId(sToAccountName); + if (val > 0.0) + { + from_account_id = to_account_id; + to_account_id = fromAccountID; + } + type = TRANS_TYPE_TRANSFER_STR; } else @@ -447,7 +452,10 @@ sPayee = sToAccountName; } } - //wxString cat, subcat; + + if (val > 0.0 && type != TRANS_TYPE_TRANSFER_STR) + type = TRANS_TYPE_DEPOSIT_STR; + core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); if (categID == -1) @@ -466,8 +474,12 @@ status = wxT("V"); } - if (type != TRANS_TYPE_TRANSFER_STR) + if (type == TRANS_TYPE_TRANSFER_STR) { + payeeID = -1; + } + else + { to_account_id = -1; if (!core->payeeList_.PayeeExists(sPayee)) { @@ -479,10 +491,6 @@ else payeeID = core->payeeList_.GetPayeeId(sPayee); } - else - { - payeeID = -1; - } if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); sMsg = wxString::Format( @@ -491,7 +499,7 @@ , numImported + 1 , sValid.c_str() , dtdt.FormatISODate().c_str() - , acctName.c_str() + , core->accountList_.GetAccountName(from_account_id).c_str() , core->accountList_.GetAccountName(to_account_id).c_str() , core->payeeList_.GetPayeeName(payeeID).c_str() , type.Left(1).c_str() @@ -517,17 +525,17 @@ boost::shared_ptr<mmBankTransaction> pTransaction(new mmBankTransaction(core->db_)); pTransaction->date_ = dtdt; - pTransaction->accountID_ = fromAccountID; + pTransaction->accountID_ = from_account_id; pTransaction->toAccountID_ = to_account_id; pTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(payeeID); //payee will be used for determine unique id of transfer transactions pTransaction->payeeStr_ = sPayee; pTransaction->transType_ = type; - pTransaction->amt_ = val; + pTransaction->amt_ = fabs(val); pTransaction->status_ = status; pTransaction->transNum_ = transNum; pTransaction->notes_ = notes; - pTransaction->toAmt_ = val; + pTransaction->toAmt_ = fabs(val); if (mmSplit->numEntries()) categID = -1; pTransaction->category_ = core->categoryList_.GetCategorySharedPtr(categID, subCategID); *pTransaction->splitEntries_ = *mmSplit; @@ -541,11 +549,14 @@ { if (refTrans[index]->transType_ != TRANS_TYPE_TRANSFER_STR) continue; if (refTrans[index]->date_!= dtdt) continue; - if (refTrans[index]->payeeStr_!= sPayee) continue; - if (refTrans[index]->accountID_!= to_account_id) continue; + if (refTrans[index]->accountID_!= from_account_id) continue; if (refTrans[index]->transNum_ != transNum) continue; sMsg = wxString::Format(wxT("%f -> %f \n"),refTrans[index]->toAmt_ ,val); - refTrans[index]->toAmt_ = val; + if (val > 0.0) + refTrans[index]->toAmt_ = fabs(val); + else + refTrans[index]->amt_ = fabs(val); + bValid = false; logWindow->AppendText(sMsg); log << sMsg << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-17 09:50:46
|
Revision: 3500 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3500&view=rev Author: vomikan Date: 2013-02-17 09:50:38 +0000 (Sun, 17 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-17 08:16:10 UTC (rev 3499) +++ trunk/mmex/src/qif_import.cpp 2013-02-17 09:50:38 UTC (rev 3500) @@ -212,16 +212,16 @@ sPayee.clear(); type.clear(); - sAmount.clear(); sFullCateg.clear(); sCateg.clear(); sSubCateg.clear(); - notes.clear(); subCategID = -1; categID = -1; + sAmount.clear(); val = 0.0; dSplitAmount = 0.0; - transNum.clear(); + transNum = wxT(""); + notes = wxT(""); convDate = wxDateTime::Now().FormatISODate(); bTrxComplited = false; @@ -551,6 +551,7 @@ if (refTrans[index]->date_!= dtdt) continue; if (refTrans[index]->accountID_!= from_account_id) continue; if (refTrans[index]->transNum_ != transNum) continue; + if (refTrans[index]->notes_ != notes) continue; sMsg = wxString::Format(wxT("%f -> %f \n"),refTrans[index]->toAmt_ ,val); if (val > 0.0) refTrans[index]->toAmt_ = fabs(val); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-17 16:23:02
|
Revision: 3503 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3503&view=rev Author: vomikan Date: 2013-02-17 16:22:55 +0000 (Sun, 17 Feb 2013) Log Message: ----------- fix for date comparison Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-17 13:34:16 UTC (rev 3502) +++ trunk/mmex/src/qif_import.cpp 2013-02-17 16:22:55 UTC (rev 3503) @@ -178,7 +178,7 @@ wxString sPayee, type, sAmount, transNum, notes, convDate, sToAccountName; wxString sFullCateg, sCateg, sSubCateg, sSplitCategs, sSplitAmount, sValid; - wxDateTime dtdt = wxDateTime::Now(); + wxDateTime dtdt = wxDateTime::Now().GetDateOnly(); int payeeID = -1, categID = -1, subCategID = -1, to_account_id = -1, from_account_id = -1; double val = 0.0, dSplitAmount = 0.0; bool bTrxComplited = true; @@ -335,7 +335,7 @@ { dt = getLineData(readLine); - dtdt = mmParseDisplayStringToDate(dt, date_format); + dtdt = mmParseDisplayStringToDate(dt, date_format).GetDateOnly(); convDate = dtdt.FormatISODate(); continue; } @@ -512,7 +512,7 @@ , trxNumLines , numImported + 1 , sValid.c_str() - , dtdt.FormatISODate().c_str() + , convDate.c_str() , core->accountList_.GetAccountName(from_account_id).c_str() , core->accountList_.GetAccountName(to_account_id).c_str() , core->payeeList_.GetPayeeName(payeeID).c_str() @@ -544,11 +544,11 @@ pTransaction->payee_ = core->payeeList_.GetPayeeSharedPtr(payeeID); pTransaction->payeeStr_ = sPayee; pTransaction->transType_ = type; - pTransaction->amt_ = fabs(val); + pTransaction->amt_ = val; pTransaction->status_ = status; pTransaction->transNum_ = transNum; pTransaction->notes_ = notes; - pTransaction->toAmt_ = fabs(val); + pTransaction->toAmt_ = val; if (mmSplit->numEntries()) categID = -1; pTransaction->category_ = core->categoryList_.GetCategorySharedPtr(categID, subCategID); *pTransaction->splitEntries_ = *mmSplit; @@ -562,14 +562,16 @@ { if (refTrans[index]->transType_ != TRANS_TYPE_TRANSFER_STR) continue; if (refTrans[index]->date_!= dtdt) continue; + if (refTrans[index]->amt_ < 0 && val < 0 || refTrans[index]->amt_ > 0 && val >0 ) continue; if (refTrans[index]->accountID_!= from_account_id) continue; if (refTrans[index]->transNum_ != transNum) continue; if (refTrans[index]->notes_ != notes) continue; + sMsg = wxString::Format(wxT("%f -> %f \n"),refTrans[index]->toAmt_ ,val); if (val > 0.0) - refTrans[index]->toAmt_ = fabs(val); + refTrans[index]->toAmt_ = val; else - refTrans[index]->amt_ = fabs(val); + refTrans[index]->amt_ = val; bValid = false; logWindow->AppendText(sMsg); @@ -607,9 +609,11 @@ for (unsigned int index = 0; index < vQIF_trxs.size(); index++) { - fromAccountID = refTrans[index]->accountID_; + //fromAccountID = refTrans[index]->accountID_; boost::shared_ptr<mmCurrency> pCurrencyPtr = core->accountList_.getCurrencyWeakPtr(fromAccountID).lock(); wxASSERT(pCurrencyPtr); + refTrans[index]->amt_ = fabs(refTrans[index]->amt_); + refTrans[index]->toAmt_ = fabs(refTrans[index]->toAmt_); refTrans[index]->updateAllData(core, fromAccountID, pCurrencyPtr); core->bTransactionList_.addTransaction(core, refTrans[index]); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-17 17:04:31
|
Revision: 3504 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3504&view=rev Author: vomikan Date: 2013-02-17 17:04:23 +0000 (Sun, 17 Feb 2013) Log Message: ----------- update for Financisto Projects support Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-17 16:22:55 UTC (rev 3503) +++ trunk/mmex/src/qif_import.cpp 2013-02-17 17:04:23 UTC (rev 3504) @@ -124,6 +124,18 @@ return textLine; } +wxString getFinancistoProject(wxString& sSubCateg) +{ + //Additional parsint for Financisto + wxString sProject = wxT(""); + wxStringTokenizer cattkz(sSubCateg, wxT("/")); + + sSubCateg = cattkz.GetNextToken(); + if (cattkz.HasMoreTokens()) + sProject = cattkz.GetNextToken(); + return sProject; +} + bool warning_message() { wxString msgStr; @@ -386,6 +398,7 @@ sSplitAmount = getLineData(readLine); //Parse split category core->categoryList_.parseCategoryString(sSplitCategs, sCateg, categID, sSubCateg, subCategID); + //get amount if (!sSplitAmount.ToDouble(&dSplitAmount) && !mmex::formatCurrencyToDouble(sSplitAmount, dSplitAmount)) dSplitAmount = 0; //wrong amount //TODO: write it to log @@ -471,6 +484,8 @@ type = TRANS_TYPE_DEPOSIT_STR; core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); + if (sSubCateg.Contains(wxT("/"))) + transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sSubCateg).c_str())); if (categID == -1) categID = core->categoryList_.AddCategory(sCateg); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-18 06:03:50
|
Revision: 3505 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3505&view=rev Author: vomikan Date: 2013-02-18 06:03:43 +0000 (Mon, 18 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-17 17:04:23 UTC (rev 3504) +++ trunk/mmex/src/qif_import.cpp 2013-02-18 06:03:43 UTC (rev 3505) @@ -415,6 +415,7 @@ //MemoSplit else if (lineType(readLine) == Address) // 'A' { + notes << getLineData(readLine) << wxT("\n"); continue; } else if (lineType(readLine) == EOTLT) // ^ @@ -484,6 +485,11 @@ type = TRANS_TYPE_DEPOSIT_STR; core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); + /* //Trick for cut non standart qif category usage in Financisto application + //Category field may contains additional information like Project + //Format Category[:Subcategory][/Project] //*/ + if (sCateg.Contains(wxT("/"))) + transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sCateg).c_str())); if (sSubCateg.Contains(wxT("/"))) transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sSubCateg).c_str())); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-18 06:46:04
|
Revision: 3506 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3506&view=rev Author: vomikan Date: 2013-02-18 06:45:56 +0000 (Mon, 18 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-18 06:03:43 UTC (rev 3505) +++ trunk/mmex/src/qif_import.cpp 2013-02-18 06:45:56 UTC (rev 3506) @@ -529,15 +529,15 @@ if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); sMsg = wxString::Format( - wxT("Line:%ld Trx:%ld %s D:%s Acc:%s Payee:%s%s Type:%s Amt:%s Cat:%s \n") + wxT("Line:%ld Trx:%ld %s D:%s Acc:'%s' %s P:'%s%s' Amt:%s C:'%s' \n") , trxNumLines , numImported + 1 , sValid.c_str() , convDate.c_str() , core->accountList_.GetAccountName(from_account_id).c_str() + , wxString((type == TRANS_TYPE_TRANSFER_STR ? wxT("<->") : wxT(""))).c_str() , core->accountList_.GetAccountName(to_account_id).c_str() , core->payeeList_.GetPayeeName(payeeID).c_str() - , type.Left(1).c_str() , (wxString()<<val).c_str() , (core->categoryList_.GetFullCategoryString(categID, subCategID)).c_str() ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-18 11:38:16
|
Revision: 3509 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3509&view=rev Author: vomikan Date: 2013-02-18 11:38:07 +0000 (Mon, 18 Feb 2013) Log Message: ----------- fix for category parser Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-18 11:00:43 UTC (rev 3508) +++ trunk/mmex/src/qif_import.cpp 2013-02-18 11:38:07 UTC (rev 3509) @@ -484,14 +484,12 @@ if (val > 0.0 && type != TRANS_TYPE_TRANSFER_STR) type = TRANS_TYPE_DEPOSIT_STR; - core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); /* //Trick for cut non standart qif category usage in Financisto application //Category field may contains additional information like Project //Format Category[:Subcategory][/Project] //*/ - if (sCateg.Contains(wxT("/"))) - transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sCateg).c_str())); - if (sSubCateg.Contains(wxT("/"))) - transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sSubCateg).c_str())); + if (sFullCateg.Contains(wxT("/"))) + transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sFullCateg).c_str())); + core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); if (categID == -1) categID = core->categoryList_.AddCategory(sCateg); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-19 18:13:22
|
Revision: 3515 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3515&view=rev Author: vomikan Date: 2013-02-19 18:13:12 +0000 (Tue, 19 Feb 2013) Log Message: ----------- fix for category skip module Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-19 07:58:41 UTC (rev 3514) +++ trunk/mmex/src/qif_import.cpp 2013-02-19 18:13:12 UTC (rev 3515) @@ -224,6 +224,7 @@ bTrxComplited = false; } readLine = getFileLine(text, numLines); + if (readLine.Length() == 0) continue; @@ -249,8 +250,22 @@ continue; } - if (accountType == wxT("Account")) + if ( accountType == wxT("Type:Cat") ) { + bool reading = true; + while(!input.Eof() && reading ) + { + readLine = getFileLine(text, numLines); + if (lineType(readLine) == AcctType || input.Eof()) + { + reading = false; + accountType = getLineData(readLine); + } + } + } + + if ( accountType == wxT("Account")) + { // account information // Need to read till we get to end of account information while( (readLine = getFileLine(text, numLines) ) != wxT("^")) @@ -313,18 +328,6 @@ { continue; } - else if ( accountType == wxT("Type:Cat") ) - { - bool reading = true; - while(!input.Eof() && reading ) - { - readLine = getFileLine(text, numLines); - if (readLine.Contains(wxT("!Type:")) || input.Eof()) - reading = false; - } - continue; - } - // we do not know how to process this type yet wxString errMsgStr = _("Cannot process these QIF Account Types yet."); wxString errLineMsgStr = wxString::Format(_("Line: %ld"), numLines) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-19 19:07:36
|
Revision: 3516 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3516&view=rev Author: vomikan Date: 2013-02-19 19:07:24 +0000 (Tue, 19 Feb 2013) Log Message: ----------- validators added for missing payee and to account Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-19 18:13:12 UTC (rev 3515) +++ trunk/mmex/src/qif_import.cpp 2013-02-19 19:07:24 UTC (rev 3516) @@ -499,26 +499,29 @@ if (subCategID == -1 && categID != -1) subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); - //TODO: Is it possible now? - if (to_account_id == -1 && type == TRANS_TYPE_TRANSFER_STR) - { - sMsg = wxString::Format(_("Unknown account: %s"), sToAccountName.c_str()); - log << sMsg << endl; - logWindow->AppendText(sMsg << wxT("\n")); - //FIXME: Transfer transaction with sane to and from account id will be created - to_account_id = fromAccountID; - status = wxT("V"); - } - if (type == TRANS_TYPE_TRANSFER_STR) { - payeeID = -1; + payeeID = -1; + if (to_account_id == -1) + { + sMsg = _("To account missing"); + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); + bValid = false; + } } else { to_account_id = -1; - if (!core->payeeList_.PayeeExists(sPayee)) + if (sPayee.IsEmpty()) { + sMsg = _("Payee missing"); + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); + bValid = false; + } + else if (!core->payeeList_.PayeeExists(sPayee)) + { sMsg = wxString::Format(_("Payee Added: %s"), sPayee.c_str()); log << sMsg << endl; logWindow->AppendText(wxString()<< sMsg << wxT("\n")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-20 14:49:39
|
Revision: 3517 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3517&view=rev Author: vomikan Date: 2013-02-20 14:49:20 +0000 (Wed, 20 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-19 19:07:24 UTC (rev 3516) +++ trunk/mmex/src/qif_import.cpp 2013-02-20 14:49:20 UTC (rev 3517) @@ -182,7 +182,7 @@ wxString readLine; int numLines = 0; - int trxNumLines = 1; + int trxNumLine = 1; int numImported = 0; wxString dt = wxDateTime::Now().FormatISODate(); @@ -222,6 +222,7 @@ convDate = wxDateTime::Now().FormatISODate(); bTrxComplited = false; + trxNumLine = numLines - 1; } readLine = getFileLine(text, numLines); @@ -271,6 +272,7 @@ while( (readLine = getFileLine(text, numLines) ) != wxT("^")) { numLines++; + bTrxComplited = true; int i = accountInfoType(readLine); if (i == Name) { @@ -502,9 +504,9 @@ if (type == TRANS_TYPE_TRANSFER_STR) { payeeID = -1; - if (to_account_id == -1) + if (to_account_id == -1 || from_account_id == -1) { - sMsg = _("To account missing"); + sMsg = _("Account missing"); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); bValid = false; @@ -522,10 +524,10 @@ } else if (!core->payeeList_.PayeeExists(sPayee)) { + payeeID = core->payeeList_.AddPayee(sPayee); sMsg = wxString::Format(_("Payee Added: %s"), sPayee.c_str()); log << sMsg << endl; logWindow->AppendText(wxString()<< sMsg << wxT("\n")); - payeeID = core->payeeList_.AddPayee(sPayee); } else payeeID = core->payeeList_.GetPayeeId(sPayee); @@ -534,7 +536,7 @@ if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); sMsg = wxString::Format( wxT("Line:%ld Trx:%ld %s D:%s Acc:'%s' %s P:'%s%s' Amt:%s C:'%s' \n") - , trxNumLines + , trxNumLine , numImported + 1 , sValid.c_str() , convDate.c_str() @@ -558,8 +560,7 @@ double v = mmSplit->entries_[i]->splitAmount_; wxSafeShowMessage(cn + wxT(":") + sn , wxString()<< v); }*/ - - trxNumLines = numLines - 1; + bTrxComplited = true; if (!bValid) continue; boost::shared_ptr<mmBankTransaction> pTransaction(new mmBankTransaction(core->db_)); @@ -610,7 +611,6 @@ vQIF_trxs.push_back(pTransaction); numImported++; } - bTrxComplited = true; } } @@ -660,3 +660,4 @@ return fromAccountID; } + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-22 10:05:15
|
Revision: 3521 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3521&view=rev Author: vomikan Date: 2013-02-22 10:05:08 +0000 (Fri, 22 Feb 2013) Log Message: ----------- fixes for split entries Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-21 10:29:06 UTC (rev 3520) +++ trunk/mmex/src/qif_import.cpp 2013-02-22 10:05:08 UTC (rev 3521) @@ -388,25 +388,40 @@ notes << getLineData(readLine) << wxT("\n"); continue; } - else if (lineType(readLine) == Category) // 'L' + else if (lineType(readLine) == Category || lineType(readLine) == CategorySplit) // 'S' // 'L' { sFullCateg = getLineData(readLine); + + /* //Trick for cut non standart qif category usage in Financisto application + //Category field may contains additional information like Project + //Format Category[:Subcategory][/Project] //*/ + if (sFullCateg.Contains(wxT("/"))) + transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sFullCateg).c_str())); + core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); + + if (categID == -1) + categID = core->categoryList_.AddCategory(sCateg); + if (subCategID == -1 && categID != -1) + subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); + continue; } - else if (lineType(readLine) == CategorySplit) // 'S' - { - sSplitCategs = getLineData(readLine); - continue; - } else if (lineType(readLine) == AmountSplit) // '$' { sSplitAmount = getLineData(readLine); - //Parse split category - core->categoryList_.parseCategoryString(sSplitCategs, sCateg, categID, sSubCateg, subCategID); //get amount if (!sSplitAmount.ToDouble(&dSplitAmount) && !mmex::formatCurrencyToDouble(sSplitAmount, dSplitAmount)) - dSplitAmount = 0; //wrong amount //TODO: write it to log + dSplitAmount = 0; //wrong amount + // + if (type == TRANS_TYPE_WITHDRAWAL_STR) + dSplitAmount = -dSplitAmount; + //Log + sMsg = wxString(_("Split")) << wxT(" ") + << core->categoryList_.GetFullCategoryString(categID, subCategID) + << wxT(" ") << dSplitAmount; + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); //Add split entry boost::shared_ptr<mmSplitTransactionEntry> pSplitEntry(new mmSplitTransactionEntry); pSplitEntry->splitAmount_ = dSplitAmount; @@ -489,18 +504,8 @@ if (val > 0.0 && type != TRANS_TYPE_TRANSFER_STR) type = TRANS_TYPE_DEPOSIT_STR; - /* //Trick for cut non standart qif category usage in Financisto application - //Category field may contains additional information like Project - //Format Category[:Subcategory][/Project] //*/ - if (sFullCateg.Contains(wxT("/"))) - transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sFullCateg).c_str())); - core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); + if (mmSplit->numEntries() > 0) categID = -1; - if (categID == -1) - categID = core->categoryList_.AddCategory(sCateg); - if (subCategID == -1 && categID != -1) - subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); - if (type == TRANS_TYPE_TRANSFER_STR) { payeeID = -1; @@ -520,9 +525,9 @@ sMsg = _("Payee missing"); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); - bValid = false; + sPayee = _("Unknown"); } - else if (!core->payeeList_.PayeeExists(sPayee)) + if (!core->payeeList_.PayeeExists(sPayee)) { payeeID = core->payeeList_.AddPayee(sPayee); sMsg = wxString::Format(_("Payee Added: %s"), sPayee.c_str()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-22 14:54:18
|
Revision: 3522 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3522&view=rev Author: vomikan Date: 2013-02-22 14:54:06 +0000 (Fri, 22 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-22 10:05:08 UTC (rev 3521) +++ trunk/mmex/src/qif_import.cpp 2013-02-22 14:54:06 UTC (rev 3522) @@ -399,10 +399,20 @@ transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sFullCateg).c_str())); core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); - if (categID == -1) + if (categID == -1 && !sCateg.IsEmpty()) + { categID = core->categoryList_.AddCategory(sCateg); - if (subCategID == -1 && categID != -1) + sMsg = wxString::Format(_("Added category %s"), sCateg); + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); + } + if (subCategID == -1 && categID != -1 && !sSubCateg.IsEmpty()) + { subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); + sMsg = wxString::Format(_("Added subcategory %s"), sSubCateg); + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); + } continue; } @@ -416,12 +426,6 @@ // if (type == TRANS_TYPE_WITHDRAWAL_STR) dSplitAmount = -dSplitAmount; - //Log - sMsg = wxString(_("Split")) << wxT(" ") - << core->categoryList_.GetFullCategoryString(categID, subCategID) - << wxT(" ") << dSplitAmount; - log << sMsg << endl; - logWindow->AppendText(sMsg << wxT("\n")); //Add split entry boost::shared_ptr<mmSplitTransactionEntry> pSplitEntry(new mmSplitTransactionEntry); pSplitEntry->splitAmount_ = dSplitAmount; @@ -504,8 +508,6 @@ if (val > 0.0 && type != TRANS_TYPE_TRANSFER_STR) type = TRANS_TYPE_DEPOSIT_STR; - if (mmSplit->numEntries() > 0) categID = -1; - if (type == TRANS_TYPE_TRANSFER_STR) { payeeID = -1; @@ -537,6 +539,15 @@ else payeeID = core->payeeList_.GetPayeeId(sPayee); } + if (mmSplit->entries_.size() > 0) + { + categID = -1; + sFullCateg = _("Split Category"); + } + else + { + sFullCateg = core->categoryList_.GetFullCategoryString(categID, subCategID); + } if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); sMsg = wxString::Format( @@ -550,21 +561,22 @@ , core->accountList_.GetAccountName(to_account_id).c_str() , core->payeeList_.GetPayeeName(payeeID).c_str() , (wxString()<<val).c_str() - , (core->categoryList_.GetFullCategoryString(categID, subCategID)).c_str() + , sFullCateg.c_str() ); logWindow->AppendText(sMsg); log << sMsg << endl; - //Debug code - /*for (size_t i = 0; i < mmSplit->entries_.size(); ++i) + for (size_t i = 0; i < mmSplit->entries_.size(); ++i) { int c = mmSplit->entries_[i]->categID_; int s = mmSplit->entries_[i]->subCategID_; wxString cn = core->categoryList_.GetCategoryName(c); wxString sn = core->categoryList_.GetSubCategoryName(c, s); double v = mmSplit->entries_[i]->splitAmount_; - wxSafeShowMessage(cn + wxT(":") + sn , wxString()<< v); - }*/ + sMsg = (cn << wxT(":") << sn << wxT(" ") << v << wxT("\n")); + logWindow->AppendText(sMsg); + log << sMsg << endl; + } bTrxComplited = true; if (!bValid) continue; @@ -619,7 +631,7 @@ } } - sMsg = wxString::Format(_("Transactions imported from QIF: %ld"), numImported+1); + sMsg = wxString::Format(_("Transactions imported from QIF: %ld"), numImported); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-23 17:11:58
|
Revision: 3523 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3523&view=rev Author: vomikan Date: 2013-02-23 17:11:49 +0000 (Sat, 23 Feb 2013) Log Message: ----------- fux Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-22 14:54:06 UTC (rev 3522) +++ trunk/mmex/src/qif_import.cpp 2013-02-23 17:11:49 UTC (rev 3523) @@ -402,14 +402,14 @@ if (categID == -1 && !sCateg.IsEmpty()) { categID = core->categoryList_.AddCategory(sCateg); - sMsg = wxString::Format(_("Added category %s"), sCateg); + sMsg = wxString::Format(_("Added category %s"), sCateg.c_str()); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); } if (subCategID == -1 && categID != -1 && !sSubCateg.IsEmpty()) { subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); - sMsg = wxString::Format(_("Added subcategory %s"), sSubCateg); + sMsg = wxString::Format(_("Added subcategory %s"), sSubCateg.c_str()); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-24 08:01:52
|
Revision: 3525 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3525&view=rev Author: vomikan Date: 2013-02-24 08:01:45 +0000 (Sun, 24 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-23 17:15:49 UTC (rev 3524) +++ trunk/mmex/src/qif_import.cpp 2013-02-24 08:01:45 UTC (rev 3525) @@ -223,6 +223,9 @@ bTrxComplited = false; trxNumLine = numLines - 1; + sMsg = wxT("---------------------------------------------------------------------------------------------------------------------------------------------------\n"); + logWindow->AppendText(sMsg); + log << sMsg << endl; } readLine = getFileLine(text, numLines); @@ -248,6 +251,7 @@ sMsg = wxString::Format(_("Importing account type: %s"), accountType.c_str()); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); + bTrxComplited = true; continue; } @@ -272,7 +276,7 @@ while( (readLine = getFileLine(text, numLines) ) != wxT("^")) { numLines++; - bTrxComplited = true; + int i = accountInfoType(readLine); if (i == Name) { @@ -392,24 +396,31 @@ { sFullCateg = getLineData(readLine); + if (sFullCateg.Left(1).Contains(wxT("[")) && sFullCateg.Right(1).Contains(wxT("]"))) + { + sToAccountName = sFullCateg.substr(1, sFullCateg.Length()-2); + sFullCateg = _("Transfer"); + } + /* //Trick for cut non standart qif category usage in Financisto application //Category field may contains additional information like Project //Format Category[:Subcategory][/Project] //*/ if (sFullCateg.Contains(wxT("/"))) transNum.Prepend(wxString::Format(wxT("[%s] "), getFinancistoProject(sFullCateg).c_str())); + core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); if (categID == -1 && !sCateg.IsEmpty()) { categID = core->categoryList_.AddCategory(sCateg); - sMsg = wxString::Format(_("Added category %s"), sCateg.c_str()); + sMsg = wxString::Format(_("Added category: %s"), sCateg.c_str()); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); } if (subCategID == -1 && categID != -1 && !sSubCateg.IsEmpty()) { subCategID = core->categoryList_.AddSubCategory(categID, sSubCateg); - sMsg = wxString::Format(_("Added subcategory %s"), sSubCateg.c_str()); + sMsg = wxString::Format(_("Added subcategory: %s"), sSubCateg.c_str()); log << sMsg << endl; logWindow->AppendText(sMsg << wxT("\n")); } @@ -468,14 +479,26 @@ bValid = false; } - to_account_id = -1; - - if (sFullCateg.Left(1).Contains(wxT("[")) && sFullCateg.Right(1).Contains(wxT("]"))) + if (sFullCateg.Trim().IsEmpty() && type != TRANS_TYPE_TRANSFER_STR) { - sToAccountName = sFullCateg.substr(1, sFullCateg.Length()-2); + sMsg = _("Category is missing"); + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); + sFullCateg = _("Unknown"); - sFullCateg = _("Transfer"); + core->categoryList_.parseCategoryString(sFullCateg, sCateg, categID, sSubCateg, subCategID); + if (categID == -1 && !sCateg.IsEmpty()) + { + categID = core->categoryList_.AddCategory(sCateg); + sMsg = wxString::Format(_("Added category: %s"), sCateg.c_str()); + log << sMsg << endl; + logWindow->AppendText(sMsg << wxT("\n")); + } + } + to_account_id = -1; + if (sFullCateg == _("Transfer")) + { if (accounts_name.Index(sToAccountName) == wxNOT_FOUND) { mmAccount* ptrBase = new mmAccount(); @@ -610,15 +633,20 @@ if (refTrans[index]->transNum_ != transNum) continue; if (refTrans[index]->notes_ != notes) continue; - sMsg = wxString::Format(wxT("%f -> %f \n"),refTrans[index]->toAmt_ ,val); if (val > 0.0) refTrans[index]->toAmt_ = val; else refTrans[index]->amt_ = val; - bValid = false; + sMsg = wxString::Format(wxT("%f -> %f (%f)\n"), refTrans[index]->amt_ + , refTrans[index]->toAmt_ + , (fabs(refTrans[index]->amt_)/fabs(refTrans[index]->toAmt_)<1) + ? fabs(refTrans[index]->toAmt_)/fabs(refTrans[index]->amt_) + : fabs(refTrans[index]->amt_)/fabs(refTrans[index]->toAmt_)); logWindow->AppendText(sMsg); log << sMsg << endl; + + bValid = false; break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-02-24 09:58:23
|
Revision: 3526 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3526&view=rev Author: vomikan Date: 2013-02-24 09:58:13 +0000 (Sun, 24 Feb 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-02-24 08:01:45 UTC (rev 3525) +++ trunk/mmex/src/qif_import.cpp 2013-02-24 09:58:13 UTC (rev 3526) @@ -244,9 +244,11 @@ if (lineType(readLine) == AcctType) { wxString accountType = getLineData(readLine); - if ((!accountType.CmpNoCase(wxT("Type:Bank"))) || - (!accountType.CmpNoCase(wxT("Type:Cash"))) || - (!accountType.CmpNoCase(wxT("Type:CCard")))) + if ((!accountType.CmpNoCase(wxT("Type:Bank"))) + || (!accountType.CmpNoCase(wxT("Type:Cash"))) + || (!accountType.CmpNoCase(wxT("Type:CCard"))) + || (!accountType.CmpNoCase(wxT("Type:Oth L"))) + ) { sMsg = wxString::Format(_("Importing account type: %s"), accountType.c_str()); log << sMsg << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-03-01 20:05:32
|
Revision: 3535 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3535&view=rev Author: vomikan Date: 2013-03-01 20:05:26 +0000 (Fri, 01 Mar 2013) Log Message: ----------- Date restrictions added Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-03-01 19:18:12 UTC (rev 3534) +++ trunk/mmex/src/qif_import.cpp 2013-03-01 20:05:26 UTC (rev 3535) @@ -238,7 +238,7 @@ void mmQIFImportDialog::fillControls() { dateFormat_ = core_->dbInfoSettings_->GetStringSetting(wxT("DATEFORMAT"), mmex::DEFDATEFORMAT); - choiceDateFormat_->SetValue(FormatDate2DisplayDate(dateFormat_)); + choiceDateFormat_->SetStringSelection(FormatDate2DisplayDate(dateFormat_)); wxArrayString accounts_type; accounts_type.Add(ACCOUNT_TYPE_BANK); @@ -256,7 +256,7 @@ bbAccounts_->SetBitmapLabel(wxBitmap(empty_xpm)); bbAccounts_->Enable(false); newAccounts_->Enable(false); - btnOK_->Enable(true); + btnOK_->Enable(false); } bool mmQIFImportDialog::isLineOK(const wxString& line) @@ -305,8 +305,18 @@ int mmQIFImportDialog::mmImportQIF() { wxString acctName, sMsg; + + //Check date restrictions + wxDateTime fromDate = wxDateTime::Now(), toDate = wxDateTime::Now(); + bool bFromDate = dateFromCheckBox_->IsChecked(); + bool bToDate = dateToCheckBox_->IsChecked(); + if (bFromDate) + fromDate = fromDateCtrl_->GetValue().GetDateOnly(); + if (bToDate) + toDate = toDateCtrl_->GetValue().GetDateOnly(); + wxArrayString accounts_name = core_->accountList_.getAccountsName(); - int fromAccountID; + int fromAccountID = -1; wxString sDefCurrencyName = core_->currencyList_.getCurrencyName(core_->currencyList_.GetBaseCurrencySettings()); @@ -324,7 +334,6 @@ int numImported = 0; wxString dt = wxDateTime::Now().FormatISODate(); - wxString date_format = mmOptions::instance().dateFormat_; wxString sPayee, type, sAmount, transNum, notes, convDate, sToAccountName; wxString sFullCateg, sCateg, sSubCateg, sSplitCategs, sSplitAmount, sValid; @@ -361,7 +370,7 @@ bTrxComplited = false; trxNumLine = numLines - 1; - sMsg = wxT("---------------------------------------------------------------------------------------------------------------------------------------------------\n"); + sMsg = wxT("-------------------------------------------------------------------------------------------------------------------------\n"); logWindow->AppendText(sMsg); } readLine = getFileLine(text, numLines); @@ -505,7 +514,7 @@ { dt = getLineData(readLine); - dtdt = mmParseDisplayStringToDate(dt, date_format).GetDateOnly(); + dtdt = mmParseDisplayStringToDate(dt, dateFormat_).GetDateOnly(); convDate = dtdt.FormatISODate(); continue; } @@ -708,7 +717,16 @@ sFullCateg = core_->categoryList_.GetFullCategoryString(categID, subCategID); } - if (!bValid) sValid = wxT("NO"); else sValid = wxT("OK"); + if (bValid) + sValid = wxT("OK"); + else + sValid = wxT("NO"); + + if (bFromDate && dtdt < fromDate || bToDate && dtdt > toDate) + { + sValid = wxT("SKIP"); + bValid = false; + } sMsg = wxString::Format( wxT("Line:%ld Trx:%ld %s D:%s Acc:'%s' %s P:'%s%s' Amt:%s C:'%s' \n") , trxNumLine @@ -865,7 +883,6 @@ wxString readLine; - wxString date_format = choiceDateFormat_->GetValue(); wxString sAccountName; bool dateFormatIsOK = true; int numLines = 0; @@ -905,7 +922,7 @@ { wxDateTime dtdt; wxString sDate = getLineData(readLine); - if (!dtdt.ParseFormat(sDate, DisplayDate2FormatDate(date_format), wxDateTime::Now())) + if (!dtdt.ParseFormat(sDate, dateFormat_, wxDateTime::Now())) dateFormatIsOK = false; continue; } @@ -934,6 +951,7 @@ void mmQIFImportDialog::OnDateMaskChange(wxCommandEvent& /*event*/) { + dateFormat_ = DisplayDate2FormatDate(choiceDateFormat_->GetValue()); checkQIFFile(sFileName_); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-03-06 16:49:23
|
Revision: 3544 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3544&view=rev Author: vomikan Date: 2013-03-06 16:49:16 +0000 (Wed, 06 Mar 2013) Log Message: ----------- fix for transfer transactions without notes and number Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-03-06 14:33:40 UTC (rev 3543) +++ trunk/mmex/src/qif_import.cpp 2013-03-06 16:49:16 UTC (rev 3544) @@ -146,8 +146,8 @@ void mmQIFImportDialog::CreateControls() { - wxSizerFlags flags, flagsExpand; - flags.Align(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL).Border(wxALL, 5); + wxSizerFlags flags, flagsExpand; + flags.Align(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL).Border(wxALL, 5); flagsExpand.Align(wxALIGN_CENTER).Border(wxALL, 5).Expand().Proportion(1); wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); @@ -155,7 +155,7 @@ wxBoxSizer* box_sizer1 = new wxBoxSizer(wxVERTICAL); wxFlexGridSizer* flex_sizer = new wxFlexGridSizer(0, 3, 0, 0); - //flex_sizer->AddGrowableCol(1); + //flex_sizer->AddGrowableCol(1); // File Name -------------------------------------------- wxStaticText* file_name_label = new wxStaticText(this, wxID_STATIC, _("File Name:")); @@ -215,7 +215,7 @@ main_sizer->Add(box_sizer1, flagsExpand); - /********************************************************************************************** + /********************************************************************************************** Button Panel with OK and Cancel Buttons ***********************************************************************************************/ wxPanel* buttons_panel = new wxPanel(this, wxID_ANY); @@ -233,7 +233,7 @@ buttons_sizer->Add(itemButtonCancel_, flags); buttons_sizer->Realize(); - Fit(); + Fit(); } void mmQIFImportDialog::fillControls() @@ -781,6 +781,7 @@ for (unsigned int index = 0; index < vQIF_trxs.size(); index++) { if (refTrans[index]->transType_ != TRANS_TYPE_TRANSFER_STR) continue; + if (refTrans[index]->status_ == wxT("D")) continue; if (refTrans[index]->date_!= dtdt) continue; if (refTrans[index]->amt_ < 0 && val < 0 || refTrans[index]->amt_ > 0 && val >0 ) continue; if (refTrans[index]->accountID_!= from_account_id) continue; @@ -791,6 +792,7 @@ refTrans[index]->toAmt_ = val; else refTrans[index]->amt_ = val; + refTrans[index]->status_ = wxT("D"); sMsg = wxString::Format(wxT("%f -> %f (%f)\n"), refTrans[index]->amt_ , refTrans[index]->toAmt_ @@ -832,6 +834,7 @@ wxASSERT(pCurrencyPtr); refTrans[index]->amt_ = fabs(refTrans[index]->amt_); refTrans[index]->toAmt_ = fabs(refTrans[index]->toAmt_); + refTrans[index]->status_ = wxT("F"); refTrans[index]->updateAllData(core_, fromAccountID, pCurrencyPtr); core_->bTransactionList_.addTransaction(core_, refTrans[index]); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-03-07 13:14:19
|
Revision: 3547 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3547&view=rev Author: vomikan Date: 2013-03-07 13:14:13 +0000 (Thu, 07 Mar 2013) Log Message: ----------- Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-03-07 13:13:13 UTC (rev 3546) +++ trunk/mmex/src/qif_import.cpp 2013-03-07 13:14:13 UTC (rev 3547) @@ -145,9 +145,9 @@ } void mmQIFImportDialog::CreateControls() -{ - wxSizerFlags flags, flagsExpand; - flags.Align(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL).Border(wxALL, 5); +{ + wxSizerFlags flags, flagsExpand; + flags.Align(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL).Border(wxALL, 5); flagsExpand.Align(wxALIGN_CENTER).Border(wxALL, 5).Expand().Proportion(1); wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2013-03-19 10:47:49
|
Revision: 3595 http://sourceforge.net/p/moneymanagerex/code/3595 Author: vomikan Date: 2013-03-19 10:47:46 +0000 (Tue, 19 Mar 2013) Log Message: ----------- update Modified Paths: -------------- trunk/mmex/src/qif_import.cpp Modified: trunk/mmex/src/qif_import.cpp =================================================================== --- trunk/mmex/src/qif_import.cpp 2013-03-18 13:01:38 UTC (rev 3594) +++ trunk/mmex/src/qif_import.cpp 2013-03-19 10:47:46 UTC (rev 3595) @@ -892,6 +892,11 @@ if (!isLineOK(readLine)) { + wxString sError = wxString() + << wxString::Format(_("Line %i"), numLines) + << wxT("\n") + << readLine; + mmShowErrorMessageInvalid(this, sError); return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |