diff --git a/.classpath b/.classpath
index db67d3d1f..dade34d9d 100644
--- a/.classpath
+++ b/.classpath
@@ -28,5 +28,10 @@
+
+
+
+
+
diff --git a/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java b/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java
index 83bcd7ce6..64ae2d8d7 100644
--- a/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java
+++ b/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java
@@ -27,6 +27,7 @@
import de.jost_net.JVerein.gui.input.GeschlechtInput;
import de.jost_net.JVerein.io.IAdresse;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
+import de.jost_net.JVerein.keys.Staat;
@RunWith(JUnit4.class)
public class AdressaufbereitungTest
@@ -221,6 +222,13 @@ public String getOrt() throws RemoteException
@Override
public String getStaat() throws RemoteException
+ {
+ return Staat.getStaat(getStaatCode());
+ }
+
+
+ @Override
+ public String getStaatCode() throws RemoteException
{
return staat;
}
diff --git a/lib/dom4j-2.1.4.jar b/lib/dom4j-2.1.4.jar
new file mode 100644
index 000000000..0769bed92
Binary files /dev/null and b/lib/dom4j-2.1.4.jar differ
diff --git a/lib/jakarta.activation-api-2.1.3.jar b/lib/jakarta.activation-api-2.1.3.jar
new file mode 100644
index 000000000..0d015d542
Binary files /dev/null and b/lib/jakarta.activation-api-2.1.3.jar differ
diff --git a/lib/mustang-2.15.2.jar b/lib/mustang-2.15.2.jar
new file mode 100644
index 000000000..ab40a1294
Binary files /dev/null and b/lib/mustang-2.15.2.jar differ
diff --git a/lib/xmpbox-3.0.3.jar b/lib/xmpbox-3.0.3.jar
new file mode 100644
index 000000000..26e3029e4
Binary files /dev/null and b/lib/xmpbox-3.0.3.jar differ
diff --git a/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java b/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java
index e145db92d..719d27b2d 100644
--- a/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java
+++ b/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java
@@ -336,7 +336,7 @@ public void handleAction(Object context) throws ApplicationException
map.put(RechnungVar.SUMME_OFFEN.getName(), 700);
map.put(RechnungVar.QRCODE_INTRO.getName(),
Einstellungen.getEinstellung().getQRCodeIntro());
- FormularAufbereitung fab = new FormularAufbereitung(file);
+ FormularAufbereitung fab = new FormularAufbereitung(file, false);
fab.writeForm(formular, map);
fab.showFormular();
}
diff --git a/src/de/jost_net/JVerein/gui/action/FreiesFormularAction.java b/src/de/jost_net/JVerein/gui/action/FreiesFormularAction.java
index 1798c9808..111ad9891 100644
--- a/src/de/jost_net/JVerein/gui/action/FreiesFormularAction.java
+++ b/src/de/jost_net/JVerein/gui/action/FreiesFormularAction.java
@@ -112,7 +112,7 @@ private void generiereFreiesFormular(Mitglied[] m) throws Exception
final File file = new File(s);
settings.setAttribute("lastdir", file.getParent());
- FormularAufbereitung fa = new FormularAufbereitung(file);
+ FormularAufbereitung fa = new FormularAufbereitung(file, false);
for (Mitglied mi : m)
{
Formular fo = (Formular) Einstellungen.getDBService().createObject(
diff --git a/src/de/jost_net/JVerein/gui/action/KursteilnehmerWirdMitgliedAction.java b/src/de/jost_net/JVerein/gui/action/KursteilnehmerWirdMitgliedAction.java
index cd60d69c3..ba870589c 100644
--- a/src/de/jost_net/JVerein/gui/action/KursteilnehmerWirdMitgliedAction.java
+++ b/src/de/jost_net/JVerein/gui/action/KursteilnehmerWirdMitgliedAction.java
@@ -51,7 +51,7 @@ public void handleAction(Object context) throws ApplicationException
m.setOrt(k.getOrt());
m.setPersonenart(PersonenartInput.NATUERLICHE_PERSON.substring(0, 1));
m.setPlz(k.getPlz());
- m.setStaat(k.getStaat());
+ m.setStaat(k.getStaatCode());
m.setStrasse(k.getStrasse());
m.setTitel(k.getTitel());
m.setVorname(k.getVorname());
diff --git a/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungAction.java b/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungAction.java
index 7c93abbd4..8d5aa8900 100644
--- a/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungAction.java
+++ b/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungAction.java
@@ -156,10 +156,7 @@ private void adressaufbereitung(Mitglied m, Spendenbescheinigung spb)
}
adresse.add(m.getStrasse());
adresse.add(m.getPlz() + " " + m.getOrt());
- if (m.getStaat() != null && m.getStaat().length() > 0)
- {
- adresse.add(m.getStaat());
- }
+ adresse.add(m.getStaat());
switch (adresse.size())
{
case 7:
diff --git a/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java b/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java
index 91f44a861..d64a88133 100644
--- a/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java
+++ b/src/de/jost_net/JVerein/gui/action/SpendenbescheinigungPrintAction.java
@@ -251,7 +251,7 @@ else if (context instanceof Spendenbescheinigung[])
map = new AllgemeineMap().getMap(map);
if(spb.getMitglied() != null)
map = new MitgliedMap().getMap(spb.getMitglied(), map);
- FormularAufbereitung fa = new FormularAufbereitung(file);
+ FormularAufbereitung fa = new FormularAufbereitung(file, false);
fa.writeForm(fo, map);
if (adressblatt != Adressblatt.OHNE_ADRESSBLATT)
{
diff --git a/src/de/jost_net/JVerein/gui/control/AbrechnungSEPAControl.java b/src/de/jost_net/JVerein/gui/control/AbrechnungSEPAControl.java
index 12854e90e..c8126de00 100644
--- a/src/de/jost_net/JVerein/gui/control/AbrechnungSEPAControl.java
+++ b/src/de/jost_net/JVerein/gui/control/AbrechnungSEPAControl.java
@@ -49,7 +49,6 @@
import de.willuhn.jameica.gui.parts.Button;
import de.willuhn.jameica.system.Application;
import de.willuhn.jameica.system.BackgroundTask;
-import de.willuhn.jameica.system.OperationCanceledException;
import de.willuhn.jameica.system.Settings;
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;
diff --git a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
index 093df8e36..784466ae1 100644
--- a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
+++ b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
@@ -39,6 +39,7 @@
import de.jost_net.JVerein.keys.AbstractInputAuswahl;
import de.jost_net.JVerein.keys.BuchungsartSort;
import de.jost_net.JVerein.keys.SepaMandatIdSource;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.keys.Zahlungsrhythmus;
import de.jost_net.JVerein.keys.Zahlungsweg;
import de.jost_net.JVerein.rmi.Einstellung;
@@ -342,6 +343,10 @@ public class EinstellungControl extends AbstractControl
*/
private Wallet wallet = null;
+ private TextInput ustid;
+
+ private SelectInput staat;
+
public EinstellungControl(AbstractView view)
{
super(view);
@@ -408,6 +413,27 @@ public Input getOrt() throws RemoteException
return ort;
}
+ public SelectInput getStaat() throws RemoteException
+ {
+ if (staat != null)
+ {
+ return staat;
+ }
+ staat = new SelectInput(Staat.values(),
+ Staat.getByKey(Einstellungen.getEinstellung().getStaat()));
+ return staat;
+ }
+
+ public Input getUstID() throws RemoteException
+ {
+ if (ustid != null)
+ {
+ return ustid;
+ }
+ ustid = new TextInput(Einstellungen.getEinstellung().getUStID(), 50);
+ return ustid;
+ }
+
public TextInput getFinanzamt() throws RemoteException
{
if (finanzamt != null)
@@ -2056,6 +2082,8 @@ public void handleStoreAllgemein()
else
e.setIban(ib.toUpperCase().replace(" ",""));
e.setGlaeubigerID((String) getGlaeubigerID().getValue());
+ e.setStaat(((Staat)getStaat().getValue()).getKey());
+ e.setUStID((String) getUstID().getValue());
e.store();
Einstellungen.setEinstellung(e);
diff --git a/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java b/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java
index 3b9d85ecb..c720ccc37 100644
--- a/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java
+++ b/src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java
@@ -39,6 +39,7 @@
import de.jost_net.JVerein.gui.menu.KursteilnehmerMenu;
import de.jost_net.JVerein.io.FileViewer;
import de.jost_net.JVerein.io.Reporter;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.rmi.Kursteilnehmer;
import de.jost_net.JVerein.util.Dateiname;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
@@ -52,6 +53,7 @@
import de.willuhn.jameica.gui.input.DateInput;
import de.willuhn.jameica.gui.input.DecimalInput;
import de.willuhn.jameica.gui.input.Input;
+import de.willuhn.jameica.gui.input.SelectInput;
import de.willuhn.jameica.gui.input.TextInput;
import de.willuhn.jameica.gui.parts.Button;
import de.willuhn.jameica.gui.parts.TablePart;
@@ -85,7 +87,7 @@ public class KursteilnehmerControl extends FilterControl
private TextInput ort;
- private TextInput staat;
+ private SelectInput staat;
private EmailInput email;
@@ -246,13 +248,22 @@ public Input getOrt() throws RemoteException
return ort;
}
- public TextInput getStaat() throws RemoteException
+ public SelectInput getStaat() throws RemoteException
{
if (staat != null)
{
return staat;
}
- staat = new TextInput(getKursteilnehmer().getStaat(), 50);
+ if (getKursteilnehmer().getStaat() != null
+ && getKursteilnehmer().getStaat().length() > 0
+ && Staat.getByKey(getKursteilnehmer().getStaat()) == null)
+ {
+ GUI.getStatusBar()
+ .setErrorText("Konnte Staat \"" + getKursteilnehmer().getStaat()
+ + "\" nicht finden, bitte anpassen.");
+ }
+ staat = new SelectInput(Staat.values(), Staat.getByKey(getKursteilnehmer().getStaat()));
+ staat.setPleaseChoose("Nicht gesetzt");
staat.setName("Staat");
return staat;
}
@@ -455,7 +466,7 @@ public void handleStore()
k.setAdressierungszuatz((String) getAdressierungszusatz().getValue());
k.setPlz((String) getPLZ().getValue());
k.setOrt((String) getOrt().getValue());
- k.setStaat((String) getStaat().getValue());
+ k.setStaat(((Staat) getStaat().getValue()).getKey());
k.setEmail((String) getEmail().getValue());
k.setVZweck1((String) getVZweck1().getValue());
k.setMandatDatum((Date) getMandatDatum().getValue());
diff --git a/src/de/jost_net/JVerein/gui/control/MitgliedControl.java b/src/de/jost_net/JVerein/gui/control/MitgliedControl.java
index a65932d4c..2a4a5bd33 100644
--- a/src/de/jost_net/JVerein/gui/control/MitgliedControl.java
+++ b/src/de/jost_net/JVerein/gui/control/MitgliedControl.java
@@ -80,6 +80,7 @@
import de.jost_net.JVerein.io.MitgliederStatistik;
import de.jost_net.JVerein.keys.ArtBeitragsart;
import de.jost_net.JVerein.keys.Datentyp;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.keys.Zahlungsrhythmus;
import de.jost_net.JVerein.keys.Zahlungstermin;
import de.jost_net.JVerein.keys.Zahlungsweg;
@@ -172,7 +173,9 @@ public class MitgliedControl extends FilterControl
private Input ort;
- private Input staat;
+ private SelectNoScrollInput staat;
+
+ private TextInput leitwegID;
private DateInput geburtsdatum = null;
@@ -218,7 +221,7 @@ public class MitgliedControl extends FilterControl
private TextInput ktoiort;
- private TextInput ktoistaat;
+ private SelectNoScrollInput ktoistaat;
private EmailInput ktoiemail;
@@ -513,16 +516,36 @@ public Input getOrt() throws RemoteException
return ort;
}
- public Input getStaat() throws RemoteException
+ public SelectNoScrollInput getStaat() throws RemoteException
{
if (staat != null)
{
return staat;
}
- staat = new TextInput(getMitglied().getStaat(), 50);
+ if (getMitglied().getStaat() != null
+ && getMitglied().getStaat().length() > 0
+ && Staat.getByKey(getMitglied().getStaatCode()) == null)
+ {
+ GUI.getStatusBar().setErrorText("Konnte Staat \""
+ + getMitglied().getStaat() + "\" nicht finden, bitte anpassen.");
+ }
+ staat = new SelectNoScrollInput(Staat.values(),
+ Staat.getByKey(getMitglied().getStaatCode()));
+ staat.setPleaseChoose("Nicht gesetzt");
staat.setName("Staat");
return staat;
}
+
+ public TextInput getLeitwegID() throws RemoteException
+ {
+ if (leitwegID != null)
+ {
+ return leitwegID;
+ }
+ leitwegID = new TextInput(getMitglied().getLeitwegID());
+ leitwegID.setName("LeitwegID");
+ return leitwegID;
+ }
public DateInput getGeburtsdatum() throws RemoteException
{
@@ -963,13 +986,22 @@ public TextInput getKtoiOrt() throws RemoteException
return ktoiort;
}
- public TextInput getKtoiStaat() throws RemoteException
+ public SelectNoScrollInput getKtoiStaat() throws RemoteException
{
if (ktoistaat != null)
{
return ktoistaat;
}
- ktoistaat = new TextInput(getMitglied().getKtoiStaat(), 50);
+ if (getMitglied().getKtoiStaat() != null
+ && getMitglied().getKtoiStaat().length() > 0
+ && Staat.getByKey(getMitglied().getKtoiStaatCode()) == null)
+ {
+ GUI.getStatusBar().setErrorText("Konnte Kontoinhaber Staat \""
+ + getMitglied().getKtoiStaat() + "\" nicht finden, bitte anpassen.");
+ }
+ ktoistaat = new SelectNoScrollInput(Staat.values(),
+ Staat.getByKey(getMitglied().getKtoiStaatCode()));
+ ktoistaat.setPleaseChoose("Nicht gesetzt");
ktoistaat.setName("Staat");
return ktoistaat;
}
@@ -2362,6 +2394,10 @@ public void handleStore()
m.setGeschlecht((String) getGeschlecht().getValue());
}
+ else
+ {
+ m.setLeitwegID((String) getLeitwegID().getValue());
+ }
m.setKtoiAdressierungszusatz(
(String) getKtoiAdressierungszusatz().getValue());
m.setKtoiAnrede((String) getKtoiAnrede().getValue());
@@ -2371,7 +2407,8 @@ public void handleStore()
String persa = (String) getKtoiPersonenart().getValue();
m.setKtoiPersonenart(persa.substring(0, 1));
m.setKtoiPlz((String) getKtoiPlz().getValue());
- m.setKtoiStaat((String) getKtoiStaat().getValue());
+ m.setKtoiStaat(getKtoiStaat().getValue() == null ? ""
+ : ((Staat) getKtoiStaat().getValue()).getKey());
m.setKtoiStrasse((String) getKtoiStrasse().getValue());
m.setKtoiTitel((String) getKtoiTitel().getValue());
m.setKtoiVorname((String) getKtoiVorname().getValue());
@@ -2381,7 +2418,8 @@ public void handleStore()
m.setName((String) getName(false).getValue());
m.setOrt((String) getOrt().getValue());
m.setPlz((String) getPlz().getValue());
- m.setStaat((String) getStaat().getValue());
+ m.setStaat(getStaat().getValue() == null ? ""
+ : ((Staat) getStaat().getValue()).getKey());
m.setStrasse((String) getStrasse().getValue());
m.setTelefondienstlich((String) getTelefondienstlich().getValue());
m.setTelefonprivat((String) getTelefonprivat().getValue());
diff --git a/src/de/jost_net/JVerein/gui/control/PreNotificationControl.java b/src/de/jost_net/JVerein/gui/control/PreNotificationControl.java
index f89533c7b..b4ce62f4a 100644
--- a/src/de/jost_net/JVerein/gui/control/PreNotificationControl.java
+++ b/src/de/jost_net/JVerein/gui/control/PreNotificationControl.java
@@ -377,7 +377,7 @@ else if (currentObject instanceof Lastschrift[])
.createObject(Formular.class, form.getID());
if (!einzelnePdfs)
{
- fa = new FormularAufbereitung(file);
+ fa = new FormularAufbereitung(file, false);
}
int dateinummer = 0;
@@ -404,7 +404,7 @@ else if (currentObject instanceof Lastschrift[])
sb.append(postfix);
final File fx = new File(sb.toString());
- fa = new FormularAufbereitung(fx);
+ fa = new FormularAufbereitung(fx, false);
}
aufbereitenFormular(ls, fo);
diff --git a/src/de/jost_net/JVerein/gui/control/RechnungControl.java b/src/de/jost_net/JVerein/gui/control/RechnungControl.java
index 48391d282..8f08dc8d3 100644
--- a/src/de/jost_net/JVerein/gui/control/RechnungControl.java
+++ b/src/de/jost_net/JVerein/gui/control/RechnungControl.java
@@ -121,6 +121,8 @@ public class RechnungControl extends DruckMailControl
private TextInput personenart;
+ private TextInput leitwegID;
+
public enum TYP
{
RECHNUNG, MAHNUNG
@@ -398,7 +400,8 @@ public void handleAction(Object context) throws ApplicationException
rechnung.setAdressierungszusatz(mitglied.getAdressierungszusatz());
rechnung.setPlz(mitglied.getPlz());
rechnung.setOrt(mitglied.getOrt());
- rechnung.setStaat(mitglied.getStaat());
+ rechnung.setStaat(mitglied.getStaatCode());
+ rechnung.setLeitwegID(mitglied.getLeitwegID());
rechnung.setPersonenart(mitglied.getPersonenart());
if(!mitglied.getMandatDatum().equals(Einstellungen.NODATE))
rechnung.setMandatDatum(mitglied.getMandatDatum());
@@ -763,6 +766,18 @@ public IBANInput getIban() throws RemoteException
return iban;
}
+ public TextInput getLeitwegID() throws RemoteException
+ {
+ if (leitwegID != null)
+ {
+ return leitwegID;
+ }
+ leitwegID = new TextInput(getRechnung().getLeitwegID());
+ leitwegID.setName("LeitwegID");
+ leitwegID.disable();
+ return leitwegID;
+ }
+
public Part getBuchungenList() throws RemoteException
{
if (buchungList != null)
diff --git a/src/de/jost_net/JVerein/gui/view/AbstractMitgliedDetailView.java b/src/de/jost_net/JVerein/gui/view/AbstractMitgliedDetailView.java
index 31d944854..e533c21da 100644
--- a/src/de/jost_net/JVerein/gui/view/AbstractMitgliedDetailView.java
+++ b/src/de/jost_net/JVerein/gui/view/AbstractMitgliedDetailView.java
@@ -639,6 +639,10 @@ private void zeicheStammdaten(Composite parentComposite, int spaltenanzahl)
cols.addInput(control.getGeburtsdatum());
cols.addInput(control.getGeschlecht());
}
+ else
+ {
+ cols.addInput(control.getLeitwegID());
+ }
if (Einstellungen.getEinstellung().getKommunikationsdaten())
{
diff --git a/src/de/jost_net/JVerein/gui/view/EinstellungenAllgemeinView.java b/src/de/jost_net/JVerein/gui/view/EinstellungenAllgemeinView.java
index 25093cf3c..ca33a809c 100644
--- a/src/de/jost_net/JVerein/gui/view/EinstellungenAllgemeinView.java
+++ b/src/de/jost_net/JVerein/gui/view/EinstellungenAllgemeinView.java
@@ -42,11 +42,13 @@ public void bind() throws Exception
cont.addLabelPair("Straße", control.getStrasse());
cont.addLabelPair("PLZ", control.getPlz());
cont.addLabelPair("Ort", control.getOrt());
- TextInput bic = control.getBic(); // vor IBAN initialisieren, das IBAN eine
+ cont.addLabelPair("Staat", control.getStaat());
+ TextInput bic = control.getBic(); // vor IBAN initialisieren, da IBAN eine
// Referenz auf bic benötigt!
cont.addLabelPair("IBAN", control.getIban());
cont.addLabelPair("BIC", bic);
cont.addLabelPair("Gläubiger-ID", control.getGlaeubigerID());
+ cont.addLabelPair("USt-ID", control.getUstID());
ButtonArea buttons = new ButtonArea();
buttons.addButton("Hilfe", new DokumentationAction(),
diff --git a/src/de/jost_net/JVerein/gui/view/RechnungView.java b/src/de/jost_net/JVerein/gui/view/RechnungView.java
index 33274a95a..b76abf469 100644
--- a/src/de/jost_net/JVerein/gui/view/RechnungView.java
+++ b/src/de/jost_net/JVerein/gui/view/RechnungView.java
@@ -55,6 +55,7 @@ public void bind() throws Exception
middle.addInput(control.getVorname());
middle.addInput(control.getStrasse());
middle.addInput(control.getAdressierungszusatz());
+ middle.addInput(control.getLeitwegID());
SimpleContainer rigth = new SimpleContainer(cl.getComposite());
rigth.addInput(control.getPlz());
diff --git a/src/de/jost_net/JVerein/io/AbrechnungSEPA.java b/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
index a78f14db4..a1f62b642 100644
--- a/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
+++ b/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
@@ -193,7 +193,7 @@ public AbrechnungSEPA(AbrechnungSEPAParam param, ProgressMonitor monitor)
ls.setAdressierungszusatz(k.getAdressierungszusatz());
ls.setPlz(k.getPlz());
ls.setOrt(k.getOrt());
- ls.setStaat(k.getStaat());
+ ls.setStaat(k.getStaatCode());
ls.setEmail(k.getEmail());
if (k.getGeschlecht() != null)
{
@@ -215,7 +215,7 @@ public AbrechnungSEPA(AbrechnungSEPAParam param, ProgressMonitor monitor)
ls.setAdressierungszusatz(m.getAdressierungszusatz());
ls.setPlz(m.getPlz());
ls.setOrt(m.getOrt());
- ls.setStaat(m.getStaat());
+ ls.setStaat(m.getStaatCode());
ls.setEmail(m.getEmail());
ls.setGeschlecht(m.getGeschlecht());
}
@@ -230,7 +230,7 @@ public AbrechnungSEPA(AbrechnungSEPAParam param, ProgressMonitor monitor)
ls.setAdressierungszusatz(m.getKtoiAdressierungszusatz());
ls.setPlz(m.getKtoiPlz());
ls.setOrt(m.getKtoiOrt());
- ls.setStaat(m.getKtoiStaat());
+ ls.setStaat(m.getKtoiStaatCode());
ls.setEmail(m.getKtoiEmail());
ls.setGeschlecht(m.getKtoiGeschlecht());
}
diff --git a/src/de/jost_net/JVerein/io/FormularAufbereitung.java b/src/de/jost_net/JVerein/io/FormularAufbereitung.java
index 06513e787..8583fbf6e 100644
--- a/src/de/jost_net/JVerein/io/FormularAufbereitung.java
+++ b/src/de/jost_net/JVerein/io/FormularAufbereitung.java
@@ -23,13 +23,25 @@
import java.io.IOException;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.rmi.RemoteException;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
+import org.mustangproject.BankDetails;
+import org.mustangproject.Contact;
+import org.mustangproject.DirectDebit;
+import org.mustangproject.Invoice;
+import org.mustangproject.Item;
+import org.mustangproject.Product;
+import org.mustangproject.TradeParty;
+import org.mustangproject.ZUGFeRD.IZUGFeRDExporter;
+import org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromPDFA;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
@@ -42,6 +54,10 @@
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
+import com.itextpdf.text.pdf.ICC_Profile;
+import com.itextpdf.text.pdf.PdfAConformanceException;
+import com.itextpdf.text.pdf.PdfAConformanceLevel;
+import com.itextpdf.text.pdf.PdfAWriter;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
@@ -58,6 +74,8 @@
import de.jost_net.JVerein.rmi.Formular;
import de.jost_net.JVerein.rmi.Formularfeld;
import de.jost_net.JVerein.rmi.Mitglied;
+import de.jost_net.JVerein.rmi.Mitgliedskonto;
+import de.jost_net.JVerein.rmi.Rechnung;
import de.jost_net.JVerein.rmi.Spendenbescheinigung;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
import de.jost_net.JVerein.util.StringTool;
@@ -104,7 +122,7 @@ public class FormularAufbereitung
* Die Datei, in die geschrieben werden soll
* @throws RemoteException
*/
- public FormularAufbereitung(final File f) throws RemoteException
+ public FormularAufbereitung(final File f, boolean pdfa) throws RemoteException
{
this.f = f;
try
@@ -112,11 +130,30 @@ public FormularAufbereitung(final File f) throws RemoteException
doc = new Document();
fos = new FileOutputStream(f);
- writer = PdfWriter.getInstance(doc, fos);
- writer.setEncryption(null, null,
- PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_SCREENREADERS, PdfWriter.ENCRYPTION_AES_256);
- doc.open();
+ if (pdfa)
+ {
+ writer = PdfAWriter.getInstance(doc, fos,
+ PdfAConformanceLevel.PDF_A_3B);
+
+ writer.createXmpMetadata();
+ doc.open();
+
+ ICC_Profile icc = ICC_Profile
+ .getInstance(Class.forName("org.mustangproject.Invoice")
+ .getClassLoader().getResourceAsStream("sRGB.icc"));
+ writer.setOutputIntents("Custom", "", "http://www.color.org",
+ "sRGB IEC61966-2.1", icc);
+ writer.setCompressionLevel(9);
+ }
+ else
+ {
+ writer = PdfWriter.getInstance(doc, fos);
+ writer.setEncryption(null, null,
+ PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_SCREENREADERS,
+ PdfWriter.ENCRYPTION_AES_256);
+ doc.open();
+ }
}
catch (IOException e)
{
@@ -126,6 +163,10 @@ public FormularAufbereitung(final File f) throws RemoteException
{
throw new RemoteException("Fehler", e);
}
+ catch (ClassNotFoundException e)
+ {
+ throw new RemoteException("Fehler", e);
+ }
}
public void writeForm(Formular formular, Map map)
@@ -353,7 +394,7 @@ private Image getPaymentQRCode(Map fieldsMap) throws RemoteException
*
* @throws IOException
*/
- public void closeFormular() throws IOException
+ public void closeFormular() throws IOException, PdfAConformanceException
{
doc.close();
writer.close();
@@ -589,5 +630,126 @@ public void printAnschreiben(Spendenbescheinigung spb, String text)
throw new RemoteException("Fehler", e);
}
}
-
+
+ @SuppressWarnings("resource")
+ public void addZUGFeRD(Rechnung re, boolean mahnung) throws IOException
+ {
+ ArrayList mklist = re.getMitgliedskontoList();
+ if (mklist.size() == 0)
+ return;
+
+ String sourcePDF = f.getAbsolutePath();
+ Einstellung e = Einstellungen.getEinstellung();
+ IZUGFeRDExporter ze = new ZUGFeRDExporterFromPDFA().ignorePDFAErrors()
+ .load(sourcePDF).setProducer("JVerein")
+ .setCreator(System.getProperty("user.name"));
+
+ Invoice invoice = new Invoice()
+ // Fälligkeitsdatum
+ .setDueDate(mklist.get(mklist.size() - 1).getDatum())
+ // Lieferdatum
+ .setDeliveryDate(mklist.get(mklist.size() - 1).getDatum())
+ // Rechnungsdatum
+ .setIssueDate(re.getDatum())
+ // Rechnungsnummer
+ .setNumber(re.getID());
+
+ // Rechnungssteller
+ TradeParty sender = new TradeParty(e.getName(),
+ StringTool.toNotNullString(e.getStrasse()),
+ StringTool.toNotNullString(e.getPlz()),
+ StringTool.toNotNullString(e.getOrt()), e.getStaat())
+ .addTaxID(e.getSteuernummer());
+ if (e.getUStID().length() > 0)
+ sender.addVATID(e.getUStID());
+
+ // TODO Zahlungsweg aus Rechnung lesen sobald implementiert
+ if (re.getMandatDatum() != null
+ && !re.getMandatDatum().equals(Einstellungen.NODATE))
+ {
+ // Mandat
+ sender.addDebitDetails(new DirectDebit(re.getIBAN(), re.getMandatID()));
+ // Gläubiger identifikationsnummer
+ invoice.setCreditorReferenceID(e.getGlaeubigerID());
+ }
+ else
+ {
+ sender.addBankDetails(
+ new BankDetails(StringTool.toNotNullString(e.getIban()),
+ StringTool.toNotNullString(e.getBic())));
+ }
+ invoice.setSender(sender);
+
+ if (mahnung)
+ {
+ double bezahlt = 0;
+ for (Mitgliedskonto mk : re.getMitgliedskontoList())
+ {
+ bezahlt += mk.getIstSumme();
+ }
+ // Bereits gezahlt
+ invoice.setTotalPrepaidAmount(new BigDecimal(bezahlt));
+ }
+
+ String id = re.getMitglied().getID();
+ if (Einstellungen.getEinstellung().getExterneMitgliedsnummer())
+ id = re.getMitglied().getExterneMitgliedsnummer();
+
+ // Rechnungsempfänger
+ invoice.setRecipient(new TradeParty(
+ StringTool.toNotNullString(re.getVorname()) + " "
+ + StringTool.toNotNullString(re.getName()),
+ StringTool.toNotNullString(re.getStrasse()),
+ StringTool.toNotNullString(re.getPlz()),
+ StringTool.toNotNullString(re.getOrt()),
+ re.getStaatCode() == null || re.getStaatCode().length() == 0
+ ? e.getStaat()
+ : re.getStaatCode())
+ .setID(id)
+ .setContact(new Contact(
+ StringTool.toNotNullString(re.getVorname()) + " "
+ + StringTool.toNotNullString(re.getName()),
+ re.getMitglied().getTelefonprivat(),
+ re.getMitglied().getEmail()))
+ .setAdditionalAddress(
+ StringTool.toNotNullString(re.getAdressierungszusatz())));
+
+ // LeitwegID
+ if (re.getLeitwegID() != null && re.getLeitwegID().length() > 0)
+ {
+ invoice.setReferenceNumber(re.getLeitwegID());
+ }
+
+ // Sollbuchungen
+ for (Mitgliedskonto mk : re.getMitgliedskontoList())
+ {
+ Double betrag = mk.getNettobetrag();
+ if (betrag == null || betrag == 0)
+ {
+ betrag = mk.getBetrag();
+ }
+ if (mk.getBetrag() < 0)
+ {
+ invoice.addItem(new Item(
+ new Product(mk.getZweck1(), "", "LS",
+ new BigDecimal(mk.getSteuersatz()).setScale(2,
+ RoundingMode.HALF_DOWN)),
+ new BigDecimal(betrag * -1).setScale(2, RoundingMode.HALF_DOWN),
+ new BigDecimal(-1.0)));
+ }
+ else
+ {
+ invoice.addItem(new Item(new Product(mk.getZweck1(), "", "LS", // LS =
+ // pauschal
+ new BigDecimal(mk.getSteuersatz()).setScale(2,
+ RoundingMode.HALF_DOWN)),
+ new BigDecimal(betrag).setScale(2, RoundingMode.HALF_DOWN),
+ new BigDecimal(1.0)));
+ }
+ }
+ ze.setTransaction(invoice);
+ ze.export(f.getAbsolutePath());
+ ze.close();
+ }
+
}
diff --git a/src/de/jost_net/JVerein/io/FreiesFormularAusgabe.java b/src/de/jost_net/JVerein/io/FreiesFormularAusgabe.java
index fb4ff5721..809349598 100644
--- a/src/de/jost_net/JVerein/io/FreiesFormularAusgabe.java
+++ b/src/de/jost_net/JVerein/io/FreiesFormularAusgabe.java
@@ -55,7 +55,7 @@ public FreiesFormularAusgabe(FreieFormulareControl control) throws IOException
{
case DRUCK:
file = getDateiAuswahl("pdf", formular.getBezeichnung());
- formularaufbereitung = new FormularAufbereitung(file);
+ formularaufbereitung = new FormularAufbereitung(file, false);
break;
case MAIL:
file = getDateiAuswahl("zip", formular.getBezeichnung());
@@ -94,7 +94,7 @@ public void aufbereitung(Formular formular, ArrayList mitglieder)
continue;
}
File f = File.createTempFile(getDateiname(m), ".pdf");
- formularaufbereitung = new FormularAufbereitung(f);
+ formularaufbereitung = new FormularAufbereitung(f, false);
aufbereitenFormular(m, formularaufbereitung, formular);
formularaufbereitung.closeFormular();
zos.putNextEntry(new ZipEntry(getDateiname(m) + ".pdf"));
diff --git a/src/de/jost_net/JVerein/io/IAdresse.java b/src/de/jost_net/JVerein/io/IAdresse.java
index 32af7d521..2864a032c 100644
--- a/src/de/jost_net/JVerein/io/IAdresse.java
+++ b/src/de/jost_net/JVerein/io/IAdresse.java
@@ -45,4 +45,6 @@ public interface IAdresse
public String getStaat() throws RemoteException;
public String getGeschlecht() throws RemoteException;
+
+ public String getStaatCode() throws RemoteException;
}
diff --git a/src/de/jost_net/JVerein/io/Migration.java b/src/de/jost_net/JVerein/io/Migration.java
index 0c0230dd0..711dceb9c 100755
--- a/src/de/jost_net/JVerein/io/Migration.java
+++ b/src/de/jost_net/JVerein/io/Migration.java
@@ -33,6 +33,7 @@
import de.jost_net.JVerein.gui.input.GeschlechtInput;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
import de.jost_net.JVerein.keys.Datentyp;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.keys.Zahlungsweg;
import de.jost_net.JVerein.rmi.Arbeitseinsatz;
import de.jost_net.JVerein.rmi.Beitragsgruppe;
@@ -750,7 +751,11 @@ else if (zahlart.equalsIgnoreCase("u")
getResultFrom(results, InternalColumns.KTOIADRESSIERUNGSZUSATZ));
m.setKtoiPlz(getResultFrom(results, InternalColumns.KTOIPLZ));
m.setKtoiOrt(getResultFrom(results, InternalColumns.KTOIORT));
- m.setKtoiStaat(getResultFrom(results, InternalColumns.KTOISTAAT));
+ String staat = getResultFrom(results, InternalColumns.KTOISTAAT);
+ if (staat != null && staat.length() != 0)
+ {
+ m.setStaat(getStaat(staat));
+ }
m.setKtoiEmail(getResultFrom(results, InternalColumns.KTOIEMAIL));
Integer bg = beitragsGruppen
.get(getResultFrom(results, InternalColumns.BEITRAGSART));
@@ -861,8 +866,11 @@ else if (personenArt.matches("^(n|N).*"))
m.setHandy(getResultFrom(results, InternalColumns.TELEMOBIL));
m.setAdressierungszusatz(getResultFrom(results, InternalColumns.ADRZUSATZ));
- m.setStaat(getResultFrom(results, InternalColumns.STAAT)); // Default was
- // null warum?
+ staat = getResultFrom(results, InternalColumns.STAAT);
+ if (staat != null && staat.length() != 0)
+ {
+ m.setStaat(getStaat(staat));
+ }
String zahlungsrhythmus = getResultFrom(results, InternalColumns.ZAHLRYTHM);
if (zahlungsrhythmus.length() > 0)
@@ -1175,4 +1183,19 @@ private void loescheBestand()
}
}
+ String getStaat(String staat) throws ApplicationException
+ {
+ if (Staat.getByKey(staat.toUpperCase()) != null)
+ {
+ return staat.toUpperCase();
+ }
+ else if (Staat.getByText(staat.toUpperCase()) != null)
+ {
+ return Staat.getByText(staat.toUpperCase()).getKey();
+ }
+ else
+ {
+ throw new ApplicationException("Staat nicht erkannt: " + staat);
+ }
+ }
}
diff --git a/src/de/jost_net/JVerein/io/MitgliederImport.java b/src/de/jost_net/JVerein/io/MitgliederImport.java
index 407ef7d62..5d9fff1b7 100644
--- a/src/de/jost_net/JVerein/io/MitgliederImport.java
+++ b/src/de/jost_net/JVerein/io/MitgliederImport.java
@@ -17,6 +17,7 @@
import de.jost_net.JVerein.keys.ArtBeitragsart;
import de.jost_net.JVerein.keys.Beitragsmodel;
import de.jost_net.JVerein.keys.Datentyp;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.keys.Zahlungsrhythmus;
import de.jost_net.JVerein.keys.Zahlungstermin;
import de.jost_net.JVerein.keys.Zahlungsweg;
@@ -695,7 +696,18 @@ else if (Einstellungen.getEinstellung().getGeburtsdatumPflicht()
String ktoistaat = results.getString("ktoistaat");
if (ktoistaat != null && ktoistaat.length() != 0)
{
- m.setKtoiStaat(ktoistaat);
+ if(Staat.getByText(ktoistaat.toUpperCase()) != null)
+ {
+ m.setKtoiStaat(Staat.getByText(ktoistaat.toUpperCase()).getKey());
+ }
+ else if(Staat.getByKey(ktoistaat.toUpperCase()) != null)
+ {
+ m.setKtoiStaat(ktoistaat.toUpperCase());
+ }
+ else
+ {
+ throw new ApplicationException("Zeile " + anz + ": Kontoinhaber Staat nicht erkannt: " + ktoistaat);
+ }
}
}
catch (SQLException e)
@@ -828,7 +840,18 @@ else if (Einstellungen.getEinstellung().getGeburtsdatumPflicht()
String staat = results.getString("staat");
if (staat != null && staat.length() != 0)
{
- m.setStaat(staat);
+ if(Staat.getByKey(staat.toUpperCase()) != null)
+ {
+ m.setStaat(staat.toUpperCase());
+ }
+ else if(Staat.getByText(staat.toUpperCase()) != null)
+ {
+ m.setStaat(Staat.getByText(staat.toUpperCase()).getKey());
+ }
+ else
+ {
+ throw new ApplicationException("Zeile " + anz + ": Staat nicht erkannt: " + staat);
+ }
}
}
catch (SQLException e)
diff --git a/src/de/jost_net/JVerein/io/Rechnungsausgabe.java b/src/de/jost_net/JVerein/io/Rechnungsausgabe.java
index 7141022d5..889120712 100644
--- a/src/de/jost_net/JVerein/io/Rechnungsausgabe.java
+++ b/src/de/jost_net/JVerein/io/Rechnungsausgabe.java
@@ -72,7 +72,7 @@ public Rechnungsausgabe(RechnungControl control, RechnungControl.TYP typ)
{
case DRUCK:
file = getDateiAuswahl("pdf");
- formularaufbereitung = new FormularAufbereitung(file);
+ formularaufbereitung = new FormularAufbereitung(file, true);
break;
case MAIL:
file = getDateiAuswahl("zip");
@@ -131,13 +131,12 @@ public void aufbereitung(Formular formular)
aufbereitenFormular(re, formularaufbereitung, formular);
break;
case MAIL:
- File f = File.createTempFile(getDateiname(re),
- ".pdf");
- formularaufbereitung = new FormularAufbereitung(f);
+ File f = File.createTempFile(getDateiname(re), ".pdf");
+ formularaufbereitung = new FormularAufbereitung(f, true);
aufbereitenFormular(re, formularaufbereitung, formular);
formularaufbereitung.closeFormular();
- zos.putNextEntry(
- new ZipEntry(getDateiname(re) + ".pdf"));
+ formularaufbereitung.addZUGFeRD(re, typ == TYP.MAHNUNG);
+ zos.putNextEntry(new ZipEntry(getDateiname(re) + ".pdf"));
FileInputStream in = new FileInputStream(f);
// buffer size
byte[] b = new byte[1024];
@@ -154,6 +153,12 @@ public void aufbereitung(Formular formular)
{
case DRUCK:
formularaufbereitung.showFormular();
+ if (rechnungen.size() == 1)
+ {
+ rechnungen.begin();
+ formularaufbereitung.addZUGFeRD(rechnungen.next(),
+ typ == TYP.MAHNUNG);
+ }
break;
case MAIL:
zos.close();
diff --git a/src/de/jost_net/JVerein/keys/Staat.java b/src/de/jost_net/JVerein/keys/Staat.java
new file mode 100644
index 000000000..881ed66df
--- /dev/null
+++ b/src/de/jost_net/JVerein/keys/Staat.java
@@ -0,0 +1,160 @@
+/**********************************************************************
+ * Copyright (c) by Heiner Jostkleigrewe
+ * 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 .
+ *
+ * heiner@jverein.de
+ * www.jverein.de
+ **********************************************************************/
+package de.jost_net.JVerein.keys;
+
+import java.rmi.RemoteException;
+
+public enum Staat
+{
+ //Abchasien (Georgien)
+ AB ("ABCHASIEN"),
+ AL ("ALBANIEN"),
+ AD ("ANDORRA"),
+ AM ("ARMENIEN"),
+ AZ ("ASERBAIDSCHAN"),
+ BY ("BELARUS"),
+ BE ("BELGIEN"),
+ //Bergkarabach (Armenien/Aserbaidschan)
+ AR ("BERGKARABACH"),
+ BA ("BOSNIEN UND HERZEGOWINA"),
+ BG ("BULGARIEN"),
+ DK ("DÄNEMARK"),
+ DE ("DEUTSCHLAND"),
+ EE ("ESTLAND"),
+ FI ("FINNLAND"),
+ FR ("FRANKREICH"),
+ GE ("GEORGIEN"),
+ GR ("GRIECHENLAND"),
+ IE ("IRLAND"),
+ IS ("ISLAND"),
+ IT ("ITALIEN"),
+ CA ("KANADA"),
+ KZ ("KASACHSTAN"),
+ XK ("KOSOVO"),
+ HR ("KROATIEN"),
+ LV ("LETTLAND"),
+ LI ("LIECHTENSTEIN"),
+ LT ("LITAUEN"),
+ LU ("LUXEMBURG"),
+ MT ("MALTA"),
+ MD ("MOLDAU, REPUBLIK"),
+ MC ("MONACO"),
+ ME ("MONTENEGRO"),
+ NL ("NIEDERLANDE"),
+ MK ("NORDMAZEDONIEN"),
+ //Nordzypern (Türkei)
+ NC ("NORDZYPERN"),
+ NO ("NORWEGEN"),
+ AT ("ÖSTERREICH"),
+ PL ("POLEN"),
+ PT ("PORTUGAL"),
+ RO ("RUMÄNIEN"),
+ RU ("RUSSISCHE FÖDERATION"),
+ SM ("SAN MARINO"),
+ SE ("SCHWEDEN"),
+ CH ("SCHWEIZ"),
+ RS ("SERBIEN"),
+ SK ("SLOWAKEI"),
+ SI ("SLOWENIEN"),
+ ES ("SPANIEN"),
+ //Südossetien (Georgien)
+ SO ("SÜDOSSETIEN"),
+ //Transnistrien (Republik Moldau)
+ TN ("TRANSNISTRIEN"),
+ CZ ("TSCHECHIEN"),
+ TR ("TÜRKEI"),
+ UA ("UKRAINE"),
+ HU ("UNGARN"),
+ VA ("VATIKANSTADT"),
+ US ("VEREINIGTE STAATEN VON AMERIKA"),
+ GB ("VEREINIGTES KÖNIGREICH"),
+ CY ("ZYPERN");
+
+ private final String text;
+
+ Staat(String text)
+ {
+ this.text = text;
+ }
+
+ public String getText()
+ {
+ return text;
+ }
+
+ public String getKey()
+ {
+ return this.name();
+ }
+
+ public static Staat getByKey(String key)
+ {
+ if(key == null)
+ {
+ return null;
+ }
+ for (Staat s : Staat.values())
+ {
+ if (s.getKey().equals(key.toUpperCase()))
+ {
+ return s;
+ }
+ }
+ return null;
+ }
+
+ public static Staat getByText(String text)
+ {
+ if(text == null)
+ {
+ return null;
+ }
+ for (Staat s : Staat.values())
+ {
+ if (s.getText().equals(text.toUpperCase()))
+ {
+ return s;
+ }
+ }
+ return null;
+ }
+
+ public static String getStaat(String code) throws RemoteException
+ {
+ if (Staat.getByKey(code) != null)
+ {
+ return Staat.getByKey(code).getText();
+ }
+ // Wenn der Code nicht vorhanden ist, nehmen wir
+ // zur Kompatibilität den Text wie er in der DB Steht
+ return code;
+ }
+
+ public static String getStaatCode(String code) throws RemoteException
+ {
+ // Wenn noch das ganze Land drin steht, bestimmen wir den Code
+ if (Staat.getByText(code) != null)
+ return Staat.getByText(code).getKey();
+ return code;
+ }
+
+ @Override
+ public String toString()
+ {
+ return getText();
+ }
+}
diff --git a/src/de/jost_net/JVerein/rmi/Einstellung.java b/src/de/jost_net/JVerein/rmi/Einstellung.java
index 577fb1c67..619119342 100644
--- a/src/de/jost_net/JVerein/rmi/Einstellung.java
+++ b/src/de/jost_net/JVerein/rmi/Einstellung.java
@@ -616,6 +616,14 @@ public void setCt1SepaVersion(SepaVersion sepaversion)
public void setBeitragAltersstufen(String altersstufen) throws RemoteException;
+ public void setUStID(String ustid) throws RemoteException;
+
+ public String getUStID() throws RemoteException;
+
+ public void setStaat(String land) throws RemoteException;
+
+ public String getStaat() throws RemoteException;
+
public Boolean getMittelverwendung() throws RemoteException;
public void setMittelverwendung(Boolean mittelverwendung) throws RemoteException;
diff --git a/src/de/jost_net/JVerein/rmi/Mitglied.java b/src/de/jost_net/JVerein/rmi/Mitglied.java
index 25fe584a5..7b01d8ba7 100644
--- a/src/de/jost_net/JVerein/rmi/Mitglied.java
+++ b/src/de/jost_net/JVerein/rmi/Mitglied.java
@@ -225,4 +225,10 @@ public void setIndividuellerBeitrag(Double individuellerbeitrag)
public Map getVariablen() throws RemoteException;
+ public String getKtoiStaatCode() throws RemoteException;
+
+ public String getLeitwegID() throws RemoteException;
+
+ public void setLeitwegID(String leitwegid) throws RemoteException;
+
}
diff --git a/src/de/jost_net/JVerein/rmi/Rechnung.java b/src/de/jost_net/JVerein/rmi/Rechnung.java
index 1129d5b88..49caf8946 100644
--- a/src/de/jost_net/JVerein/rmi/Rechnung.java
+++ b/src/de/jost_net/JVerein/rmi/Rechnung.java
@@ -111,4 +111,8 @@ public void setAdressierungszusatz(String adressierungszusatz)
public String getIBAN() throws RemoteException;
public void setIBAN(String iban) throws RemoteException;
+
+ public String getLeitwegID() throws RemoteException;
+
+ public void setLeitwegID(String leitwegid) throws RemoteException;
}
diff --git a/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0455.java b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0455.java
new file mode 100644
index 000000000..f6c4543ec
--- /dev/null
+++ b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0455.java
@@ -0,0 +1,47 @@
+/**********************************************************************
+ * 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 java.sql.Connection;
+
+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;
+
+public class Update0455 extends AbstractDDLUpdate
+{
+ public Update0455(String driver, ProgressMonitor monitor, Connection conn)
+ {
+ super(driver, monitor, conn);
+ }
+
+ @Override
+ public void run() throws ApplicationException
+ {
+ {
+ execute(addColumn("einstellung",
+ new Column("staat", COLTYPE.CHAR, 2, null, false, false)));
+
+ execute(addColumn("einstellung",
+ new Column("ustid", COLTYPE.VARCHAR, 20, null, false, false)));
+
+ execute(addColumn("mitglied",
+ new Column("leitwegid", COLTYPE.VARCHAR, 50, null, false, false)));
+
+ execute(addColumn("rechnung",
+ new Column("leitwegid", COLTYPE.VARCHAR, 50, null, false, false)));
+ }
+ }
+}
diff --git a/src/de/jost_net/JVerein/server/EinstellungImpl.java b/src/de/jost_net/JVerein/server/EinstellungImpl.java
index 2fd1b5c0b..ad2d64482 100644
--- a/src/de/jost_net/JVerein/server/EinstellungImpl.java
+++ b/src/de/jost_net/JVerein/server/EinstellungImpl.java
@@ -2153,6 +2153,39 @@ public void setBeitragAltersstufen(String altersstufen) throws RemoteException
}
@Override
+ public String getStaat() throws RemoteException
+ {
+ String staat = (String) getAttribute("staat");
+ if (staat == null || staat.length() == 0)
+ {
+ return "DE";
+ }
+ return staat;
+ }
+
+ @Override
+ public void setStaat(String staat) throws RemoteException
+ {
+ setAttribute("staat", staat);
+ }
+
+ @Override
+ public String getUStID() throws RemoteException
+ {
+ String ustid = (String) getAttribute("ustid");
+ if (ustid == null)
+ {
+ return "";
+ }
+ return ustid;
+ }
+
+ @Override
+ public void setUStID(String ustid) throws RemoteException
+ {
+ setAttribute("ustid", ustid);
+ }
+
public Boolean getMittelverwendung() throws RemoteException
{
return Util.getBoolean(getAttribute("mittelverwendung"));
diff --git a/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java b/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java
index 3f5a13a99..c4e2a769e 100644
--- a/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java
+++ b/src/de/jost_net/JVerein/server/KursteilnehmerImpl.java
@@ -22,6 +22,7 @@
import java.util.Date;
import de.jost_net.JVerein.Einstellungen;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.keys.Zahlungsweg;
import de.jost_net.JVerein.rmi.Kursteilnehmer;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
@@ -275,7 +276,14 @@ public void setOrt(String ort) throws RemoteException
@Override
public String getStaat() throws RemoteException
{
- return (String) getAttribute("staat");
+ return Staat.getStaat(getStaatCode());
+ }
+
+ @Override
+ public String getStaatCode() throws RemoteException
+ {
+ String code = (String) getAttribute("staat");
+ return Staat.getStaatCode(code);
}
@Override
diff --git a/src/de/jost_net/JVerein/server/LastschriftImpl.java b/src/de/jost_net/JVerein/server/LastschriftImpl.java
index eba6e41d0..9a8ea8552 100644
--- a/src/de/jost_net/JVerein/server/LastschriftImpl.java
+++ b/src/de/jost_net/JVerein/server/LastschriftImpl.java
@@ -20,6 +20,7 @@
import java.util.Date;
import de.jost_net.JVerein.io.IAdresse;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.rmi.Abrechnungslauf;
import de.jost_net.JVerein.rmi.Kursteilnehmer;
import de.jost_net.JVerein.rmi.Lastschrift;
@@ -237,7 +238,14 @@ public void setOrt(String ort) throws RemoteException
@Override
public String getStaat() throws RemoteException
{
- return (String) getAttribute("staat");
+ return Staat.getStaat(getStaatCode());
+ }
+
+ @Override
+ public String getStaatCode() throws RemoteException
+ {
+ String code = (String) getAttribute("staat");
+ return Staat.getStaatCode(code);
}
@Override
diff --git a/src/de/jost_net/JVerein/server/MitgliedImpl.java b/src/de/jost_net/JVerein/server/MitgliedImpl.java
index 193dd998a..0ab6dc674 100644
--- a/src/de/jost_net/JVerein/server/MitgliedImpl.java
+++ b/src/de/jost_net/JVerein/server/MitgliedImpl.java
@@ -16,12 +16,21 @@
**********************************************************************/
package de.jost_net.JVerein.server;
+import java.rmi.RemoteException;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.input.GeschlechtInput;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
import de.jost_net.JVerein.keys.ArtBeitragsart;
import de.jost_net.JVerein.keys.Datentyp;
import de.jost_net.JVerein.keys.SepaMandatIdSource;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.keys.Zahlungsrhythmus;
import de.jost_net.JVerein.keys.Zahlungstermin;
import de.jost_net.JVerein.keys.Zahlungsweg;
@@ -50,14 +59,6 @@
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;
-import java.rmi.RemoteException;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
public class MitgliedImpl extends AbstractDBObject implements Mitglied
{
@@ -537,26 +538,34 @@ public void setOrt(String ort) throws RemoteException
@Override
public String getStaat() throws RemoteException
{
- if (getAttribute("staat") != null)
- {
- return (String) getAttribute("staat");
- }
- else
- {
- return "";
- }
+ return Staat.getStaat(getStaatCode());
+ }
+
+ @Override
+ public String getStaatCode() throws RemoteException
+ {
+ String code = (String) getAttribute("staat");
+ return Staat.getStaatCode(code);
}
@Override
public void setStaat(String staat) throws RemoteException
{
- if (staat != null)
- {
- staat = staat.toUpperCase();
- }
setAttribute("staat", staat);
}
+ @Override
+ public String getLeitwegID() throws RemoteException
+ {
+ return (String) getAttribute("leitwegid");
+ }
+
+ @Override
+ public void setLeitwegID(String leitwegid) throws RemoteException
+ {
+ setAttribute("leitwegid", leitwegid);
+ }
+
@Override
public Integer getZahlungsweg() throws RemoteException
{
@@ -831,7 +840,14 @@ public void setKtoiOrt(String ktoiort) throws RemoteException
@Override
public String getKtoiStaat() throws RemoteException
{
- return (String) getAttribute("ktoistaat");
+ return Staat.getStaat(getKtoiStaatCode());
+ }
+
+ @Override
+ public String getKtoiStaatCode() throws RemoteException
+ {
+ String code = (String) getAttribute("ktoistaat");
+ return Staat.getStaatCode(code);
}
@Override
diff --git a/src/de/jost_net/JVerein/server/RechnungImpl.java b/src/de/jost_net/JVerein/server/RechnungImpl.java
index 3284d99d6..f1e5aaa7c 100644
--- a/src/de/jost_net/JVerein/server/RechnungImpl.java
+++ b/src/de/jost_net/JVerein/server/RechnungImpl.java
@@ -22,6 +22,7 @@
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.io.IAdresse;
+import de.jost_net.JVerein.keys.Staat;
import de.jost_net.JVerein.rmi.Formular;
import de.jost_net.JVerein.rmi.Mitglied;
import de.jost_net.JVerein.rmi.Mitgliedskonto;
@@ -202,7 +203,14 @@ public void setOrt(String ort) throws RemoteException
@Override
public String getStaat() throws RemoteException
{
- return (String) getAttribute("staat");
+ return Staat.getStaat(getStaatCode());
+ }
+
+ @Override
+ public String getStaatCode() throws RemoteException
+ {
+ String code = (String) getAttribute("staat");
+ return Staat.getStaatCode(code);
}
@Override
@@ -333,4 +341,16 @@ public void setIBAN(String iban) throws RemoteException
setAttribute("iban", iban);
}
+
+ @Override
+ public String getLeitwegID() throws RemoteException
+ {
+ return (String) getAttribute("leitwegid");
+ }
+
+ @Override
+ public void setLeitwegID(String leitwegid) throws RemoteException
+ {
+ setAttribute("leitwegid", leitwegid);
+ }
}