diff --git a/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java b/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java index bd8b5d943..5b0745713 100644 --- a/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java +++ b/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java @@ -60,6 +60,8 @@ public class SpendenbescheinigungPrintAction implements Action { private boolean standardPdf = true; + + private boolean mailversand = false; private String fileName = null; @@ -82,13 +84,16 @@ public SpendenbescheinigungPrintAction() * * @param standard * true=Standard-Dokument, false=individuelles Dokument + * @param mailversand + * true=für Mailversand, false=für Briefversand */ - public SpendenbescheinigungPrintAction(boolean standard) + public SpendenbescheinigungPrintAction(boolean standard, boolean mailversand) { super(); settings = new de.willuhn.jameica.system.Settings(this.getClass()); settings.setStoreWhenRead(true); standardPdf = standard; + this.mailversand = mailversand; } /** @@ -97,16 +102,19 @@ public SpendenbescheinigungPrintAction(boolean standard) * * @param standard * true=Standard-Dokument, false=individuelles Dokument + * @param mailversand + * true=für Mailversand, false=für Briefversand * @param fileName * Dateiname als Vorgabe inklusive Pfad */ - public SpendenbescheinigungPrintAction(boolean standard, String fileName) + public SpendenbescheinigungPrintAction(boolean standard, boolean mailversand, String fileName) { super(); settings = new de.willuhn.jameica.system.Settings(this.getClass()); settings.setStoreWhenRead(true); standardPdf = standard; this.fileName = fileName; + this.mailversand = mailversand; } /** @@ -1292,7 +1300,12 @@ private void generiereSpendenbescheinigungStandardAb2014( rpt.closeTable(); } - if (Einstellungen.getEinstellung().getSpendenbescheinigungadresse()) + String email = spb.getMitglied().getEmail(); + if ( (mailversand == false && Einstellungen.getEinstellung().getSpendenbescheinigungadresse()) + || (mailversand == true && Einstellungen.getEinstellung().getSpendenbescheinigungadresse() + && (email == null || email.isEmpty())) + || (mailversand == true && Einstellungen.getEinstellung().getSpendenbescheinigungadressem() + && email != null && !email.isEmpty())) { // Neue Seite mit Anschrift für Fenster in querem Brief rpt.newPage(); diff --git a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java index 4fffbc1a8..40672a7b1 100644 --- a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java +++ b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java @@ -297,6 +297,8 @@ public class EinstellungControl extends AbstractControl private CheckboxInput spendenbescheinigungadresse; + private CheckboxInput spendenbescheinigungadressem; + private CheckboxInput unterschriftdrucken; private ImageInput unterschrift; @@ -819,6 +821,16 @@ public CheckboxInput getSpendenbescheinigungadresse() throws RemoteException spendenbescheinigungadresse = new CheckboxInput(Einstellungen.getEinstellung().getSpendenbescheinigungadresse()); return spendenbescheinigungadresse; } + + public CheckboxInput getSpendenbescheinigungadressem() throws RemoteException + { + if (spendenbescheinigungadressem != null) + { + return spendenbescheinigungadressem; + } + spendenbescheinigungadressem = new CheckboxInput(Einstellungen.getEinstellung().getSpendenbescheinigungadressem()); + return spendenbescheinigungadressem; + } public CheckboxInput getExterneMitgliedsnummer() throws RemoteException { @@ -2120,6 +2132,7 @@ public void handleStoreSpendenbescheinigungen() e.setSpendenbescheinigungPrintBuchungsart((Boolean) spendenbescheinigungprintbuchungsart .getValue()); e.setSpendenbescheinigungadresse((Boolean) getSpendenbescheinigungadresse().getValue()); + e.setSpendenbescheinigungadressem((Boolean) getSpendenbescheinigungadressem().getValue()); e.setUnterschriftdrucken((Boolean) unterschriftdrucken.getValue()); e.setUnterschrift((byte[]) unterschrift.getValue()); e.store(); diff --git a/src/de/jost_net/JVerein/gui/control/SpendenbescheinigungControl.java b/src/de/jost_net/JVerein/gui/control/SpendenbescheinigungControl.java index a3f254f38..d9f6bb7a9 100644 --- a/src/de/jost_net/JVerein/gui/control/SpendenbescheinigungControl.java +++ b/src/de/jost_net/JVerein/gui/control/SpendenbescheinigungControl.java @@ -461,9 +461,14 @@ public void handleStore() } } - public Button getPDFStandardButton() + public Button getPDFStandardButton(final boolean mailversand) { - Button b = new Button("PDF (Standard)", new Action() + String label = "PDF (Standard, Briefversand)"; + if (mailversand) + { + label = "PDF (Standard, Mailversand)"; + } + Button b = new Button(label, new Action() { /** @@ -519,7 +524,7 @@ public void handleAction(Object context) throws ApplicationException final File file = new File(s); // SpendenbescheinigungPrintAction spa = new SpendenbescheinigungPrintAction( - true, s); + true, mailversand, s); spa.handleAction(spb); GUI.getStatusBar().setSuccessText("Spendenbescheinigung erstellt"); FileViewer.show(file); diff --git a/src/de/jost_net/JVerein/gui/menu/SpendenbescheinigungMenu.java b/src/de/jost_net/JVerein/gui/menu/SpendenbescheinigungMenu.java index c3af1aea7..aae28ea13 100644 --- a/src/de/jost_net/JVerein/gui/menu/SpendenbescheinigungMenu.java +++ b/src/de/jost_net/JVerein/gui/menu/SpendenbescheinigungMenu.java @@ -38,10 +38,12 @@ public class SpendenbescheinigungMenu extends ContextMenu */ public SpendenbescheinigungMenu() { - addItem(new CheckedContextMenuItem("Drucken (Standard)", - new SpendenbescheinigungPrintAction(true), "file-pdf.png")); + addItem(new CheckedContextMenuItem("Drucken (Standard, Briefversand)", + new SpendenbescheinigungPrintAction(true, false), "file-pdf.png")); + addItem(new CheckedContextMenuItem("Drucken (Standard, Mailversand)", + new SpendenbescheinigungPrintAction(true, true), "file-pdf.png")); addItem(new CheckedContextMenuItem("Drucken (individuell)", - new SpendenbescheinigungPrintAction(false), "file-pdf.png")); + new SpendenbescheinigungPrintAction(false, false), "file-pdf.png")); addItem(ContextMenuItem.SEPARATOR); addItem(new CheckedSingleContextMenuItem("E-Mail an Spender", new SpendenbescheinigungEmailAction(), "envelope-open.png")); diff --git a/src/de/jost_net/JVerein/gui/view/EinstellungenSpendenbescheinigungenView.java b/src/de/jost_net/JVerein/gui/view/EinstellungenSpendenbescheinigungenView.java index 87cdd90fe..90def929a 100644 --- a/src/de/jost_net/JVerein/gui/view/EinstellungenSpendenbescheinigungenView.java +++ b/src/de/jost_net/JVerein/gui/view/EinstellungenSpendenbescheinigungenView.java @@ -52,8 +52,10 @@ public void bind() throws Exception control.getSpendenbescheinigungverzeichnis()); cont.addLabelPair("Buchungsart drucken", control.getSpendenbescheinigungPrintBuchungsart()); - cont.addLabelPair("Adressausgabe für Brieffenster", + cont.addLabelPair("Adressausgabe für Brieffenster (Briefversand)", control.getSpendenbescheinigungadresse()); + cont.addLabelPair("Adressausgabe für Brieffenster (Mailversand)", + control.getSpendenbescheinigungadressem()); cont.addLabelPair("Unterschrift drucken", control.getUnterschriftdrucken()); cont.addLabelPair("Unterschrift", control.getUnterschrift()); diff --git a/src/de/jost_net/JVerein/gui/view/SpendenbescheinigungView.java b/src/de/jost_net/JVerein/gui/view/SpendenbescheinigungView.java index 496943091..e08437ff7 100644 --- a/src/de/jost_net/JVerein/gui/view/SpendenbescheinigungView.java +++ b/src/de/jost_net/JVerein/gui/view/SpendenbescheinigungView.java @@ -101,7 +101,8 @@ public void bind() throws Exception ButtonArea buttons = new ButtonArea(); buttons.addButton("Hilfe", new DokumentationAction(), DokumentationUtil.SPENDENBESCHEINIGUNG, false, "question-circle.png"); - buttons.addButton(control.getPDFStandardButton()); + buttons.addButton(control.getPDFStandardButton(false)); + buttons.addButton(control.getPDFStandardButton(true)); buttons.addButton(control.getPDFIndividuellButton()); buttons.addButton("Neu (Sachspende)", new SpendenbescheinigungAction(Spendenart.SACHSPENDE), null, false, "document-new.png"); diff --git a/src/de/jost_net/JVerein/rmi/Einstellung.java b/src/de/jost_net/JVerein/rmi/Einstellung.java index 744d6dfdc..7abdf33ff 100644 --- a/src/de/jost_net/JVerein/rmi/Einstellung.java +++ b/src/de/jost_net/JVerein/rmi/Einstellung.java @@ -547,6 +547,10 @@ public void setCt1SepaVersion(SepaVersion sepaversion) public Boolean getSpendenbescheinigungadresse() throws RemoteException; public void setSpendenbescheinigungadresse(Boolean spendenbescheinigungadresse) throws RemoteException; + + public Boolean getSpendenbescheinigungadressem() throws RemoteException; + + public void setSpendenbescheinigungadressem(Boolean spendenbescheinigungadressem) throws RemoteException; public int getQRCodeSizeInMm() throws RemoteException; diff --git a/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0437.java b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0437.java new file mode 100644 index 000000000..f852a8690 --- /dev/null +++ b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0437.java @@ -0,0 +1,36 @@ +/********************************************************************** + * This program is free software: you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See + * the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, + * see . + * + **********************************************************************/ +package de.jost_net.JVerein.server.DDLTool.Updates; + +import de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate; +import de.jost_net.JVerein.server.DDLTool.Column; +import de.willuhn.util.ApplicationException; +import de.willuhn.util.ProgressMonitor; + +import java.sql.Connection; + +public class Update0437 extends AbstractDDLUpdate +{ + public Update0437(String driver, ProgressMonitor monitor, Connection conn) + { + super(driver, monitor, conn); + } + + @Override + public void run() throws ApplicationException + { + execute(addColumn("einstellung", new Column("spendenbescheinigungadressem", + COLTYPE.BOOLEAN, 0, "FALSE", false, false))); + } +} diff --git a/src/de/jost_net/JVerein/server/EinstellungImpl.java b/src/de/jost_net/JVerein/server/EinstellungImpl.java index 34fce7d48..bdb22f2c0 100644 --- a/src/de/jost_net/JVerein/server/EinstellungImpl.java +++ b/src/de/jost_net/JVerein/server/EinstellungImpl.java @@ -2000,6 +2000,17 @@ public void setSpendenbescheinigungadresse(Boolean spendenbescheinigungadresse) } @Override + public Boolean getSpendenbescheinigungadressem() throws RemoteException + { + return Util.getBoolean(getAttribute("spendenbescheinigungadressem")); + } + + @Override + public void setSpendenbescheinigungadressem(Boolean spendenbescheinigungadressem) throws RemoteException + { + setAttribute("spendenbescheinigungadressem", spendenbescheinigungadressem); + } + public Boolean getUnterschriftdrucken() throws RemoteException { return Util.getBoolean(getAttribute("unterschriftdrucken"));