gnucash maint: Multiple changes pushed

Christopher Lam clam at code.gnucash.org
Sun Jan 12 00:33:02 EST 2020


Updated	 via  https://github.com/Gnucash/gnucash/commit/e3b926bd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0787b4e2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d9b585c3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/baba7f0d (commit)
	from  https://github.com/Gnucash/gnucash/commit/c8eb3b37 (commit)



commit e3b926bdfa87341bc7f32e5b50b78820f80cabc0
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Jan 12 08:52:12 2020 +0800

    [new-owner-report] reuse string

diff --git a/gnucash/report/business-reports/new-owner-report.scm b/gnucash/report/business-reports/new-owner-report.scm
index 2cd85e3bd..c1feba326 100644
--- a/gnucash/report/business-reports/new-owner-report.scm
+++ b/gnucash/report/business-reports/new-owner-report.scm
@@ -303,7 +303,7 @@
                      splits num-buckets to-date date-type (not payable?))))
 
     (gnc:html-table-set-col-headers!
-     table (list (_ "Pre-payment")
+     table (list (_ "Pre-Payment")
                  (_ "Current")
                  (_ "0-30 days")
                  (_ "31-60 days")

commit 0787b4e24fcf06e0c4631e9b9a5c585436c7534c
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Jan 12 08:41:24 2020 +0800

    [new-owner-report] splits->desc will show 1 memo per line

diff --git a/gnucash/report/business-reports/new-owner-report.scm b/gnucash/report/business-reports/new-owner-report.scm
index 8e0217571..2cd85e3bd 100644
--- a/gnucash/report/business-reports/new-owner-report.scm
+++ b/gnucash/report/business-reports/new-owner-report.scm
@@ -286,7 +286,11 @@
 (define (splits->desc splits)
   (let lp ((splits splits) (result '()))
     (if (null? splits)
-        (gnc:html-string-sanitize (string-join result ", "))
+        (apply gnc:make-html-text
+               (fold
+                (lambda (a b)
+                  (cons* (gnc:html-string-sanitize a) (gnc:html-markup-br) b))
+                '() result))
         (lp (cdr splits)
             (let ((memo (xaccSplitGetMemo (car splits))))
               (if (or (string-null? memo) (member memo result))

commit d9b585c3969fa2aa678727b4f5e4b8433d7f417e
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Jan 11 04:52:08 2020 +0800

    [category-barchart] simplify report definitions
    
    instead of list-accessors, use (ice-9 match) to assign names to list
    items. remove ugly 'tip-and-rev' hack.
    
    also remove hidden option 'reverse-balance?' and pass it as an
    argument to the renderer.

diff --git a/gnucash/report/standard-reports/category-barchart.scm b/gnucash/report/standard-reports/category-barchart.scm
index b477ad282..6911a7069 100644
--- a/gnucash/report/standard-reports/category-barchart.scm
+++ b/gnucash/report/standard-reports/category-barchart.scm
@@ -25,6 +25,7 @@
 ;; depends must be outside module scope -- and should eventually go away.
 (define-module (gnucash report standard-reports category-barchart))
 (use-modules (srfi srfi-1))
+(use-modules (ice-9 match))
 (use-modules (gnucash utilities))
 (use-modules (gnucash gnc-module))
 (use-modules (gnucash gettext))
@@ -86,16 +87,12 @@ developing over time"))
 (define optname-averaging (N_ "Show Average"))
 (define opthelp-averaging (N_ "Select whether the amounts should be shown over the full time period or rather as the average e.g. per month."))
 
-(define (options-generator account-types reverse-balance? do-intervals?)
+(define (options-generator account-types do-intervals?)
   (let* ((options (gnc:new-options))
          (add-option
           (lambda (new-option)
             (gnc:register-option options new-option))))
 
-    ;; save off the reverse-balance option
-    (add-option
-     (gnc:make-internal-option "__report" "reverse-balance?" reverse-balance?))
-
     ;; General tab
     (gnc:options-add-date-interval!
      options gnc:pagename-general
@@ -214,7 +211,7 @@ developing over time"))
 ;; *really* complicated.
 
 (define (category-barchart-renderer report-obj reportname reportguid
-                                    account-types do-intervals?)
+                                    account-types do-intervals? reverse-bal?)
   ;; A helper functions for looking up option values.
   (define (get-option section name)
     (gnc:option-value
@@ -253,7 +250,6 @@ developing over time"))
          (height (get-option gnc:pagename-display optname-plot-height))
          (width (get-option gnc:pagename-display optname-plot-width))
          (sort-method (get-option gnc:pagename-display optname-sort-method))
-         (reverse-balance? (get-option "__report" "reverse-balance?"))
 
          (work-done 0)
          (work-to-do 0)
@@ -356,7 +352,7 @@ developing over time"))
             (map
              (lambda (acc)
                (let* ((comm (xaccAccountGetCommodity acc))
-                      (split->elt (if (reverse-balance? acc)
+                      (split->elt (if reverse-bal?
                                       (lambda (s)
                                         (gnc:make-gnc-monetary
                                          comm (- (xaccSplitGetNoclosingBalance s))))
@@ -788,38 +784,33 @@ developing over time"))
 (define category-barchart-liability-uuid "faf410e8f8da481fbc09e4763da40bcc")
 
 (for-each
- (lambda (l)
-   (let ((tip-and-rev (cddddr l)))
-     (gnc:define-report
-      'version 1
-      'name (car l)
-      'report-guid (car (reverse l))
-      'menu-path (if (caddr l)
-                     (list gnc:menuname-income-expense)
-                     (list gnc:menuname-asset-liability))
-      'menu-name (cadddr l)
-      'menu-tip (car tip-and-rev)
-      'options-generator (lambda () (options-generator (cadr l)
-                                                       (cadr tip-and-rev)
-                                                       (caddr l)))
-      'renderer (lambda (report-obj)
-                  (category-barchart-renderer report-obj
-                                              (car l)
-                                              (car (reverse l))
-                                              (cadr l)
-                                              (caddr l))))))
+ (match-lambda
+   ((reportname account-types inc-exp? menuname menutip reverse-bal? uuid)
+    (gnc:define-report
+     'version 1
+     'name reportname
+     'report-guid uuid
+     'menu-path (if inc-exp?
+                    (list gnc:menuname-income-expense)
+                    (list gnc:menuname-asset-liability))
+     'menu-name menuname
+     'menu-tip menutip
+     'options-generator (lambda () (options-generator account-types inc-exp?))
+     'renderer (lambda (report-obj)
+                 (category-barchart-renderer
+                  report-obj reportname uuid account-types inc-exp? reverse-bal?)))))
  (list
-  ;; reportname, account-types, do-intervals?,
-  ;; menu-reportname, menu-tip
-  (list reportname-income (list ACCT-TYPE-INCOME) #t menuname-income menutip-income (lambda (x) #t) category-barchart-income-uuid)
-  (list reportname-expense (list ACCT-TYPE-EXPENSE) #t menuname-expense menutip-expense (lambda (x) #f) category-barchart-expense-uuid)
+  ;; reportname, account-types, inc-exp?,
+  ;; menu-reportname, menu-tip, reverse-bal?, uuid
+  (list reportname-income (list ACCT-TYPE-INCOME) #t menuname-income menutip-income #t category-barchart-income-uuid)
+  (list reportname-expense (list ACCT-TYPE-EXPENSE) #t menuname-expense menutip-expense #f category-barchart-expense-uuid)
   (list reportname-assets
         (list ACCT-TYPE-ASSET ACCT-TYPE-BANK ACCT-TYPE-CASH ACCT-TYPE-CHECKING
               ACCT-TYPE-SAVINGS ACCT-TYPE-MONEYMRKT
               ACCT-TYPE-RECEIVABLE ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL
               ACCT-TYPE-CURRENCY)
-        #f menuname-assets menutip-assets (lambda (x) #f) category-barchart-asset-uuid)
+        #f menuname-assets menutip-assets #f category-barchart-asset-uuid)
   (list reportname-liabilities
         (list ACCT-TYPE-LIABILITY ACCT-TYPE-PAYABLE ACCT-TYPE-CREDIT
               ACCT-TYPE-CREDITLINE)
-        #f menuname-liabilities menutip-liabilities (lambda (x) #t) category-barchart-liability-uuid)))
+        #f menuname-liabilities menutip-liabilities #t category-barchart-liability-uuid)))

commit baba7f0debde9a3d6323ec1c8e0148e1968cc74e
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Jan 10 23:34:23 2020 +0800

    [income-gst-statement] no need to reverse report amounts
    
    this report handles reversal of income amounts and shouldn't
    re-reverse according to originating split's account type.
    
    also friendly-fn should be #f instead of (lambda (a) "") because the
    former is handled specifically in trep-engine's add-subheading to
    display a blank cell.

diff --git a/gnucash/report/standard-reports/income-gst-statement.scm b/gnucash/report/standard-reports/income-gst-statement.scm
index 0b79d1f00..4dba2d734 100644
--- a/gnucash/report/standard-reports/income-gst-statement.scm
+++ b/gnucash/report/standard-reports/income-gst-statement.scm
@@ -195,7 +195,7 @@ for taxes paid on expenses, and type LIABILITY for taxes collected on sales.")
     ;; each column will be a vector
     ;; (vector heading              - string
     ;;         calculator-function  - (calculator-function split) to obtain amount
-    ;;         reverse-column?      - #t for sales, #f for purchases
+    ;;         reverse-column?      - #f - already handled via myneg in fns above
     ;;         subtotal?            - #t - all columns need subtotals
     ;;         start-dual-column?   - unused in GST report
     ;;         friendly-heading-fn  - unused in GST report
@@ -203,74 +203,61 @@ for taxes paid on expenses, and type LIABILITY for taxes collected on sales.")
      ;; Translators: "Gross Sales" refer to Net Sales + GST/VAT on Sales
      (list (vector (_ "Gross Sales")
                    gross-sales
-                   #t #t #f
-                   (lambda (a) "")))
+                   #f #t #f #f))
      (if (opt-val gnc:pagename-display (N_ "Individual sales columns"))
          (map (lambda (acc) (vector (xaccAccountGetName acc)
                                     (account-adder-neg acc)
-                                    #t #t #f
-                                    (lambda (a) "")))
+                                    #f #t #f #f))
               accounts-sales)
          (list (vector (_ "Net Sales")
                        sales-without-tax
-                       #t #t #f
-                       (lambda (a) ""))))
+                       #f #t #f #f)))
      (if (opt-val gnc:pagename-display (N_ "Individual tax columns"))
          (map (lambda (acc) (vector (xaccAccountGetName acc)
                                     (account-adder-neg acc)
-                                    #t #t #f
-                                    (lambda (a) "")))
+                                    #f #t #f #f))
               accounts-tax-collected)
          (list (vector (_ "Tax on Sales")
                        tax-on-sales
-                       #t #t #f
-                       (lambda (a) ""))))
+                       #f #t #f #f)))
      ;; Translators: "Gross Purchases" refer to Net Purchase + GST/VAT on Purchase
      (list (vector (_ "Gross Purchases")
                    gross-purchases
-                   #f #t #f
-                   (lambda (a) "")))
+                   #f #t #f #f))
      (if (opt-val gnc:pagename-display (N_ "Individual purchases columns"))
          (map (lambda (acc) (vector (xaccAccountGetName acc)
                                     (account-adder acc)
-                                    #f #t #f
-                                    (lambda (a) "")))
+                                    #f #t #f #f))
               accounts-purchases)
          (list (vector (_ "Net Purchases")
                        purchases-without-tax
-                       #f #t #f
-                       (lambda (a) ""))))
+                       #f #t #f #f)))
      (if (opt-val gnc:pagename-display (N_ "Individual tax columns"))
          (map (lambda (acc) (vector (xaccAccountGetName acc)
                                     (account-adder acc)
-                                    #f #t #f
-                                    (lambda (a) "")))
+                                    #f #t #f #f))
               accounts-tax-paid)
          (list (vector (_ "Tax on Purchases")
                        tax-on-purchases
-                       #f #t #f
-                       (lambda (a) ""))))
+                       #f #t #f #f)))
      (if (opt-val gnc:pagename-display (N_ "Gross Balance"))
          ;; Translators: "Gross Balance" refer to "Gross Sales - Gross Purchases" in GST Report
          (list (vector (_ "Gross Balance")
                        gross-balance
-                       #f #t #f
-                       (lambda (a) "")))
+                       #f #t #f #f))
          '())
          ;; Note: Net income = net balance - other costs
      (if (opt-val gnc:pagename-display (N_ "Net Balance"))
          ;; Translators: "Net Balance" refer to Net Sales - Net Purchases in GST Report
          (list (vector (_ "Net Balance")
                        net-balance
-                       #f #t #f
-                       (lambda (a) "")))
+                       #f #t #f #f))
          '())
      (if (opt-val gnc:pagename-display (N_ "Tax payable"))
          ;; Translators: "Tax Payable" refer to the difference GST Sales - GST Purchases
          (list (vector (_ "Tax payable")
                        tax-payable
-                       #f #t #f
-                       (lambda (a) "")))
+                       #f #t #f #f))
          '()))))
 
 ;; Define the report.



Summary of changes:
 .../report/business-reports/new-owner-report.scm   |  8 ++-
 .../report/standard-reports/category-barchart.scm  | 59 +++++++++-------------
 .../standard-reports/income-gst-statement.scm      | 41 +++++----------
 3 files changed, 45 insertions(+), 63 deletions(-)



More information about the gnucash-changes mailing list