docker.dateiverwaltung/regeln/beispiel_regeln.yaml

172 lines
4.5 KiB
YAML

# Beispiel-Regeln für die Dateiverwaltung
# Diese Datei dient als Referenz - Regeln werden in der Web-UI konfiguriert
# ============================================
# RECHNUNGEN
# ============================================
sonepar_rechnung:
name: "Sonepar Rechnung"
prioritaet: 10
muster:
text_match_any:
- sonepar
- "elektro großhandel"
text_match:
- rechnung
extraktion:
datum:
regex: '(\d{2}[./]\d{2}[./]\d{4})'
typ: datum
format: "%d.%m.%Y"
rechnungsnummer:
regex: 'Rechnungsnummer[:\s]*(\d+)'
betrag:
regex: 'Gesamtbetrag[:\s]*([\d.,]+)\s*(?:EUR|€)'
typ: betrag
kategorie:
wert: "Rechnung"
ersteller:
wert: "Sonepar"
schema: "{datum} - {kategorie} - {ersteller} - {rechnungsnummer} - Material - {betrag} EUR.pdf"
ziel_ordner: "/archiv/rechnungen/sonepar"
wuerth_rechnung:
name: "Würth Rechnung"
prioritaet: 10
muster:
text_match_any:
- würth
- wuerth
text_match:
- rechnung
extraktion:
datum:
regex: '(\d{2}[./]\d{2}[./]\d{4})'
typ: datum
format: "%d.%m.%Y"
rechnungsnummer:
regex: '(?:Rechnungs?nummer|Beleg)[:\s]*([A-Z0-9-]+)'
betrag:
regex: '(?:Gesamtbetrag|Summe|Total)[:\s]*([\d.,]+)\s*(?:EUR|€)?'
typ: betrag
kategorie:
wert: "Rechnung"
ersteller:
wert: "Würth"
schema: "{datum} - {kategorie} - {ersteller} - {rechnungsnummer} - Material - {betrag} EUR.pdf"
ziel_ordner: "/archiv/rechnungen/wuerth"
amazon_rechnung:
name: "Amazon Rechnung"
prioritaet: 10
muster:
text_match_any:
- amazon
- "Amazon EU S.à r.l."
text_match:
- rechnung
extraktion:
datum:
regex: '(\d{2}[./]\d{2}[./]\d{4})'
typ: datum
format: "%d.%m.%Y"
rechnungsnummer:
regex: '(?:Rechnungsnummer|Invoice)[:\s]*([A-Z0-9-]+)'
betrag:
regex: '(?:Gesamtbetrag|Grand Total)[:\s]*([\d.,]+)\s*(?:EUR|€)?'
typ: betrag
kategorie:
wert: "Rechnung"
ersteller:
wert: "Amazon"
schema: "{datum} - {kategorie} - {ersteller} - {rechnungsnummer} - {betrag} EUR.pdf"
ziel_ordner: "/archiv/rechnungen/amazon"
allgemeine_rechnung:
name: "Allgemeine Rechnung"
prioritaet: 50
muster:
text_match_any:
- rechnung
- invoice
- faktura
extraktion:
datum:
regex: '(\d{2}[./]\d{2}[./]\d{4})'
typ: datum
format: "%d.%m.%Y"
rechnungsnummer:
regex: '(?:Rechnungs?nummer|Rechnung\s*Nr\.?|Invoice|Beleg)[:\s#]*([A-Z0-9-]+)'
betrag:
regex: '(?:Gesamtbetrag|Summe|Total|Endbetrag|Rechnungsbetrag)[:\s]*([\d.,]+)\s*(?:EUR|€)?'
typ: betrag
kategorie:
wert: "Rechnung"
schema: "{datum} - {kategorie} - {rechnungsnummer} - {betrag} EUR.pdf"
ziel_ordner: "/archiv/rechnungen/sonstige"
# ============================================
# DOKUMENTE (nicht-wiederkehrend)
# ============================================
zeugnis:
name: "Zeugnis"
prioritaet: 20
muster:
text_match_any:
- zeugnis
- zertifikat
- bescheinigung
- certificate
extraktion:
typ:
regex: '(Zeugnis|Zertifikat|Bescheinigung|Certificate)'
aussteller:
regex: '(?:ausgestellt von|issued by|Schule|Universität|Hochschule|Firma)[:\s]*([A-Za-zäöüÄÖÜß\s]+)'
jahr:
regex: '(20\d{2})'
schema: "{typ} - {aussteller} - {jahr}.pdf"
ziel_ordner: "/archiv/dokumente/zeugnisse"
vertrag:
name: "Vertrag"
prioritaet: 20
muster:
text_match_any:
- vertrag
- vereinbarung
- contract
- agreement
extraktion:
typ:
wert: "Vertrag"
partner:
regex: '(?:zwischen|Vertragspartner|mit)[:\s]*([A-Za-zäöüÄÖÜß\s]+)'
datum:
regex: '(\d{2}[./]\d{2}[./]\d{4})'
typ: datum
format: "%d.%m.%Y"
schema: "{typ} - {partner} - {datum}.pdf"
ziel_ordner: "/archiv/dokumente/vertraege"
# ============================================
# REGEX REFERENZ
# ============================================
#
# Häufige Muster:
#
# Datum (DD.MM.YYYY): (\d{2}[./]\d{2}[./]\d{4})
# Datum (YYYY-MM-DD): (\d{4}-\d{2}-\d{2})
# Betrag mit EUR: ([\d.,]+)\s*(?:EUR|€)
# Rechnungsnummer: (?:Rechnung|Invoice)[:\s#]*([A-Z0-9-]+)
# E-Mail: ([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})
# IBAN: ([A-Z]{2}\d{2}[A-Z0-9]{4}\d{7}([A-Z0-9]?){0,16})
#
# Tipps:
# - (?:...) = Nicht-einfangende Gruppe
# - [:\s]* = Optional Doppelpunkt und/oder Leerzeichen
# - \d+ = Eine oder mehr Ziffern
# - [A-Z0-9-]+ = Buchstaben, Zahlen und Bindestriche