diff --git a/src/hackerbase.scm b/src/hackerbase.scm index 9e004a0..2272023 100644 --- a/src/hackerbase.scm +++ b/src/hackerbase.scm @@ -269,7 +269,10 @@ (print "Current month: " (cal-month->string (*current-month*))) (newline) (if mr - (print-member-table mr) + (let () + (print-member-table mr) + (brmember-balance-history mr) + ) (print-members-base-table MB)) (newline)) ((print-stats) diff --git a/src/members-fees.scm b/src/members-fees.scm index 107e7c6..54cbc16 100644 --- a/src/members-fees.scm +++ b/src/members-fees.scm @@ -39,6 +39,7 @@ member-credit-total member-calendar->table members-summary + member-calendar-entry->fee ) (import scheme diff --git a/src/members-payments.scm b/src/members-payments.scm index f2ed02c..1f8ca64 100644 --- a/src/members-payments.scm +++ b/src/members-payments.scm @@ -35,6 +35,8 @@ member-to-notify? members-to-notify + + brmember-balance-history ) (import scheme @@ -56,7 +58,8 @@ cal-period configuration progress - specification) + specification + cal-day) ;; Transaction types to ignore (define ignored-transaction-types @@ -237,4 +240,32 @@ (lambda (mr) (member-to-notify? mr months)))) + ;; Converts fee prescription to transactions usable in balance + ;; history + (define (calendar->balance-history mc) + (map (lambda (mce) + (list (cal-ensure-day (car mce)) + (member-calendar-entry->fee mce) + "CZK" + (cadr mce))) + mc)) + + ;; Converts bank transactions to transactions usable in balance + ;; history + (define (transactions->balance-history bts) + (map (lambda (bt) + (list (parse-cal-day/month (bank-transaction-date bt)) + (bank-transaction-amount bt) + (bank-transaction-currency bt) + (bank-transaction-message bt))) + bts)) + + ;; Returns a single credit/debit list of payments and fees calendar + (define (brmember-balance-history mr) + (let ((mcal (calendar->balance-history (member-calendar mr))) + (pmts (transactions->balance-history (brmember-payments mr)))) + (print mcal) + (print pmts) + '())) + )