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) util-format.import.scm: $(UTIL-FORMAT-SOURCES)
BRMEMBER-FORMAT-SOURCES=brmember-format.scm util-dict-list.import.scm \ 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.o: brmember-format.import.scm
brmember-format.import.scm: $(BRMEMBER-FORMAT-SOURCES) brmember-format.import.scm: $(BRMEMBER-FORMAT-SOURCES)

View file

@ -37,7 +37,8 @@
(chicken format) (chicken format)
util-dict-list util-dict-list
brmember brmember
bank-account) bank-account
members-fees)
;; Member formatting function for general use. ;; Member formatting function for general use.
(define (brmember-format fmt mr) (define (brmember-format fmt mr)
@ -49,19 +50,27 @@
(if (eq? ch #\~) (if (eq? ch #\~)
(loop (cddr fmtl) (loop (cddr fmtl)
(cons (case (cadr fmtl) (cons (case (cadr fmtl)
((#\N) (brmember-nick mr)) ((#\N) ; Nickname
((#\I) (number->string (brmember-id mr))) (brmember-nick mr))
((#\S) (number->string (brmember-suspended-months mr))) ((#\I) ; Member id
((#\E) (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 '())))) (let ((n (length (ldict-ref mr 'highlights '()))))
(if (eq? n 0) (if (eq? n 0)
"" ""
(sprintf "[~A]" n)))) (sprintf "[~A]" n))))
((#\P) ((#\P) ; Date of last payment
(let ((payments (brmember-payments mr))) (let ((payments (brmember-payments mr)))
(if (null? payments) (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)) resl))
(loop (cdr fmtl) (loop (cdr fmtl)