E-Rechnungen mit ZUGFeRD
Produktlinie
Standard
|Expert
Betriebsart
Cloud Abo
|ON-PREMISES
Module
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Die Rechnung mit Leistungsliste enthält ab Vertec Version 6.3.0.12 eine ZUGFeRD-Beispielimplementation, welche Metadaten nach ZUGFeRD Standard im PDF generiert. Um damit gültige ZUGFeRD-Rechnungen erstellen zu können, müssen gewisse Kriterien erfüllt sein. Diese sind hier nachfolgend beschrieben.
Um generell E-Rechnungen in Vertec einzurichten, können Sie stattdessen die Zusatzfunktion E-Rechnungsvorlagen verwenden, womit Sie E-Rechnungen (ZUGfERD- und XRechnungen) definieren und inhaltliche Kriterien (auch pro Rechnungsempfänger) hinterlegen können.
Die Beispielimplementation verwendet das Profil EN 16931. Um damit gültige ZUGFeRD-Rechnungen erstellen zu können, müssen folgende Kriterien beachtet bzw. erfüllt werden:
Sind diese Anforderungen erfüllt, werden im Code des Office-Berichts die XML-Metadaten generiert und dem Bericht-Mechanismus übergeben, welcher die Metadaten ins PDF integriert.
Dafür gibt es in den Office-Berichten die Methode
metadata_zugferd(context)
Diese gibt ein Tuple zurück bestehend aus :
Kunden, die ihre Rechnungen nach ZUGFeRD Standard oder als X-Rechnungen verwenden wollen, müssen diesen Code gemäss den Anforderungen ihrer Rechnungsempfänger inhaltlich entsprechend anpassen.
def metadata_zugferd(context):
Zuerst wird das Template erstellt. Das XML wird mit der in Vertec eingebauten Template Engine in Python erstellt. Im XML können damit Variablen verwendet werden, welche die Zahlen aus Vertec enthalten. Mit der Methode vtcapp.rendertemplate() wird das XML dann erstellt.
zugferd_template = u"""<?xml version="1.0" encoding="UTF-8"?> <rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"..> <rsm:ExchangedDocumentContext> <ram:GuidelineSpecifiedDocumentContextParameter> <ram:ID>urn:cen.eu:en16931:2017</ram:ID> </ram:GuidelineSpecifiedDocumentContextParameter> ...""" rechnung = context.rootlist[0] # Render the transferred template for ZUFGeRD zugferdxml = vtcapp.rendertemplate(zugferd_template, rechnung=rechnung)
Die Methode gibt das Schema sowie das fertige XML zurück, welches vom Bericht-Mechanismus ins PDF integriert wird.
Als ZUGFeRD 2.0 (Standard):
return ("EN 16931", zugferdxml)
Als ZUGFeRD 2.1 (ab Version 6.4.0.16):
return ("EN 16931", zugferdxml, "2.1.1")
def metadata_zugferd(context):
Zuerst wird das Template erstellt. Das XML wird mit der in Vertec eingebauten Template Engine in Python erstellt. Im XML können damit Variablen verwendet werden, welche die Zahlen aus Vertec enthalten. Mit der Methode vtcapp.rendertemplate() wird das XML dann erstellt.
zugferd_template = u"""<?xml version="1.0" encoding="UTF-8"?> <rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"..> <rsm:ExchangedDocumentContext> <ram:GuidelineSpecifiedDocumentContextParameter> <ram:ID>urn:cen.eu:en16931:2017</ram:ID> </ram:GuidelineSpecifiedDocumentContextParameter> ...""" rechnung = context.rootlist[0] # Render the transferred template for ZUFGeRD zugferdxml = vtcapp.rendertemplate(zugferd_template, rechnung=rechnung)
Ausserdem wird das Schema als XML übergeben:
schema = u"""<?xpacket begin="?" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/" rdf:about=""> ..."""
Die Methode gibt das fertige XML sowie das Schema zurück, welches vom Bericht-Mechanismus ins PDF integriert wird.
return ("", zugferdxml, Schema)
Weitere Informationen zu ZUGFeRD finden Sie auf der offiziellen FeRD-Website.