From: <ste...@us...> - 2012-04-20 23:54:25
|
Revision: 2197 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2197&view=rev Author: stef145g Date: 2012-04-20 23:54:18 +0000 (Fri, 20 Apr 2012) Log Message: ----------- Fix: Using different calculations for Budget estimates Modified Paths: -------------- trunk/mmex/src/budgetingpanel.cpp trunk/mmex/src/reportbudget.cpp trunk/mmex/src/reportbudget.h trunk/mmex/src/reportbudgetcategorysummary.cpp trunk/mmex/src/reportbudgetingperf.cpp Modified: trunk/mmex/src/budgetingpanel.cpp =================================================================== --- trunk/mmex/src/budgetingpanel.cpp 2012-04-20 23:51:38 UTC (rev 2196) +++ trunk/mmex/src/budgetingpanel.cpp 2012-04-20 23:54:18 UTC (rev 2197) @@ -416,7 +416,7 @@ th.catStr_ = q1.GetString(wxT("CATEGNAME")); mmDBWrapper::getBudgetEntry(db_, budgetYearID_, th.categID_, th.subcategID_, th.period_, th.amt_); - budgetDetails.setBudgetEstimate(th, monthlyBudget, dtBegin, dtEnd); + budgetDetails.setBudgetEstimate(th, monthlyBudget); if (th.estimated_ < 0) estExpenses += th.estimated_; else @@ -473,7 +473,7 @@ thsub.subCatStr_ = q2.GetString(wxT("SUBCATEGNAME")); mmDBWrapper::getBudgetEntry(db_, budgetYearID_, thsub.categID_, thsub.subcategID_, thsub.period_, thsub.amt_); - budgetDetails.setBudgetEstimate(thsub, monthlyBudget, dtBegin, dtEnd); + budgetDetails.setBudgetEstimate(thsub, monthlyBudget); if (thsub.estimated_ < 0) estExpenses += thsub.estimated_; else @@ -499,10 +499,11 @@ /*************************************************************************** Update the TOTALS entry for the subcategory. ***************************************************************************/ - catTotals.amt_ += thsub.amt_; + //catTotals.amt_ += thsub.amt_; catTotals.estimated_ += thsub.estimated_; catTotals.actual_ += thsub.actual_; - mmex::formatDoubleToCurrencyEdit(catTotals.amt_, catTotals.amtString_); + //mmex::formatDoubleToCurrencyEdit(catTotals.amt_, catTotals.amtString_); + catTotals.amtString_ = wxEmptyString; mmex::formatDoubleToCurrencyEdit(catTotals.estimated_, catTotals.estimatedStr_); mmex::formatDoubleToCurrencyEdit(catTotals.actual_, catTotals.actualStr_); Modified: trunk/mmex/src/reportbudget.cpp =================================================================== --- trunk/mmex/src/reportbudget.cpp 2012-04-20 23:51:38 UTC (rev 2196) +++ trunk/mmex/src/reportbudget.cpp 2012-04-20 23:54:18 UTC (rev 2197) @@ -25,59 +25,80 @@ {} /************************************************************************************** - This will set the budget estimate for a single day. - This can then be used for the month or year as necessary. + This will set the budget estimate for a month in a year. ***************************************************************************************/ -void mmReportBudget::setBudgetDailyEstimateAmount(mmBudgetEntryHolder& budEntry, int month) +void mmReportBudget::setBudgetMonthlyEstimate(mmBudgetEntryHolder& budEntry) { - int daysInMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31}; + int ndays = 365; - int numDays = 365; - if (budEntry.period_ == wxT("Monthly")) { - numDays = daysInMonth[month]; + budEntry.estimated_ = budEntry.amt_; } else if (budEntry.period_ == wxT("Yearly")) { - numDays = 365; + budEntry.estimated_ = budEntry.amt_ / 12; } else if (budEntry.period_ == wxT("Weekly")) { - numDays = 7; + budEntry.estimated_ = ((budEntry.amt_ / 7) * ndays) / 12; } else if (budEntry.period_ == wxT("Bi-Weekly")) { - numDays = 14; + budEntry.estimated_ = ((budEntry.amt_ / 14) * ndays) / 12; } else if (budEntry.period_ == wxT("Bi-Monthly")) { - numDays = 61; + budEntry.estimated_ = budEntry.amt_ / 2; } else if (budEntry.period_ == wxT("Quarterly")) { - numDays = 92; + budEntry.estimated_ = budEntry.amt_ / 3; } else if (budEntry.period_ == wxT("Half-Yearly")) { - numDays = 183; + budEntry.estimated_ = (budEntry.amt_ / 6); } else if (budEntry.period_ == wxT("Daily")) { - numDays = 1; + budEntry.estimated_ = (budEntry.amt_ * ndays) / 12; } else { wxASSERT(true); } - - budEntry.estimated_ = budEntry.amt_ /numDays; } -void mmReportBudget::setBudgetEstimate(mmBudgetEntryHolder& budEntry, bool monthBudget, const wxDateTime& beginDate, const wxDateTime& endDate) +void mmReportBudget::setBudgetYearlyEstimate(mmBudgetEntryHolder& budEntry) { - if (monthBudget) { - setBudgetDailyEstimateAmount(budEntry, beginDate.GetMonth()); - int days = endDate.GetDay(); - budEntry.estimated_ = budEntry.estimated_*days; + if (budEntry.period_ == wxT("Monthly")) { + budEntry.estimated_ = budEntry.amt_ * 12; + } else if (budEntry.period_ == wxT("Yearly")) { + budEntry.estimated_ = budEntry.amt_; + + } else if (budEntry.period_ == wxT("Weekly")) { + budEntry.estimated_ = budEntry.amt_ * 52; + + } else if (budEntry.period_ == wxT("Bi-Weekly")) { + budEntry.estimated_ = budEntry.amt_ * 26; + + } else if (budEntry.period_ == wxT("Bi-Monthly")) { + budEntry.estimated_ = budEntry.amt_ * 6; + + } else if (budEntry.period_ == wxT("Quarterly")) { + budEntry.estimated_ = budEntry.amt_ * 3; + + } else if (budEntry.period_ == wxT("Half-Yearly")) { + budEntry.estimated_ = budEntry.amt_ * 2; + + } else if (budEntry.period_ == wxT("Daily")) { + budEntry.estimated_ = budEntry.amt_ * 365; + } else { - setBudgetDailyEstimateAmount(budEntry); - budEntry.estimated_ = budEntry.estimated_* 365; + wxASSERT(true); } } +void mmReportBudget::setBudgetEstimate(mmBudgetEntryHolder& budEntry, bool monthBudget) +{ + if (monthBudget) + setBudgetMonthlyEstimate(budEntry); + else + setBudgetYearlyEstimate(budEntry); +} + void mmReportBudget::initBudgetEntryFields(mmBudgetEntryHolder& budEntry, int id) { budEntry.id_ = id; Modified: trunk/mmex/src/reportbudget.h =================================================================== --- trunk/mmex/src/reportbudget.h 2012-04-20 23:51:38 UTC (rev 2196) +++ trunk/mmex/src/reportbudget.h 2012-04-20 23:54:18 UTC (rev 2197) @@ -38,10 +38,13 @@ void initBudgetEntryFields(mmBudgetEntryHolder& budEntry, int id = -1); /// Set budget estimate for a day based on the required period - void setBudgetDailyEstimateAmount(mmBudgetEntryHolder& budEntry, int month = 5 /*wxDateTime::Jun*/); + void setBudgetMonthlyEstimate(mmBudgetEntryHolder& budEntry); - /// Set budget estimate for the appropriate prriod - void setBudgetEstimate(mmBudgetEntryHolder& budEntry, bool monthBudget, const wxDateTime& beginDate, const wxDateTime& endDate); + /// Set budget estimate for a yearly period + void setBudgetYearlyEstimate(mmBudgetEntryHolder& budEntry); + + /// Set budget estimate for the appropriate period + void setBudgetEstimate(mmBudgetEntryHolder& budEntry, bool monthBudget); /// Used in reports to display today's date void DisplayDateHeading(mmHTMLBuilder& hb, const wxDateTime& startYear, const wxDateTime& endYear, bool withDateRange = true); Modified: trunk/mmex/src/reportbudgetcategorysummary.cpp =================================================================== --- trunk/mmex/src/reportbudgetcategorysummary.cpp 2012-04-20 23:51:38 UTC (rev 2196) +++ trunk/mmex/src/reportbudgetcategorysummary.cpp 2012-04-20 23:54:18 UTC (rev 2197) @@ -144,7 +144,7 @@ th.catStr_ = q1.GetString(wxT("CATEGNAME")); mmDBWrapper::getBudgetEntry(db_, budgetYearID_, th.categID_, th.subcategID_, th.period_, th.amt_); - setBudgetEstimate(th,monthlyBudget,yearBegin,yearEnd); + setBudgetEstimate(th,monthlyBudget); if (th.estimated_ < 0) { estExpenses += th.estimated_; } else { @@ -208,7 +208,7 @@ thsub.subCatStr_ = q2.GetString(wxT("SUBCATEGNAME")); mmDBWrapper::getBudgetEntry(db_, budgetYearID_, thsub.categID_, thsub.subcategID_, thsub.period_, thsub.amt_); - setBudgetEstimate(thsub,monthlyBudget,yearBegin,yearEnd); + setBudgetEstimate(thsub,monthlyBudget); mmex::formatDoubleToCurrencyEdit(thsub.estimated_, thsub.estimatedStr_); if (thsub.estimated_ < 0) { estExpenses += thsub.estimated_; Modified: trunk/mmex/src/reportbudgetingperf.cpp =================================================================== --- trunk/mmex/src/reportbudgetingperf.cpp 2012-04-20 23:51:38 UTC (rev 2196) +++ trunk/mmex/src/reportbudgetingperf.cpp 2012-04-20 23:54:18 UTC (rev 2197) @@ -18,8 +18,6 @@ void mmReportBudgetingPerformance::DisplayEstimateMonths(mmHTMLBuilder& hb, mmBudgetEntryHolder& budgetEntry, int startMonth) { - int daysInMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31}; - int month; for (int yidx = 0; yidx < 12; yidx++) { @@ -30,8 +28,7 @@ } // Set the estimate for each month wxString monthEstimateStr; - long monthEstimate = budgetEntry.estimated_ * daysInMonth[month]; - mmex::formatDoubleToCurrencyEdit(monthEstimate, monthEstimateStr); + mmex::formatDoubleToCurrencyEdit(budgetEntry.estimated_ / 12, monthEstimateStr); hb.addTableCell(monthEstimateStr, true, true); } } @@ -106,11 +103,6 @@ hb.addHeader(3, _("Budget Performance for ") + headingStr ); DisplayDateHeading(hb, yearBegin, yearEnd); - double estIncome = 0.0; - double estExpenses = 0.0; - double actIncome = 0.0; - double actExpenses = 0.0; - hb.startCenter(); hb.startTable(); @@ -157,17 +149,11 @@ mmDBWrapper::getBudgetEntry(db_, budgetYearID_, th.categID_, th.subcategID_, th.period_, th.amt_); // Set the estimated amount for the year - setBudgetDailyEstimateAmount(th, startMonth); - double totalEstimated_ = th.estimated_ * 365; + setBudgetYearlyEstimate(th); + double totalEstimated_ = th.estimated_; wxString totalEstimatedStr_; mmex::formatDoubleToCurrencyEdit(totalEstimated_, totalEstimatedStr_); - // Set the overall estimated values - if (totalEstimated_ < 0) - estExpenses += totalEstimated_; - else - estIncome += totalEstimated_; - // set the actual amount for the year bool transferAsDeposit = true; if (th.amt_ < 0) @@ -179,11 +165,6 @@ ); mmex::formatDoubleToCurrencyEdit(th.actual_, th.actualStr_); - if (th.actual_ < 0) - actExpenses += th.actual_; - else - actIncome += th.actual_; - wxString displayAmtString; mmex::formatDoubleToCurrencyEdit(th.amt_, displayAmtString); th.amtString_ = displayAmtString; @@ -249,16 +230,10 @@ mmDBWrapper::getBudgetEntry(db_, budgetYearID_, thsub.categID_, thsub.subcategID_, thsub.period_, thsub.amt_); // Set the estimated amount for the year - setBudgetDailyEstimateAmount(thsub, startMonth); - totalEstimated_ = thsub.estimated_ * 365; + setBudgetYearlyEstimate(thsub); + totalEstimated_ = thsub.estimated_; mmex::formatDoubleToCurrencyEdit(totalEstimated_, totalEstimatedStr_); - // Set the overall estimated amount for the year - if (totalEstimated_ < 0) - estExpenses += totalEstimated_; - else - estIncome += totalEstimated_; - // set the actual abount for the year transferAsDeposit = true; if (thsub.amt_ < 0) @@ -270,12 +245,6 @@ ); mmex::formatDoubleToCurrencyEdit(thsub.actual_, thsub.actualStr_); - // set the overall actual abount for the year - if (thsub.actual_ < 0) - actExpenses += thsub.actual_; - else - actIncome += thsub.actual_; - mmex::formatDoubleToCurrencyEdit(thsub.amt_, displayAmtString); thsub.amtString_ = displayAmtString; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |