Files
SDL/VERAG_PROG_ALLGEMEIN/AuditFlow/frmFirmenuebersicht.vb

274 lines
10 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Public Class frmFirmenuebersicht
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt As DataTable
Private Sub frminterneEmailBenachrichtigungen_Load(sender As Object, e As EventArgs) Handles Me.Load
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
loadDGVMailbenachrichtigungen()
End Sub
Sub loadDGVMailbenachrichtigungen()
Try
Me.Cursor = Cursors.WaitCursor
Dim sqlstr As String = ""
sqlstr &= " Select [Firma_ID] ,[Firma_Bez],[Firma_Straße],[Firma_PLZ],[Firma_Ort],[Firma_LandKz] as Land,replace([Firma_Telefon],'Tel. ','') as Firma_Telefon ,replace([Firma_Telefax],'Fax ','') as Firma_Telefax ,Replace([Firma_UID],'UID: ', '') as Firma_UID ,Replace([Firma_EORI],'EORI: ', '') as Firma_EORI,
[Firma_Bankverbindung1],Replace([Firma_IBAN1],'IBAN: ', '') as Firma_IBAN1, Replace([Firma_BIC1],'BIC: ', '') as Firma_BIC1,[Firma_Bankverbindung2],[Firma_IBAN2],[Firma_BIC2],[Firma_E-Mail],
[Firma_Webadresse],[Firmengruppe],[Firma_Warenort],[Firma_E_Mail_Mahnungen],[Firma_E_Mail_Fakturierung],[Firma_Steuernummer] ,Replace([Firma_Firmenbuch],'Firmenbuch: ', '') as Firma_Firmenbuch,[Firma_Logo],[Firma_Logo_Erweitert] from tblFirma "
Dim sqlstr_Mailsettings As String = " select mail_username as 'user',mail_password as PW, mail_host as Host, mail_port as Port,mail_kindOfMail, mail_firmaID from tblMailSettings"
dt = SQL.loadDgvBySql(sqlstr_Mailsettings, "ADMIN")
With dgvFirmen
.SET_SQL(sqlstr, "FMZOLL")
.LOAD()
showDGVPruefungsobjekte(dt)
End With
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, "")
End Try
Me.Cursor = Cursors.Default
End Sub
Sub showDGVPruefungsobjekte(dt As DataTable)
With dgvFirmen
If .ColumnCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("Firma_Logo").Visible = False
.Columns("Firma_Logo_Erweitert").Visible = False
.Columns("Firma_Bankverbindung1").Visible = False
.Columns("Firma_IBAN1").Visible = False
.Columns("Firma_BIC1").Visible = False
.Columns("Firma_Bankverbindung2").Visible = False
.Columns("Firma_BIC2").Visible = False
.Columns("Firma_IBAN2").Visible = False
'.Columns("Firma_E-Mail").Visible = False
.Columns("Firma_E_Mail_Mahnungen").Visible = False
.Columns("Firma_E_Mail_Fakturierung").Visible = False
.Columns("Firma_ID").Width = 30
.Columns("Firma_Warenort").Width = 60
.Columns("Firma_PLZ").Width = 60
.Columns("Land").Width = 40
.Columns("Firma_Bez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
If Not dgvFirmen.Columns.Contains("EmailEinstellungen") Then
Dim col As New DataGridViewCheckBoxColumn()
col.Name = "EmailEinstellungen"
col.HeaderText = "E-Mail-Settings"
col.ReadOnly = True
dgvFirmen.Columns.Add(col)
End If
For Each col As DataGridViewColumn In dgvFirmen.Columns
col.HeaderText = col.HeaderText.Replace("Firma_", "")
Next
Dim mailFirmaIds As New HashSet(Of Integer)
For Each row As DataRow In dt.Rows
If Not IsDBNull(row("mail_firmaId")) Then
mailFirmaIds.Add(CInt(row("mail_firmaId")))
End If
Next
For Each r As DataGridViewRow In dgvFirmen.Rows
If r.IsNewRow Then Continue For
If r.Cells("Firma_ID").Value Is Nothing OrElse IsDBNull(r.Cells("Firma_ID").Value) Then Continue For
Dim firmaId As Integer = CInt(r.Cells("Firma_ID").Value)
r.Cells("EmailEinstellungen").Value = mailFirmaIds.Contains(firmaId)
Next
End With
End Sub
Private Sub dgvFirmen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvFirmen.SelectionChanged
If dgvFirmen.SelectedRows.Count = 1 Then
pbLogo.SizeMode = PictureBoxSizeMode.Zoom
pbLogoMail.SizeMode = PictureBoxSizeMode.Zoom
pbLogo.Image = BytesToImage(dgvFirmen.SelectedRows(0).Cells("Firma_Logo").Value)
pbLogoMail.Image = BytesToImage(dgvFirmen.SelectedRows(0).Cells("Firma_Logo_Erweitert").Value)
lblFirma.Text = dgvFirmen.SelectedRows(0).Cells("Firma_Bez").Value
lblBank1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung1").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung1").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung1").Value.ToString())
lblIban1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_IBAN1").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_IBAN1").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_IBAN1").Value.ToString())
lblBic1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_BIC1").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_BIC1").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_BIC1").Value.ToString())
lblBank2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung2").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung2").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung2").Value.ToString())
lblIban2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_IBAN2").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_IBAN2").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_IBAN2").Value.ToString())
lblBic2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_BIC2").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_BIC2").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_BIC2").Value.ToString())
lblMail1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Fakturierung").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Fakturierung").Value Is Nothing, "-", dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Fakturierung").Value.ToString()) & " (Fakturierung)"
lblMail2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Mahnungen").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Mahnungen").Value Is Nothing, "-", dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Mahnungen").Value.ToString()) & " (Mahnungen)"
Dim firmaID = dgvFirmen.SelectedRows(0).Cells("Firma_ID").Value
If firmaID IsNot Nothing AndAlso IsNumeric(firmaID) Then
Dim rows() As DataRow = dt.Select("mail_firmaID = " & firmaID.ToString())
If rows.Length > 0 Then
dgvEmailSettings.DataSource = rows.CopyToDataTable()
dgvEmailSettings.Columns("mail_firmaID").Visible = False
Else
dgvEmailSettings.DataSource = Nothing
End If
End If
End If
End Sub
Private Function BytesToImage(value As Object) As Image
If value Is Nothing OrElse IsDBNull(value) Then
Return Nothing
End If
Dim bytes As Byte() = TryCast(value, Byte())
If bytes Is Nothing OrElse bytes.Length = 0 Then
Return Nothing
End If
Try
Using ms As New MemoryStream(bytes)
Using img As Image = Image.FromStream(ms, True, True)
Return New Bitmap(img)
End Using
End Using
Catch ex As ArgumentException
'MessageBox.Show("Die gespeicherten Daten sind kein gültiges Bild." &
' vbCrLf &
' "Bytes: " & bytes.Length)
Return Nothing
End Try
End Function
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click
If dgvFirmen.SelectedRows.Count <> 1 Then Exit Sub
Dim Firma As New cFirmen(CInt(dgvFirmen.SelectedRows(0).Cells("Firma_ID").Value))
Dim bild As Byte() = BildDateiLaden()
If bild Is Nothing Then Exit Sub
Dim spalte As String = ""
Dim vorhandenesBild As Byte() = Nothing
Select Case DirectCast(sender, PictureBox).Name
Case "PictureBox1"
spalte = "Firma_Logo"
vorhandenesBild = Firma.Firma_Logo
Case "PictureBox2"
spalte = "Firma_Logo_Erweitert"
vorhandenesBild = Firma.Firma_Logo_Erweitert
End Select
If vorhandenesBild IsNot Nothing AndAlso vorhandenesBild.Length > 0 Then
Dim antwort = MessageBox.Show(
"Es ist bereits ein Logo vorhanden." & vbCrLf & "Möchten Sie dieses überschreiben?", "Logo überschreiben", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If antwort = DialogResult.No Then
Exit Sub
End If
End If
Using con As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
$"UPDATE tblFirma SET {spalte}=@Bild WHERE Firma_ID=@Firma_ID", con)
cmd.Parameters.Add("@Bild", SqlDbType.VarBinary, -1).Value = bild
cmd.Parameters.Add("@Firma_ID", SqlDbType.Int).Value = Firma.Firma_ID
cmd.ExecuteNonQuery()
End Using
End Using
MessageBox.Show("Logo wurde gespeichert.", "Erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information)
loadDGVMailbenachrichtigungen()
End Sub
Public Function BildDateiLaden() As Byte()
Using ofd As New OpenFileDialog()
ofd.Title = "Bild auswählen"
ofd.Filter = "Bilddateien|*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.webp|Alle Dateien|*.*"
ofd.Multiselect = False
If ofd.ShowDialog() = DialogResult.OK Then
Return File.ReadAllBytes(ofd.FileName)
End If
End Using
Return Nothing
End Function
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
End Sub
End Class