Proper month change into AccountPanel

This commit is contained in:
Grégory Soutadé 2010-06-22 15:51:51 +02:00
parent 6a8ce2164a
commit e176e2f235
3 changed files with 60 additions and 30 deletions

View File

@ -17,11 +17,16 @@ INSERT INTO default_preference ("type", "name", "value") VALUES ("category_color
-- No password
INSERT INTO user ("id", "name", "password") VALUES ("0", "Greg", "da39a3ee5e6b4b0d3255bfef95601890afd80709");
INSERT INTO account ("id", "user", "name", "number", "shared", "default_account") VALUES ("0", "0", "Compte Courant", "000" , "0", "1");
INSERT INTO account_amount("id", "account", "year", "month", "amount") VALUES("0", "0", "2010", "5", "1000");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("0", "0", "0", "2010", "5", "0", "1234", "Opé 1", "1", "1", "0");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("1", "0", "0", "2010", "5", "1", "-56", "Opé 2", "2", "0", "0");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("2", "0", "0", "2010", "5", "8", "12", "Opé 3", "3", "0", "1");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("3", "0", "0", "2010", "5", "29", "-2056", "Opé 4", "4", "0", "0");
-- May 2010
INSERT INTO account_amount("id", "account", "year", "month", "amount") VALUES("1", "0", "2010", "4", "500");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("1", "0", "0", "2010", "4", "0", "1234", "Opé May 1", "1", "1", "0");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("2", "0", "0", "2010", "4", "1", "-56", "Opé May 2", "2", "0", "0");
-- June 2010
INSERT INTO account_amount("id", "account", "year", "month", "amount") VALUES("2", "0", "2010", "5", "1000");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("3", "0", "0", "2010", "5", "0", "1234", "Opé 1", "1", "1", "0");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("4", "0", "0", "2010", "5", "1", "-56", "Opé 2", "2", "0", "0");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("5", "0", "0", "2010", "5", "8", "12", "Opé 3", "3", "0", "1");
INSERT INTO operation ("id", "user", "account", "year", "month", "day", "amount", "description", "category", "fix_cost", "checked") VALUES ("6", "0", "0", "2010", "5", "29", "-2056", "Opé 4", "4", "0", "0");
INSERT INTO preference ("user", "type", "name", "value") VALUES ("0", "category", "name", "Fixe");
INSERT INTO preference ("user", "type", "name", "value") VALUES ("0", "category", "name", "Courses");
INSERT INTO preference ("user", "type", "name", "value") VALUES ("0", "category", "name", "Loisirs");

View File

@ -8,8 +8,11 @@ enum {CALENDAR_TREE_ID=10, OPS_GRID_ID, ACCOUNTS_GRID_ID};
static wxString colsName[] = {_("Description"), _("Date"), _("Debit"), _("Credit"), _("Category"), _("Account"), _(""), _("")};
BEGIN_EVENT_TABLE(AccountPanel, wxPanel)
EVT_GRID_CMD_CELL_CHANGE(OPS_GRID_ID, AccountPanel::OnOperationModified)
EVT_GRID_CMD_CELL_CHANGE(ACCOUNTS_GRID_ID, AccountPanel::OnAccountModified)
EVT_GRID_CMD_CELL_CHANGE(OPS_GRID_ID, AccountPanel::OnOperationModified)
EVT_GRID_CMD_CELL_CHANGE(ACCOUNTS_GRID_ID, AccountPanel::OnAccountModified)
EVT_TREE_ITEM_RIGHT_CLICK(CALENDAR_TREE_ID, AccountPanel::OnTreeRightClick)
EVT_TREE_SEL_CHANGED(CALENDAR_TREE_ID, AccountPanel::OnTreeChange)
EVT_TREE_KEY_DOWN(CALENDAR_TREE_ID, AccountPanel::OnTreeChange)
END_EVENT_TABLE()
AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)), _kiss(kiss), _wxUI(parent), _tree(this, CALENDAR_TREE_ID)
@ -35,6 +38,7 @@ AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)),
wxColour(0xFF, 0x93, 0x0E),
wxColour(0xC5, 0x00, 0x0D),
wxColour(0x00, 0x84, 0xD1)};
wxBitmap bitmap(_(DELETE_ICON));
SetSizer(hbox);
ColorScheme* colorScheme = new ColorScheme(categoryColors, WXSIZEOF(categoryColors));
@ -75,6 +79,23 @@ AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)),
_grid->SetColLabelSize(0);
_grid->SetRowLabelSize(0);
_grid->CreateGrid(1, NUMBER_COLS_OPS);
_grid->SetColSize (0, _grid->GetColSize(0)*3);
_grid->SetDefaultCellFont(font);
font.SetWeight(wxFONTWEIGHT_BOLD);
for(i=0; i<NUMBER_COLS_OPS; i++)
{
_grid->SetCellValue(0, i, colsName[i]);
_grid->SetCellBackgroundColour(0, i, OWN_CYAN);
_grid->SetCellFont(0, i, font);
_grid->SetReadOnly(0, i, true);
_grid->SetCellAlignment(0, i, wxALIGN_CENTRE, wxALIGN_CENTRE);
}
_grid->SetCellRenderer(0, DELETE, new wxGridCellBitmapRenderer(bitmap));
font.SetWeight(wxFONTWEIGHT_NORMAL);
_accountsGrid = new wxGrid(this, ACCOUNTS_GRID_ID);
_accountsGrid->CreateGrid(0, NUMBER_COLS_ACCOUNTS);
_accountsGrid->SetRowLabelSize(0);
@ -88,10 +109,6 @@ AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)),
_accountsGrid->SetColLabelValue(ACCOUNT_FINAL, _("Final value"));
_statsGrid = new wxGrid(this, -1);
_statsGrid->CreateGrid(user->GetCategoriesNumber()+6, 2);
_statsGrid->SetColLabelSize(0);
_statsGrid->SetRowLabelSize(0);
_statsGrid->EnableEditing(false);
InitStatsGrid(user);
@ -131,6 +148,16 @@ void AccountPanel::InitStatsGrid(User* user)
DEFAULT_FONT(font);
if (!_statsGrid->GetNumberRows())
{
_statsGrid->CreateGrid(user->GetCategoriesNumber()+6, 2);
_statsGrid->SetColLabelSize(0);
_statsGrid->SetRowLabelSize(0);
_statsGrid->EnableEditing(false);
}
else
_statsGrid->DeleteRows(0, _statsGrid->GetNumberRows());
_statsGrid->SetDefaultCellFont(font);
_statsGrid->SetCellValue(TOTAL_CREDIT, 0, _("Total Credit"));
@ -236,32 +263,16 @@ void AccountPanel::ShowMonth(int year, int month)
DEFAULT_FONT(font);
std::vector<category>::iterator categoryIt;
//wxGridCellChoiceEditor* categoryEditor, *accountEditor;
int i;
wxBitmap bitmap(_(DELETE_ICON));
_curMonth = month;
_wxUI->SetTitle(user->_name + _(" - ") + months[month] + _(" ") + wxString::Format(wxT("%d"), year));
if (_grid->GetNumberRows() > 1)
_grid->DeleteRows(1, _grid->GetNumberRows()-1);
// Operations are ordered
_curOperations = &((*user->_operations[year])[month]);
//_grid->Clear();
_grid->CreateGrid(1, NUMBER_COLS_OPS);
// Creating headers
_grid->SetColSize (0, _grid->GetColSize(0)*3);
_grid->SetDefaultCellFont(font);
font.SetWeight(wxFONTWEIGHT_BOLD);
for(i=0; i<NUMBER_COLS_OPS; i++)
{
_grid->SetCellValue(0, i, colsName[i]);
_grid->SetCellBackgroundColour(0, i, OWN_CYAN);
_grid->SetCellFont(0, i, font);
_grid->SetReadOnly(0, i, true);
_grid->SetCellAlignment(0, i, wxALIGN_CENTRE, wxALIGN_CENTRE);
}
_grid->SetCellRenderer(0, DELETE, new wxGridCellBitmapRenderer(bitmap));
it = _curOperations->begin();
for (;it->fix_cost && it != _curOperations->end(); it++)
@ -390,6 +401,9 @@ void AccountPanel::InitAccountsGrid(User* user, int month, int year)
int i, a;
DEFAULT_FONT(font);
if (_accountsGrid->GetNumberRows())
_accountsGrid->DeleteRows(0, _accountsGrid->GetNumberRows());
font.SetWeight(wxFONTWEIGHT_BOLD);
for (i=0, it = user->_accounts.begin(); it != user->_accounts.end(); i++, it++, curLine++)
@ -725,3 +739,12 @@ void AccountPanel::OnAccountModified(wxGridEvent& event)
_accountsGrid->GetCellValue(row, event.GetCol()).ToDouble(&amount);
_kiss->SetAccountAmount(_curMonth, _curYear, user->GetAccountId(_accounts[row]), amount);
}
void AccountPanel::OnTreeRightClick(wxTreeEvent& event)
{
ShowMonth(2010,4);
}
void AccountPanel::OnTreeChange(wxTreeEvent& event)
{
}

View File

@ -39,6 +39,8 @@ public:
void OnOperationModified(wxGridEvent& event);
void OnAccountModified(wxGridEvent& event);
void OnTreeRightClick(wxTreeEvent& event);
void OnTreeChange(wxTreeEvent& event);
private:
KissCount* _kiss;