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