Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/schoettl/autokm

Kilometerabrechnung für gemeinsam genutzte Autos
https://github.com/schoettl/autokm

Last synced: 24 days ago
JSON representation

Kilometerabrechnung für gemeinsam genutzte Autos

Awesome Lists containing this project

README

        

* Fahrtenbuch für gemeinsam genutzte Autos

Wir haben mehrere Autos, die mehrere Personen abwechselnd nutzen.
Alle Kosten (Reperaturen, Versicherung, Sprit usw.) werden vom
Fahrzeughalter bezahlt.
Damit es gerecht ist, zahlen alle Nutzer eine Kilometerpauschale an
den Fahrzeughalter.

Die Abrechnung der gefahrenen Kilometer aller Nutzer realisieren wir
folgendermaßen:

- [[https://organice.200ok.ch/][organice]] als digitales Fahrtenbuch (quasi als App für's Smartphone).
- Die Fahrtenbuch-Datei hat ein spezielles [[https://orgmode.org/][Org Mode]] Datenformat.
- Mithilfe von Emacs, Org Mode, [[https://hledger.org/][hledger]]
und weiteren Scripts wird die Abrechnung erstellt.

* Beispiel- und Vorlagedatei für das Fahrtenbuch

Wichtig in diesem Beispiel ist eigentlich nur:

- Vor jedem Kilometerstand müssen mindestens zwei Sterne stehen (=**=)
- Die Kilometerstände sind absteigend sortiert, d.h. der neueste,
höchste Kilometerstand muss immer ganz oben stehen
- Nach dem ganzzahligen Kilometerstand muss "km" stehen
- Nach "km" kann ein Buchstabe als Fahrerkürzel stehen (oder bei mehreren
Personen mehrere eindeutige Buchstaben ohne Leerzeichen dazwischen)
- Wenn Fahrer angegeben sind kann danach ein beliebiger Text stehen
- In der nachfolgenden Zeile muss ein Orgmode Zeitstempel stehen,
optional mit Zeit, z.B. [2022-06-19 Sun 12:10]

Formal definiert:

: ** KILOMETERSTAND km [FAHRER [BESCHREIBUNG]] [ORG_TAGS]
: ORG_TIMESTAMP_OPTIONAL_WITH_TIME

Die Groß-/Kleinschreibung der Fahrerbuchstaben ist unerheblich.

TODO: Muss noch genauer beschrieben werden. Es funktioniert das, was
das Skript =org2hledger.awk= richtig verarbeitet.

#+begin_src org :tangle sample.org
* Fahrtenbuch
** 1200 km J ausflug in die berge
[2022-06-16 Thu 20:00]
** 1100 km H
[2022-06-15 Thu]
** 1000 km
[2022-06-15 Thu]
* Archiv (2021)
** 1000 km J urlaub
** 700 km
** 600 km H
** 500 km
#+end_src

Hier ist ein Beispielaufruf von =org2hledger.awk=. Vorher muss
=sample.org= erstell werden (Emacs =M-x org-babel-tangle=).

#+begin_src sh :results verbatim
awk -f org2hledger.awk sample.org
#+end_src

#+RESULTS:

* Beispiel Capture Templates für organice

Damit man schnell Einträge ins Fahrtenbuch hinzufügen kann, kann man
in organice
[[https://organice.200ok.ch/documentation.html#capture_templates][Capture Templates]]
definieren, also Vorlagen, die man über den "+" Button öffnen,
ausfüllen und dem Fahrtenbuch hinzufügen kann.

Die Capture Templates müssen folgende Einstellungen haben:

- Prepend: yes
- Header path: Fahrtenbuch (oder wie die top-level Überschrift eben heißt)
- Optional: Available in org files: (hier die Fahrtenbuch-Dateien wählen)

*Anfangsstand* (A) – nicht notwendig, wenn der Anfangsstand gleich dem
letzten Endstand ist:

#+begin_example
* 25%? km
%U
#+end_example

*Endstand* (E):

#+begin_example
* 25%? km J
%U
#+end_example

* Ein hledger Journal für alle Autos erzeugen

#+begin_src sh
echo > kmstand.ledger
echo 'commodity 9.999,99 €' >> kmstand.ledger
echo 'commodity 9.999,99 km' >> kmstand.ledger
echo 'P 2020-01-01 km 0,25 €' >> kmstand.ledger
echo 'P 2022-03-10 km 0,30 €' >> kmstand.ledger
awk -f org2hledger.awk -vextratag=auto:vw < ~/Dropbox/org/gschwisterl/auto.org >> kmstand.ledger
awk -f org2hledger.awk -vextratag=auto:benz < ~/Dropbox/org/gschwisterl/auto_opa.org >> kmstand.ledger
#+end_src

Beispiel hledger-Abfrage: Kilometer pro Jahr, getrennt nach Auto:

#+begin_src sh :results verbatim
hledger -f kmstand.ledger balance expenses:km: --pivot auto -Y
#+end_src