Fix Account loading bug
This commit is contained in:
@@ -207,13 +207,15 @@ User* Database::LoadUser(wxString name)
|
||||
if (!user->_accounts.empty())
|
||||
{
|
||||
it = user->_accounts.begin();
|
||||
req = _("SELECT DISTINCT year FROM account_amount WHERE account IN('") + it->id;
|
||||
req = _("SELECT DISTINCT year FROM operation WHERE account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("') ORDER BY year ASC");
|
||||
req += _("')");
|
||||
req += _(" OR user='") + user->_id + _("'");
|
||||
req += _(" ORDER BY year ASC");
|
||||
|
||||
EXECUTE_SQL_QUERY_WITH_CODE(req, set, NULL, {delete user;}, {delete user;});
|
||||
|
||||
@@ -265,13 +267,14 @@ void Database::LoadYear(User* user, int year)
|
||||
if (!user->_accounts.size()) return;
|
||||
|
||||
it = user->_accounts.begin();
|
||||
req = _("SELECT * FROM operation WHERE account IN('") + it->id;
|
||||
req = _("SELECT * FROM operation WHERE (account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("')");
|
||||
req += _("')");
|
||||
req += _(" OR user='") + user->_id + _("')");
|
||||
req += _(" AND year='") + wxString::Format(_("%d"), year) + _("'");
|
||||
req += _(" ORDER BY fix_cost DESC, year,month,day ASC");
|
||||
|
||||
@@ -421,13 +424,14 @@ void Database::DeleteOperations(User* user, int month, int year)
|
||||
EXECUTE_SQL_UPDATE(req, );
|
||||
|
||||
it = user->_accounts.begin();
|
||||
req = _("DELETE FROM operation WHERE account IN('") + it->id;
|
||||
req = _("DELETE FROM operation WHERE (account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("')");
|
||||
req += _(" OR user='") + user->_id + _("')");
|
||||
req += _(" AND year='") + wxString::Format(_("%d"), year) + _("'");
|
||||
if (month != -1)
|
||||
req += _(" AND month='") + wxString::Format(_("%d"), month) + _("'");
|
||||
@@ -611,13 +615,15 @@ std::map<int, std::vector<int> > Database::GetAllOperations(User* user)
|
||||
if (!user->_accounts.empty())
|
||||
{
|
||||
it = user->_accounts.begin();
|
||||
req = _("SELECT DISTINCT year FROM account_amount WHERE account IN('") + it->id;
|
||||
req = _("SELECT DISTINCT year FROM operation WHERE account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("') ORDER BY year ASC");
|
||||
req += _("')");
|
||||
req += _(" OR user='") + user->_id + _("'");
|
||||
req += _(" ORDER BY year ASC");
|
||||
|
||||
EXECUTE_SQL_QUERY(req, set, res);
|
||||
|
||||
@@ -626,13 +632,14 @@ std::map<int, std::vector<int> > Database::GetAllOperations(User* user)
|
||||
year = set.GetInt(_("year"));
|
||||
|
||||
it = user->_accounts.begin();
|
||||
req = _("SELECT DISTINCT month FROM account_amount WHERE account IN('") + it->id;
|
||||
req = _("SELECT DISTINCT month FROM operation WHERE (account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("')");
|
||||
req += _(" OR user='") + user->_id + _("')");
|
||||
req += _(" AND year='") + set.GetAsString(_("year")) + _("'");
|
||||
req += _(" ORDER BY month ASC");
|
||||
|
||||
@@ -810,6 +817,9 @@ void Database::NewUser(wxString name)
|
||||
return ;
|
||||
}
|
||||
|
||||
/*
|
||||
Shared accounts not currently supported
|
||||
*/
|
||||
void Database::KillMe(User* user)
|
||||
{
|
||||
wxString req;
|
||||
@@ -839,6 +849,7 @@ void Database::KillMe(User* user)
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("')");
|
||||
req += _(" OR user='") + user->_id + _("')");
|
||||
|
||||
EXECUTE_SQL_UPDATE(req, );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user