Compare commits
4 Commits
53768edb23
...
622538225c
| Author | SHA1 | Date | |
|---|---|---|---|
| 622538225c | |||
| b0d02497eb | |||
| c52c00ac04 | |||
| 237cad3a7a |
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyCompany("Digital Data")>
|
||||
<Assembly: AssemblyProduct("Modules.Interfaces")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2024")>
|
||||
<Assembly: AssemblyTrademark("2.0.6.0")>
|
||||
<Assembly: AssemblyTrademark("2.0.7.0")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.0.6.0")>
|
||||
<Assembly: AssemblyFileVersion("2.0.6.0")>
|
||||
<Assembly: AssemblyVersion("2.0.7.0")>
|
||||
<Assembly: AssemblyFileVersion("2.0.7.0")>
|
||||
|
||||
@@ -15,7 +15,7 @@ Public Class PropertyValues
|
||||
End Sub
|
||||
|
||||
Public Class CheckPropertyValuesResult
|
||||
Public MissingProperties As New List(Of String)
|
||||
Public MissingProperties As New List(Of MissingProperty)
|
||||
Public ValidProperties As New List(Of ValidProperty)
|
||||
End Class
|
||||
|
||||
@@ -29,6 +29,12 @@ Public Class PropertyValues
|
||||
|
||||
Public Description As String
|
||||
Public Value As String
|
||||
Public XMLPath As String
|
||||
End Class
|
||||
|
||||
Public Class MissingProperty
|
||||
Public Description As String
|
||||
Public XMLPath As String
|
||||
End Class
|
||||
|
||||
Public Function CheckPropertyValues(pDocument As Object, PropertyMap As Dictionary(Of String, XmlItemProperty), MessageId As String) As CheckPropertyValuesResult
|
||||
@@ -98,6 +104,8 @@ Public Class PropertyValues
|
||||
Dim oTableColumn As String = oColumn.Key.TableColumn
|
||||
Dim oIsRequired As Boolean = oColumn.Key.IsRequired
|
||||
Dim oPropertyDescription As String = oColumn.Key.Description
|
||||
Dim oPropertyPath As String = oColumn.Key.XMLPath
|
||||
|
||||
Dim oRowCounter = oRowIndex + oGlobalGroupCounter + 1
|
||||
|
||||
' Returns nothing if oColumn.Value contains an empty list
|
||||
@@ -110,7 +118,11 @@ Public Class PropertyValues
|
||||
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
||||
If oColumn.Key.IsRequired Then
|
||||
_logger.Warn($"{MessageId} # oPropertyValue for specification [{oTableColumn}] is empty or not found but is required. Continuing with Empty String.")
|
||||
oResult.MissingProperties.Add(oPropertyDescription)
|
||||
Dim oMissingProperty = New MissingProperty() With {
|
||||
.Description = oPropertyDescription,
|
||||
.XMLPath = oPropertyPath
|
||||
}
|
||||
oResult.MissingProperties.Add(oMissingProperty)
|
||||
Else
|
||||
_logger.Debug($"{MessageId} # oPropertyValue for specification [{oTableColumn}] is empty or not found. Continuing with Empty String.")
|
||||
End If
|
||||
@@ -127,7 +139,8 @@ Public Class PropertyValues
|
||||
.GroupCounter = oRowCounter,
|
||||
.TableName = oTableName,
|
||||
.TableColumn = oTableColumn,
|
||||
.IsRequired = oIsRequired
|
||||
.IsRequired = oIsRequired,
|
||||
.XMLPath = oPropertyPath
|
||||
})
|
||||
Next
|
||||
Next
|
||||
@@ -140,6 +153,7 @@ Public Class PropertyValues
|
||||
Dim oPropertyValueList As List(Of Object)
|
||||
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
|
||||
@@ -183,7 +197,12 @@ Public Class PropertyValues
|
||||
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
||||
If oItem.Value.IsRequired Then
|
||||
_logger.Warn("{0} # Specification [{1}] is empty, but marked as required! Skipping.", MessageId, oPropertyDescription)
|
||||
oResult.MissingProperties.Add(oPropertyDescription)
|
||||
Dim oMissingProperty = New MissingProperty With
|
||||
{
|
||||
.Description = oPropertyDescription,
|
||||
.XMLPath = oPropertyPath
|
||||
}
|
||||
oResult.MissingProperties.Add(oMissingProperty)
|
||||
Continue For
|
||||
Else
|
||||
_logger.Debug("{0} # oPropertyValue for specification [{1}] is empty or not found. Skipping.", MessageId, oPropertyDescription)
|
||||
@@ -198,7 +217,8 @@ Public Class PropertyValues
|
||||
.Value = oPropertyValue,
|
||||
.TableName = oTableName,
|
||||
.TableColumn = oTableColumn,
|
||||
.IsRequired = oIsRequired
|
||||
.IsRequired = oIsRequired,
|
||||
.XMLPath = oPropertyPath
|
||||
})
|
||||
Next
|
||||
|
||||
|
||||
@@ -11,4 +11,9 @@
|
||||
''' Document version, eg. ZUGFeRD Schema version
|
||||
''' </summary>
|
||||
Public Specification As String
|
||||
|
||||
''' <summary>
|
||||
''' XML Pfad, für Anzeige in Ablehnungsmail
|
||||
''' </summary>
|
||||
Public XMLPath As String
|
||||
End Class
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.Collections.Generic
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Interfaces.PropertyValues
|
||||
Imports DigitalData.Modules.Interfaces.ZUGFeRDInterface
|
||||
|
||||
Public Class Exceptions
|
||||
@@ -7,9 +8,9 @@ Public Class Exceptions
|
||||
Inherits ApplicationException
|
||||
|
||||
Public ReadOnly File As FileInfo
|
||||
Public ReadOnly MissingProperties As List(Of String)
|
||||
Public ReadOnly MissingProperties As List(Of MissingProperty)
|
||||
|
||||
Public Sub New(pFile As FileInfo, pMissingProperties As List(Of String))
|
||||
Public Sub New(pFile As FileInfo, pMissingProperties As List(Of MissingProperty))
|
||||
MyBase.New($"Missing values in [{pFile.Name}]")
|
||||
|
||||
Me.File = pFile
|
||||
|
||||
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyCompany("Digital Data")>
|
||||
<Assembly: AssemblyProduct("Modules.Jobs")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2024")>
|
||||
<Assembly: AssemblyTrademark("2.6.1.0")>
|
||||
<Assembly: AssemblyTrademark("2.6.2.0")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
@@ -30,5 +30,5 @@ Imports System.Runtime.InteropServices
|
||||
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
|
||||
<Assembly: AssemblyVersion("2.6.1.0")>
|
||||
<Assembly: AssemblyFileVersion("2.6.1.0")>
|
||||
<Assembly: AssemblyVersion("2.6.2.0")>
|
||||
<Assembly: AssemblyFileVersion("2.6.2.0")>
|
||||
|
||||
@@ -7,6 +7,7 @@ Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Jobs.ImportZUGFeRDFiles
|
||||
Imports System.Data.SqlClient
|
||||
Imports FirebirdSql.Data
|
||||
Imports DigitalData.Modules.Interfaces.PropertyValues
|
||||
|
||||
Namespace ZUGFeRD
|
||||
Public Class EmailFunctions
|
||||
@@ -274,7 +275,7 @@ Namespace ZUGFeRD
|
||||
Return oRandomValue
|
||||
End Function
|
||||
|
||||
Public Function CreateBodyForMissingProperties(OriginalFilename As String, MissingProperties As List(Of String)) As String
|
||||
Public Function CreateBodyForMissingProperties(OriginalFilename As String, MissingProperties As List(Of MissingProperty)) As String
|
||||
Dim oBody = String.Format(EmailStrings.EMAIL_MISSINGPROPERTIES_1, OriginalFilename)
|
||||
|
||||
If MissingProperties.Count > 0 Then
|
||||
@@ -283,7 +284,7 @@ Namespace ZUGFeRD
|
||||
oBody &= $"{vbNewLine}{vbNewLine}"
|
||||
|
||||
For Each prop In MissingProperties
|
||||
oBody &= $"- {prop}"
|
||||
oBody &= $"- {prop.Description}"
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Interfaces
|
||||
Imports DigitalData.Modules.Interfaces.Exceptions
|
||||
Imports DigitalData.Modules.Interfaces.PropertyValues
|
||||
Imports DigitalData.Modules.Jobs.Exceptions
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
@@ -82,7 +83,7 @@ Public Class ImportZUGFeRDFiles
|
||||
|
||||
Public Sub Start(Arguments As Object) Implements IJob.Start
|
||||
Dim oArgs As WorkerArgs = Arguments
|
||||
Dim oPropertyExtractor = New PropertyValues(_logConfig)
|
||||
'Dim oPropertyExtractor = New PropertyValues(_logConfig)
|
||||
Dim oAttachmentExtractor = New PDFEmbeds(_logConfig)
|
||||
|
||||
_EmailOutAccountId = oArgs.EmailOutProfileId
|
||||
@@ -314,7 +315,7 @@ Public Class ImportZUGFeRDFiles
|
||||
|
||||
Dim oMissingFieldList As String = ""
|
||||
For Each oMissingFieldDescription In ex.MissingProperties
|
||||
oMissingFieldList += $"<li>{oMissingFieldDescription}</li>"
|
||||
oMissingFieldList += $"<li>{oMissingFieldDescription.Description}<br/><em>{oMissingFieldDescription.XMLPath}</em></li>"
|
||||
Next
|
||||
|
||||
Dim oOrgFilename = _hash.GetOriginalFilename(ex.File.Name)
|
||||
@@ -459,7 +460,6 @@ Public Class ImportZUGFeRDFiles
|
||||
Private Function ProcessFile(pMessageId As String, pEmailData As EmailData, pZugferdFiles As Integer, oFile As FileInfo, oConnections As DatabaseConnections, pArgs As WorkerArgs) As ProcessFileResult
|
||||
Dim oDocument As ZUGFeRDInterface.ZugferdResult
|
||||
Dim oResult As New ProcessFileResult()
|
||||
Dim oMissingProperties As New List(Of String)
|
||||
|
||||
' Only pdf files are allowed from here on
|
||||
If Not oFile.Name.ToUpper.EndsWith(".PDF") Then
|
||||
@@ -544,7 +544,6 @@ Public Class ImportZUGFeRDFiles
|
||||
|
||||
If oCheckResult.MissingProperties.Count > 0 Then
|
||||
_logger.Warn("[{0}] missing properties found. Exiting.", oCheckResult.MissingProperties.Count)
|
||||
oMissingProperties = oCheckResult.MissingProperties
|
||||
Throw New MissingValueException(oFile, oCheckResult.MissingProperties)
|
||||
Else
|
||||
_logger.Debug("No missing properties found. Continuing.")
|
||||
|
||||
Reference in New Issue
Block a user