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 fuer 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 ueberprueft.
Referenzieren
Sie müssen natürlich unsere ZUGFeRD-Assembly referenzieren und per „Imports Aloaha_ZUGFeRD“ in Ihr Projekt integrieren.
Download
Sie koennen 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("WXH4GUFN67V2JKRNLLSVYU5OHM") = 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 = "WXH4GUFN67V2JKRNLLSVYU5OHM"
Dim alo As Aloaha_ZUGFeRD.XML = New Aloaha_ZUGFeRD.XML(ProfileType, TestIndicator, LicenseKey)
alo.ZUGfeRDStandard = Aloaha_ZUGFeRD.iXML.ZUGFeRDVersion.xInvoice
Optional koennen 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 Kaeufer
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", "stefan@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 Verkaeufer
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", "stefan@aloaha.com", "+49 1111111")
alo.SellerPersonalName = "John Doe" 'BT-41
alo.SellerDepartment = "Sales Department"
alo.SellerEmail = "stefan@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")
Fuegen 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 muessen genau spezifiziert sein: UnitCodes fuer die Menge in ZUGFeRD / XRechnung / XInvoice
Die Rechnungsbetraege muessen natuerlich enthalten sein:
alo.WriteTotals("198.00", "235.62", "235.62", "198.00", "37.62", "0,0", "0.00")
‘Steuerinformationen duerfen natuerlich 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 koennen 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 zurueckschreiben
System.Threading.Thread.CurrentThread.CurrentCulture = culturebackup
Als Ergebnis sollten Sie folgende Datei erhalten:
Sollten Sie Fragen haben kontaktieren Sie bitte info@aloaha.com