From bd038f52ea0e63708b2fc314c7c87d236b17c749 Mon Sep 17 00:00:00 2001 From: Derek Atkins Date: Fri, 14 Nov 2003 16:36:53 +0000 Subject: [PATCH] * src/report/standard-reports/advanced-portfolio.scm: Applied Frank Pavageau's patch regarding capital gains to handle split transactions. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9681 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 6 +++ .../standard-reports/advanced-portfolio.scm | 42 ++++++++++--------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b264f8f87..1a3e6704b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-11-14 Derek Atkins + + * src/report/standard-reports/advanced-portfolio.scm: + Applied Frank Pavageau's patch regarding capital gains to + handle split transactions. + 2003-10-26 David Hampton * src/engine/qofid.[ch]: Fix another crash caused by qof changes. diff --git a/src/report/standard-reports/advanced-portfolio.scm b/src/report/standard-reports/advanced-portfolio.scm index 4e284768c3..dc5f361554 100644 --- a/src/report/standard-reports/advanced-portfolio.scm +++ b/src/report/standard-reports/advanced-portfolio.scm @@ -176,27 +176,29 @@ (lambda (s) (cond ((same-split? s split) - (unitscoll 'add commodity (gnc:split-get-amount s)) ;; Is the stock transaction? ;; (gnc:debug "amount" (gnc:numeric-to-double (gnc:split-get-amount s)) ) - (if (< 0 (gnc:numeric-to-double - (gnc:split-get-amount s))) - (set! totalunits - (+ totalunits - (gnc:numeric-to-double (gnc:split-get-amount s))))) - (set! totalunityears - (+ totalunityears - (* (gnc:numeric-to-double (gnc:split-get-amount s)) - (gnc:date-year-delta - (car (gnc:transaction-get-date-posted parent)) - (current-time))))) - (cond - ((gnc:numeric-negative-p (gnc:split-get-value s)) - (moneyoutcoll - 'add currency - (gnc:numeric-neg (gnc:split-get-value s)))) - (else (moneyincoll - 'add currency - (gnc:numeric-neg (gnc:split-get-value s)))))) + (cond + ((not (gnc:numeric-zero-p (gnc:split-get-amount s))) + (unitscoll 'add commodity (gnc:split-get-amount s)) ;; Is the stock transaction? + (if (< 0 (gnc:numeric-to-double + (gnc:split-get-amount s))) + (set! totalunits + (+ totalunits + (gnc:numeric-to-double (gnc:split-get-amount s))))) + (set! totalunityears + (+ totalunityears + (* (gnc:numeric-to-double (gnc:split-get-amount s)) + (gnc:date-year-delta + (car (gnc:transaction-get-date-posted parent)) + (current-time))))) + (cond + ((gnc:numeric-negative-p (gnc:split-get-value s)) + (moneyoutcoll + 'add currency + (gnc:numeric-neg (gnc:split-get-value s)))) + (else (moneyincoll + 'add currency + (gnc:numeric-neg (gnc:split-get-value s)))))))) ((split-account-type? s 'expense) (brokeragecoll 'add currency (gnc:split-get-value s)))