Skip to content
This repository was archived by the owner on Sep 23, 2024. It is now read-only.
This repository was archived by the owner on Sep 23, 2024. It is now read-only.

KLJB Export Statistik #4

@olibrian

Description

@olibrian

Anforderung von Manuel:

Wir benötigen eine Liste/Statistik, in der für jede Ortsgruppe die Anzahl der normal und ermäßigt zahlenden Mitglieder steht. Ermäßigte Mitglieder werden wie folgt festgestellt:
Wenn einem Mitglied mehr als ein Geschwisterkind zugeordnet ist, werden alle Geschwister nach Alter sortiert. Die beiden älteren zahlen den normalen Beitrag, alle weiteren Geschwister zahlen den ermäßigten Beitrag, sofern sie (zum Stichtag) unter 18 Jahren alt sind.
Die Anzahl der normal zahlenden Mitglieder ist daher die Summer aller Mitglieder minus die Anzahl der ermäßigten.

Den Stichtag der Mitgliedermeldung müssen wir in der kommenden Vorstandssitzung noch festlegen. Voraussichtlich wird es der 31.08. Dieser müsste dann jedoch nur für die Altersberechnung bei ermäßigten Mitgliedern genutzt werden. Es soll dazu kein aktives Meldeverfahren in hitobito ähnlich PBS geben, sondern ein Agreement mit den Ortsgruppen zum Rechnungsstichtag der Meldung.
Diese Liste kann dann gerne auch als csv Datei exportiert werden und muss nicht als View verfügbar sein.

Offene Fragen / Antworten

  • Werden Geschwister über "Wohnt im Haushalt mit" oder wie bei der pbs über "Geschwister" gelöst?
  • Berechnet immer am 31.8. (fix hinterlegt) des aktuellen Jahres durchführen und so in der DB hinterlegen.
  • Historie ist nicht eine zwingende Anforderung

Mockup

Ergänzen des Export export_subgroups.csv soll folgende Spalten enthalten:

  • Name Ortsgruppe
  • Mitglieder normal
  • Mitglieder ermäßigt

Zahlen nur bei Layern berechnen. Zellen bei Untergruppen leer lassen.

Tech-Spec

  • Gruppen erweitern, um letzte Stichtagsstatistik zu speichern:
    • members_normal int
    • members_discounted int
  • Daten auf Gruppe erstmal nicht direkt anzeigen
  • Untergruppen-Export erweitern
    • Name Ortsgruppe
    • Mitglieder normal
    • Mitglieder ermäßigt
    • Zahlen nur bei Layern berechnen. Zellen bei Untergruppen leer lassen.
  • Domain-Klasse um Mitgliederstatistik zu berechnen
    • Groups::MemberPaymentStatus.new(layer).update
    • Es werden direkt die Gruppendaten aktualisiert.
    • Nur Layer-Gruppen berechnen, sonst ein NOOP
    • Alle Mitglieder innerhalb des Layers betrachten
    • Wenn einem Mitglied mehr als ein Geschwisterkind zugeordnet ist, werden alle Geschwister nach Alter sortiert. Die beiden älteren zahlen den normalen Beitrag, alle weiteren Geschwister zahlen den ermäßigten Beitrag, sofern sie (zum Stichtag) unter 18 Jahren alt sind.
    • Anders gesagt: das dritte und folgende Geschwister sind ermäßigt, wenn sie minderjährig sind.
    • Geschwister können auch in einer anderen Gruppe sein.
    • Stichtag für Altersberechnung ist der letzte vergangene (oder heutige) 31.08. Groups::MemberPaymentStatus::AGE_CUTOFF_DATE. Anders gesagt, es ist nie ein 31.08. in der Zukunft.
  • Delayed::Job, der (vorerst) jährlich am 31.08. läuft (unabhängig von AGE_CUTOFF_DATE, zufällig gleich).
  • CHANGELOG-Eintrag

Fragen

  • Stichtag für Altersberechnung
  • Ausführungsdatum und Interval der Berechnng?
  • Sollen die Daten auf der einzelnen Gruppe auch angezeigt werden?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions