diff --git a/VERAGAddIn/VERAGAddIn.vbproj b/VERAGAddIn/VERAGAddIn.vbproj index abb039c..3e487fd 100644 --- a/VERAGAddIn/VERAGAddIn.vbproj +++ b/VERAGAddIn/VERAGAddIn.vbproj @@ -36,7 +36,7 @@ \\ftps.verag.ag\g\FTP\Programme\VeragAddin\ http://ftps.verag.ag/VERAGAddin/ de - 1.0.1.138 + 1.0.1.139 true true 0 diff --git a/VERAGAddIn/rbnVERAG.vb b/VERAGAddIn/rbnVERAG.vb index f6bf4e7..a7fa518 100644 --- a/VERAGAddIn/rbnVERAG.vb +++ b/VERAGAddIn/rbnVERAG.vb @@ -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