Files
SDL/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb

336 lines
16 KiB
VB.net

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