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

Rechnung erstellen von Versand trennen #418

Merged
merged 14 commits into from
Nov 16, 2024

Conversation

lenilsas
Copy link

@lenilsas lenilsas commented Nov 1, 2024

Ich habe eine Neue View und DB Tabelle Rechnung erstellt. Hier können, ähnlich wie bei Sendenbescheinigung, automatisch Rechnungen aus den Sollbuchungen erstellt werden. Im Druck/Mail werden diese vorhandenen Rechnungen nur noch versendet und nicht erstellt. Dadurch kann jede Sollbuchung auch nur auf einer Rechnung sein.
Bildschirmfoto zu 2024-11-01 16-04-22
Bildschirmfoto zu 2024-11-01 16-17-04

Sollbuchungen über die eine Rechnung erstellt wurde können nicht mehr abgerechnet werden.
Beim Formular gibt es zwei neue Felder: rechnung_datum und rechnung_nummer
Bisher war die Rechnungsnummer ja über den Zähler, der bei jedem erstellten Formular hochgezählt wurde, der ist jetzt eigentlich nicht mehr nötig, stattdessen sollte man rechnung_nummer verwenden.

Bisher habe ich nicht umgesetzt:
-erstellen von Rechnungen über das Kontextmenu von Sollbuchungen
-den Export bei Rechnung und Mahnung Druck/Mail habe ich entfernt, diese müsste überarbeitet werden
-Das Sortieren der Rechnungsausgabe

@JohannMaierhofer
Copy link

JohannMaierhofer commented Nov 1, 2024

Ich bekomme bei Erstellen eine Exception weil Formular null ist.
Es sollte geprüft werden ob eines gesetzt ist.

Dann kann man das Kontextmenü im Rechnungen View mit der rechten Maus öffnen auch wenn keine Einträge existieren. Zumindest gleich nach öffnen des View solange man nicht einmal links geklickt hat. Das gibt dann eine Exception wenn man Anzeigen wählt.

Ich habe den Kommentar korrigiert da ich nicht genau geschaut hatte, dass es das Formular Feld ja gibt.

@JohannMaierhofer
Copy link

Und das "ohne" im Filter gehört groß geschrieben wie bei den anderen auch. Das hatte ich mal mit einem PR korrigiert.

@JohannMaierhofer
Copy link

Könntest du dir die AbrechnungslaufDeleteAction anschauen. Ich habe da vor einiger Zeit einige Checks eingebaut.
Das Löschen, löscht implizit auch vom Abrechnungslauf erzeugte Buchungen und Sollbuchungen.
Die Buchung verweist auf Spendenbescheinigungen. Darum darf man sie nicht löschen ohne auch die Spendenbescheinigung zu löschen. Ich frage das am GUI ab. Entweder zusammen löschen oder gar nicht.
Jetzt ist es dann auch so mit der Rechnung. Wenn also eine Sollbuchung des Abrechnungslauf eine Rechnung hat müsste man auch fragen ob sie mit gelöscht werden soll. Wenn nicht darf man den Abrechnungslauf nicht löschen.
Jetzt kann es sein, dass sogar beide Bedingungen eintreten.

@JohannMaierhofer
Copy link

Ich hatte erst oben im Kommentar geschrieben, dass die Eingabe des Formular fehlt. Später habe ich es dann gesehen.
Ich hätte nicht erwartet, dass es im Filter Bereich ist. Es wird ja nicht zu Filterung benutzt.
Ich hätte da einen eigenen Input unterhalb des Filter erwartet, etwa so wie bei der Spendenbescheinigung. Halt ohne Jahr und nur für das Formular.

@lenilsas
Copy link
Author

lenilsas commented Nov 1, 2024

Dann kann man das Kontextmenü im Rechnungen View mit der rechten Maus öffnen auch wenn keine Einträge existieren. Zumindest gleich nach öffnen des View solange man nicht einmal links geklickt hat. Das gibt dann eine Exception wenn man Anzeigen wählt.

Bei mir sind in dem Fall alle Einträge disabled und man kann nicht darauf klicken

@lenilsas
Copy link
Author

lenilsas commented Nov 1, 2024

Kommentare eingearbeitet

@lenilsas
Copy link
Author

lenilsas commented Nov 1, 2024

Bisher verwende ich alle Kontaktdaten aus der Mitgliedstabelle. Für mich ist die Frage, ob ich sie nicht alle auch in der Rechnung hinterlegen sollte damit sie erhalten beleiben auch wenn das Mitglied geändert wird. So ist es ja auch bei Spendenbescheinigungen und Lastschriften. Was meinst du dazu?

@lenilsas lenilsas linked an issue Nov 1, 2024 that may be closed by this pull request
@JohannMaierhofer
Copy link

Bisher verwende ich alle Kontaktdaten aus der Mitgliedstabelle. Für mich ist die Frage, ob ich sie nicht alle auch in der Rechnung hinterlegen sollte damit sie erhalten beleiben auch wenn das Mitglied geändert wird. So ist es ja auch bei Spendenbescheinigungen und Lastschriften. Was meinst du dazu?

Ja, das wäre wahrscheinlich besser. So bleibt die Rechnung Dokumenten echt. Jetzt könnte beim neu ausdrucken etwas anderes als im Original drinnen stehen.

@JohannMaierhofer
Copy link

JohannMaierhofer commented Nov 2, 2024

Dann kann man das Kontextmenü im Rechnungen View mit der rechten Maus öffnen auch wenn keine Einträge existieren. Zumindest gleich nach öffnen des View solange man nicht einmal links geklickt hat. Das gibt dann eine Exception wenn man Anzeigen wählt.

Bei mir sind in dem Fall alle Einträge disabled und man kann nicht darauf klicken

Das liegt wohl an meinem System. Ich verwende Linux mit KDE. Seit dem Wechsel zu Fedora mit Wayland statt X11 habe ich auch öfter das Problem, dass ich mit der rechten Maustaste einen Tabelleneintrag selektierte und auf bearbeiten klicke. Dann kommt die Meldung, dass nichts selektiert ist obwohl der Eintrag optisch selektiert erscheint.
Das muss wohl ein Problem mit Wayland sein oder die Umsetzung von GTK auf Qt6.
Jedenfalls bin ich dann froh, dass zumindest die Meldung erscheint und nichts böses passiert.

Es hilft dann oft wenn ich erst mit der linken Maustaste den Eintrag selektiere und dann mit der rechten Maustaste das Menü öffne.

@JohannMaierhofer
Copy link

Ich bekomme eine Exception beim Erstellen. Die Rechnung Tabelle in der DB hat kein Formular und Betrag. In Update 0449 wird nur Mitglied und Datum erzeugt.

[Sat Nov 02 09:14:09 CET 2024][ERROR][main][de.jost_net.JVerein.gui.control.RechnungControl$5.handleAction] unable to prepare insert sql statement; nested exception is:
org.h2.jdbc.JdbcSQLSyntaxErrorException: Feld "FORMULAR" nicht gefunden
Column "FORMULAR" not found; SQL statement:
insert into RECHNUNG (DATUM,MITGLIED,FORMULAR,BETRAG) values (?,?,?,?) [42122-199]

@dippeal dippeal added blocked Depends on another feature or request enhancement New feature or request and removed blocked Depends on another feature or request labels Nov 2, 2024
@lenilsas
Copy link
Author

lenilsas commented Nov 4, 2024

Jetzt werden viele Daten aus dem Mitglied in die Rechnung übernommen, so dass diese erhalten bleibt, auch wenn sich das Mitglied ändert. Ganz geht das jedoch nicht, da auch Beitragsgruppen, Eigenschaften und Zusatzfelder in der Rechnung stehen können. Auch den Kontoinhaber mit allen Daten habe ich nicht kopiert.
Der Nachteil dabei ist, dass in bestehenden Rechnungen die Felder von "mitglied_...." zu "rechnung_..." geändert werden müssten. Das könnte man mit einem DBUpdate machen, da bin ich jedoch nicht sicher ob wir das wirklich machen sollen.

@JohannMaierhofer
Copy link

In #408 habe ich die Menüs etwas angepasst. Dein Menü passt jetzt nicht ganz dazu. Möchtest du das analog strukturieren?

@JohannMaierhofer
Copy link

Wenn man im Rechnungen View im Filter das Ohne Abbucher auswählt kommt es zu einer Exception.
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Mehrdeutiger Feldname "ID"
Ambiguous column name "ID"; SQL statement:
select RECHNUNG.* from RECHNUNG, mitglied where mitglied.id = rechnung.mitglied and mitglied.zahlungsweg <> ? and id in (1) [90059-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:573)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)

@JohannMaierhofer
Copy link

Da ich das Ändern der Sollbuchungen verhindere wenn eine Rechnung darüber erstellt wurde kann sich der Betrag nicht ändern. Es werden ja alle Daten der Sollbuchungen für die Rechnung verwendet nicht nur die Endsumme.

Ich kann der Sollbuchungen aber eine Istbuchung zuordnen, wodurch sich der Fehlbetrag ändern kann.

Das Zuordnen eine Istbuchung ändert ja nichts an der Rechnung und am Rechnungsbetrag. Der Fehlbetrag kann sich ja ändern. Der ist ja dann für die Mahnungen relevant. Die Mahnung basiert halt auf dem Stand zum Tag der Erstellung. Ist ein Teilbetrag bezahlt wird die nächste Mahnung dann anders.

@lenilsas
Copy link
Author

So ganz verstehe ich den Kommentar nicht.
Man kann in dem View ja doch nach einigem filtern. Also z.B. nur Leute die nicht per Lastschrift zahlen, oder Mails haben. Mit Differenz auch ob die Rechnungen noch offen sind.

Da hatte ich den Kommentar falsch gelesen. Ich meinte es wäre gut die Rechnungen aufzulisten bevor sie verschickt werden, da man sonst nicht sieht ob der Filter so gefilter hat wie man es gewollt hat.

@JohannMaierhofer
Copy link

So ganz verstehe ich den Kommentar nicht.
Man kann in dem View ja doch nach einigem filtern. Also z.B. nur Leute die nicht per Lastschrift zahlen, oder Mails haben. Mit Differenz auch ob die Rechnungen noch offen sind.

Da hatte ich den Kommentar falsch gelesen. Ich meinte es wäre gut die Rechnungen aufzulisten bevor sie verschickt werden, da man sonst nicht sieht ob der Filter so gefilter hat wie man es gewollt hat.

Ja, sowas könnte Sinn machen.

@mbmueller
Copy link

Das Zuordnen eine Istbuchung ändert ja nichts an der Rechnung und am Rechnungsbetrag. Der Fehlbetrag kann sich ja ändern. Der ist ja dann für die Mahnungen relevant. Die Mahnung basiert halt auf dem Stand zum Tag der Erstellung. Ist ein Teilbetrag bezahlt wird die nächste Mahnung dann anders.

Ich verstehe jetzt was ihr meint. Mein Workflow ist da einfach anders als es durch die Änderung hier noch möglich sein wird.
Wir haben bei uns oft Mitglieder die nur einen Teil bezahlen und ich möchte sie ja vor allem daran erinnern, was sie noch zu bezahlen haben.
Ich habe deswegen folgendes Formular:
image

Dadurch ergibt sich vor dem Zuordnen einer Istbuchung folgende Ausgabe:
RECHNUNG-20241114-205334.pdf

Und nach Zuordnung bspw.:
RECHNUNG-20241114-205435.pdf

In dem man statt "mitgliedskonto_differenz" einfach "mitgliedskonto_betrag" verwendet bleibt das natürlich gleich. Durch die Änderung fällt für mich aber die Möglichkeit einer "Zahlungserinnerung" weg, in der nur die Differenz angezeigt wird.
Wäre aber auch etwas, was man in einem anderen Issue behandeln könnte, falls das überhaupt als sinnvoll erachtet wird.

@mbmueller
Copy link

Da hatte ich den Kommentar falsch gelesen. Ich meinte es wäre gut die Rechnungen aufzulisten bevor sie verschickt werden, da man sonst nicht sieht ob der Filter so gefilter hat wie man es gewollt hat.

Sehe ich auch so, ansonsten würde es eigentlich immer nur Sinn ergeben im Rechnungen-View (bei Mitglieder) zu filtern, dann alle auszuwählen und dann die Rechnung zu verschicken.

mbmueller
mbmueller previously approved these changes Nov 14, 2024
@mbmueller
Copy link

Ich habe jeweils extra Issues erstellt, dann kann man da drüber sprechen, was sinnvoll ist und was nicht. Das soll aber natürlich nicht diesen PR noch weiter verzögern, denn eigentlich sind die Änderungen absolut sinnvoll und gut umgesetzt.

@JohannMaierhofer
Copy link

In dem man statt "mitgliedskonto_differenz" einfach "mitgliedskonto_betrag" verwendet bleibt das natürlich gleich. Durch die Änderung fällt für mich aber die Möglichkeit einer "Zahlungserinnerung" weg, in der nur die Differenz angezeigt wird. Wäre aber auch etwas, was man in einem anderen Issue behandeln könnte, falls das überhaupt als sinnvoll erachtet wird.

Ich habe noch nie Rechnungen erstellt und kenne mich da jetzt auch nicht so aus. Mein Verständnis war jetzt, dass eine Rechnung Buchungen enthält und diese dann auch nicht mehr geändert wird.

Was du haben willst sind aber doch keine Rechnungen sondern Mahnungen. Mein Verständnis wäre jetzt, dass das was du willst funktionieren sollte aber eben nicht als Rechnung sondern Mahnung. Dafür gibt es ja den Menüeintrag "Mahnung Druck und Mail".

@mbmueller
Copy link

Was du haben willst sind aber doch keine Rechnungen sondern Mahnungen. Mein Verständnis wäre jetzt, dass das was du willst funktionieren sollte aber eben nicht als Rechnung sondern Mahnung. Dafür gibt es ja den Menüeintrag "Mahnung Druck und Mail".

Das stimmt, wenn aber meine Vorschläge aus #457 implementiert werden würden wäre das (s. #459) eine Zwischenstufe zwischen Mahnung und Rechnung. Sehe aber ein, dass das evtl. dann trotzdem nicht erforderlich ist.

@dippeal
Copy link
Member

dippeal commented Nov 15, 2024

Wenn ich das Richtig sehe, sind hier die Steuerklassen nicht berücksichtigt. Brutto/Netto müsste bitte noch rein, damit die optierten Vereine das nutzen können.

@dippeal dippeal added blocked Depends on another feature or request question Further information is requested labels Nov 15, 2024
@lenilsas
Copy link
Author

Wenn ich das Richtig sehe, sind hier die Steuerklassen nicht berücksichtigt. Brutto/Netto müsste bitte noch rein, damit die optierten Vereine das nutzen können.

Da habe ich nichts geändert, das kann nach wie vor genutzt werden.
Oder ich verstehe nicht wo du meinst.

@lenilsas
Copy link
Author

Wir haben bei uns oft Mitglieder die nur einen Teil bezahlen und ich möchte sie ja vor allem daran erinnern, was sie noch zu bezahlen haben.

Das kannst du nach wie vor machen, es ist ja aber eher eine Mahnung als eine Rechnung. Du solltest dann nur die Felder mitgliedskonto_betrag, mitgliedskonto_ist, mitgliedskonto_summe_offen verwenden, dann ist alles ersitlich was gezahlt und was noch zu zahlen ist.

@dippeal
Copy link
Member

dippeal commented Nov 15, 2024

Magst du in der Rechnungen detail view noch die Buttons "Druck/Mail" und "Mahnung Druck/Mail" oder so ähnlich hinzufügen.

@lenilsas
Copy link
Author

Schreibfehler habe ich behoben, ich habe auch noch zwei andere bei Abrechnugslauf gefunden

@lenilsas
Copy link
Author

Magst du in der Rechnungen detail view noch die Buttons "Druck/Mail" und "Mahnung Druck/Mail" oder so ähnlich hinzufügen.

Das haben wir sonst eigentlich nicht einen Exportbutton im DetailView (Außer bei Spendenbescheinigung, da hatten wir aber auch schon mal die Diskussion ob der entfernt werden soll.) Über Das Kontextmenü im ListView kann "Druck/Mail" erfolgen.

@JohannMaierhofer JohannMaierhofer removed the blocked Depends on another feature or request label Nov 16, 2024
@JohannMaierhofer JohannMaierhofer merged commit ad529db into openjverein:master Nov 16, 2024
@lenilsas lenilsas deleted the rechnung branch November 17, 2024 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rechnung erstellen von Versand trennen
4 participants