Fix a bug in search (absolute amounts) and remove automatic dating for new fix operation

This commit is contained in:
Grégory Soutadé 2010-07-26 21:03:22 +02:00
parent cc70c0f804
commit 7e41063b42
3 changed files with 13 additions and 7 deletions

View File

@ -953,13 +953,13 @@ std::vector<Operation>* Database::Search(User* user, wxString* description, wxDa
if (amountFrom) if (amountFrom)
{ {
if (firstCond) req += wxT(" AND ") ; else firstCond = true; if (firstCond) req += wxT(" AND ") ; else firstCond = true;
req += wxT("amount >= '") + *amountFrom + wxT("'"); req += wxT("ABS(amount) >= ") + *amountFrom;
} }
if (amountTo) if (amountTo)
{ {
if (firstCond) req += wxT(" AND ") ; else firstCond = true; if (firstCond) req += wxT(" AND ") ; else firstCond = true;
req += wxT("amount <= '") + *amountTo + wxT("'"); req += wxT("ABS(amount) <= ") + *amountTo;
} }
if (categories.size()) if (categories.size())
@ -1025,13 +1025,13 @@ std::vector<Operation>* Database::Search(User* user, wxString* description, wxDa
if (dateFrom && if (dateFrom &&
(int)op.year == dateFrom->GetYear() && (int)op.year == dateFrom->GetYear() &&
(int)op.month < dateFrom->GetMonth() && (int)op.month <= dateFrom->GetMonth() &&
(int)op.day < dateFrom->GetDay()-1) (int)op.day < dateFrom->GetDay()-1)
continue; continue;
if (dateTo && if (dateTo &&
(int)op.year == dateTo->GetYear() && (int)op.year == dateTo->GetYear() &&
(int)op.month > dateTo->GetMonth() && (int)op.month >= dateTo->GetMonth() &&
(int)op.day > dateTo->GetDay()-1) (int)op.day > dateTo->GetDay()-1)
continue; continue;

View File

@ -160,7 +160,8 @@ void GridAccount::InsertOperation(User* user, Operation* op, int line, bool fix,
else else
{ {
SetCellEditor(line, DATE, new CalendarEditor(0, curMonth, curYear)); SetCellEditor(line, DATE, new CalendarEditor(0, curMonth, curYear));
if (curDate.GetMonth() == curMonth && if (!fix &&
curDate.GetMonth() == curMonth &&
curDate.GetYear() == curYear) curDate.GetYear() == curYear)
{ {
SetCellValue(line, DATE, wxString::Format(wxT("%02d/%02d/%d"), curDate.GetDay(), curMonth+1, curYear)); SetCellValue(line, DATE, wxString::Format(wxT("%02d/%02d/%d"), curDate.GetDay(), curMonth+1, curYear));
@ -171,8 +172,9 @@ void GridAccount::InsertOperation(User* user, Operation* op, int line, bool fix,
if (fix) if (fix)
SET_ROW_COLOR(line, OWN_YELLOW) SET_ROW_COLOR(line, OWN_YELLOW)
else else
SET_ROW_COLOR(line, OWN_GREEN); SET_ROW_COLOR(line, OWN_GREEN);
SetReadOnly(line, CHECKED, true); SetReadOnly(line, CHECKED, true);
SetReadOnly(line, DELETE, true); SetReadOnly(line, DELETE, true);
} }

View File

@ -139,6 +139,8 @@ void SearchPanel::OnButtonSearch(wxCommandEvent& event)
delete amountFrom; delete amountFrom;
return; return;
} }
if (af < 0) af *= -1;
} }
if (_amountTo->GetLineText(0) != wxT("")) if (_amountTo->GetLineText(0) != wxT(""))
@ -152,6 +154,8 @@ void SearchPanel::OnButtonSearch(wxCommandEvent& event)
delete amountTo; delete amountTo;
return; return;
} }
if (at < 0) at *= -1;
} }
if (amountFrom && amountTo && af > at) if (amountFrom && amountTo && af > at)