Systemdesign\Applikation oder autom. Workflow zum Import von Eingangs‐Rechnungen (E‐Rechnung berücksichtigen) (Max&Manuel) - notrautmann/TINF23CS1 GitHub Wiki

Systemkomponenten – Übersicht

wird in das Rechnungsprogramm von Gruppe 10 eingebunden (UI wird nicht von uns gehandhabt)

Verwende PHP (zugferd library gibt es nur für PHP)

Datenbank

  • SQL Tabelle "invoices"
  • invoices als Zeilen
  • Spalten:
    • invoiceId (primary key)
    • supplierName
    • supplierAddress
    • companyName
    • companyAdrdress
    • invoiceDate
    • invoiceNumber
    • description
    • quantity
    • unitPrice
    • totalPrice
    • VAT
    • paymentTerms

Flow

Supplier sendet Rechnungsmail   Manuelle Rechnung wird erstellt
              |                             (Frontend)
              |                               |
              v                               v
        Mail wird geparsed                  API Aufruf
(unterstützt xRechnung,ZUGFeRD, Factur-X)     |
              |                               |
              v                               |
              Eintrag in DB hinzugefügt <-----+
                        |
                        v
            Rechnung wird im Frontend angezeigt
    (eventuell Warnung im Frontend bei unbekannten Supplier)
                        |
                        v
         (Frontend fordert Rechnungsbegleichung)
                API aufruf mit invoiceID
                        |
                        v
        tätige Zahlung mit payment provider (stripe?)

APIs

Mail Input

  • verwendet von SMTP Regel + mailparser (mailparser.io, Microsoft Power Automate)
  • kein Auth (nur Import, Rechnungsprogramm(10) für Legitimitätschecks verantwortlich)
  • e-Rechnung Parser (github.com/horstoeko/zugferd.git)
  • Validierung (haben Felder gültige Werte) (Whitelist Checks im Rechnungsprogramm(10))
  • (evtl.) Aktualisierungs-API Aufruf Rechnungsprogramm (10)

Manuelle Rechnungserstellung

  • könnte evtl. auch als direkter SQL Aufruf von der Applikation gemacht werden
  • REST API '{"invoiceId": "", "supplierName": "", "supplierAddress": "", "companyName": "", ...}'
  • SQL Aufruf um invoice zu erstellen

Rechnungsbegleichung

  • REST API '{"invoiceId": ""}'
  • invoice von DB holen
  • payment provider (stripe ?)