392 lines
14 KiB
VB.net
392 lines
14 KiB
VB.net
Imports System.Windows.Controls
|
|
Imports Microsoft.Office.Interop
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmdynMailvorlage
|
|
|
|
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())
|
|
|
|
cbxFirma.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
|
|
|
|
cbxSendungsvermerk.fillWithSQL("SELECT VermerkCodeId,Bezeichnung FROM [VermerkeCodes]", True, "AVISO", True)
|
|
|
|
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
|
|
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.deleteWarenort(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)
|
|
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
|
|
|
|
|
|
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_sendungsvermerk = cbSendungsvermerk.Checked
|
|
|
|
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 rtb_Emailtext.Text <> "" AndAlso cboSprache._value <> "" Then
|
|
|
|
Dim TextHTML = ""
|
|
TextHTML &= insertlinebreaks(rtb_Emailtext.Text)
|
|
TextHTML &= "<br>"
|
|
TextHTML &= "<br>"
|
|
TextHTML &= "Mit freundlichen Grüßen<br>"
|
|
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
|
|
TextHTML &= "<br>"
|
|
TextHTML &= cFakturierung.getSignature(cboSprache._value, cboFirmensignatur._value, True, True)
|
|
|
|
|
|
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
|
|
|
|
Mail.Subject = txtBetreff.Text
|
|
|
|
End If
|
|
|
|
Mail.Display()
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Private Function insertlinebreaks(text As String) As String
|
|
|
|
Return text.ToString.Replace(vbLf, vbLf & "<br>")
|
|
|
|
End Function
|
|
|
|
Private Sub cbSendungsvermerk_CheckedChanged(sender As Object, e As EventArgs) Handles cbSendungsvermerk.CheckedChanged
|
|
|
|
txtSendungsvermerk.Visible = cbSendungsvermerk.Checked
|
|
cbxSendungsvermerk.Visible = cbSendungsvermerk.Checked
|
|
Label10.Visible = cbSendungsvermerk.Checked
|
|
Label9.Visible = cbSendungsvermerk.Checked
|
|
|
|
End Sub
|
|
End Class |