From 343b018dcac3adfc829a5790d757d38ae2cb9eb1 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 25 Apr 2020 13:56:08 +0800 Subject: [PATCH 1/5] {new-}aging: swap guids, hook to new-aging --- gnucash/report/reports/standard/new-aging.scm | 45 ++++++++++++++++--- gnucash/report/reports/standard/payables.scm | 27 ++--------- .../report/reports/standard/receivables.scm | 27 ++--------- 3 files changed, 45 insertions(+), 54 deletions(-) diff --git a/gnucash/report/reports/standard/new-aging.scm b/gnucash/report/reports/standard/new-aging.scm index fe44c8330e..e9afa2f459 100644 --- a/gnucash/report/reports/standard/new-aging.scm +++ b/gnucash/report/reports/standard/new-aging.scm @@ -449,20 +449,53 @@ exist but have no suitable transactions.")) (define (receivables-renderer report-obj) (aging-renderer report-obj #t)) +(define payables-aging-guid "e57770f2dbca46619d6dac4ac5469b50") +(define receivables-aging-guid "9cf76bed17f14401b8e3e22d0079cb98") + (gnc:define-report 'version 1 - 'name (N_ "Payable Aging (beta)") - 'report-guid "e57770f2dbca46619d6dac4ac5469b50-new" - 'menu-path (list gnc:menuname-experimental) + 'name (N_ "Payable Aging") + 'report-guid payables-aging-guid + 'menu-path (list gnc:menuname-business-reports) 'options-generator payable-options-generator 'renderer payables-renderer 'in-menu? #t) (gnc:define-report 'version 1 - 'name (N_ "Receivable Aging (beta)") - 'report-guid "9cf76bed17f14401b8e3e22d0079cb98-new" - 'menu-path (list gnc:menuname-experimental) + 'name (N_ "Receivable Aging") + 'report-guid "9cf76bed17f14401b8e3e22d0079cb98" + 'menu-path (list gnc:menuname-business-reports) 'options-generator receivable-options-generator 'renderer receivables-renderer 'in-menu? #t) + +(define (receivables-report-create-internal acct title show-zeros?) + (let* ((options (gnc:make-report-options receivables-aging-guid)) + (zero-op (gnc:lookup-option options gnc:pagename-general optname-show-zeros)) + (title-op (gnc:lookup-option options gnc:pagename-general gnc:optname-reportname))) + (when title (gnc:option-set-value title-op title)) + (gnc:option-set-value zero-op show-zeros?) + (gnc:make-report receivables-aging-guid options))) + +(define (payables-report-create-internal acct title show-zeros?) + (let* ((options (gnc:make-report-options payables-aging-guid)) + (zero-op (gnc:lookup-option options gnc:pagename-general optname-show-zeros)) + (title-op (gnc:lookup-option options gnc:pagename-general gnc:optname-reportname))) + (when title (gnc:option-set-value title-op title)) + (gnc:option-set-value zero-op show-zeros?) + (gnc:make-report payables-aging-guid options))) + +(define (gnc:receivables-create-internal + account split query journal? double? title debit-string credit-string) + (receivables-report-create-internal #f #f)) + +(define (gnc:payables-create-internal + account split query journal? double? title debit-string credit-string) + (payables-report-create-internal #f #f)) + +(gnc:register-report-hook ACCT-TYPE-RECEIVABLE #f gnc:receivables-create-internal) +(gnc:register-report-hook ACCT-TYPE-PAYABLE #f gnc:payables-create-internal) + +(export payables-report-create-internal) +(export receivables-report-create-internal) diff --git a/gnucash/report/reports/standard/payables.scm b/gnucash/report/reports/standard/payables.scm index 05b2ef8b96..31aeb7d023 100644 --- a/gnucash/report/reports/standard/payables.scm +++ b/gnucash/report/reports/standard/payables.scm @@ -67,36 +67,15 @@ (gnc:debug "payables-account" payables-account) (aging-renderer report-obj this-acc payables-account #f))) -(define payables-aging-guid "e57770f2dbca46619d6dac4ac5469b50") +(define payables-aging-guid "e57770f2dbca46619d6dac4ac5469b50-old") ;; Here we define the actual report with gnc:define-report (gnc:define-report 'version 1 - 'name (N_ "Payable Aging") + 'name "Payable Aging (legacy)" 'report-guid payables-aging-guid 'menu-path (list gnc:menuname-business-reports) 'options-generator options-generator 'renderer payables-renderer - 'in-menu? #t) + 'in-menu? (gnc-prefs-is-extra-enabled)) -(define (payables-report-create-internal acct title show-zeros?) - (let* ((options (gnc:make-report-options payables-aging-guid)) - (acct-op (gnc:lookup-option options acc-page this-acc)) - (zero-op (gnc:lookup-option options acc-page optname-show-zeros)) - (title-op (gnc:lookup-option options acc-page gnc:optname-reportname))) - - (gnc:option-set-value acct-op acct) - (if (not (string-null? title)) - (gnc:option-set-value title-op title)) - (gnc:option-set-value zero-op show-zeros?) - (gnc:make-report payables-aging-guid options))) - -(define (gnc:payables-report-create-internal - account split query journal? double? title - debit-string credit-string) - (payables-report-create-internal account "" #f)) - -(gnc:register-report-hook ACCT-TYPE-PAYABLE #f - gnc:payables-report-create-internal) - -(export payables-report-create-internal) diff --git a/gnucash/report/reports/standard/receivables.scm b/gnucash/report/reports/standard/receivables.scm index 39c1d47fee..519d5514fa 100644 --- a/gnucash/report/reports/standard/receivables.scm +++ b/gnucash/report/reports/standard/receivables.scm @@ -80,36 +80,15 @@ (aging-renderer report-obj this-acc receivables-account #t))) -(define receivables-aging-guid "9cf76bed17f14401b8e3e22d0079cb98") +(define receivables-aging-guid "9cf76bed17f14401b8e3e22d0079cb98-old") ;; Here we define the actual report with gnc:define-report (gnc:define-report 'version 1 - 'name (N_ "Receivable Aging") + 'name "Receivable Aging (legacy)" 'report-guid receivables-aging-guid 'menu-path (list gnc:menuname-business-reports) 'options-generator options-generator 'renderer receivables-renderer - 'in-menu? #t) + 'in-menu? (gnc-prefs-is-extra-enabled)) -(define (receivables-report-create-internal acct title show-zeros?) - (let* ((options (gnc:make-report-options receivables-aging-guid)) - (acct-op (gnc:lookup-option options acc-page this-acc)) - (zero-op (gnc:lookup-option options acc-page optname-show-zeros)) - (title-op (gnc:lookup-option options acc-page gnc:optname-reportname))) - - (gnc:option-set-value acct-op acct) - (if (not (string-null? title)) - (gnc:option-set-value title-op title)) - (gnc:option-set-value zero-op show-zeros?) - (gnc:make-report receivables-aging-guid options))) - -(define (gnc:receivables-report-create-internal - account split query journal? double? title - debit-string credit-string) - (receivables-report-create-internal account "" #f)) - -(gnc:register-report-hook ACCT-TYPE-RECEIVABLE #f - gnc:receivables-report-create-internal) - -(export receivables-report-create-internal) From 858cf174730fbb387ce3be3c425399df1f3e0f4a Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 25 Apr 2020 13:58:52 +0800 Subject: [PATCH 2/5] {new-}owner-report: swap guids, hook to new-owner-report --- .../reports/standard/customer-summary.scm | 2 +- .../report/reports/standard/job-report.scm | 6 +- .../reports/standard/new-owner-report.scm | 67 +++++++++++++++---- .../report/reports/standard/owner-report.scm | 65 +++--------------- .../standard/test/test-new-owner-report.scm | 2 +- .../standard/test/test-owner-report.scm | 10 +-- 6 files changed, 74 insertions(+), 78 deletions(-) diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm index cab7da78a9..138ffa0dda 100644 --- a/gnucash/report/reports/standard/customer-summary.scm +++ b/gnucash/report/reports/standard/customer-summary.scm @@ -379,7 +379,7 @@ (gncOwnerGetName owner) comm markup comm-profit comm-sales comm-expense (gnc:report-anchor-text - (gnc:owner-report-create owner '() #:currency comm))) + (gnc:owner-report-create owner '()))) sortingtable))))) commodities))) results) diff --git a/gnucash/report/reports/standard/job-report.scm b/gnucash/report/reports/standard/job-report.scm index b2a59e5f1f..c5900b5b77 100644 --- a/gnucash/report/reports/standard/job-report.scm +++ b/gnucash/report/reports/standard/job-report.scm @@ -589,9 +589,9 @@ (gnc:define-report 'version 1 - 'name (N_ "Job Report") - 'report-guid "5518ac227e474f47a34439f2d4d049de" + 'name "Job Report (legacy)" + 'report-guid "5518ac227e474f47a34439f2d4d049de-old" 'menu-path (list gnc:menuname-business-reports) 'options-generator job-options-generator 'renderer reg-renderer - 'in-menu? #t) + 'in-menu? (gnc-prefs-is-extra-enabled)) diff --git a/gnucash/report/reports/standard/new-owner-report.scm b/gnucash/report/reports/standard/new-owner-report.scm index 4bd67c463b..a745589a09 100644 --- a/gnucash/report/reports/standard/new-owner-report.scm +++ b/gnucash/report/reports/standard/new-owner-report.scm @@ -1152,38 +1152,81 @@ invoices and amounts."))))) (define (job-renderer obj) (reg-renderer obj GNC-OWNER-JOB)) +(define customer-report-guid "c146317be32e4948a561ec7fc89d15c1") +(define vendor-report-guid "d7d1e53505ee4b1b82efad9eacedaea0") +(define employee-report-guid "08ae9c2e884b4f9787144f47eacd7f44") + (gnc:define-report 'version 1 - 'name (N_ "Customer Report (beta)") - 'report-guid "c146317be32e4948a561ec7fc89d15c1-new" - 'menu-path (list gnc:menuname-experimental) + 'name (N_ "Customer Report") + 'report-guid customer-report-guid + 'menu-path (list gnc:menuname-business-reports) 'options-generator (lambda () (options-generator GNC-OWNER-CUSTOMER)) 'renderer customer-renderer 'in-menu? #t) (gnc:define-report 'version 1 - 'name (N_ "Vendor Report (beta)") - 'report-guid "d7d1e53505ee4b1b82efad9eacedaea0-new" - 'menu-path (list gnc:menuname-experimental) + 'name (N_ "Vendor Report") + 'report-guid vendor-report-guid + 'menu-path (list gnc:menuname-business-reports) 'options-generator (lambda () (options-generator GNC-OWNER-VENDOR)) 'renderer vendor-renderer 'in-menu? #t) (gnc:define-report 'version 1 - 'name (N_ "Employee Report (beta)") - 'report-guid "08ae9c2e884b4f9787144f47eacd7f44-new" - 'menu-path (list gnc:menuname-experimental) + 'name (N_ "Employee Report") + 'report-guid employee-report-guid + 'menu-path (list gnc:menuname-business-reports) 'options-generator (lambda () (options-generator GNC-OWNER-EMPLOYEE)) 'renderer employee-renderer 'in-menu? #t) (gnc:define-report 'version 1 - 'name (N_ "Job Report (beta)") - 'report-guid "5518ac227e474f47a34439f2d4d049de-new" - 'menu-path (list gnc:menuname-experimental) + 'name (N_ "Job Report") + 'report-guid "5518ac227e474f47a34439f2d4d049de" + 'menu-path (list gnc:menuname-business-reports) 'options-generator (lambda () (options-generator GNC-OWNER-JOB)) 'renderer job-renderer 'in-menu? #t) + + +(define (owner-report-create-internal report-guid owner owner-type) + (let* ((options (gnc:make-report-options report-guid)) + (owner-op (gnc:lookup-option options owner-page (owner-string owner-type)))) + + (gnc:option-set-value owner-op owner) + (gnc:make-report report-guid options))) + +(define (owner-report-create owner account) + ;; note account isn't actually used + (let ((type (gncOwnerGetType (gncOwnerGetEndOwner owner)))) + (cond + ((eqv? type GNC-OWNER-CUSTOMER) + ;; Not sure whether to pass type, or to use the guid in the report function + (owner-report-create-internal customer-report-guid owner type)) + + ((eqv? type GNC-OWNER-VENDOR) + (owner-report-create-internal vendor-report-guid owner type)) + + ((eqv? type GNC-OWNER-EMPLOYEE) + (owner-report-create-internal employee-report-guid owner type)) + + (else #f)))) + +(define (gnc:owner-report-create-internal + account split query journal? double? title debit-string credit-string) + + (let* ((temp-owner (gncOwnerNew)) + (owner (gnc:owner-from-split split temp-owner)) + (res (if (null? owner) + -1 + (owner-report-create owner)))) + (gncOwnerFree temp-owner) + res)) + +(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) diff --git a/gnucash/report/reports/standard/owner-report.scm b/gnucash/report/reports/standard/owner-report.scm index 8bbf3006ff..d4f27e7bd5 100644 --- a/gnucash/report/reports/standard/owner-report.scm +++ b/gnucash/report/reports/standard/owner-report.scm @@ -41,9 +41,9 @@ (define optname-date-driver (N_ "Due or Post Date")) ;; let's define a name for the report-guid's, much prettier -(define employee-report-guid "08ae9c2e884b4f9787144f47eacd7f44") -(define vendor-report-guid "d7d1e53505ee4b1b82efad9eacedaea0") -(define customer-report-guid "c146317be32e4948a561ec7fc89d15c1") +(define employee-report-guid "08ae9c2e884b4f9787144f47eacd7f44-old") +(define vendor-report-guid "d7d1e53505ee4b1b82efad9eacedaea0-old") +(define customer-report-guid "c146317be32e4948a561ec7fc89d15c1-old") (define acct-string (N_ "Account")) (define owner-page gnc:pagename-general) @@ -831,75 +831,28 @@ (gnc:define-report 'version 1 - 'name (N_ "Customer Report") + 'name "Customer Report (legacy)" 'report-guid customer-report-guid 'menu-path (list gnc:menuname-business-reports) 'options-generator customer-options-generator 'renderer reg-renderer - 'in-menu? #t) + 'in-menu? (gnc-prefs-is-extra-enabled)) (gnc:define-report 'version 1 - 'name (N_ "Vendor Report") + 'name "Vendor Report (legacy)" 'report-guid vendor-report-guid 'menu-path (list gnc:menuname-business-reports) 'options-generator vendor-options-generator 'renderer reg-renderer - 'in-menu? #t) + 'in-menu? (gnc-prefs-is-extra-enabled)) (gnc:define-report 'version 1 - 'name (N_ "Employee Report") + 'name "Employee Report (legacy)" 'report-guid employee-report-guid 'menu-path (list gnc:menuname-business-reports) 'options-generator employee-options-generator 'renderer reg-renderer - 'in-menu? #t) + 'in-menu? (gnc-prefs-is-extra-enabled)) -(define (owner-report-create-internal report-guid owner account owner-type) - (let* ((options (gnc:make-report-options report-guid)) - (owner-op (gnc:lookup-option options owner-page (owner-string owner-type))) - (account-op (gnc:lookup-option options owner-page acct-string))) - - (gnc:option-set-value owner-op owner) - (gnc:option-set-value account-op account) - (gnc:make-report report-guid options))) - -(define* (owner-report-create owner account #:key currency) - (let ((type (gncOwnerGetType (gncOwnerGetEndOwner owner)))) - ; Figure out an account to use if nothing exists here. - (if (null? account) - (set! account (find-first-account-for-owner owner #:currency currency))) - (cond - ((eqv? type GNC-OWNER-CUSTOMER) - (owner-report-create-internal customer-report-guid owner account type)) ;; Not sure whether to pass type, or to use the guid in the report function - - ((eqv? type GNC-OWNER-VENDOR) - (owner-report-create-internal vendor-report-guid owner account type)) - - ((eqv? type GNC-OWNER-EMPLOYEE) - (owner-report-create-internal employee-report-guid owner account type)) - - (else #f)))) - -(define (gnc:owner-report-create-internal - account split query journal? double? title - debit-string credit-string) - - (let* ((temp-owner (gncOwnerNew)) - (owner (gnc:owner-from-split split temp-owner)) - (res -1)) ;; XXX -- in this case we should create an error report - - (if (not (null? owner)) - (set! res (owner-report-create owner account))) - - (gncOwnerFree temp-owner) - res)) - -(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) diff --git a/gnucash/report/reports/standard/test/test-new-owner-report.scm b/gnucash/report/reports/standard/test/test-new-owner-report.scm index 0265467739..0fc081e389 100644 --- a/gnucash/report/reports/standard/test/test-new-owner-report.scm +++ b/gnucash/report/reports/standard/test/test-new-owner-report.scm @@ -15,7 +15,7 @@ (use-modules (system vm coverage)) (use-modules (system vm vm)) -(define uuid "c146317be32e4948a561ec7fc89d15c1-new") +(define uuid "c146317be32e4948a561ec7fc89d15c1") (setlocale LC_ALL "C") diff --git a/gnucash/report/reports/standard/test/test-owner-report.scm b/gnucash/report/reports/standard/test/test-owner-report.scm index 11e8374406..a5bdc4273c 100644 --- a/gnucash/report/reports/standard/test/test-owner-report.scm +++ b/gnucash/report/reports/standard/test/test-owner-report.scm @@ -14,11 +14,11 @@ (use-modules (system vm vm)) (define uuid-list - (list (cons 'employee "08ae9c2e884b4f9787144f47eacd7f44") - (cons 'vendor "d7d1e53505ee4b1b82efad9eacedaea0") - (cons 'customer "c146317be32e4948a561ec7fc89d15c1") - (cons 'customer-new "c146317be32e4948a561ec7fc89d15c1-new") - (cons 'job "5518ac227e474f47a34439f2d4d049de"))) + (list (cons 'employee "08ae9c2e884b4f9787144f47eacd7f44-old") + (cons 'vendor "d7d1e53505ee4b1b82efad9eacedaea0-old") + (cons 'customer "c146317be32e4948a561ec7fc89d15c1-old") + (cons 'customer-new "c146317be32e4948a561ec7fc89d15c1") + (cons 'job "5518ac227e474f47a34439f2d4d049de-old"))) (setlocale LC_ALL "C") From 5fb8d3dcdfeca686dbb9df8097d7780a3f085d01 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 25 Apr 2020 14:05:57 +0800 Subject: [PATCH 3/5] balance-sheet/income-statement{-pnl}: swap guids --- .../report/reports/standard/balance-sheet.scm | 7 +++-- .../report/reports/standard/balsheet-pnl.scm | 30 +++++++++---------- .../reports/standard/income-statement.scm | 14 +++++---- .../standard/test/test-balsheet-pnl.scm | 8 ++--- 4 files changed, 31 insertions(+), 28 deletions(-) diff --git a/gnucash/report/reports/standard/balance-sheet.scm b/gnucash/report/reports/standard/balance-sheet.scm index beb78e97b8..2221d5e617 100644 --- a/gnucash/report/reports/standard/balance-sheet.scm +++ b/gnucash/report/reports/standard/balance-sheet.scm @@ -69,7 +69,7 @@ (use-modules (gnucash app-utils)) (use-modules (gnucash report)) -(define reportname (N_ "Balance Sheet")) +(define reportname "Balance Sheet (legacy)") ;; define all option's names and help text so that they are properly ;; defined in *one* place. @@ -559,9 +559,10 @@ (gnc:define-report 'version 1 'name reportname - 'report-guid "c4173ac99b2b448289bf4d11c731af13" + 'report-guid "c4173ac99b2b448289bf4d11c731af13-old" 'menu-path (list gnc:menuname-asset-liability) 'options-generator balance-sheet-options-generator - 'renderer balance-sheet-renderer) + 'renderer balance-sheet-renderer + 'in-menu? (gnc-prefs-is-extra-enabled)) ;; END diff --git a/gnucash/report/reports/standard/balsheet-pnl.scm b/gnucash/report/reports/standard/balsheet-pnl.scm index cf820d317f..b303ab6759 100644 --- a/gnucash/report/reports/standard/balsheet-pnl.scm +++ b/gnucash/report/reports/standard/balsheet-pnl.scm @@ -44,12 +44,6 @@ (split-balance col-datum-get-split-balance) (split-value-balance col-datum-get-split-value-balance)) -(define FOOTER-TEXT - (gnc:make-html-text - (_ "WARNING: Foreign currency conversions, and unrealized gains -calculations are not confirmed correct. This report may be modified -without notice. Bug reports are very welcome at -https://bugs.gnucash.org/"))) ;; define all option's names and help text so that they are properly @@ -1279,30 +1273,36 @@ also show overall period profit & loss.")) (gnc:html-document-add-object! doc multicol-table)) - (gnc:html-document-add-object! - doc FOOTER-TEXT) - (gnc:report-finished) ;; (gnc:html-document-set-style-text! ;; doc " table, td{ border-width: 1px; border-style:solid; border-color: lightgray; border-collapse: collapse}") doc)) -(define balsheet-reportname (_ "Balance Sheet (Multicolumn)")) -(define pnl-reportname (_ "Income Statement (Multicolumn)")) +(define balsheet-reportname (_ "Balance Sheet")) +(define is-reportname (_ "Income Statement")) +(define pnl-reportname (_ "Profit & Loss")) (gnc:define-report 'version 1 'name balsheet-reportname - 'report-guid "065d5d5a77ba11e8b31e83ada73c5eea" - 'menu-path (list gnc:menuname-experimental) + 'report-guid "c4173ac99b2b448289bf4d11c731af13" + 'menu-path (list gnc:menuname-asset-liability) 'options-generator (lambda () (multicol-report-options-generator 'balsheet)) 'renderer (lambda (rpt) (multicol-report-renderer rpt 'balsheet))) +(gnc:define-report + 'version 1 + 'name is-reportname + 'report-guid "0b81a3bdfd504aff849ec2e8630524bc" + 'menu-path (list gnc:menuname-income-expense) + 'options-generator (lambda () (multicol-report-options-generator 'pnl)) + 'renderer (lambda (rpt) (multicol-report-renderer rpt 'pnl))) + (gnc:define-report 'version 1 'name pnl-reportname - 'report-guid "0e94fd0277ba11e8825d43e27232c9d4" - 'menu-path (list gnc:menuname-experimental) + 'report-guid "8758ba23984c40dea5527f5f0ca2779e" + 'menu-path (list gnc:menuname-income-expense) 'options-generator (lambda () (multicol-report-options-generator 'pnl)) 'renderer (lambda (rpt) (multicol-report-renderer rpt 'pnl))) diff --git a/gnucash/report/reports/standard/income-statement.scm b/gnucash/report/reports/standard/income-statement.scm index 42c8a3cab3..14979563a9 100644 --- a/gnucash/report/reports/standard/income-statement.scm +++ b/gnucash/report/reports/standard/income-statement.scm @@ -569,8 +569,8 @@ doc)) -(define is-reportname (N_ "Income Statement")) -(define pnl-reportname (N_ "Profit & Loss")) +(define is-reportname "Income Statement (legacy)") +(define pnl-reportname "Profit & Loss (legacy)") (define (income-statement-options-generator) (income-statement-options-generator-internal is-reportname)) @@ -586,19 +586,21 @@ (gnc:define-report 'version 1 'name is-reportname - 'report-guid "0b81a3bdfd504aff849ec2e8630524bc" + 'report-guid "0b81a3bdfd504aff849ec2e8630524bc-old" 'menu-path (list gnc:menuname-income-expense) 'options-generator income-statement-options-generator - 'renderer income-statement-renderer) + 'renderer income-statement-renderer + 'in-menu? (gnc-prefs-is-extra-enabled)) ;; Also make a "Profit & Loss" report, even if it's the exact same one, ;; just relabeled. (gnc:define-report 'version 1 'name pnl-reportname - 'report-guid "8758ba23984c40dea5527f5f0ca2779e" + 'report-guid "8758ba23984c40dea5527f5f0ca2779e-old" 'menu-path (list gnc:menuname-income-expense) 'options-generator profit-and-loss-options-generator - 'renderer profit-and-loss-renderer) + 'renderer profit-and-loss-renderer + 'in-menu? (gnc-prefs-is-extra-enabled)) ;; END diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm index e865d20170..acaf7c3912 100644 --- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm +++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm @@ -15,10 +15,10 @@ ;; This is implementation testing for Balance Sheet and Profit&Loss. -(define balance-sheet-uuid "c4173ac99b2b448289bf4d11c731af13") -(define pnl-uuid "0b81a3bdfd504aff849ec2e8630524bc") -(define multicol-balsheet-uuid "065d5d5a77ba11e8b31e83ada73c5eea") -(define multicol-pnl-uuid "0e94fd0277ba11e8825d43e27232c9d4") +(define balance-sheet-uuid "c4173ac99b2b448289bf4d11c731af13-old") +(define pnl-uuid "0b81a3bdfd504aff849ec2e8630524bc-old") +(define multicol-balsheet-uuid "c4173ac99b2b448289bf4d11c731af13") +(define multicol-pnl-uuid "0b81a3bdfd504aff849ec2e8630524bc") ;; Explicitly set locale to make the report output predictable (setlocale LC_ALL "C") From 6405c60f3d33624894ed62628765e0e5e38d9dcd Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 25 Apr 2020 15:08:09 +0800 Subject: [PATCH 4/5] [reports] use new module names --- gnucash/report/reports/reports.scm | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/gnucash/report/reports/reports.scm b/gnucash/report/reports/reports.scm index dbb2549dc4..67b2fe51ad 100644 --- a/gnucash/report/reports/reports.scm +++ b/gnucash/report/reports/reports.scm @@ -80,14 +80,9 @@ 0 )) -(use-modules (gnucash reports standard payables)) -(define (gnc:payables-report-create account title show-zeros?) - (payables-report-create-internal account title show-zeros?)) +(use-modules (gnucash reports standard new-aging)) +(define gnc:payables-report-create payables-report-create-internal) +(define gnc:receivables-report-create receivables-report-create-internal) -(use-modules (gnucash reports standard receivables)) -(define (gnc:receivables-report-create account title show-zeros?) - (receivables-report-create-internal account title show-zeros?)) - -(use-modules (gnucash reports standard owner-report)) -(define* (gnc:owner-report-create owner account #:key currency) - (owner-report-create owner account #:currency currency)) +(use-modules (gnucash reports standard new-owner-report)) +(define gnc:owner-report-create owner-report-create) From c6e102951099ef1f6ac204e7e395926b9bba8ab9 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Fri, 1 May 2020 21:33:54 +0800 Subject: [PATCH 5/5] [balsheet-pnl] multichoice option uses symbol instead of #f multichoice is designed to use symbols. use of #f is allowed but not recommended according to the documentation. --- .../report/reports/standard/balsheet-pnl.scm | 60 ++++++++++--------- .../standard/test/test-balsheet-pnl.scm | 2 +- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/gnucash/report/reports/standard/balsheet-pnl.scm b/gnucash/report/reports/standard/balsheet-pnl.scm index b303ab6759..68cb2ecb45 100644 --- a/gnucash/report/reports/standard/balsheet-pnl.scm +++ b/gnucash/report/reports/standard/balsheet-pnl.scm @@ -124,7 +124,7 @@ also show overall period profit & loss.")) (define periodlist (list - (list #f + (list 'disabled (cons 'text (_ "Disabled")) (cons 'tip (_ "Disabled"))) @@ -180,29 +180,30 @@ also show overall period profit & loss.")) (gnc:make-multichoice-callback-option gnc:pagename-general optname-period "c2" opthelp-period - #f + 'disabled (keylist->vectorlist periodlist) #f (lambda (x) - (gnc-option-db-set-option-selectable-by-name - options - gnc:pagename-general optname-disable-amount-indent - (not x)) - (gnc-option-db-set-option-selectable-by-name - options - gnc:pagename-general optname-dual-columns - (not x)) - (case report-type - ((balsheet) - (gnc-option-db-set-option-selectable-by-name - options gnc:pagename-general optname-include-chart x) + (let ((x (not (eq? x 'disabled)))) + (gnc-option-db-set-option-selectable-by-name + options + gnc:pagename-general optname-disable-amount-indent + (not x)) + (gnc-option-db-set-option-selectable-by-name + options + gnc:pagename-general optname-dual-columns + (not x)) + (case report-type + ((balsheet) + (gnc-option-db-set-option-selectable-by-name + options gnc:pagename-general optname-include-chart x) - (gnc-option-db-set-option-selectable-by-name - options gnc:pagename-general optname-startdate x)) + (gnc-option-db-set-option-selectable-by-name + options gnc:pagename-general optname-startdate x)) - ((pnl) - (gnc-option-db-set-option-selectable-by-name - options gnc:pagename-general optname-include-overall-period x)))))) + ((pnl) + (gnc-option-db-set-option-selectable-by-name + options gnc:pagename-general optname-include-overall-period x))))))) (add-option (gnc:make-simple-boolean-option @@ -704,10 +705,10 @@ also show overall period profit & loss.")) (disable-account-indent? (get-option gnc:pagename-display optname-account-full-name)) (incr (get-option gnc:pagename-general optname-period)) - (disable-amount-indent? (and (not incr) + (disable-amount-indent? (and (eq? incr 'disabled) (get-option gnc:pagename-general optname-disable-amount-indent))) - (enable-dual-columns? (and (not incr) + (enable-dual-columns? (and (eq? incr 'disabled) (get-option gnc:pagename-general optname-dual-columns))) (accounts (get-option gnc:pagename-accounts @@ -753,7 +754,8 @@ also show overall period profit & loss.")) (report-dates (cond - (incr (gnc:make-date-list startdate enddate (gnc:deltasym-to-delta incr))) + ((not (eq? incr 'disabled)) + (gnc:make-date-list startdate enddate (gnc:deltasym-to-delta incr))) ((eq? report-type 'pnl) (list startdate enddate)) (else (list enddate)))) @@ -901,7 +903,7 @@ also show overall period profit & loss.")) (lambda () (display report-title) (display " ") - (if (or incr (eq? report-type 'pnl)) + (if (or (not (eq? incr 'disabled)) (eq? report-type 'pnl)) (format #t (_ "~a to ~a") (qof-print-date startdate) (qof-print-date enddate)) (display (qof-print-date enddate)))))) @@ -1017,7 +1019,7 @@ also show overall period profit & loss.")) (income-expense-balance 'format gnc:make-gnc-monetary #f))))) (chart (and-let* (include-chart? - incr + (not (eq? incr 'disabled)) (curr (or common-currency book-main-currency)) (price (or price-source 'pricedb-nearest))) (gnc:make-report-anchor @@ -1072,7 +1074,7 @@ also show overall period profit & loss.")) get-cell-anchor-fn) )))) - (when incr + (unless (eq? incr 'disabled) (add-to-table multicol-table-left (_ "Date") '() #:get-col-header-fn get-col-header-fn #:show-accounts? #f @@ -1110,7 +1112,7 @@ also show overall period profit & loss.")) #:show-accounts? #f #:show-total? #f)) - (if (and include-chart? incr) + (if (and include-chart? (not (eq? incr 'disabled))) (gnc:html-document-add-object! doc (gnc:make-html-text @@ -1149,7 +1151,7 @@ also show overall period profit & loss.")) (let ((datepair (col-idx->datepair col-idx)) (show-orig? (and common-currency #t)) (curr (or common-currency book-main-currency)) - (delta (or incr 'MonthDelta)) + (delta (or (not (eq? incr 'disabled)) 'MonthDelta)) (price (or price-source 'pricedb-nearest)) (accts (if (pair? account) account (list account)))) (gnc:make-report-anchor @@ -1166,7 +1168,7 @@ also show overall period profit & loss.")) (chart (and-let* (include-chart? (curr (or common-currency book-main-currency)) - (delta (or incr 'MonthDelta)) + (delta (or (not (eq? incr 'disabled)) 'MonthDelta)) (price (or price-source 'pricedb-nearest))) (gnc:make-report-anchor pnl-barchart-uuid report-obj @@ -1225,7 +1227,7 @@ also show overall period profit & loss.")) #:get-cell-anchor-fn (and use-amount-links? get-cell-anchor-fn))))) - (when incr + (unless (eq? incr 'disabled) (add-to-table multicol-table-left (_ "Period") '() #:get-col-header-fn get-col-header-fn #:show-accounts? #f diff --git a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm index acaf7c3912..f047294417 100644 --- a/gnucash/report/reports/standard/test/test-balsheet-pnl.scm +++ b/gnucash/report/reports/standard/test/test-balsheet-pnl.scm @@ -540,7 +540,7 @@ ;; the following includes non-zero retained earnings of $1,270 (set-option! multi-bs-options "General" "End Date" (cons 'absolute (gnc-dmy2time64 1 3 1980))) - (set-option! multi-bs-options "General" "Period duration" #f) + (set-option! multi-bs-options "General" "Period duration" 'disabled) (let ((sxml (options->sxml multicol-balsheet-uuid multi-bs-options "multicol-balsheet-retained"))) (test-equal "bal-1/3/80"