diff --git a/src/engine/gnc-budget.c b/src/engine/gnc-budget.c index 86a4a660ed..ae1e2e391e 100644 --- a/src/engine/gnc-budget.c +++ b/src/engine/gnc-budget.c @@ -35,8 +35,6 @@ #include "gnc-budget.h" #include "gnc-commodity.h" #include "gnc-gdate-utils.h" -#include "gnc-prefs.h" -/*#include "app-utils/gnc-ui-util.h" for gnc_reverse_balance */ static QofLogModule log_module = GNC_MOD_ENGINE; @@ -498,52 +496,6 @@ gnc_budget_unset_account_period_value(GncBudget *budget, const Account *account, } -/******************************************************\ - * this helper function has been placed here, because * - * the "original" function gnc_reverse_balance is not * - * reachable from here with the current build setup * -\******************************************************/ - -gboolean -gnc_is_account_reverse_balance (const Account *account) -{ - int type; - - type = xaccAccountGetType (account); - - if (gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, "reversed-accounts-incomeexpense")) - { - switch (type) { - case ACCT_TYPE_INCOME: return TRUE; - break; - case ACCT_TYPE_EXPENSE: return TRUE; - break; - default: return FALSE; - break; - } - } - else if (gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, "reversed-accounts-credit")) - { - switch (type) { - case ACCT_TYPE_LIABILITY: return TRUE; - break; - case ACCT_TYPE_PAYABLE: return TRUE; - break; - case ACCT_TYPE_EQUITY: return TRUE; - break; - case ACCT_TYPE_INCOME: return TRUE; - break; - case ACCT_TYPE_CREDIT: return TRUE; - break; - default: return FALSE; - break; - } - } - - return FALSE; - -} - /* period_num is zero-based */ /* What happens when account is deleted, after we have an entry for it? */ void @@ -572,12 +524,7 @@ gnc_budget_set_account_period_value(GncBudget *budget, const Account *account, if (gnc_numeric_check(val)) kvp_frame_set_value(frame, path, NULL); else - { - if (gnc_is_account_reverse_balance (account)) - val = gnc_numeric_neg (val); - kvp_frame_set_numeric(frame, path, val); - } qof_instance_set_dirty(&budget->inst); gnc_budget_commit_edit(budget); @@ -623,10 +570,6 @@ gnc_budget_get_account_period_value(const GncBudget *budget, const Account *acco g_sprintf(bufend, "/%d", period_num); numeric = kvp_frame_get_numeric(frame, path); - - if (gnc_is_account_reverse_balance (account)) - numeric = gnc_numeric_neg (numeric); - /* This still returns zero if unset, but callers can check for that. */ return numeric; } diff --git a/src/engine/gnc-budget.h b/src/engine/gnc-budget.h index 3d2ce1fbd2..35815d06ca 100644 --- a/src/engine/gnc-budget.h +++ b/src/engine/gnc-budget.h @@ -136,9 +136,6 @@ Timespec gnc_budget_get_period_start_date(const GncBudget* budget, guint period_ /** Get the ending date of the Budget period*/ Timespec gnc_budget_get_period_end_date(const GncBudget* budget, guint period_num); -/* local helper to check what preferences have been set for account reverse */ -gboolean gnc_is_account_reverse_balance (const Account *account); - /* Period indices are zero-based. */ void gnc_budget_set_account_period_value( GncBudget* budget, const Account* account, guint period_num, gnc_numeric val); diff --git a/src/gnome/gnc-plugin-page-budget.c b/src/gnome/gnc-plugin-page-budget.c index 6025a40406..f76f881cd2 100644 --- a/src/gnome/gnc-plugin-page-budget.c +++ b/src/gnome/gnc-plugin-page-budget.c @@ -869,6 +869,10 @@ estimate_budget_helper(GtkTreeModel *model, GtkTreePath *path, num = recurrenceGetAccountPeriodValue(&priv->r, acct, i); if (!gnc_numeric_check(num)) { + if (gnc_reverse_balance (acct)) + num = gnc_numeric_neg (num); + + num = gnc_numeric_convert(num, GNC_DENOM_AUTO, GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) | GNC_HOW_RND_ROUND_HALF_UP); gnc_budget_set_account_period_value( diff --git a/src/report/standard-reports/budget-barchart.scm b/src/report/standard-reports/budget-barchart.scm index 8c9b361547..ccc13725b9 100644 --- a/src/report/standard-reports/budget-barchart.scm +++ b/src/report/standard-reports/budget-barchart.scm @@ -120,51 +120,36 @@ ;; Loop though periods (while (< period num-periods) - (let - ( - (budget-period-value - (gnc-budget-get-account-period-value budget acct period) - ) - (actual-period-value - (gnc-budget-get-account-period-actual-value budget acct period) - ) - ) - ;; take care of the reverse account preference - ;; only needed for the actual value - ;; for the budget value this is already included - (if (gnc-reverse-balance acct) - (set! actual-period-value - (gnc-numeric-neg actual-period-value) - ) - ) + ;; Add calc new running sum and add to list + (if running-sum + (set! bgt-sum (+ bgt-sum + (gnc-numeric-to-double + (gnc-budget-get-account-period-value budget acct period)))) + + (set! bgt-sum + (gnc-numeric-to-double + (gnc-budget-get-account-period-value budget acct period))) + ) + (set! bgt-vals (append bgt-vals (list bgt-sum))) - ;; do the conversion - (set! budget-period-value (gnc-numeric-to-double budget-period-value)) - (set! actual-period-value (gnc-numeric-to-double actual-period-value)) + (if running-sum + (set! act-sum (+ act-sum + (gnc-numeric-to-double + (gnc-budget-get-account-period-actual-value budget acct period)))) + + (set! act-sum + (gnc-numeric-to-double + (gnc-budget-get-account-period-actual-value budget acct period))) + ) + (set! act-vals (append act-vals (list act-sum))) - ;; Add calc new running sum and add to list - (if running-sum - (set! bgt-sum (+ bgt-sum budget-period-value)) - ;; else - (set! bgt-sum budget-period-value) - ) - (set! bgt-vals (append bgt-vals (list bgt-sum))) + ;; Add period to date list + (set! date (gnc-budget-get-period-start-date budget period)) + (set! date-list (append date-list (list (gnc-print-date date)))) - (if running-sum - (set! act-sum (+ act-sum actual-period-value)) - ;; else - (set! act-sum actual-period-value) - ) - (set! act-vals (append act-vals (list act-sum))) - - ;; Add period to date list - (set! date (gnc-budget-get-period-start-date budget period)) - (set! date-list (append date-list (list (gnc-print-date date)))) - - (set! period (+ period 1)) - );; end of let - );; end of while + (set! period (+ period 1)) + ) ;; Add data to chart (gnc:html-barchart-append-column! chart bgt-vals) diff --git a/src/report/standard-reports/budget-income-statement.scm b/src/report/standard-reports/budget-income-statement.scm index 042949e84b..bb110f4721 100644 --- a/src/report/standard-reports/budget-income-statement.scm +++ b/src/report/standard-reports/budget-income-statement.scm @@ -570,32 +570,11 @@ ;; Total expenses. (set! expense-total (gnc:get-assoc-account-balances-total expense-account-balances)) - (if (gnc-reverse-balance (car expense-accounts)) - (set! expense-total - (gnc:commodity-collector-get-negated expense-total) - ) - ) ;; Function to get individual expense account total. (set! expense-get-balance-fn (lambda (account start-date end-date) - (let - ( - (individual-balance - (gnc:select-assoc-account-balance - expense-account-balances - account - ) - ) - ) - (if (gnc-reverse-balance account) - (gnc:commodity-collector-get-negated individual-balance) - ;; else - individual-balance - ) - ) - ) - ) + (gnc:select-assoc-account-balance expense-account-balances account))) (gnc:report-percent-done 10) @@ -613,33 +592,13 @@ ;; Total revenue. (set! revenue-total (gnc:get-assoc-account-balances-total revenue-account-balances)) - (if (not (gnc-reverse-balance (car revenue-accounts))) - (set! revenue-total - (gnc:commodity-collector-get-negated revenue-total) - ) - ) ;; Function to get individual revenue account total. ;; Budget revenue is always positive, so this must be negated. (set! revenue-get-balance-fn (lambda (account start-date end-date) - (let - ( - (individual-balance - (gnc:select-assoc-account-balance - revenue-account-balances - account - ) - ) - ) - (if (gnc-reverse-balance account) - (gnc:commodity-collector-get-negated individual-balance) - ;; else - individual-balance - ) - ) - ) - ) + (gnc:commodity-collector-get-negated + (gnc:select-assoc-account-balance revenue-account-balances account)))) (gnc:report-percent-done 20)