Skip to content

Commit

Permalink
setVersion(..) setzt auf Version auf
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Dec 6, 2023
1 parent 690983b commit 3d86a8e
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 80 deletions.
95 changes: 50 additions & 45 deletions lib/src/main/java/gdv/xport/feld/Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,50 +37,51 @@ public class Version extends Feld {
private static final Map<Bezeichner, SatzTyp> MAPPING = new HashMap<>();

static {
MAPPING.put(Bezeichner.of("Allgemeine Antragsdaten 0202"), SatzTyp.of("0202"));
MAPPING.put(Bezeichner.of("Satzart 0210"), SatzTyp.of("0210.080"));
MAPPING.put(Bezeichner.of("Satzart 0220"), SatzTyp.of("0220.080"));
MAPPING.put(Bezeichner.of("Satzart 0211"), SatzTyp.of("0211.080"));
MAPPING.put(Bezeichner.of("Satzart 0221"), SatzTyp.of("0221.080"));
MAPPING.put(Bezeichner.of("Satzart 02102"), SatzTyp.of("0210.170"));
MAPPING.put(Bezeichner.of("Satzart 02202"), SatzTyp.of("0220.170"));
MAPPING.put(Bezeichner.of("Satzart 02112"), SatzTyp.of("0211.170"));
MAPPING.put(Bezeichner.of("Satzart 02212"), SatzTyp.of("0221.170"));
MAPPING.put(Bezeichner.of("Satzart 02103"), SatzTyp.of("0210.190"));
MAPPING.put(Bezeichner.of("Satzart 02203"), SatzTyp.of("0220.190"));
MAPPING.put(Bezeichner.of("Satzart 02113"), SatzTyp.of("0211.190"));
MAPPING.put(Bezeichner.of("Satzart 02213"), SatzTyp.of("0221.190"));
MAPPING.put(Bezeichner.of("Satzart 02104"), SatzTyp.of("0210.000"));
MAPPING.put(Bezeichner.of("Satzart 02204"), SatzTyp.of("0220.000"));
MAPPING.put(Bezeichner.of("Satzart 02214"), SatzTyp.of("0221.000"));
MAPPING.put(Bezeichner.of("Satzart 02114"), SatzTyp.of("0211.000"));
MAPPING.put(Bezeichner.of("Kfz-Baustein"), SatzTyp.of("0220.055"));
MAPPING.put(Bezeichner.of("Satzart 0212"), SatzTyp.of("0212.050"));
MAPPING.put(Bezeichner.of("Leben/Rente-Leistungsarten"), SatzTyp.of("0225.010"));
MAPPING.put(Bezeichner.of("Fondsdatensatz - Leben 0230"), SatzTyp.of("0230.010"));
MAPPING.put(Bezeichner.of("Unfallspezifische Antragsdaten 0222"), SatzTyp.of("0222.030"));
MAPPING.put(Bezeichner.of("Unfall Leistungsarten 0230"), SatzTyp.of("0230.030"));
MAPPING.put(Bezeichner.of("KFZ - Wechselkennzeichen W-AKZ"), SatzTyp.of("0230.050"));
MAPPING.put(new Bezeichner("Verbundene Geb\u00e4ude - Versicherte Sachen und Kosten", "VerbundeneGebaeudeVersicherteSachenUndKosten"), SatzTyp.of("230.140"));
MAPPING.put(Bezeichner.of("Satzart 0250 Einzelanmeldung"), SatzTyp.of("0250.190"));
MAPPING.put(Bezeichner.of("Satzart 0251 Einzelanmeldung"), SatzTyp.of("0251.190"));
MAPPING.put(Bezeichner.of("Satzart 0260 Umsatzanmeldung"), SatzTyp.of("0260.190"));
MAPPING.put(Bezeichner.of("Begleitdokumente und Signaturen 0342"), SatzTyp.of("0342"));
MAPPING.put(Bezeichner.of("Beteiligungs-Informationssatz Satzart 0300"), SatzTyp.of("0300"));
MAPPING.put(Bezeichner.of("Klausel-Datensatz Satzart 0350"), SatzTyp.of("0350"));
MAPPING.put(Bezeichner.of("Produktspezifische Antragsdaten 0372"), SatzTyp.of("0372"));
MAPPING.put(new Bezeichner("Rabatte und Zuschl\u00e4ge 0390", "RabatteundZuschlaege0390"), SatzTyp.of("0390"));
MAPPING.put(new Bezeichner("eVB-Nummer 0392", "eVBNummer0392"), SatzTyp.of("0392"));
MAPPING.put(Bezeichner.of("Allgemeine Inkasso-Daten Satzart 0400"), SatzTyp.of("0400"));
MAPPING.put(Bezeichner.of("Inkasso Teilsparte Satzart 0410"), SatzTyp.of("0410"));
MAPPING.put(Bezeichner.of("Allgemeine Inkasso-Daten Satzart 0430"), SatzTyp.of("0430"));
MAPPING.put(new Bezeichner("Schadeninformationssatz Satzart 0500", "Schadeninformationssatzsatzart0500"), SatzTyp.of("0500"));
MAPPING.put(new Bezeichner("Versicherungsteuerabrechnungssatz gem\u00e4\u00df EG-Richtlinie Satzart 0420", "VerssteuerabrechnungssatzGemaessEgRichtliniesatzart0420"), SatzTyp.of("0420"));
MAPPING.put(Bezeichner.of("Inkasso Abrechnungssatz Transport Satzart 0450"), SatzTyp.of("0450"));
MAPPING.put(new Bezeichner("Schadenabrechnungssatz Satzart 0550", "Schadenabrechnungssatzsatzart0550"), SatzTyp.of("0550"));
MAPPING.put(new Bezeichner("Produktspezifische Stammdaten 0600", "ProduktspezifischeStammdaten"), SatzTyp.of("0600"));
MAPPING.put(Bezeichner.of("MIME-Datei 9951"), SatzTyp.of("9951"));
MAPPING.put(new Bezeichner("Nachsatz Satzart 9999", "Nachsatzsatzart9999"), SatzTyp.of("9999"));
MAPPING.put(new Bezeichner("Allgemeine Antragsdaten 0202", "AllgemeineAntragsdaten0202", "Satzart0202"), SatzTyp.of("0202"));
MAPPING.put(new Bezeichner("Satzart 0210", "Satzart0210", "Satzart0210080"), SatzTyp.of("0210.080"));
MAPPING.put(new Bezeichner("Satzart 0220", "Satzart0220", "Satzart0220080"), SatzTyp.of("0220.080"));
MAPPING.put(new Bezeichner("Satzart 0211", "Satzart0211", "Satzart0211080"), SatzTyp.of("0211.080"));
MAPPING.put(new Bezeichner("Satzart 0221", "Satzart0221", "Satzart0221080"), SatzTyp.of("0221.080"));
MAPPING.put(new Bezeichner("Satzart 02102", "Satzart02102", "Satzart0210170"), SatzTyp.of("0210.170"));
MAPPING.put(new Bezeichner("Satzart 02202", "Satzart02202", "Satzart0220170"), SatzTyp.of("0220.170"));
MAPPING.put(new Bezeichner("Satzart 02112", "Satzart02112", "Satzart0211170"), SatzTyp.of("0211.170"));
MAPPING.put(new Bezeichner("Satzart 02212", "Satzart02212", "Satzart0221170"), SatzTyp.of("0221.170"));
MAPPING.put(new Bezeichner("Satzart 02103", "Satzart02103", "Satzart0210190"), SatzTyp.of("0210.190"));
MAPPING.put(new Bezeichner("Satzart 02203", "Satzart02203", "Satzart0220190"), SatzTyp.of("0220.190"));
MAPPING.put(new Bezeichner("Satzart 02113", "Satzart02113", "Satzart0211190"), SatzTyp.of("0211.190"));
MAPPING.put(new Bezeichner("Satzart 02213", "Satzart02213", "Satzart0221190"), SatzTyp.of("0221.190"));
MAPPING.put(new Bezeichner("Satzart 02104", "Satzart02104", "Satzart0210000"), SatzTyp.of("0210.000"));
MAPPING.put(new Bezeichner("Satzart 02204", "Satzart02204", "Satzart0220000"), SatzTyp.of("0220.000"));
MAPPING.put(new Bezeichner("Satzart 02214", "Satzart02214", "Satzart0221000"), SatzTyp.of("0221.000"));
MAPPING.put(new Bezeichner("Satzart 02114", "Satzart02114", "Satzart0211000"), SatzTyp.of("0211.000"));
MAPPING.put(new Bezeichner("Satzart 0220 010", "Satzart0220010"), SatzTyp.of("0220.010.0"));
MAPPING.put(new Bezeichner("Kfz-Baustein", "KfzBaustein", "Satzart0220055"), SatzTyp.of("0220.055"));
MAPPING.put(new Bezeichner("Satzart 0212", "Satzart0212", "Satzart0212050"), SatzTyp.of("0212.050"));
MAPPING.put(new Bezeichner("Leben/Rente-Leistungsarten", "LebenRenteLeistungsarten", "Satzart0225010"), SatzTyp.of("0225.010"));
MAPPING.put(new Bezeichner("Fondsdatensatz - Leben 0230", "FondsdatensatzLeben0230", "Satzart0230010"), SatzTyp.of("0230.010"));
MAPPING.put(new Bezeichner("Unfallspezifische Antragsdaten 0222", "UnfallspezifischeAntragsdaten0222", "Satzart0222030"), SatzTyp.of("0222.030"));
MAPPING.put(new Bezeichner("Unfall Leistungsarten 0230", "UnfallLeistungsarten0230", "Satzart0230030"), SatzTyp.of("0230.030"));
MAPPING.put(new Bezeichner("KFZ - Wechselkennzeichen W-AKZ", "KFZWechselkennzeichenWAKZ", "Satzart0230050"), SatzTyp.of("0230.050"));
MAPPING.put(new Bezeichner("Verbundene Geb\u00e4ude - Versicherte Sachen und Kosten", "VerbundeneGebaeudeVersicherteSachenUndKosten", "Satzart0230140"), SatzTyp.of("0230.140"));
MAPPING.put(new Bezeichner("Satzart 0250 Einzelanmeldung", "Satzart0250Einzelanmeldung", "Satzart0250190"), SatzTyp.of("0250.190"));
MAPPING.put(new Bezeichner("Satzart 0251 Einzelanmeldung", "Satzart0251Einzelanmeldung", "Satzart0251190"), SatzTyp.of("0251.190"));
MAPPING.put(new Bezeichner("Satzart 0260 Umsatzanmeldung", "Satzart0260Umsatzanmeldung", "Satzart0260190"), SatzTyp.of("0260.190"));
MAPPING.put(new Bezeichner("Begleitdokumente und Signaturen 0342", "BegleitdokumenteundSignaturen0342", "Satzart0342"), SatzTyp.of("0342"));
MAPPING.put(new Bezeichner("Beteiligungs-Informationssatz Satzart 0300", "BeteiligungsInformationssatzSatzart0300", "Satzart0300"), SatzTyp.of("0300"));
MAPPING.put(new Bezeichner("Klausel-Datensatz Satzart 0350", "KlauselDatensatzSatzart0350", "Satzart0350"), SatzTyp.of("0350"));
MAPPING.put(new Bezeichner("Produktspezifische Antragsdaten 0372", "ProduktspezifischeAntragsdaten0372", "Satzart0372"), SatzTyp.of("0372"));
MAPPING.put(new Bezeichner("Rabatte und Zuschl\u00e4ge 0390", "RabatteundZuschlaege0390", "Satzart0390"), SatzTyp.of("0390"));
MAPPING.put(new Bezeichner("eVB-Nummer 0392", "eVBNummer0392", "Satzart0392"), SatzTyp.of("0392"));
MAPPING.put(new Bezeichner("Allgemeine Inkasso-Daten Satzart 0400", "AllgemeineInkassoDatenSatzart0400", "Satzart0400"), SatzTyp.of("0400"));
MAPPING.put(new Bezeichner("Inkasso Teilsparte Satzart 0410", "InkassoTeilsparteSatzart0410", "Satzart0410"), SatzTyp.of("0410"));
MAPPING.put(new Bezeichner("Allgemeine Inkasso-Daten Satzart 0430", "AllgemeineInkassoDatenSatzart0430", "Satzart0430"), SatzTyp.of("0430"));
MAPPING.put(new Bezeichner("Schadeninformationssatz Satzart 0500", "Schadeninformationssatzsatzart0500", "Satzart0500"), SatzTyp.of("0500"));
MAPPING.put(new Bezeichner("Versicherungsteuerabrechnungssatz gem\u00e4\u00df EG-Richtlinie Satzart 0420", "VerssteuerabrechnungssatzGemaessEgRichtliniesatzart0420", "Satzart0420"), SatzTyp.of("0420"));
MAPPING.put(new Bezeichner("Inkasso Abrechnungssatz Transport Satzart 0450", "InkassoAbrechnungssatzTransportSatzart0450", "Satzart0450"), SatzTyp.of("0450"));
MAPPING.put(new Bezeichner("Schadenabrechnungssatz Satzart 0550", "Schadenabrechnungssatzsatzart0550", "Satzart0550"), SatzTyp.of("0550"));
MAPPING.put(new Bezeichner("Produktspezifische Stammdaten 0600", "ProduktspezifischeStammdaten", "Satzart0600"), SatzTyp.of("0600"));
MAPPING.put(new Bezeichner("MIME-Datei 9951", "MIMEDatei9951", "Satzart9951"), SatzTyp.of("9951"));
MAPPING.put(new Bezeichner("Nachsatz Satzart 9999", "Nachsatzsatzart9999", "Satzart9999"), SatzTyp.of("9999"));
}

/**
Expand Down Expand Up @@ -128,12 +129,16 @@ public Version(final String name, final int start, final String v) {
}

public static Version of(SatzTyp satzTyp) {
String s = satzTyp.toString();
if ((s.length() > 8) && !s.endsWith(".0")) {
return of(SatzTyp.of(s.substring(0, 8)));
}
for (Map.Entry<Bezeichner, SatzTyp> entry : MAPPING.entrySet()) {
if (satzTyp.equals(entry.getValue())) {
return new Version(entry.getKey(), 1);
}
}
String name = "Satzart " + satzTyp.toString().replace('.', ' ');
String name = "Satzart " + satzTyp;
return new Version(Bezeichner.of(name), 1);
}

Expand Down
43 changes: 8 additions & 35 deletions lib/src/main/java/gdv/xport/satz/Vorsatz.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import gdv.xport.util.SatzRegistry;
import gdv.xport.util.SatzTyp;
import gdv.xport.util.VersionHandler;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Expand Down Expand Up @@ -302,27 +301,11 @@ public String getVersion(SatzTyp satzTyp) {
*/
@JsonIgnore
public void setVersion(Satz satz) {
StringBuilder buf = new StringBuilder();
String[] parts = StringUtils.split(satz.getSatzTyp()
.toString(), '.');

buf.append("Satzart");
buf.append(parts[0]);

if (parts.length > 1)
buf.append(parts[1]);

Bezeichner bezeichner = Bezeichner.of(buf.toString());

if (this.hasFeld(bezeichner)) {
this.setFeld(bezeichner, satz.getSatzversion().getInhalt());
Version v = Version.of(satz.getSatzTyp());
if (this.hasFeld(v.getBezeichner())) {
this.setFeld(v.getBezeichner(), satz.getSatzversion().getInhalt());
} else {
Version version = Version.of(satz.getSatzTyp());
if (this.hasFeld(version.getBezeichner())) {
this.setFeld(version.getBezeichner(), satz.getSatzversion().getInhalt());
} else {
LOG.warn("Version Satzart {} ist im Vorsatz unbekannt.", satz.getSatzTyp());
}
LOG.warn("Version Satzart {} ist im Vorsatz unbekannt.", satz.getSatzTyp());
}
}

Expand All @@ -332,21 +315,11 @@ public void setVersion(Satz satz) {
* @param satzTyp der Satztyp
*/
public void setVersion(SatzTyp satzTyp) {
StringBuilder buf = new StringBuilder();
String[] parts = StringUtils.split(satzTyp.toString(), '.');

buf.append("Satzart");
buf.append(parts[0]);

if (parts.length > 1)
buf.append(parts[1]);

Bezeichner bezeichner = Bezeichner.of(buf.toString());

if (this.hasFeld(bezeichner)) {
this.setFeld(bezeichner, versionHandler.getVersionOf(satzTyp));
Version v = Version.of(satzTyp);
if (this.hasFeld(v.getBezeichner())) {
this.setFeld(v.getBezeichner(), versionHandler.getVersionOf(satzTyp));
} else {
throw new IllegalArgumentException("Version Satzart " + bezeichner + " unbekannt");
throw new IllegalArgumentException("Version Satzart " + v.getBezeichner() + " unbekannt");
}
}

Expand Down

0 comments on commit 3d86a8e

Please sign in to comment.