Category management in place
This commit is contained in:
@@ -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, );
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user