diff --git a/UID/Dienstplan/frmDienstplanVariabel.vb b/UID/Dienstplan/frmDienstplanVariabel.vb index e3ba7d0..ff582d2 100644 --- a/UID/Dienstplan/frmDienstplanVariabel.vb +++ b/UID/Dienstplan/frmDienstplanVariabel.vb @@ -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 - - 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)} ' - 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)} ' - AddHandler menuGanzeWoche.Click, AddressOf GanzeWocheToolStripMenuItem_Click - GanzeWocheToolStripMenuItem.DropDownItems.Add(menuGanzeWoche) - + Dim menuGanzeWoche As ToolStripMenuItem Dim splitSchichten As ToolStripMenuItem - If s.SCHICHT.dedet_Splitschicht Then + 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)} + AddHandler menu1.Click, AddressOf Schicht2ToolStripMenuItem_Click + ctxtDgv.Items.Insert(i, menu1) + + 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) + + Else + 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 \ No newline at end of file diff --git a/UID/Dienstplan/frmSchichtenZeiten.vb b/UID/Dienstplan/frmSchichtenZeiten.vb index ff9cf6d..30ad25e 100644 --- a/UID/Dienstplan/frmSchichtenZeiten.vb +++ b/UID/Dienstplan/frmSchichtenZeiten.vb @@ -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 = "" @@ -109,9 +111,11 @@ CheckBox1.Checked = False End If - txtExcelMonat.Text = SCHICHT.dedet_ExcelMonatBezeichnung + 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 @@ -155,7 +159,7 @@ bg = DBNull.Value End If - + Dim bgExcel As Object If CheckBox2.Checked Then bgExcel = ColorTranslator.ToHtml(btnExcelColor.BackColor) @@ -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") @@ -179,7 +184,7 @@ '' d.dedet_bezeichnungExcel = dr.Item("dedet_bezeichnungExcel") ' d.dedet_ZeilenExcel = dr.Item("dedet_ZeilenExcel") - + End Sub @@ -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 diff --git a/UID/cClasses.vb b/UID/cClasses.vb index fb935fa..9b13256 100644 --- a/UID/cClasses.vb +++ b/UID/cClasses.vb @@ -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 diff --git a/UID/cSqlDb.vb b/UID/cSqlDb.vb index f4e4066..1f679c3 100644 --- a/UID/cSqlDb.vb +++ b/UID/cSqlDb.vb @@ -2571,7 +2571,10 @@ Public Class cDienstplan End Using 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