Send-InvoiceToDatev #
ÜBERSICHT #
Exportiert eine EULANDA-Rechnung als DATEV-Belegtransfer-ZIP mit konfigurierbarem Dateinamen.
SYNTAX #
Send-InvoiceToDatev [-Conn] <__ComObject> [[-InvoiceId] <nullable[int]>] [[-InvoiceNo]
<nullable[int]>] [-PdfPath] <string> [-OutputPath] <string> [-OutputFolder] <string>
[[-ZipNameMask] <string>] [-CreateZugferd] [[-XsltPath] <string>]
BESCHREIBUNG #
DB-verbundener Orchestrator für den DATEV-Export einer Einzelrechnung. Erzeugt aus einer EULANDA-Rechnung ein DATEV-konformes ZIP-Archiv mit Rechnungsbild, Kontierungsdaten (Erlöskonten) und Verwaltungsdatei.
Der ZIP-Dateiname kann über eine Platzhalter-Maske (-ZipNameMask) konfiguriert werden. Verfügbare Variablen: KopfNummer, Datum, GesamtVorzeichen, Adresse.Land, VorgangKurz (RE/GS). Die Maske wird nach der META-XML-Erzeugung aufgelöst, sodass keine zusätzliche DB-Abfrage nötig ist.
Ablauf:
- EULANDA-META-XML mit Buchhaltungsdaten erzeugen (Export-InvoiceXml -IncludeAccounting) Enthält FIBULISTE mit Erlöskonten, MwSt-Sätzen und Debitorenkonto
- ZIP-Dateiname aus META-XML und Maske auflösen (nur im ByMask-Modus)
- XSLT-Transformation der META-XML zu DATEV LedgerImport-Format (EULANDA-invoice-eul-datev.xslt: ERLOESKONTO -> accountNo, MWSTSATZ -> tax)
- Optional: Rechnungs-PDF in ZUGFeRD/PDF-A3 umwandeln (-CreateZugferd)
- ZIP-Paket über Export-DatevInvoice erstellen
- Temporäre Zwischendateien aufräumen
Das erzeugte ZIP enthält:
- document.xml Verwaltungsdatei
- Rechnungsdaten_RA_
.xml Kontierung mit Erlöskonten - Rechnungsbild_RA_
.pdf Rechnungsbild
PARAMETER #
-Conn #
Type: __ComObject
Offene ADODB-Verbindung zur EULANDA-Datenbank.
-InvoiceId #
Type: nullable[int]
Default: $null
Interne Rechnungs-ID (Primärschlüssel). Hat Vorrang vor InvoiceNo.
-InvoiceNo #
Type: nullable[int]
Default: $null
Rechnungsnummer (KopfNummer).
-PdfPath #
Type: string
Pfad zur Rechnungs-PDF-Datei (Eingabe).
-OutputPath #
Type: string
Vollständiger Pfad zur ZIP-Datei die erzeugt werden soll (Ausgabe). Alternativ können -OutputFolder und -ZipNameMask verwendet werden.
-OutputFolder #
Type: string
Ausgabeordner für die ZIP-Datei. Wird zusammen mit -ZipNameMask verwendet. Die Maske wird nach der META-XML-Erzeugung anhand der Rechnungsdaten aufgelöst.
-ZipNameMask #
Type: string
Platzhalter-Maske für den ZIP-Dateinamen (ohne .zip-Endung). Verwendet die Expand-PlaceholderString-Syntax mit Prozent-Platzhaltern. Verfügbare Variablen: KopfNummer, Datum, GesamtVorzeichen, Adresse.Land, VorgangKurz (RE/GS) sowie alle SYSTEM.*-Variablen. Standard: %FF0000000:KopfNummer%-%VorgangKurz%-%Adresse.Land%-%FDyyyy-MM-dd:Datum% Ergibt z.B.: 0004711-RE-DE-2026-03-01.zip
-CreateZugferd #
Type: switch
Wandelt das Rechnungs-PDF in ein ZUGFeRD/PDF-A3 um (via ConvertTo-ZugferdPdf). Dazu wird zusätzlich eine CII-XML aus der META-XML erzeugt und ins PDF eingebettet.
-XsltPath #
Type: string
Default: $null
Pfad zum XSLT-Stylesheet für die DATEV-Transformation. Standard: EULANDA-invoice-eul-datev.xslt aus dem Modulverzeichnis.
AUSGABEN #
System.Management.Automation.PSCustomObject
Ergebnis von Export-DatevInvoice (Success, OutputPath, InvoiceCount, Files). Im ByMask-Modus enthält OutputPath den aus der Maske aufgelösten Pfad.
BEISPIELE #
# Rechnung mit Erlöskonten als DATEV-ZIP exportieren (fester Pfad)
$conn = Get-ConnByUdl -Udl 'C:\Eulanda\EULANDA_1 EulandaGmbH.udl'
Send-InvoiceToDatev -Conn $conn -InvoiceNo 20260270 `
-PdfPath 'C:\Temp\20260270.pdf' `
-OutputPath 'C:\Temp\datev-20260270.zip'
# Mit Namensmaske (Standard-Default)
Send-InvoiceToDatev -Conn $conn -InvoiceNo 20260270 `
-PdfPath 'C:\Temp\20260270.pdf' `
-OutputFolder 'C:\Datev\Belegtransfer'
# Erzeugt z.B.: C:\Datev\Belegtransfer\0020260270-RE-DE-2026-03-01.zip
# Mit eigener Namensmaske
Send-InvoiceToDatev -Conn $conn -InvoiceNo 20260270 `
-PdfPath 'C:\Temp\20260270.pdf' `
-OutputFolder 'C:\Datev\Belegtransfer' `
-ZipNameMask '%KopfNummer%-%Adresse.Land%'
# Erzeugt z.B.: C:\Datev\Belegtransfer\20260270-DE.zip
# Mit ZUGFeRD-PDF-Erzeugung
Send-InvoiceToDatev -Conn $conn -InvoiceId 57 `
-PdfPath 'C:\Temp\invoice.pdf' `
-OutputPath 'C:\Temp\datev.zip' `
-CreateZugferd
HINWEISE #
Benötigt: Export-InvoiceXml, ConvertFrom-Xml, Export-DatevInvoice, Expand-PlaceholderString (für -ZipNameMask) Optional: ConvertTo-ZugferdPdf (für -CreateZugferd) XSLT: EULANDA-invoice-eul-datev.xslt (XSLT 1.0) DATEV-Schema: LedgerImport v6.0, Document v6.0