diff --git a/bbstool.scm b/bbstool.scm index 69348ac..41abea0 100644 --- a/bbstool.scm +++ b/bbstool.scm @@ -27,6 +27,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (import testing (chicken format) + (chicken sort) listing dictionary month @@ -89,6 +90,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (-action- 'gencards) (-fname- (list file:cards file:desfires))) (-problems () "Prints all files with problems" (-action- 'problems)) + (-fees () "Prints fees table" (-action- 'fees)) ) ;; Run tests @@ -182,4 +184,16 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (print-member-table (car mb)) (print-member-source (car mb))) (loop (cdr mb))))) + ((fees) + (print + (table->string + (cons + (list "Member" "Fees") + (map + (lambda (mr) + (list (member-nick mr) + (sprintf "\t~A" (member-fees-total mr)))) + (sort (filter-members-by-predicate MB member-active?) memberyears-table member-calendar->fees + member-fees-total ) (import scheme @@ -131,4 +132,10 @@ (define (member-calendar->fees mc) (map member-calendar-entry->fee mc)) + ;; Returns the total sum of fees for all months relevant for given + ;; member + (define (member-fees-total mr) + (foldl + 0 (member-calendar->fees + (member-calendar mr)))) + )