Prepare for balances in totals table.
This commit is contained in:
parent
8f0d5acf0a
commit
606a208237
5 changed files with 40 additions and 21 deletions
3
Makefile
3
Makefile
|
@ -251,7 +251,8 @@ bank-fio.so: bank-fio.o
|
|||
bank-fio.o: bank-fio.import.scm
|
||||
bank-fio.import.scm: $(BANK-FIO-SOURCES)
|
||||
|
||||
MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm
|
||||
MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \
|
||||
dictionary.import.scm member-fees.import.scm
|
||||
|
||||
members-payments.so: members-payments.o
|
||||
members-payments.o: members-payments.import.scm
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
member-calendar->fees
|
||||
member-fees-total
|
||||
member-credit-total
|
||||
print-members-fees-table
|
||||
member-calendar->table
|
||||
)
|
||||
|
||||
|
@ -153,21 +152,6 @@
|
|||
(amounts (map car credit)))
|
||||
(foldl + 0 amounts)))
|
||||
|
||||
;; Prints summary table of all fees and credits for all members
|
||||
(define (print-members-fees-table MB)
|
||||
(print
|
||||
(table->string
|
||||
(cons
|
||||
(list "Member" "Fees" "Credit")
|
||||
(map
|
||||
(lambda (mr)
|
||||
(list (member-nick mr)
|
||||
(sprintf "\t~A" (member-fees-total mr))
|
||||
(sprintf "\t~A" (member-credit-total mr))
|
||||
))
|
||||
(sort (filter-members-by-predicate MB member-active?) member<?)))
|
||||
#:col-border #t #:row0-border #t)))
|
||||
|
||||
;; Nicely print calendar for given member
|
||||
(define (member-calendar->table mr)
|
||||
(let* ((mc (member-calendar mr))
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
|
||||
member-record-add-payment
|
||||
member-payments
|
||||
member-balances
|
||||
|
||||
member-record-tests!
|
||||
)
|
||||
|
@ -345,6 +346,10 @@
|
|||
(define (member-payments mr)
|
||||
(dict-ref mr 'payments '()))
|
||||
|
||||
;; Balances totals
|
||||
(define (member-balances mr)
|
||||
(dict-ref mr 'balances (make-dict)))
|
||||
|
||||
;; Self-tests
|
||||
(define (member-record-tests!)
|
||||
(run-tests
|
||||
|
|
|
@ -39,7 +39,10 @@
|
|||
bank-account
|
||||
member-record
|
||||
members-base
|
||||
bank-fio)
|
||||
bank-fio
|
||||
|
||||
dictionary
|
||||
member-fees)
|
||||
|
||||
;; Merges bank account statement into members payment keys. The
|
||||
;; payment key will be a list of transactions.
|
||||
|
@ -77,11 +80,20 @@
|
|||
(if apikeys-file
|
||||
(let* ((accounts (load-accounts
|
||||
(load-accounts-list apikeys-file))))
|
||||
(foldl members-payments-process-bank
|
||||
mb
|
||||
accounts))
|
||||
(map member-add-balances
|
||||
(foldl members-payments-process-bank
|
||||
mb
|
||||
accounts)))
|
||||
mb))
|
||||
|
||||
;; Adds all balances
|
||||
(define (member-add-balances mr)
|
||||
(dict-set mr
|
||||
'balances
|
||||
(make-dict `((fees . ,(member-fees-total mr))
|
||||
(credit . ,(member-credit-total mr))
|
||||
(balance . ,(member-payments-total mr))))))
|
||||
|
||||
;; Total amount paid
|
||||
(define (member-payments-total mr)
|
||||
(foldl + 0 (map bank-transaction-amount
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
print-members-base-table
|
||||
print-members-base-stats
|
||||
print-members-ids-stats
|
||||
print-members-fees-table
|
||||
)
|
||||
|
||||
(import scheme
|
||||
|
@ -320,4 +321,20 @@
|
|||
", ")
|
||||
")"))))
|
||||
|
||||
;; Prints summary table of all fees and credits for all members
|
||||
(define (print-members-fees-table MB)
|
||||
(print
|
||||
(table->string
|
||||
(cons
|
||||
(list "Member" "Fees" "Credit" "Payments" "Balance")
|
||||
(map
|
||||
(lambda (mr)
|
||||
(let ((balances (member-balances mr)))
|
||||
(list (member-nick mr)
|
||||
(sprintf "\t~A" (member-fees-total mr))
|
||||
(sprintf "\t~A" (member-credit-total mr))
|
||||
)))
|
||||
(sort (filter-members-by-predicate MB member-active?) member<?)))
|
||||
#:col-border #t #:row0-border #t)))
|
||||
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue