Files
ImportAssist/docs/invoice-interface-v1.md

84 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Rechnungsschnittstelle – Version 1
Diese Spezifikation beschreibt synthetische Rechnungsimporte
für das Eigenprojekt ImportAssist.
## CSV-001: Dateistruktur
Die Kopfzeile muss lauten:
InvoiceId;CustomerId;Amount;Currency
Jede Datenzeile enthält genau vier durch Semikolon getrennte
Felder. Anführungszeichen und Zeilenumbrüche innerhalb eines
Feldes werden nicht unterstützt.
Bei einem Strukturfehler wird die gesamte Datei abgewiesen.
Die fachliche Prüfung der Rechnungen beginnt dann nicht.
## INV-001: Rechnungsnummer
InvoiceId muss vorhanden sein und darf nicht ausschließlich
aus Leerzeichen oder anderen Whitespace-Zeichen bestehen.
Bei einem Fehler ist die Rechnungsnummer anhand des
Ursprungsbelegs oder des Quellsystems zu ermitteln.
Es darf keine Rechnungsnummer erfunden werden.
## INV-002: Kundennummer
CustomerId muss vorhanden sein und darf nicht ausschließlich
aus Whitespace-Zeichen bestehen.
Bei einem Fehler ist die Kundenzuordnung anhand des
Ursprungsbelegs oder des Quellsystems zu prüfen.
Der vorliegende Prüfbericht enthält keine Kundenstammdaten.
## INV-003: Zahlenformat des Betrags
Amount wird zunächst als Text übernommen.
Die Prüfung verwendet decimal.TryParse mit InvariantCulture.
Erlaubt sind ein führendes Vorzeichen und ein Dezimalpunkt.
Tausendertrennzeichen und Exponentialschreibweise sind
nicht erlaubt.
Beispiele:
- 125.50 ist numerisch gültig.
- abc ist keine gültige Zahl.
- 125,50 entspricht nicht dem vereinbarten Zahlenformat.
Ein ungültiger Betrag muss anhand der Quelldaten geklärt werden.
Eine automatische Umdeutung des Zahlenformats ist nicht vorgesehen.
## INV-004: Positiver Betrag
Der numerisch gültige Betrag muss größer als null sein.
Null und negative Beträge werden zurückgewiesen.
Gutschriften sind in dieser Version nicht abgebildet.
Ein negativer Betrag darf nicht automatisch positiv gemacht werden.
## INV-005: Währung
Currency wird übernommen, aber bislang nicht fachlich geprüft.
Ein erfolgreiches Prüfergebnis bestätigt daher keine gültige Währung.
## REP-001: Bedeutung des Prüfberichts
Completed bedeutet, dass die fachliche Prüfung abgeschlossen ist.
Einzelne Rechnungen können dabei fehlerhaft sein.
Rejected bedeutet, dass die Dateistruktur abgewiesen wurde.
Die Ursache steht in fileErrors; rows bleibt leer.
Die Zähler geben dann keine Auskunft über die Gültigkeit
der ursprünglichen Rechnungen.
LineNumber bezeichnet die ursprüngliche CSV-Zeile einschließlich
der Kopfzeile.
## Grenzen
Die Prüfung umfasst bislang keine Kontrolle auf Dubletten,
existierende Kunden oder sachlich richtige Rechnungsbeträge.
Es werden keine Rechnungen gebucht.