diff --git a/src/controller/KissCount.cpp b/src/controller/KissCount.cpp index 4c5772e..28a7967 100644 --- a/src/controller/KissCount.cpp +++ b/src/controller/KissCount.cpp @@ -352,7 +352,7 @@ void KissCount::ChangeName(const wxString& name) // To enable translation during xgettext wxString default_cats[] = { - _("Fix"), _("Groceries"), _("Hobbies"), _("Operating expense"), + _("Fix"), _("Groceries"), _("Hobbies"), _("Car"), _("Unexpected"), _("Other") }; @@ -383,7 +383,7 @@ void KissCount::NewUser(const wxString& name) AddCategory(cat); cat.parent = wxT("0") ; cat.name = wxT("Hobbies") ; cat.backcolor = OWN_GREEN; cat.forecolor = *wxBLACK; cat.fix_cost = false; AddCategory(cat); - cat.parent = wxT("0") ; cat.name = wxT("Operating exepense") ; cat.backcolor = OWN_GREEN; cat.forecolor = *wxBLACK; cat.fix_cost = false; + cat.parent = wxT("0") ; cat.name = wxT("Car") ; cat.backcolor = OWN_GREEN; cat.forecolor = *wxBLACK; cat.fix_cost = false; AddCategory(cat); cat.parent = wxT("0") ; cat.name = wxT("Unexpected") ; cat.backcolor = OWN_GREEN; cat.forecolor = *wxBLACK; cat.fix_cost = false; AddCategory(cat); diff --git a/src/model/import/GrisbiImportEngine.cpp b/src/model/import/GrisbiImportEngine.cpp index dcd2b2d..9916c25 100644 --- a/src/model/import/GrisbiImportEngine.cpp +++ b/src/model/import/GrisbiImportEngine.cpp @@ -25,6 +25,7 @@ void GrisbiImportEngine::LoadAccount(GrisbiImportEngine* _this, const char** att { int i; wxString account_number, name, id, key; + Account ac; for (i=0; attrs[i]; i+=2) { @@ -53,7 +54,9 @@ void GrisbiImportEngine::LoadAccount(GrisbiImportEngine* _this, const char** att } _this->_accounts[id] = wxT("unknown-") + account_number; - _this->_unresolvedAccounts.push_back(account_number); + ac.number = account_number; + ac.name = name; + _this->_unresolvedAccounts.push_back(ac); } void GrisbiImportEngine::LoadCategory(GrisbiImportEngine* _this, const char** attrs) diff --git a/src/model/import/ImportEngine.cpp b/src/model/import/ImportEngine.cpp index 90e7b30..ea67397 100644 --- a/src/model/import/ImportEngine.cpp +++ b/src/model/import/ImportEngine.cpp @@ -282,7 +282,7 @@ void ImportEngine::MatchPattern(wxString& originalKey, Operation& op) } } -std::vector ImportEngine::ParseFile() +std::vector ImportEngine::ParseFile() { return _unresolvedAccounts; } diff --git a/src/model/import/ImportEngine.h b/src/model/import/ImportEngine.h index 9f204cd..ad80feb 100644 --- a/src/model/import/ImportEngine.h +++ b/src/model/import/ImportEngine.h @@ -47,7 +47,7 @@ public: virtual bool HandleFile(const wxString& path, User* user, Database* db, KissCount* kiss)=0; // Parse the file and return accounts that doesn't match - virtual std::vector ParseFile(); + virtual std::vector ParseFile(); // Final Step virtual std::vector* GetOperations(std::map& accounts); @@ -67,7 +67,7 @@ protected: std::map _accounts; std::map _categories; - std::vector _unresolvedAccounts; + std::vector _unresolvedAccounts; std::vector _unresolvedCategories; std::vector _operations; std::map _descriptions; diff --git a/src/model/import/OFXImportEngine.cpp b/src/model/import/OFXImportEngine.cpp index 2038d1f..a5039c5 100644 --- a/src/model/import/OFXImportEngine.cpp +++ b/src/model/import/OFXImportEngine.cpp @@ -26,6 +26,7 @@ int OFXImportEngine::account_cb(const struct OfxAccountData data, void * account int i; OFXImportEngine* _this = (OFXImportEngine*) account_data; wxString account_number = wxString(data.account_number, wxConvUTF8); + Account ac; _this->_curAccount = wxT(""); @@ -44,7 +45,8 @@ int OFXImportEngine::account_cb(const struct OfxAccountData data, void * account if (!_this->_curAccount.Len()) { _this->_curAccount = _this->_accounts[account_number] = wxT("unknown-") + account_number; - _this->_unresolvedAccounts.push_back(account_number); + ac.number = account_number; + _this->_unresolvedAccounts.push_back(ac); } return 0; diff --git a/src/view/ImportPanel.cpp b/src/view/ImportPanel.cpp index 04cf600..84048d4 100644 --- a/src/view/ImportPanel.cpp +++ b/src/view/ImportPanel.cpp @@ -66,10 +66,11 @@ ImportPanel::ImportPanel(KissCount* kiss, wxUI *parent) : KissPanel(kiss, parent vbox->Add(hbox, 0); _accountsGrid = new wxGrid(this, wxID_ANY); - _accountsGrid->CreateGrid(0, 2); + _accountsGrid->CreateGrid(0, 3); _accountsGrid->SetRowLabelSize(0); _accountsGrid->SetColLabelValue(0, _("File account")); - _accountsGrid->SetColLabelValue(1, _("Internal account")); + _accountsGrid->SetColLabelValue(1, _("Account name")); + _accountsGrid->SetColLabelValue(2, _("Internal account")); _accountsGrid->Fit(); wxStaticBoxSizer* staticBoxSizer = new wxStaticBoxSizer (staticAccount, wxVERTICAL); @@ -134,7 +135,7 @@ void ImportPanel::OnFileEnter(wxCommandEvent& WXUNUSED(event)) void ImportPanel::ProcessFile() { - std::vector accounts; + std::vector accounts; User* user = _kiss->GetUser(); int i; wxGridCellChoiceEditor* accountEditor; @@ -174,16 +175,16 @@ void ImportPanel::ProcessFile() _buttonLoadOperations->Enable(); - // std::cout << "Insert " << accounts.size() << " rows\n"; _accountsGrid->AppendRows(accounts.size()); for (i=0; i<(int)accounts.size(); i++) { - _accountsGrid->SetCellValue(i, 0, accounts[i]); + _accountsGrid->SetCellValue(i, 0, accounts[i].number); _accountsGrid->SetReadOnly(i, 0); - _accountsGrid->SetCellValue(i, 1, userAccounts[0]); + _accountsGrid->SetCellValue(i, 1, accounts[i].name); + _accountsGrid->SetCellValue(i, 2, userAccounts[0]); - _accountsGrid->SetCellEditor(i, 1, accountEditor); + _accountsGrid->SetCellEditor(i, 2, accountEditor); } _accountsGrid->AutoSize(); @@ -212,7 +213,7 @@ void ImportPanel::OnLoadOperations(wxCommandEvent& WXUNUSED(event)) nbAccounts = 0; for(i=0; i<_accountsGrid->GetNumberRows(); i++) { - if (_accountsGrid->GetCellValue(i, 1) == _("Create one")) + if (_accountsGrid->GetCellValue(i, 2) == _("Create one")) nbAccounts++; } @@ -227,9 +228,12 @@ void ImportPanel::OnLoadOperations(wxCommandEvent& WXUNUSED(event)) for(i=0; i<_accountsGrid->GetNumberRows(); i++) { - if (_accountsGrid->GetCellValue(i, 1) == _("Create one")) + if (_accountsGrid->GetCellValue(i, 2) == _("Create one")) { - account.name = _accountsGrid->GetCellValue(i, 0); + if (_accountsGrid->GetCellValue(i, 1).Length()) + account.name = _accountsGrid->GetCellValue(i, 1); + else + account.name = _accountsGrid->GetCellValue(i, 0); account.number = _accountsGrid->GetCellValue(i, 0); account.shared = false; account.blocked = false;