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)))