Skip to content

Commit

Permalink
Rechnungen als ZUGFeRD erstellen (openjverein#481)
Browse files Browse the repository at this point in the history
* Rechnungen als ZUGFeRD erstellen

* Classpath korrigiert, unnötige Dateien entfernt

* Merge fehler behoben

* Ustid und Staat in DB. Staat bei Mitglied als Select

* Update für Merge umbenannt

* Verschlüsselung bei PDFA (ZUGFeRD) entfernt, da nicht möglich

* Land in Spendenbescheinigung

* getLast ersetzt

* Staat Liste erweitert

* Index get korrigiert

* SQL staat NOT NULL entfernt

* Staat parsen

* LeitwegID

* Netobetrag verwenden

* Formatierung, umbenennung zu ...ID, rechschreibfehler

* Update umbenannt

* formatierung

* Formatierung, Library aktuallisiert

* Staat auf "" testen

* Kodierung

* Update umbenannt für Merge

* Library umbenannt

* Update umbenannt, Typ Staat auf CHAR geändert

* getStaat() nach Staat ausgelagert

* Noch ein getStaat ersetzt

---------

Co-authored-by: nils <nils@nils-Aspire-E5-511>
  • Loading branch information
lenilsas and nils authored Dec 26, 2024
1 parent 7df9f4e commit 77bbe66
Show file tree
Hide file tree
Showing 37 changed files with 705 additions and 72 deletions.
5 changes: 5 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,10 @@
<classpathentry exported="true" kind="lib" path="lib/jsoup-1.18.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/vinnie-2.0.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/ez-vcard-0.12.1.jar"/>
<classpathentry exported="true" kind="lib" path="/hibiscus/lib/pdfbox/pdfbox-3.0.2.jar"/>
<classpathentry kind="lib" path="lib/xmpbox-3.0.3.jar"/>
<classpathentry kind="lib" path="lib/jakarta.activation-api-2.1.3.jar"/>
<classpathentry kind="lib" path="lib/dom4j-2.1.4.jar"/>
<classpathentry kind="lib" path="lib/mustang-2.15.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
}
Expand Down
Binary file added lib/dom4j-2.1.4.jar
Binary file not shown.
Binary file added lib/jakarta.activation-api-2.1.3.jar
Binary file not shown.
Binary file added lib/mustang-2.15.2.jar
Binary file not shown.
Binary file added lib/xmpbox-3.0.3.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
28 changes: 28 additions & 0 deletions src/de/jost_net/JVerein/gui/control/EinstellungControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);

Expand Down
19 changes: 15 additions & 4 deletions src/de/jost_net/JVerein/gui/control/KursteilnehmerControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -85,7 +87,7 @@ public class KursteilnehmerControl extends FilterControl

private TextInput ort;

private TextInput staat;
private SelectInput staat;

private EmailInput email;

Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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());
Expand Down
54 changes: 46 additions & 8 deletions src/de/jost_net/JVerein/gui/control/MitgliedControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -218,7 +221,7 @@ public class MitgliedControl extends FilterControl

private TextInput ktoiort;

private TextInput ktoistaat;
private SelectNoScrollInput ktoistaat;

private EmailInput ktoiemail;

Expand Down Expand Up @@ -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
{
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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());
Expand All @@ -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());
Expand All @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down
17 changes: 16 additions & 1 deletion src/de/jost_net/JVerein/gui/control/RechnungControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ public class RechnungControl extends DruckMailControl

private TextInput personenart;

private TextInput leitwegID;

public enum TYP
{
RECHNUNG, MAHNUNG
Expand Down Expand Up @@ -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());
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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())
{
Expand Down
Loading

0 comments on commit 77bbe66

Please sign in to comment.