diff --git a/src/export-sheet.scm b/src/export-sheet.scm index 31c217f..3dc9c29 100644 --- a/src/export-sheet.scm +++ b/src/export-sheet.scm @@ -48,7 +48,7 @@ (define (print-attendance-sheet MB number) (print "\\documentclass[10pt]{article}") - (print "\\usepackage[top=1cm,left=2cm,right=2cm,bottom=2cm]{geometry}") + (print "\\usepackage[top=1cm,left=1cm,right=2cm,bottom=2cm]{geometry}") (print "\\begin{document}") (print "\\begin{center}") (print @@ -63,7 +63,7 @@ (print "\\vskip1em") (newline) (define colnames - '((id) Nick Name Surname (Fee) (Balance) (Active) Signature)) + '((id) Nick Name Surname (Fee) (Balance) B (Active) A OK? Signature)) (print (format "\\begin{tabular}{|~A|}" @@ -88,6 +88,9 @@ "&") "\\\\") (print "\\hline") + (define valid-voters 0) + (define ok-balances 0) + (define ok-actives 0) (let loop ((mrs (find-members-by-predicate MB (lambda (mr) (brmember-active? mr))))) @@ -122,7 +125,17 @@ (list (*current-month*) (brmember-flags mr) spec-fee)))) + (balance-ok? (>= (member-total-balance mr) + (- current-fee))) + (active-ok? (>= numactive 9)) + (vote-ok? (and balance-ok? active-ok?)) ) + (when balance-ok? + (set! ok-balances (+ ok-balances 1))) + (when active-ok? + (set! ok-actives (+ ok-actives 1))) + (when vote-ok? + (set! valid-voters (+ valid-voters 1))) (print (brmember-id mr) " & " @@ -134,19 +147,40 @@ " & " sname " & " - (format-amount current-fee) + current-fee " & " - (format-amount + (format-amount-tex (member-total-balance mr)) " & " + (if balance-ok? + "Y" + "--") + " & " numactive " & " + (if active-ok? + "Y" + "--") + " & " + (if vote-ok? + "Y" + "--") + " & " "~ ~ ~ ~ ~" " \\\\") (print "\\hline") (loop (cdr mrs))))) (print "\\end{tabular}") (print "\\end{center}") - (print "\\end{document}")) + (print "\\end{document}") + (print "% valid-voters = " valid-voters) + (print "% valid-balances = " ok-balances) + (print "% valid-actives = " ok-actives) + ) + + (define (format-amount-tex amt) + (string-translate* + (format-amount amt) + '(("--" . "--{}--")))) )