diff --git a/src/Makefile b/src/Makefile index a817bce..d74f2d3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -212,7 +212,8 @@ bank-fio.import.scm: $(BANK-FIO-SOURCES) MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \ dictionary.import.scm member-fees.import.scm \ - period.import.scm configuration.import.scm + period.import.scm configuration.import.scm utils.import.scm \ + month.import.scm members-payments.o: members-payments.import.scm members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES) diff --git a/src/members-payments.scm b/src/members-payments.scm index 037f8db..e5a818e 100644 --- a/src/members-payments.scm +++ b/src/members-payments.scm @@ -49,7 +49,9 @@ dictionary member-fees period - configuration) + configuration + utils + month) ;; Exchange rates (define exchange-rates-lookup-table @@ -152,14 +154,20 @@ ;; Total amount paid - calculated from payments (define (member-payments-total mr) - (foldl + 0 (map (lambda (tr) - (let ((amount (bank-transaction-amount tr)) - (currency (bank-transaction-currency tr))) - (case currency - ((CZK) amount) - ((EUR) (* amount (lookup-eur-rate))) - (else 0)))) - (member-payments mr)))) + (foldl + 0 + (map (lambda (tr) + (let ((amount (bank-transaction-amount tr)) + (currency (bank-transaction-currency tr))) + (case currency + ((CZK) amount) + ((EUR) (* amount (lookup-eur-rate))) + (else 0)))) + (filter + (lambda (tr) + (let* ((isodate (bank-transaction-date tr)) + (month (iso-date->month isodate))) + (month<=? month (*current-month*)))) + (member-payments mr))))) ) diff --git a/src/month.scm b/src/month.scm index e39c280..6e3b784 100644 --- a/src/month.scm +++ b/src/month.scm @@ -41,6 +41,7 @@ month>? month-diff month-add + iso-date->month month-tests! )