Dienstplan

This commit is contained in:
2022-12-09 16:05:05 +01:00
parent f9a4646b6b
commit b544ae5711
5 changed files with 252 additions and 100 deletions

View File

@@ -132,10 +132,8 @@ Partial Class frmDienstplanVariabel
Me.dgvFrei_Mi = New System.Windows.Forms.DataGridView()
Me.dgvUrl_Do = New System.Windows.Forms.DataGridView()
Me.tbAuswertung = New System.Windows.Forms.TabPage()
Me.UsrcntlAuswertungWocheAuslastung1 = New ADMIN.usrcntlAuswertungWocheAuslastung()
Me.pnlPlatzhalter = New System.Windows.Forms.Panel()
Me.tbTagesverteilung = New System.Windows.Forms.TabPage()
Me.UsrCntlAuswertungAuslastungMA1 = New ADMIN.usrCntlAuswertungAuslastungMA()
Me.Panel3 = New System.Windows.Forms.Panel()
Me.txtKWYear = New System.Windows.Forms.TextBox()
Me.txtKW = New System.Windows.Forms.TextBox()
@@ -157,6 +155,10 @@ Partial Class frmDienstplanVariabel
Me.Panel4 = New System.Windows.Forms.Panel()
Me.pnlOptions = New System.Windows.Forms.Panel()
Me.Button19 = New System.Windows.Forms.Button()
Me.Label1 = New System.Windows.Forms.Label()
Me.txtSchichtstd = New System.Windows.Forms.TextBox()
Me.UsrcntlAuswertungWocheAuslastung1 = New ADMIN.usrcntlAuswertungWocheAuslastung()
Me.UsrCntlAuswertungAuslastungMA1 = New ADMIN.usrCntlAuswertungAuslastungMA()
Me.ctxtDgv.SuspendLayout()
Me.TabPage1.SuspendLayout()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -500,6 +502,8 @@ Partial Class frmDienstplanVariabel
'GroupBox1
'
Me.GroupBox1.BackColor = System.Drawing.Color.White
Me.GroupBox1.Controls.Add(Me.txtSchichtstd)
Me.GroupBox1.Controls.Add(Me.Label1)
Me.GroupBox1.Controls.Add(Me.Label2)
Me.GroupBox1.Controls.Add(Me.txtWoStd)
Me.GroupBox1.Controls.Add(Me.TabControl1)
@@ -529,7 +533,7 @@ Partial Class frmDienstplanVariabel
'
Me.Label2.AutoSize = True
Me.Label2.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.Label2.Location = New System.Drawing.Point(133, 117)
Me.Label2.Location = New System.Drawing.Point(238, 118)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(51, 13)
Me.Label2.TabIndex = 97
@@ -540,7 +544,7 @@ Partial Class frmDienstplanVariabel
Me.txtWoStd.BackColor = System.Drawing.Color.White
Me.txtWoStd.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.txtWoStd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtWoStd.Location = New System.Drawing.Point(190, 117)
Me.txtWoStd.Location = New System.Drawing.Point(302, 118)
Me.txtWoStd.MaxLength = 1
Me.txtWoStd.Name = "txtWoStd"
Me.txtWoStd.ReadOnly = True
@@ -573,7 +577,7 @@ Partial Class frmDienstplanVariabel
'
Me.Button17.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button17.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.Button17.Location = New System.Drawing.Point(234, 112)
Me.Button17.Location = New System.Drawing.Point(231, 154)
Me.Button17.Name = "Button17"
Me.Button17.Size = New System.Drawing.Size(115, 23)
Me.Button17.TabIndex = 95
@@ -1358,15 +1362,6 @@ Partial Class frmDienstplanVariabel
Me.tbAuswertung.Text = "Auswertung"
Me.tbAuswertung.UseVisualStyleBackColor = True
'
'UsrcntlAuswertungWocheAuslastung1
'
Me.UsrcntlAuswertungWocheAuslastung1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
Me.UsrcntlAuswertungWocheAuslastung1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UsrcntlAuswertungWocheAuslastung1.Location = New System.Drawing.Point(102, 3)
Me.UsrcntlAuswertungWocheAuslastung1.Name = "UsrcntlAuswertungWocheAuslastung1"
Me.UsrcntlAuswertungWocheAuslastung1.Size = New System.Drawing.Size(1077, 320)
Me.UsrcntlAuswertungWocheAuslastung1.TabIndex = 0
'
'pnlPlatzhalter
'
Me.pnlPlatzhalter.Dock = System.Windows.Forms.DockStyle.Left
@@ -1387,14 +1382,6 @@ Partial Class frmDienstplanVariabel
Me.tbTagesverteilung.Text = "Tagesverteilung MA"
Me.tbTagesverteilung.UseVisualStyleBackColor = True
'
'UsrCntlAuswertungAuslastungMA1
'
Me.UsrCntlAuswertungAuslastungMA1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UsrCntlAuswertungAuslastungMA1.Location = New System.Drawing.Point(102, 3)
Me.UsrCntlAuswertungAuslastungMA1.Name = "UsrCntlAuswertungAuslastungMA1"
Me.UsrCntlAuswertungAuslastungMA1.Size = New System.Drawing.Size(1077, 320)
Me.UsrCntlAuswertungAuslastungMA1.TabIndex = 3
'
'Panel3
'
Me.Panel3.Dock = System.Windows.Forms.DockStyle.Left
@@ -1667,6 +1654,46 @@ Partial Class frmDienstplanVariabel
Me.Button19.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Button19.UseVisualStyleBackColor = True
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.Label1.Location = New System.Drawing.Point(120, 118)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(68, 13)
Me.Label1.TabIndex = 98
Me.Label1.Text = "Std. Schicht:"
Me.Label1.Visible = False
'
'txtSchichtstd
'
Me.txtSchichtstd.BackColor = System.Drawing.Color.White
Me.txtSchichtstd.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.txtSchichtstd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtSchichtstd.Location = New System.Drawing.Point(194, 117)
Me.txtSchichtstd.MaxLength = 1
Me.txtSchichtstd.Name = "txtSchichtstd"
Me.txtSchichtstd.ReadOnly = True
Me.txtSchichtstd.Size = New System.Drawing.Size(38, 13)
Me.txtSchichtstd.TabIndex = 99
'
'UsrcntlAuswertungWocheAuslastung1
'
Me.UsrcntlAuswertungWocheAuslastung1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer))
Me.UsrcntlAuswertungWocheAuslastung1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UsrcntlAuswertungWocheAuslastung1.Location = New System.Drawing.Point(102, 3)
Me.UsrcntlAuswertungWocheAuslastung1.Name = "UsrcntlAuswertungWocheAuslastung1"
Me.UsrcntlAuswertungWocheAuslastung1.Size = New System.Drawing.Size(1077, 320)
Me.UsrcntlAuswertungWocheAuslastung1.TabIndex = 0
'
'UsrCntlAuswertungAuslastungMA1
'
Me.UsrCntlAuswertungAuslastungMA1.Dock = System.Windows.Forms.DockStyle.Fill
Me.UsrCntlAuswertungAuslastungMA1.Location = New System.Drawing.Point(102, 3)
Me.UsrCntlAuswertungAuslastungMA1.Name = "UsrCntlAuswertungAuslastungMA1"
Me.UsrCntlAuswertungAuslastungMA1.Size = New System.Drawing.Size(1077, 320)
Me.UsrCntlAuswertungAuslastungMA1.TabIndex = 3
'
'frmDienstplanVariabel
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -1876,4 +1903,6 @@ Partial Class frmDienstplanVariabel
Friend WithEvents Button19 As System.Windows.Forms.Button
Friend WithEvents pnlOptions As Panel
Friend WithEvents ToolStripMenuSplitschicht As ToolStripMenuItem
Friend WithEvents Label1 As Label
Friend WithEvents txtSchichtstd As TextBox
End Class

View File

@@ -12,6 +12,7 @@ Public Class frmDienstplanVariabel
Private stift2 As New Pen(Color.LightGray, 2)
Private scr_left As Integer = 200
Private scr_top As Integer = 50
Private isSplitschicht As Boolean = False
Dim week() As String = {"SO", "MO", "DI", "MI", "DO", "FR", "SA"}
Private SCHICHT = "ROT"
@@ -396,7 +397,7 @@ Public Class frmDienstplanVariabel
Dim SCHICHT As New cDienstplanSchicht(r("dedet_id"))
Dim u As New usrCntlDienstWoche(SCHICHT, SETTINGS)
If SCHICHT.dedet_Splitschicht = False Then
If True Then 'SCHICHT.dedet_Splitschicht = False Then 'Splitschichten nicht im als DGV anzeigen
u.Height = (FlowLayoutPanel.Height - 5) * (SCHICHT.dedet_ProzentGrafik / 100)
FlowLayoutPanel.Controls.Add(u)
'MsgBox(SCHICHT.dedet_info)
@@ -501,7 +502,9 @@ Public Class frmDienstplanVariabel
Try
For Each datagridview As cDienstDGV In DGV
Dim d As DataGridView = getDGV(datagridview.dgvName, datagridview.USRCNTL)
AddHandler d.MouseDown, AddressOf handleDGVContextMenue
If datagridview.dgvAbteilung.ToString <> "ABKL" AndAlso datagridview.dgvAbteilung.ToString <> "VORSCH" Then
AddHandler d.MouseDown, AddressOf handleDGVContextMenue
End If
AddHandler d.LostFocus, AddressOf remHandlerKey
AddHandler d.MouseClick, AddressOf handleDGVClick
AddHandler d.CellDoubleClick, AddressOf handleDGVDoubleClick
@@ -580,7 +583,7 @@ Public Class frmDienstplanVariabel
End Sub
Sub clearAllSelection()
markId = -1
For Each datagridview As cDienstDGV In dgv
For Each datagridview As cDienstDGV In DGV
Dim dgv As DataGridView = getDGV(datagridview.dgvName, datagridview.USRCNTL)
dgv.ClearSelection()
initDGV(dgv)
@@ -647,8 +650,8 @@ Public Class frmDienstplanVariabel
Return dDate.Year + 1 & "01"
ElseIf dDate < dThisYear Then
' Falls das Datum noch zu einer KW aus dem letzten Jahr zählt
Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear, _
New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday, _
Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear,
New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday,
FirstWeekOfYear.FirstFourDays)
Else
' KW = Differenz zum ersten Tag der ersten Woche
@@ -807,12 +810,12 @@ Public Class frmDienstplanVariabel
Dim thisDgv As DataGridView = DirectCast(sender, DataGridView)
Dim row As DataGridViewRow = thisDgv.CurrentRow
setDetails2(UsrCntlZeitenAendern1, row.Cells("dstetr_id").Value) 'NULL???????
setDetails2(usrCntlZeitenAendern1, row.Cells("dstetr_id").Value) 'NULL???????
' If UsrCntlZeitenAendern1.txtVon.Text = "" Then Throw New Exception
' If UsrCntlZeitenAendern1.txtBis.Text = "" Then Throw New Exception
UsrCntlZeitenAendern1.lblVon.Text = ""
UsrCntlZeitenAendern1.lblBis.Text = ""
usrCntlZeitenAendern1.lblVon.Text = ""
usrCntlZeitenAendern1.lblBis.Text = ""
Dim u_receiver As usrCntlDienstWoche = Nothing
If thisDgv.Parent.Parent.GetType Is GetType(usrCntlDienstWoche) Then u_receiver = thisDgv.Parent.Parent
Dim abt As String = getValuesDienstDGV(u_receiver, thisDgv.Name, "abt")
@@ -844,7 +847,7 @@ Public Class frmDienstplanVariabel
pt.Y -= (usrCntlZeitenAendern1.Height + (row.Height * 1.5))
End If
usrCntlZeitenAendern1.Location = pt
UsrCntlZeitenAendern1.Visible = True
usrCntlZeitenAendern1.Visible = True
usrCntlZeitenAendern1.txtVon.Focus()
Catch ex As Exception
@@ -893,8 +896,21 @@ Public Class frmDienstplanVariabel
TextBox3.Text = row("dstetr_info").ToString
TextBox4.Text = row("dstetr_pause").ToString
If row("dstetr_art").ToString = "ABKL" Or row("dstetr_art").ToString = "VORSCH" Then
isSplitschicht = True
Else
isSplitschicht = False
End If
Dim tatStd As Double = SQLDienst.getDstStunden(row("dstma_id").ToString, row("dstetr_datum").ToString, row("dstetr_datum").ToString, niederlassung)
Dim schichtStd As Double = SQLDienst.getDstStunden(row("dstma_id").ToString, row("dstetr_datum").ToString, row("dstetr_datum").ToString, niederlassung, True)
txtWoStd.Text = tatStd
txtSchichtstd.Text = schichtStd
txtSchichtstd.Visible = isSplitschicht
Label1.Visible = isSplitschicht
Label32.Text = CDate(row("dstetr_datum")).ToShortDateString
@@ -1002,7 +1018,7 @@ Public Class frmDienstplanVariabel
Next
End Sub
Private Sub handleDGVContextMenue(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) 'Handles dgvZoll1_Mo.MouseDown
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DP_Bearbeiten", Me) Then
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DP_Bearbeiten", Me) AndAlso isSplitschicht = False Then
Dim thisDgv As DataGridView = DirectCast(sender, DataGridView)
Dim ht As DataGridView.HitTestInfo
@@ -1020,8 +1036,10 @@ Public Class frmDienstplanVariabel
If e.Button = Windows.Forms.MouseButtons.Right Then
' Dim ht As DataGridView.HitTestInfo
' ht = thisDgv.HitTest(e.X, e.Y)
If ht.Type = DataGridViewHitTestType.Cell Then
Dim o As usrCntlDienstWoche = Nothing
If thisDgv.Parent.Parent.GetType = GetType(usrCntlDienstWoche) Then o = thisDgv.Parent.Parent
@@ -1081,59 +1099,57 @@ Public Class frmDienstplanVariabel
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
If dgv.SelectedCells.Count > 0 Then
If dgv.SelectedCells.Count > 0 Then
' Case "SO" : ctiSchicht1.Enabled = False : ctiDbl.Enabled = False : ctiQS.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
' Case "SA" : ctiSchicht2.Enabled = False : ctiDbl.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
Dim o As usrCntlDienstWoche = Nothing
If dgv.Parent.Parent.GetType() Is GetType(usrCntlDienstWoche) Then o = dgv.Parent.Parent
' Case "SO" : ctiSchicht1.Enabled = False : ctiDbl.Enabled = False : ctiQS.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
' Case "SA" : ctiSchicht2.Enabled = False : ctiDbl.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
Dim o As usrCntlDienstWoche = Nothing
If dgv.Parent.Parent.GetType() Is GetType(usrCntlDienstWoche) Then o = dgv.Parent.Parent
Dim d As Date = CDate(getValuesDienstDGV(o, dgv.Name, "datum"))
Dim d As Date = CDate(getValuesDienstDGV(o, dgv.Name, "datum"))
For Each s In BEN_SCHICHTEN
If e.KeyCode.ToString.ToUpper = s.SCHICHT.dedet_hotKey.ToUpper Then
' MsgBox("OK")
For Each z In s.SCHICHT.ZEITEN
If z.dsz_woTag = week(CDate((getValuesDienstDGV(o, dgv.Name, "datum"))).DayOfWeek) Then 'Wochentag
'Wenn Eintrag gefunden
changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), s.schicht_name))
Exit Sub
End If
Next
End If
Next
For Each s In BEN_SCHICHTEN
If e.KeyCode.ToString.ToUpper = s.SCHICHT.dedet_hotKey.ToUpper Then
' MsgBox("OK")
For Each z In s.SCHICHT.ZEITEN
If z.dsz_woTag = week(CDate((getValuesDienstDGV(o, dgv.Name, "datum"))).DayOfWeek) Then 'Wochentag
'Wenn Eintrag gefunden
changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), s.schicht_name))
Exit Sub
End If
Next
End If
Next
Select Case week(CDate(getValuesDienstDGV(o, dgv.Name, "datum")).DayOfWeek)
Case "SA"
Select Case e.KeyCode
Select Case week(CDate(getValuesDienstDGV(o, dgv.Name, "datum")).DayOfWeek)
Case "SA"
Select Case e.KeyCode
' Case Keys.V : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "ZOLL_VM"))
' Case Keys.Q : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "QS"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "FREI"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
End Select
Case "SO"
Select Case e.KeyCode
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "FREI"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
End Select
Case "SO"
Select Case e.KeyCode
' Case Keys.N : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "ZOLL_NM"))
' Case Keys.T : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "ZOLL_TAG"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "FREI"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
End Select
Case Else
Select Case e.KeyCode
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "FREI"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
End Select
Case Else
Select Case e.KeyCode
' Case Keys.V : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "ZOLL_VM"))
' Case Keys.N : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "ZOLL_NM"))
' Case Keys.T : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "ZOLL_TAG"))
' Case Keys.Q : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(Nothing, dgv.Name, "datum"), "QS"))
Case Keys.U : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "URL"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "FREI"))
Case Keys.K : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "KS"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
Case Keys.Z : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "ZA"))
End Select
End Select
Case Keys.U : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "URL"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "FREI"))
Case Keys.K : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "KS"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
Case Keys.Z : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "ZA"))
End Select
End Select
End If
End If
End Sub
@@ -1345,6 +1361,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_pause = getDefaultTimeBySchicht(grund, "pause", week(datum.DayOfWeek).ToUpper)
End If
Next
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Next
@@ -1424,9 +1441,9 @@ Public Class frmDienstplanVariabel
abteilung = abteilung.ToString.Replace("ZOLL_NM", "ZOLL2")
Dim d As cDienstDetails = SQLDienst.getDienstDetailsWoTagByArtAndWoTag(niederlassung, abteilung, woTag)
If vonOrBis = "von" Then
If d.dedet_von <> "" Then Return d.dedet_von Else : Return "00:00" : End If
If d.dedet_von <> "" Then Return d.dedet_von Else : Return "00:00" : End If
If vonOrBis = "bis" Then
If d.dedet_bis <> "" Then Return d.dedet_bis Else : Return "00:00" : End If
If d.dedet_bis <> "" Then Return d.dedet_bis Else : Return "00:00" : End If
If vonOrBis = "pause" Then
Return d.dedet_pause : End If
Return ""
@@ -1963,23 +1980,23 @@ Public Class frmDienstplanVariabel
End Select
End Sub
Private Sub ToolStripMenuSplitschicht_Click(sender As Object, e As EventArgs) Handles ToolStripMenuSplitschicht.Click
Private Sub ToolStripMenuSplitschicht_Click(sender As Object, e As EventArgs) 'Handles ToolStripMenuSplitschicht.Click
Dim a As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
If sourceCnTxt Is Nothing Then Exit Sub
Dim dgv_tmp As DataGridView = DirectCast(sourceCnTxt, DataGridView)
Dim o As usrCntlDienstWoche = Nothing
If dgv_tmp.Parent.Parent.GetType() Is GetType(usrCntlDienstWoche) Then o = dgv_tmp.Parent.Parent
Dim datumtmp = CalendarWeek(aktWoche, aktJahr)
If o.SCHICHT.dedet_Hauptsplitschicht = False Then
MsgBox("In Schicht " & o.schicht_name & " sind keine Splitschichten erlaubt!")
Exit Sub
End If
'Betroffene IDs suchen
Dim ids As New List(Of Integer)
Dim arr As DataGridViewSelectedCellCollection = dgv_tmp.SelectedCells
For Each c As DataGridViewCell In arr
@@ -1988,29 +2005,66 @@ Public Class frmDienstplanVariabel
Next
'BENUTZER SCHICHTEN:
For Each s In BEN_SCHICHTEN
If a.Name = "cti_" & s.schicht_name Then
'Schicht gefunden
'alle Wochentage durchlaufen:
For i = 0 To 6
For Each sz In s.SCHICHT.ZEITEN
If sz.dsz_woTag.ToUpper = datumtmp.ToString("ddd").Replace(".", "").ToUpper Then
'Wenn hier drin, dann gibt es an dem Tag den bezogenen Schichteintrag
For Each id In ids
'Eintrag wird für alle IDs hinzugefügt
'SQLDienst.updateDienstEintragArtChange()
For Each id In ids
Next
Dim eintrag As New cDienstEintrag
eintrag.dstetr_dstmaId = id
Dim datum As Date = Date.Parse(getValuesDienstDGV(o, dgv_tmp.Name, "datum"))
Dim abtSplitschicht As String = s.schicht_name
Dim vorherigeAbt = getValuesDienstDGV(o, dgv_tmp.Name, "abt")
eintrag.dstetr_datum = datum
eintrag.dstetr_art = s.schicht_name
Dim timeVontempDGV = getDefaultTimeBySchicht(vorherigeAbt, "von", datum.ToString("ddd", New CultureInfo("de-DE")).Replace(".", "").ToUpper)
Dim timeBistempDGV = getDefaultTimeBySchicht(vorherigeAbt, "bis", datum.ToString("ddd", New CultureInfo("de-DE")).Replace(".", "").ToUpper)
Dim timeVon = getDefaultTimeBySchicht(abtSplitschicht, "von", datum.ToString("ddd", New CultureInfo("de-DE")).Replace(".", "").ToUpper)
Dim timeBis = getDefaultTimeBySchicht(abtSplitschicht, "bis", datum.ToString("ddd", New CultureInfo("de-DE")).Replace(".", "").ToUpper)
If checkUeberschneidungen(timeVontempDGV, timeVon) Or checkUeberschneidungen(timeBis, timeBistempDGV) Then
If vbNo = MsgBox("ACHTUNG!" & vbCrLf & "Die Zeiten der Schicht " & s.schicht_name & " (" & timeVon & " - " & timeBis & ")" & vbCrLf & "überschneiden sich mit der Stammschicht " & vorherigeAbt & " (" & timeVontempDGV & " - " & timeBistempDGV & ")" & vbCrLf & "Trotzdem speichern?", vbYesNo) Then
Exit Sub
End If
Next
datumtmp = datumtmp.AddDays(1)
End If
eintrag.dstetr_von = timeVon
eintrag.dstetr_bis = timeBis
SQLDienst.insertByDienstEintrag(eintrag, niederlassung)
Next
initDienstplan()
Exit Sub
End If
Next
initDienstplan()
'Select Case a.Name
' Case "ctiKrankenstand"
' changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "KS"))
' Case "ctiQS"
' changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "QS"))
' Case "ctiFrei"
' changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "FREI"))
' Case "ctiDienstreise"
' changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "DR"))
' Case "ctiUrlaub"
' changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "URL"))
' Case "ctiWocheSchichtWechsel"
' changeDGVWoSchicht(dgv_tmp)
' Case "ctiBemWo"
' changeDGVWoBemerkung(dgv_tmp)
' Case "ZeitausgleichToolStripMenuItem"
' changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "ZA"))
' Case "NormaldienstToolStripMenuItem"
' initALL(dgv_tmp.CurrentRow.Cells("dstma_id").Value)
'End Select
End Sub
@@ -2502,10 +2556,12 @@ Public Class frmDienstplanVariabel
End Sub
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
UsrCntlZeitenAendern1.Visible = True
usrCntlZeitenAendern1.Visible = True
End Sub
Private Sub ctxtDgv_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxtDgv.Opening
If isSplitschicht Then Exit Sub
sourceCnTxt = DirectCast(sender, ContextMenuStrip).SourceControl
End Sub
@@ -2701,4 +2757,17 @@ Public Class frmDienstplanVariabel
End Sub
Private Function checkUeberschneidungen(time1 As String, time2 As String) As Boolean
Dim a As DateTime = DateTime.ParseExact(time1, "HH:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Dim b As DateTime = DateTime.ParseExact(time2, "HH:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo)
If a < b Then
Return True
Else
Return False
End If
End Function
End Class

View File

@@ -20,7 +20,7 @@ Public Class frmDiestAddMa
End If
End Sub
Private Sub frmDiestAddMa_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim dt As DataTable = ADMIN.AnzeigeTabelle(" SELECT * FROM [tblDienstplanEintraegeDetails] WHERE [dedet_niederlassung]='" & niederlassung & "' AND dedet_benutzerdefinierteSchicht=1 ")
Dim dt As DataTable = ADMIN.AnzeigeTabelle(" SELECT * FROM [tblDienstplanEintraegeDetails] WHERE [dedet_niederlassung]='" & niederlassung & "' AND dedet_benutzerdefinierteSchicht=1 AND dedet_splitschicht=0 ")
cboStammSchicht.Items.Clear()
cboStammSchicht.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
For Each r As DataRow In dt.Rows