Imports System.Windows.Controls
Imports System.Windows.Documents
Imports DocumentFormat.OpenXml.Drawing.Charts
Imports GrapeCity.ActiveReports.SectionReportModel
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmdynMailvorlagen
Dim txtkonserve As New cTextkonserve
Dim editall As Boolean = False
Dim h2t As New Chilkat.HtmlToText
Sub New(permission As Boolean)
InitializeComponent()
editall = permission
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
End Sub
Private Sub Mailvorlage_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cboSprache.Items.Clear()
cboSprache.fillWithSQL("SELECT distinct([txt_sprache]) FROM [tblTextkonserve] where txt_sprache is not null ", False, "FMZOLL", True)
cbxSpracheSelected.Items.AddRange(cboSprache.Items.Cast(Of VERAG_PROG_ALLGEMEIN.MyListItem).ToArray())
cbxSpracheSelected.changeItem("DE")
Dim listofFirmen = cFirmen.LOAD_LIST
cboFirmensignatur.Items.Clear()
For Each firma In listofFirmen
cboFirmensignatur.Items.Add(New MyListItem(firma.Firma_Bez, firma.Firma_ID))
Next
cbxFirma.Items.Clear()
cbxFirmaChange.Items.Clear()
cbxFirma.fillWithSQL("SELECT distinct([Firmengruppe]) FROM [tblFirma] where Firmengruppe is not null ", False, "FMZOLL", True)
cbxFirmaChange.Items.AddRange(cbxFirma.Items.Cast(Of VERAG_PROG_ALLGEMEIN.MyListItem).ToArray())
If Not IsDBNull(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_firmaFMZoll) AndAlso CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_firmaFMZoll) = 19 Then
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(19)
cbxFirma.changeItem(FIRMA.Firmengruppe)
Else
cbxFirma.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
End If
cbxSendungsvermerk.fillWithSQL("SELECT VermerkCodeId,Bezeichnung FROM [VermerkeCodes]", True, "AVISO", True)
cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sendung", "1"))
cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Mahnung", "2"))
cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("OP-Liste", "3"))
cbxTyp.changeItem("")
cbxFirma.Enabled = editall
btnDelete.Enabled = editall
initDGVMailvorlagen(cbxFirma._value,, cbxSpracheSelected._value)
End Sub
Private Sub initDGVMailvorlagen(Optional firma As String = "", Optional searchparam As String = "", Optional sprache As String = "")
lblWarning.Text = ""
Dim SQLString As String = "SELECT * FROM [tblTextkonserve] WHERE txt_kategorie = 'FRM_MNGR_MailText'"
Dim SQLWHere = ""
If firma <> "" Then
SQLWHere &= " AND txt_FIRMA = '" & firma & "'"
End If
If searchparam <> "" Then
SQLWHere &= " AND (txt_Bezeichnung like '%" & searchparam & "%' OR txt_Betreff like '%" & searchparam & "%')"
End If
If sprache <> "" Then
SQLWHere &= " AND (txt_Sprache = '" & sprache & "')"
End If
dgvMailvorlagen.SET_SQL(SQLString & SQLWHere, "FMZOLL", ,)
dgvMailvorlagen.LOAD()
If dgvMailvorlagen.Columns.Count < 1 Then Exit Sub
With dgvMailvorlagen
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.MultiSelect = False
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.Columns("txt_Id").Visible = False
.Columns("txt_kategorie").Visible = False
.Columns("txt_bezeichnung").HeaderText = "Bezeichnung"
.Columns("txt_bezeichnung").Width = 200
.Columns("txt_text").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("txt_text").HeaderText = "Text"
.Columns("txt_betreff").HeaderText = "Betreff"
.Columns("txt_betreff").Width = 150
.Columns("txt_sprache").HeaderText = "Sprache"
.Columns("txt_sprache").Width = 50
.Columns("txt_dynMailvorlage").HeaderText = "Mailvorlage"
.Columns("txt_firmaSig").Visible = False
.Columns("txt_FIRMA").HeaderText = "Firma"
.Columns("txt_FIRMA").Width = 150
.Columns("txt_letzteAenderung").HeaderText = "letzte Änderung"
.Columns("txt_letzteAenderung").Width = 100
.Columns("txt_letzteAenderungUser").HeaderText = "letzte Änderung durch"
.Columns("txt_letzteAenderungUser").Width = 75
.Columns("txt_sendungsvermerk").HeaderText = "Sendungsvermerk"
.Columns("txt_sendungsvermerkId").Visible = False
.Columns("txt_sendungsvermerkText").Visible = False
.Columns("txt_fixerEmpfaengerEmail").Visible = False
.Columns("txt_typ").Visible = False
End With
For Each row As DataGridViewRow In dgvMailvorlagen.Rows
If row.Cells("txt_firmaSig").Value IsNot DBNull.Value AndAlso IsNumeric(row.Cells("txt_firmaSig").Value) Then
If CInt(row.Cells("txt_firmaSig").Value) > 0 Then
Dim tmpFirma = New VERAG_PROG_ALLGEMEIN.cFirmen(row.Cells("txt_firmaSig").Value)
'row.Cells("txt_firmaSig").Value = tmpFirma.Firma_Bez.ToString
End If
End If
Next
End Sub
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
If checkIfFirmaIsFilled(True) = False Then Exit Sub
Dim input = InputBox("Bitte geben Sie die Bezeichnung der neuen Mailvorlage ein:", "Mailvorlage anlegen")
If input <> "" Then
If checkNameIsValid(input) Then
Dim txtkonserve As New cTextkonserve()
txtkonserve.txt_bezeichnung = input
txtkonserve.txt_kategorie = "FRM_MNGR_MailText"
txtkonserve.txt_dynMailvorlage = True
txtkonserve.txt_sprache = cbxSpracheSelected._value
txtkonserve.txt_text = " "
txtkonserve.txt_betreff = " "
txtkonserve.txt_FIRMA = cbxFirma.Text
txtkonserve.txt_firmaSig = 1
txtkonserve.txt_letzteAenderung = DateTime.Now
txtkonserve.txt_letzteAenderungUser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
If txtkonserve.SAVE() Then
initDGVMailvorlagen(cbxFirma._value)
End If
Else
MsgBox("Es existiert bereits ein Mailvorlage " & input & " für die Firma " & cbxFirma._value & "in der Sprache " & cbxSpracheSelected._value)
End If
Else
MsgBox("Keine Bezeichnung angegeben!")
End If
End Sub
Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
If dgvMailvorlagen.SelectedRows.Count > 0 Then
Dim txtKonserve As New cTextkonserve(dgvMailvorlagen.SelectedRows(0).Cells("txt_id").Value)
If vbYes = MsgBox("Möchten Sie diesen Mailvorlage " & txtKonserve.txt_bezeichnung & " (" & txtKonserve.txt_sprache & ")" & " in " & txtKonserve.txt_FIRMA & " wirklich löschen?", vbYesNo) Then
txtKonserve.DELETE(txtKonserve.txt_Id) ' delete funktion implementierten
initDGVMailvorlagen(cbxFirma._value)
End If
End If
End Sub
Private Function checkNameIsValid(name As String) As Boolean
If dgvMailvorlagen.Rows.Count = 0 Then Return True
If checkIfFirmaIsFilled(False) = False Then Return False
For Each row As DataGridViewRow In dgvMailvorlagen.Rows
If Not IsDBNull(row.Cells("txt_bezeichnung").Value) AndAlso Not IsDBNull(row.Cells("txt_FIRMA").Value) Then
If row.Cells("txt_bezeichnung").Value.ToLower = name.ToLower AndAlso row.Cells("txt_FIRMA").Value = cbxFirma._value Then
Return False
End If
End If
Next
Return True
End Function
Private Sub dgvMailvorlagen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvMailvorlagen.SelectionChanged
Try
If dgvMailvorlagen.SelectedRows.Count < 1 Then
mainPanel.Enabled = False
Exit Sub
Else
mainPanel.Enabled = True
End If
txtkonserve = New cTextkonserve(dgvMailvorlagen.SelectedRows(0).Cells("txt_id").Value)
rtb_Emailtext.Text = txtkonserve.txt_text
txtBezeichnung.Text = txtkonserve.txt_bezeichnung
txtBetreff.Text = txtkonserve.txt_betreff
cbxAktiv.Checked = txtkonserve.txt_dynMailvorlage
cboSprache._value = txtkonserve.txt_sprache
rtb_Emailtext.Text = h2t.ToText(txtkonserve.txt_text)
rtb_txthtml.Text = txtkonserve.txt_text
cboFirmensignatur.changeItem(txtkonserve.txt_firmaSig)
cbxFirmaChange.changeItem(txtkonserve.txt_FIRMA)
cbSendungsvermerk.Checked = txtkonserve.txt_sendungsvermerk
cbxSendungsvermerk.changeItem(txtkonserve.txt_sendungsvermerkId)
txtSendungsvermerk.Text = txtkonserve.txt_sendungsvermerkText
txtfixeEmail.Text = txtkonserve.txt_fixerEmpfaengerEmail
If txtkonserve.txt_typ IsNot Nothing Then
cbxTyp.changeItem(txtkonserve.txt_typ, True)
Else
cbxTyp.changeItem("")
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
checkIfFirmaIsFilled(False)
Dim txtKS As New cTextkonserve(dgvMailvorlagen.SelectedRows(0).Cells("txt_id").Value)
If checkFields() = False Then Exit Sub
txtKS.txt_bezeichnung = txtBezeichnung.Text
txtKS.txt_betreff = txtBetreff.Text
txtKS.txt_dynMailvorlage = cbxAktiv.Checked
txtKS.txt_sprache = cboSprache._value
txtKS.txt_text = insertlinebreaks(rtb_Emailtext.Text)
txtKS.txt_FIRMA = cbxFirmaChange._value
txtKS.txt_firmaSig = cboFirmensignatur._value
txtKS.txt_letzteAenderung = DateTime.Now
txtKS.txt_letzteAenderungUser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
txtKS.txt_fixerEmpfaengerEmail = txtfixeEmail.Text
txtKS.txt_sendungsvermerk = cbSendungsvermerk.Checked
txtKS.txt_typ = cbxTyp._value
If cbSendungsvermerk.Checked AndAlso cbxSendungsvermerk._value = "" Then MsgBox("SendungsvermerksID hinterlegen!") : Exit Sub
If cbSendungsvermerk.Checked AndAlso txtSendungsvermerk.Text = "" Then MsgBox("Sendungsvermerk hinterlegen!") : Exit Sub
If cbSendungsvermerk.Checked Then
txtKS.txt_sendungsvermerkId = cbxSendungsvermerk._value
txtKS.txt_sendungsvermerkText = txtSendungsvermerk.Text
End If
txtKS.SAVE()
dgvMailvorlagen.GetOrder()
initDGVMailvorlagen(cbxFirma._value)
dgvMailvorlagen.SetOrder()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub cbxFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxFirma.SelectedValueChanged, cbxSpracheSelected.SelectedValueChanged
Try
dgvMailvorlagen.GetOrder()
initDGVMailvorlagen(cbxFirma._value, txtSuche.Text, cbxSpracheSelected._value)
dgvMailvorlagen.SetOrder()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Function checkIfFirmaIsFilled(initialSave As Boolean, Optional setWarning As Boolean = True)
If cbxFirma._value = "" Then
If ((dgvMailvorlagen.SelectedRows(0).Cells("txt_FIRMA").Value Is DBNull.Value Or dgvMailvorlagen.SelectedRows(0).Cells("txt_FIRMA").Value Is Nothing Or dgvMailvorlagen.SelectedRows(0).Cells("txt_FIRMA").Value = "") Or initialSave = True) Then 'And initialSave = False ???
If setWarning Then
lblWarning.Text = "Bitte Firma auswählen!"
Else
lblWarning.Text = ""
End If
Return False
End If
lblWarning.Text = ""
Return True
ElseIf cbxSpracheSelected._value = "" Then
If ((dgvMailvorlagen.SelectedRows(0).Cells("txt_sprache").Value Is DBNull.Value Or dgvMailvorlagen.SelectedRows(0).Cells("txt_sprache").Value Is Nothing Or dgvMailvorlagen.SelectedRows(0).Cells("txt_sprache").Value = "") Or initialSave = True) Then 'And initialSave = False ???
If setWarning Then
lblWarning.Text = "Bitte Sprache auswählen!"
Else
lblWarning.Text = ""
End If
Return False
End If
lblWarning.Text = ""
Return True
End If
Return True
End Function
Private Function checkFields() As Boolean
lblWarning.Text = ""
Return True
End Function
Private Sub txtSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSuche.KeyDown
If e.KeyCode = Keys.Enter Then
initDGVMailvorlagen(cbxFirma._value, txtSuche.Text, cboSprache._value)
e.Handled = True
End If
End Sub
Private Sub rtb_Emailtext_TextChanged(sender As Object, e As EventArgs) Handles rtb_Emailtext.TextChanged
Dim wordcount = rtb_Emailtext.TextLength
lblWordcount.Text = "(" & wordcount & "/65500)"
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
If txtfixeEmail.Text <> "" Then Mail.To = txtfixeEmail.Text
If rtb_Emailtext.Text <> "" AndAlso cboSprache._value <> "" Then
Dim TextHTML = ""
TextHTML &= rtb_txthtml.Text
TextHTML &= "
"
TextHTML &= "
"
TextHTML &= "Mit freundlichen Grüßen
"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
"
TextHTML &= "
"
TextHTML &= cFakturierung.getSignature(cboSprache._value, cboFirmensignatur._value, True, True)
Mail.HTMLBody = "