From 02970201a0f0712832b6c69322f193fcc7e9e3cd Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Sun, 2 Sep 2012 19:49:01 +0000 Subject: [PATCH] Bug #632931 - Advanced portfolio: add "rate of gain" column git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@22354 57a11ea4-9604-0410-9ed3-97b8803252fd --- .../standard-reports/advanced-portfolio.scm | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/report/standard-reports/advanced-portfolio.scm b/src/report/standard-reports/advanced-portfolio.scm index 701f328767..72fcebc75d 100644 --- a/src/report/standard-reports/advanced-portfolio.scm +++ b/src/report/standard-reports/advanced-portfolio.scm @@ -715,6 +715,16 @@ (gnc:make-html-table-header-cell/markup "number-cell" gain) (gnc:make-html-table-header-cell/markup "number-cell" ugain) (gnc:make-html-table-header-cell/markup "number-cell" bothgain) + (gnc:make-html-table-header-cell/markup "number-cell" + (let* ((moneyinvalue (gnc-numeric-to-double + (gnc:gnc-monetary-amount moneyin))) + (bothgainvalue (gnc-numeric-to-double + (gnc:gnc-monetary-amount bothgain))) + ) + (if (= 0.0 moneyinvalue) + "" + (sprintf #f "%.2f%%" (* 100 (/ bothgainvalue moneyinvalue))))) + ) (gnc:make-html-table-header-cell/markup "number-cell" income))) (if (not ignore-brokerage-fees) (append! activecols (list (gnc:make-html-table-header-cell/markup "number-cell" brokerage)))) @@ -726,7 +736,7 @@ (gnc:gnc-monetary-amount totalreturn))) ) (if (= 0.0 moneyinvalue) - (sprintf #f "%.2f%%" moneyinvalue) + "" (sprintf #f "%.2f%%" (* 100 (/ totalreturnvalue moneyinvalue)))))) ) ) @@ -846,6 +856,7 @@ (_ "Realized Gain") (_ "Unrealized Gain") (_ "Total Gain") + (_ "Rate of Gain") (_ "Income"))) (if (not ignore-brokerage-fees) @@ -907,6 +918,16 @@ "total-number-cell" sum-total-ugain) (gnc:make-html-table-cell/markup "total-number-cell" sum-total-both-gains) + (gnc:make-html-table-cell/markup + "total-number-cell" + (let* ((totalinvalue (gnc-numeric-to-double + (gnc:gnc-monetary-amount sum-total-moneyin))) + (totalgainvalue (gnc-numeric-to-double + (gnc:gnc-monetary-amount sum-total-both-gains))) + ) + (if (= 0.0 totalinvalue) + "" + (sprintf #f "%.2f%%" (* 100 (/ totalgainvalue totalinvalue)))))) (gnc:make-html-table-cell/markup "total-number-cell" sum-total-income))) (if (not ignore-brokerage-fees) @@ -924,7 +945,7 @@ (gnc:gnc-monetary-amount sum-total-totalreturn))) ) (if (= 0.0 totalinvalue) - (sprintf #f "%.2f%%" totalinvalue) + "" (sprintf #f "%.2f%%" (* 100 (/ totalreturnvalue totalinvalue)))))) ))