openjverein / jverein

Open JVerein - Open Source Vereinsverwaltung
https://openjverein.github.io
GNU General Public License v3.0
42 stars 15 forks source link

Feature Lastschrift View #239

Closed JohannMaierhofer closed 1 month ago

JohannMaierhofer commented 3 months ago

Beim Bearbeiten der Datenbank habe ich festgestellt, dass es eine Tabelle Lastschrift gibt. Lastschriften Einträge werden während des Abrechnungslaufs generiert. Sie werden bei der Pre-Notification verwendet. Ich habe jetzt einen View erzeugt der die gespeicherten Lastschriften anzeigt. Per Kontextmenü kann mann sie auch löschen. Der Menueintrag ist hier: Bildschirmfoto_20240609_125307

Der View schaut dann so aus: Bildschirmfoto_20240616_184443

Die FilterControl Erweiterung ist die gleiche wie in #235. Den Eintrag in der Online Help gibt es noch nicht, den würde ich erzeugen wenn das Feature übernommen wird.

Natürlich könnte man den View um weitere Funktionen ergänzen, z.B. die Lastschriften nochmals an Hibiscus übergeben oder ein Sepa XML erzeugen.

dippeal commented 3 months ago

Sind das nicht diejenigen Basislastschriften die erscheinen, wenn man bei Abrechnungslauf mit Doppelklick auf einen Abrechnungslauf klickt?

JohannMaierhofer commented 3 months ago

Ja, du hast Recht. Die Abrechnungsläufe habe ich scheinbar noch nicht angeklickt und darum nicht gesehen. Die Frage wäre jetzt ob der zusätzliche View noch einen Vorteil bringt. Ich habe gesehen, dass sich der Text im Zweck etwas unterscheidet. In meinem View sieht man wirklich was auf der Buchung im Kontoauszug im Zweck steht. Da wird scheinbar immer die Mandat ID davor gesetzt. Der View zeigt dann noch die IBAN an und man kann über alle Lastschriften filtern. Beim Klick auf den Abrechnungslauf sieht man nur die zum Lauf zugehörigen Lastschriften. Wenn man den View behält müsste ich aber wahrscheinlich die Löschen Funktion wegnehmen sonst stimmt ja die Anzeige im Abrechnungslauf nicht mehr weil dann Einträge abgehen.

dippeal commented 2 months ago

Eine eigene view brauche ich dann nicht im Menu. Löschen darf nicht sein (das Geschieht nur, wenn man den Rechnungslauf löscht). IBAN steht im Mitglied, wenn man auf die Lastschrift doppelklickt.

Ich fände es gut, wenn das Rechtsklick-Menu auf eine Lastschrift/Beitrag auch das "Öffnen" des Doppelklicks hätte. Und die Filter-Funktion könntest du in die bestehende View übernehmen.

JohannMaierhofer commented 2 months ago

Ich habe mir jetzt den Code genauer angeschaut. Was der bestehende View bei doppel Klick auf den Abrechnungslauf anzeigt sind die Sollbuchungen die der Abrechnungslauf erzeugt hat. Da werden sowohl die mit Lastschrift als auch mit Überweisung angezeigt. Ein Filter macht da glaube ich keinen Sinn weil ja alle Einträge das gleiche Datum und Zweck haben. Im übrigen findet man die gleiche Information im Sollbuchungen View incl. der Filter.

Das Öffnen im Menü finde ich auch gut, weil man wie ich den doppel Klick übersehen kann. Ich mache das mit einem eigen Pull Request.

Jetzt stellt sich aber immer noch die Frage was wir mit den Lastschriften machen. Ich habe gesehen, dass sie für die Pre-Notification gelesen werden. Man kann sie aber nicht anschauen.

Wir können also dieses Feature hier schliesen weil es redundante Information anzeigt. Wir können es aber auch übernehmen. Ich denke dann auch, dass man das Löschen lassen könnte. Wenn man die Pre-Notification einmal versendet hat braucht man die Einträge eigentlich nicht mehr und kann dann alte auch löschen. Das hat keine Auswirkung auf das was im bestehenden View bei doppel Klick auf den Abrechnungslauf angezeigt wird, weil der ja die Sollbuchungen auswertet. Nur die Pre-Notifications kann man nicht mehr verschicken. Ich habe das ausprobiert. Es gibt aber auch Information die nur der neue View anzeigt. Die IBAN kann sich ja bei einem Mitglied ändern. Der View zeigt die IBAN an die bei der Lastschrift benutzt wurde und muss nicht unbedingt die sein, die aktuell im Mitglied gespeichert ist. Auch die Mandat ID und das Mandat Datum könnte sich aktuell geändert haben. Ob das den neuen View rechfertigt ist halt die Frage. Ich finde ihn nützlich weil man dann unnötig gewordene Einträge löschen könnte. Ich finde es halt etwas unschön wenn das Program Daten in die Datenbank schreibt auf die man keinen Zugriff hat und die evtl. nicht mehr gebraucht werden.

JohannMaierhofer commented 2 months ago

Ich habe jetzt etwas gefunden was für den neuen View spricht und zwar geht es um Kursteilnehmer. Bei einem Abrechnungslauf können auch Lastschriften für Kursteilnehmer erzeugt werden. Da Kursteilnehmer aber weder Mitglieder noch Nicht-Mitglieder sind werden keine Sollbuchungen erzeugt. Man kann also diese Lastschriften nicht sehen wenn man doppelt auf den Abrechnungslauf klickt bzw. den Menüpunkt "Sollbuchungen" aufruft. Die Lastschriften für die Kursteilnehmer sind nur in dem neuen View sichtbar.

dippeal commented 2 months ago

Sollte dann der Abrechnungslauf nicht erweitert werden um die Kursteilnehmer?

JohannMaierhofer commented 2 months ago

So wie ich den Code verstehe ist die Funktionalität nur dazu da um von Kursteilnehmern die Kursgebühr per Lastschrift einzuziehen. Das passiert beim Abrechnungslauf welcher die Lastschriften erzeugt, aber eben keine Sollbuchungen. Man legt hier also keine wirklichen Mitglieder oder Nicht-Mitglieder an.

Der alternative Weg wäre natürlich ein Nicht-Mitglied anzulegen und die Gebühr dann per Zusatzbeitrag einzuziehen.

Vielleicht will man diese Leute einfach nur als einmalige Teilnehmer behandeln die man nicht in der Mitgliederliste führen will. Auch ist dieses Verfahren dann wohl einfacher als der Weg über die Nicht-Mitglieder.

Als Nicht-Mitglied müsste man sie aus Datenschutz Gründen aber nach dem Kurs wieder löschen. Wegen der Lastschrift geht das momentan aber nicht, erst mit #224 wäre das möglich. Allerdings geht das bei den Kursteilnehmern glaube ich auch nicht sondern erst mit #224. Man kann aber zumindest nur die Daten eingeben die für die Lastschrift gebraucht werden und die stehen ja dann auch in der Buchung für die Aufbewahrungsfristen bestehen.

Die Alternative wäre also wirklich nur das Feature ganz zu streichen und nur den alternativen Weg anzubieten.

JohannMaierhofer commented 2 months ago

So wie ich den Code verstehe ist die Funktionalität nur dazu da um von Kursteilnehmern die Kursgebühr per Lastschrift einzuziehen. Man legt hier also keine wirklichen Mitglieder oder Nicht-Mitglieder an.

Der alternative Weg wäre natürlich ein Nicht-Mitglied anzulegen und die Gebühr dann per Zusatzbeitrag einzuziehen.

Vielleicht will man diese Leute einfach nur als einmalige Teilnehmer behandeln die man nicht in der Mitgliederliste führen will. Auch ist dieses Verfahren dann wohl einfacher als der Weg über die Nicht-Mitglieder.

Als Nicht-Mitglied müsste man sie aus Datenschutz Gründen aber nach dem Kurs wieder löschen. Wegen der Lastschrift geht das momentan aber nicht, erst mit #224 wäre das möglich. Allerdings geht das bei den Kursteilnehmern glaube ich auch nicht sondern erst mit #224. Man kann aber zumindest nur die Daten eingeben die für die Lastschrift gebraucht werden und die stehen ja dann auch in der Buchung für die Aufbewahrungsfristen bestehen.

Eine Alternative wäre also das Feature ganz zu streichen und nur den alternativen Weg anzubieten.

Eine weitere Alternative wäre bei doppel Klick auf den Abrechnungslauf nicht die erzeugten Sollbuchungen anzuzeigen sondern die erzeugten Lastschriften. Das ist ja auch das was im SEPA XML steht oder an Hibiscus übergeben wird. Da wären dann auch die Lastschriften der Kursteilnehmer dabei. Das würde dann meinen View ersetzen. Die erzeugten Sollbuchungen findet man ja auch im Sollbuchung View. Momentan hat man sie ja doppelt.

dippeal commented 2 months ago

Im Abrechnungslauf Doppelklick sollten schon die Sollbuchungen auftauchen. So hat man einen schnellen Überblick, ob der Rechnungslauf okay war und die entsprechenden Zahlungswege korrekt sind.

Kursteilnehmer als Nicht-Mitglieder zu führen halte ich, nach deiner Argumentation, auch für falsch.

Würdest du in deiner Lastschrift View bitte noch die Filterung zwischen Mitglieder/Nicht-Mitglieder/Kursteilnehmer implementieren. Kursteilnehmer sollte dann nur auftauchen, wenn in den Einstellungen Kursteilnehmer aktiviert wurde.

JohannMaierhofer commented 2 months ago

Würdest du in deiner Lastschrift View bitte noch die Filterung zwischen Mitglieder/Nicht-Mitglieder/Kursteilnehmer implementieren. Kursteilnehmer sollte dann nur auftauchen, wenn in den Einstellungen Kursteilnehmer aktiviert wurde.

Ja, kann ich machen.

JohannMaierhofer commented 2 months ago

Filter für Mitgliedsart ist implementiert.

JohannMaierhofer commented 2 months ago

Die Einstellungen abprüfen bei Kursteilnehmer hatte ich übersehen.

dippeal commented 2 months ago

Brauchen wir dann hier noch das "Lastschriften löschen"?

JohannMaierhofer commented 2 months ago

Brauchen wir dann hier noch das "Lastschriften löschen"?

Wenn man die Pre-Notification verschickt hat werden die Lastschriften nicht mehr benötigt. Man könnte dann eben alte Einträge entfernen um die Datenbank zu verkleinern. Von daher dachte ich wäre das Löschen nützlich. Es kann ja jeder selbst entscheiden ob er sie behalten oder löschen möchte. Einen entsprechenden Hinweis würde ich in die Docu aufnehmen.