Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Spendenbescheinigung Auto Create #160

Merged

Conversation

JohannMaierhofer
Copy link

Wie schon angedeutet gibt es eine SQL Exception wenn man Sachspenden mit Buchungen speichern will.
Meine Meinung ist, dass es Sachspenden nicht mit Buchungen geben darf. Man kann auch keine Sachspende manuell mit Buchungen erzeugen.
Automatisch erzeugte Spendenbescheinigungen, auch die, die aus der Mitgliedskonto Tabelle mit dem Menü Punkt "Spendenbescheinigung erstellen" erzeugt werden sind Geldspenden.
Was meiner Meinung nach gefehlt hat ist für den letzten Fall das Attribut Autocreate zu setzen. Das habe ich jetzt gemacht. Damit kann man die Spendenart und den Betrag nicht mehr ändern. Das macht Sinn weil ja eine Sachspende mit Buchungen keinen Sinn macht und der Betrag ja die Summe der Buchungsbeträge ist.
Damit kann man keine Sachspenden mit Buchungen mehr erzeugen und es gibt auch keine Exception wenn man sie damit löschen will.
Damit kann man auch im SpendenbescheinigungControl ganz auf das Query verzichten und immer getBuchungen() verwenden. Die Query Klasse ist damit hinfällig weil sie sonst nirgends verwendet wird.

@dippeal dippeal added the fix This will fix a bug label Feb 18, 2024
dippeal
dippeal previously approved these changes Feb 18, 2024
@MSchmalzl
Copy link

MSchmalzl commented Feb 24, 2024

Ehrlich gesagt komm ich hier noch nicht ganz mit was geändert wurde.

Ich stimme dir zu, dass es für Sachspenden keine Buchungen geben darf.

Fangen wir mal ganz oben an:

Wie schon angedeutet gibt es eine SQL Exception wenn man Sachspenden mit Buchungen speichern will.

Wie speichere ich eine Sachspende mit Buchung?

@dippeal dippeal added the help wanted Extra attention is needed label Feb 24, 2024
@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 24, 2024

Wie speichere ich eine Sachspende mit Buchung?

Wenn man im Mitglied View in Mitgliedskonto Spendenbescheinigungen erstellt Z.B. bei Auswahl des Mitglied oder einer Istbuchung entstehen Spendenbescheinigungen mit Buchung. Da man in diesen den Typ von Geldspende auf Sachspende ändern kann hat man dann eine Sachspende mit Buchungen. Die kann man dann speichern. Beim Löschen gibt es dann die Exception.
Mein Fix setzt die Spendenbescheinigungen auf Autocreate true und damit kann man den Typ nicht mehr ändern. Das gleiche passiert auch wenn man im Spendenbescheinigung View den Auto Button drückt, dann entstehen Spendenbescheinigungen mit Autocreate true.
Das SpendenbescheinigungBuchungQuery kann man sich dann sparen weil die get Methode auch ein Query macht wenn noch nichts vorhanden ist. Dieses Query list aber nur für Geldspenden, was aber ok ist wenn nur Geldspenden Buchungen haben können.

@MSchmalzl
Copy link

MSchmalzl commented Feb 24, 2024

Betrachten wir mal Fall 1. Ich befinde mich im Mitgliedskonto-View eines Mitglieds.

Spendenbescheinigung_3
Spendenbescheinigung_4

Hier ist es jetzt nicht mehr möglich eine Spendenbescheinigung zu erstellen, da ja kein Betrag eingegeben werden kann.

Bei Fall 2 befinde ich mich im Mitglieder-View. Des weiteren ist wie im Bild oben eine Sollbuchung über 50€ vorhanden. Jetzt kann ich genau so wie zuvor in den anderen Branches Spendenbescheinigungen für Geld- und Sachspenden erstellen. Diese Buchungen kann ich nach wie vor einem Mitglied zuordnen.

Spendenbescheinigung_1

Spendenbescheinigung_2

@JohannMaierhofer
Copy link
Author

Den Fall 1 finde ich schon ok. Wieso sollte man eine Spendenbescheinigungen erstellen nur auf Basis einer Sollbuchung. Das Mitglied muss auch eine Einzahlung, also Buchung gemacht haben und diese der Sollbuchung zugeordnet sein. Dann existiert eine Istbuchung und die wird in die Spendenbescheinigung automatisch eingefügt. Da muss man dann auch keinen Betrag mehr ändern, da er die Summe der Buchungs Beträge ist.
Das sollte der normale Weg sein und die Spendenbescheinigungen sind fest mit dem Buchungen verbunden.
Im Fall 2 legt man eine Spendenbescheinigung ohne Buchung an und kann dann zwischen Geld- und Sachspende wechseln. Allerdings frage ich mich hier warum man eine Geldspende bescheinigen will wenn es keine Geldzahlung, also Buchung gibt. Da denke ich wird ein Finanzamt nicht erfreut sein. Der Fall hier ist wohl eher für Sachspenden gedacht.
Würde man in beiden Fällen Geld Spendenbescheinigungen ohne angehängte Buchung ausstellen würde bei einem Auto Lauf im Spendenbescheinigung View eine zweite Spendenbescheinigungen für diese Spende erzeugt werden. Das ist ja auch nicht gewollt.
Vielleicht sehe ich es falsch und es gibt einen Grund warum man eine Geldspende ohne tatsächliche Buchung ausstellen soll. Wenn dem so wäre, könnte man das ja dann über den Fall 2 machen. Im Fall 1 mit meiner Änderung nicht mehr. Will man das auch noch über den Weg im Fall 1 machen könnte ich noch einbauen, dass Autocreate nur auf true gesetzt wird wenn eine Buchung enthalten ist.
Wollt ihr das?

@MSchmalzl
Copy link

MSchmalzl commented Feb 24, 2024

Den Fall 1 finde ich schon ok. Wieso sollte man eine Spendenbescheinigungen erstellen nur auf Basis einer Sollbuchung. Das Mitglied muss auch eine Einzahlung, also Buchung gemacht haben und diese der Sollbuchung zugeordnet sein. Dann existiert eine Istbuchung und die wird in die Spendenbescheinigung automatisch eingefügt. Da muss man dann auch keinen Betrag mehr ändern, da er die Summe der Buchungs Beträge ist.
Das sollte der normale Weg sein und die Spendenbescheinigungen sind fest mit dem Buchungen verbunden.

Ist nachvollziehbar. Dann wäre ich aber dafür, dass wenn noch keine Sollbuchung vorhanden ist, der Menüpunkt erst gar nicht angeboten wird (löschen). Das verwirrt halt irgendwie wenn es einen Menüpunkt gibt, der anschließend eh keine Funktion hat. Hier wäre dann auch dementsprechend die Dokumentation anzupassen.

Es könnte aber auch sein, dass ich mich gerade im Mitgliedskonto befinde und einfach noch keine Sollbuchung habe, da ich die Zuordnung erst im Anschluss machen möchte. Also einfach nur die Menüwechsel reduzieren möchte. Hier mal zusammengefasst:

Weg 1:
Mitglied --> Mitgliedskonto --> Sollbuchung --> Buchführung --> Mitglied --> Mitgliedskonto --> Spendenbescheinigung
Weg 2:
Mitglied --> Mitgliedskonto --> Sollbuchung --> Spendenbescheinigung --> Buchführung

Um es hier aber einfach zu halten und nicht jeden erdenklichen Fall abzudecken zu müssen bin ich für die einfache löschung des Menüpunktes wie oben geschrieben.

Das sollte der normale Weg sein und die Spendenbescheinigungen sind fest mit dem Buchungen verbunden.
Im Fall 2 legt man eine Spendenbescheinigung ohne Buchung an und kann dann zwischen Geld- und Sachspende wechseln. Allerdings frage ich mich hier warum man eine Geldspende bescheinigen will wenn es keine Geldzahlung, also Buchung gibt. Da denke ich wird ein Finanzamt nicht erfreut sein. Der Fall hier ist wohl eher für Sachspenden gedacht.

Auch hier verhält es sich ähnlich wie oben. Ich befinde mich halt gerade im Bereich Mitglieder und möchte die Buchung erst später erstellen.

Ich wäre hier dafür, dass es nur möglich ist Sachspendenbescheinigungen zu erstellen. Somit kann auch hier verhindert werden Geldspenden ohne Buchung zu erstellen. Zusätzlich wäre dann noch an die Dokumentation zu denken.

Würde man in beiden Fällen Geld Spendenbescheinigungen ohne angehängte Buchung ausstellen würde bei einem Auto Lauf im Spendenbescheinigung View eine zweite Spendenbescheinigungen für diese Spende erzeugt werden. Das ist ja auch nicht gewollt.
Vielleicht sehe ich es falsch und es gibt einen Grund warum man eine Geldspende ohne tatsächliche Buchung ausstellen soll. Wenn dem so wäre, könnte man das ja dann über den Fall 2 machen. Im Fall 1 mit meiner Änderung nicht mehr. Will man das auch noch über den Weg im Fall 1 machen könnte ich noch einbauen, dass Autocreate nur auf true gesetzt wird wenn eine Buchung enthalten ist.
Wollt ihr das?

Für Geldspenden ohne Buchung fällt mir jetzt kein Grund ein. Auch das mit dem Autocreate passt so wie es ist. Würde ich also nicht ändern.

@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 24, 2024

Also ich habe jetzt folgendes gemacht:

  • Mitglieder->Mitglied->Spendenbescheinigung erzeugt eine Sachspende (nicht mehr Default Geldspende)
  • Mitglieder->Mitglied->Mitgliedskonto->Mitglied->Spendenbescheinigung erstellen erzeugt
    a) wie gehabt Geldspenden wenn Istbuchungen der Art Spende für das Mitglied existieren für die noch keine Spendenbescheinigungen erzeugt wurden. Es werden alle entsprechenden Buchungen hinzugefügt.
    b) Wenn keine entsprechenden Istbuchungen vorhanden sind wird eine Sachspende erzeugt (so wie im obigen Fall). Damit kann man auch hier in gleicher Weise Sachspenden erzeugen.
  • Das Feld Spendenart bleibt immer nicht editierbar. Damit kann man auch keine Geldspende ohne Buchung mehr erzeugen. Ich hoffe das ist nicht zu strikt. Man könnte das auch ändern und es läge in der Verantwortung des Schatzmeisters. Man sehen, ob sich einer beschwert.

Einen Ablauf in dem man erst Geld Spendenbescheinigung ohne Buchung erzeugt, der man später Buchungen hinzufügt wäre etwas umständlich. Man müsste auch den Betrag sperren und einen Button im Spendenbescheinigung View einbauen mit dem man dann Buchungen hinzufügen kann. Die Sollbuchungen sind ja nicht den Spendenbescheinigungen zugeordnet. Es würde also nicht reichen später nur die Istbuchung der Sollbuchung zuzuordnen. Auch kann eine Sollbuchung mehrere Istbuchungen enthalten die unterschiedlichen Spendenbescheinigungen zugeordnet sind.
Als weiters Problem würde ich hier sehen wie man die Spendenbescheinigung dann als fertig markiert. Nur dann sollte man sie ausdrucken. Dann dürfte man auch später keine Buchungen mehr hinzufügen dürfen. Man könnte einen Fertig Button einführen der wenn einmal gedrückt den Hinzufügen Button dann sperrt. Und ein anderer will dann evtl. auch fälschlicher Weise hinzugefügte Buchungen wieder entfernen.

@JohannMaierhofer
Copy link
Author

@MSchmalzl PS: Zu deinen Wegen 1 und 2 oben. Man muss nicht immer über Sollbuchung gehen.
Es gibt auch Weg 3.
Buchführung --> Mitgliedskonto zuorden (Über Lasche "Soll u. Ist" lässt sich ein Mitglied auswählen und es wird automatisch die Soll Buchung angelegt und die Ist Buchung zugeordnet) --> Mitglied --> Mitgliedskonto --> Spendenbescheinigung

@JohannMaierhofer
Copy link
Author

Auch Spendenbescheinigungen->"Neu (manuell)" erzeugt Sachspende.

@JohannMaierhofer
Copy link
Author

Mir gefällt immer noch nicht das unterschiedliche Verhalten bei Mitglied und Mitgliedskonto. Ich werde das angleichen.

@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 25, 2024

So, jetzt habe ich das Verhalten angeglichen. Es gibt nun getrennte Menüs für Geld- und Sachspenden. Sowohl in Mitglieder->Mitglied und Mitglieder->Mitglied->Mitgliedskonto->Mitglied gibt es beide Einträge. In beiden Fällen wird bei Geldspende nach Istbuchungen der Art Spende gesucht die noch keiner Spendenbescheinigung zugeordnet sind. Das war bisher nur im Mitgliedskonto View der Fall. Werden keine entsprechenden Buchungen gefunden wird eine Fehler Meldung ausgegeben anstatt wie bisher eine Spendenbescheinigung ohne Buchungen und Betrag 0 anzuzeigen.
In View Spendenbescheinigungen und Spendenbescheinigung habe ich "Neu (manuell)" entsprechend durch "Neu (Sachspende)" ersetzt da ja hier kein Mitglied hinterlegt ist. Ich hätte dabei aus dem Spendenbescheinigung View gerne das in der Spendenbescheinigung eingetragene Mitglied in die Sachspende übernommen. Aber leider ist da der Context in der SpendebescheinigungAction NULL. So komme ich nicht an die Spendenbescheinigung. Oder gibt es einen Weg in der Action herauszufinden aus welchem View das kommt?
Selektiert man in Mitglieder->Mitglied->Mitgliedskonto eine Istbuchung prüfe ich auch ob die Buchung der Art Spende ist. Das war bisher ein Fehler. Beim Generieren vom Mitglied aus wird das ja auch geprüft.
@MSchmalzl Danke für die Kommentare, dadurch ist die Implementierung nur besser geworden.
@dippeal Zur info

@JohannMaierhofer
Copy link
Author

Jetzt habe ich doch noch den Weg gefunden.
Wenn man eine Spendenbescheinigung offen hat und unten den Button "Neu (Sachspende)" drückt wird die Adresse aus der offenen Spendenbescheinigung übernommen.

@JohannMaierhofer
Copy link
Author

Falls das so übernommen wird werde ich die Doku entsprechend anpassen.

@MSchmalzl
Copy link

@MSchmalzl PS: Zu deinen Wegen 1 und 2 oben. Man muss nicht immer über Sollbuchung gehen. Es gibt auch Weg 3. Buchführung --> Mitgliedskonto zuorden (Über Lasche "Soll u. Ist" lässt sich ein Mitglied auswählen und es wird automatisch die Soll Buchung angelegt und die Ist Buchung zugeordnet) --> Mitglied --> Mitgliedskonto --> Spendenbescheinigung

Danke für den Hinweis. Diesen Weg kannte ich noch nicht.

MSchmalzl
MSchmalzl previously approved these changes Feb 25, 2024
@MSchmalzl
Copy link

Finde ich gut so. Jetzt hat man eine klare Unterscheidung zwischen Geld- und Sachspenden.

@MSchmalzl MSchmalzl merged commit aa48ba3 into openjverein:master Feb 26, 2024
@JohannMaierhofer JohannMaierhofer deleted the fix_spendenbescheinigung2 branch February 29, 2024 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix This will fix a bug help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants