Skip to content

Commit

Permalink
Aussagekräftige Fehlermeldungen beim Löschen (#378)
Browse files Browse the repository at this point in the history
* Aussagekräftige Fehlermeldungen beim Löschen
Außerdem Fehler bei Formular Duplizieren behoben

* Meldung bei Löschen von Beitragsgruppe und Formular erweitert

* Tippfehler
  • Loading branch information
lenilsas authored Oct 18, 2024
1 parent 3435411 commit 6146261
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 8 deletions.
38 changes: 32 additions & 6 deletions src/de/jost_net/JVerein/gui/action/BeitragsgruppeDeleteAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.rmi.Beitragsgruppe;
import de.jost_net.JVerein.rmi.Mitglied;
import de.jost_net.JVerein.rmi.MitgliedNextBGruppe;
import de.jost_net.JVerein.rmi.SekundaereBeitragsgruppe;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
Expand Down Expand Up @@ -53,14 +55,38 @@ public void handleAction(Object context) throws ApplicationException
{
return;
}
DBIterator<Mitglied> mitgl = Einstellungen.getDBService()
.createList(Mitglied.class);
mitgl.addFilter("beitragsgruppe = ?", new Object[] { bg.getID() });
if (mitgl.size() > 0)
if(bg.getSekundaer())
{
DBIterator<SekundaereBeitragsgruppe> sek = Einstellungen.getDBService()
.createList(SekundaereBeitragsgruppe.class);
sek.addFilter("beitragsgruppe = ?", new Object[] { bg.getID() });
if (sek.size() > 0)
{
throw new ApplicationException(String.format(
"Beitragsgruppe '%s' kann nicht gelöscht werden. %d Mitglied(er) sind dieser sekundären Beitragsgruppe zugeordnet.",
bg.getBezeichnung(), sek.size()));
}
}
else
{
DBIterator<Mitglied> mitgl = Einstellungen.getDBService()
.createList(Mitglied.class);
mitgl.addFilter("beitragsgruppe = ?", new Object[] { bg.getID() });
if (mitgl.size() > 0)
{
throw new ApplicationException(String.format(
"Beitragsgruppe '%s' kann nicht gelöscht werden. %d Mitglied(er) sind dieser Beitragsgruppe zugeordnet.",
bg.getBezeichnung(), mitgl.size()));
}
}
DBIterator<MitgliedNextBGruppe> nextbg = Einstellungen.getDBService()
.createList(MitgliedNextBGruppe.class);
nextbg.addFilter("beitragsgruppe = ?", new Object[] { bg.getID() });
if (nextbg.size() > 0)
{
throw new ApplicationException(String.format(
"Beitragsgruppe '%s' kann nicht gelöscht werden. %d Mitglied(er) sind dieser Beitragsgruppe zugeordnet.",
bg.getBezeichnung(), mitgl.size()));
"Beitragsgruppe '%s' kann nicht gelöscht werden. Bei %d Mitglied(er) ist diese Beitragsgruppe als zukünftige Beitragsgrupe hinterlegt.",
bg.getBezeichnung(), nextbg.size()));
}
YesNoDialog d = new YesNoDialog(YesNoDialog.POSITION_CENTER);
d.setTitle("Beitragsgruppe löschen");
Expand Down
12 changes: 12 additions & 0 deletions src/de/jost_net/JVerein/gui/action/FormularDeleteAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.rmi.Formular;
import de.jost_net.JVerein.rmi.Spendenbescheinigung;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.dialogs.AbstractDialog;
Expand Down Expand Up @@ -55,6 +57,16 @@ public void handleAction(Object context) throws ApplicationException
return;
}

DBIterator<Spendenbescheinigung> spb = Einstellungen.getDBService()
.createList(Spendenbescheinigung.class);
spb.addFilter("formular = ?", new Object[] { f.getID() });
if (spb.size() > 0)
{
throw new ApplicationException(String.format(
"Forular '%s' kann nicht gelöscht werden. Es ist bei %d Spendenbescheinigung(en) hinterlegt.",
f.getBezeichnung(), spb.size()));
}

// Do not delete a form if it is linked by other forms
if (f.hasFormlinks())
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public void handleAction(Object context) throws ApplicationException
ff2.setFormular(f2);
ff2.store();
}
control.refreshTable();
control.refreshFormularTable();
}
catch (Exception e)
{
Expand Down
13 changes: 13 additions & 0 deletions src/de/jost_net/JVerein/gui/action/KontoDeleteAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@

import java.rmi.RemoteException;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.rmi.Buchung;
import de.jost_net.JVerein.rmi.Konto;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.dialogs.YesNoDialog;
Expand All @@ -45,6 +48,16 @@ public void handleAction(Object context) throws ApplicationException
{
return;
}
DBIterator<Buchung> it = Einstellungen.getDBService()
.createList(Buchung.class);
it.addFilter("konto = ?", new Object[] { k.getID() });
it.setLimit(1);
if (it.hasNext())
{
throw new ApplicationException(String.format(
"Konto '%s' kann nicht gelöscht werden. Es existieren Buchungen auf diesem Konto.",
k.getBezeichnung()));
}
YesNoDialog d = new YesNoDialog(YesNoDialog.POSITION_CENTER);
d.setTitle("Konto löschen");
d.setText("Wollen Sie dieses Konto wirklich löschen?");
Expand Down
14 changes: 13 additions & 1 deletion src/de/jost_net/JVerein/gui/action/LehrgangsartDeleteAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@

import java.rmi.RemoteException;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.rmi.Lehrgang;
import de.jost_net.JVerein.rmi.Lehrgangsart;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.dialogs.YesNoDialog;
Expand Down Expand Up @@ -51,7 +54,16 @@ public void handleAction(Object context) throws ApplicationException
{
return;
}

DBIterator<Lehrgang> it = Einstellungen.getDBService()
.createList(Lehrgang.class);
it.addFilter("lehrgangsart = ?", new Object[] { l.getID() });
it.setLimit(1);
if (it.hasNext())
{
throw new ApplicationException(String.format(
"Lehrgangsart '%s' kann nicht gelöscht werden. Es existieren Lehrgänge dieser Art.",
l.getBezeichnung()));
}
YesNoDialog d = new YesNoDialog(YesNoDialog.POSITION_CENTER);
d.setTitle("Lehrgangsart löschen");
d.setText("Wollen Sie diese Lehrgangsart wirklich löschen?");
Expand Down
13 changes: 13 additions & 0 deletions src/de/jost_net/JVerein/gui/action/MitgliedstypDeleteAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@

import java.rmi.RemoteException;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.rmi.Adresstyp;
import de.jost_net.JVerein.rmi.Mitglied;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.dialogs.YesNoDialog;
Expand Down Expand Up @@ -49,6 +52,16 @@ public void handleAction(Object context) throws ApplicationException
{
return;
}
DBIterator<Mitglied> it = Einstellungen.getDBService()
.createList(Mitglied.class);
it.addFilter("adresstyp = ?", new Object[] { at.getID() });
it.setLimit(1);
if (it.hasNext())
{
throw new ApplicationException(String.format(
"Mitgliedstyp '%s' kann nicht gelöscht werden. Es existieren Nicht-Mitglieder dieses Typs.",
at.getBezeichnung()));
}
YesNoDialog d = new YesNoDialog(YesNoDialog.POSITION_CENTER);
d.setTitle("Mitgliedstyp löschen");
d.setText("Wollen Sie diesen Mitgliedstyp wirklich löschen?");
Expand Down
13 changes: 13 additions & 0 deletions src/de/jost_net/JVerein/gui/action/ProjektDeleteAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@

import java.rmi.RemoteException;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.rmi.Buchung;
import de.jost_net.JVerein.rmi.Projekt;
import de.willuhn.datasource.rmi.DBIterator;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.dialogs.YesNoDialog;
Expand All @@ -45,6 +48,16 @@ public void handleAction(Object context) throws ApplicationException
{
return;
}
DBIterator<Buchung> it = Einstellungen.getDBService()
.createList(Buchung.class);
it.addFilter("projekt = ?", new Object[] { p.getID() });
it.setLimit(1);
if (it.hasNext())
{
throw new ApplicationException(String.format(
"Projekt '%s' kann nicht gelöscht werden. Es existieren Buchungen mit diesem Projekt.",
p.getBezeichnung()));
}
YesNoDialog d = new YesNoDialog(YesNoDialog.POSITION_CENTER);
d.setTitle("Projekt löschen");
d.setText("Wollen Sie dieses Projekt wirklich löschen?");
Expand Down

0 comments on commit 6146261

Please sign in to comment.