r23710 - gnucash/trunk/src/report - Make various reports work with the "average cost" price source.
Mike Alexander
mta at code.gnucash.org
Sun Jan 19 02:08:59 EST 2014
Author: mta
Date: 2014-01-19 02:08:59 -0500 (Sun, 19 Jan 2014)
New Revision: 23710
Trac: http://svn.gnucash.org/trac/changeset/23710
Modified:
gnucash/trunk/src/report/report-system/commodity-utilities.scm
gnucash/trunk/src/report/standard-reports/portfolio.scm
Log:
Make various reports work with the "average cost" price source.
THe Portfolio report crashed and several othsrs used "nearest" instead.
Modified: gnucash/trunk/src/report/report-system/commodity-utilities.scm
===================================================================
--- gnucash/trunk/src/report/report-system/commodity-utilities.scm 2014-01-19 07:08:52 UTC (rev 23709)
+++ gnucash/trunk/src/report/report-system/commodity-utilities.scm 2014-01-19 07:08:59 UTC (rev 23710)
@@ -964,6 +964,12 @@
source-option report-currency commodity-list to-date-tp
start-percent delta-percent)
(case source-option
+ ;; Make this the same as gnc:case-exchange-fn
+ ((average-cost) (let* ((exchange-fn (gnc:make-exchange-function
+ (gnc:make-exchange-cost-alist
+ report-currency to-date-tp))))
+ (lambda (foreign domestic date)
+ (exchange-fn foreign domestic))))
((weighted-average) (let ((pricealist
(gnc:get-commoditylist-totalavg-prices
commodity-list report-currency to-date-tp
Modified: gnucash/trunk/src/report/standard-reports/portfolio.scm
===================================================================
--- gnucash/trunk/src/report/standard-reports/portfolio.scm 2014-01-19 07:08:52 UTC (rev 23709)
+++ gnucash/trunk/src/report/standard-reports/portfolio.scm 2014-01-19 07:08:59 UTC (rev 23710)
@@ -202,13 +202,16 @@
(exchange-fn (gnc:case-exchange-fn price-source currency to-date))
(price-fn
(case price-source
- ((weighted-average)
- (let ((pricealist
- (gnc:get-commoditylist-totalavg-prices
- commodity-list currency to-date 0 0)))
- (lambda (foreign date)
- (cons #f (gnc:pricealist-lookup-nearest-in-time
- pricealist foreign date)))))
+ ((weighted-average average-cost)
+ (lambda (foreign date)
+ (cons #f (gnc-numeric-div
+ (gnc:gnc-monetary-amount
+ (exchange-fn (gnc:make-gnc-monetary foreign
+ (gnc-numeric-create 10000 1))
+ currency))
+ (gnc-numeric-create 10000 1)
+ GNC-DENOM-AUTO
+ (logior (GNC-DENOM-SIGFIGS 5) GNC-RND-ROUND)))))
((pricedb-latest)
(lambda (foreign date)
(let* ((price
More information about the gnucash-changes
mailing list