Erstellung einer ZUGFeRD/XRechnung XML Datei

Thema
VB.NET
SDK-Mitglieder
AddBuyerAssignedID() AddPaymentMeans() AddProduct_Comfort() AddReceivableSpecifiedTradeAccountingAccount() AddSpecifiedProcuringProject() AddTradePaymentTerms() AddTradeTax() BusinessProcessSpecifiedDocumentContextParameter BuyerAddressLine1 BuyerAddressLine2
Business Terms
BT-23 Geschäftsprozesstyp BT-34 Elektronische Adresse des Verkäufers BT-41 Kontaktstelle des Verkäufers BT-42 Telefonnummer der Kontaktstelle des Verkäufers BT-43 E-Mail-Adresse der Kontaktstelle des Verkäufers BT-49 Elektronische Adresse des Käufers
Codebeispiele
VB.NET
Veröffentlicht

Um Anfangsschwierigkeiten bei der Benutzung unseres SDK zu verringern haben wir ein neues Beispiel erstellt um eine  komplette ZUGFeRD XML Datei zu erstellen.

NEU: Beispiel für VB6 / VBA / .NET: Erstellung einer ZUGFeRD/X-Rechnung XML Datei via COM Schnittstelle (VB6 / VBA) oder .NET

Wir haben zur Erstellung des Beispiels die Version 8.0.0.31 der ZUGFeRD Bibliothek benutzt. Stellen Sie sicher mindestens die gleiche Version installiert zu haben.

Das Ergebnis haben wir mit dem freien Kosit Validator und auch dem Validator der Bahn überprüft.

Referenzieren

Sie müssen natürlich unsere ZUGFeRD-Assembly referenzieren und per „Imports Aloaha_ZUGFeRD“ in Ihr Projekt integrieren.

Download

Sie können das komplette Demo Projekt auch von folgender URL laden:
https://www.aloaha.com/download/ZUGFeRDSample.zip

Es ist immer eine gute Idee ein Backup vom “CultureInfo” zu machen

Dim culture As System.Globalization.CultureInfo = System.Globalization.CultureInfo.GetCultureInfo("de-DE")

Dim culturebackup As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture

System.Threading.Thread.CurrentThread.CurrentCulture = culture

Erstellen Sie das ZUGFeRD Objekt

Dim alo As New Aloaha_ZUGFeRD.XML

Dim zug As Aloaha_ZUGFeRD.iXML.ZUGFeRD = Nothing

'Testen Sie ob die Lizenz gueltig ist. Eine Testlizenz erhalten Sie von info@aloaha.com

If alo.Licensed("IHR-LIZENZSCHLUESSEL") = False Then
     MsgBox("Not Licensed")
End If

Initialisieren Sie die Bibliothek

Dim ProfileType As Aloaha_ZUGFeRD.iXML.ZUGFeRDProfile = Aloaha_ZUGFeRD.iXML.ZUGFeRDProfile.comfort
Dim TestIndicator As Boolean = False
Dim LicenseKey As String = "IHR-LIZENZSCHLUESSEL"
Dim alo As Aloaha_ZUGFeRD.XML = New Aloaha_ZUGFeRD.XML(ProfileType, TestIndicator, LicenseKey)
alo.ZUGfeRDStandard = Aloaha_ZUGFeRD.iXML.ZUGFeRDVersion.xInvoice

Optional können Sie das Kosit Format aktivieren

'alo.isKOSIT = True

Erstellen Sie die Rechnung mit diversen Startparametern

Dim Currenty As String = "EUR"                             
Dim InvoiceID As String = "47110815"
Dim InvoiceDate As String = alo.TodayDate.Document_Date 
Dim InvoiceNote As String = "Rechnung gemäß Bestellung" 
alo.CreateInvoice(InvoiceID, InvoiceNote, InvoiceDate, alo.TodayDate.Document_DateFormat, , , Currenty)
alo.InvoiceCurrencyCode = Currenty
alo.Document_ID = InvoiceID 
alo.Document_Type = Aloaha_ZUGFeRD.iXML.DocumentType.Invoice

'BT-23
alo.BusinessProcessSpecifiedDocumentContextParameter = "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0"

Definieren Sie einige allgemeine Eigenschaften

alo.AddSpecifiedProcuringProject("ProjectID", "ProjectName") 
alo.AddBuyerAssignedID("Bestellnummer") 
Dim BookingReference As String = "Buchungsreferenz" 
Dim BookingReferenceTypeocde As String = ""
alo.AddReceivableSpecifiedTradeAccountingAccount(BookingReference, BookingReferenceTypeocde)

Erstellen Sie den Käufer

alo.WriteBuyer("Buyer Limited","49479","Pembroke","Gruener Weg 1")
alo.BuyerCountry = "DE"
alo.BuyerName = "Buyer Limited" 
alo.BuyerPostCode = "49479"
alo.BuyerID = "KundenNummer"
alo.WriteBuyerContactPerson("John Doe", "Einkauf", "info@aloaha.com", "+4900000")
alo.BuyerPersonalName = "John Doe"
alo.BuyerDepartment = "Purchase Department"
alo.BuyerEmail = "info@aloaha.com"
alo.BuyerTelephone = "+490000"
alo.BuyerCity = "Pembroke" 
alo.BuyerAddressLine1 = "Helogland"
alo.BuyerAddressLine2 = "Triq Gio Felice Inglott" 

'BT-34, BT-49
alo.set_URIUniversalCommunication("info@zugferdpro.com", "EM", False)

Erstellen Sie den Verkäufer

alo.WriteSeller("Aloaha Limited", "PBK1131", "Pembroke", "Helgoland", "45, Triq Gio Felice Inglott", "MT", "MT000000000")
alo.SellerDepartment = "Sales"
alo.SellerName = "Aloaha Limited"
alo.SellerCity = "Pembroke"
alo.SellerAddressLine1 = "Helgoland"
alo.SellerAddressLine2 = "Triq Gio Felice Inglott"
alo.SellerCountry = "MT"
alo.SellerPostCode = "PBK1131"
alo.SellerID = "4711"
alo.WriteSellerContactPerson("John Doe", "Verkauf", "info@aloaha.com", "+49 1111111")
alo.SellerPersonalName = "John Doe"          'BT-41
alo.SellerDepartment = "Sales Department"
alo.SellerEmail = "info@aloaha.com"        'BT-43
alo.SellerTelephone = "+490000"              'BT-42

'BT-34, BT-49, PEPPOL-EN16931-R020
alo.set_URIUniversalCommunication("info@zugferdpro.com", "EM", true)

Definieren Sie die Zahlungsmethoden

alo.AddPaymentMeans(alo.PaymentMeansCode(Aloaha_ZUGFeRD.iXML.Payment_Means.SEPA_credit_transfer), "Sepa Credit Transfer", "MT000000000", "account name", "", "BIC", "", "", False)

Dim PaymentTermsDescription As String = "Zahlbar sofort und ohne Abzug" 
Dim DueDate As String = alo.TodayDate.Document_Date 
Dim DirectDebitMandateID As String = "" 
alo.AddTradePaymentTerms(PaymentTermsDescription, DueDate, alo.TodayDate.Document_DateFormat, DirectDebitMandateID)

alo.PaymentReference = "Invoice No. INV08154711"

alo.SetDespatchAdviceReferencedDocument("Lieferavisreferenz")

Fügen Sie ein Produkt der Rechnung an

alo.AddProduct_Comfort("1", "nicht rabattierfähig", "TB100A4", "20.0000", "H87", "Trennblätter ", "A4", "9.9", Currenty, "", "", False, "", "", "", "9,9", "eur", "", "", "vat", "s", "19.00", "", "198.00", "EUR", "globalid", "0160")

Note: Einheiten müssen genau spezifiziert sein: UnitCodes für die Menge in ZUGFeRD / XRechnung / XInvoice

Die Rechnungsbeträge müssen natürlich enthalten sein:

alo.WriteTotals("198.00", "235.62", "235.62", "198.00", "37.62", "0,0", "0.00")

‘Steuerinformationen dürfen natürlich nicht fehlen

Dim CalculatedAmount As String = "37.62"
Dim BasisAmount As String = "198.00"
Dim TaxTypeCode As String = "VAT"
Dim CategoryCode As String = alo.VatCategoryCode(Aloaha_ZUGFeRD.iXML.VAT_Category.StandardRate)
Dim ApplicablePercent As String = "19.00"
Dim TaxPointDate As String = "" 
Dim DueDateTypeCode As String = "" 
Dim ExemptionReason As String = ""

alo.AddTradeTax(CalculatedAmount, Currenty, BasisAmount, Currenty, TaxTypeCode, CategoryCode, ApplicablePercent, ExemptionReason, TaxPointDate, "", DueDateTypeCode)

Sie können sich auch direkt die Struktur ansehen und editieren

zug = alo.ZUGFeRD_Structure
'Felder editieren
'alo.ZUGFeRD_Structure = zug

Speichern Sie das XML

alo.UseASIIOnSave = False
alo.SaveWithoutUTF8Header = False
If System.IO.File.Exists("c:\temp\test1.xml") = True Then System.IO.File.Delete("c:\temp\test1.xml")
alo.SaveXML("c:\temp\test1.xml")

CultureInfo zurückschreiben

System.Threading.Thread.CurrentThread.CurrentCulture = culturebackup

Als Ergebnis sollten Sie folgende Datei erhalten:

test1Download

Sollten Sie Fragen haben kontaktieren Sie bitte info@aloaha.com

Business Terms in diesem Artikel: BT-23 BT-34 BT-41 BT-42 BT-43 BT-49