Finish total debit milestone.

This commit is contained in:
Dominik Pantůček 2023-03-29 23:16:45 +02:00
parent d9d37daf1d
commit cf4652084f
5 changed files with 20 additions and 11 deletions

View file

@ -45,6 +45,7 @@
member-record-info
member-missing-keys
member-has-highlights?
member-record-usable?
member-has-problems?
member-destroyed?
@ -221,16 +222,26 @@
(define (member-has-errors? mr)
(member-highlights-has-type? mr 'error))
;; Absolutely required
(define (member-record-usable? mr)
(dict-has-key? (dict-ref mr 'info) 'member))
;; True if member record is OK
(define (member-has-problems? mr)
(or (member-has-errors? mr)
(not (member-record-usable? mr))
(not (is-4digit-prime? (member-id mr)))))
;; Returns true if the member record represents non-existing
;; member. The *current-month* is a global parameter from period
;; module.
(define (member-destroyed? mr)
(not (member-existing? mr)))
(and (not (member-existing? mr))
(let ((member (member-record-info mr 'member)))
(if (null? member)
#f
(month>=? (*current-month*)
(period-since (car member)))))))
;; Generic period-based predicate
(define ((member-period-predicate? key) mr)