### Eclipse Workspace Patch 1.0 #P jverein diff --git src/de/jost_net/JVerein/gui/control/BeitragsgruppeControl.java src/de/jost_net/JVerein/gui/control/BeitragsgruppeControl.java index 09448ee..e05e6e2 100644 --- src/de/jost_net/JVerein/gui/control/BeitragsgruppeControl.java +++ src/de/jost_net/JVerein/gui/control/BeitragsgruppeControl.java @@ -23,6 +23,7 @@ import de.jost_net.JVerein.gui.action.BeitragsgruppeDetailAction; import de.jost_net.JVerein.gui.menu.BeitragsgruppeMenu; import de.jost_net.JVerein.keys.ArtBeitragsart; +import de.jost_net.JVerein.keys.BuchungsartSort; import de.jost_net.JVerein.rmi.Beitragsgruppe; import de.jost_net.JVerein.rmi.Buchungsart; import de.willuhn.datasource.rmi.DBIterator; @@ -188,7 +189,23 @@ return buchungsart; } DBIterator it = Einstellungen.getDBService().createList(Buchungsart.class); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + it.setOrder("ORDER BY nummer"); + } + else + { + it.setOrder("ORDER BY bezeichnung"); + } buchungsart = new SelectInput(it, getBeitragsgruppe().getBuchungsart()); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + buchungsart.setAttribute("nrbezeichnung"); + } + else + { + buchungsart.setAttribute("bezeichnung"); + } buchungsart.setPleaseChoose("bitte auswählen"); return buchungsart; } diff --git src/de/jost_net/JVerein/gui/control/BuchungsControl.java src/de/jost_net/JVerein/gui/control/BuchungsControl.java index fa433d9..8f77a7f 100644 --- src/de/jost_net/JVerein/gui/control/BuchungsControl.java +++ src/de/jost_net/JVerein/gui/control/BuchungsControl.java @@ -53,6 +53,7 @@ import de.jost_net.JVerein.io.SplitbuchungsContainer; import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung; import de.jost_net.JVerein.keys.BuchungBuchungsartAuswahl; +import de.jost_net.JVerein.keys.BuchungsartSort; import de.jost_net.JVerein.keys.SplitbuchungTyp; import de.jost_net.JVerein.keys.Zahlungsweg; import de.jost_net.JVerein.rmi.Buchung; @@ -447,12 +448,27 @@ } DBIterator list = Einstellungen.getDBService() .createList(Buchungsart.class); - list.setOrder("ORDER BY nummer"); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + list.setOrder("ORDER BY nummer"); + } + else + { + list.setOrder("ORDER BY bezeichnung"); + } switch (Einstellungen.getEinstellung().getBuchungBuchungsartAuswahl()) { case BuchungBuchungsartAuswahl.ComboBox: buchungsart = new SelectInput(list, getBuchung().getBuchungsart()); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + ((SelectInput) buchungsart).setAttribute("nrbezeichnung"); + } + else + { + ((SelectInput) buchungsart).setAttribute("bezeichnung"); + } ((SelectInput) buchungsart).setPleaseChoose("Bitte auswählen"); break; case BuchungBuchungsartAuswahl.SearchInput: @@ -565,7 +581,14 @@ } DBIterator list = Einstellungen.getDBService() .createList(Buchungsart.class); - list.setOrder("ORDER BY nummer"); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + list.setOrder("ORDER BY nummer"); + } + else + { + list.setOrder("ORDER BY bezeichnung"); + } ArrayList liste = new ArrayList(); Buchungsart b1 = (Buchungsart) Einstellungen.getDBService().createObject( Buchungsart.class, null); @@ -596,7 +619,15 @@ suchbuchungsart = new SelectInput(liste, b); suchbuchungsart.addListener(new FilterListener()); - suchbuchungsart.setAttribute("bezeichnung"); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + suchbuchungsart.setAttribute("nrbezeichnung"); + } + else + { + suchbuchungsart.setAttribute("bezeichnung"); + } + return suchbuchungsart; } diff --git src/de/jost_net/JVerein/gui/control/BuchungsartControl.java src/de/jost_net/JVerein/gui/control/BuchungsartControl.java index 462c890..5e614df 100644 --- src/de/jost_net/JVerein/gui/control/BuchungsartControl.java +++ src/de/jost_net/JVerein/gui/control/BuchungsartControl.java @@ -34,7 +34,7 @@ import de.jost_net.JVerein.io.FileViewer; import de.jost_net.JVerein.io.Reporter; import de.jost_net.JVerein.keys.ArtBuchungsart; -import de.jost_net.JVerein.rmi.Buchung; +import de.jost_net.JVerein.keys.BuchungsartSort; import de.jost_net.JVerein.rmi.Buchungsart; import de.jost_net.JVerein.rmi.Buchungsklasse; import de.jost_net.JVerein.util.Dateiname; @@ -152,10 +152,24 @@ } DBIterator list = Einstellungen.getDBService().createList( Buchungsklasse.class); - list.setOrder("ORDER BY nummer"); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + list.setOrder("ORDER BY nummer"); + } + else + { + list.setOrder("ORDER BY bezeichnung"); + } buchungsklasse = new SelectInput(list, getBuchungsart().getBuchungsklasse()); buchungsklasse.setValue(getBuchungsart().getBuchungsklasse()); - buchungsklasse.setAttribute("bezeichnung"); + if (Einstellungen.getEinstellung().getBuchungsartSort() == BuchungsartSort.NACH_NUMMER) + { + buchungsklasse.setAttribute("nrbezeichnung"); + } + else + { + buchungsklasse.setAttribute("bezeichnung"); + } buchungsklasse.setPleaseChoose("Bitte auswählen"); return buchungsklasse; } diff --git src/de/jost_net/JVerein/gui/control/EinstellungControl.java src/de/jost_net/JVerein/gui/control/EinstellungControl.java index ae8c213..c46805a 100644 --- src/de/jost_net/JVerein/gui/control/EinstellungControl.java +++ src/de/jost_net/JVerein/gui/control/EinstellungControl.java @@ -35,6 +35,7 @@ import de.jost_net.JVerein.keys.ArbeitsstundenModel; import de.jost_net.JVerein.keys.Beitragsmodel; import de.jost_net.JVerein.keys.BuchungBuchungsartAuswahl; +import de.jost_net.JVerein.keys.BuchungsartSort; import de.jost_net.JVerein.keys.SepaMandatIdSource; import de.jost_net.JVerein.keys.Zahlungsrhythmus; import de.jost_net.JVerein.keys.Zahlungsweg; @@ -51,6 +52,7 @@ import de.willuhn.jameica.gui.input.Input; import de.willuhn.jameica.gui.input.IntegerInput; import de.willuhn.jameica.gui.input.PasswordInput; +import de.willuhn.jameica.gui.input.RadioInput; import de.willuhn.jameica.gui.input.ScaleInput; import de.willuhn.jameica.gui.input.SelectInput; import de.willuhn.jameica.gui.input.TextAreaInput; @@ -268,6 +270,8 @@ private ScaleInput sepadatumoffset; private SelectInput buchungBuchungsartAuswahl; + + private SelectInput buchungsartsort; /** * Verschlüsselte Datei für besonders sensible Daten (Passwörter) @@ -1441,6 +1445,17 @@ return buchungBuchungsartAuswahl; } + public SelectInput getBuchungsartSort() throws RemoteException + { + if (buchungsartsort != null) + { + return buchungsartsort; + } + buchungsartsort = new SelectInput(BuchungsartSort.getArray(), + new BuchungsartSort(Einstellungen.getEinstellung().getBuchungsartSort())); + return buchungsartsort; + } + public ButtonArea getButton() throws RemoteException { return new BankverbindungDialogButton(getEinstellung(), getBlz(), @@ -1681,6 +1696,7 @@ BuchungBuchungsartAuswahl bbaAuswahl = (BuchungBuchungsartAuswahl) buchungBuchungsartAuswahl .getValue(); e.setBuchungBuchungsartAuswahl(bbaAuswahl.getKey()); + e.setBuchungsartSort(((BuchungsartSort) buchungsartsort.getValue()).getKey()); e.store(); Einstellungen.setEinstellung(e); diff --git src/de/jost_net/JVerein/gui/view/EinstellungenAnzeigeView.java src/de/jost_net/JVerein/gui/view/EinstellungenAnzeigeView.java index cc05f4c..d74ca93 100644 --- src/de/jost_net/JVerein/gui/view/EinstellungenAnzeigeView.java +++ src/de/jost_net/JVerein/gui/view/EinstellungenAnzeigeView.java @@ -78,6 +78,7 @@ // Einstellung zum Buchungsdialog right.addLabelPair("Buchungsart Auswahl", control.getBuchungBuchungsartAuswahl()); + right.addLabelPair("Buchungsart Sortierung", control.getBuchungsartSort()); right.addHeadline("* " + "Änderung erfordert Neustart"); cont.addSeparator(); diff --git src/de/jost_net/JVerein/keys/BuchungsartSort.java src/de/jost_net/JVerein/keys/BuchungsartSort.java new file mode 100644 index 0000000..1cad7ce --- /dev/null +++ src/de/jost_net/JVerein/keys/BuchungsartSort.java @@ -0,0 +1,98 @@ +/********************************************************************** + * JVerein - Mitgliederverwaltung und einfache Buchhaltung für Vereine + * Copyright (c) by Heiner Jostkleigrewe + * Copyright (c) 2015 by Thomas Hooge + * Main Project: heiner@jverein.dem http://www.jverein.de/ + * Module Author: thomas@hoogi.de, http://www.hoogi.de/ + * + * This file is part of JVerein. + * + * JVerein 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. + * + * JVerein 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.keys; + +import java.util.ArrayList; + +/** + * Schlüssel Zahlungsweg + */ +public class BuchungsartSort +{ + + public static final int NACH_BEZEICHNUNG = 1; + + public static final int NACH_NUMMER = 2; + + private int buchungsartsort; + + public BuchungsartSort(int key) + { + this.buchungsartsort = key; + } + + public int getKey() + { + return buchungsartsort; + } + + public String getText() + { + return get(buchungsartsort); + } + + public static String get(int key) + { + switch (key) + { + case NACH_BEZEICHNUNG: + return "Nach Bezeichnung"; + case NACH_NUMMER: + return "Nach Nummer"; + default: + return null; + } + } + + public static ArrayList getArray() + { + ArrayList ret = new ArrayList(); + ret.add(new BuchungsartSort(NACH_BEZEICHNUNG)); + ret.add(new BuchungsartSort(NACH_NUMMER)); + return ret; + } + + @Override + public boolean equals(Object obj) + { + if (obj instanceof BuchungsartSort) + { + BuchungsartSort v = (BuchungsartSort) obj; + return (getKey() == v.getKey()); + } + return false; + } + + @Override + public int hashCode() + { + return buchungsartsort; + } + + @Override + public String toString() + { + return get(buchungsartsort); + } +} diff --git src/de/jost_net/JVerein/rmi/Einstellung.java src/de/jost_net/JVerein/rmi/Einstellung.java index 2031fc4..2c36442 100644 --- src/de/jost_net/JVerein/rmi/Einstellung.java +++ src/de/jost_net/JVerein/rmi/Einstellung.java @@ -488,4 +488,9 @@ public int getBuchungBuchungsartAuswahl() throws RemoteException; public void setBuchungBuchungsartAuswahl(int buchungBuchungsartAuswahl) throws RemoteException; + + public int getBuchungsartSort() throws RemoteException; + + public void setBuchungsartSort(int buchungsartsort) throws RemoteException; + } diff --git src/de/jost_net/JVerein/server/BuchungsartImpl.java src/de/jost_net/JVerein/server/BuchungsartImpl.java index 7ec0049..af9d13f 100644 --- src/de/jost_net/JVerein/server/BuchungsartImpl.java +++ src/de/jost_net/JVerein/server/BuchungsartImpl.java @@ -169,7 +169,15 @@ { if (fieldName.equals("nrbezeichnung")) { - return getNummer() + " - " + getBezeichnung(); + int nr = getNummer(); + if (nr >= 0) + { + return nr + " - " + getBezeichnung(); + } + else + { + return getBezeichnung(); + } } else if (fieldName.equals("klasse-art-bez")) { diff --git src/de/jost_net/JVerein/server/BuchungsklasseImpl.java src/de/jost_net/JVerein/server/BuchungsklasseImpl.java index e8dfc14..74d6dc7 100644 --- src/de/jost_net/JVerein/server/BuchungsklasseImpl.java +++ src/de/jost_net/JVerein/server/BuchungsklasseImpl.java @@ -115,6 +115,10 @@ @Override public Object getAttribute(String fieldName) throws RemoteException { + if (fieldName.equals("nrbezeichnung")) + { + return String.valueOf(getNummer()) + " - " + getBezeichnung(); + } return super.getAttribute(fieldName); } } diff --git src/de/jost_net/JVerein/server/DDLTool/Updates/Update0387.java src/de/jost_net/JVerein/server/DDLTool/Updates/Update0387.java new file mode 100644 index 0000000..aaaa9dc --- /dev/null +++ src/de/jost_net/JVerein/server/DDLTool/Updates/Update0387.java @@ -0,0 +1,48 @@ +/********************************************************************** + * JVerein - Mitgliederverwaltung und einfache Buchhaltung für Vereine + * Copyright (c) by Heiner Jostkleigrewe + * Copyright (c) 2015 by Thomas Hooge + * Main Project: heiner@jverein.dem http://www.jverein.de/ + * Module Author: thomas@hoogi.de, http://www.hoogi.de/ + * + * This file is part of JVerein. + * + * JVerein 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. + * + * JVerein 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 Update0387 extends AbstractDDLUpdate +{ + public Update0387(String driver, ProgressMonitor monitor, Connection conn) + { + super(driver, monitor, conn); + } + + public void run() throws ApplicationException + { + // Einstellung für die Auswahlliste(n) der Buchungsart + // 1 - Standard: Nur Bezeichnung anzeigen, aufsteigend sortiert + // 2 - Nummer und Bezeichnung anzeigen, sortiert nach Nummer + execute(addColumn("einstellung", new Column("buchungsartsort", + COLTYPE.INTEGER, 10, "1", false, false))); + } +} diff --git src/de/jost_net/JVerein/server/EinstellungImpl.java src/de/jost_net/JVerein/server/EinstellungImpl.java index a60817f..1c7ce4c 100644 --- src/de/jost_net/JVerein/server/EinstellungImpl.java +++ src/de/jost_net/JVerein/server/EinstellungImpl.java @@ -1639,5 +1639,21 @@ setAttribute(COL_BUCHUNG_BUCHUNGSART_AUSWAHL, auswahl); } - + @Override + public int getBuchungsartSort() throws RemoteException + { + Integer wert = (Integer) getAttribute("buchungsartsort"); + if (wert == null) + { + return 1; + } + return wert.intValue(); + } + + @Override + public void setBuchungsartSort(int buchungsartsort) throws RemoteException + { + setAttribute("buchungsartsort", buchungsartsort); + } + }