gnucash maint: Multiple changes pushed

Christopher Lam clam at code.gnucash.org
Wed Jun 30 11:18:39 EDT 2021


Updated	 via  https://github.com/Gnucash/gnucash/commit/774dc5dd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3ad966e8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7ea5217a (commit)
	from  https://github.com/Gnucash/gnucash/commit/60f50e34 (commit)



commit 774dc5ddf3014db366627355b0e8cd9adfd7d74f
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Jun 27 21:30:15 2021 +0800

    Bug 798142 - Tax rate appears as a fraction

diff --git a/gnucash/report/reports/standard/taxinvoice.scm b/gnucash/report/reports/standard/taxinvoice.scm
index 6087c841e..7992d871e 100644
--- a/gnucash/report/reports/standard/taxinvoice.scm
+++ b/gnucash/report/reports/standard/taxinvoice.scm
@@ -25,6 +25,7 @@
 (define-module (gnucash reports standard taxinvoice))
 
 (use-modules (ice-9 local-eval))  ; for the-environment
+(use-modules (ice-9 match))
 (use-modules (gnucash engine))
 (use-modules (gnucash utilities))
 (use-modules (gnucash core-utils))
@@ -45,29 +46,20 @@
   ;; depending on how complicated the tax table is.
   ;; (When called from within the eguile template, anything
   ;; (display)ed becomes part of the HTML string.)
-  (cond
-   ((or (not taxable) (eq? taxtable '()))
-    (display " "))
-   (else
-    (let* ((amttot  (gnc:make-commodity-collector))
-           (pctot   (gnc:make-value-collector))
-           (entries (gncTaxTableGetEntries taxtable))
-           (amt?    #f)  ; becomes #t if any entries are amounts
-           (pc?     #f)) ; becomes #t if any entries are percentages
-      (for-each
-       (lambda (entry)
-         (cond
-          ((eqv? (gncTaxTableEntryGetType entry) GNC-AMT-TYPE-VALUE)
-           (set! amt? #t)
-           (amttot 'add curr (gncTaxTableEntryGetAmount entry)))
-          (else
-           (set! pc? #t)
-           (pctot 'add (gncTaxTableEntryGetAmount entry)))))
-       entries)
-      (if pc? (format #t "~a%" (pctot 'total #f)))
-      (if (and amt? pc?) (display " + "))
-      (if amt? (display-comm-coll-total amttot #f))
-      (if (equal? amt? pc? #f) (display (G_ "n/a")))))))
+  (define (amt-type? entry)
+    (eqv? (gncTaxTableEntryGetType entry) GNC-AMT-TYPE-VALUE))
+  (let lp ((entries (if taxable (gncTaxTableGetEntries taxtable) '())) (acc '()))
+    (match entries
+      (() (display (if (null? acc)
+                       (G_ "n/a")
+                       (string-join (reverse acc) " + "))))
+      (((and (? amt-type?) (= gncTaxTableEntryGetAmount amt)) . rest)
+       (lp rest (cons (gnc:default-html-gnc-monetary-renderer
+                       (gnc:make-gnc-monetary curr amt) #f) acc)))
+      (((= gncTaxTableEntryGetAmount percent) . rest)
+       (lp rest
+           (cons (string-append (gnc:default-html-number-renderer percent #f) "%")
+                 acc))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Define all the options

commit 3ad966e8248cb4eceb16aaec31b605fa59d35579
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Jun 28 23:09:34 2021 +0800

    Deprecate gnc:owner-report-create

diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm
index 9137c9e53..0f1d8306f 100644
--- a/gnucash/report/reports/reports.scm
+++ b/gnucash/report/reports/reports.scm
@@ -42,7 +42,7 @@
 (export gnc:invoice-report-create)
 (export gnc:payables-report-create)
 (export gnc:receivables-report-create)
-(export gnc:owner-report-create)
+(export gnc:owner-report-create)        ;deprecate
 (export gnc:owner-report-create-with-enddate)
 
 (let ((loc-spec (if (string-prefix? "de_DE" (gnc-locale-name)) 'de_DE 'us)))
@@ -90,5 +90,5 @@
 
 (define gnc:payables-report-create payables-report-create-internal)
 (define gnc:receivables-report-create receivables-report-create-internal)
-(define gnc:owner-report-create owner-report-create)
+(define gnc:owner-report-create owner-report-create) ;deprecated
 (define gnc:owner-report-create-with-enddate owner-report-create-with-enddate)
diff --git a/gnucash/report/reports/standard/new-owner-report.scm b/gnucash/report/reports/standard/new-owner-report.scm
index 1386c9698..ed6e811ed 100644
--- a/gnucash/report/reports/standard/new-owner-report.scm
+++ b/gnucash/report/reports/standard/new-owner-report.scm
@@ -1258,6 +1258,7 @@
     (owner-report-create-internal guid owner type enddate)))
 
 (define (owner-report-create owner account)
+  (issue-deprecation-warning "owner-report-create is not used anymore. call owner-report-create-with-enddate instead")
   (owner-report-create-with-enddate owner account #f))
 
 (define (gnc:owner-report-create-internal
@@ -1272,5 +1273,5 @@
 
 (gnc:register-report-hook ACCT-TYPE-RECEIVABLE #t gnc:owner-report-create-internal)
 (gnc:register-report-hook ACCT-TYPE-PAYABLE #t gnc:owner-report-create-internal)
-(export owner-report-create)
+(export owner-report-create)            ;deprecate
 (export owner-report-create-with-enddate)

commit 7ea5217a021e5a41bdfb896d3ed5381a6e99ca86
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Jun 28 23:07:08 2021 +0800

    use owner-report-create-with-enddate instead of owner-report-create

diff --git a/gnucash/gnome/gnc-plugin-page-owner-tree.c b/gnucash/gnome/gnc-plugin-page-owner-tree.c
index 506e64a69..c6c578278 100644
--- a/gnucash/gnome/gnc-plugin-page-owner-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-owner-tree.c
@@ -976,9 +976,11 @@ static int build_owner_report (GncOwner *owner, Account *acc)
 
     args = SCM_EOL;
 
-    func = scm_c_eval_string ("gnc:owner-report-create");
+    func = scm_c_eval_string ("gnc:owner-report-create-with-enddate");
     g_return_val_if_fail (scm_is_procedure (func), -1);
 
+    args = scm_cons (SCM_BOOL_F, args); /* enddate is #f */
+
     if (acc)
     {
         swig_type_info * qtype = SWIG_TypeQuery("_p_Account");
diff --git a/gnucash/report/reports/CMakeLists.txt b/gnucash/report/reports/CMakeLists.txt
index 6178d4ede..ec4a6fe80 100644
--- a/gnucash/report/reports/CMakeLists.txt
+++ b/gnucash/report/reports/CMakeLists.txt
@@ -59,7 +59,7 @@ set (reports_standard_SCHEME
 # Reports depending on one of the generator functions from
 # scm-reports-standard-with-exposed-generator:
 set (reports_standard_SCHEME_2
-    standard/customer-summary.scm # Depends on gnc:owner-report-create
+    standard/customer-summary.scm # Depends on gnc:owner-report-create-with-enddate
 )
 
 set(reports_example_SCHEME
diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm
index a8840eb66..5c76335bc 100644
--- a/gnucash/report/reports/standard/customer-summary.scm
+++ b/gnucash/report/reports/standard/customer-summary.scm
@@ -355,7 +355,7 @@
                              (gncOwnerGetName owner) comm markup
                              comm-profit comm-sales comm-expense
                              (gnc:report-anchor-text
-                              (gnc:owner-report-create owner '())))
+                              (gnc:owner-report-create-with-enddate owner '() #f)))
                             sortingtable)))))
               commodities)))
          results)
diff --git a/gnucash/report/reports/standard/new-owner-report.scm b/gnucash/report/reports/standard/new-owner-report.scm
index 8aaacb6a0..1386c9698 100644
--- a/gnucash/report/reports/standard/new-owner-report.scm
+++ b/gnucash/report/reports/standard/new-owner-report.scm
@@ -1265,7 +1265,7 @@
 
   (let* ((owner (gnc:split->owner split))
          (res (if (gncOwnerIsValid owner)
-                  (owner-report-create owner account)
+                  (owner-report-create-with-enddate owner account #f)
                   -1)))
     (gnc:split->owner #f)
     res))



Summary of changes:
 gnucash/gnome/gnc-plugin-page-owner-tree.c         |  4 ++-
 gnucash/report/reports/CMakeLists.txt              |  2 +-
 gnucash/report/reports/reports.scm                 |  4 +--
 .../report/reports/standard/customer-summary.scm   |  2 +-
 .../report/reports/standard/new-owner-report.scm   |  5 +--
 gnucash/report/reports/standard/taxinvoice.scm     | 38 +++++++++-------------
 6 files changed, 25 insertions(+), 30 deletions(-)



More information about the gnucash-changes mailing list