neue Logik für DFDS

This commit is contained in:
2026-03-26 08:16:29 +01:00
parent 4f8f2529f9
commit 5faf41f513
2 changed files with 75 additions and 58 deletions

View File

@@ -36,7 +36,7 @@
<PublishUrl>\\ftps.verag.ag\g\FTP\Programme\VeragAddin\</PublishUrl> <PublishUrl>\\ftps.verag.ag\g\FTP\Programme\VeragAddin\</PublishUrl>
<InstallUrl>http://ftps.verag.ag/VERAGAddin/</InstallUrl> <InstallUrl>http://ftps.verag.ag/VERAGAddin/</InstallUrl>
<TargetCulture>de</TargetCulture> <TargetCulture>de</TargetCulture>
<ApplicationVersion>1.0.1.138</ApplicationVersion> <ApplicationVersion>1.0.1.139</ApplicationVersion>
<AutoIncrementApplicationRevision>true</AutoIncrementApplicationRevision> <AutoIncrementApplicationRevision>true</AutoIncrementApplicationRevision>
<UpdateEnabled>true</UpdateEnabled> <UpdateEnabled>true</UpdateEnabled>
<UpdateInterval>0</UpdateInterval> <UpdateInterval>0</UpdateInterval>

View File

@@ -740,41 +740,51 @@ Public Class AVISO_Mail_Functions
Dim dt As New DataTable() Dim dt As New DataTable()
dt.Columns.AddRange({ dt.Columns.AddRange({
New DataColumn("Record"), New DataColumn("Record"),
New DataColumn("Consignee"), New DataColumn("Consignee"),
New DataColumn("Quantity"), New DataColumn("Quantity"),
New DataColumn("GrossWeight"), New DataColumn("GrossWeight"),
New DataColumn("OrderCustoms"), New DataColumn("OrderCustoms"),
New DataColumn("OperationType"), New DataColumn("Address"),
New DataColumn("Description"), New DataColumn("Code"),
New DataColumn("LinkText"), New DataColumn("OperationType"),
New DataColumn("LinkUrl") New DataColumn("Links") ' store ALL links (doc + cmr)
}) })
Dim doc As New HtmlAgilityPack.HtmlDocument() Dim doc As New HtmlAgilityPack.HtmlDocument()
doc.LoadHtml(mailItem.HTMLBody) doc.LoadHtml(mailItem.HTMLBody)
Dim rows = doc.DocumentNode.SelectNodes("//tr[td]") Dim rows = doc.DocumentNode.SelectNodes("//tr")
If rows Is Nothing Then Return dt If rows Is Nothing Then Return dt
For Each row In rows For Each row In rows
Dim cells = row.SelectNodes("td") Dim cells = row.SelectNodes("td")
If cells Is Nothing OrElse cells.Count < 8 Then Continue For If cells Is Nothing Then Continue For
Dim linkNode = cells(7).SelectSingleNode(".//a") Dim recordText As String = Clean(cells(0).InnerText)
dt.Rows.Add( If Not IsNumeric(recordText) Then Continue For
Clean(cells(0).InnerText),
Clean(cells(1).InnerText), Dim linkNodes = row.SelectNodes(".//a")
Clean(cells(2).InnerText), Dim links As New List(Of String)
Clean(cells(3).InnerText),
Clean(cells(4).InnerText), If linkNodes IsNot Nothing Then
Clean(cells(5).InnerText), For Each ln In linkNodes
Clean(cells(6).InnerText), Dim href = ln.GetAttributeValue("href", "")
If(linkNode IsNot Nothing, Clean(linkNode.InnerText), ""), If href <> "" Then links.Add(href)
If(linkNode IsNot Nothing, linkNode.GetAttributeValue("href", ""), "") Next
) End If
Dim GetCell = Function(index As Integer) As String
If cells.Count > index Then
Return Clean(cells(index).InnerText)
End If
Return ""
End Function
dt.Rows.Add(recordText, GetCell(1), GetCell(2), GetCell(3), GetCell(4), GetCell(5), GetCell(6), GetCell(7), String.Join("|", links))
Next Next
@@ -783,54 +793,61 @@ Public Class AVISO_Mail_Functions
Dim sendungsNrOld As String = "" Dim sendungsNrOld As String = ""
Dim missingDocuments As String = "" Dim missingDocuments As String = ""
For Each r In dt.Rows For Each r As DataRow In dt.Rows
If r("LinkUrl") <> "" AndAlso r("LinkUrl").ToString.Contains("https://web01.ekoltransport.com.tr/dfdsdocumentservice/download/") Then Dim links = r("Links").ToString().Split("|"c)
Dim link As String = r("LinkUrl") For Each linkRaw In links
If link.EndsWith("%20") And link.Length > 3 Then If String.IsNullOrWhiteSpace(linkRaw) Then Continue For
link = link.Remove(link.Length - 3)
End If
Dim sendungsNr As String = r("Record") If linkRaw.Contains("dfdsdocumentservice/download") Then
Dim Descr As String = r("Description") Dim link As String = linkRaw.Trim()
If Descr <> "" Then If link.EndsWith("%20") Then
Descr = Descr.ToString.Replace(";", "_") link = link.Substring(0, link.Length - 3)
Descr = Descr.ToString.Replace(".", "_")
Descr = Descr.ToString.Replace(" ", "_")
Descr = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(Descr)
End If
If sendungsNrOld <> "" AndAlso sendungsNrOld <> sendungsNr Then
counter = 1
End If
Dim file = VERAG_PROG_ALLGEMEIN.cFormularManager.getFile_FromURLStream(link, r("Record") & "_" & counter & "_" & IIf(Descr <> "", Descr, ""),, False)
If IO.File.Exists(file) Then
ATT.Add(file)
Else
If missingDocuments <> "" Then
missingDocuments &= vbNewLine & r("Record") & "_" & counter & "_" & IIf(Descr <> "", Descr, "")
Else
missingDocuments = "fehlende Dokumente: " & vbNewLine & r("Record") & "_" & counter & "_" & IIf(Descr <> "", Descr, "")
End If End If
End If
counter += 1 Dim sendungsNr As String = r("Record").ToString()
Dim descr As String = r("Consignee").ToString()
sendungsNrOld = r("Record") If descr <> "" Then
descr = descr.Replace(";", "_").
Replace(".", "_").
Replace(" ", "_")
descr = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(descr)
End If
If sendungsNrOld <> "" AndAlso sendungsNrOld <> sendungsNr Then
counter = 1
End If
Dim filename As String = sendungsNr & "_" & counter &
If(descr <> "", "_" & descr, "")
Dim file = VERAG_PROG_ALLGEMEIN.cFormularManager.getFile_FromURLStream(link, filename,, False)
If IO.File.Exists(file) Then
ATT.Add(file)
Else
If missingDocuments <> "" Then
missingDocuments &= vbNewLine & filename
Else
missingDocuments = "fehlende Dokumente:" & vbNewLine & filename
End If
End If
counter += 1
sendungsNrOld = sendungsNr
End If End If
Next
Next Next
If missingDocuments <> "" Then If missingDocuments <> "" Then
INFO = missingDocuments INFO = missingDocuments
End If End If