Files
SDL/SDL/kunden/usrCntlKundenBesonderheiten.vb
2024-07-22 09:44:27 +02:00

241 lines
9.8 KiB
VB.net

Imports DocumentFormat.OpenXml.Drawing
Imports DocumentFormat.OpenXml.Drawing.Charts
Public Class usrCntlKundenBesonderheiten
Dim kdNr As Integer = -1
Dim loaded = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Protected Overrides Sub OnVisibleChanged(ByVal e As EventArgs)
doStyle()
End Sub
Sub doStyle()
With dgvBesonderheiten
If .Columns.Count = 0 Then dgvBesonderheiten.Columns.Clear() : Exit Sub
For Each c In .Columns
c.HeaderCell.Style.ForeColor = Color.White
c.HeaderCell.Style.BackColor = Color.FromArgb(0, 54, 128)
Next
For Each r As DataGridViewRow In .Rows
If r.Cells("kdb_hervorheben").Value Then
r.DefaultCellStyle.BackColor = Color.LightYellow
End If
If r.Cells("kdb_history").Value Then
r.DefaultCellStyle.BackColor = Color.LightGray
End If
Next
End With
End Sub
Private Sub usrCntlKundenBesonderheiten_Load(sender As Object, e As EventArgs) Handles Me.Load
'initDGV()
cboKategorie.fillWithSQL("SELECT [kdbkat_kategorie],[kdbkat_bezeichnung] FROM [tblKundenBesonderheiten_Kategorien] WHERE (isnull(kdbkat_Firma,'')='' OR kdbkat_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' ) ", False, "FMZOLL", True)
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KUNDEN_Besonderheiten_Bearbeiten", "SDL") Then
showhideOptions(True)
End If
loaded = True
End Sub
Sub init(kdNr, Optional Kategorie = "", Optional simpleView = False, Optional preferedKategorie = "", Optional preferedKategorieOtherIN = "")
loaded = False
If simpleView Then Panel1.Height = 0 : Panel1.Visible = False 'showhideOptions(False)
cboKategorie.changeItem(Kategorie)
cbx.Checked = False
initDGV(kdNr, simpleView, preferedKategorie, preferedKategorieOtherIN)
loaded = True
End Sub
Sub showhideOptions(visible)
cbx.Visible = visible
btn.Visible = visible
cboKategorie.Visible = visible
lbl.Visible = visible
End Sub
Private Sub initDGV_CLMN()
Try
With dgvBesonderheiten
If .Columns.Count = 0 Then dgvBesonderheiten.Columns.Clear() : Exit Sub
For Each r As DataGridViewRow In .Rows
' r.Cells("clmnRufzeichen").Value = ""
Select Case r.Cells("kdb_kategorie").Value
Case "BH" : If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "BH" Then r.Cells("clmnRufzeichen").Value = "!"
Case "VERR"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG
Case "VERR", "BH" : r.Cells("clmnRufzeichen").Value = "!"
End Select
Case "ZOLL" : If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ZOLL" Then r.Cells("clmnRufzeichen").Value = "!"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG
Case "ZOLL", "QS", "FISK" : r.Cells("clmnRufzeichen").Value = "!"
End Select
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERIMEX" Then r.Cells("clmnRufzeichen").Value = "!"
Case "VERIMEX" : If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERIMEX" Then r.Cells("clmnRufzeichen").Value = "!!"
End Select
Next
End With
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub initDGV(Optional kdnrTmp = -1, Optional simpleView = False, Optional preferedKategorie = "", Optional preferedKategorieOtherIN = "")
'If dgvBesonderheiten IsNot Nothing Then Exit Sub
If dgvBesonderheiten.Columns IsNot Nothing AndAlso dgvBesonderheiten.Columns.Count > 0 Then
Try
dgvBesonderheiten.Columns.Clear()
Catch
End Try
End If
If kdnrTmp > 0 Then Me.kdNr = kdnrTmp
If kdNr <= 0 Then Exit Sub
With dgvBesonderheiten
Dim loadedTmp = loaded
Dim where = ""
If cboKategorie._value <> "" Then
where &= " AND kdb_kategorie='" & cboKategorie._value & "' "
End If
If Not cbx.Checked Or Not cbx.Visible Then
where &= " and kdb_history=0 "
End If
Dim order = " ORDER BY kdb_AenderungAm desc"
Dim katIN = " "
If preferedKategorie <> "" Then
order = " ORDER BY CASE WHEN kdb_kategorie = '" & preferedKategorie & "' THEN 1 ELSE 2 END ASC, kdb_AenderungAm desc "
If preferedKategorieOtherIN <> "" Then katIN = " AND kdb_kategorie IN(" & preferedKategorieOtherIN & ",'" & preferedKategorie & "') "
End If
.DataSource = SQL.loadDgvBySql("Select kdb_id, kdb_AenderungAm,kdb_text,kdb_mitId,kdb_mitName,kdb_EingetragenAm,kdb_kategorie, kdb_hervorheben,kdb_history FROM [tblKundenBesonderheiten] where kdb_KundenNr=" & kdNr & " And kdb_visible=1 " & katIN & where & " " & order, "FMZOLL")
If .Columns.Count = 0 Then dgvBesonderheiten.Columns.Clear() : Exit Sub
.ClearSelection()
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
.Columns("kdb_id").Visible = False
.Columns("kdb_hervorheben").Visible = False
.Columns("kdb_EingetragenAm").Visible = False
.Columns("kdb_history").Visible = False
.Columns("kdb_mitId").Visible = False
.Columns("kdb_kategorie").Width = 65
.Columns("kdb_kategorie").HeaderText = "Art"
.Columns("kdb_text").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("kdb_text").HeaderText = "Text"
.Columns("kdb_mitName").Width = 60
.Columns("kdb_mitName").HeaderText = "SB"
.Columns("kdb_AenderungAm").Width = 65
.Columns("kdb_AenderungAm").HeaderText = "Datum"
.Columns("kdb_AenderungAm").DefaultCellStyle.Format = "dd.MM.yyyy"
.EnableHeadersVisualStyles = False
doStyle()
'For Each c In .Columns
' c.HeaderCell.Style.ForeColor = Color.White
' c.HeaderCell.Style.BackColor = Color.FromArgb(0, 54, 128)
'Next
'For Each r As DataGridViewRow In .Rows
' If r.Cells("kdb_hervorheben").Value Then
' r.DefaultCellStyle.BackColor = Color.LightYellow
' End If
' If r.Cells("kdb_history").Value Then
' r.DefaultCellStyle.BackColor = Color.LightGray
' End If
'Next
If simpleView Then
.Columns("kdb_kategorie").Visible = False
.Columns("kdb_mitName").Visible = False
.ColumnHeadersVisible = False
End If
Dim colm As New DataGridViewTextBoxColumn
colm.HeaderText = ""
colm.Width = 20
colm.Name = "clmnRufzeichen"
colm.DefaultCellStyle.ForeColor = Color.Red
colm.DefaultCellStyle.Font = New Font(.DefaultCellStyle.Font.FontFamily, .DefaultCellStyle.Font.Size, FontStyle.Bold)
.Columns.Insert(2, colm)
' .GetOrder()
initDGV_CLMN()
End With
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Dim f As New frmKundenBesonderheiten_Add(kdNr)
f.ShowDialog()
initDGV()
End Sub
Private Sub dgvBesonderheiten_SelectionChanged(sender As Object, e As EventArgs) Handles dgvBesonderheiten.SelectionChanged
dgvBesonderheiten.ClearSelection()
End Sub
Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKategorie.SelectedIndexChanged, cbx.CheckedChanged
If loaded Then initDGV()
End Sub
Dim TMP_kdb_id = -1
Private Sub dgvBesonderheiten_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvBesonderheiten.CellMouseClick
If e.Button = MouseButtons.Right Then
If e.RowIndex >= 0 Then
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KUNDEN_Besonderheiten_Bearbeiten", "SDL") Then
TMP_kdb_id = dgvBesonderheiten.Rows(e.RowIndex).Cells("kdb_id").Value
cntxt.Show(Cursor.Position)
End If
End If
End If
End Sub
Private Sub BearbetienToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BearbetienToolStripMenuItem.Click
If TMP_kdb_id < 0 Then Exit Sub
Dim f As New frmKundenBesonderheiten_Add(TMP_kdb_id, kdNr)
f.ShowDialog()
TMP_kdb_id = -1
initDGV()
End Sub
Private Sub LöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LöschenToolStripMenuItem.Click
If TMP_kdb_id < 0 Then Exit Sub
If vbYes = MsgBox("Möchten Sie den Eintrag wirklich auf 'gelöscht' setzten?", vbYesNoCancel) Then
Dim KD_BES As New VERAG_PROG_ALLGEMEIN.cKundenBesonderheiten(TMP_kdb_id)
KD_BES.kdb_history = True
Dim delStr = "*Gelöscht: "
If Not KD_BES.kdb_text.Contains(delStr) Then KD_BES.kdb_text = delStr & KD_BES.kdb_text
KD_BES.SAVE()
TMP_kdb_id = -1
initDGV()
End If
End Sub
Private Sub dgvBesonderheiten_Paint(sender As Object, e As PaintEventArgs) Handles dgvBesonderheiten.Paint
initDGV_CLMN()
doStyle()
End Sub
End Class