openjverein / jverein

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

Filter Update und Kontoauszug per Mail verschicken #236

Closed JohannMaierhofer closed 1 month ago

JohannMaierhofer commented 3 months ago

Umstellung der Views die MitgliedskontoControl verwenden auf die Benutzung von FilterControl. Dadurch kann doppelter Code entfernt werden. Ziel ist eine Vereinheitlichung aller Filter in den verschiedenen Views bezüglich Buttons, Aussehen und Feldnamen. Zusätzlich ist der Kontoauszug View erweitert um die Möglichkeit die Auszüge auch per Mail zu versenden. Die Views sind:

Daneben habe ich noch einen Fehler korrigiert. Der ZipMailer hat immer für den Anhang den Dateinamen "Rechnung.pdf" verwendet, auch bei einer Mahnung. Ich habe das geändert und übergebe den Namen an den ZipMailer.

Rechnung View alt: Screenshot_20240603_134133

Rechnung View neu: Screenshot_20240603_140217

Mahnung View alt: Screenshot_20240603_134119

Mahnung View neu: Screenshot_20240603_140235

Kontoauszug View alt: Bildschirmfoto_20240614_205212

Kontoauszug View neu: Bildschirmfoto_20240614_210518

Sollbuchung View alt: Screenshot_20240603_134244

Sollbuchung View neu: Screenshot_20240603_140509

JohannMaierhofer commented 2 months ago

Merge Konflikt gelöst

lenilsas commented 1 month ago

Das Drucken der Kontoauszüge funktioniert bei mir nicht mehr: Kein Mitglied ausgewählt: Vorgang abgebrochen

JohannMaierhofer commented 1 month ago

Das Drucken der Kontoauszüge funktioniert bei mir nicht mehr: Kein Mitglied ausgewählt: Vorgang abgebrochen

Fix ist übergeben. Allerdings bin ich überfragt wie das passieren konnte. Ich hatte doch ausgiebig die Ausgaben getestet. Ja, bei Commit "Check null" ist es passiert und dann nicht mehr getestet. Das darf nicht passieren.

lenilsas commented 1 month ago

Das mit dem Mail der Kontoauszüge gefällt mir sehr gut. Ich frage mich nur, ob mann es auch ohne einen Speicherort für die Zip Datei auszuwählen machen kann. Die Zip wird ja nur für die Mails verwendet und man braucht sie sonst nicht, könnte also temporär irgendwo gespeichert werden. Wie wird das beim anderen Mails gemacht?

JohannMaierhofer commented 1 month ago

Das mit dem Mail der Kontoauszüge gefällt mir sehr gut. Ich frage mich nur, ob mann es auch ohne einen Speicherort für die Zip Datei auszuwählen machen kann. Die Zip wird ja nur für die Mails verwendet und man braucht sie sonst nicht, könnte also temporär irgendwo gespeichert werden. Wie wird das beim anderen Mails gemacht?

Ich habe mal geschaut, auch bei Rechnung und Mahnung wird man nach dem Directory gefragt. Ich denke mal, dass es zu Dokumentationszwecken ganz gut ist wenn man die Datei hat. Dann kann man nachweisen, was man verschickt hat.

Was mir aber aufgefallen ist, ist dass bei Versand über den Zip Mailer die Mails nicht in der Datenbank gespeichert werden. Eigentlich sollte das da auch so sein. Das wäre einen eigen PR wert.

dippeal commented 1 month ago

Magst du deinen Branch mal updaten um die commits im openjverein/master. Anschließend teste ich den auch.

JohannMaierhofer commented 1 month ago

Magst du deinen Branch mal updaten um die commits im openjverein/master. Anschließend teste ich den auch.

erledigt

dippeal commented 1 month ago

Willst du noch eine Benachrichtigung einbauen, wenn keine Rechnungen/Mahnung (bei gesetztem Filter) gefunden wurden? Sonst passt es für mich.

[Fri Jul 26 14:35:15 CEST 2024][DEBUG][main][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: com.mysql.jdbc.JDBC42PreparedStatement@11e9ac24: select mitgliedskonto.* from mitgliedskonto where datum >= '2024-07-01 00:00:00' [Fri Jul 26 14:35:15 CEST 2024][ERROR][main][de.willuhn.jameica.gui.GUI.loop] main loop crashed, retry ExceptionConverter: java.io.IOException: The document has no pages. at com.itextpdf.text.pdf.PdfPages.writePageTree(PdfPages.java:113) at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1269) at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:882) at com.itextpdf.text.Document.close(Document.java:416) at de.jost_net.JVerein.io.FormularAufbereitung.closeFormular(FormularAufbereitung.java:347) at de.jost_net.JVerein.io.FormularAufbereitung.showFormular(FormularAufbereitung.java:360) at de.jost_net.JVerein.io.AbstractMitgliedskontoDokument.aufbereitung(AbstractMitgliedskontoDokument.java:112) at de.jost_net.JVerein.io.Rechnungsausgabe.(Rechnungsausgabe.java:89) at de.jost_net.JVerein.gui.control.MitgliedskontoControl.generiereRechnung(MitgliedskontoControl.java:989) at de.jost_net.JVerein.gui.control.MitgliedskontoControl.access$3(MitgliedskontoControl.java:985) at de.jost_net.JVerein.gui.control.MitgliedskontoControl$6.handleAction(MitgliedskontoControl.java:943) at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:174) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at de.willuhn.jameica.gui.GUI$6.run(GUI.java:921) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183) at org.eclipse.swt.widgets.Display.syncExec(Display.java:5960) at de.willuhn.jameica.gui.GUI.startSync(GUI.java:917) at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:168) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5855) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5065) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4517) at de.willuhn.jameica.gui.GUI.loop(GUI.java:938) at de.willuhn.jameica.gui.GUI.init(GUI.java:335) at de.willuhn.jameica.system.Application.init(Application.java:145) at de.willuhn.jameica.system.Application.newInstance(Application.java:87) at de.willuhn.jameica.Main.main(Main.java:78)

lenilsas commented 1 month ago

Es wäre vielleicht auch noch gut, wenn ausgegeben wird, wenn ein Mitglied keine Mailadresse hat.

JohannMaierhofer commented 1 month ago

Willst du noch eine Benachrichtigung einbauen, wenn keine Rechnungen/Mahnung (bei gesetztem Filter) gefunden wurden? Sonst passt es für mich.

Das habe ich auch gesehen, es war schon immer so bei Mahnung und Rechnung. Es ist aber nicht schön. Ich löse das noch.

JohannMaierhofer commented 1 month ago

Jetzt habe ich noch euere Kommentare implementiert:

Jetzt ist aber genug, nicht dass einer noch auf die Idee kommt und auch ein Adressblatt auf eine extra Seite bei den Kontoauszügen, Mahnungen und Rechnungen haben zu wollen so wie bei den Spendenbescheinigungen. Das machen wir dann extra.

JohannMaierhofer commented 1 month ago

Ich weiß, dass auch bei den Mahnung und Rechnung Views das Info Feld nützlich wäre um zu sehen ob Mitglieder ohne Mails dabei sind. Hier muss man das nach dem Query machen. Ich will das nicht mehr hier machen, werde es aber mit einem neuen PR nachholen.