Hi Andreas,

Attached are two patches correcting issues with my recently submitted
budget-related reports.  As requested, these patches apply on top of my
previously-sent patch.

As always, your feedback is appreciated.

The whitespace conventions for .scm files are not entirely clear to me.  The
whitespace in my scheme code is quirky.  It appears that this is not entirely
unusual in the existing report code, but I may follow up with a patch to correct
this, unless such patches are generally not preferred.

Thanks for your time.

Thanks,
Forest
-- 
Forest Bond
http://www.alittletooquiet.net
http://www.pytagsfs.org
=== modified file 'src/report/report-system/report.scm'
--- src/report/report-system/report.scm	2009-01-12 11:42:59 +0000
+++ src/report/report-system/report.scm	2009-01-13 04:18:44 +0000
@@ -35,7 +35,7 @@
 (define gnc:menuname-reports "Reports/StandardReports")
 (define gnc:menuname-asset-liability (N_ "_Assets & Liabilities"))
 (define gnc:menuname-income-expense (N_ "_Income & Expense"))
-(define gnc:menuname-budget "B_udget")
+(define gnc:menuname-budget (N_ "B_udget"))
 (define gnc:menuname-taxes (N_ "_Taxes"))
 (define gnc:menuname-utility (N_ "_Sample & Custom"))
 (define gnc:menuname-custom (N_ "_Custom"))

=== modified file 'src/report/standard-reports/budget-balance-sheet.scm'
--- src/report/standard-reports/budget-balance-sheet.scm	2009-01-12 11:42:59 +0000
+++ src/report/standard-reports/budget-balance-sheet.scm	2009-01-14 01:55:58 +0000
@@ -462,6 +462,7 @@
                (liability-balance #f)
                (liability-get-balance-fn #f)
 
+               (unrealized-gain #f)
                (existing-equity #f)
                (new-equity #f)
                (equity-balance #f)
@@ -622,24 +623,6 @@
 	  (gnc:report-percent-done 16)
 
 
-          ;; Total existing equity; negative.
-          (set! existing-equity
-            (get-assoc-account-balances-total-negated
-              equity-account-initial-balances))
-          ;; Include existing retained earnings.
-          (existing-equity 'merge existing-retained-earnings #f)
-
-          ;; Total new equity; positive.
-          (set! new-equity
-            (gnc:get-assoc-account-balances-total
-              equity-account-budget-balances))
-          ;; Include new retained earnings.
-          (new-equity 'merge new-retained-earnings #f)
-
-
-	  (gnc:report-percent-done 18)
-
-
           ;; Total existing assets.
           (set! existing-assets
             (gnc:get-assoc-account-balances-total
@@ -665,9 +648,55 @@
           (asset-balance 'merge unallocated-assets #f)
 
 
+	  (gnc:report-percent-done 18)
+
+
+          ;; Calculate unrealized gains.
+          (set! unrealized-gain (gnc:make-commodity-collector))
+          (let*
+            (
+              (get-total-value-fn
+                (lambda (account)
+                  (gnc:account-get-comm-value-at-date account date-tp #f)))
+              (asset-basis
+                (gnc:accounts-get-comm-total-assets
+                  asset-accounts get-total-value-fn))
+              (liability-basis
+                (gnc:commodity-collector-get-negated
+                  (gnc:accounts-get-comm-total-assets
+                    liability-accounts get-total-value-fn)))
+            )
+
+            ;; Calculate unrealized gains from assets.
+            (unrealized-gain 'merge existing-assets #f)
+            (unrealized-gain 'minusmerge asset-basis #f)
+
+            ;; Combine with unrealized gains from liabilities
+            (unrealized-gain 'minusmerge existing-liabilities #f)
+            (unrealized-gain 'merge liability-basis #f))
+
+
 	  (gnc:report-percent-done 22)
 
 
+          ;; Total existing equity; negative.
+          (set! existing-equity
+            (get-assoc-account-balances-total-negated
+              equity-account-initial-balances))
+          ;; Include existing retained earnings.
+          (existing-equity 'merge existing-retained-earnings #f)
+          ;; Include unrealized gains.
+          (existing-equity 'merge unrealized-gain #f)
+
+
+          ;; Total new equity; positive.
+          (set! new-equity
+            (gnc:get-assoc-account-balances-total
+              equity-account-budget-balances))
+          ;; Include new retained earnings.
+          (new-equity 'merge new-retained-earnings #f)
+
+
           ;; Total equity.
 	  (set! equity-balance (gnc:make-commodity-collector))
 	  (equity-balance 'merge existing-equity #f)
@@ -816,6 +845,14 @@
                 (_ "Total Retained Losses")
                 retained-earnings))
 
+
+          (if (not (gnc-commodity-collector-allzero? unrealized-gain))
+            (add-subtotal-line right-table
+              (_ "Unrealized Gains")
+              (_ "Unrealized Losses")
+              unrealized-gain))
+
+
 	  (if total-equity?
             (begin
               (if new-existing?

Attachment: signature.asc
Description: Digital signature

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to