Files
SDL/SDL/frmDienstplan.vb
2021-06-24 23:05:48 +02:00

212 lines
9.8 KiB
VB.net

Public Class frmDienstplan
Dim DP_ART = "SUB"
Dim datum As Date = Now
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Private Sub frmDienstplan_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.Height = Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height
Me.Top = 0
MyComboBox1.fillWithSQL("SELECT [dpset_niederlassung],dpset_niederlassung as nl FROM [ADMIN].[dbo].[tblDienstSettings] order by dpset_niederlassung", False, "ADMIN", False)
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
MyComboBox1.changeItem("ATILLA")
Else
MyComboBox1.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG)
End If
If MyComboBox1._value = "" Then MyComboBox1.changeItem("SUB")
initDP()
End Sub
Sub initDP()
If DP_ART = "" Then Exit Sub
Dim NAHeight = 150
pnlDP.Controls.Clear()
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [ADMIN].[dbo].[tblDienstplanEintraegeDetails] where dedet_niederlassung='" & DP_ART & "' and dedet_benutzerdefinierteSchicht=1 and [dedet_aktiv]=1 order by dedet_reihenfolge", "ADMIN")
For Each r In dt.Rows
Dim ustCntl As New usrCntlDienstWoche
ustCntl.lblBezeichnung.Text = r("dedet_info")
ustCntl.Height = (pnlDP.Height - NAHeight) * (r("dedet_ProzentGrafik") / 100)
If r("dedet_bgAlternativeFarbe") IsNot DBNull.Value AndAlso r("dedet_bgAlternativeFarbe") <> "" Then
ustCntl.Panel3.BackColor = ColorTranslator.FromHtml(r("dedet_bgAlternativeFarbe"))
Else
' ustCntl.Panel3.BackColor = Color.Firebrick
End If
With ustCntl.dgv_Mo
Dim sqlSchicht = ""
sqlSchicht &= " SELECT mit_nname + ' ' + mit_vname as MA ,dstetr_von, dstetr_bis,dstetr_info,'DW: ' + isnull(mit_durchwahl,'') as dw,isnull(mit_email,'') as email"
sqlSchicht &= " FROM [ADMIN].[dbo].[tblDienstplanEintraege] inner join tblDienstMitarb on dstma_id=dstetr_dstmaId"
sqlSchicht &= " inner join tblMitarbeiter on dstma_mitid=mit_id "
sqlSchicht &= " where dstetr_datum='" & datum.ToShortDateString & "' and dstetr_niederlassung='" & DP_ART & "' and dstetr_art='" & r("dedet_bezeichnungDP") & "' order by dstetr_von, dstma_reihenfolge"
.DataSource = SQL.loadDgvBySql(sqlSchicht, "ADMIN")
' .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
.Columns("MA").Width = 200
.Columns("dstetr_von").Width = 80
.Columns("dstetr_bis").Width = 80
.Columns("dstetr_info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("dw").Width = 150
.Columns("email").Width = 150
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.ClearSelection()
AddHandler ustCntl.dgv_Mo.SelectionChanged, Sub()
ustCntl.dgv_Mo.ClearSelection()
End Sub
End With
ustCntl.Width = pnlDP.Width - 25
pnlDP.Controls.Add(ustCntl)
ustCntl.initAnzahl()
Next
Dim ustCntlNA As New usrCntlDienstWoche
ustCntlNA.lblBezeichnung.Text = "NA"
ustCntlNA.Height = NAHeight 'pnlDP.Height * (r("dedet_ProzentGrafik") / 100) '- 10
ustCntlNA.Panel3.BackColor = Color.Gray
checkAnwesend()
With ustCntlNA.dgv_Mo
Dim sqlSchicht = ""
sqlSchicht &= " SELECT mit_nname + ' ' + mit_vname as MA ,dstetr_von, dstetr_bis,dstetr_info,'DW: ' + isnull(mit_durchwahl,'') as dw,isnull(mit_email,'') as email"
sqlSchicht &= " FROM [ADMIN].[dbo].[tblDienstplanEintraege] inner join tblDienstMitarb on dstma_id=dstetr_dstmaId"
sqlSchicht &= " inner join tblMitarbeiter on dstma_mitid=mit_id "
sqlSchicht &= " where dstetr_datum='" & datum.ToShortDateString & "' and dstetr_niederlassung='" & DP_ART & "' and dstetr_art IN('URL','SO', 'DR','BS','ZA','FREI') order by dstetr_von, dstma_reihenfolge"
.DataSource = SQL.loadDgvBySql(sqlSchicht, "ADMIN")
' .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
.Columns("MA").Width = 200
.Columns("dstetr_von").Width = 80
.Columns("dstetr_bis").Width = 80
.Columns("dstetr_info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("dw").Width = 150
.Columns("email").Width = 150
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.ClearSelection()
AddHandler ustCntlNA.dgv_Mo.SelectionChanged, Sub()
ustCntlNA.dgv_Mo.ClearSelection()
End Sub
.DefaultCellStyle.ForeColor = Color.Gray
.DefaultCellStyle.Font = New Font(.Font.FontFamily, .Font.Size, FontStyle.Regular)
End With
ustCntlNA.Width = pnlDP.Width - 25
pnlDP.Controls.Add(ustCntlNA)
ustCntlNA.initAnzahl()
End Sub
Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles Timer.Tick
lbl0000.Text = Now.ToString("HH:mm:ss")
End Sub
Private Sub TimerDGV_Tick(sender As Object, e As EventArgs) Handles TimerDGV.Tick
checkAnwesend()
End Sub
Sub checkAnwesend()
If datum.ToShortDateString = Now.ToShortDateString Then
For Each c In pnlDP.Controls
' If c.GetType.ToString = GetType(DataGridView).ToString Then
Dim u As usrCntlDienstWoche = c
For Each r As DataGridViewRow In u.dgv_Mo.Rows
If r.Cells("dstetr_von") IsNot Nothing Then
If r.Cells("dstetr_von").Value < Now.ToString("HH:mm:ss") And r.Cells("dstetr_bis").Value > Now.ToString("HH:mm:ss") Then
r.DefaultCellStyle.ForeColor = Color.Black
r.DefaultCellStyle.Font = New Font(u.dgv_Mo.Font.FontFamily, u.dgv_Mo.Font.Size, FontStyle.Bold)
Else
r.DefaultCellStyle.ForeColor = Color.Gray
r.DefaultCellStyle.Font = New Font(u.dgv_Mo.Font.FontFamily, u.dgv_Mo.Font.Size, FontStyle.Regular)
End If
End If
Next
' End If
Next
End If
End Sub
Private Sub frmDienstplan_Shown(sender As Object, e As EventArgs) Handles Me.Shown
checkAnwesend()
initBtns()
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
datum = datum.AddDays(-1)
initBtns()
End Sub
Sub initBtns()
If datum.ToShortDateString = Now.ToShortDateString Then
Button5.Text = "Heute"
ElseIf datum.ToShortDateString = Now.AddDays(-1).ToShortDateString Then
Button5.Text = "Gestern"
ElseIf datum.ToShortDateString = Now.AddDays(1).ToShortDateString Then
Button5.Text = "Morgen"
Else
Button5.Text = datum.ToString("ddd, dd.MM")
End If
lblMO.BackColor = Color.White : lblMO.ForeColor = Color.Black
lblDI.BackColor = Color.White : lblDI.ForeColor = Color.Black
lblMI.BackColor = Color.White : lblMI.ForeColor = Color.Black
lblDO.BackColor = Color.White : lblDO.ForeColor = Color.Black
LBLFR.BackColor = Color.White : LBLFR.ForeColor = Color.Black
lblSA.BackColor = Color.White : lblSA.ForeColor = Color.Black
lblSO.BackColor = Color.White : lblSO.ForeColor = Color.Black
If datum.ToString("ddd").ToUpper = "MO" Then lblMO.BackColor = Color.FromArgb(0, 54, 128) : lblMO.ForeColor = Color.White
If datum.ToString("ddd").ToUpper = "DI" Then lblDI.BackColor = Color.FromArgb(0, 54, 128) : lblDI.ForeColor = Color.White
If datum.ToString("ddd").ToUpper = "MI" Then lblMI.BackColor = Color.FromArgb(0, 54, 128) : lblMI.ForeColor = Color.White
If datum.ToString("ddd").ToUpper = "DO" Then lblDO.BackColor = Color.FromArgb(0, 54, 128) : lblDO.ForeColor = Color.White
If datum.ToString("ddd").ToUpper = "FR" Then LBLFR.BackColor = Color.FromArgb(0, 54, 128) : LBLFR.ForeColor = Color.White
If datum.ToString("ddd").ToUpper = "SA" Then lblSA.BackColor = Color.FromArgb(0, 54, 128) : lblSA.ForeColor = Color.White
If datum.ToString("ddd").ToUpper = "SO" Then lblSO.BackColor = Color.FromArgb(0, 54, 128) : lblSO.ForeColor = Color.White
initDP()
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
datum = datum.AddDays(1)
initBtns()
End Sub
Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox1.SelectedIndexChanged
DP_ART = MyComboBox1._value
initDP()
End Sub
Private Sub Label6_Click(sender As Object, e As EventArgs) Handles lblSA.Click
End Sub
Private Sub lblMO_Click(sender As Object, e As EventArgs) Handles lblMO.Click, lblDI.Click, lblMI.Click, lblDO.Click, LBLFR.Click, lblSA.Click, lblSO.Click
Dim dtmp As Date = datum
Do 'zurück zum montag
If dtmp.ToString("ddd").ToUpper = "MO" Then
Exit Do
End If
dtmp = dtmp.AddDays(-1)
Loop
Do
If dtmp.ToString("ddd").ToUpper = sender.text Then
datum = dtmp
initBtns()
Exit Sub
End If
dtmp = dtmp.AddDays(1)
Loop
End Sub
Private Sub frmDienstplan_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
initDP()
End Sub
End Class