XRechnung einlesen und erstellen veröffentlicht

In einem vorhergehenden Thread XRechnungen erstellen und einlesen ging es bereits um die Erstellung von XRechnungen. Die dortigen Anregungen habe ich verarbeitet, alle entsprechend aufgetauchten Fehler beseitigt und jetzt die Datenbank mit Beschreibung und Writer-Vorlage auf der LibreOffice-Homapage veröffentlicht:
Handbücher | LibreOffice - Freie Office Suite – Nachfolger von OpenOffice - dort nach den Kurzanleitungen suchen (obwohl: 74 Seiten sind nicht gerade kurz und die Datenbank gehört natürlich auch dazu)
Hier auch noch der direkte Link: https://wiki.documentfoundation.org/images/4/4d/XRechnung_2402.zip.

  • Das Paket kann XRechnungen auslesen. Dies gilt auch für darin eingebettete Binärdateien, die nach dem Standard erlaubt sind.
  • Das Paket kann auch XRechnungen erstellen und gegebenenfalls Binärdateien einbetten.
  • Neben der XRechnung wird eine “normale” Rechung im ODT-Format und im PDF-Format erstellt. Die Rechnung im PDF-Format sowie die XRechnung werden als Anhang an eine Mail gehängt. Es muss nur noch auf “Senden” geklickt werden.

Hinweis: Ohne Makros ist das Ganze nicht möglich. Und: Ich habe das wegen einiger entsprechender Funktionen mit der internen Firebird Datenbank erstellt. Im betrieblichen Umfeld rate ich dazu, die interne Datenbank zu extrahieren und mit der externen Firebird-Datei zu arbeiten. Das Auspacken und Einpacken der internen Datenbanken von LibreOffice ist die Achillesferse der internen Datenbanken.

Inzwischen ist eine erweiterte Funktion veröffentlicht worden: Erstellung elektronischer Rechnungen mit Base und Writer baut auf der vorherigen Version auf und bringt zusätzlich die XRechnung-Extension (Rechnungszeilen können Unterrechnungszeilen haben) sowie die ZUGFeRD-Version der elektronischen Rechnung mit. Für die ZUGFeRD-Version ist in LibreOffice 24.2.2 noch zusätzlich die freie Software PDFtk notwendig, da das Einbinden von XML-Code als Anhang einer PDF-Datei sonst nicht funktioniert.

1 Like

Wenn nun aber die Rechnungsdatenbank eine ganz andere ist? Kann man eine externe Datenbank mit diesem Dokument verbinden und dann eine Abfrage so erstellen, dass der Makro-Code immer noch funktioniert?

Die Erstellung der XRechnung (oder der ZUGFeRD-Variante) benötigt 3 unterschiedliche Ansichten und 3 unterschiedliche Tabellen. Von den Tabellen werden 2 für einen eventuellen Anhang in binärer Form benötigt. Die 3. Tabelle wird für eventuelle Aufschläge oder Rabatte auf Rechnungsebene ausgelesen. Sie wird außerdem von einem Formular aus gestartet und überprüft vor der Erstellung, ob bestimmte Felder mit Inhalt gefüllt sind. Das Formular hat als Datengrundlage eine der Ansichten, so dass der Einbau kein Problem ist, sobald eben die Ansicht korrekt erstellt wurde.

Die Ansichten kann jede andere Rechnungsdatenbank auch erstellen, vorausgesetzt die notwendigen Felder sind in der entsprechenden Rechnungsdatenbank vorhanden. Die Codes werden nicht vorhanden sein. Da steht dann eben immer ‘XPP’ als Einheit ‘Stück’ für die jeweiligen Rechnungsposten (fest in der Ansicht), ‘S’ für den ‘Normalsteuersatz’, vermutlich ‘DE’ für das Land, in dem die Kunden zu erreichen sind.

In dem Makros fest eingebaut ist bisher der Code für das Ausgangsland (stCountryIdentificationCode = “DE”), dass es sich um eine Handelsrechnung handelt (stInvoiceTypeCode = “380”), dass die Währung Euro ist (stDocumentCurrencyCode = “EUR”) sowie die Zahlung per Banküberweisung im Schengen-Raum erfolgt (stPaymentMeansCode = “58”).

Das Erstellen der Rechnung wird zwar einiges an SQL-Code benötigen, die vorherige Erstellung der Writer-Datei und daraus der PDF-Datei sollte aber schon über die andere Datenbank im bisherigen Verfahren erzeugt werden. Nach dem Erstellen der PDF-Datei wird dann der Prozedur für die XRechnung das Objekt des Formulars sowie der Pfad für die XRechnung mitgegeben.

Es würde also von den Makros her reichen, das Modul XRechnung zu übernehmen und aus dem Modul Druck ein Blick auf die Ansteuerung der XRechnung mit ExportPDF zu werfen.

2 Likes