docs: add fictional Halian invoice and email workflow
This commit is contained in:
1 parent
a643cf5227
commit
34a7a3d039
3 files changed
+142
No files matched your search
@@ -29,6 +29,14 @@ Beispieldateien eintragen. `private/`, `invoices/`, die virtuelle Umgebung und
|
|||||||
Ausgabeordner sind gitignoriert. Externe Rechnungsordner separat gegen versehentliches
|
Ausgabeordner sind gitignoriert. Externe Rechnungsordner separat gegen versehentliches
|
||||||
Committen sichern. Die lokale IDV-Vorlage ist nur historischer Bestand; keine Empfängeradresse ist dafür erforderlich.
|
Committen sichern. Die lokale IDV-Vorlage ist nur historischer Bestand; keine Empfängeradresse ist dafür erforderlich.
|
||||||
|
|
||||||
|
## Durchgängiges Praxisbeispiel
|
||||||
|
|
||||||
|
[Halian GmbH: C# Entwicklung Bank Projekt, Oktober 2026](docs/beispiel-workflow-halian.md)
|
||||||
|
zeigt die Rechnungserstellung, das Anhängen der PDF-Datei und den manuellen Versand
|
||||||
|
an `invoice@halian.com`, einschließlich Betreff, Textvorlage und optionalem EML-Entwurf.
|
||||||
|
Die Beispielannahmen (120 Stunden und 85 EUR netto „all in“ zuzüglich Umsatzsteuer)
|
||||||
|
sind dort ausdrücklich gekennzeichnet. Halian ist hier kein bestätigter Kunde.
|
||||||
|
|
||||||
## Befehle
|
## Befehle
|
||||||
|
|
||||||
`jr-einvoice --help` und `<befehl> --help` zeigen alle Parameter.
|
`jr-einvoice --help` und `<befehl> --help` zeigen alle Parameter.
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ verloren gehen kann. Die Ausgabe bestätigt die erfolgreiche technische Prüfung
|
|||||||
Sie garantiert nicht pauschal die sachliche oder steuerliche Richtigkeit deiner
|
Sie garantiert nicht pauschal die sachliche oder steuerliche Richtigkeit deiner
|
||||||
Eingaben. Details: [Rechtsstand und Grenzen](docs/e-rechnung-2027.md).
|
Eingaben. Details: [Rechtsstand und Grenzen](docs/e-rechnung-2027.md).
|
||||||
|
|
||||||
|
Ein vollständiger Ablauf mit Projektbeschreibung, PDF-Anhang, Mailbetreff,
|
||||||
|
Textvorlage und Versand steht im [fiktiven Halian-Beispiel](docs/beispiel-workflow-halian.md).
|
||||||
|
|
||||||
## Optionen für Alltag und Skripte
|
## Optionen für Alltag und Skripte
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -0,0 +1,131 @@
|
|||||||
|
# Beispiel: Halian GmbH – Oktober 2026
|
||||||
|
|
||||||
|
Fiktiver Ablauf vom Konsolenaufruf bis zum Versand über dein Mailprogramm.
|
||||||
|
Es wird durch diese Dokumentation keine Rechnung erstellt und keine E-Mail versendet.
|
||||||
|
|
||||||
|
Für das Beispiel nehmen wir **120 tatsächlich geleistete Stunden** an. „85 EUR
|
||||||
|
all in“ bedeutet hier **85 EUR netto pro Stunde einschließlich aller Nebenkosten,
|
||||||
|
zuzüglich 19 % Umsatzsteuer**. Falls vertraglich 85 EUR einschließlich Umsatzsteuer
|
||||||
|
vereinbart sind, passt dieser Nettopreis nicht; zuerst die Preisbasis klären.
|
||||||
|
Die Rechnungsanschrift und etwaige Bestellnummer müssen aus dem Auftrag stammen;
|
||||||
|
hier wird keine reale Halian-Anschrift behauptet. `invoice@halian.com` ist die für
|
||||||
|
dieses Beispiel von dir vorgegebene Versandadresse, keine unabhängig geprüfte Adresse.
|
||||||
|
|
||||||
|
## 1. Rechnung erzeugen
|
||||||
|
|
||||||
|
Nach Abschluss des Leistungsmonats, im Beispiel am **31.10.2026**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /home/johannes/localdev/einvoice
|
||||||
|
|
||||||
|
einvoice --create \
|
||||||
|
--Customer "Halian GmbH" \
|
||||||
|
--Entry "C# Entwicklung Bank Projekt – Geleistete Stunden Oktober 2026" \
|
||||||
|
--Volume 120 \
|
||||||
|
--Price "85,00 €" \
|
||||||
|
--Month 2026-10 \
|
||||||
|
--Date 2026-10-31 \
|
||||||
|
--DueDays 30
|
||||||
|
```
|
||||||
|
|
||||||
|
Stunden, Preis, Datum und Zahlungsziel für eine echte Rechnung entsprechend dem
|
||||||
|
Auftrag anpassen. Bei einem **neuen Kunden** fragt die Konsole Straße/Hausnummer,
|
||||||
|
Postleitzahl und Ort ab. Dort die vollständige Rechnungsanschrift laut Auftrag
|
||||||
|
angeben. Sie wird lokal gespeichert; bei weiteren Rechnungen reicht derselbe
|
||||||
|
Kundenname. Bei Bedarf `--OrderReference "BESTELLNUMMER-LAUT-AUFTRAG"` ergänzen.
|
||||||
|
Keine erfundene Bestellnummer übernehmen.
|
||||||
|
|
||||||
|
Die Nummer wird automatisch vergeben. Angenommen, die Konsole meldet
|
||||||
|
`JR-2026-0001` (deine tatsächliche Nummer kann abweichen):
|
||||||
|
|
||||||
|
```text
|
||||||
|
Rechnungsdaten vollständig: JR-2026-0001 · Halian GmbH
|
||||||
|
PDF/A und strukturierte Rechnungsdaten werden erzeugt …
|
||||||
|
Rechnung validiert: PDF/A und EN16931-XML technisch gültig.
|
||||||
|
Rechnung erzeugt · Netto: 10.200,00 EUR · USt: 1.938,00 EUR · Brutto: 12.138,00 EUR
|
||||||
|
Leistung: 2026-10-01 bis 2026-10-31
|
||||||
|
PDF zum Anhängen an deine E-Mail:
|
||||||
|
…/Rechnung_JR-2026-0001_…/Rechnung_JR-2026-0001.pdf
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Zahlungsziel ist im Beispiel **30.11.2026**. Die Konsole nennt zusätzlich den
|
||||||
|
Prüfbericht. Bei einem Fehler erst den Entwurf korrigieren und erneut validieren;
|
||||||
|
keine Sichtkopie als Ersatz versenden.
|
||||||
|
|
||||||
|
## 2. PDF prüfen und im Mailprogramm anhängen
|
||||||
|
|
||||||
|
1. Die unter **„PDF zum Anhängen an deine E-Mail“** ausgegebene Datei öffnen.
|
||||||
|
Kundenanschrift, Projekt, tatsächliche Stunden, Leistungszeitraum, Rechnungsnummer,
|
||||||
|
Bankverbindung und Gesamtbetrag prüfen.
|
||||||
|
2. Im Mailprogramm eine neue Nachricht mit Absender **johannes@jr-it-services.de**
|
||||||
|
an **invoice@halian.com** anlegen.
|
||||||
|
3. Die ausgegebene `Rechnung_<tatsächliche Nummer>.pdf` im Dateimanager markieren
|
||||||
|
und per Drag-and-drop in die Nachricht ziehen. Alternativ über die Büroklammer
|
||||||
|
„Datei anhängen“ auswählen; im Dateiauswahldialog den vollständigen PDF-Pfad aus
|
||||||
|
der Konsole einfügen. **Den Pfad in den Mailtext zu kopieren hängt die Datei nicht an.**
|
||||||
|
4. Prüfen, dass die Nachricht einen PDF-Anhang mit dem richtigen Dateinamen enthält.
|
||||||
|
Die Originaldatei anhängen; nicht neu als PDF drucken oder konvertieren. Das
|
||||||
|
strukturierte XML ist bereits eingebettet. `out/invoice.pdf` ist nur die Sichtkopie.
|
||||||
|
|
||||||
|
**Betreff** – Rechnungsnummer durch die tatsächlich ausgegebene Nummer ersetzen:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Rechnung JR-2026-0001 | Oktober 2026 | C# Entwicklung Bank Projekt
|
||||||
|
```
|
||||||
|
|
||||||
|
**Textvorschlag:**
|
||||||
|
|
||||||
|
```text
|
||||||
|
Sehr geehrte Damen und Herren,
|
||||||
|
|
||||||
|
anbei erhalten Sie meine Rechnung JR-2026-0001 für das Projekt
|
||||||
|
„C# Entwicklung Bank Projekt“ im Leistungszeitraum 01.10.2026 bis 31.10.2026.
|
||||||
|
|
||||||
|
Abgerechnet werden 120 Stunden zu 85,00 EUR netto pro Stunde.
|
||||||
|
Der Rechnungsbetrag beträgt 12.138,00 EUR einschließlich 19 % Umsatzsteuer.
|
||||||
|
Bitte überweisen Sie den Betrag bis zum 30.11.2026 unter Angabe der
|
||||||
|
Rechnungsnummer auf das in der Rechnung genannte Konto.
|
||||||
|
|
||||||
|
Die Rechnung ist als ZUGFeRD/Factur-X-PDF mit eingebetteten strukturierten
|
||||||
|
Rechnungsdaten beigefügt.
|
||||||
|
|
||||||
|
Vielen Dank und freundliche Grüße
|
||||||
|
Johannes Rest
|
||||||
|
JR IT Services
|
||||||
|
johannes@jr-it-services.de
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Absenden und ablegen
|
||||||
|
|
||||||
|
Empfängeradresse mit dem Auftrag abgleichen und Betreff, Text, tatsächliche
|
||||||
|
Rechnungsnummer und Anhang noch einmal vergleichen. Bei vereinbartem
|
||||||
|
Stundennachweis diesen zusätzlich beifügen. Anschließend im Mailprogramm
|
||||||
|
**„Senden“** wählen.
|
||||||
|
|
||||||
|
Die gesendete Originalmail samt Anhang und vollständigen Rechnungsordner mit XML,
|
||||||
|
Prüfbericht und Prüfsummen in der gesicherten Ablage aufbewahren. Eine Kopie im
|
||||||
|
Gesendet-Ordner belegt noch keine Annahme beim Empfänger; Rückläufer bzw.
|
||||||
|
Empfangsbestätigungen berücksichtigen. Versandte Rechnungen nicht überschreiben.
|
||||||
|
|
||||||
|
## Optional: E-Mail-Entwurf bereits mit Anhang erzeugen
|
||||||
|
|
||||||
|
Statt die Datei manuell anzuhängen, kann der vorhandene Rechnungsordner an den
|
||||||
|
Mailentwurfsbefehl übergeben werden. Im folgenden Beispiel den Platzhalter durch
|
||||||
|
den **vollständigen tatsächlichen Rechnungsordner** ersetzen, nicht durch den PDF-Pfad:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/home/johannes/localdev/einvoice/.venv/bin/jr-einvoice email \
|
||||||
|
"/VOLLSTAENDIGER/PFAD/ZUM/RECHNUNGSORDNER" \
|
||||||
|
--to invoice@halian.com
|
||||||
|
```
|
||||||
|
|
||||||
|
Der Befehl erzeugt und validiert erneut und legt `out/invoice.eml` an. Diese Datei
|
||||||
|
im Mailprogramm als Entwurf öffnen (ggf. „Als neue Nachricht bearbeiten“). Absender,
|
||||||
|
Empfänger und PDF-Anhang sind vorbereitet; **Projektbetreff und ausführlichen Text
|
||||||
|
oben bei Bedarf einsetzen**, denn der automatische Entwurf verwendet einen
|
||||||
|
allgemeinen Rechnungsbetreff und einen kürzeren Standardtext. Prüfen und anschließend
|
||||||
|
selbst absenden. Der Befehl versendet nicht automatisch.
|
||||||
|
|
||||||
|
Wenn dein Mailprogramm EML-Dateien nur anzeigt, den manuellen Ablauf mit einer
|
||||||
|
neuen Nachricht verwenden. Zum Erstellen einer Rechnung genügt `einvoice --create`;
|
||||||
|
der EML-Schritt ist eine optionale Versandhilfe.
|
||||||
Reference in new issue
Block a user