mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-26 02:40:43 -06:00
Merge branch 'maint'
This commit is contained in:
commit
1fc831002d
@ -25,6 +25,7 @@
|
||||
<li>Perform financial calculations, such as a loan repayment</li>
|
||||
</ul>
|
||||
</description>
|
||||
<developer_name>GnuCash Project</developer_name>
|
||||
<categories>
|
||||
<category>Finance</category>
|
||||
</categories>
|
||||
|
@ -24,10 +24,11 @@ if (NOT WIN32)
|
||||
gtest_csv_imp_INCLUDES gtest_csv_imp_LIBS
|
||||
SRCDIR=${CMAKE_SOURCE_DIR}/gnucash/import-export/csv-imp/test)
|
||||
|
||||
set(test_tx_import_SOURCES
|
||||
test-tx-import.cpp)
|
||||
gnc_add_test(test-tx_import "${test_tx_import_SOURCES}"
|
||||
gtest_csv_imp_INCLUDES gtest_csv_imp_LIBS)
|
||||
# Disable for now - there are no tests added yet to this source file
|
||||
#set(test_tx_import_SOURCES
|
||||
# test-tx-import.cpp)
|
||||
#gnc_add_test(test-tx_import "${test_tx_import_SOURCES}"
|
||||
# gtest_csv_imp_INCLUDES gtest_csv_imp_LIBS)
|
||||
endif()
|
||||
|
||||
set_dist_list(test_csv_import_DIST CMakeLists.txt
|
||||
|
@ -34,8 +34,6 @@
|
||||
#include "gnc-ui-util.h"
|
||||
#include "recncell.h"
|
||||
|
||||
#include "business-helpers.h"
|
||||
|
||||
#include "gncEntry.h"
|
||||
#include "gncEntryLedger.h"
|
||||
#include "gncEntryLedgerP.h"
|
||||
@ -430,16 +428,16 @@ void gnc_entry_ledger_load (GncEntryLedger *ledger, GList *entry_list)
|
||||
switch (gncOwnerGetType (owner))
|
||||
{
|
||||
case GNC_OWNER_CUSTOMER:
|
||||
table = gnc_business_get_default_tax_table (ledger->book,
|
||||
GNC_OWNER_CUSTOMER);
|
||||
table = gncTaxTableGetDefault (ledger->book,
|
||||
GNC_OWNER_CUSTOMER);
|
||||
|
||||
if (gncCustomerGetTaxTableOverride (owner->owner.customer))
|
||||
table = gncCustomerGetTaxTable (owner->owner.customer);
|
||||
break;
|
||||
|
||||
case GNC_OWNER_VENDOR:
|
||||
table = gnc_business_get_default_tax_table (ledger->book,
|
||||
GNC_OWNER_VENDOR);
|
||||
table = gncTaxTableGetDefault (ledger->book,
|
||||
GNC_OWNER_VENDOR);
|
||||
|
||||
if (gncVendorGetTaxTableOverride (owner->owner.vendor))
|
||||
table = gncVendorGetTaxTable (owner->owner.vendor);
|
||||
|
@ -151,7 +151,7 @@
|
||||
;;<guile-sitedir>/gnucash/reports/data/balsheet-eg.eguile.scm:<html>
|
||||
;;<guile-sitedir>/gnucash/reports/data/receipt.eguile.scm:<html>
|
||||
|
||||
(push "<html>\n")
|
||||
(push "<html dir='auto'>\n")
|
||||
(push "<head>\n")
|
||||
(push "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n")
|
||||
(if style-text
|
||||
|
@ -140,7 +140,7 @@
|
||||
(string-append
|
||||
"h3 { " title-font-info " }\n"
|
||||
"a { " account-link-font-info " }\n"
|
||||
"body, p, table, tr, td { text-align: left; vertical-align: top; " text-cell-font-info " }\n"
|
||||
"body, p, table, tr, td { vertical-align: top; " text-cell-font-info " }\n"
|
||||
"tr.alternate-row { background: " alternate-row-color " }\n"
|
||||
"tr { page-break-inside: avoid !important;}\n"
|
||||
"th.column-heading-left { text-align: left; " number-header-font-info " }\n"
|
||||
|
@ -324,7 +324,7 @@
|
||||
(opt-report-commodity (get-option commodities-page optname-report-commodity))
|
||||
(opt-price-source (get-option commodities-page optname-price-source))
|
||||
(opt-show-foreign? (get-option commodities-page optname-show-foreign))
|
||||
(opt-report-title (get-option general-page optname-report-title))
|
||||
(opt-report-title (get-option general-page gnc:optname-reportname))
|
||||
(opt-date (gnc:time64-end-day-time
|
||||
(gnc:date-option-absolute-time
|
||||
(get-option general-page optname-date))))
|
||||
@ -563,6 +563,12 @@
|
||||
(negstyle (nbsp mny-string)))
|
||||
(nbsp mny-string)))
|
||||
|
||||
(define (monetary-rounded mon)
|
||||
(let ((c (gnc:gnc-monetary-commodity mon))
|
||||
(a (gnc:gnc-monetary-amount mon)))
|
||||
(gnc:make-gnc-monetary
|
||||
c (gnc-numeric-convert a (gnc-commodity-get-fraction c) GNC-RND-ROUND))))
|
||||
|
||||
(define (format-monetary mny)
|
||||
;; Format the given gnc:monetary value according to opt-neg-format
|
||||
;; If mny's currency isn't the same as that of the report,
|
||||
@ -576,10 +582,10 @@
|
||||
(if (not (gnc-commodity-equiv comm opt-report-commodity))
|
||||
(begin
|
||||
(if opt-show-foreign?
|
||||
(set! answer (string-append (foreignstyle (neg-format (gnc:monetary->string mny) neg?)) " ")))
|
||||
(set! answer (string-append (foreignstyle (neg-format (gnc:monetary->string (monetary-rounded mny)) neg?)) " ")))
|
||||
(set! mny (exchange-fn mny opt-report-commodity))))
|
||||
; main currency - converted if necessary
|
||||
(set! answer (string-append answer (neg-format (gnc:monetary->string mny) neg?)))
|
||||
(set! answer (string-append answer (neg-format (gnc:monetary->string (monetary-rounded mny)) neg?)))
|
||||
answer))
|
||||
|
||||
(define (format-comm-coll cc)
|
||||
@ -598,7 +604,7 @@
|
||||
(define (fmtmoney2 mny)
|
||||
;; format a monetary amount in the given currency/commodity
|
||||
;; !! this takes a gnc-monetary
|
||||
(nbsp (gnc:monetary->string mny)))
|
||||
(nbsp (gnc:monetary->string (monetary-rounded mny))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
@ -879,10 +879,10 @@ also show overall period profit & loss."))
|
||||
(lambda ()
|
||||
(display report-title)
|
||||
(display " ")
|
||||
(when (or incr (eq? report-type 'pnl))
|
||||
(display (qof-print-date startdate))
|
||||
(display (_ " to ")))
|
||||
(display (qof-print-date enddate)))))
|
||||
(if (or incr (eq? report-type 'pnl))
|
||||
(format #t (_ "~a to ~a")
|
||||
(qof-print-date startdate) (qof-print-date enddate))
|
||||
(qof-print-date enddate)))))
|
||||
|
||||
(if (eq? (get-option gnc:pagename-general optname-options-summary) 'always)
|
||||
(gnc:html-document-add-object!
|
||||
@ -1057,9 +1057,9 @@ also show overall period profit & loss."))
|
||||
multicol-table-right (_ "Equity")
|
||||
(append equity-accounts
|
||||
(list
|
||||
(vector "Unrealized Gains"
|
||||
(vector (_ "Unrealized Gains")
|
||||
unrealized-gain-fn)
|
||||
(vector "Retained Earnings"
|
||||
(vector (_ "Retained Earnings")
|
||||
retained-earnings-fn)))
|
||||
#:negate-amounts? #t)
|
||||
|
||||
@ -1074,7 +1074,7 @@ also show overall period profit & loss."))
|
||||
(gnc:html-document-add-object!
|
||||
doc
|
||||
(gnc:make-html-text
|
||||
(gnc:html-markup-anchor chart "Barchart"))))))
|
||||
(gnc:html-markup-anchor chart (_ "Barchart")))))))
|
||||
|
||||
((eq? report-type 'pnl)
|
||||
(let* ((closing-str (get-option pagename-entries optname-closing-pattern))
|
||||
|
@ -41,6 +41,7 @@
|
||||
;; report constructor
|
||||
|
||||
(define (gnc:make-general-journal-report)
|
||||
(issue-deprecation-warning "gnc:make-general-journal-report is unused.")
|
||||
(let* ((regrpt (gnc:make-report regrptguid)))
|
||||
regrpt))
|
||||
|
||||
@ -90,14 +91,7 @@
|
||||
)
|
||||
)
|
||||
;; we'll leave query malloc'd in case this is required by the C side...
|
||||
|
||||
;; set options in the general tab...
|
||||
(set-option!
|
||||
gnc:pagename-general (N_ "Title") (_ reportname))
|
||||
;; we can't (currently) set the Report name here
|
||||
;; because it is automatically set to the template
|
||||
;; name... :(
|
||||
|
||||
|
||||
;; set options in the display tab...
|
||||
(for-each
|
||||
(lambda (l)
|
||||
@ -126,7 +120,10 @@
|
||||
|
||||
(define (general-journal-renderer report-obj)
|
||||
;; just delegate rendering to the Register Report renderer...
|
||||
((gnc:report-template-renderer/report-guid regrptguid regrptname) report-obj))
|
||||
(let* ((renderer (gnc:report-template-renderer/report-guid regrptguid #f))
|
||||
(doc (renderer report-obj)))
|
||||
(gnc:html-document-set-title! doc (_ reportname))
|
||||
doc))
|
||||
|
||||
(gnc:define-report
|
||||
'version 1
|
||||
|
@ -30,7 +30,7 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define-module (gnucash reports standard general-ledger))
|
||||
(export gnc:make-general-ledger-report)
|
||||
(export gnc:make-general-ledger-report) ;deprecated
|
||||
(use-modules (gnucash utilities))
|
||||
(use-modules (gnucash gnc-module))
|
||||
(use-modules (gnucash gettext))
|
||||
@ -45,6 +45,7 @@
|
||||
;; report constructor
|
||||
|
||||
(define (gnc:make-general-ledger-report)
|
||||
(issue-deprecation-warning "gnc:make-general-ledger-report is unused")
|
||||
(let* ((xactrpt (gnc:make-report xactrptguid)))
|
||||
xactrpt))
|
||||
|
||||
@ -147,7 +148,10 @@
|
||||
|
||||
(define (general-ledger-renderer report-obj)
|
||||
;; just delegate rendering to the Transaction Report renderer...
|
||||
((gnc:report-template-renderer/report-guid xactrptguid xactrptname) report-obj))
|
||||
(let ((document ((gnc:report-template-renderer/report-guid xactrptguid xactrptname)
|
||||
report-obj)))
|
||||
(gnc:html-document-set-title! document (_ reportname))
|
||||
document))
|
||||
|
||||
(gnc:define-report
|
||||
'version 1
|
||||
|
@ -26,11 +26,9 @@
|
||||
width: 1em;
|
||||
}
|
||||
td.accname {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
td.accnametotal {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
@ -125,10 +125,10 @@
|
||||
?>
|
||||
|
||||
<!-- The HTML starts here... -->
|
||||
<html>
|
||||
<html dir='auto'>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text-html; charset=utf-8">
|
||||
<title><?scm:d coyname ?> <?scm:d reportname ?> <?scm:d (qof-print-date opt-date) ?></title>
|
||||
<title><?scm:d coyname ?> <?scm:d opt-report-title ?> <?scm:d (qof-print-date opt-date) ?></title>
|
||||
|
||||
<link rel="stylesheet" href="<?scm:d opt-css-file ?>" type="text/css">
|
||||
<!-- Note that the stylesheet file is overridden by some options, i.e.
|
||||
@ -152,7 +152,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<h3><?scm:d coyname ?></h3>
|
||||
<h2><?scm:d reportname ?> <?scm:d (qof-print-date opt-date) ?></h2>
|
||||
<h2><?scm:d opt-report-title ?> <?scm:d (qof-print-date opt-date) ?></h2>
|
||||
|
||||
<?scm
|
||||
;; This is where the work is done.
|
||||
|
@ -103,7 +103,7 @@
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- The HTML for the invoice starts here -->
|
||||
<html>
|
||||
<html dir='auto'>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
|
||||
<title><?scm:d (_ "Invoice") ?> <?scm:d invoiceid ?></title>
|
||||
|
@ -125,7 +125,7 @@
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- The HTML for the invoice starts here -->
|
||||
<html>
|
||||
<html dir='auto'>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
|
||||
<title><?scm:d (_ "Invoice") ?> <?scm:d invoiceid ?></title>
|
||||
|
@ -45,7 +45,7 @@
|
||||
)
|
||||
|
||||
(define html-doc-header-no-title
|
||||
"<html>\n\
|
||||
"<html dir='auto'>\n\
|
||||
<head>\n\
|
||||
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n\
|
||||
</head><body>")
|
||||
@ -87,7 +87,7 @@
|
||||
|
||||
(gnc:html-document-set-title! test-doc "HTML Document Title")
|
||||
(test-equal "HTML Document - Render with title"
|
||||
"<html>\n\
|
||||
"<html dir='auto'>\n\
|
||||
<head>\n\
|
||||
<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n\
|
||||
<title>\n\
|
||||
|
@ -11,7 +11,6 @@ set (app_utils_noinst_HEADERS
|
||||
|
||||
set (app_utils_HEADERS
|
||||
QuickFill.h
|
||||
business-helpers.h
|
||||
business-options.h
|
||||
file-utils.h
|
||||
gfec.h
|
||||
@ -52,7 +51,6 @@ gnc_add_swig_python_command (swig-app-utils-python
|
||||
set (app_utils_SOURCES
|
||||
calculation/expression_parser.c
|
||||
calculation/fin.c
|
||||
business-helpers.c
|
||||
business-options.c
|
||||
QuickFill.c
|
||||
file-utils.c
|
||||
|
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* business-options.c -- non-GUI helper functions for business features
|
||||
*
|
||||
* Written By: Derek Atkins <warlord@MIT.EDU>
|
||||
* Copyright (C) 2003 Derek Atkins
|
||||
*
|
||||
* 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 "business-options.h"
|
||||
#include "business-helpers.h"
|
||||
|
||||
GncTaxTable* gnc_business_get_default_tax_table (QofBook *book, GncOwnerType ownertype)
|
||||
{
|
||||
GncTaxTable *table = NULL;
|
||||
GNCOptionDB *odb;
|
||||
|
||||
odb = gnc_option_db_new_for_type (GNC_ID_BOOK);
|
||||
qof_book_load_options (book, gnc_option_db_load, odb);
|
||||
|
||||
switch (ownertype)
|
||||
{
|
||||
case GNC_OWNER_CUSTOMER:
|
||||
table = gnc_option_db_lookup_taxtable_option (odb,
|
||||
"Business",
|
||||
"Default Customer TaxTable",
|
||||
NULL);
|
||||
break;
|
||||
|
||||
case GNC_OWNER_VENDOR:
|
||||
table = gnc_option_db_lookup_taxtable_option (odb,
|
||||
"Business",
|
||||
"Default Vendor TaxTable",
|
||||
NULL);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
gnc_option_db_destroy (odb);
|
||||
return table;
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
/*
|
||||
* business-helpers.h -- non-GUI helper functions for business features
|
||||
*
|
||||
* Written By: Derek Atkins <warlord@MIT.EDU>
|
||||
* Copyright (C) 2003 Derek Atkins <warlord@MIT.EDU>
|
||||
*
|
||||
* 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_BUSINESS_HELPERS_H_
|
||||
#define GNC_BUSINESS_HELPERS_H_
|
||||
|
||||
#include "gncTaxTable.h"
|
||||
#include "gncOwner.h"
|
||||
|
||||
|
||||
GncTaxTable* gnc_business_get_default_tax_table (QofBook *book, GncOwnerType ownertype);
|
||||
|
||||
|
||||
#endif /* GNC_BUSINESS_HELPERS_H_ */
|
@ -681,6 +681,26 @@ GncTaxTable *gncTaxTableLookupByName (QofBook *book, const char *name)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GncTaxTable*
|
||||
gncTaxTableGetDefault (QofBook *book, GncOwnerType type)
|
||||
{
|
||||
GSList *path = NULL;
|
||||
const GncGUID *guid = NULL;
|
||||
const char *vendor = "Default Vendor TaxTable";
|
||||
const char *customer = "Default Customer TaxTable";
|
||||
const char *section = "Business";
|
||||
|
||||
g_return_val_if_fail (book != NULL, NULL);
|
||||
g_return_val_if_fail (type == GNC_OWNER_CUSTOMER || \
|
||||
type == GNC_OWNER_VENDOR, NULL);
|
||||
path = g_slist_prepend (path, type == GNC_OWNER_CUSTOMER ? (void*)customer : (void*)vendor);
|
||||
path = g_slist_prepend (path, (void*)section);
|
||||
|
||||
guid = qof_book_get_guid_option (book, path);
|
||||
g_return_val_if_fail (guid, NULL);
|
||||
return gncTaxTableLookup (book, guid);
|
||||
}
|
||||
|
||||
GncTaxTableList * gncTaxTableGetTables (QofBook *book)
|
||||
{
|
||||
struct _book_info *bi;
|
||||
|
@ -60,32 +60,6 @@ typedef struct _gncTaxTableClass GncTaxTableClass;
|
||||
};
|
||||
|
||||
*/
|
||||
typedef struct _gncTaxTableEntry GncTaxTableEntry;
|
||||
|
||||
typedef struct _gncAccountValue GncAccountValue;
|
||||
|
||||
#include "Account.h"
|
||||
#include "qof.h"
|
||||
#ifdef GNUCASH_MAJOR_VERSION
|
||||
#include "gncBusiness.h"
|
||||
#endif
|
||||
|
||||
#define GNC_ID_TAXTABLE "gncTaxTable"
|
||||
|
||||
/* --- type macros --- */
|
||||
#define GNC_TYPE_TAXTABLE (gnc_taxtable_get_type ())
|
||||
#define GNC_TAXTABLE(o) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_TAXTABLE, GncTaxTable))
|
||||
#define GNC_TAXTABLE_CLASS(k) \
|
||||
(G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_TAXTABLE, GncTaxTableClass))
|
||||
#define GNC_IS_TAXTABLE(o) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_TAXTABLE))
|
||||
#define GNC_IS_TAXTABLE_CLASS(k) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_TAXTABLE))
|
||||
#define GNC_TAXTABLE_GET_CLASS(o) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_TAXTABLE, GncTaxTableClass))
|
||||
GType gnc_taxtable_get_type(void);
|
||||
|
||||
/**
|
||||
* How to interpret the amount.
|
||||
* You can interpret it as a VALUE or a PERCENT.
|
||||
@ -104,6 +78,32 @@ typedef enum
|
||||
GNC_TAXINCLUDED_USEGLOBAL, /**< use the global setting */
|
||||
} GncTaxIncluded;
|
||||
|
||||
typedef struct _gncTaxTableEntry GncTaxTableEntry;
|
||||
|
||||
typedef struct _gncAccountValue GncAccountValue;
|
||||
|
||||
#include "Account.h"
|
||||
#include "qof.h"
|
||||
#include "gncBusiness.h"
|
||||
#include "gncOwner.h"
|
||||
|
||||
#define GNC_ID_TAXTABLE "gncTaxTable"
|
||||
|
||||
/* --- type macros --- */
|
||||
#define GNC_TYPE_TAXTABLE (gnc_taxtable_get_type ())
|
||||
#define GNC_TAXTABLE(o) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_TAXTABLE, GncTaxTable))
|
||||
#define GNC_TAXTABLE_CLASS(k) \
|
||||
(G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_TAXTABLE, GncTaxTableClass))
|
||||
#define GNC_IS_TAXTABLE(o) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_TAXTABLE))
|
||||
#define GNC_IS_TAXTABLE_CLASS(k) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_TAXTABLE))
|
||||
#define GNC_TAXTABLE_GET_CLASS(o) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_TAXTABLE, GncTaxTableClass))
|
||||
GType gnc_taxtable_get_type(void);
|
||||
|
||||
|
||||
const char * gncAmountTypeToString (GncAmountType type);
|
||||
gboolean gncAmountStringToType (const char *str, GncAmountType *type);
|
||||
|
||||
@ -151,6 +151,7 @@ static inline GncTaxTable *gncTaxTableLookup (const QofBook* book, const GncGUID
|
||||
}
|
||||
|
||||
GncTaxTable *gncTaxTableLookupByName (QofBook *book, const char *name);
|
||||
GncTaxTable *gncTaxTableGetDefault (QofBook *book, GncOwnerType type);
|
||||
|
||||
typedef GList GncTaxTableList;
|
||||
GncTaxTableList * gncTaxTableGetTables (QofBook *book);
|
||||
|
@ -1173,6 +1173,18 @@ qof_book_set_string_option(QofBook* book, const char* opt_name, const char* opt_
|
||||
qof_book_commit_edit(book);
|
||||
}
|
||||
|
||||
const GncGUID*
|
||||
qof_book_get_guid_option(QofBook* book, GSList* path)
|
||||
{
|
||||
g_return_val_if_fail(book != nullptr, nullptr);
|
||||
g_return_val_if_fail(path != nullptr, nullptr);
|
||||
|
||||
auto table_value = qof_book_get_option(book, path);
|
||||
if (!table_value)
|
||||
return nullptr;
|
||||
return table_value->get<GncGUID*>();
|
||||
}
|
||||
|
||||
void
|
||||
qof_book_option_frame_delete (QofBook *book, const char* opt_name)
|
||||
{
|
||||
|
@ -375,6 +375,7 @@ char *qof_book_get_counter_format (const QofBook *book,
|
||||
|
||||
const char* qof_book_get_string_option(const QofBook* book, const char* opt_name);
|
||||
void qof_book_set_string_option(QofBook* book, const char* opt_name, const char* opt_val);
|
||||
const GncGUID* qof_book_get_guid_option(QofBook* book, GSList* path);
|
||||
void qof_book_option_frame_delete (QofBook *book, const char* opt_name);
|
||||
|
||||
/** Access functions for reading and setting the used-features on this book.
|
||||
|
@ -194,3 +194,53 @@
|
||||
((null? (cdr lst)) (reverse (cons (car lst) result)))
|
||||
((= (car lst) (cadr lst)) (lp (cdr lst) result))
|
||||
(else (lp (cdr lst) (cons (car lst) result))))))
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; compatibility hack for fixing guile-2.0 string handling. this code
|
||||
;; may be removed when minimum guile is 2.2 or later. see
|
||||
;; https://lists.gnu.org/archive/html/guile-user/2019-04/msg00012.html
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(when (string=? (effective-version) "2.0")
|
||||
;; When using Guile 2.0.x, use monkey patching to change the
|
||||
;; behavior of string ports to use UTF-8 as the internal encoding.
|
||||
;; Note that this is the default behavior in Guile 2.2 or later.
|
||||
(let* ((mod (resolve-module '(guile)))
|
||||
(orig-open-input-string (module-ref mod 'open-input-string))
|
||||
(orig-open-output-string (module-ref mod 'open-output-string))
|
||||
(orig-object->string (module-ref mod 'object->string))
|
||||
(orig-simple-format (module-ref mod 'simple-format)))
|
||||
|
||||
(define (open-input-string str)
|
||||
(with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(orig-open-input-string str)))
|
||||
|
||||
(define (open-output-string)
|
||||
(with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(orig-open-output-string)))
|
||||
|
||||
(define (object->string . args)
|
||||
(with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(apply orig-object->string args)))
|
||||
|
||||
(define (simple-format . args)
|
||||
(with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(apply orig-simple-format args)))
|
||||
|
||||
(define (call-with-input-string str proc)
|
||||
(proc (open-input-string str)))
|
||||
|
||||
(define (call-with-output-string proc)
|
||||
(let ((port (open-output-string)))
|
||||
(proc port)
|
||||
(get-output-string port)))
|
||||
|
||||
(module-set! mod 'open-input-string open-input-string)
|
||||
(module-set! mod 'open-output-string open-output-string)
|
||||
(module-set! mod 'object->string object->string)
|
||||
(module-set! mod 'simple-format simple-format)
|
||||
(module-set! mod 'call-with-input-string call-with-input-string)
|
||||
(module-set! mod 'call-with-output-string call-with-output-string)
|
||||
|
||||
(when (eqv? (module-ref mod 'format) orig-simple-format)
|
||||
(module-set! mod 'format simple-format))))
|
||||
|
@ -501,7 +501,6 @@ gnucash/report/stylesheets/head-or-tail.scm
|
||||
gnucash/report/stylesheets/plain.scm
|
||||
gnucash/report/trep-engine.scm
|
||||
libgnucash/app-utils/app-utils.scm
|
||||
libgnucash/app-utils/business-helpers.c
|
||||
libgnucash/app-utils/business-options.c
|
||||
libgnucash/app-utils/business-options.scm
|
||||
libgnucash/app-utils/business-prefs.scm
|
||||
|
Loading…
Reference in New Issue
Block a user