[budget-barchart] reindent/delete-trailing-whitespace/untabify

This commit is contained in:
Christopher Lam 2020-06-30 17:50:43 +08:00
parent 2610b5f57f
commit fdc2238192

View File

@ -33,8 +33,7 @@
(use-modules (gnucash app-utils)) (use-modules (gnucash app-utils))
(use-modules (gnucash report)) (use-modules (gnucash report))
(define reportname (define reportname (N_ "Budget Chart"))
(N_ "Budget Chart"))
(define optname-accounts (N_ "Accounts")) (define optname-accounts (N_ "Accounts"))
(define optname-budget (N_ "Budget")) (define optname-budget (N_ "Budget"))
@ -50,16 +49,12 @@
(define opthelp-depth-limit (define opthelp-depth-limit
(N_ "Maximum number of levels in the account tree displayed.")) (N_ "Maximum number of levels in the account tree displayed."))
;(define (options-generator inc-exp?)
(define (options-generator) (define (options-generator)
(let* ( (let ((options (gnc:new-options)))
(options (gnc:new-options))
;; This is just a helper function for making options. (define (add-option new-option)
;; See libgnucash/scm/options.scm for details. (gnc:register-option options new-option))
(add-option
(lambda (new-option)
(gnc:register-option options new-option)))
)
;; Option to select Budget ;; Option to select Budget
(add-option (gnc:make-budget-option (add-option (gnc:make-budget-option
gnc:pagename-general optname-budget gnc:pagename-general optname-budget
@ -71,7 +66,8 @@
optname-from-date optname-to-date "b") optname-from-date optname-to-date "b")
;; Option to select the accounts to that will be displayed ;; Option to select the accounts to that will be displayed
(add-option (gnc:make-account-list-option (add-option
(gnc:make-account-list-option
gnc:pagename-accounts optname-accounts gnc:pagename-accounts optname-accounts
"c" (N_ "Report on these accounts.") "c" (N_ "Report on these accounts.")
(lambda () (lambda ()
@ -96,11 +92,8 @@
;; Display tab ;; Display tab
(add-option (add-option
(gnc:make-multichoice-option (gnc:make-multichoice-option
gnc:pagename-display ;; tab name gnc:pagename-display optname-chart-type "b"
optname-chart-type ;; displayed option name (N_ "This is a multi choice option.") 'bars
"b" ;; localization in the tab
(N_ "This is a multi choice option.") ;; option help text
'bars ;; default selectioin
(list (list
(vector 'bars (vector 'bars
(N_ "Barchart") (N_ "Barchart")
@ -111,14 +104,14 @@
(gnc:options-add-plot-size! (gnc:options-add-plot-size!
options gnc:pagename-display options gnc:pagename-display
optname-plot-width optname-plot-height "c" (cons 'percent 100.0) (cons 'percent 100.0)) optname-plot-width optname-plot-height "c"
(cons 'percent 100.0) (cons 'percent 100.0))
;; Set default page ;; Set default page
(gnc:options-set-default-section options gnc:pagename-general) (gnc:options-set-default-section options gnc:pagename-general)
;; Return options ;; Return options
options options))
))
;; For each period in the budget: ;; For each period in the budget:
@ -127,10 +120,10 @@
;; ;;
;; Create bar and values ;; Create bar and values
;; ;;
(define (gnc:chart-create-budget-actual budget acct running-sum chart-type width height report-start-time report-end-time) (define (gnc:chart-create-budget-actual
(let* ( budget acct running-sum chart-type width height
(chart #f) report-start-time report-end-time)
) (let ((chart #f))
(if (eqv? chart-type 'bars) (if (eqv? chart-type 'bars)
(begin (begin
@ -140,11 +133,8 @@
(gnc:html-barchart-set-width! chart width) (gnc:html-barchart-set-width! chart width)
(gnc:html-barchart-set-height! chart height) (gnc:html-barchart-set-height! chart height)
(gnc:html-barchart-set-row-labels-rotated?! chart #t) (gnc:html-barchart-set-row-labels-rotated?! chart #t)
(gnc:html-barchart-set-col-labels! (gnc:html-barchart-set-col-labels! chart (list (_ "Budget") (_ "Actual")))
chart (list (_ "Budget") (_ "Actual"))) (gnc:html-barchart-set-col-colors! chart '("#0074D9" "#FF4136")))
(gnc:html-barchart-set-col-colors!
chart '("#0074D9" "#FF4136"))
)
;; else ;; else
(begin (begin
;; Setup linechart ;; Setup linechart
@ -153,16 +143,11 @@
(gnc:html-linechart-set-width! chart width) (gnc:html-linechart-set-width! chart width)
(gnc:html-linechart-set-height! chart height) (gnc:html-linechart-set-height! chart height)
(gnc:html-linechart-set-row-labels-rotated?! chart #t) (gnc:html-linechart-set-row-labels-rotated?! chart #t)
(gnc:html-linechart-set-col-labels! (gnc:html-linechart-set-col-labels! chart (list (_ "Budget") (_ "Actual")))
chart (list (_ "Budget") (_ "Actual"))) (gnc:html-linechart-set-col-colors! chart '("#0074D9" "#FF4136"))))
(gnc:html-linechart-set-col-colors!
chart '("#0074D9" "#FF4136"))
)
)
;; Prepare vars for running sums, and to loop though periods ;; Prepare vars for running sums, and to loop though periods
(let* ( (let* ((num-periods (gnc-budget-get-num-periods budget))
(num-periods (gnc-budget-get-num-periods budget))
(period 0) (period 0)
(bgt-sum 0) (bgt-sum 0)
(act-sum 0) (act-sum 0)
@ -170,8 +155,7 @@
(bgt-vals '()) (bgt-vals '())
(act-vals '()) (act-vals '())
(date-iso-string-list '()) (date-iso-string-list '())
(save-fmt (qof-date-format-get)) (save-fmt (qof-date-format-get)))
)
;; make sure jqplot receives the date strings in ISO format (Bug763257) ;; make sure jqplot receives the date strings in ISO format (Bug763257)
(qof-date-format-set QOF-DATE-FORMAT-ISO) (qof-date-format-set QOF-DATE-FORMAT-ISO)
@ -179,41 +163,35 @@
;; Loop through periods ;; Loop through periods
(while (< period num-periods) (while (< period num-periods)
;;add calc new running sums ;;add calc new running sums
(if running-sum (when running-sum
(begin (set! bgt-sum
(set! bgt-sum (+ bgt-sum (+ bgt-sum
(gnc-numeric-to-double (gnc-numeric-to-double
(gnc:get-account-period-rolledup-budget-value budget acct period)))) (gnc:get-account-period-rolledup-budget-value budget acct period))))
(set! act-sum (+ act-sum (set! act-sum
(+ act-sum
(gnc-numeric-to-double (gnc-numeric-to-double
(gnc-budget-get-account-period-actual-value budget acct period)))) (gnc-budget-get-account-period-actual-value budget acct period)))))
)
) (when (<= report-start-time date)
(if (<= report-start-time date)
;; within reporting period, update the display lists ;; within reporting period, update the display lists
(begin (unless running-sum
(if (not running-sum)
(begin
(set! bgt-sum (set! bgt-sum
(gnc-numeric-to-double (gnc-numeric-to-double
(gnc:get-account-period-rolledup-budget-value budget acct period))) (gnc:get-account-period-rolledup-budget-value budget acct period)))
(set! act-sum (set! act-sum
(gnc-numeric-to-double (gnc-numeric-to-double
(gnc-budget-get-account-period-actual-value budget acct period))) (gnc-budget-get-account-period-actual-value budget acct period))))
)
)
(set! bgt-vals (append bgt-vals (list bgt-sum))) (set! bgt-vals (append bgt-vals (list bgt-sum)))
(set! act-vals (append act-vals (list act-sum))) (set! act-vals (append act-vals (list act-sum)))
(set! date-iso-string-list (append date-iso-string-list (list (qof-print-date date)))) (set! date-iso-string-list
) (append date-iso-string-list (list (qof-print-date date)))))
)
;; prepare data for next loop repetition ;; prepare data for next loop repetition
(set! period (+ period 1)) (set! period (+ period 1))
(set! date (gnc-budget-get-period-start-date budget period)) (set! date (gnc-budget-get-period-start-date budget period))
(if (< report-end-time date) (if (< report-end-time date)
(set! period num-periods) ;; reporting period has ended, break the loop (set! period num-periods)))
)
)
;; restore the date strings format ;; restore the date strings format
(qof-date-format-set save-fmt) (qof-date-format-set save-fmt)
@ -226,8 +204,7 @@
(gnc:html-barchart-set-row-labels! chart date-iso-string-list) (gnc:html-barchart-set-row-labels! chart date-iso-string-list)
(if running-sum (if running-sum
(gnc:html-barchart-set-subtitle! (gnc:html-barchart-set-subtitle!
chart (format #f "Bgt: ~a Act: ~a" bgt-sum act-sum))) chart (format #f "Bgt: ~a Act: ~a" bgt-sum act-sum))))
)
;; else ;; else
(begin (begin
;; Add data to the line chart ;; Add data to the line chart
@ -236,15 +213,10 @@
(gnc:html-linechart-set-row-labels! chart date-iso-string-list) (gnc:html-linechart-set-row-labels! chart date-iso-string-list)
(if running-sum (if running-sum
(gnc:html-linechart-set-subtitle! (gnc:html-linechart-set-subtitle!
chart chart (format #f "Bgt: ~a Act: ~a" bgt-sum act-sum))))))
(format #f "Bgt: ~a Act: ~a" bgt-sum act-sum)))
)
)
)
;; Return newly created chart ;; Return newly created chart
chart chart))
))
;; This is the rendering function. It accepts a database of options ;; This is the rendering function. It accepts a database of options
@ -263,23 +235,12 @@
;; This is a helper function to find out the level of the account ;; This is a helper function to find out the level of the account
;; with in the account tree ;; with in the account tree
(define (get-account-level account level) (define (get-account-level account level)
(let ( (let ((parent (gnc-account-get-parent account)))
(parent (gnc-account-get-parent account))
)
(cond (cond
( ((null? parent) level)
(null? parent) ;; exit (else (get-account-level parent (+ level 1))))))
level
)
(else
(get-account-level parent (+ level 1))
)
)
)
)
(let* ( (let* ((budget (get-option gnc:pagename-general optname-budget))
(budget (get-option gnc:pagename-general optname-budget))
(budget-valid? (and budget (not (null? budget)))) (budget-valid? (and budget (not (null? budget))))
(running-sum (get-option gnc:pagename-display optname-running-sum)) (running-sum (get-option gnc:pagename-display optname-running-sum))
(chart-type (get-option gnc:pagename-display optname-chart-type)) (chart-type (get-option gnc:pagename-display optname-chart-type))
@ -295,8 +256,8 @@
(get-option gnc:pagename-general optname-from-date)))) (get-option gnc:pagename-general optname-from-date))))
(to-date-t64 (gnc:time64-end-day-time (to-date-t64 (gnc:time64-end-day-time
(gnc:date-option-absolute-time (gnc:date-option-absolute-time
(get-option gnc:pagename-general optname-to-date)))) (get-option gnc:pagename-general optname-to-date)))))
)
(cond (cond
((null? accounts) ((null? accounts)
;; No accounts selected ;; No accounts selected
@ -314,31 +275,21 @@
(else (else
(for-each (for-each
(lambda (acct) (lambda (acct)
(if (or (if (or (and (equal? depth-limit 'all)
(and (equal? depth-limit 'all) (null? (gnc-account-get-descendants acct)))
(null? (gnc-account-get-descendants acct))
)
(and (not (equal? depth-limit 'all)) (and (not (equal? depth-limit 'all))
(<= (get-account-level acct 0) depth-limit) (<= (get-account-level acct 0) depth-limit)
(null? (gnc-account-get-descendants acct)) (null? (gnc-account-get-descendants acct)))
)
(and (not (equal? depth-limit 'all)) (and (not (equal? depth-limit 'all))
(= (get-account-level acct 0) depth-limit) (= (get-account-level acct 0) depth-limit)))
)
)
(gnc:html-document-add-object! (gnc:html-document-add-object!
document document
(gnc:chart-create-budget-actual budget acct running-sum chart-type width height from-date-t64 to-date-t64) (gnc:chart-create-budget-actual
) budget acct running-sum chart-type width height
) from-date-t64 to-date-t64))))
) accounts)))
accounts
)
)
) ;; end cond
document document))
))
;; Here we define the actual report ;; Here we define the actual report
(gnc:define-report (gnc:define-report