Generate & delete month/year OK
This commit is contained in:
@@ -854,37 +854,52 @@ void AccountPanel::OnTreeChange(wxTreeEvent& event)
|
||||
inModification = false;
|
||||
}
|
||||
|
||||
void AccountPanel::OnMenuGenerate(wxCommandEvent& event)
|
||||
void AccountPanel::GetTreeSelection(int* month, int* year)
|
||||
{
|
||||
wxString monthString;
|
||||
int month, year, i;
|
||||
int i;
|
||||
|
||||
month = year = -1;
|
||||
*month = -1; *year = -1;
|
||||
|
||||
monthString = _tree.GetItemText(_tree.GetSelection());
|
||||
for (i=0; i<12; i++)
|
||||
if (monthString == months[i])
|
||||
{
|
||||
month = i;
|
||||
*month = i;
|
||||
break;
|
||||
}
|
||||
|
||||
if (month == -1)
|
||||
if (*month == -1)
|
||||
{
|
||||
year = wxAtoi(monthString);
|
||||
*year = wxAtoi(monthString);
|
||||
|
||||
// Error
|
||||
if (year == 0)
|
||||
{
|
||||
*month = -1;
|
||||
*year = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
year = wxAtoi(_tree.GetItemText(_tree.GetItemParent(_tree.GetSelection())));
|
||||
*year = wxAtoi(_tree.GetItemText(_tree.GetItemParent(_tree.GetSelection())));
|
||||
|
||||
// Error
|
||||
if (year == 0)
|
||||
{
|
||||
*month = -1;
|
||||
*year = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AccountPanel::OnMenuGenerate(wxCommandEvent& event)
|
||||
{
|
||||
int month, year;
|
||||
|
||||
GetTreeSelection(&month, &year);
|
||||
|
||||
GenerateDialog g(_kiss, _wxUI, month, year);
|
||||
g.ShowModal();
|
||||
@@ -892,7 +907,49 @@ void AccountPanel::OnMenuGenerate(wxCommandEvent& event)
|
||||
|
||||
void AccountPanel::OnMenuDelete(wxCommandEvent& event)
|
||||
{
|
||||
int month, year;
|
||||
wxString message;
|
||||
wxTreeItemId curNode, node ;
|
||||
std::map<int, std::vector<int> > ops ;
|
||||
|
||||
GetTreeSelection(&month, &year);
|
||||
|
||||
message = _("Are you sure want to delete ");
|
||||
if (month != -1)
|
||||
message += months[month] + _(" ");
|
||||
message += wxString::Format(_("%d"), year);
|
||||
|
||||
message += _(" operations ?");
|
||||
|
||||
wxMessageDialog dialog(_wxUI, message, _("KissCount"), wxYES_NO);
|
||||
if (dialog.ShowModal() == wxID_NO)
|
||||
return;
|
||||
|
||||
curNode = _tree.GetSelection();
|
||||
ops = _kiss->GetAllOperations();
|
||||
|
||||
if (ops[year].size() == 1 && month != -1)
|
||||
curNode = _tree.GetItemParent(curNode);
|
||||
|
||||
_kiss->DeleteOperations(month, year);
|
||||
|
||||
node = _tree.GetNextSibling(curNode);
|
||||
|
||||
if (!node.IsOk())
|
||||
node = _tree.GetPrevSibling(curNode);
|
||||
|
||||
_tree.Delete(curNode);
|
||||
|
||||
if (!node.IsOk())
|
||||
ChangeUser();
|
||||
else
|
||||
{
|
||||
_tree.SelectItem(node);
|
||||
GetTreeSelection(&month, &year);
|
||||
if (month == -1)
|
||||
month = ops[year][0];
|
||||
ShowMonth(month, year);
|
||||
}
|
||||
}
|
||||
|
||||
void AccountPanel::GenerateMonth(int month, int year)
|
||||
@@ -936,7 +993,13 @@ void AccountPanel::GenerateMonth(int month, int year)
|
||||
}
|
||||
|
||||
if (!years.IsOk())
|
||||
years = _tree.PrependItem(root, yearString);
|
||||
{
|
||||
years = _tree.GetFirstChild(root, cookie);
|
||||
if (wxAtoi(_tree.GetItemText(years)) > year)
|
||||
years = _tree.PrependItem(root, yearString);
|
||||
else
|
||||
years = _tree.AppendItem(root, yearString);
|
||||
}
|
||||
|
||||
if (!_tree.GetChildrenCount(years, true))
|
||||
node = _tree.AppendItem(years, monthString);
|
||||
|
@@ -65,6 +65,7 @@ private:
|
||||
void InitAccountsGrid(User* user, int month, int year);
|
||||
void UpdateStats();
|
||||
void InsertOperation(User* user, operation* op, int line, bool fix);
|
||||
void GetTreeSelection(int* month, int* year);
|
||||
|
||||
DECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
Reference in New Issue
Block a user