add more tracing, make vbvg better structure
All checks were successful
CI/CD Pipeline / test (push) Successful in 1m49s

This commit is contained in:
philipp 2024-02-20 20:55:41 +01:00
parent 0dc59cea16
commit 39f39e49d6
5 changed files with 50 additions and 2 deletions

View File

@ -6,3 +6,42 @@ name = "Verbandsverantwortlichkeitsgesetz"
name = "Abschnitt"
is_root = true
match_function = "contains"
[[parser.replace_rules]]
find = """<absatz typ="abs" ct="text" halign="j">180,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit lebenslanger oder Freiheitsstrafe bis zu zwanzig Jahren bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">155,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit Freiheitsstrafe bis zu fünfzehn Jahren bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">130,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit Freiheitsstrafe bis zu zehn Jahren bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">100,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit Freiheitsstrafe bis zu fünf Jahren bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">85,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit Freiheitsstrafe bis zu drei Jahren bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">70,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit Freiheitsstrafe bis zu zwei Jahren bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">55,</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>wenn die Tat mit Freiheitsstrafe bis zu einem Jahr bedroht ist,</listelem></aufzaehlung></liste><absatz typ="abs" ct="text" halign="j">40</absatz><liste><aufzaehlung ebene="2" art="normal"><listelem ct="text"><symbol stellen="1"></symbol>in allen übrigen Fällen.</listelem></aufzaehlung></liste>"""
replace_with = """<liste>\
<aufzaehlung ebene="2" art="normal">\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
180, wenn die Tat mit lebenslanger oder Freiheitsstrafe bis zu zwanzig Jahren bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
155, wenn die Tat mit Freiheitsstrafe bis zu fünfzehn Jahren bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
130, wenn die Tat mit Freiheitsstrafe bis zu zehn Jahren bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
100, wenn die Tat mit Freiheitsstrafe bis zu fünf Jahren bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
85, wenn die Tat mit Freiheitsstrafe bis zu drei Jahren bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
70, wenn die Tat mit Freiheitsstrafe bis zu zwei Jahren bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
55, wenn die Tat mit Freiheitsstrafe bis zu einem Jahr bedroht ist,\
</listelem>\
<listelem ct="text">\
<symbol stellen="1"> </symbol>\
40, in allen übrigen Fällen.\
</listelem>\
</aufzaehlung>\
</liste>"""

View File

@ -9,7 +9,7 @@ New desc: Verbandsverantwortlichkeit Materiellrechtliche Bestimmungen
New_new_para_header: Verantwortlichkeit
New_par: § 3.;{"List":[{"Multi":[{"Text":"(1) Ein Verband ist unter den weiteren Voraussetzungen des Abs. 2 oder des Abs. 3 für eine Straftat verantwortlich, wenn"},{"List":[{"Text":"1. die Tat zu seinen Gunsten begangen worden ist oder"},{"Text":"2. durch die Tat Pflichten verletzt worden sind, die den Verband treffen."}]}]},{"Text":"(2) Für Straftaten eines Entscheidungsträgers ist der Verband verantwortlich, wenn der Entscheidungsträger als solcher die Tat rechtswidrig und schuldhaft begangen hat."},{"Multi":[{"Text":"(3) Für Straftaten von Mitarbeitern ist der Verband verantwortlich, wenn"},{"List":[{"Text":"1. Mitarbeiter den Sachverhalt, der dem gesetzlichen Tatbild entspricht, rechtswidrig verwirklicht haben; der Verband ist für eine Straftat, die vorsätzliches Handeln voraussetzt, nur verantwortlich, wenn ein Mitarbeiter vorsätzlich gehandelt hat; für eine Straftat, die fahrlässiges Handeln voraussetzt, nur, wenn Mitarbeiter die nach den Umständen gebotene Sorgfalt außer acht gelassen haben; und"},{"Text":"2. die Begehung der Tat dadurch ermöglicht oder wesentlich erleichtert wurde, dass Entscheidungsträger die nach den Umständen gebotene und zumutbare Sorgfalt außer acht gelassen haben, insbesondere indem sie wesentliche technische, organisatorische oder personelle Maßnahmen zur Verhinderung solcher Taten unterlassen haben."}]}]},{"Text":"(4) Die Verantwortlichkeit eines Verbandes für eine Tat und die Strafbarkeit von Entscheidungsträgern oder Mitarbeitern wegen derselben Tat schließen einander nicht aus."}]}
New_new_para_header: Verbandsgeldbuße
New_par: § 4.;{"List":[{"Text":"(1) Ist ein Verband für eine Straftat verantwortlich, so ist über ihn eine Verbandsgeldbuße zu verhängen."},{"Text":"(2) Die Verbandsgeldbuße ist in Tagessätzen zu bemessen. Sie beträgt mindestens einen Tagessatz."},{"Text":"(3) Die Anzahl der Tagessätze beträgt bis zu"},{"Multi":[{"Text":"180,"},{"List":[{"Text":" wenn die Tat mit lebenslanger oder Freiheitsstrafe bis zu zwanzig Jahren bedroht ist,"}]}]},{"Multi":[{"Text":"155,"},{"List":[{"Text":" wenn die Tat mit Freiheitsstrafe bis zu fünfzehn Jahren bedroht ist,"}]}]},{"Multi":[{"Text":"130,"},{"List":[{"Text":" wenn die Tat mit Freiheitsstrafe bis zu zehn Jahren bedroht ist,"}]}]},{"Multi":[{"Text":"100,"},{"List":[{"Text":" wenn die Tat mit Freiheitsstrafe bis zu fünf Jahren bedroht ist,"}]}]},{"Multi":[{"Text":"85,"},{"List":[{"Text":" wenn die Tat mit Freiheitsstrafe bis zu drei Jahren bedroht ist,"}]}]},{"Multi":[{"Text":"70,"},{"List":[{"Text":" wenn die Tat mit Freiheitsstrafe bis zu zwei Jahren bedroht ist,"}]}]},{"Multi":[{"Text":"55,"},{"List":[{"Text":" wenn die Tat mit Freiheitsstrafe bis zu einem Jahr bedroht ist,"}]}]},{"Multi":[{"Text":"40"},{"List":[{"Text":" in allen übrigen Fällen."}]}]},{"Text":"(4) Der Tagessatz ist nach der Ertragslage des Verbandes unter Berücksichtigung von dessen sonstiger wirtschaftlicher Leistungsfähigkeit zu bemessen. Er ist mit einem Betrag festzusetzen, der dem 360. Teil des Jahresertrages entspricht oder diesen um höchstens ein Drittel über- oder unterschreitet, mindestens jedoch mit 50 und höchstens mit 30 000 Euro. Dient der Verband gemeinnützigen, humanitären oder kirchlichen Zwecken (§§ 34 bis 47 der Bundesabgabenordnung, BGBl. Nr. 194/1961) oder ist er sonst nicht auf Gewinn gerichtet, so ist der Tagessatz mit mindestens 2 und höchstens 1 500 Euro festzusetzen."}]}
New_par: § 4.;{"List":[{"Text":"(1) Ist ein Verband für eine Straftat verantwortlich, so ist über ihn eine Verbandsgeldbuße zu verhängen."},{"Text":"(2) Die Verbandsgeldbuße ist in Tagessätzen zu bemessen. Sie beträgt mindestens einen Tagessatz."},{"Multi":[{"Text":"(3) Die Anzahl der Tagessätze beträgt bis zu"},{"List":[{"Text":" 180, wenn die Tat mit lebenslanger oder Freiheitsstrafe bis zu zwanzig Jahren bedroht ist,"},{"Text":" 155, wenn die Tat mit Freiheitsstrafe bis zu fünfzehn Jahren bedroht ist,"},{"Text":" 130, wenn die Tat mit Freiheitsstrafe bis zu zehn Jahren bedroht ist,"},{"Text":" 100, wenn die Tat mit Freiheitsstrafe bis zu fünf Jahren bedroht ist,"},{"Text":" 85, wenn die Tat mit Freiheitsstrafe bis zu drei Jahren bedroht ist,"},{"Text":" 70, wenn die Tat mit Freiheitsstrafe bis zu zwei Jahren bedroht ist,"},{"Text":" 55, wenn die Tat mit Freiheitsstrafe bis zu einem Jahr bedroht ist,"},{"Text":" 40, in allen übrigen Fällen."}]}]},{"Text":"(4) Der Tagessatz ist nach der Ertragslage des Verbandes unter Berücksichtigung von dessen sonstiger wirtschaftlicher Leistungsfähigkeit zu bemessen. Er ist mit einem Betrag festzusetzen, der dem 360. Teil des Jahresertrages entspricht oder diesen um höchstens ein Drittel über- oder unterschreitet, mindestens jedoch mit 50 und höchstens mit 30 000 Euro. Dient der Verband gemeinnützigen, humanitären oder kirchlichen Zwecken (§§ 34 bis 47 der Bundesabgabenordnung, BGBl. Nr. 194/1961) oder ist er sonst nicht auf Gewinn gerichtet, so ist der Tagessatz mit mindestens 2 und höchstens 1 500 Euro festzusetzen."}]}
New_new_para_header: Bemessung der Verbandsgeldbuße
New_par: § 5.;{"List":[{"Text":"(1). Bei der Bemessung der Anzahl der Tagessätze hat das Gericht Erschwerungs- und Milderungsgründe, soweit sie nicht schon die Höhe der angedrohten Geldbuße bestimmen, gegeneinander abzuwägen."},{"Multi":[{"Text":"(2) Die Anzahl ist insbesondere umso höher zu bemessen,"},{"List":[{"Text":"1. je größer die Schädigung oder Gefährdung ist, für die der Verband verantwortlich ist;"},{"Text":"2. je höher der aus der Straftat vom Verband erlangte Vorteil ist;"},{"Text":"3. je mehr gesetzwidriges Verhalten von Mitarbeitern geduldet oder begünstigt wurde."}]}]},{"Multi":[{"Text":"(3) Die Anzahl ist insbesondere geringer zu bemessen, wenn"},{"List":[{"Text":"1. der Verband schon vor der Tat Vorkehrungen zur Verhinderung solcher Taten getroffen oder Mitarbeiter zu rechtstreuem Verhalten angehalten hat;"},{"Text":"2. der Verband lediglich für Straftaten von Mitarbeitern verantwortlich ist (§ 3 Abs. 3);"},{"Text":"3. er nach der Tat erheblich zur Wahrheitsfindung beigetragen hat;"},{"Text":"4. er die Folgen der Tat gutgemacht hat;"},{"Text":"5. er wesentliche Schritte zur zukünftigen Verhinderung ähnlicher Taten unternommen hat;"},{"Text":"6. die Tat bereits gewichtige rechtliche Nachteile für den Verband oder seine Eigentümer nach sich gezogen hat."}]}]}]}
New_new_para_header: Bedingte Nachsicht der Verbandsgeldbuße

View File

@ -16,6 +16,7 @@
use std::iter::Peekable;
use log::trace;
use roxmltree::{Children, Node};
use crate::law::Content;
@ -39,6 +40,7 @@ impl Absatz {
// - String: (optional) paragraph id
// - Content: content of the paragraph
pub(crate) fn parse_full(c: &mut Peekable<Children>) -> (Option<String>, Content) {
trace!("Parsing absatz...");
let absatz = AbsatzAbs::parse(c.next().unwrap());
let par_id = absatz.gldsym;
@ -48,6 +50,7 @@ impl Absatz {
// If there's a "liste" after an "absatz", the "liste" should be part of the "absatz"
while let Some(child) = c.peek() {
if Liste::test(child) {
trace!("Found liste inside absatz, parsing...");
let liste = Liste::parse_full(c).content;
content.extend(liste);
} else if Table::test(child) {

View File

@ -17,7 +17,7 @@
use std::collections::HashMap;
use std::iter::Peekable;
use log::trace;
use log::{debug, trace};
use roxmltree::{Children, Node};
use crate::law::LawBuilder;
@ -73,6 +73,7 @@ impl Abschnitt {
builder.new_par(par_id, Content::List(contents));
}
debug!("Handling post metadata");
ret.handle_metadata(&mut c, builder);
// Skip all UeberschriftTitle and Absatz

View File

@ -44,12 +44,17 @@ impl Liste {
// Parse stuff inside <liste>
while let Some(child) = c.peek() {
if Ziffernliste::test(child) {
trace!("Found Ziffernliste in liste, parsing...");
let liste = Ziffernliste::parse(&mut c);
content.push(liste.get_content());
} else if Schlussteil::test(child) {
// 162 Schifffahrtsgesetz show use that a 'schlussteil' can be at the start of a list
content.push(Content::Text(Schlussteil::parse(c.next().unwrap()).content));
} else {
trace!(
"No more acceptable element in the list found: '{}'",
child.tag_name().name()
);
break;
}
}