Prepare for notifications.
This commit is contained in:
parent
ac3dce41a6
commit
1551ea15e6
3 changed files with 27 additions and 5 deletions
|
@ -32,7 +32,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
month
|
||||
period
|
||||
command-line
|
||||
utils
|
||||
util-list
|
||||
ansi
|
||||
members-base
|
||||
primes
|
||||
|
@ -70,6 +70,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
(define -jendasap-checked- (make-parameter "checked.ntlm"))
|
||||
(define -ml-all- (make-parameter #f))
|
||||
(define -show-destroyed- (make-parameter #f))
|
||||
(define -notify-months- (make-parameter 1))
|
||||
|
||||
;; Arguments parsing
|
||||
(command-line
|
||||
|
@ -144,6 +145,12 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
(-action- 'mlcheck))
|
||||
(-mlsync () "Synchronize internal ML"
|
||||
(-action- 'mlsync))
|
||||
(-notify () "Members with debt for more than 1 month"
|
||||
(-notify-months- 1)
|
||||
(-action- 'notify))
|
||||
(-notify3 () "Members with debt for more than 3 month"
|
||||
(-notify-months- 3)
|
||||
(-action- 'notify))
|
||||
)
|
||||
|
||||
;; Run tests
|
||||
|
@ -152,7 +159,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
(dictionary-tests!)
|
||||
(month-tests!)
|
||||
(period-tests!)
|
||||
(utils-tests!)
|
||||
(util-list-tests!)
|
||||
(ansi-tests!)
|
||||
(command-line-tests!)
|
||||
(members-dir-tests!)
|
||||
|
@ -297,6 +304,8 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
(print " Missing: " missing))
|
||||
(when (not (null? surplus))
|
||||
(print " Outsiders: " surplus))))))
|
||||
((notify)
|
||||
(print "Notify" (-notify-months-)))
|
||||
(else
|
||||
(print "Nothing to do."))
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
members-payments-process
|
||||
member-balance
|
||||
member-total-balance
|
||||
members-to-notify
|
||||
)
|
||||
|
||||
(import scheme
|
||||
|
@ -211,5 +212,17 @@
|
|||
(else 0))))
|
||||
(member-payments mr))))
|
||||
|
||||
;; Return members to notify because of late payments for more than
|
||||
;; given number of months
|
||||
(define (members-to-notify mb months)
|
||||
(filter-members-by-predicate
|
||||
mb
|
||||
(lambda (mr)
|
||||
(let ((total (member-total-balance mr))
|
||||
(fee (lookup-member-fee (if (member-student? mr)
|
||||
'student
|
||||
'regular))))
|
||||
(and (< total 0)
|
||||
(< total (- (* months fee))))))))
|
||||
|
||||
)
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
util-list
|
||||
(
|
||||
filter
|
||||
utils-tests!
|
||||
util-list-tests!
|
||||
)
|
||||
|
||||
(import scheme
|
||||
|
@ -51,9 +51,9 @@
|
|||
res)))))
|
||||
|
||||
;; Performs utils module self-tests.
|
||||
(define (utils-tests!)
|
||||
(define (util-list-tests!)
|
||||
(run-tests
|
||||
utils
|
||||
util-list
|
||||
(test-equal? filter (filter odd? '(1 2 3 4)) '(1 3))
|
||||
(test-equal? filter (filter odd? '(2 4)) '())
|
||||
))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue