Dienstplan

This commit is contained in:
2022-12-12 17:02:03 +01:00
parent b544ae5711
commit e7733375e1
4 changed files with 146 additions and 108 deletions

View File

@@ -102,6 +102,7 @@ Public Class frmDienstplanVariabel
Dim schicht_Name = SCHICHT.dedet_abt
If schicht_Name = "ZOLL1" Then schicht_Name = "ZOLL_VM"
If schicht_Name = "ZOLL2" Then schicht_Name = "ZOLL_NM"
Dim IsHauptsplitschicht = SCHICHT.dedet_Hauptsplitschicht
datum = CalendarWeek(aktWoche, aktJahr)
For i = 0 To 6
Dim andstr As String = " AND dstetr_datum='" & datum.ToShortDateString & "' AND dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId "
@@ -110,8 +111,8 @@ Public Class frmDienstplanVariabel
Dim dgvTmp As DataGridView = getDGV("dgv_" & datum.ToString("ddd").Replace(".", ""), b)
If dgvTmp IsNot Nothing Then
dgvTmp.DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE (dstetr_art='" & schicht_Name & "') " & andstr & orderBy)
DGV.Add(New cDienstDGV("dgv_" & datum.ToString("ddd").Replace(".", ""), datum, schicht_Name, b)) ', getDienstDetails("ZOLL1", "von"), getDienstDetails("ZOLL1", "bis")))
dgvTmp.DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause, dstetr_splitschicht, dstetr_hauptsplitschicht FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE (dstetr_art='" & schicht_Name & "') " & andstr & orderBy)
DGV.Add(New cDienstDGV("dgv_" & datum.ToString("ddd").Replace(".", ""), datum, schicht_Name, b, IsHauptsplitschicht)) ', getDienstDetails("ZOLL1", "von"), getDienstDetails("ZOLL1", "bis")))
End If
datum = datum.AddDays(1)
@@ -124,19 +125,19 @@ Public Class frmDienstplanVariabel
Dim andstr As String = " AND dstetr_datum='" & datum.ToShortDateString & "' AND dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId "
andstr &= " AND (mit_gekuendigt =0 OR mit_kuendigungsdatum>=dstetr_datum) AND dstetr_niederlassung='" & niederlassung & "'"
getDGV(arrUrl(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='URL'" & andstr & orderBy2)
getDGV(arrUrl(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause, dstetr_splitschicht, dstetr_hauptsplitschicht FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='URL'" & andstr & orderBy2)
DGV.Add(New cDienstDGV(arrUrl(i), datum, "URL", Nothing)) ', getDienstDetails("URL", "von"), getDienstDetails("URL", "bis")))
getDGV(arrKS(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='KS'" & andstr & orderBy2)
getDGV(arrKS(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause, dstetr_splitschicht, dstetr_hauptsplitschicht FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='KS'" & andstr & orderBy2)
DGV.Add(New cDienstDGV(arrKS(i), datum, "KS", Nothing)) ', getDienstDetails("KS", "von"), getDienstDetails("KS", "bis")))
getDGV(arrDR(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE (dstetr_art='DR' OR dstetr_art='BS')" & andstr & orderBy2)
getDGV(arrDR(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause, dstetr_splitschicht, dstetr_hauptsplitschicht FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE (dstetr_art='DR' OR dstetr_art='BS')" & andstr & orderBy2)
DGV.Add(New cDienstDGV(arrDR(i), datum, "DR", Nothing)) ', getDienstDetails("DR", "von"), getDienstDetails("DR", "bis")))
getDGV(arrFrei(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='FREI'" & andstr & orderBy2)
getDGV(arrFrei(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause, dstetr_splitschicht, dstetr_hauptsplitschicht FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='FREI'" & andstr & orderBy2)
DGV.Add(New cDienstDGV(arrFrei(i), datum, "FREI", Nothing)) ', getDienstDetails("FREI", "von"), getDienstDetails("FREI", "bis")))
getDGV(arrZA(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='ZA'" & andstr & orderBy2)
getDGV(arrZA(i), Nothing).DataSource = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info,dstma_id,dstma_arbvh, dstetr_von,dstetr_bis,dstma_stammSchicht, dstetr_info,dstma_reihenfolge, dstma_farbe,dstetr_pause, dstetr_splitschicht, dstetr_hauptsplitschicht FROM tblDienstplanEintraege,tblDienstMitarb,tblMitarbeiter WHERE dstetr_art='ZA'" & andstr & orderBy2)
DGV.Add(New cDienstDGV(arrZA(i), datum, "ZA", Nothing)) ', getDienstDetails("ZA", "von"), getDienstDetails("ZA", "bis")))
datum = datum.AddDays(1)
@@ -422,23 +423,24 @@ Public Class frmDienstplanVariabel
For Each s In BEN_SCHICHTEN
Dim menu1 As ToolStripMenuItem
Dim menuGanzeWoche As ToolStripMenuItem
Dim splitSchichten As ToolStripMenuItem
If s.SCHICHT.dedet_Splitschicht = False Then
menu1 = New ToolStripMenuItem() With {.Text = "--> " & s.SCHICHT.dedet_info, .Name = "cti_" & s.schicht_name, .Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold)} '
menu1 = New ToolStripMenuItem() With {.Text = "--> " & s.SCHICHT.dedet_info, .Name = "cti_" & s.schicht_name, .Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold)}
AddHandler menu1.Click, AddressOf Schicht2ToolStripMenuItem_Click
ctxtDgv.Items.Insert(i, menu1)
End If
Dim menuGanzeWoche As New ToolStripMenuItem() With {.Text = "--> " & s.SCHICHT.dedet_info, .Name = "cti_" & s.schicht_name, .Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold)} '
menuGanzeWoche = New ToolStripMenuItem() With {.Text = "--> " & s.SCHICHT.dedet_info, .Name = "cti_" & s.schicht_name, .Font = New Font(Font.FontFamily, Font.Size, FontStyle.Bold)}
AddHandler menuGanzeWoche.Click, AddressOf GanzeWocheToolStripMenuItem_Click
GanzeWocheToolStripMenuItem.DropDownItems.Add(menuGanzeWoche)
Dim splitSchichten As ToolStripMenuItem
Else
If s.SCHICHT.dedet_Splitschicht Then
splitSchichten = New ToolStripMenuItem() With {.Text = "--> " & s.SCHICHT.dedet_info, .Name = "cti_" & s.schicht_name, .Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold)}
AddHandler splitSchichten.Click, AddressOf ToolStripMenuSplitschicht_Click
ToolStripMenuSplitschicht.DropDownItems.Add(splitSchichten)
End If
i += 1
@@ -843,8 +845,8 @@ Public Class frmDienstplanVariabel
usrCntlZeitenAendern1.Location = p
End If
Dim pt = New Point(thisDgv.Location.X, Panel1.PointToClient(Windows.Forms.Cursor.Position).Y + (row.Height * 0.75))
If pt.Y + usrCntlZeitenAendern1.Height > Me.Height Then
pt.Y -= (usrCntlZeitenAendern1.Height + (row.Height * 1.5))
If pt.y + usrCntlZeitenAendern1.Height > Me.Height Then
pt.y -= (usrCntlZeitenAendern1.Height + (row.Height * 1.5))
End If
usrCntlZeitenAendern1.Location = pt
usrCntlZeitenAendern1.Visible = True
@@ -1293,6 +1295,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_art = "FREI"
Else
eintrag.dstetr_art = getSchichtArt(m.dstma_abteilung, m.dstma_stammSchicht, datum)
eintrag.dstetr_hauptsplitschicht = getBooleanHauptsplitschicht(m.dstma_stammSchicht)
'MsgBox(getSchichtArt(m.dstma_abteilung, m.dstma_stammSchicht, datum))
'Abwesenheiten prüfen:
' For Each d In cDienstAbwesendheiten
@@ -1436,6 +1439,16 @@ Public Class frmDienstplanVariabel
Return ""
End Function
Public Function getBooleanHauptsplitschicht(stammschicht) As Boolean
For Each s In SCHICHTEN_ARTEN
If stammschicht = s.dedet_abt Then
Return s.dedet_Hauptsplitschicht
End If
Next
Return False
End Function
Public Function getDefaultTimeBySchicht(abteilung, vonOrBis, woTag)
abteilung = abteilung.ToString.Replace("ZOLL_VM", "ZOLL1")
abteilung = abteilung.ToString.Replace("ZOLL_NM", "ZOLL2")
@@ -1935,11 +1948,11 @@ Public Class frmDienstplanVariabel
Private Sub Schicht2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ctiDbl.Click, ctiKrankenstand.Click, ctiFrei.Click, ctiDienstreise.Click, ctiUrlaub.Click, ctiWocheSchichtWechsel.Click, ctiBemWo.Click, ZeitausgleichToolStripMenuItem.Click
Dim a As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
Dim dgv_tmp As DataGridView = DirectCast(sender.GetCurrentParent.SourceControl, DataGridView)
'Dim vm = "ZOLL2" : If SCHICHT.contains("ROT") Then vm = "ZOLL1"
' Dim nm = "ZOLL1" : If SCHICHT.contains("BLAU") Then vm = "ZOLL2"
Dim o As usrCntlDienstWoche = Nothing
If dgv_tmp.Parent.Parent.GetType() Is GetType(usrCntlDienstWoche) Then o = dgv_tmp.Parent.Parent
@@ -1967,6 +1980,7 @@ Public Class frmDienstplanVariabel
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 "ctiDbl"
' changeDGVToDBL(dgv_tmp)
Case "ctiWocheSchichtWechsel"
@@ -2018,6 +2032,8 @@ Public Class frmDienstplanVariabel
Dim vorherigeAbt = getValuesDienstDGV(o, dgv_tmp.Name, "abt")
eintrag.dstetr_datum = datum
eintrag.dstetr_art = s.schicht_name
eintrag.dstetr_splitschicht = s.SCHICHT.dedet_Splitschicht
eintrag.dstetr_hauptsplitschicht = s.SCHICHT.dedet_Hauptsplitschicht
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)
@@ -2037,7 +2053,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_von = timeVon
eintrag.dstetr_bis = timeBis
SQLDienst.insertByDienstEintrag(eintrag, niederlassung)
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Next
@@ -2045,27 +2061,6 @@ Public Class frmDienstplanVariabel
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
@@ -2110,6 +2105,9 @@ Public Class frmDienstplanVariabel
'Wenn hier drin, dann gibt es an dem Tag den bezogenen Schichteintrag
For Each id In ids
'Eintrag wird für alle IDs geändert
If s.SCHICHT.dedet_Splitschicht Then
MsgBox(s.schicht_name)
End If
SQLDienst.updateDienstEintragArtChangeByDstMaId(id, datumtmp, s.schicht_name, sz.dsz_von, sz.dsz_bis, "", sz.dsz_pause)
Next
End If
@@ -2211,7 +2209,7 @@ Public Class frmDienstplanVariabel
End If
Next
Else
MsgBox("Bei dieser Funktion muss genau ein Mitarbeiter auswegählt sein!")
MsgBox("Bei dieser Funktion muss genau ein Mitarbeiter ausgewählt sein!")
End If
Catch ex As Exception
MessageBox.Show("changeDGVWoSchicht-Error: " & ex.Message)
@@ -2275,11 +2273,18 @@ Public Class frmDienstplanVariabel
Dim bis As String = getDefaultTimeBySchicht(abt, "bis", datum.ToString("ddd", New CultureInfo("de-DE")).Replace(".", "").ToUpper)
Dim pause As String = getDefaultTimeBySchicht(abt, "pause", datum.ToString("ddd", New CultureInfo("de-DE")).Replace(".", "").ToUpper)
SQLDienst.updateDienstEintragArtChange(r.Cells(0).Value, datum.ToShortDateString, abt, von, bis, pause)
If r.Cells("dstetr_hauptsplitschicht").Value AndAlso SQLDienst.getCountEntrys(r.Cells("dstma_id").Value, datum, datum, True) AndAlso
(abt = "URL" Or abt = "DR" Or abt = "FREI" Or abt = "QS" Or abt = "KS" Or abt = "ZA") Then
deleteSplitschichten(r.Cells("dstma_id").Value, datum, r.Cells(1).Value)
End If
If abt.Contains("ZOLL") Or abt = "QS" And r.Cells("dstma_arbvh").Value = "TZ" Then
checkMaTageIfTeilzeit(r.Cells("dstma_id").Value)
End If
Next
initDienstplan()
@@ -2770,4 +2775,13 @@ Public Class frmDienstplanVariabel
End Function
Private Sub deleteSplitschichten(MAID As Integer, datum As Date, MAName As String)
If vbYes = MsgBox("Achtung, es werden alle Splitschichten für Mitarbeiter " & MAName & " vom " & datum & " entfernt!" & vbCrLf & "Fortfahren?", vbYesNo) Then
SQLDienst.delOnlyDstEintraegeSplitschichtenMaId(datum, niederlassung, MAID)
End If
End Sub
End Class

View File

@@ -1,4 +1,6 @@
Public Class frmSchichtenZeiten
Imports System.Windows
Public Class frmSchichtenZeiten
Dim ADMIN As New cOptionenDAL
Dim DP As New cDienstplan
Public niederlassung As String = ""
@@ -112,6 +114,8 @@
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
@@ -170,8 +174,9 @@
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)
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")
@@ -194,11 +199,24 @@
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
MsgBox("Funktion noch nicht verfügbar!")
'dgvSchihten.AllowUserToAddRows = True
'Dim row As New DataGridViewRow
'dgvSchihten.Rows.Add()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("Funktion noch nicht verfügbar!")
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

View File

@@ -130,6 +130,10 @@ Public Class cDienstEintrag
Property dstetr_pause As Double = 0
Property dstetr_grund As String = ""
Property dstetr_info As String = ""
Property dstetr_splitschicht As Boolean = False
Property dstetr_hauptsplitschicht As Boolean = False
End Class
@@ -171,7 +175,7 @@ Public Class cDienstDGV
Property dgvAbteilung As String = ""
Property dgvVon As String = ""
Property dgvBis As String = ""
Property dgvIsSplitSchicht As Boolean
Property dgvIsHauptsplitschicht As Boolean = False
Property USRCNTL As usrCntlDienstWoche = Nothing
Public Sub New(ByVal dgvName As String, ByVal dgvDatum As Date, ByVal dgvAbteilung As String, ByVal dgvVon As String, ByVal dgvBis As String, Optional USRCNTL As Object = Nothing)
@@ -183,13 +187,14 @@ Public Class cDienstDGV
Me.USRCNTL = USRCNTL
End Sub
Public Sub New(ByVal dgvName As String, ByVal dgvDatum As Date, ByVal dgvAbteilung As String, Optional USRCNTL As Object = Nothing)
Public Sub New(ByVal dgvName As String, ByVal dgvDatum As Date, ByVal dgvAbteilung As String, Optional USRCNTL As Object = Nothing, Optional dgvIsHauptsplitschicht As Boolean = False)
Me.dgvName = dgvName
Me.dgvDatum = dgvDatum
Me.dgvAbteilung = dgvAbteilung
Me.dgvVon = "00:00"
Me.dgvBis = "00:00"
Me.USRCNTL = USRCNTL
Me.dgvIsHauptsplitschicht = dgvIsHauptsplitschicht
End Sub

View File

@@ -2572,6 +2572,9 @@ Public Class cDienstplan
Return False
End Function
Public Function delDienstplanUeberSdtMa(ByVal kw As Integer, ByVal jahr As Integer, niederlassung As String) As Boolean
Dim sql = "DELETE FROM [tblDienstplanUeberSdtMa] WHERE [usma_idKW]=@kw AND [usma_idJahr]=@jahr AND usma_niederlassung=@niederlassung"
@@ -3004,12 +3007,12 @@ Public Class cDienstplan
End Function
Public Function updateEintraegeDetails_Benuterdef(dedet_id, dedet_bezeichnungDP, dedet_ProzentGrafik, dedet_bezeichnungExcel, dedet_bezeichnungExcel2, dedet_bezeichnungExcel3, dedet_ZeilenExcel, dedet_benutzerdefinierteSchicht, dedet_stdWieArbeitszeit, dedet_reihenfolge, dedet_TagesWechsel, dedet_WechselZuSchicht, dedet_HotKey, dedet_bgAlternativeFarbe, dedet_ExcelBgFarbe, dedet_bezLeiter, dedet_ExcelMonatFarbe, dedet_ExcelMonatBezeichnung, dedet_aktiv) As Boolean
Public Function updateEintraegeDetails_Benuterdef(dedet_id, dedet_bezeichnungDP, dedet_ProzentGrafik, dedet_bezeichnungExcel, dedet_bezeichnungExcel2, dedet_bezeichnungExcel3, dedet_ZeilenExcel, dedet_benutzerdefinierteSchicht, dedet_stdWieArbeitszeit, dedet_reihenfolge, dedet_TagesWechsel, dedet_WechselZuSchicht, dedet_HotKey, dedet_bgAlternativeFarbe, dedet_ExcelBgFarbe, dedet_bezLeiter, dedet_ExcelMonatFarbe, dedet_ExcelMonatBezeichnung, dedet_aktiv, dedet_splitschicht, dedet_hauptsplitschicht) As Boolean
Dim hAuswahl As String = ""
Dim sql As String = "UPDATE tblDienstplanEintraegeDetails " &
"SET dedet_bezeichnungDP=@dedet_bezeichnungDP,dedet_ProzentGrafik=@dedet_ProzentGrafik,dedet_bezeichnungExcel=@dedet_bezeichnungExcel,dedet_bezeichnungExcel2=@dedet_bezeichnungExcel2,dedet_bezeichnungExcel3=@dedet_bezeichnungExcel3,dedet_ZeilenExcel=@dedet_ZeilenExcel,dedet_benutzerdefinierteSchicht=@dedet_benutzerdefinierteSchicht,dedet_stdWieArbeitszeit=@dedet_stdWieArbeitszeit, " &
" dedet_reihenfolge=@dedet_reihenfolge,dedet_TagesWechsel=@dedet_TagesWechsel,dedet_WechselZuSchicht=@dedet_WechselZuSchicht,dedet_HotKey=@dedet_HotKey ,dedet_bgAlternativeFarbe=@dedet_bgAlternativeFarbe, dedet_ExcelBgFarbe=@dedet_ExcelBgFarbe,dedet_bezLeiter=@dedet_bezLeiter,dedet_ExcelMonatFarbe=@dedet_ExcelMonatFarbe,dedet_ExcelMonatBezeichnung=@dedet_ExcelMonatBezeichnung,dedet_aktiv=@dedet_aktiv " &
" dedet_reihenfolge=@dedet_reihenfolge,dedet_TagesWechsel=@dedet_TagesWechsel,dedet_WechselZuSchicht=@dedet_WechselZuSchicht,dedet_HotKey=@dedet_HotKey ,dedet_bgAlternativeFarbe=@dedet_bgAlternativeFarbe, dedet_ExcelBgFarbe=@dedet_ExcelBgFarbe,dedet_bezLeiter=@dedet_bezLeiter,dedet_ExcelMonatFarbe=@dedet_ExcelMonatFarbe,dedet_ExcelMonatBezeichnung=@dedet_ExcelMonatBezeichnung,dedet_aktiv=@dedet_aktiv, dedet_splitschicht=@dedet_splitschicht, dedet_hauptsplitschicht=@dedet_hauptsplitschicht " &
" WHERE dedet_id=@dedet_id "
@@ -3038,6 +3041,8 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dedet_ExcelMonatFarbe", dedet_ExcelMonatFarbe)
cmd.Parameters.AddWithValue("@dedet_ExcelMonatBezeichnung", dedet_ExcelMonatBezeichnung)
cmd.Parameters.AddWithValue("@dedet_aktiv", dedet_aktiv)
cmd.Parameters.AddWithValue("@dedet_splitschicht", dedet_splitschicht)
cmd.Parameters.AddWithValue("@dedet_hauptsplitschicht", dedet_hauptsplitschicht)
Try
cmd.ExecuteNonQuery()
@@ -3050,6 +3055,24 @@ Public Class cDienstplan
Return False
End Function
Public Function delEintraegeDetails(ByVal dedet_id As Integer) As Boolean
Dim sql = "DELETE FROM tblDienstplanEintraegeDetails WHERE dedet_id=@dedet_id"
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@dedet_id", dedet_id)
Try
cmd.ExecuteNonQuery()
Return True
Catch ex As SqlException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen")
End Try
End Using
End Using
Return False
End Function
Public Function delDienstNichtAnwesendKW_ByMaID(ByVal id As Integer) As Boolean
Dim hAuswahl As String = ""
'tblDienstNichtAnwesend
@@ -3536,6 +3559,25 @@ Public Class cDienstplan
Return False
End Function
Public Function delOnlyDstEintraegeSplitschichtenMaId(datum, niederlassung, dstetr_dstmaId) As Boolean
Dim sql = "DELETE FROM tblDienstplanEintraege " &
"WHERE dstetr_niederlassung= '" & niederlassung & "' AND dstetr_datum = @datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_splitschicht = 1"
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@datum", datum)
cmd.Parameters.AddWithValue("@dstetr_dstmaId", dstetr_dstmaId)
Try
cmd.ExecuteNonQuery()
Return True
Catch ex As SqlException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim löschen")
End Try
End Using
End Using
Return False
End Function
Public Function getMaIDFromMitID(mit_id As Integer) As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -3622,17 +3664,17 @@ Public Class cDienstplan
Public Function updateInsertByDienstEintrag(ByVal daten As cDienstEintrag, niederlassung As String) As Boolean
Dim sql As String = " begin tran" &
" if exists (select * from tblDienstplanEintraege with (updlock,serializable) where dstetr_datum = @dstetr_datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_niederlassung=@dstetr_niederlassung) " &
" if exists (select * from tblDienstplanEintraege with (updlock,serializable) where dstetr_datum = @dstetr_datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_niederlassung=@dstetr_niederlassung AND dstetr_art=@dstetr_art) " & 'AND dstetr_art=@dstetr_art hinzugefügt!
" begin " &
" UPDATE tblDienstplanEintraege " &
" SET dstetr_dstmaId=@dstetr_dstmaId, dstetr_art=@dstetr_art, dstetr_von=@dstetr_von, dstetr_bis=@dstetr_bis, dstetr_grund=@dstetr_grund, dstetr_info=@dstetr_info,dstetr_niederlassung=@dstetr_niederlassung,dstetr_pause=@dstetr_pause " &
" SET dstetr_dstmaId=@dstetr_dstmaId, dstetr_art=@dstetr_art, dstetr_von=@dstetr_von, dstetr_bis=@dstetr_bis, dstetr_grund=@dstetr_grund, dstetr_info=@dstetr_info,dstetr_niederlassung=@dstetr_niederlassung,dstetr_pause=@dstetr_pause,dstetr_hauptsplitschicht=@dstetr_hauptsplitschicht,dstetr_splitschicht=@dstetr_splitschicht " &
" WHERE dstetr_datum = @dstetr_datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_niederlassung=@dstetr_niederlassung " &
" End " &
" Else " &
" begin " &
"INSERT INTO tblDienstplanEintraege " &
"( dstetr_dstmaId, dstetr_datum, dstetr_art, dstetr_von, dstetr_bis, dstetr_grund, dstetr_info, dstetr_niederlassung,dstetr_pause) VALUES " &
"( @dstetr_dstmaId, @dstetr_datum, @dstetr_art, @dstetr_von, @dstetr_bis, @dstetr_grund, @dstetr_info,@dstetr_niederlassung,@dstetr_pause )" &
"( dstetr_dstmaId, dstetr_datum, dstetr_art, dstetr_von, dstetr_bis, dstetr_grund, dstetr_info, dstetr_niederlassung,dstetr_pause,dstetr_hauptsplitschicht,dstetr_splitschicht) VALUES " &
"( @dstetr_dstmaId, @dstetr_datum, @dstetr_art, @dstetr_von, @dstetr_bis, @dstetr_grund, @dstetr_info,@dstetr_niederlassung,@dstetr_pause,@dstetr_hauptsplitschicht,@dstetr_splitschicht )" &
" End " &
" commit tran "
@@ -3648,6 +3690,8 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dstetr_grund", daten.dstetr_grund)
cmd.Parameters.AddWithValue("@dstetr_info", daten.dstetr_info)
cmd.Parameters.AddWithValue("@dstetr_niederlassung", niederlassung)
cmd.Parameters.AddWithValue("@dstetr_hauptsplitschicht", daten.dstetr_hauptsplitschicht)
cmd.Parameters.AddWithValue("@dstetr_splitschicht", daten.dstetr_splitschicht)
'MsgBox(daten.dstetr_dstmaId)
Try
@@ -3661,52 +3705,6 @@ Public Class cDienstplan
Return False
End Function
Public Function insertByDienstEintrag(ByVal daten As cDienstEintrag, niederlassung As String) As Boolean
Dim sql As String = " begin tran" &
" if exists (select * from tblDienstplanEintraege with (updlock,serializable) where dstetr_datum = @dstetr_datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_niederlassung=@dstetr_niederlassung AND dstetr_art=@dstetr_art) " &
" begin " &
" UPDATE tblDienstplanEintraege " &
" SET dstetr_dstmaId=@dstetr_dstmaId, dstetr_art=@dstetr_art, dstetr_von=@dstetr_von, dstetr_bis=@dstetr_bis, dstetr_grund=@dstetr_grund, dstetr_info=@dstetr_info,dstetr_niederlassung=@dstetr_niederlassung,dstetr_pause=@dstetr_pause " &
" WHERE dstetr_datum = @dstetr_datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_niederlassung=@dstetr_niederlassung " &
" End " &
" Else " &
" begin " &
"INSERT INTO tblDienstplanEintraege " &
"( dstetr_dstmaId, dstetr_datum, dstetr_art, dstetr_von, dstetr_bis, dstetr_grund, dstetr_info, dstetr_niederlassung,dstetr_pause) VALUES " &
"( @dstetr_dstmaId, @dstetr_datum, @dstetr_art, @dstetr_von, @dstetr_bis, @dstetr_grund, @dstetr_info,@dstetr_niederlassung,@dstetr_pause )" &
" End " &
" commit tran "
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@dstetr_id", daten.dstetr_id)
cmd.Parameters.AddWithValue("@dstetr_dstmaId", daten.dstetr_dstmaId)
cmd.Parameters.AddWithValue("@dstetr_datum", daten.dstetr_datum)
cmd.Parameters.AddWithValue("@dstetr_art", daten.dstetr_art)
cmd.Parameters.AddWithValue("@dstetr_von", daten.dstetr_von)
cmd.Parameters.AddWithValue("@dstetr_bis", daten.dstetr_bis)
cmd.Parameters.AddWithValue("@dstetr_pause", CDbl(daten.dstetr_pause))
cmd.Parameters.AddWithValue("@dstetr_grund", daten.dstetr_grund)
cmd.Parameters.AddWithValue("@dstetr_info", daten.dstetr_info)
cmd.Parameters.AddWithValue("@dstetr_niederlassung", niederlassung)
'MsgBox(daten.dstetr_dstmaId)
Try
cmd.ExecuteNonQuery()
Return True
Catch ex As SqlException
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm")
End Try
End Using
End Using
Return False
End Function
Public Function getDienstEintragList(datum As Date, niederlassung As String) As List(Of cDienstEintrag)
Dim sql As String = " SELECT * FROM tblDienstplanEintraege WHERE dstetr_datum = @dstetr_datum AND dstetr_niederlassung=@dstetr_niederlassung "
Dim daten As List(Of cDienstEintrag) = Nothing
@@ -4089,11 +4087,14 @@ Public Class cDienstplan
Return 0
End Function
Public Function getCountEntrys(maId As Integer, datum_von As Date, datum_bis As Date) As Integer
Public Function getCountEntrys(maId As Integer, datum_von As Date, datum_bis As Date, Optional onlySplitschichten As Boolean = False) As Integer
Dim sqlWhere As String = ""
If onlySplitschichten Then sqlWhere &= "AND dstetr_splitschicht = 1"
Try
Dim stunden As Integer
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(" SELECT COUNT(*) FROM tblDienstplanEintraege WHERE dstetr_dstmaId=" & maId & " AND dstetr_datum BETWEEN '" & datum_von.ToShortDateString & "' AND '" & datum_bis.ToShortDateString & "' ", conn)
Using cmd As New SqlCommand(" SELECT COUNT(*) FROM tblDienstplanEintraege WHERE dstetr_dstmaId=" & maId & " AND dstetr_datum BETWEEN '" & datum_von.ToShortDateString & "' AND '" & datum_bis.ToShortDateString & "' " & sqlWhere, conn)
Dim dr = cmd.ExecuteReader()
Dim cPF As New cProgramFunctions
If dr.HasRows Then