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