diff --git a/Interfaces/Interfaces.vbproj b/Interfaces/Interfaces.vbproj index c53a17bb..7a8dac7e 100644 --- a/Interfaces/Interfaces.vbproj +++ b/Interfaces/Interfaces.vbproj @@ -265,6 +265,7 @@ + diff --git a/Interfaces/ZUGFeRDInterface.vb b/Interfaces/ZUGFeRDInterface.vb index f88bdf26..9af7367f 100644 --- a/Interfaces/ZUGFeRDInterface.vb +++ b/Interfaces/ZUGFeRDInterface.vb @@ -3,6 +3,7 @@ Imports System.Xml Imports System.Xml.Serialization Imports DigitalData.Modules.Interfaces.Exceptions Imports DigitalData.Modules.Interfaces.PDFEmbeds +Imports DigitalData.Modules.Interfaces.PropertyValues Imports DigitalData.Modules.Interfaces.ZUGFeRD Imports DigitalData.Modules.Logging Imports GdPicture14 @@ -21,8 +22,6 @@ Public Class ZUGFeRDInterface Public Const ZUGFERD_SPEC_2x = "ZUGFERD_2x" Public Const ZUGFERD_SPEC_2_3x = "ZUGFERD_2_3x" - Public Const UBL_SPEC_21 = "UBL_21" - Public Const XMLSCHEMA_ZUGFERD_10 = "Version1_0" Public Const XMLSCHEMA_ZUGFERD_20 = "Version2_0" Public Const XMLSCHEMA_ZUGFERD_211 = "Version2_1_1" @@ -31,9 +30,14 @@ Public Class ZUGFeRDInterface Public Const XMLSCHEMA_ZUGFERD_233 = "Version2_3_3_FacturX" Public Const XMLSCHEMA_ZUGFERD_24 = "Version2_4_FacturX" Public Const XMLSCHEMA_ZUGFERD_25 = "Version2_5_FacturX" + + Public Const UBL_SPEC_21 = "UBL_21" Public Const XMLSCHEMA_UBL_21_INVOICE = "UBL2_1_INVOICE" Public Const XMLSCHEMA_UBL_21_CREDITNOTE = "UBL2_1_CREDITNOTE" + Public Const EBINTERFACE_SPEC_61 = "EBINTERFACE_61" + Public Const XMLSCHEMA_EBINTERFACE_61 = "Version6_1" + Public Const RECEIPT_TYPE_XML = "XML" Public Const RECEIPT_TYPE_PDF = "PDF" @@ -67,6 +71,7 @@ Public Class ZUGFeRDInterface Public Property AllowZugferd_2_x_Schema As Boolean = True Public Property AllowZugferd_2_3_x_Schema As Boolean = True Public Property AllowPeppol_3_x_Schema As Boolean = False + Public Property AllowEBInterface_Schema As Boolean = False End Class Public Class ZugferdResult @@ -152,6 +157,20 @@ Public Class ZUGFeRDInterface Where(Function(kv) kv.Specification = pSpecification Or kv.Specification = ZUGFERD_SPEC_DEFAULT). ToDictionary(Function(kv) kv.XMLPath, Function(kv) kv) + Catch ex As Exception + _logger.Error(ex) + End Try + ElseIf pSpecification = EBINTERFACE_SPEC_61 Then + + Try + ' root-Elemente werden hier herausgefiltert + Dim countElements As Integer = pPropertyMapList.Where(Function(x) x.Specification = pSpecification And Not x.XMLPath.StartsWith("root.")).Count + _logger.Debug("Property map list contains [{0}] elements for specification [{1}]", countElements, pSpecification) + + Return pPropertyMapList. + Where(Function(kv) kv.Specification = pSpecification And Not kv.XMLPath.StartsWith("root.")). + ToDictionary(Function(kv) kv.XMLPath, Function(kv) kv) + Catch ex As Exception _logger.Error(ex) End Try @@ -174,6 +193,28 @@ Public Class ZUGFeRDInterface Return Nothing End Function + Public Function FilterRootPropertyMap(pPropertyMapList As List(Of XmlItemProperty), pSpecification As String) As Dictionary(Of String, XmlItemProperty) + + ' Aktuell verwendet nur ebeInterafce attribute im root-Knoten + If pSpecification = EBINTERFACE_SPEC_61 Then + Try + ' root-Elemente werden hier herausgefiltert + Dim countElements As Integer = pPropertyMapList.Where(Function(x) x.Specification = pSpecification And x.XMLPath.StartsWith("root.")).Count + _logger.Debug("Property map list contains [{0}] root attribute elements for specification [{1}]", countElements, pSpecification) + + Return pPropertyMapList. + Where(Function(kv) kv.Specification = pSpecification And kv.XMLPath.StartsWith("root.")). + ToDictionary(Function(kv) kv.XMLPath, Function(kv) kv) + + Catch ex As Exception + _logger.Error(ex) + End Try + Else + Return Nothing + End If + + End Function + Public Function GetSerializedXMLContentFromFile(oFileInfo As FileInfo) As ZugferdResult Dim oResult = New ZugferdResult() Dim oMessage As String = String.Empty @@ -455,6 +496,16 @@ Public Class ZUGFeRDInterface }) End If + If _Options.AllowEBInterface_Schema Then + oAllowedTypes.AddRange(New List(Of AllowedType) From { + New AllowedType With { + .SchemaType = GetType(EBINTERFACE_61.InvoiceType), + .Specification = EBINTERFACE_SPEC_61, + .XMLSchema = XMLSCHEMA_EBINTERFACE_61 + } + }) + End If + For Each oType In oAllowedTypes Dim oTypeName As String = oType.SchemaType.FullName Dim oSerializer As New XmlSerializer(oType.SchemaType) @@ -497,4 +548,5 @@ Public Class ZUGFeRDInterface Throw New ZUGFeRDExecption(ErrorCodes.UnsupportedFerdException, oMessage) End Try End Function + End Class diff --git a/Interfaces/ZUGFeRDInterface/PropertyValues.vb b/Interfaces/ZUGFeRDInterface/PropertyValues.vb index 129b2069..5c968b6f 100644 --- a/Interfaces/ZUGFeRDInterface/PropertyValues.vb +++ b/Interfaces/ZUGFeRDInterface/PropertyValues.vb @@ -275,6 +275,121 @@ Public Class PropertyValues Return oResult End Function + Public Function CheckRootAttributeValues(pDocument As Object, pPropertyMap As Dictionary(Of String, XmlItemProperty), pMessageId As String, pCheckResult As CheckPropertyValuesResult) As CheckPropertyValuesResult + + If pPropertyMap Is Nothing Then + Return pCheckResult + End If + + ' PropertyMap items with `IsGrouped = False` are handled normally + Dim oRootAttributeProperties As Dictionary(Of String, XmlItemProperty) = pPropertyMap. + ToDictionary(Function(Item) Item.Key, + Function(Item) Item.Value) + + For Each oItem As KeyValuePair(Of String, XmlItemProperty) In oRootAttributeProperties + Dim oTableColumn As String = oItem.Value.TableColumn + Dim oPropertyDescription As String = oItem.Value.Description + Dim oPropertyPath As String = oItem.Value.XMLPath + Dim oPropertyValue As Object = Nothing + Dim oTableName = oItem.Value.TableName + Dim oIsRequired = oItem.Value.IsRequired + Dim oDescription = oItem.Value.Description + Dim oItemType = oItem.Value.ItemType + Dim oEN16931_ID = oItem.Value.EN16931_ID + + Try + oPropertyValue = GetRootAttributeValue(pDocument, oItem.Key) + Catch ex As Exception + _logger.Error(ex) + oPropertyValue = Nothing + End Try + + If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then + If oItem.Value.IsRequired Then + _logger.Warn("Column [{0}] is empty, but marked as required! Adding MissingProperty.", oTableColumn) + Dim oMissingProperty = New MissingProperty With + { + .EN16931_ID = oEN16931_ID, + .Description = oPropertyDescription, + .XMLPath = oPropertyPath + } + pCheckResult.MissingProperties.Add(oMissingProperty) + Continue For + Else + _logger.Debug("oPropertyValue for Column [{0}] is empty or not found. Skipping.", oTableColumn) + Continue For + End If + End If + + If pDocument.Specification = "EBINTERFACE_61" Then + + ' ebInterface DocumentType in UNTDID 1001 — Document type + If oTableColumn = "INVOICE_TYPE" Then + oPropertyValue = GetUNTDID1001_DocumentType(oPropertyValue) + End If + + End If + + pCheckResult.ValidProperties.Add(New ValidProperty() With { + .MessageId = pMessageId, + .Description = oPropertyDescription, + .Value = oPropertyValue, + .GroupCounter = 0, + .TableName = oTableName, + .TableColumn = oTableColumn, + .IsRequired = oIsRequired, + .XMLPath = oPropertyPath, + .ItemType = oItemType, + .EN16931_ID = oEN16931_ID + }) + + Next + + Return pCheckResult + End Function + + Private Function GetUNTDID1001_DocumentType(oPropertyValue As String) As String + + Select Case oPropertyValue + Case "CreditMemo" + Return 1 + Case "FinalSettlement" + Return 1 + Case "Invoice" + Return 380 + Case "InvoiceForAdvancePayment" + Return 1 + Case "InvoiceForPartialDelivery" + Return 1 + Case "SelfBilling" + Return 1 + Case "SubsequentCredit" + Return 1 + Case "SubsequentDebit" + Return 1 + Case Else + Return 380 + End Select + + End Function + + Private Function GetRootAttributeValue(pDocument As Object, pXmlPath As String) As String + If pDocument.XElementObject Is Nothing Then + Return Nothing + End If + + Try + Dim attributeName As String = pXmlPath.Replace("root.", "") + Dim attributeValue As String = pDocument.XElementObject.Attribute(attributeName).Value + Return attributeValue + + Catch ex As Exception + _logger.Error(ex) + Return Nothing + End Try + + End Function + Public Function GetPropValue(Obj As Object, PropertyName As String) As List(Of Object) Dim oNameParts As String() = PropertyName.Split("."c) diff --git a/Interfaces/ZUGFeRDInterface/ebInterface6.1/InvoiceType.vb b/Interfaces/ZUGFeRDInterface/ebInterface6.1/InvoiceType.vb new file mode 100644 index 00000000..80500bff --- /dev/null +++ b/Interfaces/ZUGFeRDInterface/ebInterface6.1/InvoiceType.vb @@ -0,0 +1,3373 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System.Xml.Serialization + +' +'Dieser Quellcode wurde automatisch generiert von xsd, Version=4.8.3928.0. +' + +Namespace EBINTERFACE_61 + + ''' + + Partial Public Class InvoiceType + + Private invoiceNumberField As String + + Private invoiceDateField As Date + + Private cancelledOriginalDocumentField As CancelledOriginalDocumentType + + Private relatedDocumentField() As RelatedDocumentType + + Private additionalInformationField() As AdditionalInformationType + + Private currencyExchangeInformationField As CurrencyExchangeInformationType + + Private deliveryField As DeliveryType + + Private billerField As BillerType + + Private invoiceRecipientField As InvoiceRecipientType + + Private orderingPartyField As OrderingPartyType + + Private detailsField As DetailsType + + Private reductionAndSurchargeDetailsField As ReductionAndSurchargeDetailsType + + Private taxField As TaxType + + Private totalGrossAmountField As Decimal + + Private prepaidAmountField As Decimal + + Private prepaidAmountFieldSpecified As Boolean + + Private roundingAmountField As Decimal + + Private roundingAmountFieldSpecified As Boolean + + Private payableAmountField As Decimal + + Private paymentMethodField As PaymentMethodType + + Private paymentConditionsField As PaymentConditionsType + + Private commentField As String + + Private extensionField() As CustomType + + Private generatingSystemField As String + + Private documentTypeField As DocumentTypeType + + Private invoiceCurrencyField As String + + Private manualProcessingField As Boolean + + Private manualProcessingFieldSpecified As Boolean + + Private documentTitleField As String + + Private languageField As String + + Private isDuplicateField As Boolean + + Private isDuplicateFieldSpecified As Boolean + + ''' + Public Property InvoiceNumber() As String + Get + Return Me.invoiceNumberField + End Get + Set + Me.invoiceNumberField = value + End Set + End Property + + ''' + + Public Property InvoiceDate() As Date + Get + Return Me.invoiceDateField + End Get + Set + Me.invoiceDateField = value + End Set + End Property + + ''' + Public Property CancelledOriginalDocument() As CancelledOriginalDocumentType + Get + Return Me.cancelledOriginalDocumentField + End Get + Set + Me.cancelledOriginalDocumentField = value + End Set + End Property + + ''' + + Public Property RelatedDocument() As RelatedDocumentType() + Get + Return Me.relatedDocumentField + End Get + Set + Me.relatedDocumentField = value + End Set + End Property + + ''' + + Public Property AdditionalInformation() As AdditionalInformationType() + Get + Return Me.additionalInformationField + End Get + Set + Me.additionalInformationField = value + End Set + End Property + + ''' + Public Property CurrencyExchangeInformation() As CurrencyExchangeInformationType + Get + Return Me.currencyExchangeInformationField + End Get + Set + Me.currencyExchangeInformationField = value + End Set + End Property + + ''' + Public Property Delivery() As DeliveryType + Get + Return Me.deliveryField + End Get + Set + Me.deliveryField = value + End Set + End Property + + ''' + Public Property Biller() As BillerType + Get + Return Me.billerField + End Get + Set + Me.billerField = value + End Set + End Property + + ''' + Public Property InvoiceRecipient() As InvoiceRecipientType + Get + Return Me.invoiceRecipientField + End Get + Set + Me.invoiceRecipientField = value + End Set + End Property + + ''' + Public Property OrderingParty() As OrderingPartyType + Get + Return Me.orderingPartyField + End Get + Set + Me.orderingPartyField = value + End Set + End Property + + ''' + Public Property Details() As DetailsType + Get + Return Me.detailsField + End Get + Set + Me.detailsField = value + End Set + End Property + + ''' + Public Property ReductionAndSurchargeDetails() As ReductionAndSurchargeDetailsType + Get + Return Me.reductionAndSurchargeDetailsField + End Get + Set + Me.reductionAndSurchargeDetailsField = value + End Set + End Property + + ''' + Public Property Tax() As TaxType + Get + Return Me.taxField + End Get + Set + Me.taxField = value + End Set + End Property + + ''' + Public Property TotalGrossAmount() As Decimal + Get + Return Me.totalGrossAmountField + End Get + Set + Me.totalGrossAmountField = value + End Set + End Property + + ''' + Public Property PrepaidAmount() As Decimal + Get + Return Me.prepaidAmountField + End Get + Set + Me.prepaidAmountField = value + End Set + End Property + + ''' + + Public Property PrepaidAmountSpecified() As Boolean + Get + Return Me.prepaidAmountFieldSpecified + End Get + Set + Me.prepaidAmountFieldSpecified = value + End Set + End Property + + ''' + Public Property RoundingAmount() As Decimal + Get + Return Me.roundingAmountField + End Get + Set + Me.roundingAmountField = value + End Set + End Property + + ''' + + Public Property RoundingAmountSpecified() As Boolean + Get + Return Me.roundingAmountFieldSpecified + End Get + Set + Me.roundingAmountFieldSpecified = value + End Set + End Property + + ''' + Public Property PayableAmount() As Decimal + Get + Return Me.payableAmountField + End Get + Set + Me.payableAmountField = value + End Set + End Property + + ''' + Public Property PaymentMethod() As PaymentMethodType + Get + Return Me.paymentMethodField + End Get + Set + Me.paymentMethodField = value + End Set + End Property + + ''' + Public Property PaymentConditions() As PaymentConditionsType + Get + Return Me.paymentConditionsField + End Get + Set + Me.paymentConditionsField = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + + ''' + + Public Property GeneratingSystem() As String + Get + Return Me.generatingSystemField + End Get + Set + Me.generatingSystemField = value + End Set + End Property + + ''' + + Public Property DocumentType() As DocumentTypeType + Get + Return Me.documentTypeField + End Get + Set + Me.documentTypeField = value + End Set + End Property + + ''' + + Public Property InvoiceCurrency() As String + Get + Return Me.invoiceCurrencyField + End Get + Set + Me.invoiceCurrencyField = value + End Set + End Property + + ''' + + Public Property ManualProcessing() As Boolean + Get + Return Me.manualProcessingField + End Get + Set + Me.manualProcessingField = value + End Set + End Property + + ''' + + Public Property ManualProcessingSpecified() As Boolean + Get + Return Me.manualProcessingFieldSpecified + End Get + Set + Me.manualProcessingFieldSpecified = value + End Set + End Property + + ''' + + Public Property DocumentTitle() As String + Get + Return Me.documentTitleField + End Get + Set + Me.documentTitleField = value + End Set + End Property + + ''' + + Public Property Language() As String + Get + Return Me.languageField + End Get + Set + Me.languageField = value + End Set + End Property + + ''' + + Public Property IsDuplicate() As Boolean + Get + Return Me.isDuplicateField + End Get + Set + Me.isDuplicateField = value + End Set + End Property + + ''' + + Public Property IsDuplicateSpecified() As Boolean + Get + Return Me.isDuplicateFieldSpecified + End Get + Set + Me.isDuplicateFieldSpecified = value + End Set + End Property + End Class + + ''' + + Partial Public Class CancelledOriginalDocumentType + + Private invoiceNumberField As String + + Private invoiceDateField As Date + + Private documentTypeField As DocumentTypeType + + Private documentTypeFieldSpecified As Boolean + + Private commentField As String + + ''' + Public Property InvoiceNumber() As String + Get + Return Me.invoiceNumberField + End Get + Set + Me.invoiceNumberField = value + End Set + End Property + + ''' + + Public Property InvoiceDate() As Date + Get + Return Me.invoiceDateField + End Get + Set + Me.invoiceDateField = value + End Set + End Property + + ''' + Public Property DocumentType() As DocumentTypeType + Get + Return Me.documentTypeField + End Get + Set + Me.documentTypeField = value + End Set + End Property + + ''' + + Public Property DocumentTypeSpecified() As Boolean + Get + Return Me.documentTypeFieldSpecified + End Get + Set + Me.documentTypeFieldSpecified = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + End Class + + ''' + + Public Enum DocumentTypeType + + ''' + CreditMemo + + ''' + FinalSettlement + + ''' + Invoice + + ''' + InvoiceForAdvancePayment + + ''' + InvoiceForPartialDelivery + + ''' + SelfBilling + + ''' + SubsequentCredit + + ''' + SubsequentDebit + End Enum + + ''' + + Partial Public Class AbstractPartyType + + Private vATIdentificationNumberField As String + + Private furtherIdentificationField() As FurtherIdentificationType + + Private orderReferenceField As OrderReferenceType + + Private addressField As AddressType + + Private contactField As ContactType + + ''' + Public Property VATIdentificationNumber() As String + Get + Return Me.vATIdentificationNumberField + End Get + Set + Me.vATIdentificationNumberField = value + End Set + End Property + + ''' + + Public Property FurtherIdentification() As FurtherIdentificationType() + Get + Return Me.furtherIdentificationField + End Get + Set + Me.furtherIdentificationField = value + End Set + End Property + + ''' + Public Property OrderReference() As OrderReferenceType + Get + Return Me.orderReferenceField + End Get + Set + Me.orderReferenceField = value + End Set + End Property + + ''' + Public Property Address() As AddressType + Get + Return Me.addressField + End Get + Set + Me.addressField = value + End Set + End Property + + ''' + Public Property Contact() As ContactType + Get + Return Me.contactField + End Get + Set + Me.contactField = value + End Set + End Property + End Class + + ''' + + Partial Public Class FurtherIdentificationType + + Private identificationTypeField As String + + Private valueField As String + + ''' + + Public Property IdentificationType() As String + Get + Return Me.identificationTypeField + End Get + Set + Me.identificationTypeField = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class OrderReferenceType + + Private orderIDField As String + + Private referenceDateField As Date + + Private referenceDateFieldSpecified As Boolean + + Private descriptionField As String + + ''' + Public Property OrderID() As String + Get + Return Me.orderIDField + End Get + Set + Me.orderIDField = value + End Set + End Property + + ''' + + Public Property ReferenceDate() As Date + Get + Return Me.referenceDateField + End Get + Set + Me.referenceDateField = value + End Set + End Property + + ''' + + Public Property ReferenceDateSpecified() As Boolean + Get + Return Me.referenceDateFieldSpecified + End Get + Set + Me.referenceDateFieldSpecified = value + End Set + End Property + + ''' + Public Property Description() As String + Get + Return Me.descriptionField + End Get + Set + Me.descriptionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class AddressType + + Private addressIdentifierField() As AddressIdentifierType + + Private nameField As String + + Private tradingNameField As String + + Private streetField As String + + Private pOBoxField As String + + Private townField As String + + Private zIPField As String + + Private countryField As CountryType + + Private phoneField() As String + + Private emailField() As String + + Private additionalInformationField() As AdditionalInformationType + + ''' + + Public Property AddressIdentifier() As AddressIdentifierType() + Get + Return Me.addressIdentifierField + End Get + Set + Me.addressIdentifierField = value + End Set + End Property + + ''' + Public Property Name() As String + Get + Return Me.nameField + End Get + Set + Me.nameField = value + End Set + End Property + + ''' + Public Property TradingName() As String + Get + Return Me.tradingNameField + End Get + Set + Me.tradingNameField = value + End Set + End Property + + ''' + Public Property Street() As String + Get + Return Me.streetField + End Get + Set + Me.streetField = value + End Set + End Property + + ''' + Public Property POBox() As String + Get + Return Me.pOBoxField + End Get + Set + Me.pOBoxField = value + End Set + End Property + + ''' + Public Property Town() As String + Get + Return Me.townField + End Get + Set + Me.townField = value + End Set + End Property + + ''' + Public Property ZIP() As String + Get + Return Me.zIPField + End Get + Set + Me.zIPField = value + End Set + End Property + + ''' + Public Property Country() As CountryType + Get + Return Me.countryField + End Get + Set + Me.countryField = value + End Set + End Property + + ''' + + Public Property Phone() As String() + Get + Return Me.phoneField + End Get + Set + Me.phoneField = value + End Set + End Property + + ''' + + Public Property Email() As String() + Get + Return Me.emailField + End Get + Set + Me.emailField = value + End Set + End Property + + ''' + + Public Property AdditionalInformation() As AdditionalInformationType() + Get + Return Me.additionalInformationField + End Get + Set + Me.additionalInformationField = value + End Set + End Property + End Class + + ''' + + Partial Public Class AddressIdentifierType + + Private addressIdentifierType1Field As String + + Private valueField As String + + ''' + + Public Property AddressIdentifierType1() As String + Get + Return Me.addressIdentifierType1Field + End Get + Set + Me.addressIdentifierType1Field = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class CountryType + + Private countryCodeField As String + + Private valueField As String + + ''' + + Public Property CountryCode() As String + Get + Return Me.countryCodeField + End Get + Set + Me.countryCodeField = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class AdditionalInformationType + + Private keyField As String + + Private valueField As String + + ''' + + Public Property Key() As String + Get + Return Me.keyField + End Get + Set + Me.keyField = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ContactType + + Private salutationField As String + + Private nameField As String + + Private phoneField() As String + + Private emailField() As String + + Private additionalInformationField() As AdditionalInformationType + + ''' + Public Property Salutation() As String + Get + Return Me.salutationField + End Get + Set + Me.salutationField = value + End Set + End Property + + ''' + Public Property Name() As String + Get + Return Me.nameField + End Get + Set + Me.nameField = value + End Set + End Property + + ''' + + Public Property Phone() As String() + Get + Return Me.phoneField + End Get + Set + Me.phoneField = value + End Set + End Property + + ''' + + Public Property Email() As String() + Get + Return Me.emailField + End Get + Set + Me.emailField = value + End Set + End Property + + ''' + + Public Property AdditionalInformation() As AdditionalInformationType() + Get + Return Me.additionalInformationField + End Get + Set + Me.additionalInformationField = value + End Set + End Property + End Class + + ''' + + Partial Public Class RelatedDocumentType + + Private invoiceNumberField As String + + Private invoiceDateField As Date + + Private invoiceDateFieldSpecified As Boolean + + Private documentTypeField As DocumentTypeType + + Private documentTypeFieldSpecified As Boolean + + Private commentField As String + + Private extensionField() As CustomType + + ''' + Public Property InvoiceNumber() As String + Get + Return Me.invoiceNumberField + End Get + Set + Me.invoiceNumberField = value + End Set + End Property + + ''' + + Public Property InvoiceDate() As Date + Get + Return Me.invoiceDateField + End Get + Set + Me.invoiceDateField = value + End Set + End Property + + ''' + + Public Property InvoiceDateSpecified() As Boolean + Get + Return Me.invoiceDateFieldSpecified + End Get + Set + Me.invoiceDateFieldSpecified = value + End Set + End Property + + ''' + Public Property DocumentType() As DocumentTypeType + Get + Return Me.documentTypeField + End Get + Set + Me.documentTypeField = value + End Set + End Property + + ''' + + Public Property DocumentTypeSpecified() As Boolean + Get + Return Me.documentTypeFieldSpecified + End Get + Set + Me.documentTypeFieldSpecified = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class CustomType + + Private anyField As System.Xml.XmlElement + + Private idField As String + + Private nameField As String + + ''' + + Public Property Any() As System.Xml.XmlElement + Get + Return Me.anyField + End Get + Set + Me.anyField = value + End Set + End Property + + ''' + + Public Property ID() As String + Get + Return Me.idField + End Get + Set + Me.idField = value + End Set + End Property + + ''' + + Public Property Name() As String + Get + Return Me.nameField + End Get + Set + Me.nameField = value + End Set + End Property + End Class + + ''' + + Partial Public Class CurrencyExchangeInformationType + + Private currencyField As String + + Private exchangeRateField As Decimal + + Private exchangeRateDateField As Date + + Private exchangeRateDateFieldSpecified As Boolean + + Private commentField As String + + Private extensionField() As CustomType + + ''' + + Public Property Currency() As String + Get + Return Me.currencyField + End Get + Set + Me.currencyField = value + End Set + End Property + + ''' + Public Property ExchangeRate() As Decimal + Get + Return Me.exchangeRateField + End Get + Set + Me.exchangeRateField = value + End Set + End Property + + ''' + + Public Property ExchangeRateDate() As Date + Get + Return Me.exchangeRateDateField + End Get + Set + Me.exchangeRateDateField = value + End Set + End Property + + ''' + + Public Property ExchangeRateDateSpecified() As Boolean + Get + Return Me.exchangeRateDateFieldSpecified + End Get + Set + Me.exchangeRateDateFieldSpecified = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class DeliveryType + + Private deliveryIDField As String + + Private itemField As Object + + Private addressField As AddressType + + Private contactField As ContactType + + Private descriptionField As String + + Private extensionField() As CustomType + + ''' + Public Property DeliveryID() As String + Get + Return Me.deliveryIDField + End Get + Set + Me.deliveryIDField = value + End Set + End Property + + ''' + + Public Property Item() As Object + Get + Return Me.itemField + End Get + Set + Me.itemField = value + End Set + End Property + + ''' + Public Property Address() As AddressType + Get + Return Me.addressField + End Get + Set + Me.addressField = value + End Set + End Property + + ''' + Public Property Contact() As ContactType + Get + Return Me.contactField + End Get + Set + Me.contactField = value + End Set + End Property + + ''' + Public Property Description() As String + Get + Return Me.descriptionField + End Get + Set + Me.descriptionField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class PeriodType + + Private fromDateField As Date + + Private toDateField As Date + + ''' + + Public Property FromDate() As Date + Get + Return Me.fromDateField + End Get + Set + Me.fromDateField = value + End Set + End Property + + ''' + + Public Property ToDate() As Date + Get + Return Me.toDateField + End Get + Set + Me.toDateField = value + End Set + End Property + End Class + + ''' + + Partial Public Class BillerType + Inherits AbstractPartyType + + Private invoiceRecipientsBillerIDField As String + + Private extensionField() As CustomType + + ''' + Public Property InvoiceRecipientsBillerID() As String + Get + Return Me.invoiceRecipientsBillerIDField + End Get + Set + Me.invoiceRecipientsBillerIDField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class InvoiceRecipientType + Inherits AbstractPartyType + + Private billersInvoiceRecipientIDField As String + + Private accountingAreaField As String + + Private subOrganizationIDField As String + + Private extensionField() As CustomType + + ''' + Public Property BillersInvoiceRecipientID() As String + Get + Return Me.billersInvoiceRecipientIDField + End Get + Set + Me.billersInvoiceRecipientIDField = value + End Set + End Property + + ''' + Public Property AccountingArea() As String + Get + Return Me.accountingAreaField + End Get + Set + Me.accountingAreaField = value + End Set + End Property + + ''' + Public Property SubOrganizationID() As String + Get + Return Me.subOrganizationIDField + End Get + Set + Me.subOrganizationIDField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class OrderingPartyType + Inherits AbstractPartyType + + Private billersOrderingPartyIDField As String + + Private extensionField() As CustomType + + ''' + Public Property BillersOrderingPartyID() As String + Get + Return Me.billersOrderingPartyIDField + End Get + Set + Me.billersOrderingPartyIDField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class DetailsType + + Private headerDescriptionField As String + + Private itemListField() As ItemListType + + Private footerDescriptionField As String + + Private belowTheLineItemField() As BelowTheLineItemType + + ''' + Public Property HeaderDescription() As String + Get + Return Me.headerDescriptionField + End Get + Set + Me.headerDescriptionField = value + End Set + End Property + + ''' + + Public Property ItemList() As ItemListType() + Get + Return Me.itemListField + End Get + Set + Me.itemListField = value + End Set + End Property + + ''' + Public Property FooterDescription() As String + Get + Return Me.footerDescriptionField + End Get + Set + Me.footerDescriptionField = value + End Set + End Property + + ''' + + Public Property BelowTheLineItem() As BelowTheLineItemType() + Get + Return Me.belowTheLineItemField + End Get + Set + Me.belowTheLineItemField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ItemListType + + Private headerDescriptionField As String + + Private listLineItemField() As ListLineItemType + + Private footerDescriptionField As String + + ''' + Public Property HeaderDescription() As String + Get + Return Me.headerDescriptionField + End Get + Set + Me.headerDescriptionField = value + End Set + End Property + + ''' + + Public Property ListLineItem() As ListLineItemType() + Get + Return Me.listLineItemField + End Get + Set + Me.listLineItemField = value + End Set + End Property + + ''' + Public Property FooterDescription() As String + Get + Return Me.footerDescriptionField + End Get + Set + Me.footerDescriptionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ListLineItemType + + Private positionNumberField As String + + Private descriptionField() As String + + Private articleNumberField() As ArticleNumberType + + Private quantityField As UnitType + + Private unitPriceField As UnitPriceType + + Private reductionAndSurchargeListLineItemDetailsField As ReductionAndSurchargeListLineItemDetailsType + + Private deliveryField As DeliveryType + + Private billersOrderReferenceField As OrderReferenceDetailType + + Private invoiceRecipientsOrderReferenceField As OrderReferenceDetailType + + Private classificationField() As ClassificationType + + Private additionalInformationField() As AdditionalInformationType + + Private taxItemField As TaxItemType + + Private lineItemAmountField As Decimal + + Private extensionField() As CustomType + + ''' + + Public Property PositionNumber() As String + Get + Return Me.positionNumberField + End Get + Set + Me.positionNumberField = value + End Set + End Property + + ''' + + Public Property Description() As String() + Get + Return Me.descriptionField + End Get + Set + Me.descriptionField = value + End Set + End Property + + ''' + + Public Property ArticleNumber() As ArticleNumberType() + Get + Return Me.articleNumberField + End Get + Set + Me.articleNumberField = value + End Set + End Property + + ''' + Public Property Quantity() As UnitType + Get + Return Me.quantityField + End Get + Set + Me.quantityField = value + End Set + End Property + + ''' + Public Property UnitPrice() As UnitPriceType + Get + Return Me.unitPriceField + End Get + Set + Me.unitPriceField = value + End Set + End Property + + ''' + Public Property ReductionAndSurchargeListLineItemDetails() As ReductionAndSurchargeListLineItemDetailsType + Get + Return Me.reductionAndSurchargeListLineItemDetailsField + End Get + Set + Me.reductionAndSurchargeListLineItemDetailsField = value + End Set + End Property + + ''' + Public Property Delivery() As DeliveryType + Get + Return Me.deliveryField + End Get + Set + Me.deliveryField = value + End Set + End Property + + ''' + Public Property BillersOrderReference() As OrderReferenceDetailType + Get + Return Me.billersOrderReferenceField + End Get + Set + Me.billersOrderReferenceField = value + End Set + End Property + + ''' + Public Property InvoiceRecipientsOrderReference() As OrderReferenceDetailType + Get + Return Me.invoiceRecipientsOrderReferenceField + End Get + Set + Me.invoiceRecipientsOrderReferenceField = value + End Set + End Property + + ''' + + Public Property Classification() As ClassificationType() + Get + Return Me.classificationField + End Get + Set + Me.classificationField = value + End Set + End Property + + ''' + + Public Property AdditionalInformation() As AdditionalInformationType() + Get + Return Me.additionalInformationField + End Get + Set + Me.additionalInformationField = value + End Set + End Property + + ''' + Public Property TaxItem() As TaxItemType + Get + Return Me.taxItemField + End Get + Set + Me.taxItemField = value + End Set + End Property + + ''' + Public Property LineItemAmount() As Decimal + Get + Return Me.lineItemAmountField + End Get + Set + Me.lineItemAmountField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ArticleNumberType + + Private articleNumberType1Field As ArticleNumberTypeType + + Private articleNumberType1FieldSpecified As Boolean + + Private valueField As String + + ''' + + Public Property ArticleNumberType1() As ArticleNumberTypeType + Get + Return Me.articleNumberType1Field + End Get + Set + Me.articleNumberType1Field = value + End Set + End Property + + ''' + + Public Property ArticleNumberType1Specified() As Boolean + Get + Return Me.articleNumberType1FieldSpecified + End Get + Set + Me.articleNumberType1FieldSpecified = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Public Enum ArticleNumberTypeType + + ''' + PZN + + ''' + GTIN + + ''' + InvoiceRecipientsArticleNumber + + ''' + BillersArticleNumber + End Enum + + ''' + + Partial Public Class UnitType + + Private unitField As String + + Private valueField As Decimal + + ''' + + Public Property Unit() As String + Get + Return Me.unitField + End Get + Set + Me.unitField = value + End Set + End Property + + ''' + + Public Property Value() As Decimal + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class UnitPriceType + + Private baseQuantityField As Decimal + + Private baseQuantityFieldSpecified As Boolean + + Private valueField As Decimal + + ''' + + Public Property BaseQuantity() As Decimal + Get + Return Me.baseQuantityField + End Get + Set + Me.baseQuantityField = value + End Set + End Property + + ''' + + Public Property BaseQuantitySpecified() As Boolean + Get + Return Me.baseQuantityFieldSpecified + End Get + Set + Me.baseQuantityFieldSpecified = value + End Set + End Property + + ''' + + Public Property Value() As Decimal + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ReductionAndSurchargeListLineItemDetailsType + + Private itemsField() As Object + + Private itemsElementNameField() As ItemsChoiceType + + ''' + + Public Property Items() As Object() + Get + Return Me.itemsField + End Get + Set + Me.itemsField = value + End Set + End Property + + ''' + + Public Property ItemsElementName() As ItemsChoiceType() + Get + Return Me.itemsElementNameField + End Get + Set + Me.itemsElementNameField = value + End Set + End Property + End Class + + ''' + + Partial Public Class OtherVATableTaxType + Inherits TaxItemType + + Private taxIDField As String + + ''' + Public Property TaxID() As String + Get + Return Me.taxIDField + End Get + Set + Me.taxIDField = value + End Set + End Property + End Class + + ''' + + Partial Public Class TaxItemType + + Private taxableAmountField As Decimal + + Private taxPercentField As TaxPercentType + + Private taxAmountField As Decimal + + Private taxAmountFieldSpecified As Boolean + + Private accountingCurrencyAmountField As AccountingCurrencyAmountType + + Private commentField As String + + Private extensionField() As CustomType + + ''' + Public Property TaxableAmount() As Decimal + Get + Return Me.taxableAmountField + End Get + Set + Me.taxableAmountField = value + End Set + End Property + + ''' + Public Property TaxPercent() As TaxPercentType + Get + Return Me.taxPercentField + End Get + Set + Me.taxPercentField = value + End Set + End Property + + ''' + Public Property TaxAmount() As Decimal + Get + Return Me.taxAmountField + End Get + Set + Me.taxAmountField = value + End Set + End Property + + ''' + + Public Property TaxAmountSpecified() As Boolean + Get + Return Me.taxAmountFieldSpecified + End Get + Set + Me.taxAmountFieldSpecified = value + End Set + End Property + + ''' + Public Property AccountingCurrencyAmount() As AccountingCurrencyAmountType + Get + Return Me.accountingCurrencyAmountField + End Get + Set + Me.accountingCurrencyAmountField = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class TaxPercentType + + Private taxCategoryCodeField As String + + Private valueField As Decimal + + ''' + + Public Property TaxCategoryCode() As String + Get + Return Me.taxCategoryCodeField + End Get + Set + Me.taxCategoryCodeField = value + End Set + End Property + + ''' + + Public Property Value() As Decimal + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class AccountingCurrencyAmountType + + Private currencyField As String + + Private valueField As Decimal + + ''' + + Public Property Currency() As String + Get + Return Me.currencyField + End Get + Set + Me.currencyField = value + End Set + End Property + + ''' + + Public Property Value() As Decimal + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ReductionAndSurchargeBaseType + + Private baseAmountField As Decimal + + Private percentageField As Decimal + + Private percentageFieldSpecified As Boolean + + Private amountField As Decimal + + Private amountFieldSpecified As Boolean + + Private commentField As String + + Private classificationField As ClassificationType + + Private extensionField() As CustomType + + ''' + Public Property BaseAmount() As Decimal + Get + Return Me.baseAmountField + End Get + Set + Me.baseAmountField = value + End Set + End Property + + ''' + Public Property Percentage() As Decimal + Get + Return Me.percentageField + End Get + Set + Me.percentageField = value + End Set + End Property + + ''' + + Public Property PercentageSpecified() As Boolean + Get + Return Me.percentageFieldSpecified + End Get + Set + Me.percentageFieldSpecified = value + End Set + End Property + + ''' + Public Property Amount() As Decimal + Get + Return Me.amountField + End Get + Set + Me.amountField = value + End Set + End Property + + ''' + + Public Property AmountSpecified() As Boolean + Get + Return Me.amountFieldSpecified + End Get + Set + Me.amountFieldSpecified = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + Public Property Classification() As ClassificationType + Get + Return Me.classificationField + End Get + Set + Me.classificationField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ClassificationType + + Private classificationSchemaField As String + + Private valueField As String + + ''' + + Public Property ClassificationSchema() As String + Get + Return Me.classificationSchemaField + End Get + Set + Me.classificationSchemaField = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Public Enum ItemsChoiceType + + ''' + OtherVATableTaxListLineItem + + ''' + ReductionListLineItem + + ''' + SurchargeListLineItem + End Enum + + ''' + + Partial Public Class OrderReferenceDetailType + Inherits OrderReferenceType + + Private orderPositionNumberField As String + + ''' + Public Property OrderPositionNumber() As String + Get + Return Me.orderPositionNumberField + End Get + Set + Me.orderPositionNumberField = value + End Set + End Property + End Class + + ''' + + Partial Public Class BelowTheLineItemType + + Private descriptionField As String + + Private lineItemAmountField As Decimal + + Private reasonField As ReasonType + + ''' + Public Property Description() As String + Get + Return Me.descriptionField + End Get + Set + Me.descriptionField = value + End Set + End Property + + ''' + Public Property LineItemAmount() As Decimal + Get + Return Me.lineItemAmountField + End Get + Set + Me.lineItemAmountField = value + End Set + End Property + + ''' + Public Property Reason() As ReasonType + Get + Return Me.reasonField + End Get + Set + Me.reasonField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ReasonType + + Private dateField As Date + + Private dateFieldSpecified As Boolean + + Private valueField As String + + ''' + + Public Property [Date]() As Date + Get + Return Me.dateField + End Get + Set + Me.dateField = value + End Set + End Property + + ''' + + Public Property DateSpecified() As Boolean + Get + Return Me.dateFieldSpecified + End Get + Set + Me.dateFieldSpecified = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ReductionAndSurchargeDetailsType + + Private itemsField() As Object + + Private itemsElementNameField() As ItemsChoiceType1 + + ''' + + Public Property Items() As Object() + Get + Return Me.itemsField + End Get + Set + Me.itemsField = value + End Set + End Property + + ''' + + Public Property ItemsElementName() As ItemsChoiceType1() + Get + Return Me.itemsElementNameField + End Get + Set + Me.itemsElementNameField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ReductionAndSurchargeType + Inherits ReductionAndSurchargeBaseType + + Private taxItemField As TaxItemType + + ''' + Public Property TaxItem() As TaxItemType + Get + Return Me.taxItemField + End Get + Set + Me.taxItemField = value + End Set + End Property + End Class + + ''' + + Public Enum ItemsChoiceType1 + + ''' + OtherVATableTax + + ''' + Reduction + + ''' + Surcharge + End Enum + + ''' + + Partial Public Class TaxType + + Private taxItemField() As TaxItemType + + Private otherTaxField() As OtherTaxType + + Private extensionField() As CustomType + + ''' + + Public Property TaxItem() As TaxItemType() + Get + Return Me.taxItemField + End Get + Set + Me.taxItemField = value + End Set + End Property + + ''' + + Public Property OtherTax() As OtherTaxType() + Get + Return Me.otherTaxField + End Get + Set + Me.otherTaxField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class OtherTaxType + + Private taxableAmountField As Decimal + + Private taxableAmountFieldSpecified As Boolean + + Private taxPercentField As TaxPercentType + + Private taxAmountField As Decimal + + Private commentField As String + + Private extensionField() As CustomType + + ''' + Public Property TaxableAmount() As Decimal + Get + Return Me.taxableAmountField + End Get + Set + Me.taxableAmountField = value + End Set + End Property + + ''' + + Public Property TaxableAmountSpecified() As Boolean + Get + Return Me.taxableAmountFieldSpecified + End Get + Set + Me.taxableAmountFieldSpecified = value + End Set + End Property + + ''' + Public Property TaxPercent() As TaxPercentType + Get + Return Me.taxPercentField + End Get + Set + Me.taxPercentField = value + End Set + End Property + + ''' + Public Property TaxAmount() As Decimal + Get + Return Me.taxAmountField + End Get + Set + Me.taxAmountField = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class PaymentMethodType + + Private commentField As String + + Private itemField As Object + + Private extensionField() As CustomType + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Item() As Object + Get + Return Me.itemField + End Get + Set + Me.itemField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class NoPaymentType + End Class + + ''' + + Partial Public Class OtherPaymentType + End Class + + ''' + + Partial Public Class PaymentCardType + + Private primaryAccountNumberField As String + + Private cardHolderNameField As String + + ''' + Public Property PrimaryAccountNumber() As String + Get + Return Me.primaryAccountNumberField + End Get + Set + Me.primaryAccountNumberField = value + End Set + End Property + + ''' + Public Property CardHolderName() As String + Get + Return Me.cardHolderNameField + End Get + Set + Me.cardHolderNameField = value + End Set + End Property + End Class + + ''' + + Partial Public Class SEPADirectDebitType + + Private typeField As SEPADirectDebitTypeType + + Private typeFieldSpecified As Boolean + + Private bICField As String + + Private iBANField As String + + Private bankAccountOwnerField As String + + Private creditorIDField As String + + Private mandateReferenceField As String + + Private debitCollectionDateField As Date + + Private debitCollectionDateFieldSpecified As Boolean + + ''' + Public Property Type() As SEPADirectDebitTypeType + Get + Return Me.typeField + End Get + Set + Me.typeField = value + End Set + End Property + + ''' + + Public Property TypeSpecified() As Boolean + Get + Return Me.typeFieldSpecified + End Get + Set + Me.typeFieldSpecified = value + End Set + End Property + + ''' + Public Property BIC() As String + Get + Return Me.bICField + End Get + Set + Me.bICField = value + End Set + End Property + + ''' + Public Property IBAN() As String + Get + Return Me.iBANField + End Get + Set + Me.iBANField = value + End Set + End Property + + ''' + Public Property BankAccountOwner() As String + Get + Return Me.bankAccountOwnerField + End Get + Set + Me.bankAccountOwnerField = value + End Set + End Property + + ''' + Public Property CreditorID() As String + Get + Return Me.creditorIDField + End Get + Set + Me.creditorIDField = value + End Set + End Property + + ''' + Public Property MandateReference() As String + Get + Return Me.mandateReferenceField + End Get + Set + Me.mandateReferenceField = value + End Set + End Property + + ''' + + Public Property DebitCollectionDate() As Date + Get + Return Me.debitCollectionDateField + End Get + Set + Me.debitCollectionDateField = value + End Set + End Property + + ''' + + Public Property DebitCollectionDateSpecified() As Boolean + Get + Return Me.debitCollectionDateFieldSpecified + End Get + Set + Me.debitCollectionDateFieldSpecified = value + End Set + End Property + End Class + + ''' + + Public Enum SEPADirectDebitTypeType + + ''' + B2C + + ''' + B2B + End Enum + + ''' + + Partial Public Class UniversalBankTransactionType + + Private beneficiaryAccountField() As AccountType + + Private paymentReferenceField As PaymentReferenceType + + Private consolidatorPayableField As Boolean + + Private consolidatorPayableFieldSpecified As Boolean + + ''' + + Public Property BeneficiaryAccount() As AccountType() + Get + Return Me.beneficiaryAccountField + End Get + Set + Me.beneficiaryAccountField = value + End Set + End Property + + ''' + Public Property PaymentReference() As PaymentReferenceType + Get + Return Me.paymentReferenceField + End Get + Set + Me.paymentReferenceField = value + End Set + End Property + + ''' + + Public Property ConsolidatorPayable() As Boolean + Get + Return Me.consolidatorPayableField + End Get + Set + Me.consolidatorPayableField = value + End Set + End Property + + ''' + + Public Property ConsolidatorPayableSpecified() As Boolean + Get + Return Me.consolidatorPayableFieldSpecified + End Get + Set + Me.consolidatorPayableFieldSpecified = value + End Set + End Property + End Class + + ''' + + Partial Public Class AccountType + + Private bankNameField As String + + Private bankCodeField As BankCodeType + + Private bICField As String + + Private bankAccountNrField As String + + Private iBANField As String + + Private bankAccountOwnerField As String + + ''' + Public Property BankName() As String + Get + Return Me.bankNameField + End Get + Set + Me.bankNameField = value + End Set + End Property + + ''' + Public Property BankCode() As BankCodeType + Get + Return Me.bankCodeField + End Get + Set + Me.bankCodeField = value + End Set + End Property + + ''' + Public Property BIC() As String + Get + Return Me.bICField + End Get + Set + Me.bICField = value + End Set + End Property + + ''' + Public Property BankAccountNr() As String + Get + Return Me.bankAccountNrField + End Get + Set + Me.bankAccountNrField = value + End Set + End Property + + ''' + Public Property IBAN() As String + Get + Return Me.iBANField + End Get + Set + Me.iBANField = value + End Set + End Property + + ''' + Public Property BankAccountOwner() As String + Get + Return Me.bankAccountOwnerField + End Get + Set + Me.bankAccountOwnerField = value + End Set + End Property + End Class + + ''' + + Partial Public Class BankCodeType + + Private bankCodeType1Field As String + + Private valueField As String + + ''' + + Public Property BankCodeType1() As String + Get + Return Me.bankCodeType1Field + End Get + Set + Me.bankCodeType1Field = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class PaymentReferenceType + + Private checkSumField As String + + Private valueField As String + + ''' + + Public Property CheckSum() As String + Get + Return Me.checkSumField + End Get + Set + Me.checkSumField = value + End Set + End Property + + ''' + + Public Property Value() As String + Get + Return Me.valueField + End Get + Set + Me.valueField = value + End Set + End Property + End Class + + ''' + + Partial Public Class PaymentConditionsType + + Private dueDateField As Date + + Private dueDateFieldSpecified As Boolean + + Private discountField() As DiscountType + + Private minimumPaymentField As Decimal + + Private minimumPaymentFieldSpecified As Boolean + + Private commentField As String + + Private extensionField() As CustomType + + ''' + + Public Property DueDate() As Date + Get + Return Me.dueDateField + End Get + Set + Me.dueDateField = value + End Set + End Property + + ''' + + Public Property DueDateSpecified() As Boolean + Get + Return Me.dueDateFieldSpecified + End Get + Set + Me.dueDateFieldSpecified = value + End Set + End Property + + ''' + + Public Property Discount() As DiscountType() + Get + Return Me.discountField + End Get + Set + Me.discountField = value + End Set + End Property + + ''' + Public Property MinimumPayment() As Decimal + Get + Return Me.minimumPaymentField + End Get + Set + Me.minimumPaymentField = value + End Set + End Property + + ''' + + Public Property MinimumPaymentSpecified() As Boolean + Get + Return Me.minimumPaymentFieldSpecified + End Get + Set + Me.minimumPaymentFieldSpecified = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + + ''' + + Public Property Extension() As CustomType() + Get + Return Me.extensionField + End Get + Set + Me.extensionField = value + End Set + End Property + End Class + + ''' + + Partial Public Class DiscountType + + Private paymentDateField As Date + + Private baseAmountField As Decimal + + Private baseAmountFieldSpecified As Boolean + + Private percentageField As Decimal + + Private percentageFieldSpecified As Boolean + + Private amountField As Decimal + + Private amountFieldSpecified As Boolean + + Private commentField As String + + ''' + + Public Property PaymentDate() As Date + Get + Return Me.paymentDateField + End Get + Set + Me.paymentDateField = value + End Set + End Property + + ''' + Public Property BaseAmount() As Decimal + Get + Return Me.baseAmountField + End Get + Set + Me.baseAmountField = value + End Set + End Property + + ''' + + Public Property BaseAmountSpecified() As Boolean + Get + Return Me.baseAmountFieldSpecified + End Get + Set + Me.baseAmountFieldSpecified = value + End Set + End Property + + ''' + Public Property Percentage() As Decimal + Get + Return Me.percentageField + End Get + Set + Me.percentageField = value + End Set + End Property + + ''' + + Public Property PercentageSpecified() As Boolean + Get + Return Me.percentageFieldSpecified + End Get + Set + Me.percentageFieldSpecified = value + End Set + End Property + + ''' + Public Property Amount() As Decimal + Get + Return Me.amountField + End Get + Set + Me.amountField = value + End Set + End Property + + ''' + + Public Property AmountSpecified() As Boolean + Get + Return Me.amountFieldSpecified + End Get + Set + Me.amountFieldSpecified = value + End Set + End Property + + ''' + Public Property Comment() As String + Get + Return Me.commentField + End Get + Set + Me.commentField = value + End Set + End Property + End Class + + ''' + + Partial Public Class ExtensionType + + Private customField() As CustomType + + ''' + + Public Property Custom() As CustomType() + Get + Return Me.customField + End Get + Set + Me.customField = value + End Set + End Property + End Class +End Namespace \ No newline at end of file diff --git a/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb b/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb index fd603b81..d70831d7 100644 --- a/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb +++ b/Jobs/ZUGFeRD/ImportZUGFeRDFiles.vb @@ -120,7 +120,8 @@ Public Class ImportZUGFeRDFiles _zugferd = New ZUGFeRDInterface(_logConfig, _gdpictureLicenseKey, New ZUGFeRDInterface.ZugferdOptions() With { .AllowFacturX_Filename = oArgs.AllowFacturX, .AllowXRechnung_Filename = oArgs.AllowXRechnung, - .AllowPeppol_3_x_Schema = oArgs.AllowPeppolBISBill3x + .AllowPeppol_3_x_Schema = oArgs.AllowPeppolBISBill3x, + .AllowEBInterface_Schema = oArgs.AllowEBInterface }) _logger.Debug("Starting Job {0}", [GetType].Name) @@ -719,6 +720,10 @@ Public Class ImportZUGFeRDFiles Dim oPropertyMap As Dictionary(Of String, XmlItemProperty) = _zugferd.FilterPropertyMap(pArgs.PropertyMapList, pDocument.Specification) Dim oCheckResult = _zugferd.PropertyValues.CheckPropertyValues(pDocument.SchemaObject, oPropertyMap, pMessageId) + ' root-Attribute falls konfiguriert auslesen, Ergebnis im oCheckResult enthalten + Dim oRootAttributePropertyMap As Dictionary(Of String, XmlItemProperty) = _zugferd.FilterRootPropertyMap(pArgs.PropertyMapList, pDocument.Specification) + oCheckResult = _zugferd.PropertyValues.CheckRootAttributeValues(pDocument, oRootAttributePropertyMap, pMessageId, oCheckResult) + _logger.Info("Properties checked: [{0}] missing properties / [{1}] valid properties found.", oCheckResult.MissingProperties.Count, oCheckResult.ValidProperties.Count) If oCheckResult.MissingProperties.Count > 0 Then diff --git a/Jobs/ZUGFeRD/WorkerArgs.vb b/Jobs/ZUGFeRD/WorkerArgs.vb index bb5b85ee..9dd6fc82 100644 --- a/Jobs/ZUGFeRD/WorkerArgs.vb +++ b/Jobs/ZUGFeRD/WorkerArgs.vb @@ -33,5 +33,6 @@ Public Class WorkerArgs Public AllowZugferd2x As Boolean = True Public AllowZugferd23x As Boolean = True Public AllowPeppolBISBill3x As Boolean = False + Public AllowEBInterface As Boolean = False End Class \ No newline at end of file