From: <ste...@us...> - 2014-01-27 04:11:40
|
Revision: 6036 http://sourceforge.net/p/moneymanagerex/code/6036 Author: stef145g Date: 2014-01-27 04:11:36 +0000 (Mon, 27 Jan 2014) Log Message: ----------- Fix:Financial Year Dates Modified Paths: -------------- branches/version_1.0.0.0/src/reports/mmDateRange.cpp trunk/src/reports/mmDateRange.cpp trunk/src/tests/test_date_range.cpp Modified: branches/version_1.0.0.0/src/reports/mmDateRange.cpp =================================================================== --- branches/version_1.0.0.0/src/reports/mmDateRange.cpp 2014-01-27 01:34:58 UTC (rev 6035) +++ branches/version_1.0.0.0/src/reports/mmDateRange.cpp 2014-01-27 04:11:36 UTC (rev 6036) @@ -151,49 +151,40 @@ mmCurrentFinancialYear::mmCurrentFinancialYear(const int day, const int month) : mmDateRange() { - this->start_date_.SetDay(1).SetMonth(wxDateTime::Jan); - this->end_date_ = wxDateTime(start_date_).SetMonth(wxDateTime::Dec).SetDay(31); - this->start_date_.Add(wxDateSpan::Days(day-1)).Add(wxDateSpan::Months(month-1)); - this->end_date_.Add(wxDateSpan::Days(day-1)).Add(wxDateSpan::Months(month-1)); - - if (today_ < start_date_) + // Set date to the beginning of a financial year. + int this_month = this->start_date_.GetMonth() + 1; + if (this_month > month) { - start_date_.Subtract(wxDateSpan::Years(1)); - end_date_.Subtract(wxDateSpan::Years(1)); + this->start_date_.Subtract(wxDateSpan::Months(this_month - month)); } + else + { + this->start_date_.Subtract(wxDateSpan::Year()).Add(wxDateSpan::Months(month - this_month)); + } + this->start_date_.Subtract(wxDateSpan::Days(this->start_date_.GetDay() - 1)).Add(wxDateSpan::Days(day - 1)); + + this->end_date_ = this->start_date_; + this->end_date_.Add(wxDateSpan::Year()).Subtract(wxDateSpan::Day()); this->title_ = _("Current Financial Year"); } mmCurrentFinancialYearToDate::mmCurrentFinancialYearToDate(const int day, const int month) : mmDateRange() { - this->start_date_.SetDay(1).SetMonth(wxDateTime::Jan); - this->start_date_.Add(wxDateSpan::Days(day - 1)).Add(wxDateSpan::Months(month - 1)); + mmCurrentFinancialYear current_financial_year(day, month); + this->start_date_ = current_financial_year.start_date(); // no change to end_date_ - if (today_ < start_date_) - { - start_date_.Subtract(wxDateSpan::Years(1)); - } this->title_ = _("Current Financial Year to Date"); } mmLastFinancialYear::mmLastFinancialYear(const int day, const int month) : mmDateRange() { - this->start_date_.SetDay(1).SetMonth(wxDateTime::Jan) - .Add(wxDateSpan::Days(day-1)) - .Add(wxDateSpan::Months(month-1)) - .Subtract(wxDateSpan::Years(1));; - this->end_date_ = wxDateTime(start_date_).SetMonth(wxDateTime::Dec) - .SetDay(31).Add(wxDateSpan::Days(day-1)) - .Add(wxDateSpan::Months(month-1)); + mmCurrentFinancialYear current_financial_year(day, month); + this->start_date_ = current_financial_year.start_date().Subtract(wxDateSpan::Year()); + this->end_date_ = current_financial_year.end_date().Subtract(wxDateSpan::Year()); - if (today_ < start_date_) - { - this->start_date_.Subtract(wxDateSpan::Years(1)); - this->end_date_.Subtract(wxDateSpan::Years(1)); - } this->title_ = _("Last Financial Year"); } Modified: trunk/src/reports/mmDateRange.cpp =================================================================== --- trunk/src/reports/mmDateRange.cpp 2014-01-27 01:34:58 UTC (rev 6035) +++ trunk/src/reports/mmDateRange.cpp 2014-01-27 04:11:36 UTC (rev 6036) @@ -151,49 +151,40 @@ mmCurrentFinancialYear::mmCurrentFinancialYear(const int day, const int month) : mmDateRange() { - this->start_date_.SetDay(1).SetMonth(wxDateTime::Jan); - this->end_date_ = wxDateTime(start_date_).SetMonth(wxDateTime::Dec).SetDay(31); - this->start_date_.Add(wxDateSpan::Days(day-1)).Add(wxDateSpan::Months(month-1)); - this->end_date_.Add(wxDateSpan::Days(day-1)).Add(wxDateSpan::Months(month-1)); - - if (today_ < start_date_) + // Set date to the beginning of a financial year. + int this_month = this->start_date_.GetMonth() + 1; + if (this_month > month) { - start_date_.Subtract(wxDateSpan::Years(1)); - end_date_.Subtract(wxDateSpan::Years(1)); + this->start_date_.Subtract(wxDateSpan::Months(this_month - month)); } + else + { + this->start_date_.Subtract(wxDateSpan::Year()).Add(wxDateSpan::Months(month - this_month)); + } + this->start_date_.Subtract(wxDateSpan::Days(this->start_date_.GetDay() - 1)).Add(wxDateSpan::Days(day - 1)); + + this->end_date_ = this->start_date_; + this->end_date_.Add(wxDateSpan::Year()).Subtract(wxDateSpan::Day()); this->title_ = _("Current Financial Year"); } mmCurrentFinancialYearToDate::mmCurrentFinancialYearToDate(const int day, const int month) : mmDateRange() { - this->start_date_.SetDay(1).SetMonth(wxDateTime::Jan); - this->start_date_.Add(wxDateSpan::Days(day - 1)).Add(wxDateSpan::Months(month - 1)); + mmCurrentFinancialYear current_financial_year(day, month); + this->start_date_ = current_financial_year.start_date(); // no change to end_date_ - if (today_ < start_date_) - { - start_date_.Subtract(wxDateSpan::Years(1)); - } this->title_ = _("Current Financial Year to Date"); } mmLastFinancialYear::mmLastFinancialYear(const int day, const int month) : mmDateRange() { - this->start_date_.SetDay(1).SetMonth(wxDateTime::Jan) - .Add(wxDateSpan::Days(day-1)) - .Add(wxDateSpan::Months(month-1)) - .Subtract(wxDateSpan::Years(1));; - this->end_date_ = wxDateTime(start_date_).SetMonth(wxDateTime::Dec) - .SetDay(31).Add(wxDateSpan::Days(day-1)) - .Add(wxDateSpan::Months(month-1)); + mmCurrentFinancialYear current_financial_year(day, month); + this->start_date_ = current_financial_year.start_date().Subtract(wxDateSpan::Year()); + this->end_date_ = current_financial_year.end_date().Subtract(wxDateSpan::Year()); - if (today_ < start_date_) - { - this->start_date_.Subtract(wxDateSpan::Years(1)); - this->end_date_.Subtract(wxDateSpan::Years(1)); - } this->title_ = _("Last Financial Year"); } Modified: trunk/src/tests/test_date_range.cpp =================================================================== --- trunk/src/tests/test_date_range.cpp 2014-01-27 01:34:58 UTC (rev 6035) +++ trunk/src/tests/test_date_range.cpp 2014-01-27 04:11:36 UTC (rev 6036) @@ -109,7 +109,7 @@ void Test_Date_Range::Last_Financial_Year() { - mmLastFinancialYear last_financial_year(1, 6); + mmLastFinancialYear last_financial_year(1, 7); m_start_date->Subtract(wxDateSpan::Year()); CPPUNIT_ASSERT_EQUAL(m_start_date->FormatISODate(), last_financial_year.start_date().FormatISODate()); @@ -119,7 +119,7 @@ void Test_Date_Range::Current_Financial_Year() { - mmCurrentFinancialYear current_financial_year(1, 6); + mmCurrentFinancialYear current_financial_year(1, 7); CPPUNIT_ASSERT_EQUAL(m_start_date->FormatISODate(), current_financial_year.start_date().FormatISODate()); m_start_date->Add(wxDateSpan::Year()).Subtract(wxDateSpan::Day()); @@ -128,7 +128,7 @@ void Test_Date_Range::Current_Financial_Year_To_Date() { - mmCurrentFinancialYear current_financial_year_to_date(1, 6); + mmCurrentFinancialYearToDate current_financial_year_to_date(1, 7); CPPUNIT_ASSERT_EQUAL(m_start_date->FormatISODate(), current_financial_year_to_date.start_date().FormatISODate()); wxDateTime today(wxDateTime::Today()); This was sent by MMEX an easy to use, money management application. |