Balance summaries for all members over time.
This commit is contained in:
parent
0e9cfd546b
commit
7dbdd3ea6e
3 changed files with 13 additions and 7 deletions
|
@ -573,7 +573,7 @@ export-sheet.import.scm: $(EXPORT-SHEET-SOURCES)
|
||||||
MBASE-QUERY-SOURCES=mbase-query.scm mbase.import.scm \
|
MBASE-QUERY-SOURCES=mbase-query.scm mbase.import.scm \
|
||||||
brmember.import.scm util-bst-ldict.scm primes.import.scm \
|
brmember.import.scm util-bst-ldict.scm primes.import.scm \
|
||||||
cal-period.import.scm cal-month.import.scm \
|
cal-period.import.scm cal-month.import.scm \
|
||||||
members-fees.import.scm
|
members-fees.import.scm members-payments.import.scm
|
||||||
|
|
||||||
mbase-query.o: mbase-query.import.scm
|
mbase-query.o: mbase-query.import.scm
|
||||||
mbase-query.import.scm: $(MBASE-QUERY-SOURCES)
|
mbase-query.import.scm: $(MBASE-QUERY-SOURCES)
|
||||||
|
|
|
@ -184,6 +184,7 @@
|
||||||
(-action- 'genweb))
|
(-action- 'genweb))
|
||||||
(-stats (file:gnuplot-data) "Get stats for all months"
|
(-stats (file:gnuplot-data) "Get stats for all months"
|
||||||
(-action- 'print-stats)
|
(-action- 'print-stats)
|
||||||
|
(-needs-bank- #t)
|
||||||
(-fname- file:gnuplot-data))
|
(-fname- file:gnuplot-data))
|
||||||
(-sheet (filename gmnum) "Generate attendance sheet for given GM number"
|
(-sheet (filename gmnum) "Generate attendance sheet for given GM number"
|
||||||
(-needs-bank- #t)
|
(-needs-bank- #t)
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
primes
|
primes
|
||||||
cal-period
|
cal-period
|
||||||
cal-month
|
cal-month
|
||||||
members-fees)
|
members-fees
|
||||||
|
members-payments)
|
||||||
|
|
||||||
(define (members-base-oldest-month mb)
|
(define (members-base-oldest-month mb)
|
||||||
(make-cal-month 2015 1))
|
(make-cal-month 2015 1))
|
||||||
|
@ -52,8 +53,9 @@
|
||||||
(di0 (make-ldict))
|
(di0 (make-ldict))
|
||||||
(di1 (ldict-set di0 'invalid
|
(di1 (ldict-set di0 'invalid
|
||||||
(filter (compose not is-4digit-prime? brmember-id) members)))
|
(filter (compose not is-4digit-prime? brmember-id) members)))
|
||||||
|
(active-members (filter brmember-active? members))
|
||||||
(di2 (ldict-set di1 'active
|
(di2 (ldict-set di1 'active
|
||||||
(filter brmember-active? members)))
|
active-members))
|
||||||
(di3 (ldict-set di2 'suspended
|
(di3 (ldict-set di2 'suspended
|
||||||
(filter brmember-suspended? members)))
|
(filter brmember-suspended? members)))
|
||||||
(di4 (ldict-set di3 'students
|
(di4 (ldict-set di3 'students
|
||||||
|
@ -66,11 +68,14 @@
|
||||||
(find-members-by-predicate mb-arg brmember-has-problems?)))
|
(find-members-by-predicate mb-arg brmember-has-problems?)))
|
||||||
(di9 (ldict-set di8 'expected
|
(di9 (ldict-set di8 'expected
|
||||||
(get-expected-income mb-arg)))
|
(get-expected-income mb-arg)))
|
||||||
;; add total balance of all members (including destroyed)
|
(mbals (map member-total-balance active-members))
|
||||||
;; add total balance of all active members (-only-active -like)
|
(di10 (ldict-set di9 'balance
|
||||||
|
(foldl + 0 mbals)))
|
||||||
|
;; advance payments
|
||||||
|
;; debts of fees
|
||||||
;; add average age of active members
|
;; add average age of active members
|
||||||
)
|
)
|
||||||
di9))
|
di10))
|
||||||
|
|
||||||
;; Returns a list two lists: keys, data.
|
;; Returns a list two lists: keys, data.
|
||||||
;; Each data record contains values for all keys.
|
;; Each data record contains values for all keys.
|
||||||
|
@ -78,7 +83,7 @@
|
||||||
(let ((keys
|
(let ((keys
|
||||||
'(month
|
'(month
|
||||||
total active suspended students destroyed invalid
|
total active suspended students destroyed invalid
|
||||||
expected
|
expected balance
|
||||||
)))
|
)))
|
||||||
(let mloop ((data '())
|
(let mloop ((data '())
|
||||||
(month (members-base-oldest-month mb)))
|
(month (members-base-oldest-month mb)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue