Skip to content

Commit

Permalink
Merge branch 'master' into update_mittelverwendung
Browse files Browse the repository at this point in the history
  • Loading branch information
Johann Maierhofer committed Jan 18, 2025
2 parents c875c2e + 7661d7b commit 4a04fcf
Show file tree
Hide file tree
Showing 28 changed files with 525 additions and 257 deletions.
2 changes: 1 addition & 1 deletion .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@
<classpathentry kind="lib" path="lib/xmpbox-3.0.3.jar"/>
<classpathentry kind="lib" path="lib/jakarta.activation-api-2.1.3.jar"/>
<classpathentry kind="lib" path="lib/dom4j-2.1.4.jar"/>
<classpathentry kind="lib" path="lib/mustang-2.15.2.jar"/>
<classpathentry kind="lib" path="lib/mustang-2.16.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Für die Verwendung von IntelliJ folge diesen Schritten:

### Erster Start
1. Führe die eben erstellte Configuration aus. Noch sind keine Plugins installiert, schließe daher Jameica wieder.
2. Navigiere in den erstellten jameica.test Ordner und öffne die Datei cfg/de.willuhn.jameica.system.Config.properties in einem Text-Editor.
3. Füge die Zeilen "jameica.plugin.dir.0=../../hibiscus-<version>-nightly.src/hibiscus" und "jameica.plugin.dir.1=../../jverein" in die Datei ein.
2. Navigiere in den erstellten jameica.test Ordner und öffne die Datei `cfg/de.willuhn.jameica.system.Config.properties` in einem Text-Editor.
3. Füge die Zeilen `jameica.plugin.dir.0=../../hibiscus-<version>-nightly.src/hibiscus` und `jameica.plugin.dir.1=../../jverein` in die Datei ein.
4. Führe nun die Jameica-Configuration erneut aus und die Plugins werden jetzt geladen. Die Einrichtung ist abgeschlossen und du kannst anfangen an diesem Projekt mitzuwirken.
5. Wenn du etwas am Code geändert hast und du deine Änderungen testen willst, musst du vor dem erneuten Ausführen der Run-Configuration einen Rebuild des Projekts durchführen.
Binary file removed lib/mustang-2.15.2.jar
Binary file not shown.
Binary file added lib/mustang-2.16.0.jar
Binary file not shown.
3 changes: 1 addition & 2 deletions src/de/jost_net/JVerein/Queries/MitgliedQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -292,8 +292,7 @@ else if (control.getMitgliedStatus().getValue().equals("Abgemeldet"))
Date d = (Date) control.getSterbedatumbis().getValue();
bedingungen.add(new java.sql.Date(d.getTime()));
}
if (control.isSuchGeschlechtAktiv() && control.getSuchGeschlecht().getText() != null
&& !control.getSuchGeschlecht().getText().equals("Bitte auswählen"))
if (control.isSuchGeschlechtAktiv() && control.getSuchGeschlecht().getValue() != null)
{
addCondition("geschlecht = ?");
String g = (String) control.getSuchGeschlecht().getValue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ private void generiereFreiesFormular(Mitglied[] m) throws Exception
Map<String, Object> map = new MitgliedMap().getMap(mi, null);
map = new AllgemeineMap().getMap(map);
fa.writeForm(fo, map);
fo.store();
}
fa.showFormular();

Expand Down
23 changes: 12 additions & 11 deletions src/de/jost_net/JVerein/gui/action/MitgliedLastschriftAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ private boolean checkSEPA(Mitglied m) throws RemoteException
if (m.getZahlungsweg() == null
|| m.getZahlungsweg() != Zahlungsweg.BASISLASTSCHRIFT)
{

abortDialog("Fehler", "Zahlungsweg ist nicht Basislastschrift");
return false;
}
Expand All @@ -136,22 +135,24 @@ private boolean checkSEPA(Mitglied m) throws RemoteException
}
}

// pruefe Sepa Gueltigkeit: Datum der letzen Abbuchung
Date letzte_lastschrift = m.getLetzteLastschrift();
if (letzte_lastschrift != null)
// Pruefe Sepa Gueltigkeit:
// Bei Mandaten älter als 3 Jahre muss es eine Lastschrift
// innerhalb der letzten 3 Jahre geben
Calendar sepagueltigkeit = Calendar.getInstance();
sepagueltigkeit.add(Calendar.MONTH, -36);
if (m.getMandatDatum().before(sepagueltigkeit.getTime()))
{
Calendar sepagueltigkeit = Calendar.getInstance();
sepagueltigkeit.add(Calendar.MONTH, -36);
if (letzte_lastschrift.before(sepagueltigkeit.getTime()))
Date letzte_lastschrift = m.getLetzteLastschrift();
if (letzte_lastschrift == null
|| letzte_lastschrift.before(sepagueltigkeit.getTime()))
{
if (!confirmDialog("Letzte Lastschrift",
"Letzte Lastschrift ist älter als 36 Monate"))
if (!confirmDialog("Mandat abgelaufen",
"Das Mandat-Datum ist älter als 36 Monate und es erfolgte keine Lastschrift in den letzten 36 Monaten."))
{
return false;
}
}
}
}

return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ else if (context instanceof Spendenbescheinigung[])
fa.printAnschreiben(spb, text);
}
fa.closeFormular();
fo.store();
}
}
String erfolg = (spbArr.length > 1) ? "Die Spendenbescheinigungen wurden erstellt und unter " + path + " gespeichert."
Expand Down
4 changes: 4 additions & 0 deletions src/de/jost_net/JVerein/gui/control/BuchungsControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,10 @@ public SelectInput getSuchBuchungsart() throws RemoteException
suchbuchungsart.setList(liste);
suchbuchungsart.setValue(b);
suchbuchungsart.addListener(new FilterListener());
if (suchbuchungsart instanceof SelectInput)
{
suchbuchungsart.setPleaseChoose(FilterControl.ALLE);
}
return suchbuchungsart;
}

Expand Down
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 4a04fcf

Please sign in to comment.