Skip to content

Commit

Permalink
Update Buchungsart Filter (#576)
Browse files Browse the repository at this point in the history
* Update Buchungsart Filter

* Filter für Nummer wie alte Implementierung und TODO entfernt

* Fix getSuchBuchungsartArt
  • Loading branch information
JohannMaierhofer authored Jan 16, 2025
1 parent caf336b commit 366aef8
Show file tree
Hide file tree
Showing 3 changed files with 237 additions and 162 deletions.
173 changes: 58 additions & 115 deletions src/de/jost_net/JVerein/gui/control/BuchungsartControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
import de.willuhn.datasource.pseudo.PseudoIterator;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.datasource.rmi.DBService;
import de.willuhn.jameica.gui.AbstractControl;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
Expand All @@ -68,10 +67,8 @@
import de.willuhn.util.ApplicationException;
import de.willuhn.util.ProgressMonitor;

public class BuchungsartControl extends AbstractControl
public class BuchungsartControl extends FilterControl
{
private de.willuhn.jameica.system.Settings settings;

private TablePart buchungsartList;

private IntegerInput nummer;
Expand All @@ -83,20 +80,17 @@ public class BuchungsartControl extends AbstractControl
private SelectInput buchungsklasse;

private CheckboxInput spende;

private CheckboxInput abschreibung;

private SelectInput steuersatz;

private SelectInput steuer_buchungsart;

private TextInput suchtext;
private SelectInput steuer_buchungsart;

private Buchungsart buchungsart;

private SelectInput status;

private SelectInput suchstatus;


public BuchungsartControl(AbstractView view)
{
Expand Down Expand Up @@ -160,44 +154,6 @@ public SelectInput getStatus() throws RemoteException
new StatusBuchungsart(getBuchungsart().getStatus()));
return status;
}

public SelectInput getSuchStatus() throws RemoteException
{
if (suchstatus != null)
{
return suchstatus;
}
suchstatus = new SelectInput(
new String[] { "Alle", "Ohne Deaktiviert" },
settings.getString("suchstatus", "Alle"));
suchstatus.addListener(new FilterListener());
return suchstatus;
}

public class FilterListener implements Listener
{

FilterListener()
{
}

@Override
public void handleEvent(Event event)
{
if (event.type != SWT.Selection && event.type != SWT.FocusOut)
{
return;
}
try
{
getBuchungsartList();
}
catch (RemoteException e)
{
GUI.getStatusBar().setErrorText(e.getMessage());
}
}
}

public CheckboxInput getSpende() throws RemoteException
{
Expand Down Expand Up @@ -495,66 +451,11 @@ public void handleStore()
}
}

public TextInput getSuchtext()
{
if (suchtext != null)
{
return suchtext;
}
suchtext = new TextInput(settings.getString("suchtext", ""), 35);
return suchtext;
}

@SuppressWarnings("unchecked")
public Part getBuchungsartList() throws RemoteException
{

if (suchstatus != null)
{
String tmp = (String) suchstatus.getValue();
if (tmp != null)
{
settings.setAttribute("suchstatus", tmp);
}
else
{
settings.setAttribute("suchstatus", "");
}
}

if (suchtext != null)
{
String tmp = (String) suchtext.getValue();
if (tmp != null)
{
settings.setAttribute("suchtext", tmp);
}
else
{
settings.setAttribute("suchtext", "");
}
}

DBService service = Einstellungen.getDBService();
DBIterator<Buchungsart> buchungsarten = service
.createList(Buchungsart.class);
buchungsarten.addFilter("nummer >= 0");
if (suchstatus != null &&
suchstatus.getValue().toString().equalsIgnoreCase("Ohne Deaktiviert"))
buchungsarten.addFilter("status != ?", new Object[] { StatusBuchungsart.INACTIVE });
if (!getSuchtext().getValue().equals(""))
{
String text = "%" + ((String) getSuchtext().getValue()).toUpperCase()
+ "%";
buchungsarten.addFilter("(UPPER(bezeichnung) like ? or nummer like ?)",
new Object[] { text, text });
}
buchungsarten.setOrder("ORDER BY nummer");

if (buchungsartList == null)
{

buchungsartList = new TablePart(buchungsarten, new BuchungsartAction());
buchungsartList = new TablePart(getBuchungsarten(), new BuchungsartAction());
buchungsartList.addColumn("Nummer", "nummer");
buchungsartList.addColumn("Bezeichnung", "bezeichnung");
buchungsartList.addColumn("Art", "art", new Formatter()
Expand Down Expand Up @@ -622,17 +523,64 @@ public String format(Object o)
else
{
buchungsartList.removeAll();

for (Buchungsart bu : (List<Buchungsart>) PseudoIterator
.asList(buchungsarten))
DBIterator<Buchungsart> buchungsarten = getBuchungsarten();
while (buchungsarten.hasNext())
{
buchungsartList.addItem(bu);
buchungsartList.addItem(buchungsarten.next());
}
buchungsartList.sort();
}
return buchungsartList;
}

private DBIterator<Buchungsart> getBuchungsarten() throws RemoteException
{
DBService service = Einstellungen.getDBService();
DBIterator<Buchungsart> buchungsarten = service
.createList(Buchungsart.class);

if (isSuchStatusAktiv() &&
getSuchStatus().getValue().toString().equalsIgnoreCase("Ohne Deaktiviert"))
buchungsarten.addFilter("status != ?", new Object[] { StatusBuchungsart.INACTIVE });
if (isSuchnameAktiv() && !getSuchname().getValue().equals(""))
{
String text = "%" + ((String) getSuchname().getValue()).toUpperCase()
+ "%";
buchungsarten.addFilter("nummer like ?", new Object[] { text });
}
if (isSuchtextAktiv() && !getSuchtext().getValue().equals(""))
{
String text = "%" + ((String) getSuchtext().getValue()).toUpperCase()
+ "%";
buchungsarten.addFilter("UPPER(bezeichnung) like ?",
new Object[] { text });
}
if (isSuchBuchungsartArtAktiv() && getSuchBuchungsartArt().getValue() != null)
{
ArtBuchungsart art = (ArtBuchungsart) getSuchBuchungsartArt().getValue();
buchungsarten.addFilter("art = ?", new Object[] { art.getKey() });
}
if (isSuchBuchungsklasseAktiv() && getSuchBuchungsklasse().getValue() != null)
{
Buchungsklasse tmp = (Buchungsklasse) getSuchBuchungsklasse().getValue();
buchungsarten.addFilter("buchungsklasse = ?", new Object[] { tmp.getID() });
}
buchungsarten.setOrder("ORDER BY nummer");
return buchungsarten;
}

public void TabRefresh()
{
try
{
getBuchungsartList();
}
catch (RemoteException e)
{
//
}
}

public Button getPDFAusgabeButton()
{
Button b = new Button("PDF", new Action()
Expand Down Expand Up @@ -679,12 +627,7 @@ private void starteAuswertung() throws RemoteException
s = s + ".pdf";
}
final File file = new File(s);
final DBIterator<Buchungsart> it = Einstellungen.getDBService()
.createList(Buchungsart.class);
if (suchstatus != null &&
suchstatus.getValue().toString().equalsIgnoreCase("Ohne Deaktiviert"))
it.addFilter("status != ?", new Object[] { StatusBuchungsart.INACTIVE });
it.setOrder("ORDER BY nummer");
final DBIterator<Buchungsart> it = getBuchungsarten();
settings.setAttribute("lastdir", file.getParent());
BackgroundTask t = new BackgroundTask()
{
Expand Down
Loading

0 comments on commit 366aef8

Please sign in to comment.