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 {