gnucash/src/app-utils/app-utils.i

157 lines
4.3 KiB
OpenEdge ABL
Raw Normal View History

%module sw_app_utils
%{
/* Includes the header in the wrapper code */
#include <config.h>
#include <option-util.h>
#include <guile-mappings.h>
#include <gnc-euro.h>
#include <gnc-exp-parser.h>
#include <gnc-ui-util.h>
#include <gnc-gettext-util.h>
#include <gnc-prefs.h>
#include <gnc-helpers.h>
#include <gnc-accounting-period.h>
#include <gnc-session.h>
#include <gnc-component-manager.h>
#include <guile-util.h>
#include <app-utils/gnc-sx-instance-model.h>
#include "engine-helpers-guile.h"
%}
#if defined(SWIGGUILE)
%{
SCM scm_init_sw_app_utils_module (void);
%}
#endif
#if defined(SWIGPYTHON)
%{
/* avoid no previous prototype warning/error */
#if PY_VERSION_HEX >= 0x03000000
PyObject*
#else
void
#endif
SWIG_init (void);
%}
#endif
%import "base-typemaps.i"
typedef void (*GNCOptionChangeCallback) (gpointer user_data);
typedef int GNCOptionDBHandle;
void gnc_prefs_init();
QofBook * gnc_get_current_book (void);
Bug #554394: Income Tax Enhancements Patch by J. Alex Aycinena. Patch does the following: - update the tax information in 'txf.scm', which is based on V037 of the TXF Spec, to V041, the last version issued (bug #554394) - provide support for multiple copies of certain tax Forms/Schedules (e.g., Schedule C(1), Schedule C(2), etc.) - support multiple types of tax entities: partnerships, corporations and S corporations, in addition to individual tax payers - support balance sheet accounts, required for these new tax entity types - add the term 'Income' in several places to avoid confusion with sales or VAT style taxes in the business features (e.g., change the menu from 'Tax Options' to 'Income Tax Options') The following files were changed, as follows, to implement these changes: 1. src/engine/Account.c and 2. src/engine/Account.h: add copy number capability (define 'xaccAccountGetTaxUSCopyNumber' and 'xaccAccountSetTaxUSCopyNumber'); modify 'xaccAccountSetTaxUSCode' to remove KVP when no tax-code assigned, clean up tax-source descriptions 3. src/gnome/gnc-plugin-basic-commands.c: change 'Tax Options' to 'Income Tax Options' 4. src/app-utils/gnc-ui-util.c and 5. src/app-utils/gnc-ui-util.h: add setter and getter functions for book tax name and book tax type which are stored in a book KVP, show copy information in accounts page, tax column, show error messages for various conditions 6. src/app-utils/app-utils.i: add 'gnc_get_current_book_tax_name' and 'gnc_get_current_book_tax_type' functions 7. src/gnome/dialog-tax-info.c: add copy number and tax entity name and type, and balance sheet account handling capability 8. src/gnome/glade/tax.glade: add tax entity name, tax entity type, asset, liability/equity and copy number widgets 9. src/tax/us/txf.scm: update to V041 for individuals, add V041 support for multiple additional tax entity types and balance sheet accounts and related tax codes, add tax form line data 10. src/tax/us/us.scm: export new functions defined in txf.scm 11. src/report/locale-specific/us/taxtxf.scm: add support for multiple copies of Forms/Schedules, add support for Format 6, use Form/Schedule line #'s to sort report, update from "V037" to "V041", add support for taxpayer types other than F1040, add warning messages if there are some inconsistent codes assigned and list 12. src/tax/us/txf-de_DE.scm: make functions called from outside (e.g., from dialog-tax-info.c) have a consistent signature with those same functions in txf.scm (define tax-entity-type , define getters/setters, add tax-entity-type as an argument to existing functions) 13. src/tax/us/de_DE.scm: export new functions added to txf-de_DE.scm 14. src/report/locale-specific/us/taxtxf-de_DE.scm: add "" as tax-entity-type argument to functions called on txf-de_DE.scm (which defaults to existing codes) git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18413 57a11ea4-9604-0410-9ed3-97b8803252fd
2009-11-15 14:35:50 -06:00
const gchar * gnc_get_current_book_tax_name (void);
const gchar * gnc_get_current_book_tax_type (void);
Account * gnc_get_current_root_account (void);
%newobject gnc_gettext_helper;
char * gnc_gettext_helper(const char *string);
GNCOptionDB * gnc_option_db_new(SCM guile_options);
void gnc_option_db_destroy(GNCOptionDB *odb);
void gnc_option_db_set_option_selectable_by_name(SCM guile_option,
const char *section, const char *name, gboolean selectable);
#if defined(SWIGGUILE)
%typemap(out) GncCommodityList * {
SCM list = SCM_EOL;
GList *node;
for (node = $1; node; node = node->next)
list = scm_cons(gnc_quoteinfo2scm(node->data), list);
$result = scm_reverse(list);
}
%inline %{
typedef GList GncCommodityList;
GncCommodityList *
gnc_commodity_table_get_quotable_commodities(const gnc_commodity_table * table);
%}
gnc_commodity * gnc_default_currency (void);
gnc_commodity * gnc_default_report_currency (void);
void gncp_option_invoke_callback(GNCOptionChangeCallback callback, void *data);
void gnc_option_db_register_option(GNCOptionDBHandle handle,
SCM guile_option);
GNCPrintAmountInfo gnc_default_print_info (gboolean use_symbol);
GNCPrintAmountInfo gnc_account_print_info (const Account *account,
gboolean use_symbol);
GNCPrintAmountInfo gnc_commodity_print_info (const gnc_commodity *commodity,
gboolean use_symbol);
GNCPrintAmountInfo gnc_share_print_info_places (int decplaces);
const char * xaccPrintAmount (gnc_numeric val, GNCPrintAmountInfo info);
gchar *number_to_words(gdouble val, gint64 denom);
const gchar *printable_value (gdouble val, gint denom);
gboolean gnc_reverse_balance (const Account *account);
gboolean gnc_is_euro_currency(const gnc_commodity * currency);
gnc_numeric gnc_convert_to_euro(const gnc_commodity * currency,
gnc_numeric value);
gnc_numeric gnc_convert_from_euro(const gnc_commodity * currency,
gnc_numeric value);
time64 gnc_accounting_period_fiscal_start(void);
time64 gnc_accounting_period_fiscal_end(void);
SCM gnc_make_kvp_options(QofIdType id_type);
void gnc_register_kvp_option_generator(QofIdType id_type, SCM generator);
%typemap(in) GList * {
SCM path_scm = $input;
GList *path = NULL;
while (!scm_is_null (path_scm))
{
SCM key_scm = SCM_CAR (path_scm);
char *key;
gchar* gkey;
if (!scm_is_string (key_scm))
break;
key = scm_to_locale_string (key_scm);
gkey = g_strdup (key);
free (key);
path = g_list_prepend (path, gkey);
path_scm = SCM_CDR (path_scm);
}
$1 = g_list_reverse (path);
}
Process *gnc_spawn_process_async(GList *argl, const gboolean search_path);
%clear GList *;
gint gnc_process_get_fd(const Process *proc, const guint std_fd);
void gnc_detach_process(Process *proc, const gboolean kill_it);
time64 gnc_parse_time_to_time64(const gchar *s, const gchar *format);
%typemap(out) GHashTable * {
SCM table = scm_c_make_hash_table (g_hash_table_size($1) + 17);
GHashTableIter iter;
gpointer key, value;
g_hash_table_iter_init (&iter, $1);
while (g_hash_table_iter_next (&iter, &key, &value)) {
const GncGUID* c_guid = (const GncGUID*) key;
const gnc_numeric* c_numeric = (const gnc_numeric*) value;
SCM scm_guid = gnc_guid2scm(*c_guid);
SCM scm_numeric = gnc_numeric_to_scm(*c_numeric);
scm_hash_set_x(table, scm_guid, scm_numeric);
}
g_hash_table_destroy($1);
$result = table;
}
GHashTable* gnc_sx_all_instantiate_cashflow_all(GDate range_start, GDate range_end);
%clear GHashTable *;
#endif