Fix a bug with blocked account computation
This commit is contained in:
parent
27b5740b5c
commit
115bf8f305
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-11-01 11:34+0100\n"
|
"POT-Creation-Date: 2010-11-03 20:33+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -35,7 +35,7 @@ msgstr ""
|
||||||
msgid " not found, aborting"
|
msgid " not found, aborting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/AccountPanel.cpp:727
|
#: src/view/AccountPanel.cpp:724
|
||||||
msgid " operations ?"
|
msgid " operations ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -84,11 +84,11 @@ msgid "Amount to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/PreferencesPanel.cpp:401 src/view/PreferencesPanel.cpp:774
|
#: src/view/PreferencesPanel.cpp:401 src/view/PreferencesPanel.cpp:774
|
||||||
#: src/view/AccountPanel.cpp:722
|
#: src/view/AccountPanel.cpp:719
|
||||||
msgid "Are you sure want to delete "
|
msgid "Are you sure want to delete "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/PreferencesPanel.cpp:641 src/view/grid/GridAccount.cpp:760
|
#: src/view/PreferencesPanel.cpp:641 src/view/grid/GridAccount.cpp:761
|
||||||
msgid "Are you sure want to delete : \n"
|
msgid "Are you sure want to delete : \n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -113,11 +113,11 @@ msgstr ""
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/grid/GridAccount.cpp:1144 src/view/grid/GridAccount.cpp:1151
|
#: src/view/grid/GridAccount.cpp:1145 src/view/grid/GridAccount.cpp:1152
|
||||||
msgid "Cannot group these operations"
|
msgid "Cannot group these operations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/grid/GridAccount.cpp:1280 src/view/grid/GridAccount.cpp:1286
|
#: src/view/grid/GridAccount.cpp:1271 src/view/grid/GridAccount.cpp:1277
|
||||||
msgid "Cannot ungroup these operations"
|
msgid "Cannot ungroup these operations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -217,9 +217,9 @@ msgstr ""
|
||||||
#: src/view/PreferencesPanel.cpp:439 src/view/PreferencesPanel.cpp:660
|
#: src/view/PreferencesPanel.cpp:439 src/view/PreferencesPanel.cpp:660
|
||||||
#: src/view/PreferencesPanel.cpp:679 src/view/PreferencesPanel.cpp:719
|
#: src/view/PreferencesPanel.cpp:679 src/view/PreferencesPanel.cpp:719
|
||||||
#: src/view/PreferencesPanel.cpp:725 src/view/PasswordDialog.cpp:72
|
#: src/view/PreferencesPanel.cpp:725 src/view/PasswordDialog.cpp:72
|
||||||
#: src/view/PasswordDialog.cpp:78 src/view/AccountPanel.cpp:718
|
#: src/view/PasswordDialog.cpp:78 src/view/AccountPanel.cpp:715
|
||||||
#: src/view/grid/GridAccount.cpp:1144 src/view/grid/GridAccount.cpp:1151
|
#: src/view/grid/GridAccount.cpp:1145 src/view/grid/GridAccount.cpp:1152
|
||||||
#: src/view/grid/GridAccount.cpp:1280 src/view/grid/GridAccount.cpp:1286
|
#: src/view/grid/GridAccount.cpp:1271 src/view/grid/GridAccount.cpp:1277
|
||||||
#: src/view/grid/wxGridCellFormulaEditor.cpp:69 src/model/Database.cpp:38
|
#: src/view/grid/wxGridCellFormulaEditor.cpp:69 src/model/Database.cpp:38
|
||||||
#: src/model/Database.cpp:55 src/model/Database.cpp:95
|
#: src/model/Database.cpp:55 src/model/Database.cpp:95
|
||||||
#: src/model/Database.cpp:102 src/model/Database.cpp:120
|
#: src/model/Database.cpp:102 src/model/Database.cpp:120
|
||||||
|
@ -236,7 +236,7 @@ msgstr ""
|
||||||
msgid "Final value"
|
msgid "Final value"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/SearchPanel.cpp:76 src/view/grid/GridAccount.cpp:300
|
#: src/view/SearchPanel.cpp:76 src/view/grid/GridAccount.cpp:301
|
||||||
#: src/model/Database.cpp:331 src/controller/KissCount.cpp:335
|
#: src/model/Database.cpp:331 src/controller/KissCount.cpp:335
|
||||||
msgid "Fix"
|
msgid "Fix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -317,7 +317,7 @@ msgstr ""
|
||||||
msgid "It must be at least one account !"
|
msgid "It must be at least one account !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/view/AccountPanel.cpp:718
|
#: src/view/AccountPanel.cpp:715
|
||||||
msgid "It must be at least one month !"
|
msgid "It must be at least one month !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -462,7 +462,7 @@ void Database::LinkOrUnlinkOperation(Operation& op)
|
||||||
if (op.transfert.Length())
|
if (op.transfert.Length())
|
||||||
{
|
{
|
||||||
// No one or not linked
|
// No one or not linked
|
||||||
if (!GetOperation(op.transfert, &linked) || op.description != linked.description || op.amount != -linked.amount)
|
if (!GetOperation(op.transfert, &linked) || op.description != linked.description || op.amount != -linked.amount || op.account == linked.account)
|
||||||
{
|
{
|
||||||
req = wxT("UPDATE operation SET transfert='' where id='") + op.id + wxT("'") ;
|
req = wxT("UPDATE operation SET transfert='' where id='") + op.id + wxT("'") ;
|
||||||
EXECUTE_SQL_UPDATE(req, );
|
EXECUTE_SQL_UPDATE(req, );
|
||||||
|
@ -486,12 +486,15 @@ void Database::LinkOrUnlinkOperation(Operation& op)
|
||||||
req += wxT(" AND month='") + wxString::Format(wxT("%d"), op.month) + wxT("'");
|
req += wxT(" AND month='") + wxString::Format(wxT("%d"), op.month) + wxT("'");
|
||||||
req += wxT(" AND year='") + wxString::Format(wxT("%d"), op.year) + wxT("'");
|
req += wxT(" AND year='") + wxString::Format(wxT("%d"), op.year) + wxT("'");
|
||||||
req += wxT(" AND amount='") + DoubleToString(-op.amount) + wxT("'");
|
req += wxT(" AND amount='") + DoubleToString(-op.amount) + wxT("'");
|
||||||
|
req += wxT(" AND meta='0'");
|
||||||
|
req += wxT(" AND account !='") + op.account + wxT("'");
|
||||||
|
req += wxT(" AND id !='") + op.id + wxT("'");
|
||||||
req += wxT(" AND (transfert='' OR transfert IS NULL)");
|
req += wxT(" AND (transfert='' OR transfert IS NULL)");
|
||||||
|
|
||||||
EXECUTE_SQL_QUERY(req, set, );
|
EXECUTE_SQL_QUERY(req, set, );
|
||||||
|
|
||||||
// Don't need to link
|
// Don't need to link
|
||||||
if (!set.NextRow()) return ;
|
if (!set.NextRow()) return ;
|
||||||
|
|
||||||
// Link
|
// Link
|
||||||
linked.id = set.GetAsString(wxT("id"));
|
linked.id = set.GetAsString(wxT("id"));
|
||||||
|
|
|
@ -414,6 +414,7 @@ void AccountPanel::UpdateStats()
|
||||||
std::map<wxString, double>* notChecked = NULL;
|
std::map<wxString, double>* notChecked = NULL;
|
||||||
Account account;
|
Account account;
|
||||||
Operation op;
|
Operation op;
|
||||||
|
bool blocked_account ;
|
||||||
|
|
||||||
curCredit = curDebit = totalCredit = totalDebit = percents = 0.0;
|
curCredit = curDebit = totalCredit = totalDebit = percents = 0.0;
|
||||||
|
|
||||||
|
@ -438,6 +439,7 @@ void AccountPanel::UpdateStats()
|
||||||
if (it->meta) continue;
|
if (it->meta) continue;
|
||||||
|
|
||||||
op = *it;
|
op = *it;
|
||||||
|
blocked_account = false;
|
||||||
|
|
||||||
// A credit on a blocked account must be considered as a debit
|
// A credit on a blocked account must be considered as a debit
|
||||||
if (op.transfert.Length() && op.amount > 0)
|
if (op.transfert.Length() && op.amount > 0)
|
||||||
|
@ -448,11 +450,15 @@ void AccountPanel::UpdateStats()
|
||||||
{
|
{
|
||||||
op.amount = -op.amount;
|
op.amount = -op.amount;
|
||||||
op.transfert = wxT("");
|
op.transfert = wxT("");
|
||||||
|
blocked_account = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (op.amount >= 0)
|
if (op.amount >= 0)
|
||||||
{
|
{
|
||||||
|
if (!op.transfert.Length())
|
||||||
|
totalCredit += op.amount;
|
||||||
|
|
||||||
if (day >= op.day)
|
if (day >= op.day)
|
||||||
{
|
{
|
||||||
if (!op.transfert.Length())
|
if (!op.transfert.Length())
|
||||||
|
@ -460,8 +466,6 @@ void AccountPanel::UpdateStats()
|
||||||
if (!checkMode || (checkMode && op.checked))
|
if (!checkMode || (checkMode && op.checked))
|
||||||
curAccountAmount[op.account] += op.amount;
|
curAccountAmount[op.account] += op.amount;
|
||||||
}
|
}
|
||||||
if (!op.transfert.Length())
|
|
||||||
totalCredit += op.amount;
|
|
||||||
if (!checkMode || (checkMode && op.checked))
|
if (!checkMode || (checkMode && op.checked))
|
||||||
finalAccountAmount[op.account] += op.amount;
|
finalAccountAmount[op.account] += op.amount;
|
||||||
}
|
}
|
||||||
|
@ -469,6 +473,13 @@ void AccountPanel::UpdateStats()
|
||||||
{
|
{
|
||||||
if (!op.transfert.Length())
|
if (!op.transfert.Length())
|
||||||
_categoriesValues[_categoriesIndexes[user->GetCategoryName(op.category)]] += -op.amount ;
|
_categoriesValues[_categoriesIndexes[user->GetCategoryName(op.category)]] += -op.amount ;
|
||||||
|
|
||||||
|
if (!op.transfert.Length())
|
||||||
|
totalDebit += -op.amount;
|
||||||
|
|
||||||
|
if (blocked_account)
|
||||||
|
op.amount = -op.amount;
|
||||||
|
|
||||||
if (day >= op.day)
|
if (day >= op.day)
|
||||||
{
|
{
|
||||||
if (!op.transfert.Length())
|
if (!op.transfert.Length())
|
||||||
|
@ -476,8 +487,6 @@ void AccountPanel::UpdateStats()
|
||||||
if (!checkMode || (checkMode && op.checked))
|
if (!checkMode || (checkMode && op.checked))
|
||||||
curAccountAmount[op.account] += op.amount;
|
curAccountAmount[op.account] += op.amount;
|
||||||
}
|
}
|
||||||
if (!op.transfert.Length())
|
|
||||||
totalDebit += -op.amount;
|
|
||||||
if (!checkMode || (checkMode && op.checked))
|
if (!checkMode || (checkMode && op.checked))
|
||||||
finalAccountAmount[op.account] += op.amount;
|
finalAccountAmount[op.account] += op.amount;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user