From 596363c9865efe5b3ca16eb5608352a4e01269e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Mon, 3 Apr 2023 20:18:43 +0200 Subject: [PATCH] Show expected income. --- src/member-fees.scm | 1 + src/members-print.scm | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/member-fees.scm b/src/member-fees.scm index 969b090..7024752 100644 --- a/src/member-fees.scm +++ b/src/member-fees.scm @@ -28,6 +28,7 @@ (module member-fees ( + lookup-member-fee member-calendar member-calendar-first-month member-calendar-last-month diff --git a/src/members-print.scm b/src/members-print.scm index ddd1140..971d3c6 100644 --- a/src/members-print.scm +++ b/src/members-print.scm @@ -346,12 +346,12 @@ (total (- (+ credit payment) fees))) (list (member-nick mr) (if (member-suspended? mr) - "suspended" + 'suspended (if (member-student? mr) - "student" + 'student (if (member-destroyed? mr) - "destroyed" - "active"))) + 'destroyed + 'active))) fees credit payment @@ -418,6 +418,17 @@ (map (lambda (member) (min 0 (list-ref member 5))) members))) + (let* ((ns (foldl (lambda (acc member) + (cons (+ (car acc) (if (eq? 'student (cadr member)) 1 0)) + (+ (cdr acc) (if (eq? 'active (cadr member)) 1 0)))) + (cons 0 0) + members)) + (students (car ns)) + (full (cdr ns))) + (print "Expected income: " + (+ (* (lookup-member-fee 'normal) full) + (* (lookup-member-fee 'student) students)) + " (" full " full members + " students " students)")) ) )