From 68cd8cfa2c41ae754a937fed7abd8b830ac2e8c6 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sun, 5 Feb 2023 17:24:49 +0800 Subject: [PATCH 1/2] [portfolio] remove unused the_price --- gnucash/report/reports/standard/portfolio.scm | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/gnucash/report/reports/standard/portfolio.scm b/gnucash/report/reports/standard/portfolio.scm index 020e867ded..5a92db58d9 100644 --- a/gnucash/report/reports/standard/portfolio.scm +++ b/gnucash/report/reports/standard/portfolio.scm @@ -235,13 +235,7 @@ (gnc-pricedb-lookup-nearest-in-time-any-currency-t64 pricedb foreign (time64CanonicalDayTime date))) (fn (if (and price (> (length price) 0)) - (let* ((the_price - (if (gnc-commodity-equiv - foreign - (gnc-price-get-commodity (car price))) - (car price) - (gnc-price-invert (car price)))) - (v (gnc-price-get-value (car price)))) + (let* ((v (gnc-price-get-value (car price)))) (gnc-price-ref (car price)) (cons (car price) v)) (cons #f (gnc-numeric-zero))))) From 9c87585d4eaddf314b439afd387b722e00d22cd7 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sun, 5 Feb 2023 17:25:52 +0800 Subject: [PATCH 2/2] Bug 798747 - Crash in Investment Portfolio report add support for pricedb-before in portfolio reports --- gnucash/report/reports/standard/advanced-portfolio.scm | 5 +++++ gnucash/report/reports/standard/portfolio.scm | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/gnucash/report/reports/standard/advanced-portfolio.scm b/gnucash/report/reports/standard/advanced-portfolio.scm index 7a71127a73..be4f50bae4 100644 --- a/gnucash/report/reports/standard/advanced-portfolio.scm +++ b/gnucash/report/reports/standard/advanced-portfolio.scm @@ -1026,6 +1026,11 @@ by preventing negative stock balances.
") (lambda (foreign domestic date) (find-price (gnc-pricedb-lookup-latest-any-currency pricedb foreign) domestic))) + ((pricedb-before) + (lambda (foreign domestic date) + (find-price (gnc-pricedb-lookup-nearest-before-any-currency-t64 + pricedb foreign (time64CanonicalDayTime date)) + domestic))) ((pricedb-nearest) (lambda (foreign domestic date) (find-price (gnc-pricedb-lookup-nearest-in-time-any-currency-t64 diff --git a/gnucash/report/reports/standard/portfolio.scm b/gnucash/report/reports/standard/portfolio.scm index 5a92db58d9..5a0b547f07 100644 --- a/gnucash/report/reports/standard/portfolio.scm +++ b/gnucash/report/reports/standard/portfolio.scm @@ -229,6 +229,16 @@ (cons #f (gnc-numeric-zero))))) (if price (gnc-price-list-destroy price)) fn))) + ((pricedb-before) + (lambda (foreign date) + (let ((price (gnc-pricedb-lookup-nearest-before-any-currency-t64 + pricedb foreign (time64CanonicalDayTime date)))) + (cond + ((null? price) (cons #f 0)) + (else (let ((p (car price))) + (gnc-price-ref p) + (gnc-price-list-destroy price) + (cons p (gnc-price-get-value p)))))))) ((pricedb-nearest) (lambda (foreign date) (let* ((price