Split out mbase-stats into separate query module.

This commit is contained in:
Dominik Pantůček 2025-01-02 15:06:32 +01:00
parent e02853edc7
commit b25fbd407d
5 changed files with 117 additions and 46 deletions

View file

@ -41,6 +41,7 @@
member-calendar->table
members-summary
member-calendar-entry->fee
get-expected-income
get-expected-income-string
)
@ -208,6 +209,19 @@
(cons 0 0)
members)))
(define (get-expected-income mb)
(let* ((flst
(map (compose member-calendar-entry->fee make-member-calendar-entry)
(find-members-by-predicate mb brmember-active?)))
(amts (sort (delete-duplicates flst) <))
(sums
(map
(lambda (amt)
(cons amt
(length (filter (lambda (v) (= v amt)) flst))))
amts)))
(number->string (foldl + 0 (map (lambda (p) (* (car p) (cdr p))) sums)))))
(define (get-expected-income-string mb)
(let* ((flst
(map (compose member-calendar-entry->fee make-member-calendar-entry)