Skip to content

Commit

Permalink
Zugeordnete Buchungen in Sollbuchung View anzeigen (#624)
Browse files Browse the repository at this point in the history
* Zugeordnete Buchungen in Sollbuchung View anzeigen

* Benutze List

---------

Co-authored-by: Johann Maierhofer <[email protected]>
  • Loading branch information
JohannMaierhofer and Johann Maierhofer authored Jan 30, 2025
1 parent 05ad4e3 commit cdfcce6
Show file tree
Hide file tree
Showing 10 changed files with 243 additions and 166 deletions.
45 changes: 14 additions & 31 deletions src/de/jost_net/JVerein/gui/control/MitgliedskontoControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@
import de.jost_net.JVerein.Messaging.MitgliedskontoMessage;
import de.jost_net.JVerein.Queries.SollbuchungQuery;
import de.jost_net.JVerein.gui.action.SollbuchungPositionEditAction;
import de.jost_net.JVerein.gui.formatter.BuchungsartFormatter;
import de.jost_net.JVerein.gui.formatter.BuchungsklasseFormatter;
import de.jost_net.JVerein.gui.formatter.ZahlungswegFormatter;
import de.jost_net.JVerein.gui.input.MitgliedInput;
import de.jost_net.JVerein.gui.menu.MitgliedskontoMenu;
import de.jost_net.JVerein.gui.menu.SollbuchungPositionMenu;
import de.jost_net.JVerein.gui.parts.BuchungListPart;
import de.jost_net.JVerein.gui.parts.SollbuchungListTablePart;
import de.jost_net.JVerein.gui.parts.SollbuchungPositionListPart;
import de.jost_net.JVerein.gui.view.BuchungView;
import de.jost_net.JVerein.gui.view.SollbuchungDetailView;
import de.jost_net.JVerein.io.Kontoauszug;
Expand Down Expand Up @@ -211,7 +211,7 @@ public TextAreaInput getZweck1() throws RemoteException
z = getMitgliedskonto().getZweck1();
}
zweck1 = new TextAreaInput(z, 500);
zweck1.setHeight(50);
zweck1.setHeight(30);
zweck1.setMandatory(true);
return zweck1;
}
Expand Down Expand Up @@ -524,55 +524,38 @@ private void refreshMitgliedkonto2() throws RemoteException
mitgliedskontoList2.sort();
}

public Part getBuchungenList(boolean hasRechnung) throws RemoteException
public Part getSollbuchungPositionListPart(boolean hasRechnung) throws RemoteException
{
if (buchungList != null)
{
return buchungList;
}
DBIterator<SollbuchungPosition> sps = Einstellungen.getDBService()
.createList(SollbuchungPosition.class);
sps.addFilter("sollbuchung = ?", getMitgliedskonto().getID());
ArrayList<SollbuchungPosition> list = getMitgliedskonto()
.getSollbuchungPositionList();

if (hasRechnung)
{
buchungList = new TablePart(sps, null);
buchungList = new SollbuchungPositionListPart(list, null);
}
else
{
buchungList = new TablePart(sps, new SollbuchungPositionEditAction());
}
buchungList.addColumn("Datum", "datum",
new DateFormatter(new JVDateFormatTTMMJJJJ()));
buchungList.addColumn("Zweck", "zweck");
buchungList.addColumn("Betrag", "betrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
if (Einstellungen.getEinstellung().getOptiert())
{
buchungList.addColumn("Nettobetrag", "nettobetrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
buchungList.addColumn("Steuersatz", "steuersatz");
buchungList.addColumn("Steuerbetrag", "steuerbetrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
}
buchungList.addColumn("Buchungsart", "buchungsart",
new BuchungsartFormatter());
if (Einstellungen.getEinstellung().getBuchungsklasseInBuchung())
{
buchungList.addColumn("Buchungsklasse", "buchungsklasse",
new BuchungsklasseFormatter());
buchungList = new SollbuchungPositionListPart(list,
new SollbuchungPositionEditAction());
}

buchungList.setRememberColWidths(true);
if (!hasRechnung)
{
buchungList.setContextMenu(new SollbuchungPositionMenu());
}
buchungList.setRememberOrder(true);
buchungList.addFeature(new FeatureSummary());
return buchungList;
}

public Part getBuchungListPart() throws RemoteException
{
return new BuchungListPart(getMitgliedskonto().getBuchungList(), null);
}

private GenericIterator<Mitglied> getMitgliedIterator() throws RemoteException
{
DBIterator<Mitglied> mitglieder = Einstellungen.getDBService()
Expand Down
40 changes: 4 additions & 36 deletions src/de/jost_net/JVerein/gui/control/RechnungControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.action.RechnungAction;
import de.jost_net.JVerein.gui.control.MitgliedskontoControl.DIFFERENZ;
import de.jost_net.JVerein.gui.formatter.BuchungsartFormatter;
import de.jost_net.JVerein.gui.formatter.BuchungsklasseFormatter;
import de.jost_net.JVerein.gui.formatter.ZahlungswegFormatter;
import de.jost_net.JVerein.gui.input.BICInput;
import de.jost_net.JVerein.gui.input.FormularInput;
Expand All @@ -35,12 +33,12 @@
import de.jost_net.JVerein.gui.input.MailAuswertungInput;
import de.jost_net.JVerein.gui.input.PersonenartInput;
import de.jost_net.JVerein.gui.menu.RechnungMenu;
import de.jost_net.JVerein.gui.parts.SollbuchungPositionListPart;
import de.jost_net.JVerein.io.Rechnungsausgabe;
import de.jost_net.JVerein.keys.FormularArt;
import de.jost_net.JVerein.keys.Zahlungsweg;
import de.jost_net.JVerein.rmi.Mitglied;
import de.jost_net.JVerein.rmi.Rechnung;
import de.jost_net.JVerein.rmi.SollbuchungPosition;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
import de.jost_net.JVerein.util.StringTool;
import de.willuhn.datasource.GenericIterator;
Expand Down Expand Up @@ -663,44 +661,14 @@ public TextInput getLeitwegID() throws RemoteException
return leitwegID;
}

public Part getBuchungenList() throws RemoteException
public Part getSollbuchungPositionListPart() throws RemoteException
{
if (buchungList != null)
{
return buchungList;
}
DBIterator<SollbuchungPosition> sps = Einstellungen.getDBService()
.createList(SollbuchungPosition.class);
sps.join("mitgliedskonto");
sps.addFilter("mitgliedskonto.id = sollbuchungposition.sollbuchung");
sps.addFilter("mitgliedskonto.rechnung = ?", getRechnung().getID());
sps.setOrder("order by sollbuchungposition.datum");

buchungList = new TablePart(sps, null);
buchungList.addColumn("Datum", "datum",
new DateFormatter(new JVDateFormatTTMMJJJJ()));
buchungList.addColumn("Zweck", "zweck");
buchungList.addColumn("Betrag", "betrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
if (Einstellungen.getEinstellung().getOptiert())
{
buchungList.addColumn("Nettobetrag", "nettobetrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
buchungList.addColumn("Steuersatz", "steuersatz");
buchungList.addColumn("Steuerbetrag", "steuerbetrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
}
buchungList.addColumn("Buchungsart", "buchungsart",
new BuchungsartFormatter());
if (Einstellungen.getEinstellung().getBuchungsklasseInBuchung())
{
buchungList.addColumn("Buchungsklasse", "buchungsklasse",
new BuchungsklasseFormatter());
}

buchungList.setRememberColWidths(true);
buchungList.setRememberOrder(true);
buchungList.addFeature(new FeatureSummary());
buchungList = new SollbuchungPositionListPart(
getRechnung().getSollbuchungPositionList(), null);
return buchungList;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,16 @@
import de.jost_net.JVerein.Variable.VarTools;
import de.jost_net.JVerein.gui.action.SpendenbescheinigungAction;
import de.jost_net.JVerein.gui.action.SpendenbescheinigungPrintAction;
import de.jost_net.JVerein.gui.formatter.BuchungsartFormatter;
import de.jost_net.JVerein.gui.formatter.JaNeinFormatter;
import de.jost_net.JVerein.gui.formatter.MitgliedskontoFormatter;
import de.jost_net.JVerein.gui.input.FormularInput;
import de.jost_net.JVerein.gui.input.MailAuswertungInput;
import de.jost_net.JVerein.gui.menu.SpendenbescheinigungMenu;
import de.jost_net.JVerein.gui.parts.BuchungListTablePart;
import de.jost_net.JVerein.gui.parts.BuchungListPart;
import de.jost_net.JVerein.gui.view.SpendenbescheinigungMailView;
import de.jost_net.JVerein.io.FileViewer;
import de.jost_net.JVerein.io.MailSender;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
import de.jost_net.JVerein.io.SpendenbescheinigungExportCSV;
import de.jost_net.JVerein.io.SpendenbescheinigungExportPDF;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
import de.jost_net.JVerein.keys.Adressblatt;
import de.jost_net.JVerein.keys.Ausgabeart;
import de.jost_net.JVerein.keys.FormularArt;
Expand All @@ -64,7 +61,6 @@
import de.jost_net.JVerein.keys.SuchSpendenart;
import de.jost_net.JVerein.rmi.Buchung;
import de.jost_net.JVerein.rmi.Formular;
import de.jost_net.JVerein.rmi.Konto;
import de.jost_net.JVerein.rmi.Mail;
import de.jost_net.JVerein.rmi.MailAnhang;
import de.jost_net.JVerein.rmi.MailEmpfaenger;
Expand Down Expand Up @@ -137,14 +133,12 @@ public class SpendenbescheinigungControl extends DruckMailControl

private CheckboxInput unterlagenwertermittlung;

private TablePart buchungsList;

private Spendenbescheinigung spendenbescheinigung;

private boolean and = false;

private String sql = "";

private boolean editable = false;

final static String ExportPDF = "PDF";
Expand Down Expand Up @@ -452,81 +446,9 @@ public CheckboxInput getUnterlagenWertermittlung() throws RemoteException
return unterlagenwertermittlung;
}

public Part getBuchungsList() throws RemoteException
public Part getBuchungListPart() throws RemoteException
{
Spendenbescheinigung spb = getSpendenbescheinigung();
if (buchungsList == null)
{

buchungsList = new BuchungListTablePart(spb.getBuchungen(), null);
buchungsList.addColumn("Nr", "id-int");
buchungsList.addColumn("Konto", "konto", new Formatter()
{

@Override
public String format(Object o)
{
Konto k = (Konto) o;
if (k != null)
{
try
{
return k.getBezeichnung();
}
catch (RemoteException e)
{
Logger.error("Fehler", e);
}
}
return "";
}
});
buchungsList.addColumn("Datum", "datum",
new DateFormatter(new JVDateFormatTTMMJJJJ()));
buchungsList.addColumn("Auszug", "auszugsnummer");
buchungsList.addColumn("Blatt", "blattnummer");
buchungsList.addColumn("Name", "name");
buchungsList.addColumn("Verwendungszweck", "zweck", new Formatter()
{

@Override
public String format(Object value)
{
if (value == null)
{
return null;
}
String s = value.toString();
s = s.replaceAll("\r\n", " ");
s = s.replaceAll("\r", " ");
s = s.replaceAll("\n", " ");
return s;
}
});
buchungsList.addColumn("Buchungsart", "buchungsart",
new BuchungsartFormatter());
buchungsList.addColumn("Betrag", "betrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
buchungsList.addColumn("Mitglied", "mitgliedskonto",
new MitgliedskontoFormatter());
buchungsList.addColumn("Ersatz für Aufwendungen", "verzicht", new JaNeinFormatter());
buchungsList.setMulti(true);
// buchungsList.setContextMenu(new BuchungMenu(this));
buchungsList.setRememberColWidths(true);
buchungsList.setRememberOrder(true);
buchungsList.setRememberState(true);
buchungsList.addFeature(new FeatureSummary());
}
else
{
buchungsList.removeAll();
for (Buchung bu : spb.getBuchungen())
{
buchungsList.addItem(bu);
}
buchungsList.sort();
}
return buchungsList;
return new BuchungListPart(getSpendenbescheinigung().getBuchungen(), null);
}

/**
Expand Down
99 changes: 99 additions & 0 deletions src/de/jost_net/JVerein/gui/parts/BuchungListPart.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/**********************************************************************
* Copyright (c) by Heiner Jostkleigrewe
* 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 <http://www.gnu.org/licenses/>.
*
* [email protected]
* www.jverein.de
**********************************************************************/
package de.jost_net.JVerein.gui.parts;

import java.rmi.RemoteException;
import java.util.List;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.formatter.BuchungsartFormatter;
import de.jost_net.JVerein.gui.formatter.JaNeinFormatter;
import de.jost_net.JVerein.gui.formatter.MitgliedskontoFormatter;
import de.jost_net.JVerein.rmi.Buchung;
import de.jost_net.JVerein.rmi.Konto;
import de.jost_net.JVerein.util.JVDateFormatTTMMJJJJ;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.formatter.CurrencyFormatter;
import de.willuhn.jameica.gui.formatter.DateFormatter;
import de.willuhn.jameica.gui.formatter.Formatter;
import de.willuhn.jameica.gui.parts.TablePart;
import de.willuhn.logging.Logger;

public class BuchungListPart extends TablePart
{
public BuchungListPart(Action action)
{
super(action);
}

public BuchungListPart(List<Buchung> list, Action action)
{
super(list, action);

addColumn("Nr", "id-int");
addColumn("Konto", "konto", new Formatter()
{

@Override
public String format(Object o)
{
Konto k = (Konto) o;
if (k != null)
{
try
{
return k.getBezeichnung();
}
catch (RemoteException e)
{
Logger.error("Fehler", e);
}
}
return "";
}
});
addColumn("Datum", "datum", new DateFormatter(new JVDateFormatTTMMJJJJ()));
addColumn("Auszug", "auszugsnummer");
addColumn("Blatt", "blattnummer");
addColumn("Name", "name");
addColumn("Verwendungszweck", "zweck", new Formatter()
{

@Override
public String format(Object value)
{
if (value == null)
{
return null;
}
String s = value.toString();
s = s.replaceAll("\r\n", " ");
s = s.replaceAll("\r", " ");
s = s.replaceAll("\n", " ");
return s;
}
});
addColumn("Buchungsart", "buchungsart", new BuchungsartFormatter());
addColumn("Betrag", "betrag",
new CurrencyFormatter("", Einstellungen.DECIMALFORMAT));
addColumn("Mitglied", "mitgliedskonto", new MitgliedskontoFormatter());
addColumn("Ersatz für Aufwendungen", "verzicht", new JaNeinFormatter());
setRememberColWidths(true);
setRememberOrder(true);
setRememberState(true);
}
}
Loading

0 comments on commit cdfcce6

Please sign in to comment.