diff --git a/member-fees.scm b/member-fees.scm index 1f56cce..0333d81 100644 --- a/member-fees.scm +++ b/member-fees.scm @@ -49,7 +49,8 @@ month ansi table - members-base) + members-base + period) ;; Returns a list of months where each month is a list containing: ;; * month (from month module) @@ -59,7 +60,7 @@ (let ((last-month (if (null? args) (*current-month*) (car args)))) - (let loop ((cm (member-record-info mr 'joined)) + (let loop ((cm (period-since (member-record-info mr 'member))) (cal '())) (if (month>? cm last-month) (reverse cal) diff --git a/member-parser.scm b/member-parser.scm index 50f81e7..b67cbb6 100644 --- a/member-parser.scm +++ b/member-parser.scm @@ -103,13 +103,6 @@ (if ok? mr1 (member-record-add-highlight mr1 line-number msg 3 'error)))) - ((joined) - (let* ((month (string->month (car value))) - (mr0 (member-record-sub-set mr output key month))) - (if month - mr0 - (member-record-add-highlight - mr0 (cdr value) "Invalid month specification" 3 'error)))) ((card desfire) (member-record-sub-set mr output key (map @@ -139,7 +132,7 @@ (apply member-record-sub-ensure mr 'info - 'member (make-period (*member-default-joined*) #f) + 'member (list (make-period (*member-default-joined*) #f)) (join (map (lambda (mk) (list mk #f)) mandatory-keys)))) ;; Pass 0: Removes any comments and removes any leading and trailing diff --git a/member-print.scm b/member-print.scm index b2f3c14..2fc403c 100644 --- a/member-print.scm +++ b/member-print.scm @@ -98,8 +98,6 @@ (body (map (lambda (k) (let ((v (dict-ref info k))) (case k - ((joined) - (list k (month->string v))) ((card desfire credit) (list k (table->string @@ -108,7 +106,7 @@ (list (car c) (cdr c))) v) #:col-border #t))) - ((suspend student) + ((suspend student member) (list k (table->string (cons (list "Since" "Until") diff --git a/member-record.scm b/member-record.scm index b0510e3..aced5fc 100644 --- a/member-record.scm +++ b/member-record.scm @@ -263,11 +263,10 @@ (and (not (member-destroyed? mr)) (not (member-suspended? mr)))) - ;; Returns true if the member has joined. + ;; Returns true if the member is currently a member (define (member-existing? mr) - (let ((joined (member-record-info mr 'joined))) - (and joined - (month<=? joined (*current-month*))))) + (month-in-periods? + (member-record-info mr 'member))) ;; Returns a list of flags of given member record. (define (member-flags mr)