Files
ADMIN/UID/Dienstplan/frmSchichtenZeiten.vb
2023-10-31 17:08:04 +01:00

292 lines
13 KiB
VB.net

Imports System.Windows
Imports Hardcodet.Wpf.TaskbarNotification.Interop
Public Class frmSchichtenZeiten
Dim ADMIN As New cOptionenDAL
Dim DP As New cDienstplan
Public niederlassung As String = ""
Private Sub frmSchichtenZeiten_Load(sender As Object, e As EventArgs) Handles Me.Load
initSchichten()
End Sub
Sub initSchichten()
With dgvSchihten
.DataSource = ADMIN.AnzeigeTabelle(" SELECT dedet_id,dedet_info FROM [tblDienstplanEintraegeDetails] WHERE [dedet_niederlassung] = '" & niederlassung.ToUpper & "' ORDER BY dedet_reihenfolge")
If .Columns.Count = 0 Then Exit Sub
.Columns("dedet_id").Visible = False
.Columns("dedet_info").HeaderText = "Bezeichnung"
.Columns("dedet_info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End With
End Sub
Private Sub dgvSchihten_SelectionChanged(sender As Object, e As EventArgs) Handles dgvSchihten.SelectionChanged
cbxRotMo.Checked = False
txtRotVonMo.Text = "00:00"
txtRotBisMo.Text = "00:00"
txtRotPauseMo.Text = "0"
cbxRotDi.Checked = False
txtRotVonDi.Text = "00:00"
txtRotBisDi.Text = "00:00"
txtRotPauseDi.Text = "0"
cbxRotMi.Checked = False
txtRotVonMi.Text = "00:00"
txtRotBisMi.Text = "00:00"
txtRotPauseMi.Text = "0"
cbxRotDo.Checked = False
txtRotVonDo.Text = "00:00"
txtRotBisDo.Text = "00:00"
txtRotPauseDo.Text = "0"
cbxRotFr.Checked = False
txtRotVonFr.Text = "00:00"
txtRotBisFr.Text = "00:00"
txtRotPauseFr.Text = "0"
cbxRotSa.Checked = False
txtRotVonSa.Text = "00:00"
txtRotBisSa.Text = "00:00"
txtRotPauseSa.Text = "0"
cbxRotSo.Checked = False
txtRotVonSo.Text = "00:00"
txtRotBisSo.Text = "00:00"
txtRotPauseSo.Text = "0"
If dgvSchihten.SelectedRows.Count > 0 Then
Dim SCHICHT As New cDienstplanSchicht(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value)
For Each z In SCHICHT.ZEITEN
Select Case z.dsz_woTag
Case "MO" : cbxRotMo.Checked = True
txtRotVonMo.Text = z.dsz_von
txtRotBisMo.Text = z.dsz_bis
txtRotPauseMo.Text = z.dsz_pause
Case "DI" : cbxRotDi.Checked = True
txtRotVonDi.Text = z.dsz_von
txtRotBisDi.Text = z.dsz_bis
txtRotPauseDi.Text = z.dsz_pause
Case "MI" : cbxRotMi.Checked = True
txtRotVonMi.Text = z.dsz_von
txtRotBisMi.Text = z.dsz_bis
txtRotPauseMi.Text = z.dsz_pause
Case "DO" : cbxRotDo.Checked = True
txtRotVonDo.Text = z.dsz_von
txtRotBisDo.Text = z.dsz_bis
txtRotPauseDo.Text = z.dsz_pause
Case "FR" : cbxRotFr.Checked = True
txtRotVonFr.Text = z.dsz_von
txtRotBisFr.Text = z.dsz_bis
txtRotPauseFr.Text = z.dsz_pause
Case "SA" : cbxRotSa.Checked = True
txtRotVonSa.Text = z.dsz_von
txtRotBisSa.Text = z.dsz_bis
txtRotPauseSa.Text = z.dsz_pause
Case "SO" : cbxRotSo.Checked = True
txtRotVonSo.Text = z.dsz_von
txtRotBisSo.Text = z.dsz_bis
txtRotPauseSo.Text = z.dsz_pause
End Select
Next
cbxBenutzerdefinierteSchicht.Checked = SCHICHT.dedet_benutzerdefinierteSchicht
cbxSchichtArbeitszeit.Checked = SCHICHT.dedet_stdWieArbeitszeit
txtDPBezeichnung.Text = SCHICHT.dedet_bezeichnungDP
txtProzent.Text = SCHICHT.dedet_ProzentGrafik
txtExcelBezeichnung.Text = SCHICHT.dedet_bezeichnungExcel
txtExcelBezeichnung2.Text = SCHICHT.dedet_bezeichnungExcel2
txtExcelBezeichnung3.Text = SCHICHT.dedet_bezeichnungExcel3
txtExcelZeilen.Text = SCHICHT.dedet_ZeilenExcel
txtReihenfolge.Text = SCHICHT.dedet_reihenfolge
cbxTagesSchichtWechsel.Checked = SCHICHT.dedet_TagesWechsel
txtSchichtWechselZu.Text = SCHICHT.dedet_WechselZuSchicht
txtHotKey.Text = SCHICHT.dedet_hotKey
If SCHICHT.dedet_bgAlternativeFarbe IsNot Nothing Then
Button2.BackColor = ColorTranslator.FromHtml(SCHICHT.dedet_bgAlternativeFarbe)
CheckBox1.Checked = True
Else
Button2.BackColor = Color.Black
CheckBox1.Checked = False
End If
txtExcelMonat.Text = SCHICHT.dedet_ExcelMonatBezeichnung
cbxAktiv.Checked = SCHICHT.dedet_Aktiv
txtZusatzAL.Text = SCHICHT.dedet_bezLeiter
cbxSplitschicht.Checked = SCHICHT.dedet_Splitschicht
cbxHauptsplitschicht.Checked = SCHICHT.dedet_Hauptsplitschicht
cbxHauptsplitschicht.Checked = SCHICHT.dedet_Hauptsplitschicht
cbxSplitschicht.Checked = SCHICHT.dedet_Splitschicht
If SCHICHT.dedet_ExcelBgFarbe IsNot Nothing Then
btnExcelColor.BackColor = ColorTranslator.FromHtml(SCHICHT.dedet_ExcelBgFarbe)
CheckBox2.Checked = True
Else
btnExcelColor.BackColor = Color.Black
CheckBox2.Checked = False
End If
If SCHICHT.dedet_ExcelMonatFarbe IsNot Nothing Then
frbBGExcelMonat.BackColor = ColorTranslator.FromHtml(SCHICHT.dedet_ExcelMonatFarbe)
CheckBox3.Checked = True
Else
btnExcelColor.BackColor = Color.Black
CheckBox3.Checked = False
End If
End If
End Sub
Private Sub btnSpeichern_Click(sender As Object, e As EventArgs) Handles btnSpeichern.Click
If dgvSchihten.SelectedRows.Count > 0 Then
DP.delDienstTeilzeitByDedetId(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value)
If cbxRotMo.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonMo.Text, txtRotBisMo.Text, txtRotPauseMo.Text, "MO")
If cbxRotDi.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonDi.Text, txtRotBisDi.Text, txtRotPauseDi.Text, "DI")
If cbxRotMi.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonMi.Text, txtRotBisMi.Text, txtRotPauseMi.Text, "MI")
If cbxRotDo.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonDo.Text, txtRotBisDo.Text, txtRotPauseDo.Text, "DO")
If cbxRotFr.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonFr.Text, txtRotBisFr.Text, txtRotPauseFr.Text, "FR")
If cbxRotSa.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonSa.Text, txtRotBisSa.Text, txtRotPauseSa.Text, "SA")
If cbxRotSo.Checked Then DP.insertDienstSchichtZeit(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtRotVonSo.Text, txtRotBisSo.Text, txtRotPauseSo.Text, "SO")
Dim bg As Object
If CheckBox1.Checked Then
bg = ColorTranslator.ToHtml(Button2.BackColor)
Else
bg = DBNull.Value
End If
Dim bgExcel As Object
If CheckBox2.Checked Then
bgExcel = ColorTranslator.ToHtml(btnExcelColor.BackColor)
Else
bgExcel = DBNull.Value
End If
Dim bgExcelMonat As Object
If CheckBox3.Checked Then
bgExcelMonat = ColorTranslator.ToHtml(frbBGExcelMonat.BackColor)
Else
bgExcelMonat = DBNull.Value
End If
DP.updateEintraegeDetails_Benuterdef(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value, txtDPBezeichnung.Text, txtProzent.Text, txtExcelBezeichnung.Text, txtExcelBezeichnung2.Text, txtExcelBezeichnung3.Text, txtExcelZeilen.Text, cbxBenutzerdefinierteSchicht.Checked, cbxSchichtArbeitszeit.Checked,
IIf(IsNumeric(txtReihenfolge.Text), txtReihenfolge.Text, 50), cbxTagesSchichtWechsel.Checked, txtSchichtWechselZu.Text, txtHotKey.Text, bg, bgExcel, txtZusatzAL.Text, bgExcelMonat, txtExcelMonat.Text, cbxAktiv.Checked, cbxSplitschicht.Checked, cbxHauptsplitschicht.Checked)
End If
' d.dedet_bezeichnungDP = dr.Item("dedet_bezeichnungDP")
' d.dedet_ProzentGrafik = dr.Item("dedet_ProzentGrafik")
'' d.dedet_bezeichnungExcel = dr.Item("dedet_bezeichnungExcel")
' d.dedet_ZeilenExcel = dr.Item("dedet_ZeilenExcel")
End Sub
Private Sub cbxBenutzerdefinierteSchicht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxBenutzerdefinierteSchicht.CheckedChanged
pnl.Enabled = cbxBenutzerdefinierteSchicht.Checked
If sender.checked Then
cbxSchichtArbeitszeit.Checked = False
cbxSchichtArbeitszeit.Enabled = False
Else
cbxSchichtArbeitszeit.Enabled = True
End If
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Dim input = InputBox("Bitte geben Sie die Bezeichnung der neuen Schicht ein:", "Schicht anlegen")
If input <> "" Then
If checkNameIsValid(input) Then
DP.insertEintraegeDetails(input, niederlassung, True, input)
initSchichten()
Else
MsgBox("Für die Niederlassung" & niederlassung.ToString & " existiert bereits eine Schicht " & input)
End If
Else
MsgBox("Keine Bezeichnung angegeben!")
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If dgvSchihten.SelectedRows.Count > 0 Then
If vbYes = MsgBox("Möchten Sie die Schicht " & dgvSchihten.SelectedRows(0).Cells("dedet_info").Value & " wirklich löschen?", vbYesNo) Then
DP.delEintraegeDetails(dgvSchihten.SelectedRows(0).Cells("dedet_id").Value)
initSchichten()
End If
End If
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
Button2.Visible = CheckBox1.Checked
End Sub
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
btnExcelColor.Visible = CheckBox2.Checked
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If ColorDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
Button2.BackColor = ColorDialog1.Color
End If
End Sub
Private Sub btnExcelColor_Click(sender As Object, e As EventArgs) Handles btnExcelColor.Click
If ColorDialog2.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
btnExcelColor.BackColor = ColorDialog2.Color
End If
End Sub
Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.CheckedChanged
frbBGExcelMonat.Visible = CheckBox3.Checked
End Sub
Private Sub frbBGExcelMonat_Click(sender As Object, e As EventArgs) Handles frbBGExcelMonat.Click
If ColorDialog3.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
frbBGExcelMonat.BackColor = ColorDialog3.Color
End If
End Sub
Private Sub cbxHauptsplitschicht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxHauptsplitschicht.CheckedChanged
If cbxHauptsplitschicht.Checked Then
cbxSplitschicht.Checked = False
End If
End Sub
Private Sub cbxSplitschicht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxSplitschicht.CheckedChanged
If cbxSplitschicht.Checked Then
cbxHauptsplitschicht.Checked = False
End If
End Sub
Private Function checkNameIsValid(name As String) As Boolean
If dgvSchihten.Rows.Count = 0 Then Return True
For Each row As DataGridViewRow In dgvSchihten.Rows
If Not IsDBNull(row.Cells("dedet_info").Value) Then
If row.Cells("dedet_info").Value.ToLower = name.ToLower Then
Return False
End If
End If
Next
Return True
End Function
End Class