Skip to content

Commit

Permalink
Fix Familienzahler (#256)
Browse files Browse the repository at this point in the history
* Fix Familienzahler

* Revert for austritt

* remove filter austritt

* Weiterer Fehler

* Update Fehler Text
  • Loading branch information
JohannMaierhofer authored Jul 29, 2024
1 parent 19dfc05 commit 310cc38
Showing 1 changed file with 50 additions and 2 deletions.
52 changes: 50 additions & 2 deletions src/de/jost_net/JVerein/server/MitgliedImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,26 @@ public String getPrimaryAttribute()
}

@Override
protected void deleteCheck()
protected void deleteCheck() throws ApplicationException
{
//
try
{
// Falls das Mitglied für andere zahlt kann man nicht löschen
DBIterator<Mitglied> famang = Einstellungen.getDBService()
.createList(Mitglied.class);
famang.addFilter("zahlerid = " + getID());
if (famang.hasNext())
{
throw new ApplicationException(
"Dieses Mitglied zahlt noch für andere Mitglieder. Zunächst Beitragsart der Angehörigen ändern!");
}
}
catch (RemoteException e)
{
String fehler = "Mitglied kann nicht gelöscht werden. Siehe system log";
Logger.error(fehler, e);
throw new ApplicationException(fehler);
}
}

@Override
Expand Down Expand Up @@ -232,6 +249,37 @@ && getZahlungsweg() == Zahlungsweg.BASISLASTSCHRIFT
}
}
}
if (getAustritt() == null)
{
// Person ist eingetreten
// Zahlt jemand anderes für das Mitglied?
if (getBeitragsgruppe().getBeitragsArt() == ArtBeitragsart.FAMILIE_ANGEHOERIGER
&& getZahlerID() != null)
{
// ja, suche Familien Zahler. Er darf nicht ausgetreten sein!
DBIterator<Mitglied> zahler = Einstellungen.getDBService()
.createList(Mitglied.class);
zahler.addFilter("id = " + getZahlerID());
if (zahler.hasNext() && ((Mitglied) zahler.next()).getAustritt() != null)
{
throw new ApplicationException(
"Der ausgewählte Zahler ist ausgetreten. Bitte anderen Zahler wählen!");
}
}
}
// Check ob Beitragsart evtl. vorher FAMILIE_ZAHLER war und für andere gezahlt hat
if (getBeitragsgruppe().getBeitragsArt() != ArtBeitragsart.FAMILIE_ZAHLER)
{
// Kein FAMILIE_ZAHLER und darf damit für niemanden zahlen
DBIterator<Mitglied> famang = Einstellungen.getDBService()
.createList(Mitglied.class);
famang.addFilter("zahlerid = " + getID());
if (famang.hasNext())
{
throw new ApplicationException(
"Dieses Mitglied zahlt noch für andere Mitglieder. Zunächst Beitragsart der Angehörigen ändern!");
}
}
if (getBeitragsgruppe() != null
&& getBeitragsgruppe()
.getBeitragsArt() == ArtBeitragsart.FAMILIE_ANGEHOERIGER
Expand Down

0 comments on commit 310cc38

Please sign in to comment.