mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[balsheet-eg] modernize accrec to use srfi-9 record
This commit is contained in:
parent
66c7a0744c
commit
76fdbfc5fc
@ -42,6 +42,7 @@
|
|||||||
|
|
||||||
(use-modules (ice-9 local-eval)) ; for the-environment
|
(use-modules (ice-9 local-eval)) ; for the-environment
|
||||||
(use-modules (srfi srfi-13)) ; for extra string functions
|
(use-modules (srfi srfi-13)) ; for extra string functions
|
||||||
|
(use-modules (srfi srfi-9))
|
||||||
|
|
||||||
(define debugging? #f)
|
(define debugging? #f)
|
||||||
|
|
||||||
@ -110,67 +111,31 @@
|
|||||||
(accrec-sublist accrec))
|
(accrec-sublist accrec))
|
||||||
(display "</ul>"))
|
(display "</ul>"))
|
||||||
(display "#f")))
|
(display "#f")))
|
||||||
(define accrectype (make-record-type "accrecc"
|
|
||||||
'(account
|
|
||||||
code
|
|
||||||
placeholder?
|
|
||||||
namelink ; a/c name, as link if required
|
|
||||||
commodity
|
|
||||||
balance-num ; excluding sublist
|
|
||||||
depth
|
|
||||||
treedepth
|
|
||||||
non-zero? ; #t if this or any sub-a/cs are non zero
|
|
||||||
summary? ; #t if subaccounts summarised here
|
|
||||||
subtotal-cc ; of sublist plus this a/c
|
|
||||||
sublist)
|
|
||||||
accrec-printer))
|
|
||||||
|
|
||||||
(define newaccrec-full (record-constructor accrectype)) ; requires all the fields
|
(define-record-type <accrec>
|
||||||
(define (newaccrec-clean)
|
(newaccrec-full account code placeholder? namelink commodity balance-num depth
|
||||||
;; Create a new accrec with 'clean' empty values, e.g. strings are "", not #f
|
treedepth non-zero? summary? subtotal-cc sublist)
|
||||||
(newaccrec-full #f ; account
|
accrec?
|
||||||
"" ; code
|
(account accrec-account accrec-set-account!)
|
||||||
#f ; placeholder?
|
(code accrec-code accrec-set-code!)
|
||||||
"" ; namelink
|
(placeholder? accrec-placeholder? accrec-set-placeholder?!)
|
||||||
(gnc-default-currency) ; commodity
|
(namelink accrec-namelink accrec-set-namelink!)
|
||||||
(gnc-numeric-zero) ; balance-num
|
(commodity accrec-commodity accrec-set-commodity!)
|
||||||
0 ; depth
|
(balance-num accrec-balance-num accrec-set-balance-num!)
|
||||||
0 ; treedepth
|
(depth accrec-depth accrec-set-depth!)
|
||||||
#f ; non-zero?
|
(treedepth accrec-treedepth accrec-set-treedepth!)
|
||||||
#f ; summary?
|
(non-zero? accrec-non-zero? accrec-set-non-zero?!)
|
||||||
(gnc:make-commodity-collector) ; subtotal-cc
|
(summary? accrec-summary? accrec-set-summary?!)
|
||||||
#f ;'() ; sublist
|
(subtotal-cc accrec-subtotal-cc accrec-set-subtotal-cc!)
|
||||||
))
|
(sublist accrec-sublist accrec-set-sublist!))
|
||||||
(define accrec? (record-predicate accrectype))
|
|
||||||
(define accrec-account (record-accessor accrectype 'account))
|
|
||||||
(define accrec-code (record-accessor accrectype 'code))
|
|
||||||
(define accrec-placeholder? (record-accessor accrectype 'placeholder?))
|
|
||||||
(define accrec-namelink (record-accessor accrectype 'namelink))
|
|
||||||
(define accrec-commodity (record-accessor accrectype 'commodity))
|
|
||||||
(define accrec-balance-num (record-accessor accrectype 'balance-num))
|
|
||||||
(define (accrec-balance-mny accrec)
|
(define (accrec-balance-mny accrec)
|
||||||
(gnc:make-gnc-monetary (accrec-commodity accrec) (accrec-balance-num accrec)))
|
(gnc:make-gnc-monetary (accrec-commodity accrec) (accrec-balance-num accrec)))
|
||||||
(define accrec-depth (record-accessor accrectype 'depth))
|
|
||||||
(define accrec-treedepth (record-accessor accrectype 'treedepth))
|
(define (newaccrec-clean)
|
||||||
(define accrec-non-zero? (record-accessor accrectype 'non-zero?))
|
(newaccrec-full #f "" #f "" (gnc-default-currency) 0 0 0 #f #f
|
||||||
(define accrec-summary? (record-accessor accrectype 'summary?))
|
(gnc:make-commodity-collector) #f))
|
||||||
(define accrec-subtotal-cc (record-accessor accrectype 'subtotal-cc))
|
|
||||||
(define accrec-sublist (record-accessor accrectype 'sublist))
|
|
||||||
(define accrec-set-account! (record-modifier accrectype 'account))
|
|
||||||
(define accrec-set-code! (record-modifier accrectype 'code))
|
|
||||||
(define accrec-set-placeholder?! (record-modifier accrectype 'placeholder?))
|
|
||||||
(define accrec-set-namelink! (record-modifier accrectype 'namelink))
|
|
||||||
(define accrec-set-commodity! (record-modifier accrectype 'commodity))
|
|
||||||
(define accrec-set-balance-num! (record-modifier accrectype 'balance-num))
|
|
||||||
(define (accrec-set-balance-mny! accrec mny)
|
|
||||||
(accrec-set-commodity! accrec (gnc:gnc-monetary-commodity mny))
|
|
||||||
(accrec-set-balance-num! accrec (gnc:gnc-monetary-amount mny)))
|
|
||||||
(define accrec-set-depth! (record-modifier accrectype 'depth))
|
|
||||||
(define accrec-set-treedepth! (record-modifier accrectype 'treedepth))
|
|
||||||
(define accrec-set-non-zero?! (record-modifier accrectype 'non-zero?))
|
|
||||||
(define accrec-set-summary?! (record-modifier accrectype 'summary?))
|
|
||||||
(define accrec-set-subtotal-cc! (record-modifier accrectype 'subtotal-cc))
|
|
||||||
(define accrec-set-sublist! (record-modifier accrectype 'sublist))
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; All the options stuff starts here
|
;; All the options stuff starts here
|
||||||
|
Loading…
Reference in New Issue
Block a user