Support for member fees in format strings.

This commit is contained in:
Dominik Pantůček 2023-05-10 20:33:47 +02:00
parent f6fb372938
commit 9de64f7004
2 changed files with 18 additions and 8 deletions

View file

@ -335,7 +335,8 @@ util-format.o: util-format.import.scm
util-format.import.scm: $(UTIL-FORMAT-SOURCES)
BRMEMBER-FORMAT-SOURCES=brmember-format.scm util-dict-list.import.scm \
brmember.import.scm bank-account.import.scm
brmember.import.scm bank-account.import.scm \
members-fees.import.scm
brmember-format.o: brmember-format.import.scm
brmember-format.import.scm: $(BRMEMBER-FORMAT-SOURCES)

View file

@ -37,7 +37,8 @@
(chicken format)
util-dict-list
brmember
bank-account)
bank-account
members-fees)
;; Member formatting function for general use.
(define (brmember-format fmt mr)
@ -49,19 +50,27 @@
(if (eq? ch #\~)
(loop (cddr fmtl)
(cons (case (cadr fmtl)
((#\N) (brmember-nick mr))
((#\I) (number->string (brmember-id mr)))
((#\S) (number->string (brmember-suspended-months mr)))
((#\E)
((#\N) ; Nickname
(brmember-nick mr))
((#\I) ; Member id
(number->string (brmember-id mr)))
((#\S) ; Number of months this member is
; currently suspended for (0 for
; non-suspended)
(number->string (brmember-suspended-months mr)))
((#\E) ; Number of errors/warnings
(let ((n (length (ldict-ref mr 'highlights '()))))
(if (eq? n 0)
""
(sprintf "[~A]" n))))
((#\P)
((#\P) ; Date of last payment
(let ((payments (brmember-payments mr)))
(if (null? payments)
"-"
(bank-transaction-date (car payments)))))
(sprintf "~A" (bank-transaction-date (car payments))))))
((#\F) ; Fees to be paid (total over all
; membership periods)
(sprintf "~A" (member-fees-total mr)))
((#\~) "~"))
resl))
(loop (cdr fmtl)