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

@@ -740,41 +740,51 @@ Public Class AVISO_Mail_Functions
Dim dt As New DataTable()
dt.Columns.AddRange({
New DataColumn("Record"),
New DataColumn("Consignee"),
New DataColumn("Quantity"),
New DataColumn("GrossWeight"),
New DataColumn("OrderCustoms"),
New DataColumn("OperationType"),
New DataColumn("Description"),
New DataColumn("LinkText"),
New DataColumn("LinkUrl")
})
New DataColumn("Record"),
New DataColumn("Consignee"),
New DataColumn("Quantity"),
New DataColumn("GrossWeight"),
New DataColumn("OrderCustoms"),
New DataColumn("Address"),
New DataColumn("Code"),
New DataColumn("OperationType"),
New DataColumn("Links") ' store ALL links (doc + cmr)
})
Dim doc As New HtmlAgilityPack.HtmlDocument()
doc.LoadHtml(mailItem.HTMLBody)
Dim rows = doc.DocumentNode.SelectNodes("//tr[td]")
Dim rows = doc.DocumentNode.SelectNodes("//tr")
If rows Is Nothing Then Return dt
For Each row In rows
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(
Clean(cells(0).InnerText),
Clean(cells(1).InnerText),
Clean(cells(2).InnerText),
Clean(cells(3).InnerText),
Clean(cells(4).InnerText),
Clean(cells(5).InnerText),
Clean(cells(6).InnerText),
If(linkNode IsNot Nothing, Clean(linkNode.InnerText), ""),
If(linkNode IsNot Nothing, linkNode.GetAttributeValue("href", ""), "")
)
If Not IsNumeric(recordText) Then Continue For
Dim linkNodes = row.SelectNodes(".//a")
Dim links As New List(Of String)
If linkNodes IsNot Nothing Then
For Each ln In linkNodes
Dim href = ln.GetAttributeValue("href", "")
If href <> "" Then links.Add(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
@@ -783,54 +793,61 @@ Public Class AVISO_Mail_Functions
Dim sendungsNrOld 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
link = link.Remove(link.Length - 3)
End If
If String.IsNullOrWhiteSpace(linkRaw) Then Continue For
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
Descr = Descr.ToString.Replace(";", "_")
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, "")
If link.EndsWith("%20") Then
link = link.Substring(0, link.Length - 3)
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
Next
Next
If missingDocuments <> "" Then
INFO = missingDocuments
End If