diff --git a/po/POTFILES.in b/po/POTFILES.in index 8411eb71da..d5b8de8998 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -23,6 +23,7 @@ src/app-utils/gnc-helpers.c src/app-utils/gnc-help-utils.c src/app-utils/gncmod-app-utils.c src/app-utils/gnc-sx-instance-model.c +src/app-utils/gnc-ui-balances.c src/app-utils/gnc-ui-util.c src/app-utils/guile-util.c src/app-utils/option-util.c diff --git a/src/app-utils/Makefile.am b/src/app-utils/Makefile.am index 00c78ac7ba..751cc12d03 100644 --- a/src/app-utils/Makefile.am +++ b/src/app-utils/Makefile.am @@ -59,6 +59,7 @@ libgncmod_app_utils_la_SOURCES = \ gnc-helpers.c \ gnc-sx-instance-model.c \ gncmod-app-utils.c \ + gnc-ui-balances.c \ gnc-ui-util.c \ guile-util.c \ option-util.c @@ -89,6 +90,7 @@ gncinclude_HEADERS = \ gnc-help-utils.h \ gnc-helpers.h \ gnc-sx-instance-model.h \ + gnc-ui-balances.h \ gnc-ui-util.h \ guile-util.h \ option-util.h diff --git a/src/app-utils/gnc-ui-balances.c b/src/app-utils/gnc-ui-balances.c new file mode 100644 index 0000000000..052333f53e --- /dev/null +++ b/src/app-utils/gnc-ui-balances.c @@ -0,0 +1,319 @@ +/********************************************************************\ + * gnc-ui-balances.c -- utility functions for calculating * + * account and owner balances used in the * + * the GnuCash UI * + * Copyright (C) 2000 Dave Peticolas * + * Copyright (C) 2011 Geert Janssens * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License as * + * published by the Free Software Foundation; either version 2 of * + * the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License* + * along with this program; if not, contact: * + * * + * Free Software Foundation Voice: +1-617-542-5942 * + * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 * + * Boston, MA 02110-1301, USA gnu@gnu.org * +\********************************************************************/ + +#include "config.h" + +#include "gnc-ui-balances.h" +#include "gnc-ui-util.h" + +#include + +#include "Account.h" +#include "gncOwner.h" +#include "qof.h" + +static QofLogModule log_module = GNC_MOD_GUI; + +/******************************************************************** + * Balance calculations related to accounts + ********************************************************************/ + +/* + * This is a wrapper routine around an xaccGetBalanceInCurrency + * function that handles additional needs of the gui. + * + * @param fn The underlying function in Account.c to call to retrieve + * a specific balance from the account. + * @param account The account to retrieve data about. + * @param recurse Include all sub-accounts of this account. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + * @param commodity The commodity in which the account balance should + * be returned. If NULL, the value will be returned in + * the commodity of the account. This is normally used + * to specify a currency, which forces the conversion + * of things like stock account values from share + * values to an amount the requested currency. + */ +gnc_numeric +gnc_ui_account_get_balance_full (xaccGetBalanceInCurrencyFn fn, + const Account *account, + gboolean recurse, + gboolean *negative, + const gnc_commodity *commodity) +{ + gnc_numeric balance; + + balance = fn(account, commodity, recurse); + + /* reverse sign if needed */ + if (gnc_reverse_balance (account)) + balance = gnc_numeric_neg (balance); + + /* Record whether the balance is negative. */ + if (negative) + *negative = gnc_numeric_negative_p(balance); + + return balance; +} + +/* + * This routine retrieves the total balance in an account, possibly + * including all sub-accounts under the specified account. + */ +gnc_numeric +gnc_ui_account_get_balance (const Account *account, gboolean recurse) +{ + return gnc_ui_account_get_balance_full (xaccAccountGetBalanceInCurrency, + account, recurse, NULL, NULL); +} + +/* + * This routine retrieves the total balance in an account converted to + * a given currency, possibly including all sub-accounts under the + * specified account. + */ +gnc_numeric +gnc_ui_account_get_balance_in_currency (const Account *account, + const gnc_commodity *currency, + gboolean recurse) +{ + return gnc_ui_account_get_balance_full (xaccAccountGetBalanceInCurrency, + account, recurse, NULL, currency); +} + +/* + * This routine retrieves the reconciled balance in an account, + * possibly including all sub-accounts under the specified account. + */ +gnc_numeric +gnc_ui_account_get_reconciled_balance (const Account *account, + gboolean recurse) +{ + return gnc_ui_account_get_balance_full (xaccAccountGetReconciledBalanceInCurrency, + account, recurse, NULL, NULL); +} + + +/** + * Wrapper around gnc_ui_account_get_balance_full that converts + * the resulting number to a character string. The number is + * formatted according to the specification of the account currency. + * The caller is responsible for g_free'ing the returned memory. + * + * @param fn The underlying function in Account.c to call to retrieve + * a specific balance from the account. + * @param account The account to retrieve data about. + * @param recurse Include all sub-accounts of this account. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + */ +gchar * +gnc_ui_account_get_print_balance (xaccGetBalanceInCurrencyFn fn, + const Account *account, + gboolean recurse, + gboolean *negative) +{ + GNCPrintAmountInfo print_info; + gnc_numeric balance; + + balance = gnc_ui_account_get_balance_full(fn, account, recurse, + negative, NULL); + print_info = gnc_account_print_info(account, TRUE); + return g_strdup(xaccPrintAmount(balance, print_info)); +} + + +/** + * Wrapper around gnc_ui_account_get_balance_full that converts + * the resulting number to a character string. The number is + * formatted according to the specification of the default reporting + * currency. + * + * @param fn The underlying function in Account.c to call to retrieve + * a specific balance from the account. + * @param account The account to retrieve data about. + * @param recurse Include all sub-accounts of this account. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + */ +gchar * +gnc_ui_account_get_print_report_balance (xaccGetBalanceInCurrencyFn fn, + const Account *account, + gboolean recurse, + gboolean *negative) +{ + GNCPrintAmountInfo print_info; + gnc_numeric balance; + gnc_commodity *report_commodity; + + report_commodity = gnc_default_report_currency(); + balance = gnc_ui_account_get_balance_full(fn, account, recurse, + negative, report_commodity); + print_info = gnc_commodity_print_info(report_commodity, TRUE); + return g_strdup(xaccPrintAmount(balance, print_info)); +} + + +gnc_numeric +gnc_ui_account_get_balance_as_of_date (Account *account, + time_t date, + gboolean include_children) +{ + gnc_numeric balance; + gnc_commodity *currency; + + if (account == NULL) + return gnc_numeric_zero (); + + currency = xaccAccountGetCommodity (account); + balance = xaccAccountGetBalanceAsOfDate (account, date); + + if (include_children) + { + GList *children, *node; + + children = gnc_account_get_descendants(account); + + for (node = children; node; node = node->next) + { + Account *child; + gnc_commodity *child_currency; + gnc_numeric child_balance; + + child = node->data; + child_currency = xaccAccountGetCommodity (child); + child_balance = xaccAccountGetBalanceAsOfDate (child, date); + child_balance = xaccAccountConvertBalanceToCurrency (child, + child_balance, child_currency, currency); + balance = gnc_numeric_add_fixed (balance, child_balance); + } + + g_list_free(children); + } + + /* reverse sign if needed */ + if (gnc_reverse_balance (account)) + balance = gnc_numeric_neg (balance); + + return balance; +} + + +/******************************************************************** + * Balance calculations related to owners + ********************************************************************/ + +/* + * This is a wrapper routine around an gncOwnerGetBalanceInCurrency + * function that handles additional needs of the gui. + * + * @param owner The owner to retrieve data about. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + * @param commodity The commodity in which the account balance should + * be returned. If NULL, the value will be returned in + * the commodity of the owner. This is normally used + * to specify a currency, which forces the conversion + * of things like stock account values from share + * values to an amount the requested currency. + */ +gnc_numeric +gnc_ui_owner_get_balance_full (GncOwner *owner, + gboolean *negative, + const gnc_commodity *commodity) +{ + gnc_numeric balance; + + if (!owner) + return gnc_numeric_zero (); + + balance = gncOwnerGetBalanceInCurrency (owner, commodity); + + /* reverse sign if needed */ + if ((gncOwnerGetType (owner) != GNC_OWNER_CUSTOMER)) + balance = gnc_numeric_neg (balance); + + /* Record whether the balance is negative. */ + if (negative) + *negative = gnc_numeric_negative_p (balance); + + return balance; +} + + +/** + * Wrapper around gnc_ui_owner_get_balance_full that converts + * the resulting number to a character string. The number is + * formatted according to the specification of the owner currency. + * The caller is responsible for g_free'ing the returned memory. + * + * @param owner The owner to retrieve data about. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + */ +gchar * +gnc_ui_owner_get_print_balance (GncOwner *owner, + gboolean *negative) +{ + gnc_numeric balance; + GNCPrintAmountInfo print_info; + + balance = gnc_ui_owner_get_balance_full (owner, negative, NULL); + print_info = gnc_commodity_print_info (gncOwnerGetCurrency (owner), TRUE); + return g_strdup (xaccPrintAmount (balance, print_info)); +} + +/** + * Wrapper around gnc_ui_owner_get_balance_full that converts + * the resulting number to a character string. The number is + * formatted according to the specification of the default reporting + * currency. + * + * @param account The owner to retrieve data about. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + */ +gchar * +gnc_ui_owner_get_print_report_balance (GncOwner *owner, + gboolean *negative) +{ + GNCPrintAmountInfo print_info; + gnc_numeric balance; + gnc_commodity *report_commodity; + + report_commodity = gnc_default_report_currency (); + balance = gnc_ui_owner_get_balance_full (owner, negative, + report_commodity); + print_info = gnc_commodity_print_info (report_commodity, TRUE); + return g_strdup (xaccPrintAmount (balance, print_info)); +} + diff --git a/src/app-utils/gnc-ui-balances.h b/src/app-utils/gnc-ui-balances.h new file mode 100644 index 0000000000..107c60391b --- /dev/null +++ b/src/app-utils/gnc-ui-balances.h @@ -0,0 +1,146 @@ +/********************************************************************\ + * gnc-ui-balances.c -- utility functions for calculating * + * account and owner balances used in the * + * the GnuCash UI * + * Copyright (C) 2000 Dave Peticolas * + * Copyright (C) 2011 Geert Janssens * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License as * + * published by the Free Software Foundation; either version 2 of * + * the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License* + * along with this program; if not, contact: * + * * + * Free Software Foundation Voice: +1-617-542-5942 * + * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 * + * Boston, MA 02110-1301, USA gnu@gnu.org * +\********************************************************************/ + + + +#ifndef GNC_UI_BALANCES_H_ +#define GNC_UI_BALANCES_H_ + +#include + +#include "Account.h" +#include "gncOwner.h" +#include "qof.h" + +/******************************************************************** + * Balance calculations related to accounts + ********************************************************************/ + +gnc_numeric +gnc_ui_account_get_balance_full (xaccGetBalanceInCurrencyFn fn, + const Account *account, + gboolean recurse, + gboolean *negative, + const gnc_commodity *commodity); + +/** + * This routine retrieves the total balance in an account, possibly + * including all sub-accounts under the specified account. + * + * @param account The account to retrieve data about. + * @param include_children Include all sub-accounts of this account. + */ +gnc_numeric gnc_ui_account_get_balance (const Account *account, + gboolean include_children); + +gnc_numeric gnc_ui_account_get_balance_in_currency (const Account *account, + const gnc_commodity *currency, + gboolean recurse); +/** + * This routine retrieves the reconciled balance in an account, + * possibly including all sub-accounts under the specified account. + * + * @param account The account to retrieve data about. + * @param include_children Include all sub-accounts of this account. + */ +gnc_numeric gnc_ui_account_get_reconciled_balance(const Account *account, + gboolean include_children); + +/** + * Wrapper around gnc_ui_account_get_balance_internal that converts + * the resulting number to a character string. The number is + * formatted according to the specification of the account currency. + * + * @param fn The underlying function in Account.c to call to retrieve + * a specific balance from the account. + * @param account The account to retrieve data about. + * @param recurse Include all sub-accounts of this account. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + */ +gchar * +gnc_ui_account_get_print_balance (xaccGetBalanceInCurrencyFn fn, + const Account *account, + gboolean recurse, + gboolean *negative); + +/** + * Wrapper around gnc_ui_account_get_balance_internal that converts + * the resulting number to a character string. The number is + * formatted according to the specification of the default reporting + * currency. + * + * @param fn The underlying function in Account.c to call to retrieve + * a specific balance from the account. + * @param account The account to retrieve data about. + * @param recurse Include all sub-accounts of this account. + * @param negative An indication of whether or not the returned value + * is negative. This can be used by the caller to + * easily decode whether or not to color the output. + */ +gchar * +gnc_ui_account_get_print_report_balance (xaccGetBalanceInCurrencyFn fn, + const Account *account, + gboolean recurse, + gboolean *negative); + +gnc_numeric gnc_ui_account_get_balance_as_of_date (Account *account, + time_t date, + gboolean include_children); + +/******************************************************************** + * Balance calculations related to owners + ********************************************************************/ + +/** Get the balance for the underlying owner object. + * The returned value is always positive, + * intended to be displayed to a user. However the real sign + * of the balance is indicated via the "negative" parameter. + */ +gnc_numeric gnc_ui_owner_get_balance_full (GncOwner *owner, + gboolean *negative, + const gnc_commodity *commodity); + +/** Get the balance for the underlying owner object in string format + * and the owner's native currency. + * The returned value is always positive, + * intended to be displayed to a user. However the real sign + * of the balance is indicated via the "negative" parameter. + */ +gchar * gnc_ui_owner_get_print_balance (GncOwner *owner, + gboolean *negative); + +/** Get the balance for the underlying owner object in string format + * and in the default report currency. + * The returned value is always positive, + * intended to be displayed to a user. However the real sign + * of the balance is indicated via the "negative" parameter. + */ +gchar * gnc_ui_owner_get_print_report_balance (GncOwner *owner, + gboolean *negative); + + +#endif /* GNC_UI_BALANCES_H_ */ diff --git a/src/app-utils/gnc-ui-util.c b/src/app-utils/gnc-ui-util.c index df5a0c78ef..4a2ab73313 100644 --- a/src/app-utils/gnc-ui-util.c +++ b/src/app-utils/gnc-ui-util.c @@ -271,278 +271,6 @@ gnc_account_lookup_for_register(const Account *base_account, const char *name) } -/* - * This is a wrapper routine around an xaccGetBalanceInCurrency - * function that handles additional needs of the gui. - * - * @param fn The underlying function in Account.c to call to retrieve - * a specific balance from the account. - * @param account The account to retrieve data about. - * @param recurse Include all sub-accounts of this account. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - * @param commodity The commodity in which the account balance should - * be returned. If NULL, the value will be returned in - * the commodity of the account. This is normally used - * to specify a currency, which forces the conversion - * of things like stock account values from share - * values to an amount the requested currency. - */ -gnc_numeric -gnc_ui_account_get_balance_full (xaccGetBalanceInCurrencyFn fn, - const Account *account, - gboolean recurse, - gboolean *negative, - const gnc_commodity *commodity) -{ - gnc_numeric balance; - - balance = fn(account, commodity, recurse); - - /* reverse sign if needed */ - if (gnc_reverse_balance (account)) - balance = gnc_numeric_neg (balance); - - /* Record whether the balance is negative. */ - if (negative) - *negative = gnc_numeric_negative_p(balance); - - return balance; -} - -/* - * This routine retrieves the total balance in an account, possibly - * including all sub-accounts under the specified account. - */ -gnc_numeric -gnc_ui_account_get_balance (const Account *account, gboolean recurse) -{ - return gnc_ui_account_get_balance_full (xaccAccountGetBalanceInCurrency, - account, recurse, NULL, NULL); -} - -/* - * This routine retrieves the total balance in an account converted to - * a given currency, possibly including all sub-accounts under the - * specified account. - */ -gnc_numeric -gnc_ui_account_get_balance_in_currency (const Account *account, - const gnc_commodity *currency, - gboolean recurse) -{ - return gnc_ui_account_get_balance_full (xaccAccountGetBalanceInCurrency, - account, recurse, NULL, currency); -} - -/* - * This routine retrieves the reconciled balance in an account, - * possibly including all sub-accounts under the specified account. - */ -gnc_numeric -gnc_ui_account_get_reconciled_balance (const Account *account, - gboolean recurse) -{ - return gnc_ui_account_get_balance_full (xaccAccountGetReconciledBalanceInCurrency, - account, recurse, NULL, NULL); -} - - -/** - * Wrapper around gnc_ui_account_get_balance_full that converts - * the resulting number to a character string. The number is - * formatted according to the specification of the account currency. - * The caller is responsible for g_free'ing the returned memory. - * - * @param fn The underlying function in Account.c to call to retrieve - * a specific balance from the account. - * @param account The account to retrieve data about. - * @param recurse Include all sub-accounts of this account. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - */ -gchar * -gnc_ui_account_get_print_balance (xaccGetBalanceInCurrencyFn fn, - const Account *account, - gboolean recurse, - gboolean *negative) -{ - GNCPrintAmountInfo print_info; - gnc_numeric balance; - - balance = gnc_ui_account_get_balance_full(fn, account, recurse, - negative, NULL); - print_info = gnc_account_print_info(account, TRUE); - return g_strdup(xaccPrintAmount(balance, print_info)); -} - - -/** - * Wrapper around gnc_ui_account_get_balance_full that converts - * the resulting number to a character string. The number is - * formatted according to the specification of the default reporting - * currency. - * - * @param fn The underlying function in Account.c to call to retrieve - * a specific balance from the account. - * @param account The account to retrieve data about. - * @param recurse Include all sub-accounts of this account. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - */ -gchar * -gnc_ui_account_get_print_report_balance (xaccGetBalanceInCurrencyFn fn, - const Account *account, - gboolean recurse, - gboolean *negative) -{ - GNCPrintAmountInfo print_info; - gnc_numeric balance; - gnc_commodity *report_commodity; - - report_commodity = gnc_default_report_currency(); - balance = gnc_ui_account_get_balance_full(fn, account, recurse, - negative, report_commodity); - print_info = gnc_commodity_print_info(report_commodity, TRUE); - return g_strdup(xaccPrintAmount(balance, print_info)); -} - - -gnc_numeric -gnc_ui_account_get_balance_as_of_date (Account *account, - time_t date, - gboolean include_children) -{ - gnc_numeric balance; - gnc_commodity *currency; - - if (account == NULL) - return gnc_numeric_zero (); - - currency = xaccAccountGetCommodity (account); - balance = xaccAccountGetBalanceAsOfDate (account, date); - - if (include_children) - { - GList *children, *node; - - children = gnc_account_get_descendants(account); - - for (node = children; node; node = node->next) - { - Account *child; - gnc_commodity *child_currency; - gnc_numeric child_balance; - - child = node->data; - child_currency = xaccAccountGetCommodity (child); - child_balance = xaccAccountGetBalanceAsOfDate (child, date); - child_balance = xaccAccountConvertBalanceToCurrency (child, - child_balance, child_currency, currency); - balance = gnc_numeric_add_fixed (balance, child_balance); - } - - g_list_free(children); - } - - /* reverse sign if needed */ - if (gnc_reverse_balance (account)) - balance = gnc_numeric_neg (balance); - - return balance; -} - -/* - * This is a wrapper routine around an gncOwnerGetBalanceInCurrency - * function that handles additional needs of the gui. - * - * @param owner The owner to retrieve data about. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - * @param commodity The commodity in which the account balance should - * be returned. If NULL, the value will be returned in - * the commodity of the owner. This is normally used - * to specify a currency, which forces the conversion - * of things like stock account values from share - * values to an amount the requested currency. - */ -gnc_numeric -gnc_ui_owner_get_balance_full (GncOwner *owner, - gboolean *negative, - const gnc_commodity *commodity) -{ - gnc_numeric balance; - - if (!owner) - return gnc_numeric_zero (); - - balance = gncOwnerGetBalanceInCurrency (owner, commodity); - - /* reverse sign if needed */ - if ((gncOwnerGetType (owner) != GNC_OWNER_CUSTOMER)) - balance = gnc_numeric_neg (balance); - - /* Record whether the balance is negative. */ - if (negative) - *negative = gnc_numeric_negative_p (balance); - - return balance; -} - - -/** - * Wrapper around gnc_ui_owner_get_balance_full that converts - * the resulting number to a character string. The number is - * formatted according to the specification of the owner currency. - * The caller is responsible for g_free'ing the returned memory. - * - * @param owner The owner to retrieve data about. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - */ -gchar * -gnc_ui_owner_get_print_balance (GncOwner *owner, - gboolean *negative) -{ - gnc_numeric balance; - GNCPrintAmountInfo print_info; - - balance = gnc_ui_owner_get_balance_full (owner, negative, NULL); - print_info = gnc_commodity_print_info (gncOwnerGetCurrency (owner), TRUE); - return g_strdup (xaccPrintAmount (balance, print_info)); -} - -/** - * Wrapper around gnc_ui_owner_get_balance_full that converts - * the resulting number to a character string. The number is - * formatted according to the specification of the default reporting - * currency. - * - * @param account The owner to retrieve data about. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - */ -gchar * -gnc_ui_owner_get_print_report_balance (GncOwner *owner, - gboolean *negative) -{ - GNCPrintAmountInfo print_info; - gnc_numeric balance; - gnc_commodity *report_commodity; - - report_commodity = gnc_default_report_currency (); - balance = gnc_ui_owner_get_balance_full (owner, negative, - report_commodity); - print_info = gnc_commodity_print_info (report_commodity, TRUE); - return g_strdup (xaccPrintAmount (balance, print_info)); -} - /* Caller is responsible for g_free'ing returned memory */ char * gnc_ui_account_get_tax_info_string (const Account *account) diff --git a/src/app-utils/gnc-ui-util.h b/src/app-utils/gnc-ui-util.h index 674334f78a..d3ba296018 100644 --- a/src/app-utils/gnc-ui-util.h +++ b/src/app-utils/gnc-ui-util.h @@ -107,110 +107,10 @@ Account *gnc_account_lookup_for_register(const Account *base_account, const * of things like stock account values from share * values to an amount the requested currency. */ -gnc_numeric -gnc_ui_account_get_balance_full (xaccGetBalanceInCurrencyFn fn, - const Account *account, - gboolean recurse, - gboolean *negative, - const gnc_commodity *commodity); - -/** - * This routine retrives the total balance in an account, possibly - * including all sub-accounts under the specified account. - * - * @param account The account to retrieve data about. - * @param include_children Include all sub-accounts of this account. - */ -gnc_numeric gnc_ui_account_get_balance (const Account *account, - gboolean include_children); - -gnc_numeric gnc_ui_account_get_balance_in_currency (const Account *account, - const gnc_commodity *currency, - gboolean recurse); -/** - * This routine retrives the reconciled balance in an account, - * possibly including all sub-accounts under the specified account. - * - * @param account The account to retrieve data about. - * @param include_children Include all sub-accounts of this account. - */ -gnc_numeric gnc_ui_account_get_reconciled_balance(const Account *account, - gboolean include_children); - -/** - * Wrapper around gnc_ui_account_get_balance_internal that converts - * the resulting number to a character string. The number is - * formatted according to the specification of the account currency. - * - * @param fn The underlying function in Account.c to call to retrieve - * a specific balance from the account. - * @param account The account to retrieve data about. - * @param recurse Include all sub-accounts of this account. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - */ -gchar * -gnc_ui_account_get_print_balance (xaccGetBalanceInCurrencyFn fn, - const Account *account, - gboolean recurse, - gboolean *negative); - -/** - * Wrapper around gnc_ui_account_get_balance_internal that converts - * the resulting number to a character string. The number is - * formatted according to the specification of the default reporting - * currency. - * - * @param fn The underlying function in Account.c to call to retrieve - * a specific balance from the account. - * @param account The account to retrieve data about. - * @param recurse Include all sub-accounts of this account. - * @param negative An indication of whether or not the returned value - * is negative. This can be used by the caller to - * easily decode whether or not to color the output. - */ -gchar * -gnc_ui_account_get_print_report_balance (xaccGetBalanceInCurrencyFn fn, - const Account *account, - gboolean recurse, - gboolean *negative); - -/** Get the balance for the underlying owner object. - * The returned value is always positive, - * intended to be displayed to a user. However the real sign - * of the balance is indicated via the "negative" parameter. - */ -gnc_numeric gnc_ui_owner_get_balance_full (GncOwner *owner, - gboolean *negative, - const gnc_commodity *commodity); - -/** Get the balance for the underlying owner object in string format - * and the owner's native currency. - * The returned value is always positive, - * intended to be displayed to a user. However the real sign - * of the balance is indicated via the "negative" parameter. - */ -gchar * gnc_ui_owner_get_print_balance (GncOwner *owner, - gboolean *negative); - -/** Get the balance for the underlying owner object in string format - * and in the default report currency. - * The returned value is always positive, - * intended to be displayed to a user. However the real sign - * of the balance is indicated via the "negative" parameter. - */ -gchar * gnc_ui_owner_get_print_report_balance (GncOwner *owner, - gboolean *negative); - char *gnc_ui_account_get_tax_info_string (const Account *account); char *gnc_ui_account_get_tax_info_sub_acct_string (const Account *account); -gnc_numeric gnc_ui_account_get_balance_as_of_date (Account *account, - time_t date, - gboolean include_children); - const char * gnc_get_reconcile_str (char reconciled_flag); const char * gnc_get_reconcile_valid_flags (void); const char * gnc_get_reconcile_flag_order (void); diff --git a/src/gnome-utils/gnc-tree-model-account.c b/src/gnome-utils/gnc-tree-model-account.c index 9678ca6bac..ec744382d2 100644 --- a/src/gnome-utils/gnc-tree-model-account.c +++ b/src/gnome-utils/gnc-tree-model-account.c @@ -38,6 +38,7 @@ #include "gnc-engine.h" #include "gnc-event.h" #include "gnc-gobject-utils.h" +#include "gnc-ui-balances.h" #include "gnc-ui-util.h" #define TREE_MODEL_ACCOUNT_CM_CLASS "tree-model-account" diff --git a/src/gnome-utils/gnc-tree-model-owner.c b/src/gnome-utils/gnc-tree-model-owner.c index a44985456c..e496c0919c 100644 --- a/src/gnome-utils/gnc-tree-model-owner.c +++ b/src/gnome-utils/gnc-tree-model-owner.c @@ -36,6 +36,7 @@ #include "gnc-engine.h" #include "gnc-event.h" #include "gnc-gobject-utils.h" +#include "gnc-ui-balances.h" #include "gnc-ui-util.h" #define TREE_MODEL_OWNER_CM_CLASS "tree-model-owner" diff --git a/src/gnome-utils/gnc-tree-view-account.c b/src/gnome-utils/gnc-tree-view-account.c index 9585206ccb..35a67365a3 100644 --- a/src/gnome-utils/gnc-tree-view-account.c +++ b/src/gnome-utils/gnc-tree-view-account.c @@ -43,7 +43,7 @@ #include "gnc-hooks.h" #include "gnc-session.h" #include "gnc-icons.h" -#include "gnc-ui-util.h" +#include "gnc-ui-balances.h" #include "dialog-utils.h" #include "window-main-summarybar.h" diff --git a/src/gnome-utils/gnc-tree-view-owner.c b/src/gnome-utils/gnc-tree-view-owner.c index a8e9a559b8..3fce1c72ba 100644 --- a/src/gnome-utils/gnc-tree-view-owner.c +++ b/src/gnome-utils/gnc-tree-view-owner.c @@ -42,7 +42,7 @@ #include "gnc-hooks.h" #include "gnc-session.h" #include "gnc-icons.h" -#include "gnc-ui-util.h" +#include "gnc-ui-balances.h" #include "dialog-utils.h" #include "window-main-summarybar.h" #include "assistant-utils.h" diff --git a/src/gnome/window-reconcile.c b/src/gnome/window-reconcile.c index 420345bc26..b39a054080 100644 --- a/src/gnome/window-reconcile.c +++ b/src/gnome/window-reconcile.c @@ -47,6 +47,7 @@ #include "gnc-main-window.h" #include "gnc-plugin-page-register.h" #include "gnc-ui.h" +#include "gnc-ui-balances.h" #include "guile-util.h" #include "reconcile-list.h" #include "window-reconcile.h"