Files
SDL/VERAG_PROG_ALLGEMEIN/AuditFlow/frmFirmenuebersicht.vb
2026-07-27 18:00:05 +02:00

212 lines
6.7 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
Private Sub frminterneEmailBenachrichtigungen_Load(sender As Object, e As EventArgs) Handles Me.Load
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
loadDGVMailbenachrichtigungen()
End Sub
Sub loadDGVMailbenachrichtigungen()
Try
Me.Cursor = Cursors.WaitCursor
Dim TopMax = If(IsNumeric(MyTextBox2.Text), " TOP " & MyTextBox2.Text, "")
Dim sqlstr As String = ""
sqlstr &= " Select [Firma_ID] ,[Firma_Bez],Replace([Firma_Firmenbuch],'Firmenbuch: ', '') as Firma_Firmenbuch,Replace([Firma_UID],'UID: ', '') as Firma_UID ,Replace([Firma_EORI],'EORI: ', '') as Firma_EORI,[Firma_Bankverbindung1],[Firma_BLZ1],[Firma_KTO1],Replace([Firma_IBAN1],'IBAN: ', '') as Firma_IBAN1, Replace([Firma_BIC1],'BIC: ', '') as Firma_BIC1,[Firma_Bankverbindung2],[Firma_BLZ2],[Firma_KTO2],[Firma_IBAN2],[Firma_BIC2],[Firma_Ort],[Firma_Straße],[Firma_Telefon],[Firma_Telefax],[Firma_E-Mail],[Firma_Webadresse]
,[Firma_LandKz],[Firmengruppe],[Firma_Warenort],[Firma_E_Mail_Mahnungen],[Firma_Steuernummer] ,[Firma_PLZ],[Firma_Logo],[Firma_Logo_Erweitert] from tblFirma "
With dgvFirmen
.SET_SQL(sqlstr, "FMZOLL")
.LOAD()
showDGVPruefungsobjekte()
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()
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("inaktivMA").Visible = False
.Columns("Firma_ID").Width = 40
'.Columns("mb_object").HeaderText = "Benachrichtigung"
'.Columns("Mitarbeiter").MinimumWidth = 100
'.Columns("Mitarbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'.Columns("mb_beschreibung").MinimumWidth = 100
'.Columns("mb_beschreibung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'.Columns("mb_beschreibung").HeaderText = "Info"
'.Columns("Emails").MinimumWidth = 100
'.Columns("Emails").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'.Columns("Emails").HeaderText = "EMail an"
'.Columns("Anzahl").Width = 50
'.Columns("Anzahl").HeaderText = "# Empf."
'.Columns("Firma_Bez").Width = 150
'.Columns("Firma_Bez").HeaderText = "Firma"
'.Columns("mb_aktiv").Width = 40
'.Columns("mb_aktiv").HeaderText = "Aktiv"
For Each col As DataGridViewColumn In dgvFirmen.Columns
col.HeaderText = col.HeaderText.Replace("Firma_", "")
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
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)
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
End Class