diff --git a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java index 13fe3d062..8ca74d721 100644 --- a/src/de/jost_net/JVerein/gui/control/EinstellungControl.java +++ b/src/de/jost_net/JVerein/gui/control/EinstellungControl.java @@ -175,6 +175,8 @@ public class EinstellungControl extends AbstractControl private CheckboxInput kontonummer_in_buchungsliste; private IntegerInput unterdrueckunglaenge; + + private IntegerInput unterdrueckungkonten; private CheckboxInput automatische_buchungskorrektur_hibiscus; @@ -958,6 +960,16 @@ public IntegerInput getUnterdrueckungLaenge() throws RemoteException Einstellungen.getEinstellung().getUnterdrueckungLaenge()); } return unterdrueckunglaenge; + } + + public IntegerInput getUnterdrueckungKonten() throws RemoteException + { + if (null == unterdrueckungkonten) + { + unterdrueckungkonten = new IntegerInput( + Einstellungen.getEinstellung().getUnterdrueckungKonten()); + } + return unterdrueckungkonten; } public CheckboxInput getKontonummerInBuchungsliste() throws RemoteException @@ -971,7 +983,6 @@ public CheckboxInput getKontonummerInBuchungsliste() throws RemoteException return kontonummer_in_buchungsliste; } - public CheckboxInput getAutomatischeBuchungskorrekturHibiscus() throws RemoteException { if (automatische_buchungskorrektur_hibiscus != null) @@ -1977,6 +1988,8 @@ public void handleStoreBuchfuehrung() .getValue()); Integer ulength = (Integer) unterdrueckunglaenge.getValue(); e.setUnterdrueckungLaenge(ulength); + Integer klength = (Integer) unterdrueckungkonten.getValue(); + e.setUnterdrueckungKonten(klength); e.setKontonummerInBuchungsliste((Boolean) kontonummer_in_buchungsliste.getValue()); e.setOptiert((Boolean) getOptiert().getValue()); e.store(); diff --git a/src/de/jost_net/JVerein/gui/parts/KontoList.java b/src/de/jost_net/JVerein/gui/parts/KontoList.java index 8cf358a16..9e61edf79 100644 --- a/src/de/jost_net/JVerein/gui/parts/KontoList.java +++ b/src/de/jost_net/JVerein/gui/parts/KontoList.java @@ -20,12 +20,13 @@ import java.rmi.RemoteException; import java.util.Calendar; +import java.util.List; import org.eclipse.swt.widgets.Composite; import de.jost_net.JVerein.Einstellungen; import de.jost_net.JVerein.rmi.Konto; -import de.willuhn.datasource.GenericIterator; +import de.willuhn.datasource.pseudo.PseudoIterator; import de.willuhn.datasource.rmi.DBIterator; import de.willuhn.jameica.gui.Action; import de.willuhn.jameica.gui.Part; @@ -36,14 +37,13 @@ */ public class KontoList extends TablePart implements Part { - public KontoList(Action action, boolean onlyHibiscus, boolean nurAktuelleKonten) throws RemoteException { this(init(onlyHibiscus, nurAktuelleKonten), action); } - public KontoList(GenericIterator konten, Action action) + public KontoList(List konten, Action action) { super(konten, action); @@ -73,10 +73,10 @@ public synchronized void update(boolean onlyHibiscus, boolean nurAktuelleKonten) throws RemoteException { super.removeAll(); - DBIterator i = init(onlyHibiscus, nurAktuelleKonten); - while (i.hasNext()) + List list = init(onlyHibiscus, nurAktuelleKonten); + for (Konto kto: list) { - super.addItem(i.next()); + super.addItem(kto); } } @@ -86,7 +86,8 @@ public synchronized void update(boolean onlyHibiscus, * @return Liste der Konten. * @throws RemoteException */ - private static DBIterator init(boolean onlyHibiscus, + @SuppressWarnings("unchecked") + private static List init(boolean onlyHibiscus, boolean nurAktuelleKonten) throws RemoteException { DBIterator i = Einstellungen.getDBService().createList(Konto.class); @@ -98,10 +99,10 @@ private static DBIterator init(boolean onlyHibiscus, { Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); - year = year - 2; + year = year - Einstellungen.getEinstellung().getUnterdrueckungKonten(); i.addFilter("(aufloesung is null or year(aufloesung) >= ?)", year); } i.setOrder("ORDER BY nummer, bezeichnung"); - return i; + return PseudoIterator.asList(i); } } diff --git a/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java b/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java index 1681d2168..1d59d33ae 100644 --- a/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java +++ b/src/de/jost_net/JVerein/gui/view/EinstellungenBuchfuehrungView.java @@ -38,6 +38,8 @@ public void bind() throws Exception cont.addLabelPair("Beginn Geschäftsjahr (TT.MM.)", control.getBeginnGeschaeftsjahr()); + cont.addLabelPair("Intervall für aktive Konten (Jahre)", + control.getUnterdrueckungKonten()); cont.addLabelPair("Buchungsarten die seit x Monaten nicht benutzt werden unterdrücken", control.getUnterdrueckungLaenge()); cont.addInput(control.getAutoBuchunguebernahme()); diff --git a/src/de/jost_net/JVerein/rmi/Einstellung.java b/src/de/jost_net/JVerein/rmi/Einstellung.java index 2ded7232a..6ff94d2e1 100644 --- a/src/de/jost_net/JVerein/rmi/Einstellung.java +++ b/src/de/jost_net/JVerein/rmi/Einstellung.java @@ -271,6 +271,11 @@ public void setUnterdrueckungOhneBuchung(Boolean unterdrueckungohnebuchung) public void setUnterdrueckungLaenge(int unterdrueckunglaenge) throws RemoteException; + + public int getUnterdrueckungKonten() throws RemoteException; + + public void setUnterdrueckungKonten(int unterdrueckungkonten) + throws RemoteException; public Boolean getKontonummerInBuchungsliste() throws RemoteException; diff --git a/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0433.java b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0433.java new file mode 100644 index 000000000..e8e308a0a --- /dev/null +++ b/src/de/jost_net/JVerein/server/DDLTool/Updates/Update0433.java @@ -0,0 +1,36 @@ +/********************************************************************** + * 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 Update0433 extends AbstractDDLUpdate +{ + public Update0433(String driver, ProgressMonitor monitor, Connection conn) + { + super(driver, monitor, conn); + } + + @Override + public void run() throws ApplicationException + { + execute(addColumn("einstellung", new Column("unterdrueckungkonten", + COLTYPE.INTEGER, 0, null, false, false))); + } +} diff --git a/src/de/jost_net/JVerein/server/EinstellungImpl.java b/src/de/jost_net/JVerein/server/EinstellungImpl.java index ccad13e09..8b3b8475c 100644 --- a/src/de/jost_net/JVerein/server/EinstellungImpl.java +++ b/src/de/jost_net/JVerein/server/EinstellungImpl.java @@ -1677,6 +1677,23 @@ public void setUnterdrueckungLaenge(int unterdrueckunglaenge) throws RemoteExcep { setAttribute("unterdrueckunglaenge", unterdrueckunglaenge); } + + @Override + public int getUnterdrueckungKonten() throws RemoteException + { + try { + return (int) getAttribute("unterdrueckungkonten"); + } catch (NullPointerException e) { + return 2; + } + } + + @Override + public void setUnterdrueckungKonten(int unterdrueckungkonten) throws RemoteException + { + setAttribute("unterdrueckungkonten", unterdrueckungkonten); + } + @Override public Boolean getKontonummerInBuchungsliste() throws RemoteException