gnucash master: Bug728692 - Time bound on the Budget Barchart report
Geert Janssens
gjanssens at code.gnucash.org
Sun Mar 13 12:53:45 EDT 2016
Updated via https://github.com/Gnucash/gnucash/commit/d1ab9e78 (commit)
from https://github.com/Gnucash/gnucash/commit/de8e2db3 (commit)
commit d1ab9e783e17e5aa71d91a6dd5f5e80a289f160f
Author: Carsten Rinke <carsten.rinke at gmx.de>
Date: Fri Mar 11 14:24:16 2016 +0100
Bug728692 - Time bound on the Budget Barchart report
diff --git a/src/report/standard-reports/budget-barchart.scm b/src/report/standard-reports/budget-barchart.scm
index ea62f90..b1e0970 100644
--- a/src/report/standard-reports/budget-barchart.scm
+++ b/src/report/standard-reports/budget-barchart.scm
@@ -46,6 +46,8 @@
(define optname-running-sum (N_ "Running Sum"))
(define optname-chart-type (N_ "Chart Type"))
+(define optname-from-date (N_ "Start Date"))
+(define optname-to-date (N_ "End Date"))
(define optname-depth-limit (N_ "Levels of Subaccounts"))
(define opthelp-depth-limit
@@ -100,6 +102,11 @@
)
)
+ ;; date interval
+ (gnc:options-add-date-interval!
+ options gnc:pagename-general
+ optname-from-date optname-to-date "d")
+
;; Option to select the accounts to that will be displayed
(add-option (gnc:make-account-list-option
@@ -129,8 +136,12 @@
;;
;; Create bar and and vaules
;;
-(define (gnc:chart-create-budget-actual budget acct running-sum chart-type)
- (let* ((chart #f))
+(define (gnc:chart-create-budget-actual budget acct running-sum chart-type from-tp to-tp)
+ (let* (
+ (chart #f)
+ (report-start-time (car from-tp))
+ (report-end-time (car to-tp))
+ )
(if (eqv? chart-type 'bars)
(begin
@@ -166,43 +177,51 @@
(period 0)
(bgt-sum 0)
(act-sum 0)
- (date 0)
+ (date (gnc-budget-get-period-start-date budget period))
+ (period-start-time (car date))
(bgt-vals '())
(act-vals '())
(date-list '())
)
- ;; Loop though periods
+ ;; Loop through periods
(while (< period num-periods)
-
- ;; Add calc new running sum and add to list
- (if running-sum
- (set! bgt-sum (+ bgt-sum
- (gnc-numeric-to-double
- (gnc:get-account-period-rolledup-budget-value budget acct period))))
-
- (set! bgt-sum
- (gnc-numeric-to-double
- (gnc:get-account-period-rolledup-budget-value budget acct period)))
- )
- (set! bgt-vals (append bgt-vals (list bgt-sum)))
-
+ ;;add calc new running sums
(if running-sum
- (set! act-sum (+ act-sum
- (gnc-numeric-to-double
- (gnc-budget-get-account-period-actual-value budget acct period))))
-
- (set! act-sum
- (gnc-numeric-to-double
- (gnc-budget-get-account-period-actual-value budget acct period)))
- )
- (set! act-vals (append act-vals (list act-sum)))
-
- ;; Add period to date list
+ (begin
+ (set! bgt-sum (+ bgt-sum
+ (gnc-numeric-to-double
+ (gnc:get-account-period-rolledup-budget-value budget acct period))))
+ (set! act-sum (+ act-sum
+ (gnc-numeric-to-double
+ (gnc-budget-get-account-period-actual-value budget acct period))))
+ )
+ )
+ (if (<= report-start-time period-start-time)
+ ;; within reporting period, update the display lists
+ (begin
+ (if (not running-sum)
+ (begin
+ (set! bgt-sum
+ (gnc-numeric-to-double
+ (gnc:get-account-period-rolledup-budget-value budget acct period)))
+ (set! act-sum
+ (gnc-numeric-to-double
+ (gnc-budget-get-account-period-actual-value budget acct period)))
+ )
+ )
+ (set! bgt-vals (append bgt-vals (list bgt-sum)))
+ (set! act-vals (append act-vals (list act-sum)))
+ (set! date-list (append date-list (list (gnc-print-date date))))
+ )
+ )
+ ;; prepare data for next loop repetition
+ (set! period (+ period 1))
(set! date (gnc-budget-get-period-start-date budget period))
- (set! date-list (append date-list (list (gnc-print-date date))))
-
- (set! period (+ period 1))
+ (set! period-start-time (car date))
+ (if (< report-end-time period-start-time)
+ (set! period num-periods) ;; reporting period has ended, break the loop
+ )
)
(if (eqv? chart-type 'bars)
@@ -286,6 +305,12 @@
(report-title (get-option gnc:pagename-general
gnc:optname-reportname))
(document (gnc:make-html-document))
+ (from-date-tp (gnc:timepair-start-day-time
+ (gnc:date-option-absolute-time
+ (get-option gnc:pagename-general optname-from-date))))
+ (to-date-tp (gnc:timepair-end-day-time
+ (gnc:date-option-absolute-time
+ (get-option gnc:pagename-general optname-to-date))))
)
(cond
((null? accounts)
@@ -318,7 +343,7 @@
)
(gnc:html-document-add-object!
document
- (gnc:chart-create-budget-actual budget acct running-sum chart-type)
+ (gnc:chart-create-budget-actual budget acct running-sum chart-type from-date-tp to-date-tp)
)
)
)
Summary of changes:
src/report/standard-reports/budget-barchart.scm | 89 ++++++++++++++++---------
1 file changed, 57 insertions(+), 32 deletions(-)
More information about the gnucash-changes
mailing list