Files
VERAGAddin/VERAGAddIn/rbnVERAG.vb

716 lines
29 KiB
VB.net

Option Explicit On
Imports VERAG_PROG_ALLGEMEIN
Imports Microsoft.Office.Tools.Ribbon
Imports System.Windows.Forms
Imports Microsoft.Office.Interop
Imports VERAGAddIn.ThisAddIn
Imports System.Runtime.InteropServices
Imports System.Text.RegularExpressions
Imports System.IO
Imports SDL
Imports System.Net
Imports System.Security.Policy
Imports System.Diagnostics.Eventing.Reader
Public Class VERAGRibbon
Dim LOGIN_OK = False
Public Shared Event bla()
Private Sub CustomerRibbon_Load(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) Handles MyBase.Load
End Sub
Private Function CreateRibbonDropDownItem() As RibbonDropDownItem
Return Me.Factory.CreateRibbonDropDownItem()
End Function
Private Function CreateRibbonMenu() As RibbonMenu
Return Me.Factory.CreateRibbonMenu()
End Function
'Private Function CreateRibbonButton() As RibbonButton
' Dim button As RibbonButton = Me.Factory.CreateRibbonButton()
' ' AddHandler (button.Click), AddressOf Button_Click
' Return button
'End Function
Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
LOGIN_OK = AVISO_Mail_Functions.initFirmaUser()
End Sub
Private Sub Button2_Click(sender As Object, e As RibbonControlEventArgs) Handles Button2.Click
If LOGIN_OK Then AVISO_Mail_Functions.NewAviso_Hauptfenster()
End Sub
Private Sub Button4_Click(sender As Object, e As RibbonControlEventArgs) Handles Button4.Click
Try
MsgBox(System.Security.Principal.WindowsIdentity.GetCurrent().Name)
Catch ex As Exception
End Try
End Sub
Sub Button1_Click_1(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
If LOGIN_OK Then AVISO_Mail_Functions.newEKOLMAIL()
End Sub
Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs)
'MsgBox("HI")
' Dim ThisAddIn As New ThisAddIn
Dim s As String = ""
'Dim app = ThisAddIn.getapp()
' ThisAddIn.PrintAPageFromEmail()
RaiseEvent bla()
End Sub
Sub btnPdfPrint_Click(sender As Object, e As RibbonControlEventArgs) Handles btnPdfPrint.Click
AVISO_Mail_Functions.printPDFs()
End Sub
Sub Button3_Click(sender As Object, e As RibbonControlEventArgs) Handles Button3.Click
If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster()
End Sub
Private Sub btnVM_Click(sender As Object, e As RibbonControlEventArgs) Handles btnVM.Click
If LOGIN_OK Then AVISO_Mail_Functions.addMailToAviso_Hauptfenster(True)
End Sub
Public Function testConnection() As Boolean
Dim connection = New VERAG_PROG_ALLGEMEIN.SQL
If connection.getValueTxtBySql("SELECT 1", "FMZOLL") = 1 Then
Return True
Else
MsgBox("ACHTUNG: Server nicht erreichbar!" & vbCrLf & "VERAG ADD In wird beendet")
Return False
End If
End Function
End Class
Public Class AVISO_Mail_Functions
Shared Sub addMailToAviso_Hauptfenster(Optional isFormular As Boolean = False)
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
mailItem = DirectCast(mailItem, Outlook.MailItem)
addMailToAviso(mailItem, isFormular)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Function getAttachmentStringList(Mail) As List(Of String)
Dim att As New List(Of String)
For Each attachment As Outlook.Attachment In Mail.Attachments
att.Add(attachment.FileName)
Next
Return att
End Function
Shared Sub addMailToAviso(mailItem As Outlook.MailItem, Optional isFormular As Boolean = False)
Try
If mailItem IsNot Nothing Then
' Remove special characters from the file name and make sure it is not longer than 100 characters
' Remove special characters from the file name and make sure it is not longer than 100 characters
Dim strFileName As String = "E-Mail"
If mailItem.Subject IsNot Nothing AndAlso mailItem.Subject <> "" Then
strFileName = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?!€,&'\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg"
End If
'Dim strFileName As String = "Mail.msg"
Dim pdf_mail = ""
Dim SendungsId = -1
Dim Art = ""
Dim kdNr = -1
Dim ATTACHMENTS_LIST As New List(Of String)
loadAttachment(mailItem, ATTACHMENTS_LIST)
If isMail_EKOL(mailItem) Then
If vbYes = MsgBox("EKOL-Anhänge laden?", vbYesNoCancel) Then
getATT_EKOL(mailItem, ATTACHMENTS_LIST)
End If
End If
Dim Bezeichnung = strFileName
Dim AvisoId = Nothing
If isFormular Then
AvisoId = getAvisoFormularId(Bezeichnung, pdf_mail, Art, ATTACHMENTS_LIST, kdNr) ')getAttachmentStringList(mailItem))
Else
AvisoId = getAvisoId(Bezeichnung, pdf_mail, SendungsId, Art, ATTACHMENTS_LIST) ')getAttachmentStringList(mailItem))
End If
If AvisoId < 0 Then Exit Sub
Dim BezAnhang = If(Bezeichnung <> strFileName, Bezeichnung, "") 'Wenn die Bezeichnung geändert wurde --> und wenn nur 1 Anhang, dann wird die Bezeichnung für den Anhang verwendet.
If pdf_mail = "PDF" Then
saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang)
ElseIf pdf_mail = "PDFMAIL" Then
saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art)
saveAttachment(ATTACHMENTS_LIST, AvisoId, SendungsId, Art, BezAnhang)
ElseIf pdf_mail = "PDF_DATENSERVER" Then
saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, kdNr)
saveAttachmentOnDatenserver(ATTACHMENTS_LIST, AvisoId, BezAnhang, kdNr)
ElseIf pdf_mail = "ONLYMAIL_DATENSERVER" Then
saveMailOnDatenserver(mailItem, AvisoId, Bezeichnung,, kdNr)
Else 'ONLYMAIL
saveMail(mailItem, AvisoId, Bezeichnung,, SendungsId, Art)
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub printPDFs()
Dim cntPDFs = countPDFs()
If cntPDFs > 0 Then
If vbYes = MsgBox("Möchten Sie alle " & cntPDFs & " PDF-Anhänge drucken?", vbYesNoCancel) Then
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
If mailItem IsNot Nothing Then
Dim attachments As Outlook.Attachments = mailItem.Attachments
For Each attachment As Outlook.Attachment In mailItem.Attachments
'Dim io As New IO.FileInfo(attachment.PathName)
If attachment.FileName.EndsWith(".pdf") Then
Dim TMP_PATH As String = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(attachment.FileName, ".pdf", False, False, "OutlookAttach_Print")
attachment.SaveAsFile(TMP_PATH)
Marshal.ReleaseComObject(attachment)
If IO.File.Exists(TMP_PATH) Then
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({TMP_PATH}) ', cboPrinter.SelectedItem.ToString)
Try : IO.File.Delete(TMP_PATH) : Catch : End Try
End If
End If
Next
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
End If
End Sub
Shared Sub newEKOLMAIL()
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
If mailItem IsNot Nothing Then
If AVISO_Mail_Functions.isMail_EKOL(mailItem) Then
VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF(AVISO_Mail_Functions.getATT_EKOL(mailItem))
End If
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Function initFirmaUser() As Boolean
Dim LOGIN_OK = False
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" 'DEFAULT
Try
Dim ADMIN As New cADMIN
Try
Dim WI = System.Security.Principal.WindowsIdentity.GetCurrent().Name
If WI.Contains("\") Then
Dim Split() = WI.Split("\")
If Split(0).Contains("VERAG-NCTS") Then : VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA"
ElseIf Split(0).Contains("VERAG") Then : VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG"
ElseIf Split(0).Contains("IMEX") Then : VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX"
ElseIf Split(0).Contains("UNISU") Then : VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "UNISPED"
End If
Dim UsrId As Integer = ADMIN.getUstId_ByAD(Split(0), Split(1))
If UsrId > 0 Then
Dim MA_TMP As New VERAG_PROG_ALLGEMEIN.cMitarbeiter(UsrId)
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = If(MA_TMP.mit_firma = "ALL", MA_TMP.mit_FirmaHaupt, MA_TMP.mit_firma)
LOGIN_OK = ADMIN.checkLogin(MA_TMP.mit_username, MA_TMP.mit_pwd, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
End If
End If
Catch ex As Exception
' MsgBox(ex.Message & ex.StackTrace)
End Try
If Not LOGIN_OK Then
LOGIN_OK = ADMIN.checkLogin("MAIL_USER", "VERAG_MAIL_USER_2017", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return LOGIN_OK
End Function
Shared Sub NewAviso_Hauptfenster()
VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.clearTMPPath("OutlookAttach")
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
If mailItem IsNot Nothing Then
NewAviso(mailItem)
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub MovedMail()
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
If mailItem IsNot Nothing Then
MsgBox("Du bist hier angelangt!")
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Function getFirmaFromToMail(ToMail As String)
If ToMail.Contains("@verag") Then Return "VERAG"
If ToMail.Contains("@imex") Then Return "IMEX"
If ToMail.Contains("@unisped") Then Return "UNISPED"
If ToMail.Contains("@front-office") Then Return "FRONTOFFICE"
Return ""
End Function
Shared Sub NewAviso(mailItem As Outlook.MailItem)
Dim ATTACHMENTS_LIST As New List(Of String)
Dim KundenNr = -1
Dim EingangsDatum As Date = CDate("01.01.1990")
If mailItem IsNot Nothing Then
Try
'MsgBox(mailItem.To)
'MsgBox(mailItem.)
'MsgBox(getFirmaFromToMail(mailItem.To))
EingangsDatum = mailItem.ReceivedTime
Dim senderMail = ""
If mailItem.SenderEmailType = "EX" Then
senderMail = (mailItem.Sender.GetExchangeUser.PrimarySmtpAddress)
Else
senderMail = (mailItem.SenderEmailAddress)
End If
KundenNr = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getKdNrFromMailAdress(senderMail, False) ' false, wenn mehrere Niederlassungen von Frimen im KdStamm vorhanden... falsche KdNr...
If isMail_EKOL(mailItem) Then
If vbYes = MsgBox("EKOL-Anhänge laden?", vbYesNoCancel) Then
getATT_EKOL(mailItem, ATTACHMENTS_LIST)
End If
End If
'End If
loadAttachment(mailItem, ATTACHMENTS_LIST)
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = 0
Dim mainForm As New AVISO.frmEintragAviso
mainForm.ATT = ATTACHMENTS_LIST
If KundenNr > 0 Then
AddHandler mainForm.Shown, Sub()
mainForm.kdAvisierer.KdNr = KundenNr
End Sub
End If
If EingangsDatum > CDate("01.01.1990") Then
mainForm.EingangsDatum = EingangsDatum
End If
mainForm.TopMost = True
mainForm.StartFromOUTLOOK = True
mainForm.ShowDialog()
ATTACHMENTS_LIST = mainForm.ATT
If VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID > 0 Then
saveAttachment(ATTACHMENTS_LIST, VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID, -1, "", "")
saveMail(mailItem, VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID,, False)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Finally
Try
'If attachments IsNot Nothing Then
' Marshal.ReleaseComObject(attachments)
'End If
If mailItem IsNot Nothing Then
Marshal.ReleaseComObject(mailItem)
End If
'If currInspector IsNot Nothing Then
' Marshal.ReleaseComObject(currInspector)
'End If
Catch ex As Exception
End Try
End Try
End If
End Sub
Shared Sub saveAttachment(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, SendungsId As Integer, Art As String, BezeichnungAnh As String)
Try
If AvisoId > 0 Then
If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen.
For Each ATT In ATTACHMENTS_LIST
Dim fi As New IO.FileInfo(ATT)
Dim Bezeichnung = BezeichnungAnh
If Bezeichnung = "" Then Bezeichnung = fi.Name
Dim typ = ""
If AVISO.frmSendungAnhangImport.getFileTypeValid(fi.Extension, typ) Then
AVISO.frmSendungAnhangImport.saveToDS(AvisoId, Bezeichnung, ATT, Art, typ, ,,, If(SendungsId > 0, SendungsId, Nothing))
End If
Next
End If
Catch ex As Exception
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub saveAttachmentOnDatenserver(ByRef ATTACHMENTS_LIST As List(Of String), AvisoId As Integer, BezeichnungAnh As String, Optional kdNr As Integer = -1)
Try
If AvisoId > 0 Then
If ATTACHMENTS_LIST.Count > 1 Then BezeichnungAnh = "" ' nur wenn 1 Anhang wird die Bezeichnung übernommen.
For Each ATT In ATTACHMENTS_LIST
Dim fi As New IO.FileInfo(ATT)
Dim Bezeichnung = BezeichnungAnh
If Bezeichnung = "" Then Bezeichnung = fi.Name
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", Bezeichnung, kdNr)
Dim path = DS.uploadDataToDATENSERVER(fi.FullName)
If path Then
Dim c As New cKundenVollmachten(AvisoId)
c.kdvm_datenarchivId = DS.da_id
c.SAVE()
End If
Next
End If
Catch ex As Exception
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub loadAttachment(ByRef mail As Outlook.MailItem, ByRef ATTACHMENTS_LIST As List(Of String))
Dim attachments As Outlook.Attachments = Nothing
Try
attachments = mail.Attachments
For Each attachment As Outlook.Attachment In mail.Attachments
If Not isEmbedded(attachment) Then
'Next
'For i As Integer = 1 To attachments.Count
' Dim attachment As Outlook.Attachment = attachments.Item(i)
' MsgBox(attachment.FileName)
Dim specialFolder = "OutlookAttach\Outlook_" & Now.ToString("ddMMyy_HHmmss.ffff")
While IO.Directory.Exists(VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.TMP_PATH & specialFolder)
specialFolder = "OutlookAttach\Outlook_" & Now.ToString("ddMMyy_HHmmss.ffff")
End While
'Dim iof As New IO.FileInfo(attachment.PathName)
Dim TMP_PATH As String = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(attachment.FileName, "", False, False, specialFolder)
attachment.SaveAsFile(TMP_PATH)
Dim iof As New IO.FileInfo(TMP_PATH)
' If iof.Length > 5000 Then ' > 5 KB
ATTACHMENTS_LIST.Add(TMP_PATH)
' End If
End If
Marshal.ReleaseComObject(attachment)
Next
Catch ex As Exception
MsgBox(ex.Message, ex.StackTrace)
Finally
If attachments IsNot Nothing Then
Marshal.ReleaseComObject(attachments)
End If
If mail IsNot Nothing Then
' Marshal.ReleaseComObject(mail)
End If
'If currInspector IsNot Nothing Then
' Marshal.ReleaseComObject(currInspector)
'End If
End Try
End Sub
Shared Function isEmbedded(attachment As Outlook.Attachment) As Boolean
If attachment.Type <> Outlook.OlAttachmentType.olByValue Then
Return True
End If
Dim iTmp As Integer = attachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37050003")
If iTmp = 6 Then
Return True
End If
iTmp = attachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37140003")
If iTmp = 4 Then
Return True
End If
Return False
End Function
Shared Function countPDFs() As Integer
countPDFs = 0
Try
Dim explorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer
Dim selection As Outlook.Selection = explorer.Selection
If selection.Count > 0 Then
Dim selectedItem = selection(1)
Dim mailItem As Outlook.MailItem = selectedItem
If mailItem IsNot Nothing Then
Dim attachments As Outlook.Attachments = mailItem.Attachments
For Each attachment As Outlook.Attachment In mailItem.Attachments
'Dim io As New IO.FileInfo(attachment.PathName)
If attachment.FileName.EndsWith(".pdf") Then
countPDFs += 1
End If
'O.File.Delete(TMP_PATH)
Next
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Function
Public Shared Function GetTempFilePathWithExtension(ByVal extension As String) As String
Dim path = IO.Path.GetTempPath()
Dim fileName = Guid.NewGuid().ToString() & extension
Return IO.Path.Combine(path, fileName)
End Function
Shared Function isMail_EKOL(mailItem As Outlook.MailItem) As Boolean
Try
If mailItem IsNot Nothing Then
Dim srch As String = "<a href=""https://web01.ekol.com/documentservice/download/"
Return mailItem.HTMLBody.ToString.Contains(srch)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function getATT_EKOL(mailItem As Outlook.MailItem, Optional ByRef ATT As List(Of String) = Nothing, Optional ByRef LKW_Nr As String = "", Optional ByRef RefNr As String = "", Optional ByRef INFO As String = "") As List(Of String)
If ATT Is Nothing Then ATT = New List(Of String)
Try
If mailItem Is Nothing Then Return ATT
Dim html = mailItem.HTMLBody
Dim srch As String = "<a href=""https://web01.ekol.com/documentservice/download/"
If html.ToString.Contains(srch) Then
Dim myDelims As String() = New String() {srch}
Dim sp = html.Split(myDelims, StringSplitOptions.None)
' Dim sp = html.ToString.Split(srch.ToString)
Dim cnt = 0
For Each l In sp
If cnt > 0 AndAlso l.Contains(""">") Then ' ENDE
Dim link = ("https://web01.ekol.com/documentservice/download/" & l.ToString.Substring(0, l.ToString.IndexOf(""">")))
'Ansonten stüzt der Webservice-Aufruf ab! ABER -> For .NET 4.7 or later, the System.Net.ServicePointManager.SecurityProtocol should not be set manualy!
System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
Dim TMP_PATH = GetTempFilePathWithExtension(".pdf")
My.Computer.Network.DownloadFile(link, TMP_PATH)
If IO.File.Exists(TMP_PATH) Then
ATT.Add(TMP_PATH)
End If
End If
cnt += 1
Next
End If
LKW_Nr = getEKOL_Var(html, "Position :")
RefNr = getEKOL_Var(html, "Truck :")
INFO = getEKOL_Var(html, "Route :")
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return ATT
End Function
Shared Function getEKOL_Var(html, varName, Optional splitTo = "<br>")
If html.contains(varName) Then
Dim split = html.split(varName)
If split(1).ToString.Contains(splitTo) Then
Dim split2 = html.split(splitTo)
Return split2(0).ToString.Trim
End If
End If
Return ""
End Function
Shared Sub saveMail(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional saveAttachments As Boolean = True, Optional SendungsId As Integer = -1, Optional Art As String = "")
' Dim mailItem As Outlook.MailItem = mailItemTMP.Copy
Try
If AvisoId > 0 Then
' The full path will place the email in the user's temporary folder
If bezeichnung = "" Then bezeichnung = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg"
Dim strTmpPath As String = System.IO.Path.GetTempPath() & bezeichnung & If(bezeichnung.EndsWith(".msg"), "", ".msg")
' Save the email to the user's temp folder and convert it to a .MSG
'Dim cnt = 0
'If Not saveAttachments Then
' While mailItem.Attachments.Count > 0 And cnt < 100
' mailItem.Attachments.Remove(1) : cnt += 1 ' Remove(1) stimmt
' End While
'End If
mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG)
' UploadDocument("http://testURL/sites/testing", "Documents", strFileName, btSaveFile)
If AVISO.frmSendungAnhangImport.saveToDS(AvisoId, bezeichnung, strTmpPath, Art, "MSG",,,, If(SendungsId, SendungsId, Nothing)) Then
' MsgBox("Anhang wurde hinzugefügt!")
End If
' Clean up the temporary .MSG file from the user's temporary folder
System.IO.File.Delete(strTmpPath)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Finally
If mailItem IsNot Nothing Then
Marshal.ReleaseComObject(mailItem)
End If
End Try
End Sub
Shared Sub saveMailOnDatenserver(mailItem As Outlook.MailItem, AvisoId As Integer, Optional bezeichnung As String = "", Optional saveAttachments As Boolean = True, Optional kdNr As Integer = -1)
Try
If AvisoId > 0 Then
If bezeichnung = "" Then bezeichnung = Left(Regex.Replace(mailItem.Subject, "[\/\\\:\?\*\<\>\|""]", ""), 100).Replace("""", "").Replace(vbTab, " ") & ".msg"
Dim strTmpPath As String = System.IO.Path.GetTempPath() & bezeichnung & If(bezeichnung.EndsWith(".msg"), "", ".msg")
mailItem.SaveAs(strTmpPath, Outlook.OlSaveAsType.olMSG)
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VOLLMACHTEN", "VMID_" & AvisoId, "", "", bezeichnung, kdNr)
Dim path = DS.uploadDataToDATENSERVER(strTmpPath)
If path Then
Dim c As New cKundenVollmachten(AvisoId)
c.kdvm_emailId = DS.da_id
c.SAVE()
End If
' Clean up the temporary .MSG file from the user's temporary folder
System.IO.File.Delete(strTmpPath)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Finally
If mailItem IsNot Nothing Then
Marshal.ReleaseComObject(mailItem)
End If
End Try
End Sub
Shared Function getAvisoId(ByRef Bezeichnung, ByRef pdf_mail, ByRef SendungsId, ByRef Art, ByRef Att) As Integer
Dim frmAvisoAnfügen As New frmAvisoAnfuegen(Bezeichnung)
frmAvisoAnfügen.ATT = Att
If frmAvisoAnfügen.ShowDialog = DialogResult.OK Then
Dim AvisoId = frmAvisoAnfügen.AvisoId
SendungsId = frmAvisoAnfügen.SendungsId
Bezeichnung = frmAvisoAnfügen.Bezeichnung
pdf_mail = frmAvisoAnfügen.PDF_MAIL
Art = frmAvisoAnfügen.cboArt._value
Att = frmAvisoAnfügen.ATT
Return AvisoId
End If
Return -1
End Function
Shared Function getAvisoFormularId(ByRef Bezeichnung, ByRef pdf_mail, ByRef Art, ByRef Att, ByRef kdNr) As Integer
Dim frmAvisoFormularAnfuegen As New frmAvisoFormularAnfuegen(Bezeichnung)
frmAvisoFormularAnfuegen.ATT = Att
If frmAvisoFormularAnfuegen.ShowDialog = DialogResult.OK Then
Dim AvisoId = frmAvisoFormularAnfuegen.vollmachtId
kdNr = frmAvisoFormularAnfuegen.KdNr
Bezeichnung = frmAvisoFormularAnfuegen.Bezeichnung
pdf_mail = frmAvisoFormularAnfuegen.PDF_MAIL
Att = frmAvisoFormularAnfuegen.ATT
Return AvisoId
End If
Return -1
End Function
End Class