Format debtors using members-attrs-table.

This commit is contained in:
Dominik Pantůček 2023-05-11 09:51:19 +02:00
parent 97f5fa61d9
commit f42861e9da

View file

@ -195,6 +195,21 @@
fmt) fmt)
60))) 60)))
;; Generic table of members attributes
(define (members-attrs-table mrs fmt hdr row)
(let loop ((mrs mrs)
(tbl (list hdr)))
(if (null? mrs)
(reverse tbl)
(loop (cdr mrs)
(let ((mr (car mrs)))
(cons (map (lambda (cs)
(if (procedure? cs)
(cs mr)
(fmt cs mr)))
row)
tbl))))))
;; Prints nicely aligned members base info ;; Prints nicely aligned members base info
(define (print-members-base-table mb) (define (print-members-base-table mb)
(let* ((bi (mbase-info mb)) (let* ((bi (mbase-info mb))
@ -232,7 +247,16 @@
(members-table-row (ansi #:red #:bold) "Problems:" problem-mrs "~N~E ~A")) (members-table-row (ansi #:red #:bold) "Problems:" problem-mrs "~N~E ~A"))
(if (null? debtor-mrs) (if (null? debtor-mrs)
#f #f
(members-table-row (ansi #:magenta #:bold) "Debtors:" debtor-mrs "~N ~B (~L)")) (list (ansi-string "\t" #:magenta #:bold "Debtors:")
(format "~A" (length debtor-mrs))
(table->string
(members-attrs-table debtor-mrs
brmember-format
(list "Name" "Balance" "Last Payment")
(list "~N" "\t~B" "~L"))
#:ansi #t
#:row0-border #t
#:col-border #t)))
)) ))
#:ansi #t #:ansi #t
#:row-border #t #:row-border #t