/* Copyright 2010-2011 Grégory Soutadé This file is part of KissCount. KissCount is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. KissCount is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with KissCount. If not, see . */ #ifndef USER_H #define USER_H #include #include #include #include #include "Category.h" #include "Account.h" #include "Operation.h" #include "Database.h" #include "import/ImportEngine.h" class Database; class ImportPattern; class User { public: User(Database* db); ~User(); void InvalidateOperations(); wxString _id; wxString _name; wxString _password; std::vector _accounts; std::map >* > _operations; std::vector _categories; std::vector _categoriesFonts; std::map _preferences; std::map _importPatterns; class AccountNotFound {}; Category GetCategory(const wxString& catId); wxString GetCategoryName(const wxString& catId); wxString GetCategoryId(const wxString& catName); const wxFont GetCategoryFont(const wxString& catId); Account GetAccount(const wxString& accountId) throw (AccountNotFound); wxString GetAccountName(const wxString& accountId); wxString GetAccountId(const wxString& accountName); int GetCategoriesNumber(); int GetAccountsNumber(); int GetOperationsNumber(int month, int year); wxLanguage GetLanguage(); void LinkOrUnlinkOperation(Operation& op); void Group(const Operation& op); bool Group(std::vector* ops, const Operation& op); void UnGroup(const Operation& op); void ResolveGroups(int year); void UpdateImportPattern(User* user); private: Database* _db; }; #endif