diff --git a/Makefile b/Makefile index 26b648d..63bac5b 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,8 @@ BBSTOOL-DEPS=bbstool.scm testing.import.scm listing.import.scm \ members-base.import.scm utils.import.scm primes.import.scm \ member-record.import.scm configuration.import.scm \ progress.import.scm table.import.scm cards.import.scm \ - member-parser.import.scm member-print.import.scm + member-parser.import.scm member-print.import.scm \ + member-fees.import.scm BBSTOOL-SOURCES=bbstool.scm testing.scm listing.scm dictionary.scm \ month.scm period.scm ansi.scm command-line.scm \ @@ -205,3 +206,10 @@ MEMBER-PRINT-SOURCES=member-print.scm dictionary.import.scm \ member-print.so: member-print.o member-print.o: member-print.import.scm member-print.import.scm: $(MEMBER-PRINT-SOURCES) + +MEMBER-FEES-SOURCES=member-fees.scm configuration.import.scm \ + member-record.import.scm month.import.scm + +member-fees.so: member-fees.o +member-fees.o: member-fees.import.scm +member-fees.import.scm: $(MEMBER-FEES-SOURCES) diff --git a/bbstool.scm b/bbstool.scm index 3989022..b1fa0e3 100644 --- a/bbstool.scm +++ b/bbstool.scm @@ -40,7 +40,8 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. table cards member-print - member-parser) + member-parser + member-fees) ;; Print banner (print "bbstool 0.5 (c) 2023 Brmlab, z.s.") @@ -134,7 +135,9 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (print "Current month: " (month->string (*current-month*))) (newline) (if mr - (print-member-table mr) + (let () + (print-member-table mr) + (print (member-calendar mr))) (print-members-base-table MB)) (newline)) ((print-stats) diff --git a/member-fees.scm b/member-fees.scm index fa09982..7e191c4 100644 --- a/member-fees.scm +++ b/member-fees.scm @@ -29,6 +29,9 @@ member-fees ( member-calendar + member-calendar-first-month + member-calendar-last-month + member-calendar-query member-calendar->fees ) @@ -56,6 +59,19 @@ (member-flags mr))) cal)))))) + ;; Returns the first month of the calendar + (define (member-calendar-first-month mc) + (caar mc)) + + ;; Returns the last month of the calendar + (define (member-calendar-last-month mc) + (caar (reverse mc))) + + ;; Returns the calendar entry which matches given month or #f if none + ;; found. + (define (member-calendar-query mc m) + (assoc m mc)) + (define (member-calendar->fees mr) #f)