Skip to content

Commit

Permalink
Gesamtsumme in Sollbuchungen View (#252)
Browse files Browse the repository at this point in the history
  • Loading branch information
JohannMaierhofer authored Jul 9, 2024
1 parent e27dc5f commit 0e14327
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import de.jost_net.JVerein.gui.input.BuchungsartInput;
import de.jost_net.JVerein.gui.input.FormularInput;
import de.jost_net.JVerein.gui.menu.MitgliedskontoMenu;
import de.jost_net.JVerein.gui.parts.SollbuchungListTablePart;
import de.jost_net.JVerein.io.Kontoauszug;
import de.jost_net.JVerein.io.Mahnungsausgabe;
import de.jost_net.JVerein.io.Rechnungsausgabe;
Expand Down Expand Up @@ -680,7 +681,7 @@ public TablePart getMitgliedskontoList(Action action, ContextMenu menu, boolean
settings.setAttribute(datumverwendung + "differenz", getDifferenz().getValue().toString());
if (mitgliedskontoList == null)
{
mitgliedskontoList = new TablePart(mitgliedskonten, action);
mitgliedskontoList = new SollbuchungListTablePart(mitgliedskonten, action);
mitgliedskontoList.addColumn("Datum", "datum",
new DateFormatter(new JVDateFormatTTMMJJJJ()));
mitgliedskontoList.addColumn("Abrechnungslauf", "abrechnungslauf");
Expand Down
52 changes: 30 additions & 22 deletions src/de/jost_net/JVerein/gui/parts/BuchungListTablePart.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
import de.jost_net.JVerein.rmi.Buchung;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.parts.TablePart;
import de.willuhn.jameica.gui.parts.table.Feature;
import de.willuhn.jameica.gui.parts.table.FeatureSummary;
import de.willuhn.jameica.gui.parts.table.Feature.Context;

public class BuchungListTablePart extends TablePart
{
Expand All @@ -37,36 +40,41 @@ public BuchungListTablePart(List<Buchung> list, Action action)
{
super(list, action);
}

/**
* Liefert den anzuzeigenden Summen-Text. Kann von abgeleiteten Klassen
* ueberschrieben werde, um etwas anderes anzuzeigen.
*
* @return anzuzeigender Text oder null, wenn nichts angezeigt werden soll.
* Belegt den Context mit dem anzuzeigenden Text.
* Ersetzt getSummary() welches deprecated ist.
*/
@SuppressWarnings("unchecked")
@Override
protected String getSummary()
protected Context createFeatureEventContext(Feature.Event e, Object data)
{
String summary = super.getSummary();
double sumBetrag = 0.0;
try
Context ctx = super.createFeatureEventContext(e, data);
if (this.hasEvent(FeatureSummary.class,e))
{
@SuppressWarnings("rawtypes")
List l = this.getItems();
for (int i = 0; i < l.size(); i++)
double sumBetrag = 0.0;
String summary = "";
try
{
Buchung b = (Buchung) l.get(i);
sumBetrag += b.getBetrag();
@SuppressWarnings("rawtypes")
List l = this.getItems();
summary = new String(l.size() + " Datensätze");
for (int i = 0; i < l.size(); i++)
{
Buchung b = (Buchung) l.get(i);
sumBetrag += b.getBetrag();
}
summary += " / " + "Gesamtbetrag:" + " "
+ Einstellungen.DECIMALFORMAT.format(sumBetrag) + " "
+ Einstellungen.CURRENCY;
}
summary += " / " + "Gesamtbetrag:" + " "
+ Einstellungen.DECIMALFORMAT.format(sumBetrag) + " "
+ Einstellungen.CURRENCY;
}
catch (RemoteException re)
{
// nichts tun
catch (RemoteException re)
{
// nichts tun
}
ctx.addon.put(FeatureSummary.CTX_KEY_TEXT,summary);
}
return summary;
return ctx;
}

}
82 changes: 82 additions & 0 deletions src/de/jost_net/JVerein/gui/parts/SollbuchungListTablePart.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/**********************************************************************
* 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/>.
*
* heiner@jverein.de
* 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.rmi.Mitgliedskonto;
import de.willuhn.datasource.GenericIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.parts.TablePart;
import de.willuhn.jameica.gui.parts.table.Feature;
import de.willuhn.jameica.gui.parts.table.Feature.Context;
import de.willuhn.jameica.gui.parts.table.FeatureSummary;

public class SollbuchungListTablePart extends TablePart
{

public SollbuchungListTablePart(Action action)
{
super(action);
}

@SuppressWarnings("rawtypes")
public SollbuchungListTablePart(GenericIterator mitgliedskonten, Action action)
{
super(mitgliedskonten, action);
}

/**
* Belegt den Context mit dem anzuzeigenden Text.
* Ersetzt getSummary() welches deprecated ist.
*/
@SuppressWarnings("unchecked")
@Override
protected Context createFeatureEventContext(Feature.Event e, Object data)
{
Context ctx = super.createFeatureEventContext(e, data);
if (this.hasEvent(FeatureSummary.class,e))
{
double sumBetrag = 0.0;
String summary = "";
try
{
@SuppressWarnings("rawtypes")
List l = this.getItems();
summary = new String(l.size() + " Datensätze");
for (int i = 0; i < l.size(); i++)
{
Mitgliedskonto b = (Mitgliedskonto) l.get(i);
sumBetrag += b.getBetrag();
}
summary += " / " + "Gesamtbetrag:" + " "
+ Einstellungen.DECIMALFORMAT.format(sumBetrag) + " "
+ Einstellungen.CURRENCY;
}
catch (RemoteException re)
{
// nichts tun
}
ctx.addon.put(FeatureSummary.CTX_KEY_TEXT,summary);
}
return ctx;
}

}

0 comments on commit 0e14327

Please sign in to comment.