From 9c87585d4eaddf314b439afd387b722e00d22cd7 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sun, 5 Feb 2023 17:25:52 +0800 Subject: [PATCH] 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 7a71127a730..be4f50bae40 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 5a92db58d97..5a0b547f078 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