Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sollbuchungen zusammenfassen, Rechnung überarbeitet #547

Open
wants to merge 52 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
9757972
Soolbuchungn zusammenfassen, Rechnung überarbeitet
Dec 13, 2024
a5b19d7
Update umbenannt
lenilsas Dec 26, 2024
bd5e823
Merge branch 'master' into rechnung_neu
lenilsas Dec 26, 2024
140dfb0
Fehler behoben
lenilsas Dec 26, 2024
c583df3
Bei Buchung zu Sollbuchung zuordnen automatisch splitten
lenilsas Dec 27, 2024
f45adf5
Update umbenannt
lenilsas Dec 27, 2024
310ab56
Merge remote-tracking branch 'origin/master' into rechnung_neu
lenilsas Dec 27, 2024
93eba54
ZUGFeRD an Sollbuchungspositionen angepasst
lenilsas Dec 27, 2024
eb8f6d4
Formatierung und kleine Fehler behoben
lenilsas Dec 28, 2024
306e6d4
BuchungsartID und BuchungsklasseID Long stat String
lenilsas Dec 28, 2024
e48c807
getBuchungsartId() hinzugefügt
lenilsas Dec 29, 2024
36de911
Fehler getBuchungsartId() behoben
lenilsas Dec 29, 2024
059c407
getAttribut buchungsart hinzugefügt
lenilsas Dec 29, 2024
2cf99d3
Beim zuordnen einer SOllbuchung zu Slitbuchung diese ersetzen
lenilsas Dec 30, 2024
975fbac
AutoSplit auch wenn Betrag nicht dem der Sollbuchung entspricht
lenilsas Dec 30, 2024
1a665cd
Kleine Fehler behoben
lenilsas Dec 31, 2024
f31c673
AutoAplit vor ersetzen auf Spendenbescheinigung prüfen
lenilsas Dec 31, 2024
9fd12ca
Sollbuchungspositionen für bestehende Sollbuchungen erstellen
lenilsas Dec 31, 2024
18d2056
Buchungsart und Klasse in Sollbuchugnslisteentfernt
lenilsas Jan 1, 2025
2b6f2a0
Zweck von Soll und Istbuchung angepasst
lenilsas Jan 1, 2025
5ac5bcf
Auto SollbuchungZuordnen auch anhand von Verwendungszweck (ZB.
lenilsas Jan 1, 2025
e3b0980
Formatierung und Rechtschreibung
lenilsas Jan 1, 2025
3d471de
Abrechnunglauf PDF Steuer entfernt
lenilsas Jan 1, 2025
d3ce040
MitglieskontoExport überarbeitet
lenilsas Jan 2, 2025
25c686d
Zweck der Splitbuchung aus Positionen bestimmen
lenilsas Jan 1, 2025
48e1f29
FormularfeldView deprecated RechnungVar ausblenden
lenilsas Jan 2, 2025
2ca87bc
Manuelles erstellen von Rechnungen
lenilsas Jan 5, 2025
e95e6d8
Automatisch Felder diablen wenn keine Abrechnung mit Rechnung
lenilsas Jan 5, 2025
cc4699a
Abrechnung überarbeitet. Sollbuchungen nach Mitglied getrennt
lenilsas Jan 5, 2025
36daafd
ersetzen von Splitbucuhgen bei Spendenbescheinigung verhindern
lenilsas Jan 6, 2025
9a7de30
Merge branch 'master' into rechnung_neu
lenilsas Jan 6, 2025
586aa4c
AbrechnungsControl Zusammenfassen disablen bei disablen von kompakt
lenilsas Jan 6, 2025
c2275f2
Mitgliedname auch ohne kompakte Abbuchung. Splitbuchung Zweck korrigiert
lenilsas Jan 6, 2025
a32bf06
Action Fehler behoben, texte korrigiert
lenilsas Jan 6, 2025
82e2b2c
AbrechnungslaufView Sollbuchungen statt Buchungen. Komentare Abrechnung
lenilsas Jan 6, 2025
2914c5c
Kleine Fehler behoben
lenilsas Jan 6, 2025
2a06a91
Sollbuchung manuell erstellen verhindern. Kleine Korrekturen
lenilsas Jan 7, 2025
ea0fca3
Steuer bei Sollbuchungen richtig zuordnen.Einstellungen QR gruppieren
lenilsas Jan 10, 2025
000e1dd
Bucung mehreren SOllbuchungenzuordnen
lenilsas Jan 10, 2025
7a35b2b
Merge branch 'master' into rechnung_neu
tolot27 Jan 10, 2025
64bac65
Rechtschreibung
lenilsas Jan 10, 2025
3adf0f7
QR-Code Gruppierung geändert
lenilsas Jan 10, 2025
94781fa
Javadoc
lenilsas Jan 10, 2025
5fec33f
Fehler Steuerberechnung behoben. Kleiner Fehler korrigiert
lenilsas Jan 11, 2025
63d161a
Nettobetrag und Steuerbetrag zu BigDecimal geändert
lenilsas Jan 14, 2025
0b60f64
AutoBpplit bei Feher und immerSlitten abbrechen
lenilsas Jan 14, 2025
c51b59a
Errorhandling
lenilsas Jan 14, 2025
6e3d808
NPE bei Abrechnungslauf wenn kein Rechnungsformular vorhanden ist
lenilsas Jan 15, 2025
8553176
Fehler Filterung Zusatzbeträge behoben
lenilsas Jan 16, 2025
01a4743
Revert "Nettobetrag und Steuerbetrag zu BigDecimal geändert"
lenilsas Jan 17, 2025
45d5caf
Berechnung Steuer
lenilsas Jan 17, 2025
7a50dd6
Merge remote-tracking branch 'origin/master' into rechnung_neu
lenilsas Jan 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/de/jost_net/JVerein/Queries/SollbuchungQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,10 @@ public Object extract(ResultSet rs)
}
});

if (ids.size() == 0)
{
return null;
}
DBIterator<Mitgliedskonto> list = Einstellungen.getDBService()
.createList(Mitgliedskonto.class);
list.addFilter("id in (" + StringUtils.join(ids, ",") + ")");
Expand Down
96 changes: 37 additions & 59 deletions src/de/jost_net/JVerein/Variable/RechnungMap.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,11 @@
import java.util.Map;

import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.gui.control.FormularfeldControl;
import de.jost_net.JVerein.io.VelocityTool;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
import de.jost_net.JVerein.keys.Zahlungsweg;
import de.jost_net.JVerein.rmi.Mitgliedskonto;
import de.jost_net.JVerein.rmi.Rechnung;
import de.jost_net.JVerein.rmi.SollbuchungPosition;
import de.jost_net.JVerein.util.StringTool;
import de.willuhn.jameica.gui.formatter.CurrencyFormatter;

Expand All @@ -42,6 +41,7 @@ public RechnungMap()
//
}

@SuppressWarnings("deprecation")
public Map<String, Object> getMap(Rechnung re, Map<String, Object> inMap)
throws RemoteException
{
Expand All @@ -57,66 +57,69 @@ public Map<String, Object> getMap(Rechnung re, Map<String, Object> inMap)

ArrayList<Date> buchungDatum = new ArrayList<>();
ArrayList<String> zweck = new ArrayList<>();
ArrayList<String> zweck1 = new ArrayList<>();
ArrayList<Double> nettobetrag = new ArrayList<>();
ArrayList<String> steuersatz = new ArrayList<>();
ArrayList<Double> steuerbetrag = new ArrayList<>();
ArrayList<Double> betrag = new ArrayList<>();
ArrayList<Double> ist = new ArrayList<>();
ArrayList<Double> differenz = new ArrayList<>();

DecimalFormat format = new DecimalFormat("0");
CurrencyFormatter formatter = new CurrencyFormatter("%", format);
double summe = 0;
double saldo = 0;
double suist = 0;
for (Mitgliedskonto mkto : re.getMitgliedskontoList())
for (SollbuchungPosition sp : re.getSollbuchungPositionList())
{
buchungDatum.add(mkto.getDatum());
zweck.add(mkto.getZweck1());
zweck1.add(mkto.getZweck1());
nettobetrag.add(Double.valueOf(mkto.getNettobetrag()));
buchungDatum.add(sp.getDatum());
zweck.add(sp.getZweck());
nettobetrag.add(sp.getNettobetrag().doubleValue());
steuersatz.add(
"(" + formatter.format(Double.valueOf(mkto.getSteuersatz())) + ")");
steuerbetrag.add(Double.valueOf(mkto.getSteuerbetrag()));
betrag.add(Double.valueOf(mkto.getBetrag()));
ist.add(mkto.getIstSumme());
suist += mkto.getIstSumme();
differenz.add(mkto.getBetrag() - mkto.getIstSumme());
summe += mkto.getBetrag();
saldo += mkto.getBetrag() - mkto.getIstSumme();
"(" + formatter.format(Double.valueOf(sp.getSteuersatz())) + ")");
steuerbetrag.add(sp.getSteuerbetrag().doubleValue());
betrag.add(sp.getBetrag());
summe += sp.getBetrag();
}
if (buchungDatum.size() > 1)
{
if (Einstellungen.getEinstellung().getOptiert())
{
zweck1.add("Rechnungsbetrag inkl. USt.");
zweck.add("Rechnungsbetrag inkl. USt.");
}
else
{
zweck1.add("Summe");
zweck.add("Summe");
}
betrag.add(summe);
differenz.add(saldo);
ist.add(suist);
}
map.put(FormularfeldControl.BUCHUNGSDATUM, buchungDatum.toArray());
map.put(FormularfeldControl.ZAHLUNGSGRUND, zweck.toArray());
map.put(FormularfeldControl.ZAHLUNGSGRUND1, zweck1.toArray());
map.put(FormularfeldControl.BETRAG, betrag.toArray());
map.put(RechnungVar.BUCHUNGSDATUM.getName(), buchungDatum.toArray());
map.put(RechnungVar.MK_BUCHUNGSDATUM.getName(), buchungDatum.toArray());
map.put(RechnungVar.ZAHLUNGSGRUND.getName(), zweck.toArray());
map.put(RechnungVar.ZAHLUNGSGRUND1.getName(), zweck1.toArray());
map.put(RechnungVar.MK_ZAHLUNGSGRUND.getName(), zweck.toArray());
map.put(RechnungVar.ZAHLUNGSGRUND1.getName(), zweck.toArray());
map.put(RechnungVar.ZAHLUNGSGRUND2.getName(), "");
map.put(RechnungVar.NETTOBETRAG.getName(), nettobetrag.toArray());
map.put(RechnungVar.MK_NETTOBETRAG.getName(), nettobetrag.toArray());
map.put(RechnungVar.STEUERSATZ.getName(), steuersatz.toArray());
map.put(RechnungVar.MK_STEUERSATZ.getName(), steuersatz.toArray());
map.put(RechnungVar.STEUERBETRAG.getName(), steuerbetrag.toArray());
map.put(RechnungVar.MK_STEUERBETRAG.getName(), steuerbetrag.toArray());
map.put(RechnungVar.BETRAG.getName(), betrag.toArray());
map.put(RechnungVar.IST.getName(), ist.toArray());
map.put(RechnungVar.DIFFERENZ.getName(), differenz.toArray());
map.put(RechnungVar.STAND.getName(), Double.valueOf(-1 * saldo));
map.put(RechnungVar.SUMME_OFFEN.getName(), Double.valueOf(saldo));
map.put(RechnungVar.MK_BETRAG.getName(), betrag.toArray());

Double ist = 0d;
if (re.getMitgliedskonto() != null)
{
ist = re.getMitgliedskonto().getIstSumme();
}
map.put(RechnungVar.IST.getName(), ist);
map.put(RechnungVar.MK_SUMME_OFFEN.getName(), summe - ist);
map.put(RechnungVar.SUMME_OFFEN.getName(), summe - ist);
map.put(RechnungVar.MK_STAND.getName(), ist - summe);
map.put(RechnungVar.STAND.getName(), ist - summe);

// Deise Felder gibt es nicht mehr in der Form, damit bei alten
// Rechnungs-Formularen nicht der Variablennamen steht hier trotzdem
// hinzuf�gen
map.put(RechnungVar.DIFFERENZ.getName(), "");
map.put(RechnungVar.MK_IST.getName(), "");

map.put(RechnungVar.QRCODE_INTRO.getName(),
Einstellungen.getEinstellung().getQRCodeIntro());

Expand Down Expand Up @@ -150,7 +153,7 @@ public Map<String, Object> getMap(Rechnung re, Map<String, Object> inMap)
Adressaufbereitung.getAdressfeld(re));

String zahlungsweg = "";
switch (re.getMitglied().getZahlungsweg())
switch (re.getZahlungsweg().getKey())
{
case Zahlungsweg.BASISLASTSCHRIFT:
{
Expand Down Expand Up @@ -185,29 +188,4 @@ public Map<String, Object> getMap(Rechnung re, Map<String, Object> inMap)

return map;
}

public Map<String, Object> getMap(Mitgliedskonto mk, Map<String, Object> inma)
throws RemoteException
{
Map<String, Object> map = null;
if (inma == null)
{
map = new HashMap<>();
}
else
{
map = inma;
}

map.put(RechnungVar.BUCHUNGSDATUM.getName(), mk.getDatum());
map.put(RechnungVar.ZAHLUNGSGRUND.getName(), mk.getZweck1());
map.put(RechnungVar.ZAHLUNGSGRUND1.getName(), mk.getZweck1());
map.put(RechnungVar.NETTOBETRAG.getName(), mk.getNettobetrag());
map.put(RechnungVar.STEUERSATZ.getName(), mk.getSteuersatz());
map.put(RechnungVar.STEUERBETRAG.getName(), mk.getSteuerbetrag());
map.put(RechnungVar.BETRAG.getName(), mk.getBetrag());
map.put(RechnungVar.IST.getName(), mk.getIstSumme());
map.put(RechnungVar.DIFFERENZ.getName(), mk.getBetrag() - mk.getIstSumme());
return map;
}
}
39 changes: 30 additions & 9 deletions src/de/jost_net/JVerein/Variable/RechnungVar.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,39 @@

public enum RechnungVar
{
ZAHLUNGSGRUND("mitgliedskonto_zahlungsgrund"), //
@Deprecated
MK_ZAHLUNGSGRUND("mitgliedskonto_zahlungsgrund"), //
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Für was sind die double slash am Zeilenende? Danach folgt ja kein Kommentar.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keine Ahnung, die waren schon so da.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jetzt habe ich gemerkt, dass der Formatter alle Zeilen zusammen zieht wenn die Slashes nicht da sind

ZAHLUNGSGRUND("rechnung_zahlungsgrund"), //
@Deprecated
ZAHLUNGSGRUND1("mitgliedskonto_zahlungsgrund1"), //
@Deprecated
ZAHLUNGSGRUND2("mitgliedskonto_zahlungsgrund2"), //
BUCHUNGSDATUM("mitgliedskonto_buchungsdatum"), //
NETTOBETRAG("mitgliedskonto_nettobetrag"), //
STEUERSATZ("mitgliedskonto_steuersatz"), //
STEUERBETRAG("mitgliedskonto_steuerbetrag"), //
BETRAG("mitgliedskonto_betrag"), //
IST("mitgliedskonto_ist"), //
@Deprecated
MK_BUCHUNGSDATUM("mitgliedskonto_buchungsdatum"), //
BUCHUNGSDATUM("rechnung_buchungsdatum"), //
@Deprecated
MK_NETTOBETRAG("mitgliedskonto_nettobetrag"), //
NETTOBETRAG("rechnung_nettobetrag"), //
@Deprecated
MK_STEUERSATZ("mitgliedskonto_steuersatz"), //
STEUERSATZ("rechnung_steuersatz"), //
@Deprecated
MK_STEUERBETRAG("mitgliedskonto_steuerbetrag"), //
STEUERBETRAG("rechnung_steuerbetrag"), //
@Deprecated
MK_BETRAG("mitgliedskonto_betrag"), //
BETRAG("rechnung_betrag"), //
@Deprecated
MK_IST("mitgliedskonto_ist"), //
IST("rechnung_ist"), //
@Deprecated
DIFFERENZ("mitgliedskonto_differenz"), //
STAND("mitgliedskonto_stand"), //
SUMME_OFFEN("mitgliedskonto_summe_offen"), //
@Deprecated
MK_STAND("mitgliedskonto_stand"), //
STAND("rechnung_stand"), //
@Deprecated
MK_SUMME_OFFEN("mitgliedskonto_summe_offen"), //
SUMME_OFFEN("rechnung_summe_offen"), //
QRCODE_SUMME("qrcode_summe"), //
QRCODE_INTRO("qrcode_intro"),
DATUM("rechnung_datum"),
Expand Down
52 changes: 52 additions & 0 deletions src/de/jost_net/JVerein/Variable/SollbuchungMap.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/**********************************************************************
* 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/>.
*
* [email protected]
* www.jverein.de
**********************************************************************/
package de.jost_net.JVerein.Variable;

import java.rmi.RemoteException;
import java.util.HashMap;
import java.util.Map;

import de.jost_net.JVerein.rmi.Mitgliedskonto;

public class SollbuchungMap
{

public SollbuchungMap()
{
}

public Map<String, Object> getMap(Mitgliedskonto mk, Map<String, Object> inma)
throws RemoteException
{
Map<String, Object> map = null;
if (inma == null)
{
map = new HashMap<>();
}
else
{
map = inma;
}
map.put(SollbuchungVar.BUCHUNGSDATUM.getName(), mk.getDatum());
map.put(SollbuchungVar.ZAHLUNGSGRUND.getName(), mk.getZweck1());
map.put(SollbuchungVar.BETRAG.getName(), mk.getBetrag());
map.put(SollbuchungVar.IST.getName(), mk.getIstSumme());
map.put(SollbuchungVar.DIFFERENZ.getName(),
mk.getBetrag() - mk.getIstSumme());
return map;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,25 @@
* [email protected]
* www.jverein.de
**********************************************************************/
package de.jost_net.JVerein.gui.action;
package de.jost_net.JVerein.Variable;

import de.jost_net.JVerein.gui.view.RechnungAutoNeuView;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.util.ApplicationException;

public class RechnungAutoNeuAction implements Action
public enum SollbuchungVar
{
ZAHLUNGSGRUND("sollbuchung_zahlungsgrund"), //
BUCHUNGSDATUM("sollbuchung_buchungsdatum"),
BETRAG("sollbuchung_betrag"), //
IST("sollbuchung_ist"), //
DIFFERENZ("sollbuchung_differenz");

private String name;

@Override
public void handleAction(Object context) throws ApplicationException
SollbuchungVar(String name)
{
GUI.startView(RechnungAutoNeuView.class.getName(), null);
this.name = name;
}

public String getName()
{
return name;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,14 @@ else if(spendenbescheinigung && rechnung)
Buchung bu = it.next();
if (bu.getSpendenbescheinigung() != null)
bu.getSpendenbescheinigung().delete();
bu.delete();
try {
bu.delete();
}
catch (RemoteException ignore)
{
// Ignorieren, da die Exception auftritt, wenn die Buchung bereits
// gel�scht wurde, z. B. bei Splitbuchungen.
}
}
DBIterator<Mitgliedskonto> mitgliedskontoIt = Einstellungen.getDBService()
.createList(Mitgliedskonto.class);
Expand Down
Loading