Add -only-active to -fees.

This commit is contained in:
Dominik Pantůček 2023-12-06 21:33:47 +01:00
parent 2dc8d3c119
commit 45a7af9c27
2 changed files with 16 additions and 6 deletions

View file

@ -62,6 +62,7 @@
(define -web-dir- (make-parameter #f))
(define -normal-month- (make-parameter #t))
(define -show-destroyed- (make-parameter #f))
(define -show-only-active- (make-parameter #f))
(define -notify-months- (make-parameter 1))
(define -send-emails- (make-parameter #f))
@ -137,6 +138,8 @@
"Misc options:"
(-destroyed () "Show destroyed members in -fees"
(-show-destroyed- #t))
(-only-active () "Show only active members in -fees"
(-show-only-active- #t))
""
"Base Actions:"
(-info () "Print information"
@ -372,7 +375,7 @@
(newline)
(if mr
(print-member-balances-table mr)
(print-members-fees-table MB (-show-destroyed-))))
(print-members-fees-table MB (-show-destroyed-) (-show-only-active-)))
((repl)
(repl))
((genweb)

View file

@ -471,10 +471,14 @@
")"))))
;; Prints summary table of all fees and credits for all members
(define (print-members-fees-table MB . ds)
(let ((destroyed? (if (null? ds)
(define (print-members-fees-table MB . dsa)
(let ((destroyed? (if (null? dsa)
#f
(car ds))))
(car dsa)))
(only-active? (if (or (null? dsa)
(null? (cdr dsa)))
#f
(cadr dsa))))
(let* ((members ;; Pass 1
(map
(lambda (mr)
@ -500,8 +504,11 @@
(sort
(if destroyed?
(find-members-by-predicate MB (lambda x #t))
(find-members-by-predicate MB (lambda (mr)
(not (brmember-destroyed? mr)))))
(if only-active?
(find-members-by-predicate MB (lambda (mr)
(brmember-active? mr)))
(find-members-by-predicate MB (lambda (mr)
(not (brmember-destroyed? mr))))))
brmember<?)))
(balances (map (lambda (m)
(list-ref m 6))