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_ExcelMonatFarbe As Object
Property dedet_ExcelMonatBezeichnung As String = "" Property dedet_ExcelMonatBezeichnung As String = ""
Property dedet_Splitschicht As Boolean = False
Property dedet_Hauptsplitschicht As Boolean = False
Property dedet_Aktiv As Boolean = True Property dedet_Aktiv As Boolean = True
Property ZEITEN As New List(Of cDienstplanSchichtZeiten) 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_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_ExcelMonatBezeichnung = If(row("dedet_ExcelMonatBezeichnung") IsNot DBNull.Value, row("dedet_ExcelMonatBezeichnung"), "")
Me.dedet_Aktiv = CBool(row("dedet_Aktiv")) 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) LOAD_ZEITEN(Me.dedet_id)
End If End If

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmDienstplanVariabel Partial Class frmDienstplanVariabel
Inherits System.Windows.Forms.Form Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. '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) Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try Try
If disposing AndAlso components IsNot Nothing Then 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. 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container() Me.components = New System.ComponentModel.Container()
Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem("KW 1") 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.ctiBemWo = New System.Windows.Forms.ToolStripMenuItem()
Me.NormaldienstToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.NormaldienstToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.GanzeWocheToolStripMenuItem = 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.TabPage1 = New System.Windows.Forms.TabPage()
Me.PictureBox1 = New System.Windows.Forms.PictureBox() Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.Button2 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button()
@@ -60,6 +61,8 @@ Partial Class frmDienstplanVariabel
Me.cboQSSpaet = New System.Windows.Forms.ComboBox() Me.cboQSSpaet = New System.Windows.Forms.ComboBox()
Me.Label23 = New System.Windows.Forms.Label() Me.Label23 = New System.Windows.Forms.Label()
Me.GroupBox1 = New System.Windows.Forms.GroupBox() 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.Label2 = New System.Windows.Forms.Label()
Me.txtWoStd = New System.Windows.Forms.TextBox() Me.txtWoStd = New System.Windows.Forms.TextBox()
Me.TabControl1 = New System.Windows.Forms.TabControl() Me.TabControl1 = New System.Windows.Forms.TabControl()
@@ -151,9 +154,10 @@ Partial Class frmDienstplanVariabel
Me.Button4 = New System.Windows.Forms.Button() Me.Button4 = New System.Windows.Forms.Button()
Me.Button3 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) 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.Panel4 = New System.Windows.Forms.Panel()
Me.Button19 = New System.Windows.Forms.Button()
Me.pnlOptions = New System.Windows.Forms.Panel() Me.pnlOptions = New System.Windows.Forms.Panel()
Me.Button19 = New System.Windows.Forms.Button()
Me.UsrcntlAuswertungWocheAuslastung1 = New ADMIN.usrcntlAuswertungWocheAuslastung() Me.UsrcntlAuswertungWocheAuslastung1 = New ADMIN.usrcntlAuswertungWocheAuslastung()
Me.UsrCntlAuswertungAuslastungMA1 = New ADMIN.usrCntlAuswertungAuslastungMA() Me.UsrCntlAuswertungAuslastungMA1 = New ADMIN.usrCntlAuswertungAuslastungMA()
Me.ctxtDgv.SuspendLayout() Me.ctxtDgv.SuspendLayout()
@@ -211,15 +215,16 @@ Partial Class frmDienstplanVariabel
CType(Me.dgvUrl_Do, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvUrl_Do, System.ComponentModel.ISupportInitialize).BeginInit()
Me.tbAuswertung.SuspendLayout() Me.tbAuswertung.SuspendLayout()
Me.tbTagesverteilung.SuspendLayout() Me.tbTagesverteilung.SuspendLayout()
Me.ContextMenuStrip1.SuspendLayout()
Me.Panel4.SuspendLayout() Me.Panel4.SuspendLayout()
Me.pnlOptions.SuspendLayout() Me.pnlOptions.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
'ctxtDgv '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.Name = "ctxtDgvSchicht1"
Me.ctxtDgv.Size = New System.Drawing.Size(229, 224) Me.ctxtDgv.Size = New System.Drawing.Size(229, 246)
' '
'ctiFrei 'ctiFrei
' '
@@ -288,6 +293,12 @@ Partial Class frmDienstplanVariabel
Me.GanzeWocheToolStripMenuItem.Size = New System.Drawing.Size(228, 22) Me.GanzeWocheToolStripMenuItem.Size = New System.Drawing.Size(228, 22)
Me.GanzeWocheToolStripMenuItem.Text = "--> Ganze Woche" 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 'TabPage1
' '
Me.TabPage1.Controls.Add(Me.PictureBox1) Me.TabPage1.Controls.Add(Me.PictureBox1)
@@ -493,6 +504,8 @@ Partial Class frmDienstplanVariabel
'GroupBox1 'GroupBox1
' '
Me.GroupBox1.BackColor = System.Drawing.Color.White 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.Label2)
Me.GroupBox1.Controls.Add(Me.txtWoStd) Me.GroupBox1.Controls.Add(Me.txtWoStd)
Me.GroupBox1.Controls.Add(Me.TabControl1) Me.GroupBox1.Controls.Add(Me.TabControl1)
@@ -518,11 +531,34 @@ Partial Class frmDienstplanVariabel
Me.GroupBox1.TabStop = False Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Details zum aktuellen Eintrag" 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 'Label2
' '
Me.Label2.AutoSize = True 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.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.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(51, 13) Me.Label2.Size = New System.Drawing.Size(51, 13)
Me.Label2.TabIndex = 97 Me.Label2.TabIndex = 97
@@ -533,7 +569,7 @@ Partial Class frmDienstplanVariabel
Me.txtWoStd.BackColor = System.Drawing.Color.White Me.txtWoStd.BackColor = System.Drawing.Color.White
Me.txtWoStd.BorderStyle = System.Windows.Forms.BorderStyle.None 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.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.MaxLength = 1
Me.txtWoStd.Name = "txtWoStd" Me.txtWoStd.Name = "txtWoStd"
Me.txtWoStd.ReadOnly = True Me.txtWoStd.ReadOnly = True
@@ -566,7 +602,7 @@ Partial Class frmDienstplanVariabel
' '
Me.Button17.FlatStyle = System.Windows.Forms.FlatStyle.Flat 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.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.Name = "Button17"
Me.Button17.Size = New System.Drawing.Size(115, 23) Me.Button17.Size = New System.Drawing.Size(115, 23)
Me.Button17.TabIndex = 95 Me.Button17.TabIndex = 95
@@ -1586,8 +1622,15 @@ Partial Class frmDienstplanVariabel
' '
'ContextMenuStrip1 'ContextMenuStrip1
' '
Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SchichtLöcshenToolStripMenuItem})
Me.ContextMenuStrip1.Name = "ContextMenuStrip1" 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 'Panel4
' '
@@ -1607,23 +1650,6 @@ Partial Class frmDienstplanVariabel
Me.Panel4.Size = New System.Drawing.Size(1545, 42) Me.Panel4.Size = New System.Drawing.Size(1545, 42)
Me.Panel4.TabIndex = 3 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 'pnlOptions
' '
Me.pnlOptions.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ 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.Size = New System.Drawing.Size(1088, 41)
Me.pnlOptions.TabIndex = 108 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 'UsrcntlAuswertungWocheAuslastung1
' '
Me.UsrcntlAuswertungWocheAuslastung1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer)) Me.UsrcntlAuswertungWocheAuslastung1.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() CType(Me.dgvUrl_Do, System.ComponentModel.ISupportInitialize).EndInit()
Me.tbAuswertung.ResumeLayout(False) Me.tbAuswertung.ResumeLayout(False)
Me.tbTagesverteilung.ResumeLayout(False) Me.tbTagesverteilung.ResumeLayout(False)
Me.ContextMenuStrip1.ResumeLayout(False)
Me.Panel4.ResumeLayout(False) Me.Panel4.ResumeLayout(False)
Me.Panel4.PerformLayout() Me.Panel4.PerformLayout()
Me.pnlOptions.ResumeLayout(False) Me.pnlOptions.ResumeLayout(False)
@@ -1868,4 +1912,8 @@ Partial Class frmDienstplanVariabel
Friend WithEvents Button18 As System.Windows.Forms.Button Friend WithEvents Button18 As System.Windows.Forms.Button
Friend WithEvents Button19 As System.Windows.Forms.Button Friend WithEvents Button19 As System.Windows.Forms.Button
Friend WithEvents pnlOptions As Panel 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 End Class

View File

@@ -1,4 +1,5 @@
Imports System.Globalization Imports System.Globalization
Imports System.Security.Authentication.ExtendedProtection
Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop
Public Class frmDienstplanVariabel Public Class frmDienstplanVariabel
@@ -12,6 +13,7 @@ Public Class frmDienstplanVariabel
Private stift2 As New Pen(Color.LightGray, 2) Private stift2 As New Pen(Color.LightGray, 2)
Private scr_left As Integer = 200 Private scr_left As Integer = 200
Private scr_top As Integer = 50 Private scr_top As Integer = 50
Private isSplitschicht As Boolean = False
Dim week() As String = {"SO", "MO", "DI", "MI", "DO", "FR", "SA"} Dim week() As String = {"SO", "MO", "DI", "MI", "DO", "FR", "SA"}
Private SCHICHT = "ROT" Private SCHICHT = "ROT"
@@ -101,6 +103,7 @@ Public Class frmDienstplanVariabel
Dim schicht_Name = SCHICHT.dedet_abt Dim schicht_Name = SCHICHT.dedet_abt
If schicht_Name = "ZOLL1" Then schicht_Name = "ZOLL_VM" If schicht_Name = "ZOLL1" Then schicht_Name = "ZOLL_VM"
If schicht_Name = "ZOLL2" Then schicht_Name = "ZOLL_NM" If schicht_Name = "ZOLL2" Then schicht_Name = "ZOLL_NM"
Dim IsHauptsplitschicht = SCHICHT.dedet_Hauptsplitschicht
datum = CalendarWeek(aktWoche, aktJahr) datum = CalendarWeek(aktWoche, aktJahr)
For i = 0 To 6 For i = 0 To 6
Dim andstr As String = " AND dstetr_datum='" & datum.ToShortDateString & "' AND dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId " 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) Dim dgvTmp As DataGridView = getDGV("dgv_" & datum.ToString("ddd").Replace(".", ""), b)
If dgvTmp IsNot Nothing Then 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) 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)) ', getDienstDetails("ZOLL1", "von"), getDienstDetails("ZOLL1", "bis"))) DGV.Add(New cDienstDGV("dgv_" & datum.ToString("ddd").Replace(".", ""), datum, schicht_Name, b, IsHauptsplitschicht)) ', getDienstDetails("ZOLL1", "von"), getDienstDetails("ZOLL1", "bis")))
End If End If
datum = datum.AddDays(1) 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 " 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 & "'" 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"))) 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"))) 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"))) 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"))) 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"))) DGV.Add(New cDienstDGV(arrZA(i), datum, "ZA", Nothing)) ', getDienstDetails("ZA", "von"), getDienstDetails("ZA", "bis")))
datum = datum.AddDays(1) datum = datum.AddDays(1)
@@ -395,15 +398,21 @@ Public Class frmDienstplanVariabel
For Each r As DataRow In DTBenutzer.Rows For Each r As DataRow In DTBenutzer.Rows
Dim SCHICHT As New cDienstplanSchicht(r("dedet_id")) Dim SCHICHT As New cDienstplanSchicht(r("dedet_id"))
Dim u As New usrCntlDienstWoche(SCHICHT, SETTINGS) 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) u.Height = (FlowLayoutPanel.Height - 5) * (SCHICHT.dedet_ProzentGrafik / 100)
FlowLayoutPanel.Controls.Add(u) FlowLayoutPanel.Controls.Add(u)
' MsgBox("TEST") 'MsgBox(SCHICHT.dedet_info)
End If
Dim schicht_Name = SCHICHT.dedet_abt Dim schicht_Name = SCHICHT.dedet_abt
If schicht_Name = "ZOLL1" Then schicht_Name = "ZOLL_VM" If schicht_Name = "ZOLL1" Then schicht_Name = "ZOLL_VM"
If schicht_Name = "ZOLL2" Then schicht_Name = "ZOLL_NM" If schicht_Name = "ZOLL2" Then schicht_Name = "ZOLL_NM"
u.schicht_name = schicht_Name u.schicht_name = schicht_Name
BEN_SCHICHTEN.Add(u) BEN_SCHICHTEN.Add(u)
SCHICHTEN_ARTEN.Add(SCHICHT) SCHICHTEN_ARTEN.Add(SCHICHT)
Next Next
initWeekInfo() initWeekInfo()
@@ -413,15 +422,29 @@ Public Class frmDienstplanVariabel
'ConetxtMenü für verschieben aktivieren 'ConetxtMenü für verschieben aktivieren
Dim i As Integer = 0 Dim i As Integer = 0
For Each s In BEN_SCHICHTEN 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 AddHandler menu1.Click, AddressOf Schicht2ToolStripMenuItem_Click
ctxtDgv.Items.Insert(i, menu1) 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 AddHandler menuGanzeWoche.Click, AddressOf GanzeWocheToolStripMenuItem_Click
GanzeWocheToolStripMenuItem.DropDownItems.Add(menuGanzeWoche) 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 i += 1
Next Next
@@ -458,8 +481,9 @@ Public Class frmDienstplanVariabel
initDienstplan() initDienstplan()
setDetails(entryId_TMP) setDetails(entryId_TMP)
Me.Cursor = Cursors.Default Me.Cursor = Cursors.Default
End Sub End Sub
'SCHICHT LÖCSHEN
AddHandler SchichtLöcshenToolStripMenuItem.Click, AddressOf SchichtLöcshenToolStripMenuItem_Click
initAusslastung() initAusslastung()
@@ -483,8 +507,15 @@ Public Class frmDienstplanVariabel
Try Try
For Each datagridview As cDienstDGV In DGV For Each datagridview As cDienstDGV In DGV
Dim d As DataGridView = getDGV(datagridview.dgvName, datagridview.USRCNTL) 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.LostFocus, AddressOf remHandlerKey
AddHandler d.MouseDown, AddressOf handleDGVContextMenue
AddHandler d.MouseClick, AddressOf handleDGVClick AddHandler d.MouseClick, AddressOf handleDGVClick
AddHandler d.CellDoubleClick, AddressOf handleDGVDoubleClick AddHandler d.CellDoubleClick, AddressOf handleDGVDoubleClick
setDGV(d) setDGV(d)
@@ -562,7 +593,7 @@ Public Class frmDienstplanVariabel
End Sub End Sub
Sub clearAllSelection() Sub clearAllSelection()
markId = -1 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) Dim dgv As DataGridView = getDGV(datagridview.dgvName, datagridview.USRCNTL)
dgv.ClearSelection() dgv.ClearSelection()
initDGV(dgv) initDGV(dgv)
@@ -629,8 +660,8 @@ Public Class frmDienstplanVariabel
Return dDate.Year + 1 & "01" Return dDate.Year + 1 & "01"
ElseIf dDate < dThisYear Then ElseIf dDate < dThisYear Then
' Falls das Datum noch zu einer KW aus dem letzten Jahr zählt ' Falls das Datum noch zu einer KW aus dem letzten Jahr zählt
Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear, _ Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear,
New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday, _ New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday,
FirstWeekOfYear.FirstFourDays) FirstWeekOfYear.FirstFourDays)
Else Else
' KW = Differenz zum ersten Tag der ersten Woche ' KW = Differenz zum ersten Tag der ersten Woche
@@ -789,12 +820,12 @@ Public Class frmDienstplanVariabel
Dim thisDgv As DataGridView = DirectCast(sender, DataGridView) Dim thisDgv As DataGridView = DirectCast(sender, DataGridView)
Dim row As DataGridViewRow = thisDgv.CurrentRow 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.txtVon.Text = "" Then Throw New Exception
' If UsrCntlZeitenAendern1.txtBis.Text = "" Then Throw New Exception ' If UsrCntlZeitenAendern1.txtBis.Text = "" Then Throw New Exception
UsrCntlZeitenAendern1.lblVon.Text = "" usrCntlZeitenAendern1.lblVon.Text = ""
UsrCntlZeitenAendern1.lblBis.Text = "" usrCntlZeitenAendern1.lblBis.Text = ""
Dim u_receiver As usrCntlDienstWoche = Nothing Dim u_receiver As usrCntlDienstWoche = Nothing
If thisDgv.Parent.Parent.GetType Is GetType(usrCntlDienstWoche) Then u_receiver = thisDgv.Parent.Parent If thisDgv.Parent.Parent.GetType Is GetType(usrCntlDienstWoche) Then u_receiver = thisDgv.Parent.Parent
Dim abt As String = getValuesDienstDGV(u_receiver, thisDgv.Name, "abt") 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)) pt.Y -= (usrCntlZeitenAendern1.Height + (row.Height * 1.5))
End If End If
usrCntlZeitenAendern1.Location = pt usrCntlZeitenAendern1.Location = pt
UsrCntlZeitenAendern1.Visible = True usrCntlZeitenAendern1.Visible = True
usrCntlZeitenAendern1.txtVon.Focus() usrCntlZeitenAendern1.txtVon.Focus()
Catch ex As Exception Catch ex As Exception
@@ -868,15 +899,25 @@ Public Class frmDienstplanVariabel
Try Try
entryId_TMP = entryId 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 TextBox1.Text = row("dstetr_von").ToString
TextBox2.Text = row("dstetr_bis").ToString TextBox2.Text = row("dstetr_bis").ToString
TextBox3.Text = row("dstetr_info").ToString TextBox3.Text = row("dstetr_info").ToString
TextBox4.Text = row("dstetr_pause").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 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 txtWoStd.Text = tatStd
txtSchichtstd.Text = schichtStd
txtSchichtstd.Visible = isSplitschicht
Label1.Visible = isSplitschicht
Label32.Text = CDate(row("dstetr_datum")).ToShortDateString Label32.Text = CDate(row("dstetr_datum")).ToShortDateString
@@ -1002,8 +1043,10 @@ Public Class frmDienstplanVariabel
If e.Button = Windows.Forms.MouseButtons.Right Then If e.Button = Windows.Forms.MouseButtons.Right Then
' Dim ht As DataGridView.HitTestInfo ' Dim ht As DataGridView.HitTestInfo
' ht = thisDgv.HitTest(e.X, e.Y) ' ht = thisDgv.HitTest(e.X, e.Y)
If ht.Type = DataGridViewHitTestType.Cell Then If ht.Type = DataGridViewHitTestType.Cell Then
Dim o As usrCntlDienstWoche = Nothing Dim o As usrCntlDienstWoche = Nothing
If thisDgv.Parent.Parent.GetType = GetType(usrCntlDienstWoche) Then o = thisDgv.Parent.Parent If thisDgv.Parent.Parent.GetType = GetType(usrCntlDienstWoche) Then o = thisDgv.Parent.Parent
@@ -1039,6 +1082,19 @@ Public Class frmDienstplanVariabel
thisDgv.CurrentCell.Selected = True thisDgv.CurrentCell.Selected = True
End If End If
' ctxtDgvSchicht1.Items(0).Text = String.Format("This is the cell at {0}, {1}", ht.ColumnIndex, ht.RowIndex) ' 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 End If
Else Else
RemoveHandler DirectCast(sender, DataGridView).KeyDown, AddressOf changeByKey RemoveHandler DirectCast(sender, DataGridView).KeyDown, AddressOf changeByKey
@@ -1072,12 +1128,16 @@ Public Class frmDienstplanVariabel
Dim d As Date = CDate(getValuesDienstDGV(o, dgv.Name, "datum")) 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 For Each s In BEN_SCHICHTEN
If e.KeyCode.ToString.ToUpper = s.SCHICHT.dedet_hotKey.ToUpper Then If e.KeyCode.ToString.ToUpper = s.SCHICHT.dedet_hotKey.ToUpper Then
' MsgBox("OK") ' MsgBox("OK")
For Each z In s.SCHICHT.ZEITEN 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 'Wenn Eintrag gefunden
changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), s.schicht_name)) changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), s.schicht_name))
Exit Sub Exit Sub
@@ -1113,9 +1173,7 @@ Public Class frmDienstplanVariabel
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR")) Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "DR"))
Case Keys.Z : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "ZA")) Case Keys.Z : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(o, dgv.Name, "datum"), "ZA"))
End Select End Select
End Select End Select
End If End If
End If End If
End Sub End Sub
@@ -1232,7 +1290,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_dstmaId = m.dstma_id eintrag.dstetr_dstmaId = m.dstma_id
eintrag.dstetr_datum = datum 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 If m.dstma_muster Then
' MsgBox("HIER") ' MsgBox("HIER")
@@ -1259,6 +1317,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_art = "FREI" eintrag.dstetr_art = "FREI"
Else Else
eintrag.dstetr_art = getSchichtArt(m.dstma_abteilung, m.dstma_stammSchicht, datum) 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)) 'MsgBox(getSchichtArt(m.dstma_abteilung, m.dstma_stammSchicht, datum))
'Abwesenheiten prüfen: 'Abwesenheiten prüfen:
' For Each d In cDienstAbwesendheiten ' For Each d In cDienstAbwesendheiten
@@ -1327,6 +1386,7 @@ Public Class frmDienstplanVariabel
eintrag.dstetr_pause = getDefaultTimeBySchicht(grund, "pause", week(datum.DayOfWeek).ToUpper) eintrag.dstetr_pause = getDefaultTimeBySchicht(grund, "pause", week(datum.DayOfWeek).ToUpper)
End If End If
Next Next
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung) SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Next Next
@@ -1401,6 +1461,16 @@ Public Class frmDienstplanVariabel
Return "" Return ""
End Function 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) Public Function getDefaultTimeBySchicht(abteilung, vonOrBis, woTag)
abteilung = abteilung.ToString.Replace("ZOLL_VM", "ZOLL1") abteilung = abteilung.ToString.Replace("ZOLL_VM", "ZOLL1")
abteilung = abteilung.ToString.Replace("ZOLL_NM", "ZOLL2") 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 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 Dim txt As String = Button4.Text
Button4.Text = txt & " (0 %)" Button4.Text = txt & " (0 %)"
@@ -1474,20 +1546,25 @@ Public Class frmDienstplanVariabel
' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays) ' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)
If Not My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\") Then 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\") My.Computer.FileSystem.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\")
End If End If
Dim strFileName As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\tmp.xlsx" Dim strFileName As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\tmp.xlsx"
Try 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 With exclApp
.Visible = False .Visible = False
Datei = .Workbooks.Open(AppDomain.CurrentDomain.BaseDirectory & "Resources\Dienstplan Variabel.xlsx") Datei = .Workbooks.Open(AppDomain.CurrentDomain.BaseDirectory & "Resources\Dienstplan Variabel.xlsx")
Blatt = Datei.Worksheets("DIENSTPLAN") Blatt = Datei.Worksheets("DIENSTPLAN")
Dim d As Date = CalendarWeek(aktWoche, aktJahr) Dim d As Date = CalendarWeek(aktWoche, aktJahr)
Blatt.Range("B2").Value = "MONTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1) 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) Blatt.Range("D2").Value = "DIENSTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
@@ -1518,11 +1595,14 @@ Public Class frmDienstplanVariabel
'BORDER 'BORDER
pos = 14 pos = 14
For Each s In BEN_SCHICHTEN 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).Value = s.SCHICHT.dedet_bezeichnungExcel
' Blatt.Range("A" & pos).Style= = 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 + 1).Value = s.SCHICHT.dedet_bezeichnungExcel2
Blatt.Range("A" & pos + 2).Value = s.SCHICHT.dedet_bezeichnungExcel3 Blatt.Range("A" & pos + 2).Value = s.SCHICHT.dedet_bezeichnungExcel3
pos += s.SCHICHT.dedet_ZeilenExcel + zeilenheader pos += s.SCHICHT.dedet_ZeilenExcel + zeilenheader
End If
Try Try
' MsgBox("A14:N" & pos - 1) ' 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) 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 'Zeilenheader
pos = 14 pos = 14
For Each s In BEN_SCHICHTEN 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 For Each z In s.SCHICHT.ZEITEN
Select Case z.dsz_woTag.ToUpper Select Case z.dsz_woTag.ToUpper
Case "MO" : Blatt.Range("B" & 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 = " " & 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 = " " & 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 = " " & 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 = " " & 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 = " " & 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 = " " & 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 End Select
Next Next
End If
Blatt.Range("B" & pos & ":N" & pos).Interior.Color = Color.FromArgb(197, 217, 241) Blatt.Range("B" & pos & ":N" & pos).Interior.Color = Color.FromArgb(197, 217, 241)
pos += s.SCHICHT.dedet_ZeilenExcel + zeilenheader pos += s.SCHICHT.dedet_ZeilenExcel + zeilenheader
Next Next
'MONTAG 'MONTAG
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String 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 For i = 0 To z - 1 : Tag(i + z) = "C" & i + pos : Next
Blatt = fill(s.dgv_Mo, Tag, Blatt, "MO", s.SCHICHT) 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 pos += z + zeilenheader
End If
Next Next
Dim Zeile_ZA As Integer = 45 Dim Zeile_ZA As Integer = 45
@@ -1595,6 +1682,7 @@ Public Class frmDienstplanVariabel
'DIENSTAG 'DIENSTAG
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String Dim Tag(z * 2 - 1) As String
@@ -1603,6 +1691,7 @@ Public Class frmDienstplanVariabel
Blatt = fill(s.dgv_Di, Tag, Blatt, "DI", s.SCHICHT) Blatt = fill(s.dgv_Di, Tag, Blatt, "DI", s.SCHICHT)
pos += z + zeilenheader pos += z + zeilenheader
End If
Next Next
Dim ZADi(4) As String Dim ZADi(4) As String
@@ -1635,12 +1724,15 @@ Public Class frmDienstplanVariabel
'MITTWOCH 'MITTWOCH
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String 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) = "F" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "G" & 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) Blatt = fill(s.dgv_Mi, Tag, Blatt, "MI", s.SCHICHT)
pos += z + zeilenheader pos += z + zeilenheader
End If
Next Next
Dim ZAMi(4) As String Dim ZAMi(4) As String
@@ -1673,12 +1765,14 @@ Public Class frmDienstplanVariabel
'DONNERSTAG 'DONNERSTAG
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String 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) = "H" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "I" & 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) Blatt = fill(s.dgv_Do, Tag, Blatt, "DO", s.SCHICHT)
pos += z + zeilenheader pos += z + zeilenheader
End If
Next Next
Dim ZADo(4) As String Dim ZADo(4) As String
@@ -1711,12 +1805,14 @@ Public Class frmDienstplanVariabel
'FREITAG 'FREITAG
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String 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) = "J" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "K" & 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) Blatt = fill(s.dgv_Fr, Tag, Blatt, "FR", s.SCHICHT)
pos += z + zeilenheader pos += z + zeilenheader
End If
Next Next
Dim ZAFr(4) As String Dim ZAFr(4) As String
@@ -1749,12 +1845,14 @@ Public Class frmDienstplanVariabel
'SAMSTAG 'SAMSTAG
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z * 2 - 1) As String 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) = "L" & i + pos : Next
For i = 0 To z - 1 : Tag(i + z) = "M" & 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) Blatt = fill(s.dgv_Sa, Tag, Blatt, "SA", s.SCHICHT)
pos += z + zeilenheader pos += z + zeilenheader
End If
Next Next
Dim ZASa(4) As String Dim ZASa(4) As String
@@ -1787,11 +1885,13 @@ Public Class frmDienstplanVariabel
'SONNTAG 'SONNTAG
pos = 15 pos = 15
For Each s In BEN_SCHICHTEN 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 z = s.SCHICHT.dedet_ZeilenExcel
Dim Tag(z) As String Dim Tag(z) As String
For i = 0 To z - 1 : Tag(i) = "N" & i + pos : Next For i = 0 To z - 1 : Tag(i) = "N" & i + pos : Next
Blatt = fill(s.dgv_So, Tag, Blatt, "SO") Blatt = fill(s.dgv_So, Tag, Blatt, "SO")
pos += z + zeilenheader pos += z + zeilenheader
End If
Next Next
Dim ZASo(2) As String Dim ZASo(2) As String
@@ -1820,9 +1920,10 @@ Public Class frmDienstplanVariabel
.Visible = True .Visible = True
.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone .DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
Try : Datei.SaveAs(strFileName) : Catch : End Try Try : Datei.SaveAs(strFileName) : Catch : End Try
End With End With
Catch ex As Exception Catch ex As Exception
MsgBox("ERRDP 7: " & ex.Message & ex.StackTrace) MsgBox("ERRDP 7: " & ex.Message & ex.StackTrace)
End Try End Try
@@ -1867,6 +1968,43 @@ Public Class frmDienstplanVariabel
Return Blatt Return Blatt
End Function 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 Public Function getBGFormSchichtSchichtArt(dayOweek As String, Schicht_Tmp As cDienstplanSchicht) As Object
If Schicht_Tmp IsNot Nothing Then If Schicht_Tmp IsNot Nothing Then
If Schicht_Tmp.dedet_TagesWechsel 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 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 a As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
Dim dgv_tmp As DataGridView = DirectCast(sender.GetCurrentParent.SourceControl, DataGridView) Dim dgv_tmp As DataGridView = DirectCast(sender.GetCurrentParent.SourceControl, DataGridView)
'Dim vm = "ZOLL2" : If SCHICHT.contains("ROT") Then vm = "ZOLL1" 'Dim vm = "ZOLL2" : If SCHICHT.contains("ROT") Then vm = "ZOLL1"
' Dim nm = "ZOLL1" : If SCHICHT.contains("BLAU") Then vm = "ZOLL2" ' Dim nm = "ZOLL1" : If SCHICHT.contains("BLAU") Then vm = "ZOLL2"
Dim o As usrCntlDienstWoche = Nothing Dim o As usrCntlDienstWoche = Nothing
If dgv_tmp.Parent.Parent.GetType() Is GetType(usrCntlDienstWoche) Then o = dgv_tmp.Parent.Parent 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")) changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "DR"))
Case "ctiUrlaub" Case "ctiUrlaub"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "URL")) changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(o, dgv_tmp.Name, "datum"), "URL"))
' Case "ctiDbl" ' Case "ctiDbl"
' changeDGVToDBL(dgv_tmp) ' changeDGVToDBL(dgv_tmp)
Case "ctiWocheSchichtWechsel" Case "ctiWocheSchichtWechsel"
@@ -1945,6 +2084,87 @@ Public Class frmDienstplanVariabel
End Select End Select
End Sub 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 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 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")) changeDGV(dgv_tmp, getDgvByDatArt(datumtmp, "FREI"))
Next Next
Case "ctiDienstreise" Case "ctiDienstreise"
For i = 0 To 6 For i = 0 To 6
changeDGV(dgv_tmp, getDgvByDatArt(datumtmp, "DR")) changeDGV(dgv_tmp, getDgvByDatArt(datumtmp, "DR"))
Next Next
@@ -2024,6 +2245,8 @@ Public Class frmDienstplanVariabel
End Sub End Sub
' Sub changeDGVToDBL(dgv_sender As DataGridView) ' Sub changeDGVToDBL(dgv_sender As DataGridView)
' Me.Cursor = Cursors.WaitCursor ' Me.Cursor = Cursors.WaitCursor
' Try ' Try
@@ -2046,6 +2269,7 @@ Public Class frmDienstplanVariabel
Sub changeDGVWoSchicht(dgv_sender As DataGridView) Sub changeDGVWoSchicht(dgv_sender As DataGridView)
Me.Cursor = Cursors.WaitCursor Me.Cursor = Cursors.WaitCursor
Try Try
@@ -2087,7 +2311,7 @@ Public Class frmDienstplanVariabel
End If End If
Next Next
Else 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 End If
Catch ex As Exception Catch ex As Exception
MessageBox.Show("changeDGVWoSchicht-Error: " & ex.Message) 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 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) 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) 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 If abt.Contains("ZOLL") Or abt = "QS" And r.Cells("dstma_arbvh").Value = "TZ" Then
checkMaTageIfTeilzeit(r.Cells("dstma_id").Value) checkMaTageIfTeilzeit(r.Cells("dstma_id").Value)
End If End If
Next Next
initDienstplan() initDienstplan()
@@ -2432,10 +2665,12 @@ Public Class frmDienstplanVariabel
End Sub End Sub
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
UsrCntlZeitenAendern1.Visible = True usrCntlZeitenAendern1.Visible = True
End Sub End Sub
Private Sub ctxtDgv_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxtDgv.Opening 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 sourceCnTxt = DirectCast(sender, ContextMenuStrip).SourceControl
End Sub End Sub
@@ -2629,4 +2864,51 @@ Public Class frmDienstplanVariabel
Private Sub Panel4_Paint(sender As Object, e As PaintEventArgs) Handles Panel4.Paint Private Sub Panel4_Paint(sender As Object, e As PaintEventArgs) Handles Panel4.Paint
End Sub 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 End Class

View File

@@ -279,6 +279,8 @@ Partial Class frmDiestAddMa
Me.Label57 = New System.Windows.Forms.Label() Me.Label57 = New System.Windows.Forms.Label()
Me.txtStdFeiertagTZ = New System.Windows.Forms.TextBox() Me.txtStdFeiertagTZ = New System.Windows.Forms.TextBox()
Me.Label58 = New System.Windows.Forms.Label() 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.grpTeilzeit.SuspendLayout()
Me.TabControl1.SuspendLayout() Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout() Me.TabPage1.SuspendLayout()
@@ -2839,12 +2841,33 @@ Partial Class frmDiestAddMa
Me.Label58.TabIndex = 27 Me.Label58.TabIndex = 27
Me.Label58.Text = "Abweichende WochenStd.:" 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 'frmDiestAddMa
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(503, 626) 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.Label58)
Me.Controls.Add(Me.dgvAbwWStd) Me.Controls.Add(Me.dgvAbwWStd)
Me.Controls.Add(Me.Label57) Me.Controls.Add(Me.Label57)
@@ -3151,4 +3174,6 @@ Partial Class frmDiestAddMa
Friend WithEvents txtStdFeiertagTZ As TextBox Friend WithEvents txtStdFeiertagTZ As TextBox
Friend WithEvents dgvAbwWStd As VERAG_PROG_ALLGEMEIN.MyDatagridview Friend WithEvents dgvAbwWStd As VERAG_PROG_ALLGEMEIN.MyDatagridview
Friend WithEvents Label58 As Label Friend WithEvents Label58 As Label
Friend WithEvents lblLand As Label
Friend WithEvents cboLand As ComboBox
End Class End Class

View File

@@ -20,7 +20,7 @@ Public Class frmDiestAddMa
End If End If
End Sub End Sub
Private Sub frmDiestAddMa_Load(sender As Object, e As EventArgs) Handles Me.Load 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.Clear()
cboStammSchicht.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cboStammSchicht.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
For Each r As DataRow In dt.Rows 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.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Ferialpraktikant", "Ferialpraktikant"))
cboFunktion.SelectedIndex = 0 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) ' MsgBox(txtRotVonMo.Text)
MusterErr = False MusterErr = False
If checkValues() Then If checkValues() Then
If cboLand.Text = "" Then
MsgBox("Bitte das Land eintragen")
cboLand.Focus()
Exit Sub
End If
If initMA() Then If initMA() Then
Dim tz As List(Of cDienstTeilzeit) = initArbVerh() 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 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(cboAbt, MA.dstma_abteilung)
cboMyItemSelect(cboFunktion, MA.dstma_funktion) cboMyItemSelect(cboFunktion, MA.dstma_funktion)
cboMyItemSelect(cboArbVerh, MA.dstma_arbvh) cboMyItemSelect(cboArbVerh, MA.dstma_arbvh)
cboMyItemSelect(cboLand, MA.dstma_land)
txtWoStd.Text = MA.dstma_wochenStunden txtWoStd.Text = MA.dstma_wochenStunden
cboStammSchicht.Text = MA.dstma_stammSchicht cboStammSchicht.Text = MA.dstma_stammSchicht
txtKuerzel.Text = MA.dstma_kuerzel txtKuerzel.Text = MA.dstma_kuerzel
txtReihenfolge.Text = MA.dstma_reihenfolge txtReihenfolge.Text = MA.dstma_reihenfolge
'cboLand.Text = MA.dstma_land
Button1.BackColor = ColorTranslator.FromHtml(MA.dstma_farbe) Button1.BackColor = ColorTranslator.FromHtml(MA.dstma_farbe)
If MA.dstma_TageProWoche >= 0 Then If MA.dstma_TageProWoche >= 0 Then
@@ -628,6 +639,7 @@ Public Class frmDiestAddMa
MA.dstma_inaktiv = cbxInaktiv.Checked MA.dstma_inaktiv = cbxInaktiv.Checked
MA.dstma_4wo = cbx4WoRhythmus.Checked MA.dstma_4wo = cbx4WoRhythmus.Checked
MA.dstma_TzFeiertageStd = Nothing 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(txtStdFeiertagTZ.Text) And txtStdFeiertagTZ.Visible Then MA.dstma_TzFeiertageStd = txtStdFeiertagTZ.Text
If IsNumeric(cboDaysPerWeek.Text) Then If IsNumeric(cboDaysPerWeek.Text) Then
@@ -643,6 +655,7 @@ Public Class frmDiestAddMa
End Function End Function
Private Sub cboMA_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboMA.SelectedIndexChanged 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) ' Dim oItem As VERAG_PROG_ALLGEMEIN.MyListItem = CType(cboMA.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem)
End Sub End Sub
Function cboMyItemSelect(cbo As ComboBox, value As String) As Boolean 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.cbxRotMo = New System.Windows.Forms.CheckBox()
Me.cbxBenutzerdefinierteSchicht = New System.Windows.Forms.CheckBox() Me.cbxBenutzerdefinierteSchicht = New System.Windows.Forms.CheckBox()
Me.pnl = New System.Windows.Forms.Panel() 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.txtZusatzAL = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label() Me.Label9 = New System.Windows.Forms.Label()
Me.CheckBox2 = New System.Windows.Forms.CheckBox() Me.CheckBox2 = New System.Windows.Forms.CheckBox()
@@ -536,6 +538,8 @@ Partial Class frmSchichtenZeiten
' '
'pnl 'pnl
' '
Me.pnl.Controls.Add(Me.cbxSplitschicht)
Me.pnl.Controls.Add(Me.cbxHauptsplitschicht)
Me.pnl.Controls.Add(Me.txtZusatzAL) Me.pnl.Controls.Add(Me.txtZusatzAL)
Me.pnl.Controls.Add(Me.Label9) Me.pnl.Controls.Add(Me.Label9)
Me.pnl.Controls.Add(Me.CheckBox2) Me.pnl.Controls.Add(Me.CheckBox2)
@@ -566,6 +570,26 @@ Partial Class frmSchichtenZeiten
Me.pnl.Size = New System.Drawing.Size(362, 165) Me.pnl.Size = New System.Drawing.Size(362, 165)
Me.pnl.TabIndex = 109 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 'txtZusatzAL
' '
Me.txtZusatzAL.Location = New System.Drawing.Point(102, 143) 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 CheckBox3 As System.Windows.Forms.CheckBox
Friend WithEvents ColorDialog3 As System.Windows.Forms.ColorDialog Friend WithEvents ColorDialog3 As System.Windows.Forms.ColorDialog
Friend WithEvents cbxAktiv As CheckBox Friend WithEvents cbxAktiv As CheckBox
Friend WithEvents cbxSplitschicht As CheckBox
Friend WithEvents cbxHauptsplitschicht As CheckBox
End Class 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 ADMIN As New cOptionenDAL
Dim DP As New cDienstplan Dim DP As New cDienstplan
Public niederlassung As String = "" Public niederlassung As String = ""
@@ -112,6 +115,11 @@
txtExcelMonat.Text = SCHICHT.dedet_ExcelMonatBezeichnung txtExcelMonat.Text = SCHICHT.dedet_ExcelMonatBezeichnung
cbxAktiv.Checked = SCHICHT.dedet_Aktiv cbxAktiv.Checked = SCHICHT.dedet_Aktiv
txtZusatzAL.Text = SCHICHT.dedet_bezLeiter 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 If SCHICHT.dedet_ExcelBgFarbe IsNot Nothing Then
btnExcelColor.BackColor = ColorTranslator.FromHtml(SCHICHT.dedet_ExcelBgFarbe) btnExcelColor.BackColor = ColorTranslator.FromHtml(SCHICHT.dedet_ExcelBgFarbe)
@@ -167,8 +175,9 @@
bgExcelMonat = DBNull.Value bgExcelMonat = DBNull.Value
End If 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, 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 End If
' d.dedet_bezeichnungDP = dr.Item("dedet_bezeichnungDP") ' d.dedet_bezeichnungDP = dr.Item("dedet_bezeichnungDP")
@@ -191,11 +200,30 @@
End Sub End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click 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 End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 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 End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
@@ -227,4 +255,38 @@
frbBGExcelMonat.BackColor = ColorDialog3.Color frbBGExcelMonat.BackColor = ColorDialog3.Color
End If End If
End Sub 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 End Class

View File

@@ -382,7 +382,7 @@ Public Class usrCntlDienstplan
End Select End Select
rpt.txtTag.ForeColor = Color.Black 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.txtTag.ForeColor = Color.Red
rpt.Detail.BackColor = Color.FromArgb(220, 220, 220) rpt.Detail.BackColor = Color.FromArgb(220, 220, 220)
End If End If

View File

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

View File

@@ -85,6 +85,7 @@ End Class
Public Class cDienstMA Public Class cDienstMA
Property dstma_id As Integer Property dstma_id As Integer
Property dstma_mitId As Integer Property dstma_mitId As Integer
Property dstma_land As String = ""
Property dstma_abteilung As String = "" Property dstma_abteilung As String = ""
Property dstma_funktion As String = "" Property dstma_funktion As String = ""
Property dstma_arbvh As String = "" Property dstma_arbvh As String = ""
@@ -96,7 +97,6 @@ Public Class cDienstMA
Property dstma_muster As Boolean = False Property dstma_muster As Boolean = False
Property dstma_WEStdRegelAZ As Boolean = False Property dstma_WEStdRegelAZ As Boolean = False
Property dstma_4wo As Boolean = False Property dstma_4wo As Boolean = False
Property dstma_TageProWoche As Integer = -1 Property dstma_TageProWoche As Integer = -1
Property dstma_inaktiv As Boolean = False Property dstma_inaktiv As Boolean = False
Property dstma_TzFeiertageStd As Object = Nothing Property dstma_TzFeiertageStd As Object = Nothing
@@ -130,6 +130,10 @@ Public Class cDienstEintrag
Property dstetr_pause As Double = 0 Property dstetr_pause As Double = 0
Property dstetr_grund As String = "" Property dstetr_grund As String = ""
Property dstetr_info As String = "" Property dstetr_info As String = ""
Property dstetr_splitschicht As Boolean = False
Property dstetr_hauptsplitschicht As Boolean = False
End Class End Class
@@ -171,6 +175,7 @@ Public Class cDienstDGV
Property dgvAbteilung As String = "" Property dgvAbteilung As String = ""
Property dgvVon As String = "" Property dgvVon As String = ""
Property dgvBis As String = "" Property dgvBis As String = ""
Property dgvIsHauptsplitschicht As Boolean = False
Property USRCNTL As usrCntlDienstWoche = Nothing 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) 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 Me.USRCNTL = USRCNTL
End Sub 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.dgvName = dgvName
Me.dgvDatum = dgvDatum Me.dgvDatum = dgvDatum
Me.dgvAbteilung = dgvAbteilung Me.dgvAbteilung = dgvAbteilung
Me.dgvVon = "00:00" Me.dgvVon = "00:00"
Me.dgvBis = "00:00" Me.dgvBis = "00:00"
Me.USRCNTL = USRCNTL Me.USRCNTL = USRCNTL
Me.dgvIsHauptsplitschicht = dgvIsHauptsplitschicht
End Sub End Sub

View File

@@ -915,11 +915,14 @@ Public Class cProgramFunctions
Dim UrlStd As Double = 8 Dim UrlStd As Double = 8
If StdFeiertag IsNot Nothing Then UrlStd = StdFeiertag If StdFeiertag IsNot Nothing Then UrlStd = StdFeiertag
Dim dMa As cDienstMA = SQLDienst.getDstMAByDstMaId(dstma_id)
For i = 0 To 6 For i = 0 To 6
' Wochenstunden -= getWochenstundenTAG(datum, SCHICHT, dstma_id, dstma_muster, dstma_WEStdRegelAZ, dstma_arbvh, niederlassung) ' Wochenstunden -= getWochenstundenTAG(datum, SCHICHT, dstma_id, dstma_muster, dstma_WEStdRegelAZ, dstma_arbvh, niederlassung)
Dim FT As New VERAG_PROG_ALLGEMEIN.cFeiertage(datum.Year) 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 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.... 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 FT As New VERAG_PROG_ALLGEMEIN.cFeiertage(datum.Year)
Dim woTag = datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper 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 getWochenstundenTAG = 0
ElseIf woTag = "SA" And woTag = "SO" Then ElseIf woTag = "SA" And woTag = "SO" Then
getWochenstundenTAG = 0 getWochenstundenTAG = 0

View File

@@ -1967,14 +1967,14 @@ Public Class cDienstplan
" if exists (select * from tblDienstMitarb with (updlock,serializable) where dstma_id = @dstma_id ) " & " if exists (select * from tblDienstMitarb with (updlock,serializable) where dstma_id = @dstma_id ) " &
" begin " & " begin " &
" UPDATE tblDienstMitarb " & " 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 " & " WHERE dstma_id=@dstma_id " &
" End " & " End " &
" Else " & " Else " &
" begin " & " begin " &
"INSERT INTO tblDienstMitarb " & "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_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_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 " & " End " &
" commit tran " " commit tran "
@@ -1998,6 +1998,7 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dstma_WEStdRegelAZ", ma.dstma_WEStdRegelAZ) cmd.Parameters.AddWithValue("@dstma_WEStdRegelAZ", ma.dstma_WEStdRegelAZ)
cmd.Parameters.AddWithValue("@dstma_inaktiv", ma.dstma_inaktiv) 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_TzFeiertageStd", If(ma.dstma_TzFeiertageStd Is Nothing, DBNull.Value, ma.dstma_TzFeiertageStd))
cmd.Parameters.AddWithValue("@dstma_land", ma.dstma_land)
Try Try
cmd.ExecuteNonQuery() cmd.ExecuteNonQuery()
@@ -2572,6 +2573,9 @@ Public Class cDienstplan
Return False Return False
End Function End Function
Public Function delDienstplanUeberSdtMa(ByVal kw As Integer, ByVal jahr As Integer, niederlassung As String) As Boolean 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" 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 Return False
End Function 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 hAuswahl As String = ""
Dim sql As String = "UPDATE tblDienstplanEintraegeDetails " & 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, " & "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 " " WHERE dedet_id=@dedet_id "
@@ -3027,7 +3057,6 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dedet_ZeilenExcel", dedet_ZeilenExcel) cmd.Parameters.AddWithValue("@dedet_ZeilenExcel", dedet_ZeilenExcel)
cmd.Parameters.AddWithValue("@dedet_benutzerdefinierteSchicht", dedet_benutzerdefinierteSchicht) cmd.Parameters.AddWithValue("@dedet_benutzerdefinierteSchicht", dedet_benutzerdefinierteSchicht)
cmd.Parameters.AddWithValue("@dedet_stdWieArbeitszeit", dedet_stdWieArbeitszeit) cmd.Parameters.AddWithValue("@dedet_stdWieArbeitszeit", dedet_stdWieArbeitszeit)
cmd.Parameters.AddWithValue("@dedet_reihenfolge", dedet_reihenfolge) cmd.Parameters.AddWithValue("@dedet_reihenfolge", dedet_reihenfolge)
cmd.Parameters.AddWithValue("@dedet_TagesWechsel", dedet_TagesWechsel) cmd.Parameters.AddWithValue("@dedet_TagesWechsel", dedet_TagesWechsel)
cmd.Parameters.AddWithValue("@dedet_WechselZuSchicht", dedet_WechselZuSchicht) 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_ExcelMonatFarbe", dedet_ExcelMonatFarbe)
cmd.Parameters.AddWithValue("@dedet_ExcelMonatBezeichnung", dedet_ExcelMonatBezeichnung) cmd.Parameters.AddWithValue("@dedet_ExcelMonatBezeichnung", dedet_ExcelMonatBezeichnung)
cmd.Parameters.AddWithValue("@dedet_aktiv", dedet_aktiv) cmd.Parameters.AddWithValue("@dedet_aktiv", dedet_aktiv)
cmd.Parameters.AddWithValue("@dedet_splitschicht", dedet_splitschicht)
cmd.Parameters.AddWithValue("@dedet_hauptsplitschicht", dedet_hauptsplitschicht)
Try Try
cmd.ExecuteNonQuery() cmd.ExecuteNonQuery()
@@ -3050,6 +3081,24 @@ Public Class cDienstplan
Return False Return False
End Function 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 Public Function delDienstNichtAnwesendKW_ByMaID(ByVal id As Integer) As Boolean
Dim hAuswahl As String = "" Dim hAuswahl As String = ""
'tblDienstNichtAnwesend 'tblDienstNichtAnwesend
@@ -3135,6 +3184,7 @@ Public Class cDienstplan
d.dstma_muster = dr.Item("dstma_muster") d.dstma_muster = dr.Item("dstma_muster")
d.dstma_4wo = dr.Item("dstma_4wo") d.dstma_4wo = dr.Item("dstma_4wo")
d.dstma_WEStdRegelAZ = dr.Item("dstma_WEStdRegelAZ") 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") 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) Dim data As New List(Of cDienstDetails)
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection() 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) cmd.Parameters.AddWithValue("@dedet_niederlassung", niederlassung)
Dim dr = cmd.ExecuteReader() Dim dr = cmd.ExecuteReader()
While dr.Read While dr.Read
@@ -3416,7 +3466,7 @@ Public Class cDienstplan
Try Try
Dim d As New cDienstMA Dim d As New cDienstMA
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection() 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) 'cmd.Parameters.AddWithValue("@semi_id", id)
Dim dr = cmd.ExecuteReader() Dim dr = cmd.ExecuteReader()
While dr.Read While dr.Read
@@ -3432,6 +3482,7 @@ Public Class cDienstplan
d.dstma_muster = dr.Item("dstma_muster") d.dstma_muster = dr.Item("dstma_muster")
d.dstma_4wo = dr.Item("dstma_4wo") d.dstma_4wo = dr.Item("dstma_4wo")
d.dstma_WEStdRegelAZ = dr.Item("dstma_WEStdRegelAZ") 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") 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 Return False
End Function 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 Public Function getMaIDFromMitID(mit_id As Integer) As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -3620,19 +3713,26 @@ Public Class cDienstplan
End Function 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" & 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 " & " begin " &
" UPDATE tblDienstplanEintraege " & " 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 " & " WHERE dstetr_datum = @dstetr_datum AND dstetr_dstmaId=@dstetr_dstmaId AND dstetr_niederlassung=@dstetr_niederlassung AND dstetr_art=@dstetr_art" & SQLclause &
" End " & " End " &
" Else " & " Else " &
" begin " & " begin " &
"INSERT INTO tblDienstplanEintraege " & "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_hauptsplitschicht,dstetr_splitschicht) 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 )" &
" End " & " End " &
" commit tran " " commit tran "
@@ -3648,6 +3748,8 @@ Public Class cDienstplan
cmd.Parameters.AddWithValue("@dstetr_grund", daten.dstetr_grund) cmd.Parameters.AddWithValue("@dstetr_grund", daten.dstetr_grund)
cmd.Parameters.AddWithValue("@dstetr_info", daten.dstetr_info) cmd.Parameters.AddWithValue("@dstetr_info", daten.dstetr_info)
cmd.Parameters.AddWithValue("@dstetr_niederlassung", niederlassung) 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) 'MsgBox(daten.dstetr_dstmaId)
Try Try
@@ -3661,8 +3763,6 @@ Public Class cDienstplan
Return False Return False
End Function End Function
Public Function getDienstEintragList(datum As Date, niederlassung As String) As List(Of cDienstEintrag) 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 sql As String = " SELECT * FROM tblDienstplanEintraege WHERE dstetr_datum = @dstetr_datum AND dstetr_niederlassung=@dstetr_niederlassung "
Dim daten As List(Of cDienstEintrag) = Nothing Dim daten As List(Of cDienstEintrag) = Nothing
@@ -3748,6 +3848,7 @@ Public Class cDienstplan
End Function 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 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 " & Dim sql As String = " UPDATE tblDienstplanEintraege " &
" SET dstetr_art=@abteilung, dstetr_von=@von, dstetr_bis=@bis , dstetr_pause=@dstetr_pause" & " SET dstetr_art=@abteilung, dstetr_von=@von, dstetr_bis=@bis , dstetr_pause=@dstetr_pause" &
@@ -3957,13 +4058,21 @@ Public Class cDienstplan
Return False Return False
End Function 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 Try
Dim stunden As Double Dim stunden As Double
Dim rgx As New Regex("^\d{2}:\d{2}$") 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 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 (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) cmd.Parameters.AddWithValue("@niederlassung", niederlassung)
Dim dr = cmd.ExecuteReader() Dim dr = cmd.ExecuteReader()
@@ -4036,11 +4145,20 @@ Public Class cDienstplan
Return 0 Return 0
End Function 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 Try
Dim stunden As Integer Dim stunden As Integer
Using conn As SqlConnection = cSqlDb.GetNewOpenConnection() 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 dr = cmd.ExecuteReader()
Dim cPF As New cProgramFunctions Dim cPF As New cProgramFunctions
If dr.HasRows Then If dr.HasRows Then
@@ -4062,7 +4180,6 @@ Public Class cDienstplan
End Function End Function
Public Function getCountDays(maId As Integer, datum_von As Date, datum_bis As Date) As Integer Public Function getCountDays(maId As Integer, datum_von As Date, datum_bis As Date) As Integer
Try Try
Dim stunden As Integer Dim stunden As Integer
@@ -4112,6 +4229,32 @@ Public Class cDienstplan
Return "" Return ""
End Function 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 End Class