Some cleanup. Add some missing scheme exports.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5188 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-08-19 11:15:56 +00:00
parent 1676f8c02b
commit aa402bb780
6 changed files with 113 additions and 71 deletions

View File

@ -42,6 +42,7 @@
#include "gnc-component-manager.h"
#include "gnc-engine.h"
#include "gnc-engine-util.h"
#include "gnc-module.h"
#include "messages.h"
@ -246,6 +247,87 @@ gnc_ui_account_get_balance (Account *account, gboolean include_children)
}
static char *
gnc_ui_account_get_tax_info_string (Account *account)
{
static SCM get_form = SCM_UNDEFINED;
static SCM get_desc = SCM_UNDEFINED;
GNCAccountType atype;
const char *code;
SCM category;
SCM code_scm;
char *result;
char *form;
char *desc;
SCM scm;
if (get_form == SCM_UNDEFINED)
{
GNCModule module;
module = gnc_module_load ("gnucash/report/locale-specific/us", 0);
g_return_val_if_fail (module, NULL);
get_form = gh_eval_str ("gnc:txf-get-form");
get_desc = gh_eval_str ("gnc:txf-get-description");
}
g_return_val_if_fail (gh_procedure_p (get_form), NULL);
g_return_val_if_fail (gh_procedure_p (get_desc), NULL);
if (!account)
return NULL;
if (!xaccAccountGetTaxRelated (account))
return NULL;
atype = xaccAccountGetType (account);
if (atype != INCOME && atype != EXPENSE)
return NULL;
code = xaccAccountGetTaxUSCode (account);
if (!code)
return NULL;
category = gh_eval_str (atype == INCOME ?
"txf-income-categories" :
"txf-expense-categories");
code_scm = gh_symbol2scm (code);
scm = gh_call2 (get_form, category, code_scm);
if (!gh_string_p (scm))
return NULL;
form = gh_scm2newstr (scm, NULL);
if (!form)
return NULL;
scm = gh_call2 (get_desc, category, code_scm);
if (!gh_string_p (scm))
{
free (form);
return NULL;
}
desc = gh_scm2newstr (scm, NULL);
if (!desc)
{
free (form);
return NULL;
}
result = g_strdup_printf ("%s %s", form, desc);
free (form);
free (desc);
return result;
}
char *
gnc_ui_account_get_field_value_string (Account *account,
AccountFieldCode field)

View File

@ -69,9 +69,6 @@ const char * gnc_ui_account_get_field_name (AccountFieldCode field);
char * gnc_ui_account_get_field_value_string (Account *account,
AccountFieldCode field);
/* Must g_free string when done */
char * gnc_ui_account_get_tax_info_string (Account *account);
gnc_numeric gnc_ui_account_get_balance (Account *account,
gboolean include_children);

View File

@ -1,7 +1,7 @@
TESTS = \
test-link-module \
test-load-module
# test-exp-parser \
# test-exp-parser
TESTS_ENVIRONMENT= \
GNC_MODULE_PATH=../../engine:../../gnc-module:../../calculation:.. \
@ -17,11 +17,12 @@ LDADD = \
../../gnc-module/libgncmodule.la
# ../libgncmod-app-utils.la \
# ../../engine/libgw-engine.la \
# ${top_srcdir}/src/test-core/libgncmod-test.la \
# ${top_srcdir}/src/engine/libgw-glib.la \
# ${top_srcdir}/src/test-core/libgncmod-test.la
bin_PROGRAMS = \
test-link-module
# test-exp-parser \
# test-exp-parser
INCLUDES = \
-I${top_srcdir}/src/test-core \

View File

@ -140,70 +140,6 @@ gnc_tax_info_set_changed (TaxInfoDialog *ti_dialog, gboolean changed)
ti_dialog->changed = changed;
}
char *
gnc_ui_account_get_tax_info_string (Account *account)
{
GNCAccountType atype;
const char *code;
SCM category;
SCM code_scm;
char *result;
char *form;
char *desc;
SCM scm;
if (!account)
return NULL;
if (!xaccAccountGetTaxRelated (account))
return NULL;
atype = xaccAccountGetType (account);
if (atype != INCOME && atype != EXPENSE)
return NULL;
code = xaccAccountGetTaxUSCode (account);
if (!code)
return NULL;
initialize_getters ();
category = gh_eval_str (atype == INCOME ?
"txf-income-categories" :
"txf-expense-categories");
code_scm = gh_symbol2scm (code);
scm = gh_call2 (getters.form, category, code_scm);
if (!gh_string_p (scm))
return NULL;
form = gh_scm2newstr (scm, NULL);
if (!form)
return NULL;
scm = gh_call2 (getters.description, category, code_scm);
if (!gh_string_p (scm))
{
free (form);
return NULL;
}
desc = gh_scm2newstr (scm, NULL);
if (!desc)
{
free (form);
return NULL;
}
result = g_strdup_printf ("%s %s", form, desc);
free (form);
free (desc);
return result;
}
static GList *
load_txf_info (gboolean income)
{

View File

@ -36,6 +36,19 @@
(use-modules (gnucash gnc-module))
(gnc:module-load "gnucash/report/report-system" 0)
(export gnc:txf-get-payer-name-source)
(export gnc:txf-get-form)
(export gnc:txf-get-description)
(export gnc:txf-get-format)
(export gnc:txf-get-multiple)
(export gnc:txf-get-category-key)
(export gnc:txf-get-help)
(export gnc:txf-get-codes)
(export gnc:txf-get-code-info)
(export txf-help-categories)
(export txf-income-categories)
(export txf-expense-categories)
(load-from-path "txf-export.scm")
(load-from-path "txf-export-help.scm")

View File

@ -1,3 +1,16 @@
(define-module (gnucash report locale-specific us))
(use-modules (gnucash report taxtxf))
(export gnc:txf-get-payer-name-source)
(export gnc:txf-get-form)
(export gnc:txf-get-description)
(export gnc:txf-get-format)
(export gnc:txf-get-multiple)
(export gnc:txf-get-category-key)
(export gnc:txf-get-help)
(export gnc:txf-get-codes)
(export gnc:txf-get-code-info)
(export txf-help-categories)
(export txf-income-categories)
(export txf-expense-categories)