Files
SDL/VERAG_PROG_ALLGEMEIN/Classes/cEmailBenachrichtigung.vb
2022-09-01 16:11:12 +02:00

319 lines
15 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Reflection
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
'In diesen Strings werden die Mailadressen übergeben:
Emails = ""
Emails_CC = ""
Emails_BCC = ""
If Kdnr Is Nothing OrElse Not IsNumeric(Kdnr) Then Exit Sub
' 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 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