Category management in place

This commit is contained in:
2010-06-22 11:35:21 +02:00
parent c322a01adb
commit 6f1d7734bf
5 changed files with 195 additions and 3 deletions

View File

@@ -436,3 +436,80 @@ void Database::DeleteAccount(struct Account ac)
EXECUTE_SQL_UPDATE(req, );
}
void Database::AddCategory(User* user, wxString name, wxString color)
{
wxString req;
req = _("INSERT INTO preference ('user', 'type', 'name', 'value') VALUES ('") ;
req += user->_id + _("'");
req += _(", 'category'");
req += _(", 'name'");
req += _(", '") + name + _("'");
req += _(")");
EXECUTE_SQL_UPDATE(req, );
req = _("INSERT INTO preference ('user', 'type', 'name', 'value') VALUES ('") ;
req += user->_id + _("'");
req += _(", 'category_color'");
req += _(", '") + name + _("'");
req += _(", '") + color + _("'");
req += _(")");
EXECUTE_SQL_UPDATE(req, );
}
void Database::UpdateCategory(User* user, wxString oldName, wxString name, wxString color)
{
wxString req;
if (oldName != name)
{
req = _("UPDATE preference SET ") ;
req += _("value='") + name + _("'");
req += _(" WHERE user='") + user->_id + _("'");
req += _(" AND type='category'");
req += _(" AND name='name'");
req += _(" AND value='") + oldName + _("'");
EXECUTE_SQL_UPDATE(req, );
}
req = _("UPDATE preference SET ") ;
req += _("value='") + color + _("'");
req += _(" WHERE user='") + user->_id + _("'");
req += _(" AND type='category_color'");
req += _(" AND name='") + oldName + _("'");
EXECUTE_SQL_UPDATE(req, );
if (oldName != name)
{
req = _("UPDATE preference SET ") ;
req += _("name='") + name + _("'");
req += _(" WHERE user='") + user->_id + _("'");
req += _(" AND type='category_color'");
req += _(" AND name='") + oldName + _("'");
req += _(" AND value='") + color + _("'");
EXECUTE_SQL_UPDATE(req, );
}
}
void Database::DeleteCategory(User* user, wxString name)
{
wxString req;
req = _("DELETE FROM preference WHERE user='") + user->_id + _("'");
req += _(" AND type='category'");
req += _(" AND name='name'");
req += _(" AND value='") + name + _("'");
EXECUTE_SQL_UPDATE(req, );
req = _("DELETE FROM preference WHERE user='") + user->_id + _("'");
req += _(" AND type='category_color'");
req += _(" AND name='") + name + _("'");
EXECUTE_SQL_UPDATE(req, );
}

View File

@@ -34,6 +34,10 @@ class Database
void UpdateAccount(struct Account ac);
void DeleteAccount(struct Account ac);
void AddCategory(User* user, wxString name, wxString color);
void UpdateCategory(User* user, wxString oldName, wxString name, wxString color);
void DeleteCategory(User* user, wxString name);
private:
wxSQLite3Database _db;