From c353c02d5b583ebb37cdd1d39cdeef14e4708e9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sat, 12 Jun 2010 15:59:27 +0200 Subject: [PATCH] Accounts events caught --- controller/KissCount.cpp | 5 +++++ controller/KissCount.h | 1 + model/Database.cpp | 12 ++++++++++++ model/Database.h | 1 + view/AccountPanel.cpp | 13 ++++++++++++- view/AccountPanel.h | 1 + view/CalendarEditor.cpp | 3 +-- 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/controller/KissCount.cpp b/controller/KissCount.cpp index cb7e8f6..e0f9c9c 100644 --- a/controller/KissCount.cpp +++ b/controller/KissCount.cpp @@ -83,3 +83,8 @@ void KissCount::DeleteOperation(struct operation op) { _db->DeleteOperation(op); } + +void KissCount::SetAccountAmount(int month, int year, wxString accountId, double amount) +{ + _db->SetAccountAmount(month, year, accountId, amount); +} diff --git a/controller/KissCount.h b/controller/KissCount.h index 1442f78..37f0a3a 100644 --- a/controller/KissCount.h +++ b/controller/KissCount.h @@ -24,6 +24,7 @@ class KissCount void UpdateOperation(struct operation op); void AddOperation(struct operation op); void DeleteOperation(struct operation op); + void SetAccountAmount(int month, int year, wxString accountId, double value); private: wxUI* _wxUI; diff --git a/model/Database.cpp b/model/Database.cpp index cad1759..2b34adc 100644 --- a/model/Database.cpp +++ b/model/Database.cpp @@ -318,3 +318,15 @@ void Database::DeleteOperation(struct operation op) EXECUTE_SQL_UPDATE(req, ); } + +void Database::SetAccountAmount(int month, int year, wxString accountId, double amount) +{ + wxString req; + req = _("UPDATE account_amount SET ") ; + req += _("amount='") + wxString::Format(_("%.2lf"), amount) + _("'"); + req += _(" WHERE id='") + accountId + _("'"); + req += _(" AND year='") + wxString::Format(_("%d"), year) + _("'"); + req += _(" AND month='") + wxString::Format(_("%d"), month) + _("'"); + + EXECUTE_SQL_UPDATE(req, ); +} diff --git a/model/Database.h b/model/Database.h index 2b8888b..56d08b6 100644 --- a/model/Database.h +++ b/model/Database.h @@ -28,6 +28,7 @@ class Database void UpdateOperation(struct operation op); void AddOperation(User* user, struct operation op); void DeleteOperation(struct operation op); + void SetAccountAmount(int month, int year, wxString accountId, double amount); private: wxSQLite3Database _db; diff --git a/view/AccountPanel.cpp b/view/AccountPanel.cpp index 374b8d2..23283c5 100644 --- a/view/AccountPanel.cpp +++ b/view/AccountPanel.cpp @@ -4,6 +4,7 @@ static wxString colsName[] = {_("Description"), _("Date"), _("Debit"), _("Credit 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) END_EVENT_TABLE() AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)), _kiss(kiss), _wxUI(parent), _tree(this, CALENDAR_TREE_ID) @@ -329,7 +330,7 @@ void AccountPanel::InsertOperation(User* user, operation* op, int line, bool fix } else { - _grid->SetCellEditor(line, DATE, new CalendarEditor(0, _curMonth, _curYear)); + _grid->SetCellEditor(line, DATE, new CalendarEditor(1, _curMonth, _curYear)); } } @@ -601,3 +602,13 @@ void AccountPanel::OnOperationModified(wxGridEvent& event) inModification = false ; } + +void AccountPanel::OnAccountModified(wxGridEvent& event) +{ + User* user = _kiss->GetUser(); + int row = event.GetRow(); + double amount; + + _accountsGrid->GetCellValue(row, event.GetCol()).ToDouble(&amount); + _kiss->SetAccountAmount(_curMonth, _curYear, user->GetAccountId(_accounts[row]), amount); +} diff --git a/view/AccountPanel.h b/view/AccountPanel.h index 932eb5d..9473b53 100644 --- a/view/AccountPanel.h +++ b/view/AccountPanel.h @@ -40,6 +40,7 @@ public: void ShowMonth(int year, int month); void OnOperationModified(wxGridEvent& event); + void OnAccountModified(wxGridEvent& event); private: KissCount* _kiss; diff --git a/view/CalendarEditor.cpp b/view/CalendarEditor.cpp index f743a40..d20ec8f 100644 --- a/view/CalendarEditor.cpp +++ b/view/CalendarEditor.cpp @@ -22,14 +22,13 @@ void CalendarEditor::BeginEdit(int row, int col, wxGrid *grid) wxGridCellEditor* CalendarEditor::Clone() const { - std::cout << "Cloned\n" ; return new CalendarEditor(_day, _month, _year); } void CalendarEditor::Create(wxWindow *parent, wxWindowID id, wxEvtHandler *evtHandler) { _parent = parent; - _calendar->Create(parent, id, wxDateTime(_day, _month, _year)); + _calendar->Create(_parent, id, wxDateTime(_day, _month, _year)); _calendar->EnableHolidayDisplay(false); _calendar->EnableMonthChange(false); _calendar->EnableYearChange(false);