Improve fees table display.
This commit is contained in:
parent
e1b673a519
commit
cbd5e89f6e
1 changed files with 44 additions and 15 deletions
|
@ -326,20 +326,49 @@
|
|||
(print
|
||||
(table->string
|
||||
(cons
|
||||
(list "Member" "Fees" "Credit" "Payments" "Balance")
|
||||
(map
|
||||
(lambda (mr)
|
||||
(let* ((balance (member-balance mr))
|
||||
(fees (dict-ref balance 'fees))
|
||||
(credit (dict-ref balance 'credit))
|
||||
(payment (dict-ref balance 'payment)))
|
||||
(list (member-nick mr)
|
||||
(sprintf "\t~A" fees)
|
||||
(sprintf "\t~A" credit)
|
||||
(sprintf "\t~A" payment)
|
||||
(sprintf "\t~A" (- (+ credit payment) fees))
|
||||
)))
|
||||
(sort (filter-members-by-predicate MB member-active?) member<?)))
|
||||
#:col-border #t #:row0-border #t)))
|
||||
(list (ansi-string #:bgblue #:brightyellow #:bold "Member")
|
||||
(ansi-string #:bgblue #:brightyellow #:bold "Fees")
|
||||
(ansi-string #:bgblue #:brightyellow #:bold "Credit")
|
||||
(ansi-string #:bgblue #:brightyellow #:bold "Payments")
|
||||
(ansi-string #:bgblue #:brightyellow #:bold "Balance"))
|
||||
(append
|
||||
(map
|
||||
(lambda (mr)
|
||||
(let* ((balance (member-balance mr))
|
||||
(fees (dict-ref balance 'fees))
|
||||
(credit (dict-ref balance 'credit))
|
||||
(payment (dict-ref balance 'payment))
|
||||
(total (- (+ credit payment) fees)))
|
||||
(list (member-nick mr)
|
||||
(sprintf "\t~A" fees)
|
||||
(sprintf "\t~A" credit)
|
||||
(sprintf "\t~A" payment)
|
||||
(sprintf "\t~A~A~A"
|
||||
(if (< total -500)
|
||||
a:error
|
||||
(if (< total 0)
|
||||
a:warning
|
||||
a:success))
|
||||
(exact->inexact total)
|
||||
a:default)
|
||||
)))
|
||||
(sort (filter-members-by-predicate MB member-active?) member<?))
|
||||
(let* ((balances (map member-balance MB))
|
||||
(fees (foldl + 0 (map (lambda (b) (dict-ref b 'fees)) balances)))
|
||||
(credit (foldl + 0 (map (lambda (b) (dict-ref b 'credit)) balances)))
|
||||
(payment (foldl + 0 (map (lambda (b) (dict-ref b 'payment)) balances)))
|
||||
(total (- (+ credit payment) fees)))
|
||||
(list (list (ansi-string #:bold "Total")
|
||||
(ansi-string "\t" #:bold (sprintf "~A" fees))
|
||||
(ansi-string "\t" #:bold (sprintf "~A" credit))
|
||||
(ansi-string "\t" #:bold (sprintf "~A" payment))
|
||||
(ansi-string "\t" #:bold
|
||||
(sprintf "~A~A"
|
||||
(if (< total 0)
|
||||
a:error
|
||||
a:success)
|
||||
total))
|
||||
)))))
|
||||
#:col-border #t #:row0-border #t #:ansi #t)))
|
||||
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue