add more tracing, make vbvg better structure
All checks were successful
CI/CD Pipeline / test (push) Successful in 1m49s
All checks were successful
CI/CD Pipeline / test (push) Successful in 1m49s
This commit is contained in:
parent
0dc59cea16
commit
39f39e49d6
@ -6,3 +6,42 @@ name = "Verbandsverantwortlichkeitsgesetz"
|
|||||||
name = "Abschnitt"
|
name = "Abschnitt"
|
||||||
is_root = true
|
is_root = true
|
||||||
match_function = "contains"
|
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>"""
|
||||||
|
@ -9,7 +9,7 @@ New desc: Verbandsverantwortlichkeit – Materiellrechtliche Bestimmungen
|
|||||||
New_new_para_header: Verantwortlichkeit
|
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_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_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_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_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
|
New_new_para_header: Bedingte Nachsicht der Verbandsgeldbuße
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
use std::iter::Peekable;
|
use std::iter::Peekable;
|
||||||
|
|
||||||
|
use log::trace;
|
||||||
use roxmltree::{Children, Node};
|
use roxmltree::{Children, Node};
|
||||||
|
|
||||||
use crate::law::Content;
|
use crate::law::Content;
|
||||||
@ -39,6 +40,7 @@ impl Absatz {
|
|||||||
// - String: (optional) paragraph id
|
// - String: (optional) paragraph id
|
||||||
// - Content: content of the paragraph
|
// - Content: content of the paragraph
|
||||||
pub(crate) fn parse_full(c: &mut Peekable<Children>) -> (Option<String>, Content) {
|
pub(crate) fn parse_full(c: &mut Peekable<Children>) -> (Option<String>, Content) {
|
||||||
|
trace!("Parsing absatz...");
|
||||||
let absatz = AbsatzAbs::parse(c.next().unwrap());
|
let absatz = AbsatzAbs::parse(c.next().unwrap());
|
||||||
let par_id = absatz.gldsym;
|
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"
|
// If there's a "liste" after an "absatz", the "liste" should be part of the "absatz"
|
||||||
while let Some(child) = c.peek() {
|
while let Some(child) = c.peek() {
|
||||||
if Liste::test(child) {
|
if Liste::test(child) {
|
||||||
|
trace!("Found liste inside absatz, parsing...");
|
||||||
let liste = Liste::parse_full(c).content;
|
let liste = Liste::parse_full(c).content;
|
||||||
content.extend(liste);
|
content.extend(liste);
|
||||||
} else if Table::test(child) {
|
} else if Table::test(child) {
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::iter::Peekable;
|
use std::iter::Peekable;
|
||||||
|
|
||||||
use log::trace;
|
use log::{debug, trace};
|
||||||
use roxmltree::{Children, Node};
|
use roxmltree::{Children, Node};
|
||||||
|
|
||||||
use crate::law::LawBuilder;
|
use crate::law::LawBuilder;
|
||||||
@ -73,6 +73,7 @@ impl Abschnitt {
|
|||||||
builder.new_par(par_id, Content::List(contents));
|
builder.new_par(par_id, Content::List(contents));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
debug!("Handling post metadata");
|
||||||
ret.handle_metadata(&mut c, builder);
|
ret.handle_metadata(&mut c, builder);
|
||||||
|
|
||||||
// Skip all UeberschriftTitle and Absatz
|
// Skip all UeberschriftTitle and Absatz
|
||||||
|
@ -44,12 +44,17 @@ impl Liste {
|
|||||||
// Parse stuff inside <liste>
|
// Parse stuff inside <liste>
|
||||||
while let Some(child) = c.peek() {
|
while let Some(child) = c.peek() {
|
||||||
if Ziffernliste::test(child) {
|
if Ziffernliste::test(child) {
|
||||||
|
trace!("Found Ziffernliste in liste, parsing...");
|
||||||
let liste = Ziffernliste::parse(&mut c);
|
let liste = Ziffernliste::parse(&mut c);
|
||||||
content.push(liste.get_content());
|
content.push(liste.get_content());
|
||||||
} else if Schlussteil::test(child) {
|
} else if Schlussteil::test(child) {
|
||||||
// 162 Schifffahrtsgesetz show use that a 'schlussteil' can be at the start of a list
|
// 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));
|
content.push(Content::Text(Schlussteil::parse(c.next().unwrap()).content));
|
||||||
} else {
|
} else {
|
||||||
|
trace!(
|
||||||
|
"No more acceptable element in the list found: '{}'",
|
||||||
|
child.tag_name().name()
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user