commit 05a5b8b0dddc589829c1bec32bd64385cff134c3 Author: Gandalf Date: Sat Mar 13 15:34:07 2021 +0100 Initial commit after repo split diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b889515 --- /dev/null +++ b/.gitignore @@ -0,0 +1,311 @@ +# Custom entries +test.* + + +# ---> TeX +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + +# ---> Vim +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + diff --git a/Adressen/Adressen.csv b/Adressen/Adressen.csv new file mode 100644 index 0000000..acc989b --- /dev/null +++ b/Adressen/Adressen.csv @@ -0,0 +1,3 @@ +handle,Name,Anrede,Adresse,FaxNr,TelNr,Closing,parent +AGdn,"AG Düren","Damen und Herren","August-Klotz-Str. 14\\52349 Düren",02421 493-6001,02421 493-0,"Mit der Ihnen gebührenden Hochachtung",LGac +LGac,"Landgericht Aachen","Damen und Herren","Adalbertsteinweg 92\\52070 Aachen",0241 9425-80000,0241 9425-0,"Mit der Ihnen gebührenden Hochachtung",OLGHamm diff --git a/README.md b/README.md new file mode 100644 index 0000000..ffb302a --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +# Letterhead + +Letterhead sammelt Vorlagen und eine Adressverwaltung für mein privates Aktenverwaltungssystem. + +## LaTeX +Mein neuer Briefkopf arbeitet mit der Komascript-Klasse `scrlttr2`. + +Die Dateigestaltung ist noch chaotisch und superprovisorisch + +### Schnittstellen +Einige Schnittstellen verwenden -offen oder verdeckt- Komavariablen: +`yourref` für das **Aktenzeichen**. Dieses wird als per `setkomavar{yourref}` gesetzt, kann aber als `\az` ausgelesen werden. +Anders das **Briefdatum**, das nur als Komavariable `yourmail` angesprochen wird. +Der `subject`-Befehl aus `letter` wurde als Wrapper um `setkomavar{subject}` reimplementiert. + +Die **automatische Adresswahl** ist erst halb implementiert, soll aber über das Kommando `\receive` passieren: +`\receive*{}` +: `` ist ein Primärschlüssel aus der Datenbank in `Adressen.csv`, deren Pfad aktuell noch hardcoded ist. + +`\receive{}` +: in dieser Version ist `` ein Funktionshandle `INH` aus der Datei `DECKBLATT.csv` + +### Templates +`\einspruch{}` +: `` sollte `Strafbefehl` oder `Bußgeldbescheid` sein. Aktenzeichen und Briefdatum sollten über die Schnittstellen, am Besten über `\receive` vorher gesetzt sein, da dieser Befehl diese Werte per Schnittstelle abruft. + +`\rechtsmittel[]{}{protokoll}` +: `` defaults to `zunächst unbestimmtes Rechtsmittel`. Sonst hier `Revision`, `Berufung` oder `Rechtsbeschwerde` eintragen. `protokoll` ist einzutragen, wenn gleichzeitig die Zusendung des Protokolls beantragt werden soll, ansonsten leere Klammern lassen. + +## Adressdatenbank +Angedacht ist folgendes Konzept: + +Eine zentrale Adressdatenbank: +``` +Adressen.csv +============ +handle,Name,Anrede,Adresse,FaxNr,TelNr,Closing,parent +``` +Wo `handle` und `parent` datenbankinterne Schlüssel sind, `parent` enthält das `handle` der nächsthöheren Hierarchieebene: Bei Personen die zugehörige Behörde/Organisation, bei Gerichten das zuständige Rechtsmittelgericht. + +Eine durch `wiedervorlagen.sh` per cron@boot erstellte Übersicht der nächsten Termine: +``` +Wiedervorlagen.md +================= +Datum | Typ | Gegenseite/Gericht | deren Az | mein Az | PATH +------------------------------------------------------------ +13.12.21 | harte Frist | AG Düren | 13 Js 43/21 | Bullshit/21 | ~/Dokumente/Strafrecht/Bullshit +15.12.21 | weiche Frist | VG Köln | 5 K 161/20 | Blubb/20 | ~/Dokumente/Verwaltungsklagen/Blubb +24.12.21 | Wiedervorlage | IM NRW | 352351354-18 | Schleierfahndung | ~/Dokumente/Recherche/Hambi +6.1.22 | Hauptverhandlung| AG Düren | 13 Js 43/21 | Bullshit/21 | ~/Dokumente/Strafrecht/Bullshit +``` + +In jedem Aktenordner zwei Dateien +``` +DECKBLATT.csv +============= +INH,handle,aktenzeichen,zuständig +``` +Wo `INH ∈ {AG,LG,StA,OLG,BVerfG,VG,OVG,GEG,SG}` und `zuständig='+'` in der Zeile des aktuellen Hauptbrieffeindes. + +``` +Wiedervorlagen.csv +================== +Datum,Typ,rec,erledigt +``` +Diese enthält die Daten, die von `wiedervorlagen.sh` in die zentrale `Wiedervorlagen.md` kompiliert werden. +Im Internformat möglicherweise unsortiert und möglicherweise alte Termine. Evtl. werden auch Wiedervorlagen, die keine Fristsachen sind, +nicht im Vorraus in die Übersicht einsortiert, mal schauen. + +### Skripte +#### `wiedervorlagen.sh` +Sammelt, wie schon erwähnt, bei jedem Rechnerneustart (`cron@boot`) aus der gesamten Dateistruktur alle Wiedervorlagen zusammen und baut eine +Markdown-formatierte Übersicht. Oder ein anderes Format? An sich könnte er das auch per `LaTeX` oder als `svg` in das Hintergrundbild schummeln… +Holt sich die Aktenzeichen aus `DECKBLATT.csv` +#### address.sh +Führt durch die Eintragung in die Adressdatenbank oder gibt einzelne Werte aus selbiger zurück. (Zur Verwendung durch `sipgate-cli` zB) +#### init.sh +Führt durch die Anlage eines Deckblattes~~ und stellt sicher, dass die korrekte Gerichtshierarchie eingetragen ist~~. +#### rechtsmittel.sh +Tut, in einer Akte aufgerufen, zwei Dinge: +1. ein Fax unter Verwendung der LaTeX-Templates `\einspruch` bzw. `\rechtsmittel` anlegen, + * zur Kontrolle anzeigen und + * wegfaxen +2. das `DECKBLATT.csv` aktualisieren. Wenn nötig (per `address.sh`?) die Daten des Rechtsmittelgerichts erfragen. +#### erinnermich.sh +Füllt die Datei `Wiedervorlagen.csv` mit Nutzieingaben. diff --git a/latex/DECKBLATT.csv b/latex/DECKBLATT.csv new file mode 100644 index 0000000..c76f556 --- /dev/null +++ b/latex/DECKBLATT.csv @@ -0,0 +1,3 @@ +INH,handle,az,stand +ME,me,foo, +AG,AGdn,bar,+ diff --git a/latex/einspruch.tex b/latex/einspruch.tex new file mode 100644 index 0000000..d3c4491 --- /dev/null +++ b/latex/einspruch.tex @@ -0,0 +1,9 @@ +\newcommand{\einspruch}[1]{Hiermit lege ich Einspruch gegen den #1 Az. \az\ vom \usekomavar{yourmail} ein. + +Ich beantrage zum Zwecke der Akteneinsicht nach §\,149\,Abs.\,7\,StPO die Zusendung der vollständigen Verfahrensakte bzw. Kopien davon an meine Adresse.} + +\usepackage{ifthen} +\newcommand{\rechtsmittel}[3][zunächst unbestimmtes Rechtsmittel]{Hiermit lege ich #1 gegen das Urteil vom #2 unter dem Aktenzeichen \az\ ein. + +\ifthenelse{\equal{#3}{protokoll}}{Ich beantrage zugleich die Zusendung des vollständigen Protokolls der Hauptverhandlung an meine Adresse.}\ +} diff --git a/latex/empfaenger.tex b/latex/empfaenger.tex new file mode 100644 index 0000000..9066948 --- /dev/null +++ b/latex/empfaenger.tex @@ -0,0 +1,4 @@ +\newcommand{\adresse}{AG sowieso\\Scheißstraße\\Doofland} +\setkomavar{yourref}{foo} +\setkomavar{myref}{bar} +%\KOMAoption{priority}{priority} diff --git a/latex/letterhead.cls b/latex/letterhead.cls new file mode 100644 index 0000000..c2f9acc --- /dev/null +++ b/latex/letterhead.cls @@ -0,0 +1,51 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{letterhead}[2021/03/15 scrlttr2 derived letter class for automatisation of legal letters] + +\RequirePackage{ifthen} +\RequirePackage{datatool} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrlttr2}} +\ProcessOptions\relax + +\LoadClass{scrlttr2} + +\setkomavar*{yourref}{Aktenzeichen} +\setkomavar*{myref}{Mein Zeichen} + +\newcommand{\subject}[1]{\setkomavar{subject}{#1}} +\newcommand{\az}{\usekomavar{yourref}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Adress detection +%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand*{\receivestar}[1]{ + \DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv} + \DTLassignfirstmatch{adressen}{handle}{#1}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing} +} + +\newcommand*{\receivenostar}[1][+]{ + \DTLloaddb{deckblatt}{DECKBLATT.csv} + \ifthenelse{\equal{#1}{+}}{% + \DTLassignfirstmatch{deckblatt}{stand}{+}{\handle=handle,\aktenzeichen=az}% + }{% + \DTLassignfirstmatch{deckblatt}{INH}{#1}{\handle=handle,\aktenzeichen=az}% + } + \DTLassignfirstmatch{deckblatt}{INH}{ME}{\myref=az} + \DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv} + \xDTLassignfirstmatch{adressen}{handle}{\handle}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing} + \setkomavar{yourref}{\aktenzeichen} + \setkomavar{myref}{\myref} +} +\newcommand*{\receive}{\@ifstar{\receivestar}{\receivenostar}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Templates +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\einspruch}[1]{Hiermit lege ich Einspruch gegen den #1 Az. \az\ vom \usekomavar{yourmail} ein. + +Ich beantrage zum Zwecke der Akteneinsicht nach §\,149\,Abs.\,7\,StPO die Zusendung der vollständigen Verfahrensakte bzw. Kopien davon an meine Adresse.} + +\newcommand{\rechtsmittel}[3][zunächst unbestimmtes Rechtsmittel]{Hiermit lege ich #1 gegen das Urteil vom #2 unter dem Aktenzeichen \az\ ein. + +\ifthenelse{\equal{#3}{protokoll}}{Ich beantrage zugleich die Zusendung des vollständigen Protokolls der Hauptverhandlung an meine Adresse.}\ +} diff --git a/latex/receive.tex b/latex/receive.tex new file mode 100644 index 0000000..326b585 --- /dev/null +++ b/latex/receive.tex @@ -0,0 +1,25 @@ +\usepackage{datatool} +\usepackage{ifthen} + +\newcommand*{\receivestar}[1]{ + \DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv} + \DTLassignfirstmatch{adressen}{handle}{#1}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing} +} + +\newcommand*{\receivenostar}[1][+]{ + \DTLloaddb{deckblatt}{DECKBLATT.csv} + \ifthenelse{\equal{#1}{+}}{% + \DTLassignfirstmatch{deckblatt}{stand}{+}{\handle=handle,\aktenzeichen=az}% + }{% + \DTLassignfirstmatch{deckblatt}{INH}{#1}{\handle=handle,\aktenzeichen=az}% + } + \DTLassignfirstmatch{deckblatt}{INH}{ME}{\myref=az} + \DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv} + \xDTLassignfirstmatch{adressen}{handle}{\handle}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing} + \setkomavar{yourref}{\aktenzeichen} + \setkomavar{myref}{\myref} +} + +\makeatletter +\newcommand*{\receive}{\@ifstar{\receivestar}{\receivenostar}} +\makeatother