# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
Index: jverein/build/BUILD
--- jverein/build/BUILD Base (1.159)
+++ jverein/build/BUILD Locally Modified (Based On 1.159)
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
-#Tue Jun 11 12:36:51 CEST 2013
-build.number=399
+#Sun Sep 29 20:36:03 CEST 2013
+build.number=429
Index: jverein/build/build.properties
--- jverein/build/build.properties Base (1.5)
+++ jverein/build/build.properties Locally Modified (Based On 1.5)
@@ -10,10 +10,37 @@
define.jarfilename = ${define.pluginname}.jar
define.srcfilename = ${define.pluginname}.src.zip
define.package = de.jost_net.JVerein
+define.encoding = ISO-8859-1
+define.java.version = 1.5
+define.jameica.dir = ../jameica
+define.hibiscus.dir = ../hibiscus
+define.compilepath = ${define.jameica.dir}/lib/swt/linux/swt.jar;\
+ ${define.jameica.dir}/lib/swt/org.eclipse.jface_3.1.1.jar;\
+ ${define.jameica.dir}/lib/velocity/velocity-1.5.jar;\
+ ${define.jameica.dir}/bin/;\
+ ${define.jameica.dir}/releases/jameica-lib.jar;\
+ ${define.jameica.dir}/lib/de_willuhn_ds/de_willuhn_ds.jar;\
+ ${define.jameica.dir}/lib/de_willuhn_util/de_willuhn_util.jar;\
+ ${define.jameica.dir}/lib/jakarta_commons/commons-lang-2.6.jar;\
+ ${define.jameica.dir}/lib/nanoxml/nanoxml-2.2.3.jar;\
+ ${define.jameica.dir}/lib/paperclips/net.sf.paperclips_1.0.4.jar;\
+ ${lib.dir}/SuperCSV-1.52.jar;\
+ ${lib.dir}/activation.jar;\
+ ${lib.dir}/bsh-core-2.0b4.jar;\
+ ${lib.dir}/csvjdbc.jar;\
+ ${lib.dir}/itext-hyph-xml.jar;\
+ ${lib.dir}/junit-4.8.1.jar;\
+ ${lib.dir}/mail.jar;\
+ ${lib.dir}/nc.jar;\
+ ${define.hibiscus.dir}/lib/itextpdf-5.3.3.jar;\n\
+ ${define.hibiscus.dir}/lib/hbci4java-2.5.12.jar;\n\
+ ${define.hibiscus.dir}/lib/obantoo-bin-2.0.3.jar;\n\
+ ${class.dir}
-project.release = releases/${version}-${build.number}
+
+project.release = releases/${plugin.version}-${build.number}
project.src = ${project.release}/src/classes
project.tmp = ${project.release}/tmp
project.javadoc = ${project.release}/javadoc
project.zipdir = ${project.release}/${define.pluginname}
-project.zipfilename = ${define.pluginname}.${version}-${build.number}.zip
+project.zipfilename = ${define.pluginname}.${plugin.version}-${build.number}.zip
Index: jverein/build/build.xml
--- jverein/build/build.xml Base (1.15)
+++ jverein/build/build.xml Locally Modified (Based On 1.15)
@@ -4,127 +4,248 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: jverein/nbproject/.cvsignore
--- jverein/nbproject/.cvsignore No Base Revision
+++ jverein/nbproject/.cvsignore Locally New
@@ -0,0 +1 @@
+private
Index: jverein/nbproject/project.xml
--- jverein/nbproject/project.xml No Base Revision
+++ jverein/nbproject/project.xml Locally New
@@ -0,0 +1,73 @@
+
+
+ org.netbeans.modules.ant.freeform
+
+
+ JVerein
+
+
+
+ JVerein
+
+ build/build.xml
+
+
+
+
+ .
+ ISO-8859-1
+
+
+
+ java
+ src
+ ISO-8859-1
+
+
+
+
+
+ jar
+
+
+
+ clean
+
+
+
+ javadoc
+
+
+
+ clean
+ jar
+
+
+
+
+
+
+ src
+
+
+ ${ant.script}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ src
+ ../hibiscus/bin:../jameica/bin:lib/activation.jar:lib/junit-4.8.1.jar:lib/csvjdbc.jar:lib/CVS:lib/nc.jar:lib/bsh-core-2.0b4.jar:lib/SuperCSV-1.52.jar:lib/itext-hyph-xml.jar:lib/mail.jar:../jameica/lib/de_willuhn_util/de_willuhn_util.jar:../jameica/lib/de_willuhn_ds/de_willuhn_ds.jar:../hibiscus/lib/obantoo-bin-2.0.3.jar:../jameica/lib/swt/org.eclipse.core.runtime_3.1.1.jar:../jameica/lib/swt/org.eclipse.jface_3.1.1.jar:../jameica/lib/swt/org.eclipse.ui.forms_3.1.0.jar:../jameica/lib/swt/org.eclipse.osgi_3.1.1.jar:../jameica/lib/swt/linux64/swt.jar:../hibiscus/lib/hbci4java-2.5.12.jar:../jameica/lib/velocity/jakarta-oro-2.0.8.jar:../jameica/lib/velocity/velocity-1.5.jar:../hibiscus/lib/itextpdf-5.3.3.jar:../jameica/lib/nanoxml/nanoxml-2.2.3.jar
+ 1.5
+
+
+
+
Index: jverein/plugin.xml
--- jverein/plugin.xml Base (1.58)
+++ jverein/plugin.xml Locally Modified (Based On 1.58)
@@ -35,8 +35,8 @@
class="de.jost_net.JVerein.server.JVereinDBServiceImpl" />
-
-
+
+
Index: jverein/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
--- jverein/src/de/jost_net/JVerein/gui/control/EinstellungControl.java Base (1.68)
+++ jverein/src/de/jost_net/JVerein/gui/control/EinstellungControl.java Locally Modified (Based On 1.68)
@@ -179,6 +179,8 @@
private SelectInput sepaland;
+ private CheckboxInput mandatIDEditable;
+
private Input altersgruppen;
private Input jubilaeen;
@@ -890,6 +892,16 @@
return sepaland;
}
+ public CheckboxInput getMandatIDEditable() throws RemoteException
+ {
+ if(mandatIDEditable != null) {
+ return mandatIDEditable;
+ }
+ mandatIDEditable = new CheckboxInput(Einstellungen.getEinstellung().isMandatIdEditable());
+ mandatIDEditable.setName("Mandatsreferenz änderbar");
+ return mandatIDEditable;
+ }
+
public Input getAltersgruppen() throws RemoteException
{
if (altersgruppen != null)
@@ -1275,6 +1287,8 @@
e.setJubilarStartAlter(jubilaeumStartAlter);
Integer delay = (Integer) delaytime.getValue();
e.setDelaytime(delay);
+ e.setMandatIdEditable((Boolean) getMandatIDEditable().getValue());
+
e.store();
spalten.save();
Einstellungen.setEinstellung(e);
Index: jverein/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java
--- jverein/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java Base (1.41)
+++ jverein/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java Locally Modified (Based On 1.41)
@@ -99,6 +99,8 @@
private DateInput mandatdatum;
+ private TextInput mandatID;
+
private BICInput bic;
private IBANInput iban;
@@ -334,6 +336,21 @@
return mandatdatum;
}
+ public TextInput getMandatID() throws RemoteException
+ {
+ if (mandatID != null)
+ {
+ return mandatID;
+ }
+
+ mandatID = new TextInput(getKursteilnehmer().getMandatID(), 35);
+ mandatID.setName("Mandatsreferenz");
+ if(! Einstellungen.getEinstellung().isMandatIdEditable()) {
+ mandatID.disable();
+ }
+ return mandatID;
+ }
+
public BICInput getBIC() throws RemoteException
{
if (bic != null)
@@ -757,6 +774,9 @@
k.setEmail((String) getEmail().getValue());
k.setVZweck1((String) getVZweck1().getValue());
k.setMandatDatum((Date) getMandatDatum().getValue());
+ if(Einstellungen.getEinstellung().isMandatIdEditable()) {
+ k.setMandatID((String) getMandatID().getValue());
+ }
k.setBlz((String) getBlz().getValue());
k.setKonto((String) getKonto().getValue());
k.setBetrag((Double) getBetrag().getValue());
Index: jverein/src/de/jost_net/JVerein/gui/control/MitgliedControl.java
--- jverein/src/de/jost_net/JVerein/gui/control/MitgliedControl.java Base (1.174)
+++ jverein/src/de/jost_net/JVerein/gui/control/MitgliedControl.java Locally Modified (Based On 1.174)
@@ -752,9 +752,14 @@
{
return mandatid;
}
- mandatid = new TextInput(getMitglied().getID());
- mandatid.setName("Mandats-ID");
+ mandatid = new TextInput(getMitglied().getMandatID());
+ mandatid.setName("Mandatsreferenz");
+ mandatid.setMandatory(
+ (getMitglied().getZahlungsweg() == null
+ || getMitglied().getZahlungsweg().intValue() == Zahlungsweg.BASISLASTSCHRIFT));
+ if(! Einstellungen.getEinstellung().isMandatIdEditable()) {
mandatid.disable();
+ }
return mandatid;
}
@@ -2809,6 +2814,9 @@
Zahlungsrhytmus zr = (Zahlungsrhytmus) getZahlungsrhytmus().getValue();
m.setZahlungsrhytmus(zr.getKey());
m.setMandatDatum((Date) getMandatDatum().getValue());
+ if(Einstellungen.getEinstellung().isMandatIdEditable()) {
+ m.setMandatID((String) getMandatID().getValue());
+ }
m.setBlz((String) getBlz().getValue());
m.setBic((String) getBic().getValue());
m.setIban((String) getIban().getValue());
Index: jverein/src/de/jost_net/JVerein/gui/view/EinstellungenView.java
--- jverein/src/de/jost_net/JVerein/gui/view/EinstellungenView.java Base (1.68)
+++ jverein/src/de/jost_net/JVerein/gui/view/EinstellungenView.java Locally Modified (Based On 1.68)
@@ -23,21 +23,28 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TabFolder;
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.action.DokumentationAction;
import de.jost_net.JVerein.gui.control.EinstellungControl;
+import de.jost_net.JVerein.rmi.Mitglied;
+import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.parts.ButtonArea;
import de.willuhn.jameica.gui.util.Color;
import de.willuhn.jameica.gui.util.ColumnLayout;
+import de.willuhn.jameica.gui.util.Font;
import de.willuhn.jameica.gui.util.LabelGroup;
import de.willuhn.jameica.gui.util.ScrolledContainer;
import de.willuhn.jameica.gui.util.SimpleContainer;
import de.willuhn.jameica.gui.util.TabGroup;
+import de.willuhn.util.ApplicationException;
+import java.rmi.RemoteException;
+import org.eclipse.jface.dialogs.MessageDialog;
public class EinstellungenView extends AbstractView
{
@@ -53,6 +60,7 @@
TabFolder folder = new TabFolder(cont.getComposite(), SWT.NONE);
folder.setLayoutData(new GridData(GridData.FILL_BOTH));
folder.setBackground(Color.BACKGROUND.getSWTColor());
+ //folder.setLayout(new FillLayout(SWT.VERTICAL));
TabGroup tabAllgemein = new TabGroup(folder, "Allgemein");
tabAllgemein.addHeadline("Allgemein");
@@ -108,15 +116,57 @@
control.getDelaytime());
right.addHeadline("* " + "Änderung erfordert Neustart");
- TabGroup tabBeitraege = new TabGroup(folder, "Beiträge");
- LabelGroup groupAbu = new LabelGroup(tabBeitraege.getComposite(),
- "Beiträge");
+ TabGroup tabBeitraege = new TabGroup(folder, "Beiträge", false, 1);
+ LabelGroup groupAbu = new LabelGroup(tabBeitraege.getComposite(), "Beiträge");
groupAbu.addLabelPair("Beitragsmodel", control.getBeitragsmodel());
groupAbu.addInput(control.getZahlungsrhytmus());
groupAbu.addInput(control.getZahlungsweg());
groupAbu.addInput(control.getDefaultSEPALand());
groupAbu.addLabelPair("Arbeitsstunden Model", control.getArbeitsstundenmodel());
+ LabelGroup groupSepaMandat = new LabelGroup(tabBeitraege.getComposite(),
+ "SEPA-Mandatsreferenz");
+ Label sepaWarningLabel = new Label(groupSepaMandat.getComposite(), SWT.NONE);
+ sepaWarningLabel.setFont(Font.H2.getSWTFont());
+ sepaWarningLabel.setForeground(new org.eclipse.swt.graphics.Color(GUI.getDisplay(), 255, 0, 0));
+ sepaWarningLabel.setText("ACHTUNG! Bei Änderungen sind die Regeln zur "
+ + "Vergabe und Verwaltung von Mandatsreferenzen zu beachten!");
+ GridData gd = new GridData(SWT.BEGINNING, SWT.CENTER, true, false, 1, 2);
+ sepaWarningLabel.setLayoutData(gd);
+ groupSepaMandat.addInput(control.getMandatIDEditable());
+ ButtonArea mandatIDButtons = new ButtonArea();
+ mandatIDButtons.addButton("Mandatsreferenzen zurücksetzen", new Action() {
+ @Override
+ public void handleAction(Object o) throws ApplicationException {
+ String warning = "ACHTUNG: Durch das zurücksetzen der Mandatsreferenzen"
+ + " werden Lastschrifteinzüge möglicherweise ungültig!\n\n"
+ + "Benutzen Sie diese Funktion nur in Ausnahmefällen, bswp. "
+ + "wenn Sie alle Lastschriftmandate neuerstellen!\n\n"
+ + "Diese Aktion ist nicht rückgängig zu machen!";
+ boolean result = MessageDialog.openConfirm(GUI.getShell(),
+ "WARNUNG: Zurücksetzen der Mandatsreferenzen",
+ warning);
+ if(result) {
+ try {
+ DBIterator it = Einstellungen.getDBService().createList(Mitglied.class);
+ while(it.hasNext()) {
+ Mitglied m = (Mitglied) it.next();
+ m.setMandatID(null);
+ m.store();
+ }
+ } catch (RemoteException ex) {
+ MessageDialog.openWarning(GUI.getShell(),
+ "Zurücksetzen der Mandatsreferenzen fehl geschlagen",
+ "Zurücksetzen der Mandatsreferenzen fehl geschlagen\n\n"
+ + ex.getMessage());
+ }
+ }
+ }
+ });
+ groupSepaMandat.addButtonArea(mandatIDButtons);
+
+
+
TabGroup tabDateinamen = new TabGroup(folder, "Dateinamen", false, 1);
LabelGroup groupDatei = new LabelGroup(tabDateinamen.getComposite(),
"Dateinamenmuster");
Index: jverein/src/de/jost_net/JVerein/gui/view/KursteilnehmerDetailView.java
--- jverein/src/de/jost_net/JVerein/gui/view/KursteilnehmerDetailView.java Base (1.21)
+++ jverein/src/de/jost_net/JVerein/gui/view/KursteilnehmerDetailView.java Locally Modified (Based On 1.21)
@@ -61,6 +61,7 @@
grGrund.addInput(control.getEmail());
grGrund.addInput(control.getVZweck1());
grGrund.addInput(control.getMandatDatum());
+ grGrund.addInput(control.getMandatID());
grGrund.addInput(control.getBIC());
grGrund.addInput(control.getIBAN());
grGrund.addPart(new BankverbindungDialogButton(control.getKursteilnehmer(),
Index: jverein/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
--- jverein/src/de/jost_net/JVerein/io/AbrechnungSEPA.java Base (1.13)
+++ jverein/src/de/jost_net/JVerein/io/AbrechnungSEPA.java Locally Modified (Based On 1.13)
@@ -98,6 +98,8 @@
.getNameLang()));
Konto konto = getKonto();
+
+ // Führe interne Buchungen durch und schreibe diese in Lastschrift
abrechnenMitglieder(lastschrift, monitor, abrl, konto);
if (param.zusatzbetraege)
{
@@ -105,7 +107,7 @@
}
if (param.kursteilnehmer)
{
- abbuchenKursteilnehmer(lastschrift);
+ abbuchenKursteilnehmer(lastschrift, abrl);
}
monitor.log(counter + " abgerechnete Fälle");
@@ -113,17 +115,38 @@
lastschrift.setMessageID(abrl.getID());
lastschrift.write(param.sepafile);
- ArrayList z = lastschrift.getZahler();
- for (Zahler za : z)
+ // Gegenbuchung für das Mitgliedskonto schreiben
+ writeMitgliedskonto(null, new Date(), "Gegenbuchung", lastschrift
+ .getKontrollsumme().doubleValue() * -1, abrl, true, getKonto(), null);
+
+ // if (param.abbuchungsausgabe ==
+ // Abrechnungsausgabe.HIBISCUS_EINZELBUCHUNGEN
+ // || param.abbuchungsausgabe == Abrechnungsausgabe.HIBISCUS_SAMMELBUCHUNG)
+ // {
+ // buchenHibiscus();
+ // }
+ // monitor.log(JVereinPlugin.getI18n().tr(
+ // "Anzahl Abbuchungen/Lastschrift: {0}",
+ // new String[] { dtaus.getAnzahlSaetze() + "" }));
+ // monitor.log(JVereinPlugin.getI18n().tr(
+ // "Gesamtsumme Abbuchung/Lastschrift: {0} EUR",
+ // Einstellungen.DECIMALFORMAT.format(dtaus.getSummeBetraegeDecimal())));
+ // dtaus.close();
+ monitor.setPercentComplete(100);
+ if (param.sepaprint)
{
- Lastschrift ls = (Lastschrift) Einstellungen.getDBService().createObject(
- Lastschrift.class, null);
+ ausdruckenSEPA(lastschrift, param.pdffile);
+ }
+ }
+
+ private void saveLastschrift(Kursteilnehmer k, Zahler za,
+ Abrechnungslauf abrl) throws RemoteException, SEPAException,
+ ApplicationException {
+ Lastschrift ls = (Lastschrift) Einstellungen.getDBService()
+ .createObject(Lastschrift.class, null);
ls.setAbrechnungslauf(Integer.parseInt(abrl.getID()));
- if (za.getMandatid().startsWith("K"))
- {
- ls.setKursteilnehmer(Integer.parseInt(za.getMandatid().substring(1)));
- Kursteilnehmer k = (Kursteilnehmer) Einstellungen.getDBService()
- .createObject(Kursteilnehmer.class, za.getMandatid().substring(1));
+
+ ls.setKursteilnehmer(Integer.parseInt(k.getID()));
ls.setPersonenart(k.getPersonenart());
ls.setAnrede(k.getAnrede());
ls.setTitel(k.getTitel());
@@ -135,12 +158,23 @@
ls.setOrt(k.getOrt());
ls.setStaat(k.getStaat());
ls.setEmail(k.getEmail());
+
+ ls.setBetrag(za.getBetrag().doubleValue());
+ ls.setBIC(za.getBic());
+ ls.setIBAN(za.getIban());
+ ls.setMandatDatum(za.getMandatdatum());
+ ls.setMandatID(za.getMandatid());
+ ls.setVerwendungszweck(za.getVerwendungszweckOrig());
+ ls.store();
}
- else
- {
- ls.setMitglied(Integer.parseInt(za.getMandatid()));
- Mitglied m = (Mitglied) Einstellungen.getDBService().createObject(
- Mitglied.class, za.getMandatid());
+
+ private void saveLastschrift(Mitglied m, Zahler za, Abrechnungslauf abrl)
+ throws RemoteException, SEPAException, ApplicationException {
+ Lastschrift ls = (Lastschrift) Einstellungen.getDBService()
+ .createObject(Lastschrift.class, null);
+ ls.setAbrechnungslauf(Integer.parseInt(abrl.getID()));
+
+ ls.setMitglied(Integer.parseInt(m.getID()));
ls.setPersonenart(getKontoinhaber(m.getPersonenart(),
m.getKtoiPersonenart()));
ls.setAnrede(getKontoinhaber(m.getAnrede(), m.getKtoiAnrede()));
@@ -155,11 +189,10 @@
ls.setStaat(getKontoinhaber(m.getStaat(), m.getKtoiStaat()));
ls.setEmail(getKontoinhaber(m.getEmail(), m.getKtoiEmail()));
if (!ls.getName().equals(m.getName())
- || !ls.getVorname().equals(m.getVorname()))
- {
+ || !ls.getVorname().equals(m.getVorname())) {
ls.setPersonenart(m.getPersonenart());
}
- }
+
ls.setBetrag(za.getBetrag().doubleValue());
ls.setBIC(za.getBic());
ls.setIBAN(za.getIban());
@@ -169,30 +202,6 @@
ls.store();
}
- // Gegenbuchung für das Mitgliedskonto schreiben
- writeMitgliedskonto(null, new Date(), "Gegenbuchung", lastschrift
- .getKontrollsumme().doubleValue() * -1, abrl, true, getKonto(), null);
-
- // if (param.abbuchungsausgabe ==
- // Abrechnungsausgabe.HIBISCUS_EINZELBUCHUNGEN
- // || param.abbuchungsausgabe == Abrechnungsausgabe.HIBISCUS_SAMMELBUCHUNG)
- // {
- // buchenHibiscus();
- // }
- // monitor.log(JVereinPlugin.getI18n().tr(
- // "Anzahl Abbuchungen/Lastschrift: {0}",
- // new String[] { dtaus.getAnzahlSaetze() + "" }));
- // monitor.log(JVereinPlugin.getI18n().tr(
- // "Gesamtsumme Abbuchung/Lastschrift: {0} EUR",
- // Einstellungen.DECIMALFORMAT.format(dtaus.getSummeBetraegeDecimal())));
- // dtaus.close();
- monitor.setPercentComplete(100);
- if (param.sepaprint)
- {
- ausdruckenSEPA(lastschrift, param.pdffile);
- }
- }
-
private String getKontoinhaber(String mitglied, String ktoi)
{
if (ktoi != null && ktoi.length() > 0)
@@ -379,7 +388,7 @@
zahler.setBic(m.getBic());
new IBAN(m.getIban()); // Prüfung der IBAN
zahler.setIban(m.getIban());
- zahler.setMandatid(m.getID());
+ zahler.setMandatid(m.getMandatID());
zahler.setMandatdatum(m.getMandatDatum());
zahler.setVerwendungszweck(param.verwendungszweck + " "
+ getVerwendungszweck2(m));
@@ -408,6 +417,7 @@
+ an);
}
zahler.setName(m.getKontoinhaber(1));
+ saveLastschrift(m, zahler, abrl);
lastschrift.add(zahler);
}
catch (Exception e)
@@ -456,7 +466,7 @@
new IBAN(m.getIban());
zahler.setBic(m.getBic());
zahler.setIban(m.getIban());
- zahler.setMandatid(m.getID());
+ zahler.setMandatid(m.getMandatID());
zahler.setMandatdatum(m.getMandatDatum());
zahler.setName(m.getKontoinhaber(1));
String verwendungszweck = z.getBuchungstext();
@@ -466,6 +476,7 @@
verwendungszweck += z.getBuchungstext2();
}
zahler.setVerwendungszweck(verwendungszweck);
+ saveLastschrift(m, zahler, abrl);
lastschrift.add(zahler);
}
catch (Exception e)
@@ -513,7 +524,7 @@
}
}
- private void abbuchenKursteilnehmer(Basislastschrift lastschrift)
+ private void abbuchenKursteilnehmer(Basislastschrift lastschrift, Abrechnungslauf abrl)
throws ApplicationException, IOException
{
DBIterator list = Einstellungen.getDBService().createList(
@@ -532,10 +543,11 @@
new IBAN(kt.getIban());
zahler.setBic(kt.getBic());
zahler.setIban(kt.getIban());
- zahler.setMandatid("K" + kt.getID());
+ zahler.setMandatid(kt.getMandatID());
zahler.setMandatdatum(kt.getMandatDatum());
zahler.setName(kt.getName());
zahler.setVerwendungszweck(kt.getVZweck1());
+ saveLastschrift(kt, zahler, abrl);
lastschrift.add(zahler);
kt.setAbbudatum();
kt.store();
Index: jverein/src/de/jost_net/JVerein/rmi/Einstellung.java
--- jverein/src/de/jost_net/JVerein/rmi/Einstellung.java Base (1.44)
+++ jverein/src/de/jost_net/JVerein/rmi/Einstellung.java Locally Modified (Based On 1.44)
@@ -403,4 +403,7 @@
public void setArbeitsstundenmodel(int arbeitsstundenmodel) throws RemoteException;
+ public boolean isMandatIdEditable() throws RemoteException;
+
+ public void setMandatIdEditable(boolean mandatIdEditMode) throws RemoteException;
}
Index: jverein/src/de/jost_net/JVerein/rmi/Kursteilnehmer.java
--- jverein/src/de/jost_net/JVerein/rmi/Kursteilnehmer.java Base (1.9)
+++ jverein/src/de/jost_net/JVerein/rmi/Kursteilnehmer.java Locally Modified (Based On 1.9)
@@ -64,6 +64,8 @@
public void setMandatDatum(Date mandatdatum) throws RemoteException;
+ public void setMandatID(String mandatID) throws RemoteException;
+
public double getBetrag() throws RemoteException;
public void setBetrag(double betrag) throws RemoteException;
Index: jverein/src/de/jost_net/JVerein/rmi/Mitglied.java
--- jverein/src/de/jost_net/JVerein/rmi/Mitglied.java Base (1.34)
+++ jverein/src/de/jost_net/JVerein/rmi/Mitglied.java Locally Modified (Based On 1.34)
@@ -72,6 +72,8 @@
public void setMandatDatum(Date mandatdatum) throws RemoteException;
+ public void setMandatID(String referenz) throws RemoteException;
+
public String getKtoiPersonenart() throws RemoteException;
public void setKtoiPersonenart(String ktoipersonenart) throws RemoteException;
Index: jverein/src/de/jost_net/JVerein/server/EinstellungImpl.java
--- jverein/src/de/jost_net/JVerein/server/EinstellungImpl.java Base (1.64)
+++ jverein/src/de/jost_net/JVerein/server/EinstellungImpl.java Locally Modified (Based On 1.64)
@@ -1311,4 +1311,16 @@
{
setAttribute("arbeitsmodel", arbeitsstundenmodel);
}
+
+ @Override
+ public boolean isMandatIdEditable() throws RemoteException
+ {
+ return (Boolean) getAttribute("mandatid_editable");
}
+
+ @Override
+ public void setMandatIdEditable(boolean mandatIdEditMode) throws RemoteException
+ {
+ setAttribute("mandatid_editable", mandatIdEditMode);
+ }
+}
Index: jverein/src/de/jost_net/JVerein/server/JVereinUpdateProvider.java
--- jverein/src/de/jost_net/JVerein/server/JVereinUpdateProvider.java Base (1.122)
+++ jverein/src/de/jost_net/JVerein/server/JVereinUpdateProvider.java Locally Modified (Based On 1.122)
@@ -1329,6 +1329,10 @@
{
update0330(conn);
}
+ if (cv < 331)
+ {
+ update0331(conn);
+ }
// TODO
}
@@ -7922,6 +7926,27 @@
330);
}
+ private void update0331(Connection conn) throws ApplicationException
+ {
+ Map statements = new HashMap();
+ // Update fuer H2
+
+
+ statements.put(DBSupportH2Impl.class.getName(),
+ "ALTER TABLE KURSTEILNEHMER ADD MANDATID VARCHAR(35) DEFAULT '' BEFORE MANDATDATUM;\n " +
+ "ALTER TABLE MITGLIED ADD MANDATID VARCHAR(35) DEFAULT '' BEFORE MANDATDATUM;\n" +
+ "ALTER TABLE EINSTELLUNG ADD COLUMN MANDATID_EDITABLE BOOLEAN DEFAULT false;\n");
+
+ // Update fuer MySQL
+ statements.put(DBSupportMySqlImpl.class.getName(),
+ "ALTER TABLE KURSTEILNEHMER ADD MANDATID VARCHAR(35) DEFAULT '' BEFORE MANDATDATUM;\n " +
+ "ALTER TABLE MITGLIED ADD MANDATID VARCHAR(35) DEFAULT '' BEFORE MANDATDATUM;\n" +
+ "ALTER TABLE EINSTELLUNG ADD COLUMN MANDATID_EDITABLE BOOLEAN DEFAULT false;\n");
+
+ execute(conn, statements, "Aufnahme von Mandatsreferenz in Kursteilnehmer und Mitglieder",
+ 331);
+ }
+
private String alterColumn(String table, String column, String type)
throws ApplicationException
{
Index: jverein/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java
--- jverein/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java Base (1.18)
+++ jverein/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java Locally Modified (Based On 1.18)
@@ -89,9 +89,9 @@
{
throw new ApplicationException("Bitte Verwendungszweck eingeben");
}
- if (getMandatDatum() == Einstellungen.NODATE)
+ if (getMandatDatum() == Einstellungen.NODATE || getMandatID() == null || getMandatID().isEmpty())
{
- throw new ApplicationException("Bitte Datum des Mandats eingeben");
+ throw new ApplicationException("Bitte Datum des Mandats und Mandatsreferenz eingeben");
}
if (getGeburtsdatum() == null)
{
@@ -295,10 +295,26 @@
@Override
public String getMandatID() throws RemoteException
{
+ String mandatID = (String) getAttribute("mandatid");
+ if (mandatID == null || mandatID.isEmpty()) {
+ if (getID() != null && (!getID().isEmpty())) {
return "K" + getID();
+ } else {
+ return "";
}
+ }
+ return mandatID;
+ }
@Override
+ public void setMandatID(String mandatID) throws RemoteException
+ {
+ if (!getMandatID().equals(mandatID)) {
+ setAttribute("mandatid", mandatID);
+ }
+ }
+
+ @Override
public Date getLetzteLastschrift() throws RemoteException
{
ResultSetExtractor rs = new ResultSetExtractor()
Index: jverein/src/de/jost_net/JVerein/server/MitgliedImpl.java
--- jverein/src/de/jost_net/JVerein/server/MitgliedImpl.java Base (1.91)
+++ jverein/src/de/jost_net/JVerein/server/MitgliedImpl.java Locally Modified (Based On 1.91)
@@ -181,7 +181,11 @@
{
throw new ApplicationException("Bitte BIC und IBAN eingeben");
}
+ if(getMandatDatum() == Einstellungen.NODATE)
+ {
+ throw new ApplicationException("Bitte Datum des Mandats eingeben");
}
+ }
// SEPAParam sepaparam = null;
// try
// {
@@ -576,10 +580,27 @@
@Override
public String getMandatID() throws RemoteException
{
+ String mandatsreferenz = (String) getAttribute("mandatid");
+ if (mandatsreferenz == null || mandatsreferenz.equals("")) {
+ if (Einstellungen.getEinstellung().getExterneMitgliedsnummer()
+ && getExterneMitgliedsnummer() != null
+ && getExterneMitgliedsnummer() != 0) {
+ return getExterneMitgliedsnummer().toString();
+ } else {
return getID();
}
+ } else {
+ return mandatsreferenz;
+ }
+ }
@Override
+ public void setMandatID(String mandatID) throws RemoteException
+ {
+ setAttribute("mandatid", mandatID);
+ }
+
+ @Override
public Date getLetzteLastschrift() throws RemoteException
{
ResultSetExtractor rs = new ResultSetExtractor()