Parsing of amount in fee period specification.
This commit is contained in:
parent
259a2664a0
commit
055f7ba030
2 changed files with 32 additions and 9 deletions
|
@ -116,7 +116,23 @@
|
||||||
((student suspend member revision chair council grant fee)
|
((student suspend member revision chair council grant fee)
|
||||||
(let* ((res (period-markers->cal-periods value))
|
(let* ((res (period-markers->cal-periods value))
|
||||||
(ok? (car res))
|
(ok? (car res))
|
||||||
(periods (cadr res))
|
(periods0 (cadr res))
|
||||||
|
(periods
|
||||||
|
(if (eq? key 'fee)
|
||||||
|
(let ((ps
|
||||||
|
(map
|
||||||
|
(lambda (p)
|
||||||
|
(let* ((sc (cal-period-scomment p))
|
||||||
|
(scp (string-first+rest sc))
|
||||||
|
(amts (car scp))
|
||||||
|
(amt (string->number amts))
|
||||||
|
(rc (cdr scp)))
|
||||||
|
(set-cal-period-scomment
|
||||||
|
p
|
||||||
|
(list amt rc))))
|
||||||
|
periods0)))
|
||||||
|
ps)
|
||||||
|
periods0))
|
||||||
(msg (caddr res))
|
(msg (caddr res))
|
||||||
(line-number (cadddr res))
|
(line-number (cadddr res))
|
||||||
(mr1 (brmember-sub-set mr output key periods)))
|
(mr1 (brmember-sub-set mr output key periods)))
|
||||||
|
@ -125,10 +141,10 @@
|
||||||
(brmember-add-highlight mr1 line-number msg 3 'error))))
|
(brmember-add-highlight mr1 line-number msg 3 'error))))
|
||||||
((card desfire)
|
((card desfire)
|
||||||
(brmember-sub-set mr output key
|
(brmember-sub-set mr output key
|
||||||
(map
|
(map
|
||||||
(lambda (rec)
|
(lambda (rec)
|
||||||
(string-first+rest (car rec)))
|
(string-first+rest (car rec)))
|
||||||
value)))
|
value)))
|
||||||
((credit)
|
((credit)
|
||||||
(let loop ((mr mr)
|
(let loop ((mr mr)
|
||||||
(src-credits value)
|
(src-credits value)
|
||||||
|
@ -163,10 +179,7 @@
|
||||||
mr0 (cdr value) "Whitespace not allowed in nick" 3 'error)
|
mr0 (cdr value) "Whitespace not allowed in nick" 3 'error)
|
||||||
mr0)))
|
mr0)))
|
||||||
(else
|
(else
|
||||||
(brmember-sub-set mr output key (car value))))))
|
(brmember-sub-set mr output key (car value))))))))
|
||||||
(fee
|
|
||||||
,(lambda (mr output key value)
|
|
||||||
mr))))
|
|
||||||
|
|
||||||
;; Pass 4: Final checks - add defaults
|
;; Pass 4: Final checks - add defaults
|
||||||
(define (member-schema-finalize mr)
|
(define (member-schema-finalize mr)
|
||||||
|
|
|
@ -44,6 +44,8 @@
|
||||||
cal-period-scomment
|
cal-period-scomment
|
||||||
cal-period-bcomment
|
cal-period-bcomment
|
||||||
|
|
||||||
|
set-cal-period-scomment
|
||||||
|
|
||||||
period-markers->cal-periods
|
period-markers->cal-periods
|
||||||
|
|
||||||
cal-periods-duration
|
cal-periods-duration
|
||||||
|
@ -142,6 +144,14 @@
|
||||||
(define cal-period-scomment cadddr)
|
(define cal-period-scomment cadddr)
|
||||||
(define cal-period-bcomment (compose cadddr cdr))
|
(define cal-period-bcomment (compose cadddr cdr))
|
||||||
|
|
||||||
|
;; Direct updater
|
||||||
|
(define (set-cal-period-scomment p c)
|
||||||
|
(list TAG-CAL-PERIOD
|
||||||
|
(cal-period-since p)
|
||||||
|
(cal-period-before p)
|
||||||
|
c
|
||||||
|
(cal-period-bcomment p)))
|
||||||
|
|
||||||
;; Type predicate
|
;; Type predicate
|
||||||
(define (cal-period? p)
|
(define (cal-period? p)
|
||||||
(and (pair? p)
|
(and (pair? p)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue