Add boring members to notification email.
This commit is contained in:
parent
cafba67089
commit
70a49c0973
2 changed files with 45 additions and 7 deletions
|
@ -32,6 +32,8 @@
|
|||
members-payments-process
|
||||
member-balance
|
||||
member-total-balance
|
||||
|
||||
member-to-notify?
|
||||
members-to-notify
|
||||
)
|
||||
|
||||
|
@ -213,18 +215,25 @@
|
|||
(else 0))))
|
||||
(brmember-payments mr))))
|
||||
|
||||
;; Returns true if given member should be notified in given number of months
|
||||
(define (member-to-notify? mr . mmonths)
|
||||
(let ((months (if (null? mmonths)
|
||||
1
|
||||
(car mmonths)))
|
||||
(total (member-total-balance mr))
|
||||
(fee (lookup-member-fee (if (brmember-student? mr)
|
||||
'student
|
||||
'regular))))
|
||||
(and (brmember-active? mr)
|
||||
(< total 0)
|
||||
(< total (- (* months fee))))))
|
||||
|
||||
;; Return members to notify because of late payments for more than
|
||||
;; given number of months
|
||||
(define (members-to-notify mb months)
|
||||
(find-members-by-predicate
|
||||
mb
|
||||
(lambda (mr)
|
||||
(let ((total (member-total-balance mr))
|
||||
(fee (lookup-member-fee (if (brmember-student? mr)
|
||||
'student
|
||||
'regular))))
|
||||
(and (brmember-active? mr)
|
||||
(< total 0)
|
||||
(< total (- (* months fee))))))))
|
||||
(member-to-notify? mb months))))
|
||||
|
||||
)
|
||||
|
|
|
@ -168,10 +168,39 @@
|
|||
debtors))
|
||||
#:border-style 'ascii
|
||||
#:col-border #t
|
||||
#:row0-border #t))))
|
||||
(boring (find-members-by-predicate mb (compose not member-to-notify?)))
|
||||
(boring-lst
|
||||
(if (null? boring)
|
||||
'()
|
||||
(append
|
||||
(list ""
|
||||
"Other active members:")
|
||||
(table->list
|
||||
(cons (list "Id" "Member" "Type" "Balance" "Last payment")
|
||||
(map (lambda (mr)
|
||||
(list (brmember-id mr)
|
||||
(brmember-nick mr)
|
||||
(if (brmember-student? mr)
|
||||
'student
|
||||
'normal)
|
||||
(format "\t~A" (member-total-balance mr))
|
||||
(let* ((payments (brmember-payments mr))
|
||||
(tr (if (null? payments)
|
||||
#f
|
||||
(car (reverse payments)))))
|
||||
(if tr
|
||||
(bank-transaction-date tr)
|
||||
"-"))
|
||||
))
|
||||
boring))
|
||||
#:border-style 'ascii
|
||||
#:col-border #t
|
||||
#:row0-border #t)))))
|
||||
(append income-lst
|
||||
unpaired-lst
|
||||
debtors-lst
|
||||
boring-lst
|
||||
(list ""
|
||||
"--"
|
||||
"Brmlab Hackerspace Members Database"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue