diff --git a/.classpath b/.classpath
index f43126a1f..1d27ff0af 100644
--- a/.classpath
+++ b/.classpath
@@ -1,32 +1,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/de/jost_net/JVerein/Variable/MitgliedskontoMap.java b/src/de/jost_net/JVerein/Variable/MitgliedskontoMap.java
index f49e7dcf2..1e1cf3087 100644
--- a/src/de/jost_net/JVerein/Variable/MitgliedskontoMap.java
+++ b/src/de/jost_net/JVerein/Variable/MitgliedskontoMap.java
@@ -17,13 +17,18 @@
package de.jost_net.JVerein.Variable;
import java.rmi.RemoteException;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.control.FormularfeldControl;
import de.jost_net.JVerein.rmi.Mitgliedskonto;
+import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
+import de.willuhn.jameica.gui.formatter.CurrencyFormatter;
+import de.willuhn.jameica.gui.formatter.DateFormatter;
public class MitgliedskontoMap
{
@@ -49,9 +54,15 @@ public Map getMap(ArrayList mk,
ArrayList buda = new ArrayList<>();
ArrayList zg = new ArrayList<>();
ArrayList zg1 = new ArrayList<>();
+ ArrayList nettobetrag = new ArrayList<>();
+ ArrayList steuersatz = new ArrayList<>();
+ ArrayList steuerbetrag = new ArrayList<>();
ArrayList betrag = new ArrayList<>();
ArrayList ist = new ArrayList<>();
ArrayList differenz = new ArrayList<>();
+
+ DecimalFormat format = new DecimalFormat("0");
+ CurrencyFormatter formatter = new CurrencyFormatter("%",format);
double summe = 0;
double saldo = 0;
double suist = 0;
@@ -60,7 +71,10 @@ public Map getMap(ArrayList mk,
buda.add(mkto.getDatum());
zg.add(mkto.getZweck1());
zg1.add(mkto.getZweck1());
- betrag.add(new Double(mkto.getBetrag()));
+ nettobetrag.add(Double.valueOf(mkto.getNettobetrag()));
+ steuersatz.add("("+formatter.format(Double.valueOf(mkto.getSteuersatz()))+")");
+ steuerbetrag.add(Double.valueOf(mkto.getSteuerbetrag()));
+ betrag.add(Double.valueOf(mkto.getBetrag()));
ist.add(mkto.getIstSumme());
suist += mkto.getIstSumme();
differenz.add(mkto.getBetrag() - mkto.getIstSumme());
@@ -69,8 +83,16 @@ public Map getMap(ArrayList mk,
}
if (buda.size() > 1)
{
- zg1.add("Summe");
- zg.add("Summe");
+ if (Einstellungen.getEinstellung().getOptiert())
+ {
+ zg1.add("Rechnungsbetrag inkl. USt.");
+ zg.add("Rechnungsbetrag inkl. USt.");
+ }
+ else
+ {
+ zg1.add("Summe");
+ zg.add("Summe");
+ }
betrag.add(summe);
differenz.add(saldo);
ist.add(suist);
@@ -82,6 +104,9 @@ public Map getMap(ArrayList mk,
map.put(MitgliedskontoVar.BUCHUNGSDATUM.getName(), buda.toArray());
map.put(MitgliedskontoVar.ZAHLUNGSGRUND.getName(), zg.toArray());
map.put(MitgliedskontoVar.ZAHLUNGSGRUND1.getName(), zg1.toArray());
+ map.put(MitgliedskontoVar.NETTOBETRAG.getName(), nettobetrag.toArray());
+ map.put(MitgliedskontoVar.STEUERSATZ.getName(), steuersatz.toArray());
+ map.put(MitgliedskontoVar.STEUERBETRAG.getName(), steuerbetrag.toArray());
map.put(MitgliedskontoVar.BETRAG.getName(), betrag.toArray());
map.put(MitgliedskontoVar.IST.getName(), ist.toArray());
map.put(MitgliedskontoVar.DIFFERENZ.getName(), differenz.toArray());
@@ -106,6 +131,9 @@ public Map getMap(Mitgliedskonto mk, Map inma)
map.put(MitgliedskontoVar.BUCHUNGSDATUM.getName(), mk.getDatum());
map.put(MitgliedskontoVar.ZAHLUNGSGRUND.getName(), mk.getZweck1());
map.put(MitgliedskontoVar.ZAHLUNGSGRUND1.getName(), mk.getZweck1());
+ map.put(MitgliedskontoVar.NETTOBETRAG.getName(), mk.getNettobetrag());
+ map.put(MitgliedskontoVar.STEUERSATZ.getName(), mk.getSteuersatz());
+ map.put(MitgliedskontoVar.STEUERBETRAG.getName(), mk.getSteuerbetrag());
map.put(MitgliedskontoVar.BETRAG.getName(), mk.getBetrag());
map.put(MitgliedskontoVar.IST.getName(), mk.getIstSumme());
map.put(MitgliedskontoVar.DIFFERENZ.getName(),
diff --git a/src/de/jost_net/JVerein/Variable/MitgliedskontoVar.java b/src/de/jost_net/JVerein/Variable/MitgliedskontoVar.java
index d618abb9b..d44ee880c 100644
--- a/src/de/jost_net/JVerein/Variable/MitgliedskontoVar.java
+++ b/src/de/jost_net/JVerein/Variable/MitgliedskontoVar.java
@@ -22,6 +22,9 @@ public enum MitgliedskontoVar
ZAHLUNGSGRUND1("mitgliedskonto_zahlungsgrund1"), //
ZAHLUNGSGRUND2("mitgliedskonto_zahlungsgrund2"), //
BUCHUNGSDATUM("mitgliedskonto_buchungsdatum"), //
+ NETTOBETRAG("mitgliedskonto_nettobetrag"), //
+ STEUERSATZ("mitgliedskonto_steuersatz"), //
+ STEUERBETRAG("mitgliedskonto_steuerbetrag"), //
BETRAG("mitgliedskonto_betrag"), //
IST("mitgliedskonto_ist"), //
DIFFERENZ("mitgliedskonto_differenz"), //
diff --git a/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java b/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java
index e55f377b2..b0a28add8 100644
--- a/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java
+++ b/src/de/jost_net/JVerein/gui/action/FormularAnzeigeAction.java
@@ -19,10 +19,13 @@
import java.io.File;
import java.io.IOException;
import java.rmi.RemoteException;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;
+import com.schlevoigt.JVerein.util.Misc;
+
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.Variable.AllgemeineMap;
import de.jost_net.JVerein.Variable.AllgemeineVar;
@@ -44,6 +47,7 @@
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
import de.jost_net.JVerein.util.StringTool;
import de.willuhn.jameica.gui.Action;
+import de.willuhn.jameica.gui.formatter.CurrencyFormatter;
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;
import jonelo.NumericalChameleon.SpokenNumbers.GermanNumber;
@@ -251,29 +255,58 @@ public void handleAction(Object context) throws ApplicationException
ArrayList buda = new ArrayList<>();
ArrayList zg = new ArrayList<>();
ArrayList zg1 = new ArrayList<>();
+ ArrayList nettobetrag = new ArrayList<>();
+ ArrayList steuersatz = new ArrayList<>();
+ ArrayList steuerbetrag = new ArrayList<>();
ArrayList betrag = new ArrayList<>();
ArrayList ist = new ArrayList<>();
ArrayList differenz = new ArrayList<>();
+
// Buchung 1
buda.add(new Date());
zg.add("Testverwendungszweck");
zg1.add("Testverwendungszweck");
- betrag.add(150.10d);
+
+ DecimalFormat format = new DecimalFormat("0");
+ CurrencyFormatter formatter = new CurrencyFormatter("%",format);
+
+ double steuer = 7d;
+ steuersatz.add("("+formatter.format(steuer)+")");
+ double netto = 200d / (1d + (steuer / 100d));
+ nettobetrag.add(netto);
+ steuerbetrag.add(200d - netto);
+ betrag.add(200d);
ist.add(0d);
- differenz.add(-150.10d);
+ differenz.add(-200d);
+
// Buchung 2
buda.add(new Date());
zg.add("2. Verwendungszweck");
zg1.add("2. Verwendungszweck");
- betrag.add(10d);
- ist.add(5d);
- differenz.add(-5d);
+ steuer = 19d;
+ steuersatz.add("("+formatter.format(steuer)+")");
+ netto = 49.99d / (1d + (steuer / 100d));
+ nettobetrag.add(netto);
+ steuerbetrag.add(49.99d - netto);
+ betrag.add(49.99d);
+ ist.add(10d);
+ differenz.add(-39.99d);
+
// Summe
- zg1.add("Summe");
- zg.add("Summe");
- betrag.add(160.1d);
- differenz.add(155.1d);
- ist.add(5d);
+ if (Einstellungen.getEinstellung().getOptiert())
+ {
+ zg1.add("Rechnungsbetrag inkl. USt.");
+ zg.add("Rechnungsbetrag inkl. USt.");
+ }
+ else
+ {
+ zg1.add("Summe");
+ zg.add("Summe");
+ }
+ betrag.add(249.99d);
+ differenz.add(239.99d);
+ ist.add(10d);
+
map.put(FormularfeldControl.BUCHUNGSDATUM, buda.toArray());
map.put(FormularfeldControl.ZAHLUNGSGRUND, zg.toArray());
map.put(FormularfeldControl.ZAHLUNGSGRUND1, zg1.toArray());
@@ -281,6 +314,9 @@ public void handleAction(Object context) throws ApplicationException
map.put(MitgliedskontoVar.BUCHUNGSDATUM.getName(), buda.toArray());
map.put(MitgliedskontoVar.ZAHLUNGSGRUND.getName(), zg.toArray());
map.put(MitgliedskontoVar.ZAHLUNGSGRUND1.getName(), zg1.toArray());
+ map.put(MitgliedskontoVar.NETTOBETRAG.getName(), nettobetrag.toArray());
+ map.put(MitgliedskontoVar.STEUERSATZ.getName(), steuersatz.toArray());
+ map.put(MitgliedskontoVar.STEUERBETRAG.getName(), steuerbetrag.toArray());
map.put(MitgliedskontoVar.BETRAG.getName(), betrag.toArray());
map.put(MitgliedskontoVar.IST.getName(), ist.toArray());
map.put(MitgliedskontoVar.DIFFERENZ.getName(), differenz.toArray());
diff --git a/src/de/jost_net/JVerein/gui/control/AbrechnungslaufBuchungenControl.java b/src/de/jost_net/JVerein/gui/control/AbrechnungslaufBuchungenControl.java
index 0b7dc516d..1ac960a8f 100644
--- a/src/de/jost_net/JVerein/gui/control/AbrechnungslaufBuchungenControl.java
+++ b/src/de/jost_net/JVerein/gui/control/AbrechnungslaufBuchungenControl.java
@@ -158,8 +158,22 @@ public Part getSollbuchungsList() throws RemoteException
SollbuchungsList.addColumn("Mitglied", "mitglied");
SollbuchungsList.addColumn("Zweck", "zweck1");
- SollbuchungsList.addColumn("Betrag", "betrag",
- new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
+ if (Einstellungen.getEinstellung().getOptiert())
+ {
+ SollbuchungsList.addColumn("Nettobetrag", "nettobetrag",
+ new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
+ SollbuchungsList.addColumn("Steuersatz", "steuersatz",
+ new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
+ SollbuchungsList.addColumn("Steuerbetrag", "steuerbetrag",
+ new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
+ SollbuchungsList.addColumn("Bruttobetrag", "betrag",
+ new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
+ }
+ else
+ {
+ SollbuchungsList.addColumn("Betrag", "betrag",
+ new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
+ }
SollbuchungsList.addColumn("Eingang", "istsumme",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
SollbuchungsList.addColumn("Zahlungsweg", "zahlungsweg",
diff --git a/src/de/jost_net/JVerein/gui/control/AbrechnungslaufControl.java b/src/de/jost_net/JVerein/gui/control/AbrechnungslaufControl.java
index 3ede3a53e..78268ca74 100644
--- a/src/de/jost_net/JVerein/gui/control/AbrechnungslaufControl.java
+++ b/src/de/jost_net/JVerein/gui/control/AbrechnungslaufControl.java
@@ -263,7 +263,7 @@ public Object extract(ResultSet rs) throws SQLException
CurrencyFormatter cf = new CurrencyFormatter("EUR",
Einstellungen.DECIMALFORMAT);
- String s = String.format("Anzahl: %s; Summe %s", data.anzahl.toString(),
+ String s = String.format("Anzahl: %s; Summe: %s", data.anzahl.toString(),
cf.format(data.summe));
statistikbuchungen = new LabelInput(s);
statistikbuchungen.setName("Buchungen");
@@ -309,7 +309,7 @@ public Object extract(ResultSet rs) throws SQLException
CurrencyFormatter cf = new CurrencyFormatter("EUR",
Einstellungen.DECIMALFORMAT);
- String s = String.format("Anzahl: %s; Summe %s", data.anzahl.toString(),
+ String s = String.format("Anzahl: %s; Summe: %s", data.anzahl.toString(),
cf.format(data.summe));
statistiklastschriften = new LabelInput(s);
statistiklastschriften.setName("Lastschriften");
diff --git a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
index d6d9ccefc..2d201c1aa 100644
--- a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
+++ b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java
@@ -284,6 +284,8 @@ public class EinstellungControl extends AbstractControl
private CheckboxInput abrlabschliessen;
+ private CheckboxInput optiert;
+
/**
* Verschlüsselte Datei für besonders sensible Daten (Passwörter)
*/
@@ -760,6 +762,17 @@ public IntegerInput getZaehlerLaenge() throws RemoteException
}
return zaehlerlaenge;
}
+
+ public CheckboxInput getOptiert() throws RemoteException
+ {
+ if (optiert != null)
+ {
+ return optiert;
+ }
+ optiert = new CheckboxInput(Einstellungen.getEinstellung().getOptiert());
+ optiert.setName("Umsatzsteueroption");
+ return optiert;
+ }
public CheckboxInput getExterneMitgliedsnummer() throws RemoteException
{
@@ -1927,6 +1940,7 @@ public void handleStoreBuchfuehrung()
Integer ulength = (Integer) unterdrueckunglaenge.getValue();
e.setUnterdrueckungLaenge(ulength);
e.setKontonummerInBuchungsliste((Boolean) kontonummer_in_buchungsliste.getValue());
+ e.setOptiert((Boolean) getOptiert().getValue());
e.store();
Einstellungen.setEinstellung(e);
diff --git a/src/de/jost_net/JVerein/gui/control/MitgliedskontoControl.java b/src/de/jost_net/JVerein/gui/control/MitgliedskontoControl.java
index 7b15e718b..22693ed21 100644
--- a/src/de/jost_net/JVerein/gui/control/MitgliedskontoControl.java
+++ b/src/de/jost_net/JVerein/gui/control/MitgliedskontoControl.java
@@ -558,10 +558,20 @@ public void handleStore()
Zahlungsweg zw = (Zahlungsweg) getZahlungsweg().getValue();
mkto.setZahlungsweg(zw.getKey());
mkto.setZweck1((String) getZweck1().getValue());
+
+ double steuersatz = 0d;
if (getBuchungsart().getValue() != null)
{
mkto.setBuchungsart((Buchungsart) getBuchungsart().getValue());
+ Buchungsart bart = mkto.getBuchungsart();
+ steuersatz = bart.getSteuersatz();
}
+ // Update taxes and netto amount
+ mkto.setSteuersatz(steuersatz);
+ double netto = ((Double) getBetrag().getValue() / (1d + (steuersatz / 100d)));
+ mkto.setNettobetrag(netto);
+ mkto.setSteuerbetrag((Double) getBetrag().getValue() - netto);
+
mkto.store();
GUI.getStatusBar().setSuccessText("Mitgliedskonto gespeichert");
}
diff --git a/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java b/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java
index 239984e02..1681d2168 100644
--- a/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java
+++ b/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java
@@ -44,6 +44,7 @@ public void bind() throws Exception
cont.addInput(control.getAutomatischeBuchungskorrekturHibiscus());
cont.addInput(control.getUnterdrueckungOhneBuchung());
cont.addInput(control.getKontonummerInBuchungsliste());
+ cont.addInput(control.getOptiert());
ButtonArea buttons = new ButtonArea();
buttons.addButton("Hilfe", new DokumentationAction(),
diff --git a/src/de/jost_net/JVerein/io/AbrechnungSEPA.java b/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
index 7cf13929d..fe937bd47 100644
--- a/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
+++ b/src/de/jost_net/JVerein/io/AbrechnungSEPA.java
@@ -814,10 +814,19 @@ private void writeMitgliedskonto(Mitglied mitglied, Date datum, String zweck1,
mk.setDatum(datum);
mk.setMitglied(mitglied);
mk.setZweck1(zweck1);
+ double steuersatz = 0d;
if (buchungsart != null)
{
mk.setBuchungsart(buchungsart);
+ steuersatz = buchungsart.getSteuersatz();
}
+ // Set tax rate
+ mk.setSteuersatz(steuersatz);
+ // Set bill amount without taxes
+ double nettobetrag = (steuersatz != 0d) ? (betrag / (1d + (steuersatz / 100d))) : betrag;
+ mk.setNettobetrag(nettobetrag);
+ // Set tax amount
+ mk.setSteuerbetrag(betrag - nettobetrag);
mk.store();
}
if (haben)
diff --git a/src/de/jost_net/JVerein/io/AbrechnungslaufPDF.java b/src/de/jost_net/JVerein/io/AbrechnungslaufPDF.java
index 5b08270b4..a4851793f 100644
--- a/src/de/jost_net/JVerein/io/AbrechnungslaufPDF.java
+++ b/src/de/jost_net/JVerein/io/AbrechnungslaufPDF.java
@@ -55,6 +55,10 @@ public AbrechnungslaufPDF(DBIterator it, final File file,
BaseColor.LIGHT_GRAY);
reporter.addHeaderColumn("Zweck", Element.ALIGN_CENTER, 190,
BaseColor.LIGHT_GRAY);
+ reporter.addHeaderColumn("Steuersatz", Element.ALIGN_CENTER, 60,
+ BaseColor.LIGHT_GRAY);
+ reporter.addHeaderColumn("Steuerbetrag", Element.ALIGN_CENTER, 60,
+ BaseColor.LIGHT_GRAY);
reporter.addHeaderColumn("Betrag", Element.ALIGN_CENTER, 60,
BaseColor.LIGHT_GRAY);
reporter.addHeaderColumn("Eingang", Element.ALIGN_CENTER, 60,
@@ -72,6 +76,8 @@ public AbrechnungslaufPDF(DBIterator it, final File file,
reporter.addColumn(Adressaufbereitung.getNameVorname(mk.getMitglied()),
Element.ALIGN_LEFT);
reporter.addColumn(mk.getZweck1(), Element.ALIGN_LEFT);
+ reporter.addColumn(mk.getSteuersatz());
+ reporter.addColumn(mk.getSteuerbetrag());
reporter.addColumn(mk.getBetrag());
reporter.addColumn(mk.getIstSumme());
reporter.addColumn(Zahlungsweg.get(mk.getZahlungsweg()),
diff --git a/src/de/jost_net/JVerein/io/FormularAufbereitung.java b/src/de/jost_net/JVerein/io/FormularAufbereitung.java
index 67839f0e7..1aa4d2236 100644
--- a/src/de/jost_net/JVerein/io/FormularAufbereitung.java
+++ b/src/de/jost_net/JVerein/io/FormularAufbereitung.java
@@ -33,6 +33,7 @@
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.Variable.AllgemeineVar;
+import de.jost_net.JVerein.Variable.MitgliedskontoVar;
import de.jost_net.JVerein.rmi.Einstellung;
import de.jost_net.JVerein.rmi.Formular;
import de.jost_net.JVerein.rmi.Formularfeld;
@@ -43,6 +44,8 @@
import de.willuhn.jameica.gui.internal.action.Program;
import de.willuhn.jameica.messaging.StatusBarMessage;
import de.willuhn.jameica.system.Application;
+import de.willuhn.logging.Level;
+import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;
public class FormularAufbereitung
@@ -262,6 +265,11 @@ private String getString(Object val)
stringVal.append((String) ostr);
stringVal.append("\n");
}
+
+ // Format Strings with percent numbers and closing bracket e.g. taxes
+ if (((String) o[0]).contains("%)")) {
+ buendig = rechts;
+ }
}
if (o[0] instanceof Date)
{
@@ -285,6 +293,11 @@ private String getString(Object val)
if (val instanceof String)
{
stringVal = new StringBuilder((String) val);
+
+ // Format Strings with percent numbers and closing bracket e.g. taxes
+ if (((String) val).contains("%)")) {
+ buendig = rechts;
+ }
}
if (val instanceof Double)
{
diff --git a/src/de/jost_net/JVerein/rmi/Einstellung.java b/src/de/jost_net/JVerein/rmi/Einstellung.java
index 1d117977b..a2f85ee48 100644
--- a/src/de/jost_net/JVerein/rmi/Einstellung.java
+++ b/src/de/jost_net/JVerein/rmi/Einstellung.java
@@ -22,6 +22,7 @@
import de.jost_net.JVerein.io.IBankverbindung;
import de.jost_net.JVerein.keys.Beitragsmodel;
import de.willuhn.datasource.rmi.DBObject;
+import de.willuhn.jameica.gui.input.CheckboxInput;
public interface Einstellung extends DBObject, IBankverbindung
{
@@ -524,4 +525,8 @@ public void setBuchungBuchungsartAuswahl(int buchungBuchungsartAuswahl)
public void setZaehlerLaenge(int zaehlerlaenge) throws RemoteException;
+ public Boolean getOptiert() throws RemoteException;
+
+ public void setOptiert(Boolean optiert) throws RemoteException;
+
}
diff --git a/src/de/jost_net/JVerein/rmi/Mitgliedskonto.java b/src/de/jost_net/JVerein/rmi/Mitgliedskonto.java
index fb478ec0b..ac9df6e68 100644
--- a/src/de/jost_net/JVerein/rmi/Mitgliedskonto.java
+++ b/src/de/jost_net/JVerein/rmi/Mitgliedskonto.java
@@ -44,6 +44,18 @@ public void setAbrechnungslauf(Abrechnungslauf abrechnungslauf)
public void setZahlungsweg(Integer zahlungsweg) throws RemoteException;
+ public Double getNettobetrag() throws RemoteException;
+
+ public void setNettobetrag(Double nettobetrag) throws RemoteException;
+
+ public Double getSteuersatz() throws RemoteException;
+
+ public void setSteuersatz(Double steuersatz) throws RemoteException;
+
+ public Double getSteuerbetrag() throws RemoteException;
+
+ public void setSteuerbetrag(Double steuerbetrag) throws RemoteException;
+
public void setBetrag(Double betrag) throws RemoteException;
public Double getBetrag() throws RemoteException;
diff --git a/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0429.java b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0429.java
new file mode 100644
index 000000000..da883e73d
--- /dev/null
+++ b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0429.java
@@ -0,0 +1,45 @@
+/**********************************************************************
+ * 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 Update0429 extends AbstractDDLUpdate
+{
+ public Update0429(String driver, ProgressMonitor monitor, Connection conn)
+ {
+ super(driver, monitor, conn);
+ }
+
+ @Override
+ public void run() throws ApplicationException
+ {
+ // Add tax
+ execute(addColumn("mitgliedskonto",
+ new Column("nettobetrag", COLTYPE.DOUBLE, 0, null, false, false)));
+ // Add tax rate
+ execute(addColumn("mitgliedskonto",
+ new Column("steuersatz", COLTYPE.DOUBLE, 0, null, false, false)));
+ // Add tax amount
+ execute(addColumn("mitgliedskonto",
+ new Column("steuerbetrag", COLTYPE.DOUBLE, 0, null, false, false)));
+ execute(addColumn("einstellung", new Column("optiert",
+ 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 1209199e6..3da5254ed 100644
--- a/src/de/jost_net/JVerein/server/EinstellungImpl.java
+++ b/src/de/jost_net/JVerein/server/EinstellungImpl.java
@@ -736,6 +736,18 @@ public void setZaehlerLaenge(int length) throws RemoteException
setAttribute("zaehlerlaenge", length);
}
+ @Override
+ public Boolean getOptiert() throws RemoteException
+ {
+ return Util.getBoolean(getAttribute("optiert"));
+ }
+
+ @Override
+ public void setOptiert(Boolean optiert) throws RemoteException
+ {
+ setAttribute("optiert", optiert);
+ }
+
@Override
public Boolean getExterneMitgliedsnummer() throws RemoteException
{
diff --git a/src/de/jost_net/JVerein/server/MitgliedskontoImpl.java b/src/de/jost_net/JVerein/server/MitgliedskontoImpl.java
index a17f62183..e2ee46d9e 100644
--- a/src/de/jost_net/JVerein/server/MitgliedskontoImpl.java
+++ b/src/de/jost_net/JVerein/server/MitgliedskontoImpl.java
@@ -189,6 +189,57 @@ public void setZahlungsweg(Integer zahlungsweg) throws RemoteException
setAttribute("zahlungsweg", zahlungsweg);
}
+ @Override
+ public Double getNettobetrag() throws RemoteException
+ {
+ Double d = (Double) getAttribute("nettobetrag");
+ if (d == null)
+ {
+ return 0.0d;
+ }
+ return d;
+ }
+
+ @Override
+ public void setNettobetrag(Double d) throws RemoteException
+ {
+ setAttribute("nettobetrag", d);
+ }
+
+ @Override
+ public Double getSteuersatz() throws RemoteException
+ {
+ Double d = (Double) getAttribute("steuersatz");
+ if (d == null)
+ {
+ return 0.0d;
+ }
+ return d;
+ }
+
+ @Override
+ public void setSteuersatz(Double d) throws RemoteException
+ {
+ setAttribute("steuersatz", d);
+ }
+
+ @Override
+ public Double getSteuerbetrag() throws RemoteException
+ {
+ Double d = (Double) getAttribute("steuerbetrag");
+ if (d == null)
+ {
+ return 0.0d;
+ }
+ return d;
+ }
+
+ @Override
+ public void setSteuerbetrag(Double d) throws RemoteException
+ {
+ setAttribute("steuerbetrag", d);
+ }
+
@Override
public Double getBetrag() throws RemoteException
{