Imports System.Data.SqlClient Imports System.Reflection Imports com.sun.xml.internal.rngom.digested Public Class cEmailBenachrichtigungList Property eb_KundenNr As Object = Nothing Property eb_ebartId As Object = Nothing Public LIST As New List(Of cEmailBenachrichtigung) Dim SQL As New SQL Sub New() End Sub Sub New(eb_KundenNr, eb_ebartId) Me.eb_KundenNr = eb_KundenNr Me.eb_ebartId = eb_ebartId LOAD(Me.eb_KundenNr, Me.eb_ebartId) End Sub Public Sub CLEAR() LIST.Clear() End Sub Public Sub ADD(eb_EMail As String, Optional cc As Boolean = False, Optional bcc As Boolean = False) Dim l As New cEmailBenachrichtigung l.eb_KundenNr = eb_KundenNr l.eb_ebartId = eb_ebartId l.eb_EMail = eb_EMail l.eb_cc = cc l.eb_bcc = bcc LIST.Add(l) End Sub Public Sub LOAD(eb_KundenNr, eb_ebartId) Try LIST.Clear() Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand("SELECT * FROM tblEmailBenachrichtigung WHERE eb_KundenNr=@eb_KundenNr and eb_ebartId=@eb_ebartId ", conn) cmd.Parameters.AddWithValue("@eb_KundenNr", eb_KundenNr) cmd.Parameters.AddWithValue("@eb_ebartId", eb_ebartId) Dim dr = cmd.ExecuteReader() While dr.Read Dim l As New cEmailBenachrichtigung l.eb_KundenNr = dr.Item("eb_KundenNr") l.eb_ebartId = dr.Item("eb_ebartId") l.eb_EMail = dr.Item("eb_EMail") l.eb_cc = dr.Item("eb_cc") l.eb_bcc = dr.Item("eb_bcc") LIST.Add(l) End While dr.Close() End Using End Using Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try End Sub Function SAVE() If SQL.doSQLVarList("DELETE FROM tblEmailBenachrichtigung WHERE eb_KundenNr=" & Me.eb_KundenNr & " and eb_ebartId=" & Me.eb_ebartId & " ", "FMZOLL") Then For Each li In LIST If Not li.INSERT() Then Return False Next Return True Else Return False End If End Function End Class Public Class cEmailBenachrichtigung Property eb_KundenNr As Object = Nothing Property eb_ebartId As Object = Nothing Property eb_EMail As Object = Nothing Property eb_cc As Boolean = False Property eb_bcc As Boolean = False Dim SQL As New SQL Sub New() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eb_KundenNr", eb_KundenNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eb_ebartId", eb_ebartId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eb_EMail", eb_EMail)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eb_cc", eb_cc)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eb_bcc", eb_bcc)) Return list End Function Public Function INSERT() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list) End Function Public Function getInsertCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" Dim values As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "]," values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' Return (" INSERT INTO tblEmailBenachrichtigung (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function Shared Sub eMails_einlesen(Kdnr As String, art As Integer, ByRef Emails As String, ByRef Emails_CC As String, ByRef Emails_BCC As String, ByRef Emails_list_sent As VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList) 'ART: '1=Ankunft '2=Freigabe '3=Ankunft Export '4=Freigabe Export Dim Firmen As New cFirmenDAL Dim Firma As New cFirma If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub 'Prüfen, ob die Art für den Kunden im Kundenstamm aktiviert ist: Dim kdn_er As New cKundenErweitert(Kdnr) If art = 3 Then '> Ankunft Export If kdn_er Is Nothing OrElse Not kdn_er.EmailAnkunft_Export Then art = 1 End If ElseIf art = 4 Then '> Freigabe Export If kdn_er Is Nothing OrElse Not kdn_er.EmailFreigabe_Export Then art = 2 End If End If 'In diesen Strings werden die Mailadressen übergeben: Emails = "" Emails_CC = "" Emails_BCC = "" ' Dim Avisierer As New cKunde(hAuftraggeber_kdnr) ' Dim Fraechter As New cKunde(hFrächter_kdnr) Dim Kdnr_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(Kdnr, art) ' Dim Fraechter_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(hFrächter_kdnr, art) ' If hAuftraggeber_kdnr <> hFrächter_kdnr Then Fraechter_Mails = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(hFrächter_kdnr, art) Dim Emails_list As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList Dim Emails_CC_list As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList Dim Emails_BCC_list As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList 'Dim Emails As String For Each i In Kdnr_Mails.LIST If i.eb_bcc Then If Not existingNEW(Kdnr, i.eb_bcc, "BCC", Emails_list_sent.LIST) Then Emails_BCC_list.LIST.Add(i) ' &= i.eb_EMail & ";" ElseIf i.eb_cc Then If Not existingNEW(Kdnr, i.eb_cc, "CC", Emails_list_sent.LIST) Then Emails_CC_list.LIST.Add(i) ' &= i.eb_EMail & ";" Else If Not existingNEW(Kdnr, i.eb_EMail, "", Emails_list_sent.LIST) Then Emails_list.LIST.Add(i) ' &= i.eb_EMail & ";" End If 'DAS WAR VORHER::::::::::: 'If i.eb_bcc Then ' If Not existing(Kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existingWOKdNr(i.eb_EMail, Emails_list_sent.LIST) Then Emails_BCC_list.LIST.Add(i) ' &= i.eb_EMail & ";" 'ElseIf i.eb_cc Then ' If Not existing(Kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existingWOKdNr(i.eb_EMail, Emails_list_sent.LIST) Then Emails_CC_list.LIST.Add(i) ' &= i.eb_EMail & ";" 'Else ' If Not existing(Kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existingWOKdNr(i.eb_EMail, Emails_list_sent.LIST) Then Emails_list.LIST.Add(i) ' &= i.eb_EMail & ";" 'End If '::::::::::::::::::::::: '''Es muss mit KdNr geprüft werden, sonst wird zB OPUS/SOMEDAY nciht gesendet (gleiche Mail, andere KdNr) '''If i.eb_bcc Then ''' If Not existing(Kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existingWOKdNr(i.eb_EMail, Emails_list_sent.LIST) Then Emails_BCC_list.LIST.Add(i) ' &= i.eb_EMail & ";" '''ElseIf i.eb_cc Then ''' If Not existing(Kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existingWOKdNr(i.eb_EMail, Emails_list_sent.LIST) Then Emails_CC_list.LIST.Add(i) ' &= i.eb_EMail & ";" '''Else ''' If Not existing(Kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existingWOKdNr(i.eb_EMail, Emails_list_sent.LIST) Then Emails_list.LIST.Add(i) ' &= i.eb_EMail & ";" '''End If Next For Each i In Emails_list.LIST Emails &= i.eb_EMail & ";" Next For Each i In Emails_CC_list.LIST Emails_CC &= i.eb_EMail & ";" Next For Each i In Emails_BCC_list.LIST Emails_BCC &= i.eb_EMail & ";" Next For Each i In Emails_list.LIST : Emails_list_sent.LIST.Add(i) : Next For Each i In Emails_CC_list.LIST : Emails_list_sent.LIST.Add(i) : Next For Each i In Emails_BCC_list.LIST : Emails_list_sent.LIST.Add(i) : Next End Sub Public Shared Function getAbsenderEmail() As String Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "IMEX" : Return "noreply@imex-group.at" Case "ATILLA" : Return "noreply@verag.ag" Case "UNISPED" : Return "No-Reply@unisped.at" Case "FRONTOFFICE" : Return "noreply@front-office.eu" ' Case "AMBAR" : Return "import@ambarlog.com" Case "AMBAR" : Return "import@ambarlog.de" Case Else : Return "noreply@verag.ag" End Select End Function Public Shared Function getBCCEmail() As String Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "IMEX" : Return "noreply@imex-group.at" Case "ATILLA" : Return "noreply@verag.ag" Case "UNISPED" : Return "No-Reply@unisped.at" Case "FRONTOFFICE" : Return "noreply@front-office.eu" Case "AMBAR" : Return "" '"noreply@verag.ag" Case Else : Return "noreply@verag.ag" End Select End Function Shared Sub eMails_einlesenOLD(hFrächter_kdnr As String, hAuftraggeber_kdnr As String, art As Integer, ByRef Emails As String, ByRef Emails_CC As String, ByRef Emails_BCC As String, ByRef Emails_list_sent As VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList) 'ART: '1=Ankunft '2=Freigabe '3=Ankunft Export '4=Freigabe Export Dim Firmen As New cFirmenDAL Dim Firma As New cFirma Emails = "" Emails_CC = "" Emails_BCC = "" ' Dim Avisierer As New cKunde(hAuftraggeber_kdnr) ' Dim Fraechter As New cKunde(hFrächter_kdnr) Dim Avisierer_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(hAuftraggeber_kdnr, art) Dim Fraechter_Mails As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(hFrächter_kdnr, art) If hAuftraggeber_kdnr <> hFrächter_kdnr Then Fraechter_Mails = New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList(hFrächter_kdnr, art) Dim Emails_list As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList Dim Emails_CC_list As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList Dim Emails_BCC_list As New VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList 'Dim Emails As String For Each i In Avisierer_Mails.LIST If i.eb_bcc Then If Not existing(hFrächter_kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existing(hFrächter_kdnr, i.eb_EMail, Emails_list_sent.LIST) Then Emails_BCC_list.LIST.Add(i) ' &= i.eb_EMail & ";" ElseIf i.eb_cc Then If Not existing(hFrächter_kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existing(hFrächter_kdnr, i.eb_EMail, Emails_list_sent.LIST) Then Emails_CC_list.LIST.Add(i) ' &= i.eb_EMail & ";" Else If Not existing(hFrächter_kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existing(hFrächter_kdnr, i.eb_EMail, Emails_list_sent.LIST) Then Emails_list.LIST.Add(i) ' &= i.eb_EMail & ";" End If Next For Each i In Fraechter_Mails.LIST If i.eb_bcc Then If Not existing(hFrächter_kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existing(hFrächter_kdnr, i.eb_EMail, Emails_list_sent.LIST) Then Emails_BCC_list.LIST.Add(i) ' &= i.eb_EMail & ";" ElseIf i.eb_cc Then If Not existing(hFrächter_kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existing(hFrächter_kdnr, i.eb_EMail, Emails_list_sent.LIST) Then Emails_CC_list.LIST.Add(i) ' &= i.eb_EMail & ";" Else If Not existing(hFrächter_kdnr, i.eb_EMail, Emails_BCC_list.LIST, Emails_CC_list.LIST, Emails_list.LIST) And Not existing(hFrächter_kdnr, i.eb_EMail, Emails_list_sent.LIST) Then Emails_list.LIST.Add(i) ' &= i.eb_EMail & ";" End If Next For Each i In Emails_list.LIST Emails &= i.eb_EMail & ";" Next For Each i In Emails_CC_list.LIST Emails_CC &= i.eb_EMail & ";" Next For Each i In Emails_BCC_list.LIST Emails_BCC &= i.eb_EMail & ";" Next For Each i In Emails_list.LIST : Emails_list_sent.LIST.Add(i) : Next End Sub Shared Function existingNEW(KundenNr As Integer, Email As String, art As String, Emails_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung)) As Boolean If Emails_list IsNot Nothing Then For Each i In Emails_list Select Case art Case "BCC" : If i.eb_bcc = Email And i.eb_KundenNr = KundenNr Then Return True Case "CC" : If i.eb_cc = Email And i.eb_KundenNr = KundenNr Then Return True Case Else : If i.eb_EMail = Email And i.eb_KundenNr = KundenNr Then Return True End Select Next End If Return False End Function Shared Function existing(KundenNr As Integer, Email As String, Emails_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung), Optional ListEmails_CC_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung) = Nothing, Optional ListEmails_BCC_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung) = Nothing) As Boolean If Emails_list IsNot Nothing Then For Each i In Emails_list If i.eb_EMail = Email And i.eb_KundenNr = KundenNr Then Return True Next End If If ListEmails_CC_list IsNot Nothing Then For Each i In ListEmails_CC_list If i.eb_EMail = Email And i.eb_KundenNr = KundenNr Then Return True Next End If If ListEmails_BCC_list IsNot Nothing Then For Each i In ListEmails_BCC_list If i.eb_EMail = Email And i.eb_KundenNr = KundenNr Then Return True Next End If Return False End Function Shared Function existingWOKdNr(Email As String, Emails_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung), Optional ListEmails_CC_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung) = Nothing, Optional ListEmails_BCC_list As List(Of VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung) = Nothing) As Boolean If Emails_list IsNot Nothing Then For Each i In Emails_list If i.eb_EMail = Email Then Return True Next End If If ListEmails_CC_list IsNot Nothing Then For Each i In ListEmails_CC_list If i.eb_EMail = Email Then Return True Next End If If ListEmails_BCC_list IsNot Nothing Then For Each i In ListEmails_BCC_list If i.eb_EMail = Email Then Return True Next End If Return False End Function End Class