This commit is contained in:
2023-01-10 10:08:51 +01:00
13 changed files with 1097 additions and 484 deletions

View File

@@ -25,6 +25,8 @@
Property dedet_ExcelMonatFarbe As Object
Property dedet_ExcelMonatBezeichnung As String = ""
Property dedet_Splitschicht As Boolean = False
Property dedet_Hauptsplitschicht As Boolean = False
Property dedet_Aktiv As Boolean = True
Property ZEITEN As New List(Of cDienstplanSchichtZeiten)
@@ -71,6 +73,8 @@
Me.dedet_ExcelMonatFarbe = If(row("dedet_ExcelMonatFarbe") IsNot DBNull.Value, row("dedet_ExcelMonatFarbe"), Nothing)
Me.dedet_ExcelMonatBezeichnung = If(row("dedet_ExcelMonatBezeichnung") IsNot DBNull.Value, row("dedet_ExcelMonatBezeichnung"), "")
Me.dedet_Aktiv = CBool(row("dedet_Aktiv"))
Me.dedet_Splitschicht = CBool(row("dedet_Splitschicht"))
Me.dedet_Hauptsplitschicht = CBool(row("dedet_Hauptsplitschicht"))
LOAD_ZEITEN(Me.dedet_id)
End If

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmDienstplanVariabel
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
@@ -20,7 +20,7 @@ Partial Class frmDienstplanVariabel
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem("KW 1")
@@ -39,6 +39,7 @@ Partial Class frmDienstplanVariabel
Me.ctiBemWo = New System.Windows.Forms.ToolStripMenuItem()
Me.NormaldienstToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.GanzeWocheToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripMenuSplitschicht = New System.Windows.Forms.ToolStripMenuItem()
Me.TabPage1 = New System.Windows.Forms.TabPage()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.Button2 = New System.Windows.Forms.Button()
@@ -60,6 +61,8 @@ Partial Class frmDienstplanVariabel
Me.cboQSSpaet = New System.Windows.Forms.ComboBox()
Me.Label23 = New System.Windows.Forms.Label()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.txtSchichtstd = New System.Windows.Forms.TextBox()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.txtWoStd = New System.Windows.Forms.TextBox()
Me.TabControl1 = New System.Windows.Forms.TabControl()
@@ -151,9 +154,10 @@ Partial Class frmDienstplanVariabel
Me.Button4 = New System.Windows.Forms.Button()
Me.Button3 = New System.Windows.Forms.Button()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.SchichtLöcshenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.Panel4 = New System.Windows.Forms.Panel()
Me.Button19 = New System.Windows.Forms.Button()
Me.pnlOptions = New System.Windows.Forms.Panel()
Me.Button19 = New System.Windows.Forms.Button()
Me.UsrcntlAuswertungWocheAuslastung1 = New ADMIN.usrcntlAuswertungWocheAuslastung()
Me.UsrCntlAuswertungAuslastungMA1 = New ADMIN.usrCntlAuswertungAuslastungMA()
Me.ctxtDgv.SuspendLayout()
@@ -211,15 +215,16 @@ Partial Class frmDienstplanVariabel
CType(Me.dgvUrl_Do, System.ComponentModel.ISupportInitialize).BeginInit()
Me.tbAuswertung.SuspendLayout()
Me.tbTagesverteilung.SuspendLayout()
Me.ContextMenuStrip1.SuspendLayout()
Me.Panel4.SuspendLayout()
Me.pnlOptions.SuspendLayout()
Me.SuspendLayout()
'
'ctxtDgv
'
Me.ctxtDgv.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ctiFrei, Me.ctiUrlaub, Me.ctiKrankenstand, Me.ctiDienstreise, Me.ZeitausgleichToolStripMenuItem, Me.ctiDbl, Me.ctiWocheSchichtWechsel, Me.ctiBemWo, Me.NormaldienstToolStripMenuItem, Me.GanzeWocheToolStripMenuItem})
Me.ctxtDgv.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ctiFrei, Me.ctiUrlaub, Me.ctiKrankenstand, Me.ctiDienstreise, Me.ZeitausgleichToolStripMenuItem, Me.ctiDbl, Me.ctiWocheSchichtWechsel, Me.ctiBemWo, Me.NormaldienstToolStripMenuItem, Me.GanzeWocheToolStripMenuItem, Me.ToolStripMenuSplitschicht})
Me.ctxtDgv.Name = "ctxtDgvSchicht1"
Me.ctxtDgv.Size = New System.Drawing.Size(229, 224)
Me.ctxtDgv.Size = New System.Drawing.Size(229, 246)
'
'ctiFrei
'
@@ -288,6 +293,12 @@ Partial Class frmDienstplanVariabel
Me.GanzeWocheToolStripMenuItem.Size = New System.Drawing.Size(228, 22)
Me.GanzeWocheToolStripMenuItem.Text = "--> Ganze Woche"
'
'ToolStripMenuSplitschicht
'
Me.ToolStripMenuSplitschicht.Name = "ToolStripMenuSplitschicht"
Me.ToolStripMenuSplitschicht.Size = New System.Drawing.Size(228, 22)
Me.ToolStripMenuSplitschicht.Text = "--> Splitschicht hinzufügen"
'
'TabPage1
'
Me.TabPage1.Controls.Add(Me.PictureBox1)
@@ -493,6 +504,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)
@@ -518,11 +531,34 @@ Partial Class frmDienstplanVariabel
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Details zum aktuellen Eintrag"
'
'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
'
'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
'
'Label2
'
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
@@ -533,7 +569,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
@@ -566,7 +602,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
@@ -1586,8 +1622,15 @@ Partial Class frmDienstplanVariabel
'
'ContextMenuStrip1
'
Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SchichtLöcshenToolStripMenuItem})
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4)
Me.ContextMenuStrip1.Size = New System.Drawing.Size(181, 48)
'
'SchichtLöcshenToolStripMenuItem
'
Me.SchichtLöcshenToolStripMenuItem.Name = "SchichtLöcshenToolStripMenuItem"
Me.SchichtLöcshenToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.SchichtLöcshenToolStripMenuItem.Text = "Schicht löschen"
'
'Panel4
'
@@ -1607,23 +1650,6 @@ Partial Class frmDienstplanVariabel
Me.Panel4.Size = New System.Drawing.Size(1545, 42)
Me.Panel4.TabIndex = 3
'
'Button19
'
Me.Button19.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button19.FlatAppearance.BorderSize = 0
Me.Button19.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button19.ForeColor = System.Drawing.Color.Black
Me.Button19.Image = Global.ADMIN.My.Resources.Resources.Excel_2013_logo_155x110
Me.Button19.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.Button19.Location = New System.Drawing.Point(234, 7)
Me.Button19.Name = "Button19"
Me.Button19.Size = New System.Drawing.Size(98, 27)
Me.Button19.TabIndex = 107
Me.Button19.Tag = "Dienstplan erstellen"
Me.Button19.Text = "Monat"
Me.Button19.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Button19.UseVisualStyleBackColor = True
'
'pnlOptions
'
Me.pnlOptions.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
@@ -1643,6 +1669,23 @@ Partial Class frmDienstplanVariabel
Me.pnlOptions.Size = New System.Drawing.Size(1088, 41)
Me.pnlOptions.TabIndex = 108
'
'Button19
'
Me.Button19.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button19.FlatAppearance.BorderSize = 0
Me.Button19.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button19.ForeColor = System.Drawing.Color.Black
Me.Button19.Image = Global.ADMIN.My.Resources.Resources.Excel_2013_logo_155x110
Me.Button19.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.Button19.Location = New System.Drawing.Point(234, 7)
Me.Button19.Name = "Button19"
Me.Button19.Size = New System.Drawing.Size(98, 27)
Me.Button19.TabIndex = 107
Me.Button19.Tag = "Dienstplan erstellen"
Me.Button19.Text = "Monat"
Me.Button19.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Button19.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))
@@ -1733,6 +1776,7 @@ Partial Class frmDienstplanVariabel
CType(Me.dgvUrl_Do, System.ComponentModel.ISupportInitialize).EndInit()
Me.tbAuswertung.ResumeLayout(False)
Me.tbTagesverteilung.ResumeLayout(False)
Me.ContextMenuStrip1.ResumeLayout(False)
Me.Panel4.ResumeLayout(False)
Me.Panel4.PerformLayout()
Me.pnlOptions.ResumeLayout(False)
@@ -1868,4 +1912,8 @@ Partial Class frmDienstplanVariabel
Friend WithEvents Button18 As System.Windows.Forms.Button
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
Friend WithEvents SchichtLöcshenToolStripMenuItem As ToolStripMenuItem
End Class

View File

@@ -1,4 +1,5 @@
Imports System.Globalization
Imports System.Security.Authentication.ExtendedProtection
Imports Microsoft.Office.Interop
Public Class frmDienstplanVariabel
@@ -12,6 +13,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"
@@ -101,6 +103,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 "
@@ -109,8 +112,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)
@@ -123,19 +126,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)
@@ -395,15 +398,21 @@ Public Class frmDienstplanVariabel
For Each r As DataRow In DTBenutzer.Rows
Dim SCHICHT As New cDienstplanSchicht(r("dedet_id"))
Dim u As New usrCntlDienstWoche(SCHICHT, SETTINGS)
If True Then 'SCHICHT.dedet_Splitschicht = False Then 'Splitschichten nicht im DGV anzeigen
u.Height = (FlowLayoutPanel.Height - 5) * (SCHICHT.dedet_ProzentGrafik / 100)
FlowLayoutPanel.Controls.Add(u)
' MsgBox("TEST")
'MsgBox(SCHICHT.dedet_info)
End If
Dim schicht_Name = SCHICHT.dedet_abt
If schicht_Name = "ZOLL1" Then schicht_Name = "ZOLL_VM"
If schicht_Name = "ZOLL2" Then schicht_Name = "ZOLL_NM"
u.schicht_name = schicht_Name
BEN_SCHICHTEN.Add(u)
SCHICHTEN_ARTEN.Add(SCHICHT)
Next
initWeekInfo()
@@ -413,15 +422,29 @@ Public Class frmDienstplanVariabel
'ConetxtMenü für verschieben aktivieren
Dim i As Integer = 0
For Each s In BEN_SCHICHTEN
Dim menu1 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)} '
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)}
AddHandler menu1.Click, AddressOf Schicht2ToolStripMenuItem_Click
ctxtDgv.Items.Insert(i, menu1)
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)
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
Next
@@ -458,8 +481,9 @@ Public Class frmDienstplanVariabel
initDienstplan()
setDetails(entryId_TMP)
Me.Cursor = Cursors.Default
End Sub
'SCHICHT LÖCSHEN
AddHandler SchichtLöcshenToolStripMenuItem.Click, AddressOf SchichtLöcshenToolStripMenuItem_Click
initAusslastung()
@@ -483,8 +507,15 @@ 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.USRCNTL Is Nothing Then
' AddHandler d.LostFocus, AddressOf remHandlerKey
'Else
' If datagridview.USRCNTL.SCHICHT.dedet_Splitschicht <> True Then
' AddHandler d.LostFocus, AddressOf remHandlerKey
' End If
'End If
AddHandler d.LostFocus, AddressOf remHandlerKey
AddHandler d.MouseDown, AddressOf handleDGVContextMenue
AddHandler d.MouseClick, AddressOf handleDGVClick
AddHandler d.CellDoubleClick, AddressOf handleDGVDoubleClick
setDGV(d)
@@ -562,7 +593,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)
@@ -629,8 +660,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
@@ -789,12 +820,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")
@@ -826,7 +857,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
@@ -868,15 +899,25 @@ Public Class frmDienstplanVariabel
Try
entryId_TMP = entryId
Dim row As DataRow = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info as dstma_kuerzel,dstetr_info,dstma_id, dstetr_von,dstetr_bis,dstetr_art,dstetr_pause,dstetr_datum,dstma_mitId FROM tblDienstplanEintraege, tblDienstMitarb, tblMitarbeiter WHERE dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId AND dstetr_id='" & entryId & "'").Rows(0)
Dim row As DataRow = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info as dstma_kuerzel,dstetr_info,dstma_id, dstetr_von,dstetr_bis,dstetr_art,dstetr_pause,dstetr_datum,dstma_mitId, dstetr_splitschicht FROM tblDienstplanEintraege, tblDienstMitarb, tblMitarbeiter WHERE dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId AND dstetr_id='" & entryId & "'").Rows(0)
TextBox1.Text = row("dstetr_von").ToString
TextBox2.Text = row("dstetr_bis").ToString
TextBox3.Text = row("dstetr_info").ToString
TextBox4.Text = row("dstetr_pause").ToString
isSplitschicht = row("dstetr_splitschicht").ToString
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,8 +1043,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
@@ -1039,6 +1082,19 @@ Public Class frmDienstplanVariabel
thisDgv.CurrentCell.Selected = True
End If
' ctxtDgvSchicht1.Items(0).Text = String.Format("This is the cell at {0}, {1}", ht.ColumnIndex, ht.RowIndex)
If o.SCHICHT.dedet_Splitschicht = True Then
thisDgv.ContextMenuStrip = ContextMenuStrip1
If thisDgv.SelectedCells.Count = 0 Then
thisDgv.CurrentCell = thisDgv(ht.ColumnIndex, ht.RowIndex)
thisDgv.CurrentCell.Selected = True
End If
End If
End If
Else
RemoveHandler DirectCast(sender, DataGridView).KeyDown, AddressOf changeByKey
@@ -1072,12 +1128,16 @@ Public Class frmDienstplanVariabel
Dim d As Date = CDate(getValuesDienstDGV(o, dgv.Name, "datum"))
If o.SCHICHT.dedet_Splitschicht = True Then
MsgBox("Keine Änderungen bei Splitschichten erlaubt!")
Exit Sub
End If
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
If z.dsz_woTag = week(CDate((getValuesDienstDGV(o, dgv.Name, "datum"))).DayOfWeek) AndAlso s.SCHICHT.dedet_Splitschicht = False Then 'Wochentag
'Wenn Eintrag gefunden
changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), s.schicht_name))
Exit Sub
@@ -1113,9 +1173,7 @@ Public Class frmDienstplanVariabel
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
@@ -1232,7 +1290,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_dstmaId = m.dstma_id
eintrag.dstetr_datum = datum
If Not FT.isFeiertag(datum, SETTINGS.dpset_land) Then
If Not FT.isFeiertag(datum, IIf(m.dstma_land <> "", m.dstma_land, SETTINGS.dpset_land)) Then
If m.dstma_muster Then
' MsgBox("HIER")
@@ -1259,6 +1317,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
@@ -1327,6 +1386,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_pause = getDefaultTimeBySchicht(grund, "pause", week(datum.DayOfWeek).ToUpper)
End If
Next
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Next
@@ -1401,6 +1461,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")
@@ -1460,6 +1530,8 @@ Public Class frmDienstplanVariabel
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim cc = New ColorConverter
Dim DPmitSplitschichten As Boolean = False
Dim txt As String = Button4.Text
Button4.Text = txt & " (0 %)"
@@ -1474,20 +1546,25 @@ Public Class frmDienstplanVariabel
' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)
If Not My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\") Then
My.Computer.FileSystem.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\")
End If
Dim strFileName As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\tmp.xlsx"
Try
If DPcontainsSplitschichten() Then
If vbYes = MsgBox("Dieser Dienstplan enthält Splitschichten." & vbCrLf & "DP mit Splitschichten ausgeben?", vbYesNo) Then
DPmitSplitschichten = True
End If
End If
With exclApp
.Visible = False
Datei = .Workbooks.Open(AppDomain.CurrentDomain.BaseDirectory & "Resources\Dienstplan Variabel.xlsx")
Blatt = Datei.Worksheets("DIENSTPLAN")
Dim d As Date = CalendarWeek(aktWoche, aktJahr)
Blatt.Range("B2").Value = "MONTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("D2").Value = "DIENSTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
@@ -1518,11 +1595,14 @@ Public Class frmDienstplanVariabel
'BORDER
pos = 14
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Blatt.Range("A" & pos).Value = s.SCHICHT.dedet_bezeichnungExcel
' Blatt.Range("A" & pos).Style= = s.SCHICHT.dedet_bezeichnungExcel
Blatt.Range("A" & pos + 1).Value = s.SCHICHT.dedet_bezeichnungExcel2
Blatt.Range("A" & pos + 2).Value = s.SCHICHT.dedet_bezeichnungExcel3
pos += s.SCHICHT.dedet_ZeilenExcel + zeilenheader
End If
Try
' MsgBox("A14:N" & pos - 1)
Blatt.Range("A14:N" & pos - 1).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlMedium, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic)
@@ -1534,25 +1614,27 @@ Public Class frmDienstplanVariabel
'Zeilenheader
pos = 14
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
For Each z In s.SCHICHT.ZEITEN
Select Case z.dsz_woTag.ToUpper
Case "MO" : Blatt.Range("B" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "DI" : Blatt.Range("D" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "MI" : Blatt.Range("F" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "DO" : Blatt.Range("H" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "FR" : Blatt.Range("J" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "SA" : Blatt.Range("L" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "SO" : Blatt.Range("N" & pos).Value = " " & z.dsz_von & " - " & z.dsz_bis & " Uhr"
Case "MO" : Blatt.Range("B" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
Case "DI" : Blatt.Range("D" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
Case "MI" : Blatt.Range("F" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
Case "DO" : Blatt.Range("H" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
Case "FR" : Blatt.Range("J" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
Case "SA" : Blatt.Range("L" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
Case "SO" : Blatt.Range("N" & pos).Value = " " & IIf(z.dsz_von <> "" AndAlso z.dsz_bis <> "", z.dsz_von & " - " & z.dsz_bis & " Uhr", "")
End Select
Next
End If
Blatt.Range("B" & pos & ":N" & pos).Interior.Color = Color.FromArgb(197, 217, 241)
pos += s.SCHICHT.dedet_ZeilenExcel + zeilenheader
Next
'MONTAG
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String
@@ -1560,7 +1642,12 @@ Public Class frmDienstplanVariabel
For i = 0 To z - 1 : Tag(i + z) = "C" & i + pos : Next
Blatt = fill(s.dgv_Mo, Tag, Blatt, "MO", s.SCHICHT)
If (s.SCHICHT.dedet_ExcelMonatFarbe IsNot Nothing AndAlso s.SCHICHT.dedet_ExcelMonatFarbe.Substring(0, 1) = "#") Then
For i = 0 To z - 1 : Blatt.Range("B" & i + pos & ":N" & i + pos).Interior.Color = ColorTranslator.ToOle(cc.ConvertFromString(s.SCHICHT.dedet_ExcelMonatFarbe.ToString())) : Next
End If
pos += z + zeilenheader
End If
Next
Dim Zeile_ZA As Integer = 45
@@ -1595,6 +1682,7 @@ Public Class frmDienstplanVariabel
'DIENSTAG
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String
@@ -1603,6 +1691,7 @@ Public Class frmDienstplanVariabel
Blatt = fill(s.dgv_Di, Tag, Blatt, "DI", s.SCHICHT)
pos += z + zeilenheader
End If
Next
Dim ZADi(4) As String
@@ -1635,12 +1724,15 @@ Public Class frmDienstplanVariabel
'MITTWOCH
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String
For i = 0 To z - 1 : Tag(i) = "F" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "G" & i + pos : Next
Blatt = fill(s.dgv_Mi, Tag, Blatt, "MI", s.SCHICHT)
pos += z + zeilenheader
End If
Next
Dim ZAMi(4) As String
@@ -1673,12 +1765,14 @@ Public Class frmDienstplanVariabel
'DONNERSTAG
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String
For i = 0 To z - 1 : Tag(i) = "H" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "I" & i + pos : Next
Blatt = fill(s.dgv_Do, Tag, Blatt, "DO", s.SCHICHT)
pos += z + zeilenheader
End If
Next
Dim ZADo(4) As String
@@ -1711,12 +1805,14 @@ Public Class frmDienstplanVariabel
'FREITAG
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String
For i = 0 To z - 1 : Tag(i) = "J" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "K" & i + pos : Next
Blatt = fill(s.dgv_Fr, Tag, Blatt, "FR", s.SCHICHT)
pos += z + zeilenheader
End If
Next
Dim ZAFr(4) As String
@@ -1749,12 +1845,14 @@ Public Class frmDienstplanVariabel
'SAMSTAG
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String
For i = 0 To z - 1 : Tag(i) = "L" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "M" & i + pos : Next
Blatt = fill(s.dgv_Sa, Tag, Blatt, "SA", s.SCHICHT)
pos += z + zeilenheader
End If
Next
Dim ZASa(4) As String
@@ -1787,11 +1885,13 @@ Public Class frmDienstplanVariabel
'SONNTAG
pos = 15
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht = DPmitSplitschichten Or s.SCHICHT.dedet_Splitschicht = False Then
Dim z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z) As String
For i = 0 To z - 1 : Tag(i) = "N" & i + pos : Next
Blatt = fill(s.dgv_So, Tag, Blatt, "SO")
pos += z + zeilenheader
End If
Next
Dim ZASo(2) As String
@@ -1820,9 +1920,10 @@ Public Class frmDienstplanVariabel
.Visible = True
.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
Try : Datei.SaveAs(strFileName) : Catch : End Try
End With
Catch ex As Exception
MsgBox("ERRDP 7: " & ex.Message & ex.StackTrace)
End Try
@@ -1867,6 +1968,43 @@ Public Class frmDienstplanVariabel
Return Blatt
End Function
Function fillNew(dgv As DataGridView, s() As String, Blatt As Excel.Worksheet, Optional dayOweek As String = "", Optional SCHICHT As cDienstplanSchicht = Nothing) As Excel.Worksheet
With dgv
If .RowCount > 0 Then
Dim bg As Object = getBGFormSchichtSchichtArt(dayOweek, SCHICHT)
If bg IsNot Nothing Then Blatt.Range(s(0), s(s.Length - 1)).Interior.Color = ColorTranslator.FromHtml(bg)
Dim cnt As Integer = 0
For i = 0 To .RowCount - 1
Dim r As DataGridViewRow = .Rows(i)
MsgBox("DGV: " & dgv.Name & " RAGNE: " & s(i) & " VALUE: " & r.Cells(1).Value)
Try
If r.Cells(1).Style.ForeColor <> Color.Black Then Blatt.Range(s(i)).Font.Color = ColorTranslator.FromHtml(r.Cells(9).Value)
Catch : End Try
Try : Blatt.Range(s(i)).Value = r.Cells(1).Value : Catch : End Try
If dayOweek = "SO" Then
Try : Blatt.Range(s(i)).Font.Color = Color.Red : Catch : End Try
End If
If i = 0 And (SCHICHT IsNot Nothing AndAlso SCHICHT.dedet_bezLeiter <> "") Then '(dgv.Name.Contains("Zoll1") Or dgv.Name.Contains("Zoll2")) Then
Blatt.Range(s(i)).Value = Blatt.Range(s(i)).Value & " (" & SCHICHT.dedet_bezLeiter & ")"
Dim start As Integer = Blatt.Range(s(i)).Value.ToString.Length - SCHICHT.dedet_bezLeiter.Length
Blatt.Range(s(i)).Characters(Start:=start, Length:=SCHICHT.dedet_bezLeiter.Length).Font.Color = Color.Red
End If
'KASSE färblich
If r.Cells(1).Value.ToString.EndsWith("(KASSE)") Then
Dim start As Integer = Blatt.Range(s(i)).Value.ToString.Length - 5
Blatt.Range(s(i)).Characters(Start:=start, Length:=5).Font.Color = Color.Red
End If
Next
End If
End With
Return Blatt
End Function
Public Function getBGFormSchichtSchichtArt(dayOweek As String, Schicht_Tmp As cDienstplanSchicht) As Object
If Schicht_Tmp IsNot Nothing Then
If Schicht_Tmp.dedet_TagesWechsel Then
@@ -1900,11 +2038,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
@@ -1932,6 +2070,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"
@@ -1945,6 +2084,87 @@ Public Class frmDienstplanVariabel
End Select
End Sub
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
If o.SCHICHT.dedet_Hauptsplitschicht = False Then
MsgBox("In Schicht " & o.schicht_name & " sind keine Splitschichten erlaubt!")
Exit Sub
End If
Dim ids As New List(Of Integer)
Dim arr As DataGridViewSelectedCellCollection = dgv_tmp.SelectedCells
For Each c As DataGridViewCell In arr
Dim r As DataGridViewRow = c.OwningRow
ids.Add(r.Cells("dstma_id").Value)
Next
For Each s In BEN_SCHICHTEN
If a.Name = "cti_" & s.schicht_name Then
For Each id In ids
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
eintrag.dstetr_splitschicht = s.SCHICHT.dedet_Splitschicht
eintrag.dstetr_hauptsplitschicht = s.SCHICHT.dedet_Hauptsplitschicht
Dim timeVontempDGV = getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), vorherigeAbt).CurrentRow.Cells("dstetr_von").Value
Dim timeBistempDGV = getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), vorherigeAbt).CurrentRow.Cells("dstetr_bis").Value
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 Not (checkUeberschneidungen(timeVon, timeVontempDGV) And checkUeberschneidungen(timeBis, timeVontempDGV) Xor checkUeberschneidungen(timeBistempDGV, timeVon) And checkUeberschneidungen(timeBistempDGV, timeBis)) 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
End If
eintrag.dstetr_von = timeVon
eintrag.dstetr_bis = timeBis
If timeVon.Contains(":00") And timeBis.Contains(":00") Then
eintrag.dstetr_info = timeVon.Replace(":00", "") & "-" & timeBis.Replace(":00", "") & "h"
Else
eintrag.dstetr_info = timeVon & "-" & timeBis
End If
If SQLDienst.getCountEntrys(eintrag.dstetr_dstmaId, datum, datum, True, eintrag.dstetr_art) > 0 Then
If vbYes = MsgBox("ACHTUNG!" & vbCrLf & "Es gibt bereits einen Eintrag für diesen Mitarbeiter für " & s.schicht_name & " am " & datum & vbCrLf & "Trotzdem anlegen?", vbYesNo) Then
Dim latestDienstplanEintragNr = SQLDienst.getLatestDienstplanEintraegNr() + 1
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung, SQLDienst.getLatestDienstplanEintraegNr())
End If
End If
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Next
End If
Next
initDienstplan()
End Sub
Dim sourceCnTxt As Control = Nothing
Private Sub GanzeWocheToolStripMenuItem_Click(sender As Object, e As EventArgs) ' Handles ctiDbl.Click, ctiKrankenstand.Click, ctiFrei.Click, ctiDienstreise.Click, ctiUrlaub.Click, ctiWocheSchichtWechsel.Click, ctiBemWo.Click, ZeitausgleichToolStripMenuItem.Click
@@ -2008,6 +2228,7 @@ Public Class frmDienstplanVariabel
changeDGV(dgv_tmp, getDgvByDatArt(datumtmp, "FREI"))
Next
Case "ctiDienstreise"
For i = 0 To 6
changeDGV(dgv_tmp, getDgvByDatArt(datumtmp, "DR"))
Next
@@ -2024,6 +2245,8 @@ Public Class frmDienstplanVariabel
End Sub
' Sub changeDGVToDBL(dgv_sender As DataGridView)
' Me.Cursor = Cursors.WaitCursor
' Try
@@ -2046,6 +2269,7 @@ Public Class frmDienstplanVariabel
Sub changeDGVWoSchicht(dgv_sender As DataGridView)
Me.Cursor = Cursors.WaitCursor
Try
@@ -2087,7 +2311,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)
@@ -2151,11 +2375,20 @@ 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 Then
If 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
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()
@@ -2432,10 +2665,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
@@ -2629,4 +2864,51 @@ Public Class frmDienstplanVariabel
Private Sub Panel4_Paint(sender As Object, e As PaintEventArgs) Handles Panel4.Paint
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
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
Private Sub SchichtLöcshenToolStripMenuItem_Click(sender As Object, e As EventArgs)
Try
If vbYes = MsgBox("Möchten Sie die Splitschicht wirklich löschen?", vbYesNo) Then
SQLDienst.delDstEintraegeSplitschichtenId(entryId_TMP)
End If
Catch ex As Exception
MsgBox("Fehler beim Löschen des Eintrages.")
End Try
initDienstplan()
End Sub
Private Function DPcontainsSplitschichten() As Boolean
For Each s In BEN_SCHICHTEN
If s.SCHICHT.dedet_Splitschicht Then Return True
Next
Return False
End Function
End Class

View File

@@ -279,6 +279,8 @@ Partial Class frmDiestAddMa
Me.Label57 = New System.Windows.Forms.Label()
Me.txtStdFeiertagTZ = New System.Windows.Forms.TextBox()
Me.Label58 = New System.Windows.Forms.Label()
Me.lblLand = New System.Windows.Forms.Label()
Me.cboLand = New System.Windows.Forms.ComboBox()
Me.grpTeilzeit.SuspendLayout()
Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout()
@@ -2839,12 +2841,33 @@ Partial Class frmDiestAddMa
Me.Label58.TabIndex = 27
Me.Label58.Text = "Abweichende WochenStd.:"
'
'lblLand
'
Me.lblLand.AutoSize = True
Me.lblLand.Location = New System.Drawing.Point(411, 63)
Me.lblLand.Name = "lblLand"
Me.lblLand.Size = New System.Drawing.Size(66, 13)
Me.lblLand.TabIndex = 28
Me.lblLand.Text = "Land-Kürzel:"
'
'cboLand
'
Me.cboLand.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboLand.FormattingEnabled = True
Me.cboLand.Items.AddRange(New Object() {"", "ZOLL 1", "ZOLL 2", "ZOLL TAG", "QS"})
Me.cboLand.Location = New System.Drawing.Point(408, 79)
Me.cboLand.Name = "cboLand"
Me.cboLand.Size = New System.Drawing.Size(72, 21)
Me.cboLand.TabIndex = 29
'
'frmDiestAddMa
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(503, 626)
Me.Controls.Add(Me.cboLand)
Me.Controls.Add(Me.lblLand)
Me.Controls.Add(Me.Label58)
Me.Controls.Add(Me.dgvAbwWStd)
Me.Controls.Add(Me.Label57)
@@ -3151,4 +3174,6 @@ Partial Class frmDiestAddMa
Friend WithEvents txtStdFeiertagTZ As TextBox
Friend WithEvents dgvAbwWStd As VERAG_PROG_ALLGEMEIN.MyDatagridview
Friend WithEvents Label58 As Label
Friend WithEvents lblLand As Label
Friend WithEvents cboLand As ComboBox
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
@@ -55,6 +55,10 @@ Public Class frmDiestAddMa
cboFunktion.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Ferialpraktikant", "Ferialpraktikant"))
cboFunktion.SelectedIndex = 0
cboLand.Items.Clear()
cboLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT", "AT"))
cboLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE"))
@@ -107,6 +111,11 @@ Public Class frmDiestAddMa
' MsgBox(txtRotVonMo.Text)
MusterErr = False
If checkValues() Then
If cboLand.Text = "" Then
MsgBox("Bitte das Land eintragen")
cboLand.Focus()
Exit Sub
End If
If initMA() Then
Dim tz As List(Of cDienstTeilzeit) = initArbVerh()
If MusterErr Then MsgBox("Bei der Prüfung der Daten für die Muster-Vorlage ist ein Fehler aufgetreten! Bitte um Prüfung!") : Exit Sub
@@ -375,11 +384,13 @@ Public Class frmDiestAddMa
cboMyItemSelect(cboAbt, MA.dstma_abteilung)
cboMyItemSelect(cboFunktion, MA.dstma_funktion)
cboMyItemSelect(cboArbVerh, MA.dstma_arbvh)
cboMyItemSelect(cboLand, MA.dstma_land)
txtWoStd.Text = MA.dstma_wochenStunden
cboStammSchicht.Text = MA.dstma_stammSchicht
txtKuerzel.Text = MA.dstma_kuerzel
txtReihenfolge.Text = MA.dstma_reihenfolge
'cboLand.Text = MA.dstma_land
Button1.BackColor = ColorTranslator.FromHtml(MA.dstma_farbe)
If MA.dstma_TageProWoche >= 0 Then
@@ -628,6 +639,7 @@ Public Class frmDiestAddMa
MA.dstma_inaktiv = cbxInaktiv.Checked
MA.dstma_4wo = cbx4WoRhythmus.Checked
MA.dstma_TzFeiertageStd = Nothing
MA.dstma_land = CType(cboLand.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value
If IsNumeric(txtStdFeiertagTZ.Text) And txtStdFeiertagTZ.Visible Then MA.dstma_TzFeiertageStd = txtStdFeiertagTZ.Text
If IsNumeric(cboDaysPerWeek.Text) Then
@@ -643,6 +655,7 @@ Public Class frmDiestAddMa
End Function
Private Sub cboMA_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboMA.SelectedIndexChanged
' Dim oItem As VERAG_PROG_ALLGEMEIN.MyListItem = CType(cboMA.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem)
End Sub
Function cboMyItemSelect(cbo As ComboBox, value As String) As Boolean

View File

@@ -66,6 +66,8 @@ Partial Class frmSchichtenZeiten
Me.cbxRotMo = New System.Windows.Forms.CheckBox()
Me.cbxBenutzerdefinierteSchicht = New System.Windows.Forms.CheckBox()
Me.pnl = New System.Windows.Forms.Panel()
Me.cbxSplitschicht = New System.Windows.Forms.CheckBox()
Me.cbxHauptsplitschicht = New System.Windows.Forms.CheckBox()
Me.txtZusatzAL = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.CheckBox2 = New System.Windows.Forms.CheckBox()
@@ -536,6 +538,8 @@ Partial Class frmSchichtenZeiten
'
'pnl
'
Me.pnl.Controls.Add(Me.cbxSplitschicht)
Me.pnl.Controls.Add(Me.cbxHauptsplitschicht)
Me.pnl.Controls.Add(Me.txtZusatzAL)
Me.pnl.Controls.Add(Me.Label9)
Me.pnl.Controls.Add(Me.CheckBox2)
@@ -566,6 +570,26 @@ Partial Class frmSchichtenZeiten
Me.pnl.Size = New System.Drawing.Size(362, 165)
Me.pnl.TabIndex = 109
'
'cbxSplitschicht
'
Me.cbxSplitschicht.AutoSize = True
Me.cbxSplitschicht.Location = New System.Drawing.Point(210, 143)
Me.cbxSplitschicht.Name = "cbxSplitschicht"
Me.cbxSplitschicht.Size = New System.Drawing.Size(80, 17)
Me.cbxSplitschicht.TabIndex = 125
Me.cbxSplitschicht.Text = "Splitschicht"
Me.cbxSplitschicht.UseVisualStyleBackColor = True
'
'cbxHauptsplitschicht
'
Me.cbxHauptsplitschicht.AutoSize = True
Me.cbxHauptsplitschicht.Location = New System.Drawing.Point(210, 121)
Me.cbxHauptsplitschicht.Name = "cbxHauptsplitschicht"
Me.cbxHauptsplitschicht.Size = New System.Drawing.Size(107, 17)
Me.cbxHauptsplitschicht.TabIndex = 124
Me.cbxHauptsplitschicht.Text = "Hauptsplitschicht"
Me.cbxHauptsplitschicht.UseVisualStyleBackColor = True
'
'txtZusatzAL
'
Me.txtZusatzAL.Location = New System.Drawing.Point(102, 143)
@@ -1005,4 +1029,6 @@ Partial Class frmSchichtenZeiten
Friend WithEvents CheckBox3 As System.Windows.Forms.CheckBox
Friend WithEvents ColorDialog3 As System.Windows.Forms.ColorDialog
Friend WithEvents cbxAktiv As CheckBox
Friend WithEvents cbxSplitschicht As CheckBox
Friend WithEvents cbxHauptsplitschicht As CheckBox
End Class

View File

@@ -1,4 +1,7 @@
Public Class frmSchichtenZeiten
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 = ""
@@ -112,6 +115,11 @@
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)
@@ -167,8 +175,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")
@@ -191,11 +200,30 @@
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
MsgBox("Funktion noch nicht verfügbar!")
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)
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
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
@@ -227,4 +255,38 @@
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

View File

@@ -382,7 +382,7 @@ Public Class usrCntlDienstplan
End Select
rpt.txtTag.ForeColor = Color.Black
If FT.isFeiertag(datumKW, cDienstSettings.getLand(niederlassung)) Or datumKW.ToString("dd.MM.") = "31.12." Or datumKW.ToString("dd.MM.") = "24.12." Or datumKW.DayOfWeek = 0 Then 'Feiertag oder 1/2 Tag
If FT.isFeiertag(datumKW, IIf(MA_DST.dstma_land <> "", MA_DST.dstma_land, cDienstSettings.getLand(niederlassung))) Or datumKW.ToString("dd.MM.") = "31.12." Or datumKW.ToString("dd.MM.") = "24.12." Or datumKW.DayOfWeek = 0 Then 'Feiertag oder 1/2 Tag
rpt.txtTag.ForeColor = Color.Red
rpt.Detail.BackColor = Color.FromArgb(220, 220, 220)
End If

View File

@@ -22,10 +22,10 @@ Namespace My.Resources
'''<summary>
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"),
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),
Global.Microsoft.VisualBasic.HideModuleNameAttribute()>
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
@@ -35,7 +35,7 @@ Namespace My.Resources
'''<summary>
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
@@ -50,13 +50,13 @@ Namespace My.Resources
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
resourceCulture = Value
End Set
End Property

View File

@@ -85,6 +85,7 @@ End Class
Public Class cDienstMA
Property dstma_id As Integer
Property dstma_mitId As Integer
Property dstma_land As String = ""
Property dstma_abteilung As String = ""
Property dstma_funktion As String = ""
Property dstma_arbvh As String = ""
@@ -96,7 +97,6 @@ Public Class cDienstMA
Property dstma_muster As Boolean = False
Property dstma_WEStdRegelAZ As Boolean = False
Property dstma_4wo As Boolean = False
Property dstma_TageProWoche As Integer = -1
Property dstma_inaktiv As Boolean = False
Property dstma_TzFeiertageStd As Object = Nothing
@@ -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,6 +175,7 @@ Public Class cDienstDGV
Property dgvAbteilung As String = ""
Property dgvVon As String = ""
Property dgvBis As String = ""
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)
@@ -182,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

@@ -915,11 +915,14 @@ Public Class cProgramFunctions
Dim UrlStd As Double = 8
If StdFeiertag IsNot Nothing Then UrlStd = StdFeiertag
Dim dMa As cDienstMA = SQLDienst.getDstMAByDstMaId(dstma_id)
For i = 0 To 6
' Wochenstunden -= getWochenstundenTAG(datum, SCHICHT, dstma_id, dstma_muster, dstma_WEStdRegelAZ, dstma_arbvh, niederlassung)
Dim FT As New VERAG_PROG_ALLGEMEIN.cFeiertage(datum.Year)
If FT.isFeiertag(datum, cDienstSettings.getLand(niederlassung)) Or datum.ToString("dd.MM.") = "31.12." Or datum.ToString("dd.MM.") = "24.12." Then 'Feiertag oder 1/2 Tag
If FT.isFeiertag(datum, IIf(dMa.dstma_land <> "", dMa.dstma_land, cDienstSettings.getLand(niederlassung))) Or datum.ToString("dd.MM.") = "31.12." Or datum.ToString("dd.MM.") = "24.12." Then 'Feiertag oder 1/2 Tag
Dim woTag = datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper
If dstma_muster Then 'Wenn Muster, dann muss Feiertag bei VZ und TZ berüchsichtigt werden....
@@ -976,7 +979,8 @@ Public Class cProgramFunctions
Dim FT As New VERAG_PROG_ALLGEMEIN.cFeiertage(datum.Year)
Dim woTag = datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper
If FT.isFeiertag(datum, cDienstSettings.getLand(niederlassung)) Then 'Feiertag oder 1/2 Tag
Dim dMa As cDienstMA = SQLDienst.getDstMAByDstMaId(dstma_id)
If FT.isFeiertag(datum, IIf(dMa.dstma_land <> "", dMa.dstma_land, cDienstSettings.getLand(niederlassung))) Then 'Feiertag oder 1/2 Tag
getWochenstundenTAG = 0
ElseIf woTag = "SA" And woTag = "SO" Then
getWochenstundenTAG = 0

View File

@@ -1967,14 +1967,14 @@ Public Class cDienstplan
" if exists (select * from tblDienstMitarb with (updlock,serializable) where dstma_id = @dstma_id ) " &
" begin " &
" UPDATE tblDienstMitarb " &
" SET dstma_abteilung=@dstma_abteilung, dstma_funktion=@dstma_funktion, dstma_arbvh=@dstma_arbvh, dstma_wochenStunden=@dstma_wochenStunden, dstma_stammSchicht=@dstma_stammSchicht, dstma_kuerzel=@dstma_kuerzel, dstma_reihenfolge=@dstma_reihenfolge, dstma_farbe=@dstma_farbe, dstma_TageProWoche=@dstma_TageProWoche,dstma_niederlassung=@dstma_niederlassung,dstma_muster=@dstma_muster,dstma_4wo=@dstma_4wo,dstma_WEStdRegelAZ=@dstma_WEStdRegelAZ,dstma_inaktiv=@dstma_inaktiv,dstma_TzFeiertageStd=@dstma_TzFeiertageStd " &
" SET dstma_abteilung=@dstma_abteilung, dstma_funktion=@dstma_funktion, dstma_arbvh=@dstma_arbvh, dstma_wochenStunden=@dstma_wochenStunden, dstma_stammSchicht=@dstma_stammSchicht, dstma_kuerzel=@dstma_kuerzel, dstma_reihenfolge=@dstma_reihenfolge, dstma_farbe=@dstma_farbe, dstma_TageProWoche=@dstma_TageProWoche,dstma_niederlassung=@dstma_niederlassung,dstma_muster=@dstma_muster,dstma_4wo=@dstma_4wo,dstma_WEStdRegelAZ=@dstma_WEStdRegelAZ,dstma_inaktiv=@dstma_inaktiv,dstma_TzFeiertageStd=@dstma_TzFeiertageStd, dstma_land=@dstma_land " &
" WHERE dstma_id=@dstma_id " &
" End " &
" Else " &
" begin " &
"INSERT INTO tblDienstMitarb " &
"( dstma_mitId, dstma_abteilung, dstma_funktion, dstma_arbvh, dstma_wochenStunden, dstma_stammSchicht,dstma_kuerzel,dstma_reihenfolge,dstma_farbe,dstma_TageProWoche,dstma_niederlassung, dstma_muster,dstma_4wo,dstma_WEStdRegelAZ,dstma_inaktiv ,dstma_TzFeiertageStd) VALUES " &
"( @dstma_mitId, @dstma_abteilung, @dstma_funktion, @dstma_arbvh, @dstma_wochenStunden, @dstma_stammSchicht,@dstma_kuerzel,@dstma_reihenfolge,@dstma_farbe,@dstma_TageProWoche,@dstma_niederlassung, @dstma_muster ,@dstma_4wo,@dstma_WEStdRegelAZ,@dstma_inaktiv,@dstma_TzFeiertageStd) " &
"( dstma_mitId, dstma_abteilung, dstma_funktion, dstma_arbvh, dstma_wochenStunden, dstma_stammSchicht,dstma_kuerzel,dstma_reihenfolge,dstma_farbe,dstma_TageProWoche,dstma_niederlassung, dstma_muster,dstma_4wo,dstma_WEStdRegelAZ,dstma_inaktiv ,dstma_TzFeiertageStd, dstma_land) VALUES " &
"( @dstma_mitId, @dstma_abteilung, @dstma_funktion, @dstma_arbvh, @dstma_wochenStunden, @dstma_stammSchicht,@dstma_kuerzel,@dstma_reihenfolge,@dstma_farbe,@dstma_TageProWoche,@dstma_niederlassung, @dstma_muster ,@dstma_4wo,@dstma_WEStdRegelAZ,@dstma_inaktiv,@dstma_TzFeiertageStd, @dstma_land) " &
" End " &
" commit tran "
@@ -1998,6 +1998,7 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dstma_WEStdRegelAZ", ma.dstma_WEStdRegelAZ)
cmd.Parameters.AddWithValue("@dstma_inaktiv", ma.dstma_inaktiv)
cmd.Parameters.AddWithValue("@dstma_TzFeiertageStd", If(ma.dstma_TzFeiertageStd Is Nothing, DBNull.Value, ma.dstma_TzFeiertageStd))
cmd.Parameters.AddWithValue("@dstma_land", ma.dstma_land)
Try
cmd.ExecuteNonQuery()
@@ -2572,6 +2573,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"
@@ -3003,13 +3007,39 @@ Public Class cDienstplan
Return False
End Function
Public Function insertEintraegeDetails(dedet_info, dedet_niederlassung, 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) As Boolean
Dim sql As String = "INSERT INTO [tblDienstplanEintraegeDetails] " &
"(dedet_info, dedet_niederlassung, dedet_aktiv ) VALUES " &
"(@dedet_info, @dedet_niederlassung, @dedet_aktiv) "
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@dedet_info", dedet_info)
cmd.Parameters.AddWithValue("@dedet_niederlassung", dedet_niederlassung)
cmd.Parameters.AddWithValue("@dedet_aktiv", dedet_aktiv)
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 Data")
End Try
End Using
End Using
Return False
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, 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 "
@@ -3027,7 +3057,6 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dedet_ZeilenExcel", dedet_ZeilenExcel)
cmd.Parameters.AddWithValue("@dedet_benutzerdefinierteSchicht", dedet_benutzerdefinierteSchicht)
cmd.Parameters.AddWithValue("@dedet_stdWieArbeitszeit", dedet_stdWieArbeitszeit)
cmd.Parameters.AddWithValue("@dedet_reihenfolge", dedet_reihenfolge)
cmd.Parameters.AddWithValue("@dedet_TagesWechsel", dedet_TagesWechsel)
cmd.Parameters.AddWithValue("@dedet_WechselZuSchicht", dedet_WechselZuSchicht)
@@ -3038,6 +3067,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 +3081,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
@@ -3135,6 +3184,7 @@ Public Class cDienstplan
d.dstma_muster = dr.Item("dstma_muster")
d.dstma_4wo = dr.Item("dstma_4wo")
d.dstma_WEStdRegelAZ = dr.Item("dstma_WEStdRegelAZ")
d.dstma_land = dr.Item("dstma_land")
If Not dr.Item("dstma_TageProWoche") Is DBNull.Value Then d.dstma_TageProWoche = dr.Item("dstma_TageProWoche")
@@ -3170,7 +3220,7 @@ Public Class cDienstplan
Dim data As New List(Of cDienstDetails)
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand("SELECT * FROM tblDienstplanEintraegeDetails as det INNER JOIN [tblDienstplanSchichtenZeiten] as sz ON det.dedet_id=sz.dsz_dedetId WHERE dedet_niederlassung=@dedet_niederlassung ", conn)
Using cmd As New SqlCommand("SELECT * FROM tblDienstplanEintraegeDetails as det INNER JOIN [tblDienstplanSchichtenZeiten] as sz ON det.dedet_id=sz.dsz_dedetId WHERE dedet_niederlassung=@dedet_niederlassung AND dedet_splitschicht=0 ", conn)
cmd.Parameters.AddWithValue("@dedet_niederlassung", niederlassung)
Dim dr = cmd.ExecuteReader()
While dr.Read
@@ -3416,7 +3466,7 @@ Public Class cDienstplan
Try
Dim d As New cDienstMA
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(" SELECT dstma_id,dstma_mitId,dstma_kuerzel, dstma_abteilung,dstma_funktion,dstma_arbvh,dstma_wochenStunden,dstma_stammSchicht,dstma_reihenfolge,dstma_farbe,dstma_TageProWoche,dstma_muster,dstma_4wo,dstma_WEStdRegelAZ,dstma_inaktiv,dstma_TzFeiertageStd FROM tblDienstMitarb INNER JOIN tblMitarbeiter ON mit_id=dstma_mitId WHERE dstma_id=" & maId & " ", conn)
Using cmd As New SqlCommand(" SELECT dstma_id,dstma_mitId,dstma_kuerzel, dstma_abteilung,dstma_funktion,dstma_arbvh,dstma_wochenStunden,dstma_stammSchicht,dstma_reihenfolge,dstma_farbe,dstma_TageProWoche,dstma_muster,dstma_4wo,dstma_WEStdRegelAZ,dstma_inaktiv,dstma_TzFeiertageStd, dstma_land FROM tblDienstMitarb INNER JOIN tblMitarbeiter ON mit_id=dstma_mitId WHERE dstma_id=" & maId & " ", conn)
'cmd.Parameters.AddWithValue("@semi_id", id)
Dim dr = cmd.ExecuteReader()
While dr.Read
@@ -3432,6 +3482,7 @@ Public Class cDienstplan
d.dstma_muster = dr.Item("dstma_muster")
d.dstma_4wo = dr.Item("dstma_4wo")
d.dstma_WEStdRegelAZ = dr.Item("dstma_WEStdRegelAZ")
d.dstma_land = dr.Item("dstma_land")
If Not dr.Item("dstma_TageProWoche") Is DBNull.Value Then d.dstma_TageProWoche = dr.Item("dstma_TageProWoche")
@@ -3536,6 +3587,48 @@ Public Class cDienstplan
Return False
End Function
Public Function delOnlyDstEintraegeSplitschichtenMaId(datum, niederlassung, dstetr_dstmaId, Optional dstetr_id = -1) 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)
cmd.Parameters.AddWithValue("@dstetr_id", dstetr_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 delDstEintraegeSplitschichtenId(dstetr_id) As Boolean
Dim sql = "DELETE FROM tblDienstplanEintraege " &
"WHERE dstetr_id = @dstetr_id AND dstetr_splitschicht = 1"
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@dstetr_id", dstetr_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 getMaIDFromMitID(mit_id As Integer) As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -3620,19 +3713,26 @@ Public Class cDienstplan
End Function
Public Function updateInsertByDienstEintrag(ByVal daten As cDienstEintrag, niederlassung As String) As Boolean
Public Function updateInsertByDienstEintrag(ByVal daten As cDienstEintrag, niederlassung As String, Optional dstetr_id As Integer = -1) As Boolean
Dim SQLclause As String = ""
If dstetr_id > 0 Then
SQLclause = " AND dstetr_id=@dstetr_id"
End If
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" & SQLclause & ") " &
" 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 " &
" 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 AND dstetr_art=@dstetr_art" & SQLclause &
" 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 +3748,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,8 +3763,6 @@ Public Class cDienstplan
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
@@ -3748,6 +3848,7 @@ Public Class cDienstplan
End Function
Public Function updateDienstEintragArtChange(ByVal dstetr_id As Integer, ByVal dstetr_datum As String, ByVal abteilung As String, ByVal von As String, ByVal bis As String, pause As String) As Boolean
Dim sql As String = " UPDATE tblDienstplanEintraege " &
" SET dstetr_art=@abteilung, dstetr_von=@von, dstetr_bis=@bis , dstetr_pause=@dstetr_pause" &
@@ -3957,13 +4058,21 @@ Public Class cDienstplan
Return False
End Function
Public Function getDstStunden(maId As Integer, datum_von As Date, datum_bis As Date, niederlassung As String) As Double
Public Function getDstStunden(maId As Integer, datum_von As Date, datum_bis As Date, niederlassung As String, Optional onlySplitschichten As Boolean = False) As Double
Try
Dim stunden As Double
Dim rgx As New Regex("^\d{2}:\d{2}$")
Dim whereSQL As String = ""
If onlySplitschichten Then
whereSQL = " AND dedet_splitschicht = 1"
Else
whereSQL = " AND dedet_splitschicht = 0"
End If
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
'Using cmd As New SqlCommand(" SELECT dstetr_datum,dstetr_von,dstetr_bis,dstetr_pause,dstetr_art FROM tblDienstplanEintraege WHERE dstetr_dstmaId=" & maId & " AND dstetr_datum BETWEEN '" & datum_von.ToShortDateString & "' AND '" & datum_bis.ToShortDateString & "' AND (dstetr_art LIKE 'ZOLL%' OR dstetr_art IN('QS','KS','URL','DBL' ,'NACHT','SO','BS','DR')) ", conn)
Using cmd As New SqlCommand(" SELECT dstetr_datum,dstetr_von,dstetr_bis,dstetr_pause,dstetr_art FROM tblDienstplanEintraege WHERE dstetr_dstmaId=" & maId & " AND dstetr_datum BETWEEN '" & datum_von.ToShortDateString & "' AND '" & datum_bis.ToShortDateString & "' AND replace( replace([dstetr_art] ,'BS','DR') ,'SO','DR') IN (SELECT case WHEN dedet_bezeichnungDP<>'' then dedet_bezeichnungDP ELSE dedet_abt END FROM [tblDienstplanEintraegeDetails] WHERE dedet_niederlassung=@niederlassung AND ( dedet_benutzerdefinierteSchicht=1 OR dedet_stdWieArbeitszeit=1 )) ", conn)
Using cmd As New SqlCommand(" SELECT dstetr_datum,dstetr_von,dstetr_bis,dstetr_pause,dstetr_art FROM tblDienstplanEintraege WHERE dstetr_dstmaId=" & maId & " AND dstetr_datum BETWEEN '" & datum_von.ToShortDateString & "' AND '" & datum_bis.ToShortDateString & "' AND replace( replace([dstetr_art] ,'BS','DR') ,'SO','DR') IN (SELECT case WHEN dedet_bezeichnungDP<>'' then dedet_bezeichnungDP ELSE dedet_abt END FROM [tblDienstplanEintraegeDetails] WHERE dedet_niederlassung=@niederlassung AND ( dedet_benutzerdefinierteSchicht=1 OR dedet_stdWieArbeitszeit=1 )" & whereSQL & ") ", conn)
cmd.Parameters.AddWithValue("@niederlassung", niederlassung)
Dim dr = cmd.ExecuteReader()
@@ -4036,11 +4145,20 @@ 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, Optional art As String = "") As Integer
Dim sqlWhere As String = ""
If onlySplitschichten Then
sqlWhere &= "AND dstetr_splitschicht = 1"
End If
If art <> "" Then
sqlWhere &= "And dstetr_art = '" & art & "'"
End If
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
@@ -4062,7 +4180,6 @@ Public Class cDienstplan
End Function
Public Function getCountDays(maId As Integer, datum_von As Date, datum_bis As Date) As Integer
Try
Dim stunden As Integer
@@ -4112,6 +4229,32 @@ Public Class cDienstplan
Return ""
End Function
Public Function getLatestDienstplanEintraegNr() As Integer
Try
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection()
Using cmd As New SqlCommand(" select MAX([dstetr_id]) as MaxId from tblDienstplanEintraege ", conn)
Dim dr = cmd.ExecuteReader()
Dim cPF As New cProgramFunctions
If dr.HasRows Then
dr.Read()
Return dr.Item("MaxId")
End If
dr.Close()
End Using
End Using
Catch ex As Exception
Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'")
If antwort <> MsgBoxResult.Retry Then
MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Programm wird aufgrund eines kritischen Problems beendet.", vbInformation)
End If
End Try
Return -1
End Function
End Class