Files
ADMIN/UID/Dienstplan/frmDienstplanATILLA.vb
2020-10-02 10:36:37 +02:00

1944 lines
90 KiB
VB.net

Imports System.Globalization
Imports Microsoft.Office.Interop
Public Class frmDienstplanATILLA
Private isDrawn As Boolean = False
Public niederlassung = ""
Private blueBrush As New SolidBrush(Color.LightBlue)
Private greenBrush As New SolidBrush(Color.LightGreen)
Private f_black As New Font("Arial", 8)
Private f_black_bold As New Font("Arial", 8, FontStyle.Bold)
Private stift As New Pen(Color.Gray, 1)
Private stift2 As New Pen(Color.LightGray, 2)
Private scr_left As Integer = 200
Private scr_top As Integer = 50
Dim week() As String = {"SO", "MO", "DI", "MI", "DO", "FR", "SA"}
Private SCHICHT = "ROT"
'Private SCHICHT2 = "1"
Dim SQLDienst As New cDienstplan
Dim ListMA As New List(Of cMAShort)
Dim MA As New cDienstMA
Dim DienstDetails As List(Of cDienstDetails)
Dim DGV As New List(Of cDienstDGV)
Dim aktDate As Date = Now
Dim aktWoche As Integer = 0
Dim aktJahr As Integer = 1900
Dim aktMitarbeiterEintrag As String 'ID des Eintrages des aktuell ausgewählen MA
Dim markId As Integer = -1
Sub New()
InitializeComponent()
End Sub
Sub New(niederlassung)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.niederlassung = niederlassung
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub fillCboQS()
cboQSSpaet.Items.Clear()
Dim ListMA As New List(Of cDienstMA)
ListMA = SQLDienst.getAllDienstMA(niederlassung, CalendarWeek(aktWoche, aktJahr)) ', " AND dstma_abteilung = 'QS' ")
For Each m In ListMA
cboQSSpaet.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(m.dstma_kuerzel, m.dstma_id))
Next
End Sub
Public Sub initDienstplan()
Dim STD_LIST = cDienstMitarbAbweichendeWochenstunden.GET_STD_LIST(CalendarWeek(aktWoche, aktJahr))
Dim pf As New cProgramFunctions
pf.KWAbschluss(STD_LIST, niederlassung, aktJahr, aktWoche, SCHICHT)
' initDienstplan()
If pnl.Controls.Count > 0 Then DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).loaded = False
DienstDetails = SQLDienst.getAllDienstDetails(niederlassung)
fillCboQS()
'Button14.Visible = Not SQLDienst.existsEntryKWUeberstd(niederlassung, aktJahr, aktWoche)
If Not SQLDienst.existsEntryKWUeberstd(niederlassung, aktJahr, aktWoche) Then
Button14.Text = "Woche erneut abschließen"
Else
Button14.Text = "Woche abschließen"
End If
Dim datum As Date = CalendarWeek(aktWoche, aktJahr)
Dim arrZoll1 As String() = {"dgvZoll1_Mo", "dgvZoll1_Di", "dgvZoll1_Mi", "dgvZoll1_Do", "dgvZoll1_Fr", "dgvZoll1_Sa", "dgvZoll1_So"}
Dim arrZoll2 As String() = {"dgvZoll2_Mo", "dgvZoll2_Di", "dgvZoll2_Mi", "dgvZoll2_Do", "dgvZoll2_Fr", "dgvZoll2_Sa", "dgvZoll2_So"}
Dim arrZollTag As String() = {"dgvZollTag_Mo", "dgvZollTag_Di", "dgvZollTag_Mi", "dgvZollTag_Do", "dgvZollTag_Fr", "dgvZollTag_Sa", "dgvZollTag_So"}
Dim arrNACHT As String() = {"dgvNACHT_Mo", "dgvNACHT_Di", "dgvNACHT_Mi", "dgvNACHT_Do", "dgvNACHT_Fr", "dgvNACHT_Sa", "dgvNACHT_So"}
Dim arrKS As String() = {"dgvKS_Mo", "dgvKS_Di", "dgvKS_Mi", "dgvKS_Do", "dgvKS_Fr", "dgvKS_Sa", "dgvKS_So"}
Dim arrUrl As String() = {"dgvUrl_Mo", "dgvUrl_Di", "dgvUrl_Mi", "dgvUrl_Do", "dgvUrl_Fr", "dgvUrl_Sa", "dgvUrl_So"}
Dim arrDR As String() = {"dgvDR_Mo", "dgvDR_Di", "dgvDR_Mi", "dgvDR_Do", "dgvDR_Fr", "dgvDR_Sa", "dgvDR_So"}
Dim arrFrei As String() = {"dgvFrei_Mo", "dgvFrei_Di", "dgvFrei_Mi", "dgvFrei_Do", "dgvFrei_Fr", "dgvFrei_Sa", "dgvFrei_So"}
Dim arrZA As String() = {"dgvZA_Mo", "dgvZA_Di", "dgvZA_Mi", "dgvZA_Do", "dgvZA_Fr", "dgvZA_Sa", "dgvZA_So"}
DGV.Clear()
For i = 0 To 6
Dim andstr As String = " AND dstetr_datum='" & datum.ToShortDateString & "' AND dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId "
andstr &= " AND dstetr_niederlassung='" & niederlassung & "'"
Dim orderBy As String = " ORDER BY dstma_reihenfolge ASC, dstma_kuerzel ASC "
Dim orderBy2 As String = " ORDER BY dstma_kuerzel ASC "
getDGV(arrZoll1(i)).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='ZOLL_VM' or dstetr_art='DBL') " & andstr & orderBy)
DGV.Add(New cDienstDGV(arrZoll1(i), datum, "ZOLL_VM")) ', getDienstDetails("ZOLL1", "von"), getDienstDetails("ZOLL1", "bis")))
getDGV(arrZoll2(i)).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='ZOLL_NM' or dstetr_art='DBL') " & andstr & orderBy)
DGV.Add(New cDienstDGV(arrZoll2(i), datum, "ZOLL_NM")) ', getDienstDetails("ZOLL2", "von"), getDienstDetails("ZOLL2", "bis")))
getDGV(arrZollTag(i)).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='ZOLL_TAG' " & andstr & orderBy)
DGV.Add(New cDienstDGV(arrZollTag(i), datum, "ZOLL_TAG")) ', getDienstDetails("ZOLL_TAG", "von"), getDienstDetails("ZOLL_TAG", "bis")))
getDGV(arrNACHT(i)).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='NACHT'" & andstr & orderBy)
DGV.Add(New cDienstDGV(arrNACHT(i), datum, "NACHT")) ', getDienstDetails("NACHT", "von"), getDienstDetails("NACHT", "bis")))
getDGV(arrUrl(i)).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)
DGV.Add(New cDienstDGV(arrUrl(i), datum, "URL")) ', getDienstDetails("URL", "von"), getDienstDetails("URL", "bis")))
getDGV(arrKS(i)).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)
DGV.Add(New cDienstDGV(arrKS(i), datum, "KS")) ', getDienstDetails("KS", "von"), getDienstDetails("KS", "bis")))
getDGV(arrDR(i)).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)
DGV.Add(New cDienstDGV(arrDR(i), datum, "DR")) ', getDienstDetails("DR", "von"), getDienstDetails("DR", "bis")))
getDGV(arrFrei(i)).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)
DGV.Add(New cDienstDGV(arrFrei(i), datum, "FREI")) ', getDienstDetails("FREI", "von"), getDienstDetails("FREI", "bis")))
getDGV(arrZA(i)).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)
DGV.Add(New cDienstDGV(arrZA(i), datum, "ZA")) ', getDienstDetails("ZA", "von"), getDienstDetails("ZA", "bis")))
datum = datum.AddDays(1)
Next
' MsgBox("t5")
initDGVVerhalten()
initStdMa()
clearAllSelection()
initAusslastung()
initAnzahl()
initDetails(True)
If markId > 0 Then
markNamesinDGV(markId)
End If
If pnl.Controls.Count > 0 Then DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).loaded = True
End Sub
Sub initStdMa()
Dim usrcntl As New usrcntlDienstplanStunden(aktWoche, aktJahr, niederlassung, SCHICHT)
' usrcntl.initStdMa()
pnl.Controls.Clear()
pnl.Controls.Add(usrcntl)
AddHandler usrcntl.NAME_CHANGED, Sub(id)
markNamesinDGV(id)
End Sub
DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).initStdMa()
End Sub
Private Sub frmDienstplan_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.PageDown) Then
Button7.PerformClick()
End If
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.PageUp) Then
Button6.PerformClick()
End If
End Sub
Sub initAnzahl()
lblAnzZoll1_Mo.Text = dgvZoll1_Mo.RowCount
lblAnzZoll1_Di.Text = dgvZoll1_Di.RowCount
lblAnzZoll1_Mi.Text = dgvZoll1_Mi.RowCount
lblAnzZoll1_Do.Text = dgvZoll1_Do.RowCount
lblAnzZoll1_Fr.Text = dgvZoll1_Fr.RowCount
lblAnzZoll1_Sa.Text = dgvZoll1_Sa.RowCount
lblAnzZoll1_So.Text = dgvZoll1_So.RowCount
lblAnzZoll2_Mo.Text = dgvZoll2_Mo.RowCount
lblAnzZoll2_Di.Text = dgvZoll2_Di.RowCount
lblAnzZoll2_Mi.Text = dgvZoll2_Mi.RowCount
lblAnzZoll2_Do.Text = dgvZoll2_Do.RowCount
lblAnzZoll2_Fr.Text = dgvZoll2_Fr.RowCount
lblAnzZoll2_Sa.Text = dgvZoll2_Sa.RowCount
lblAnzZoll2_So.Text = dgvZoll2_So.RowCount
lblAnzZollTag_Mo.Text = dgvZollTag_Mo.RowCount
lblAnzZollTag_Di.Text = dgvZollTag_Di.RowCount
lblAnzZollTag_Mi.Text = dgvZollTag_Mi.RowCount
lblAnzZollTag_Do.Text = dgvZollTag_Do.RowCount
lblAnzZollTag_Fr.Text = dgvZollTag_Fr.RowCount
lblAnzZollTag_Sa.Text = dgvZollTag_Sa.RowCount
lblAnzZollTag_So.Text = dgvZollTag_So.RowCount
lblAnzQS_Mo.Text = dgvNACHT_Mo.RowCount
lblAnzQS_Di.Text = dgvNACHT_Di.RowCount
lblAnzQS_Mi.Text = dgvNACHT_Mi.RowCount
lblAnzQS_Do.Text = dgvNACHT_Do.RowCount
lblAnzQS_Fr.Text = dgvNACHT_Fr.RowCount
lblAnzQS_Sa.Text = dgvNACHT_Sa.RowCount
lblAnzQS_So.Text = dgvNACHT_So.RowCount
End Sub
Sub initAusslastung()
Dim maxMaZoll As Integer = 18
Dim maxMaQS As Integer = 11
lblAuslastMaZoll_Mo.Text = CInt((dgvZoll1_Mo.RowCount + dgvZoll2_Mo.RowCount + dgvZollTag_Mo.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaZoll_Di.Text = CInt((dgvZoll1_Di.RowCount + dgvZoll2_Di.RowCount + dgvZollTag_Di.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaZoll_Mi.Text = CInt((dgvZoll1_Mi.RowCount + dgvZoll2_Mi.RowCount + dgvZollTag_Mi.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaZoll_Do.Text = CInt((dgvZoll1_Do.RowCount + dgvZoll2_Do.RowCount + dgvZollTag_Do.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaZoll_Fr.Text = CInt((dgvZoll1_Fr.RowCount + dgvZoll2_Fr.RowCount + dgvZollTag_Fr.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaZoll_Sa.Text = CInt((dgvZoll1_Sa.RowCount + dgvZoll2_Sa.RowCount + dgvZollTag_Sa.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaZoll_So.Text = CInt((dgvZoll1_So.RowCount + dgvZoll2_So.RowCount + dgvZollTag_So.RowCount) / (maxMaZoll / 100)) & " %"
lblAuslastMaQS_Mo.Text = CInt(dgvNACHT_Mo.RowCount / (maxMaQS / 100)) & " %"
lblAuslastMaQS_Di.Text = CInt(dgvNACHT_Di.RowCount / (maxMaQS / 100)) & " %"
lblAuslastMaQS_Mi.Text = CInt(dgvNACHT_Mi.RowCount / (maxMaQS / 100)) & " %"
lblAuslastMaQS_Do.Text = CInt(dgvNACHT_Do.RowCount / (maxMaQS / 100)) & " %"
lblAuslastMaQS_Fr.Text = CInt(dgvNACHT_Fr.RowCount / (maxMaQS / 100)) & " %"
lblAuslastMaQS_Sa.Text = CInt(dgvNACHT_Sa.RowCount / (maxMaQS / 100)) & " %"
lblAuslastMaQS_So.Text = CInt(dgvNACHT_So.RowCount / (maxMaQS / 100)) & " %"
End Sub
Function getDGV(s) As DataGridView
Return DirectCast(Me.Controls.Find(s, True)(0), DataGridView)
End Function
Sub initWeekInfo()
Dim dStart As Date = CalendarWeek(aktWoche, aktJahr)
Label1.Text = dStart & " - " & dStart.AddDays(6)
lblKW.Text = "KW " & aktWoche
If EvenNumber() = False Then
Panel3.BackColor = Color.Firebrick
' Panel4.BackColor = Color.Firebrick
Label12.ForeColor = Color.White
Label15.ForeColor = Color.White
SCHICHT = "ROT"
Else
Panel3.BackColor = System.Drawing.Color.FromArgb(0, 60, 120)
' Panel4.BackColor = System.Drawing.Color.FromArgb(0, 60, 120)
Label12.ForeColor = Color.White
Label15.ForeColor = Color.White
SCHICHT = "BLAU"
End If
If EvenNumber2() = False Then
SCHICHT &= "1"
Else
SCHICHT &= "2"
End If
'Private SCHICHT2 = "1"
Dim datum As Date = dStart
For i = 0 To 6
Select Case week(datum.DayOfWeek)
Case "MO" : lblMo.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
Case "DI" : lblDi.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
Case "MI" : lblMi.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
Case "DO" : lblDo.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
Case "FR" : lblFr.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
Case "SA" : lblSa.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
Case "SO" : lblSo.Text = week(datum.DayOfWeek) & " " & datum.ToShortDateString
End Select
datum = datum.AddDays(1)
Next
End Sub
Public Function EvenNumber() As Boolean
Dim RefDate As Date = CDate("01.08.2015")
Dim wD As Long = DateDiff(DateInterval.Weekday, aktDate, RefDate)
EvenNumber = (wD And 1&) = 0&
End Function
Public Function EvenNumber2() As Boolean
Dim RefDate As Date = CDate("01.08.2015")
Dim wD As Long = DateDiff(DateInterval.Weekday, aktDate, RefDate)
EvenNumber2 = (wD And 2&) = 0&
End Function
Private Sub frmDienstplan_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.Cursor = Cursors.WaitCursor
txtKWYear.Text = Now.Year
aktWoche = DateToWeek(aktDate).Substring(4, 2)
aktJahr = DateToWeek(aktDate).Substring(0, 4)
For Each c In Panel1.Controls
If TypeOf c Is DataGridView Then
DirectCast(c, DataGridView).RowTemplate.Height = 15
End If
Next
For Each c In Panel3.Controls
If TypeOf c Is DataGridView Then
DirectCast(c, DataGridView).RowTemplate.Height = 15
End If
Next
For Each c In Panel4.Controls
If TypeOf c Is DataGridView Then
DirectCast(c, DataGridView).RowTemplate.Height = 15
End If
Next
initWeekInfo()
initDienstplan()
' Dim l As New List(Of Control)
' l.Add(Panel3.Controls)
Me.Cursor = Cursors.Default
End Sub
Sub initDGVVerhalten()
Try
For Each datagridview As cDienstDGV In DGV
Dim d As DataGridView = getDGV(datagridview.dgvName)
AddHandler d.MouseDown, AddressOf handleDGVContextMenue
AddHandler d.LostFocus, AddressOf remHandlerKey
AddHandler d.MouseClick, AddressOf handleDGVClick
If False Then ' d.ColumnCount = 0 Then
Dim col As New DataGridViewTextBoxColumn
col.DataPropertyName = "dstetr_id"
col.HeaderText = "dstetr_id"
col.Name = "dstetr_id"
d.Columns.Add(col)
Dim col2 As New DataGridViewTextBoxColumn
col2.DataPropertyName = "Name"
col2.HeaderText = "Name"
col2.Name = "Name"
d.Columns.Add(col2)
End If
For Each r As DataGridViewRow In d.Rows
' MsgBox(r.Cells(1).Value)
If r.Cells(6).Value = "ZOLL1" Then r.Cells(1).Style.BackColor = System.Drawing.Color.FromArgb(255, 230, 230)
If r.Cells(6).Value = "ZOLL2" Then r.Cells(1).Style.BackColor = System.Drawing.Color.FromArgb(230, 255, 255)
If r.Cells(6).Value = "NACHT" Then r.Cells(1).Style.BackColor = System.Drawing.Color.FromArgb(255, 255, 230)
If r.Cells(6).Value = "" Then r.Cells(1).Style.BackColor = System.Drawing.Color.FromArgb(255, 255, 255)
Next
setDGV(d)
' AddHandler d.DragDrop, AddressOf dgv_DragDrop
' AddHandler d.DragEnter, AddressOf dgv_DragEnter
AddHandler d.Leave, AddressOf dgv_clearSelection
d.Columns(1).Width = d.Width - 20
Next
Catch ex As Exception
MsgBox("initDGVVerhalten-Error: " & ex.Message)
End Try
End Sub
Sub setDGV(dgv As DataGridView)
With dgv
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.AllowUserToOrderColumns = False
.AllowUserToResizeColumns = False
.AllowUserToResizeRows = False
.RowHeadersVisible = False
.ColumnHeadersVisible = False
.RowTemplate.Height = 15
If .ColumnCount > 0 Then .Columns(0).Visible = False
If .ColumnCount > 2 Then
For i = 2 To .ColumnCount - 1
.Columns(i).Visible = False
Next
End If
End With
initDGV(dgv)
End Sub
Sub initDGV(dgv As DataGridView)
For Each r As DataGridViewRow In dgv.Rows
If r.Cells(3).Value = "TZ" Then
' r.Cells(1).Style.ForeColor = Color.Blue
r.Cells(1).Style.ForeColor = ColorTranslator.FromHtml(r.Cells(9).Value)
End If
Next
End Sub
Sub clearAllSelection()
markId = -1
For Each datagridview As cDienstDGV In dgv
Dim dgv As DataGridView = getDGV(datagridview.dgvName)
dgv.ClearSelection()
initDGV(dgv)
Next
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Button9.Visible = False
Label32.Text = "-"
lblMAInfo.Text = "-"
aktMitarbeiterEintrag = ""
End Sub
Function getDienstDetails(abt, s) As String
For Each d In DienstDetails
If d.dedet_abt = abt Then
If s = "von" Then Return d.dedet_von
If s = "bis" Then Return d.dedet_bis
If s = "pause" Then Return d.dedet_pause
End If
Next
Return ""
End Function
Private Sub PaintLeft(e As PaintEventArgs)
' If Not isDrawn Then
isDrawn = True
Dim z As Graphics
z = e.Graphics
z.Clear(Color.White)
' Dim f_red As New Font("Arial", 8)
Dim myDT As DateTime = DateTime.Now
Dim myCal As Calendar = CultureInfo.InvariantCulture.Calendar
Dim lastMonth As DateTime = myCal.AddMonths(myDT, -1)
Dim nextMonth As DateTime = myCal.AddMonths(myDT, 1)
Dim dayOWeak As Array = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"}
Dim monthOYear As Array = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"}
Dim Mitarbeiter As Array = {"Luxbauer Johann", "Siener Josef", "Luxbauer Andreas"}
Dim format As New StringFormat(StringFormatFlags.DirectionRightToLeft)
Dim cnt_mitarb As Integer = 0
For Each m In Mitarbeiter
z.DrawString(m, f_black, Brushes.Black, New Rectangle(20, scr_top + 5 + (cnt_mitarb * 20), 160, 20), format)
cnt_mitarb += 1
Next
z.DrawString("", f_black, Brushes.Black, New Rectangle(20, scr_top + 25, 160, 20), format)
End Sub
Public Function DateToWeek(ByVal dDate As Date) As String
' Startdatum der ersten Kalenderwoche des Jahres und Folgejahres berechnen
Dim dThisYear As Date = CalendarWeek(1, dDate.Year)
Dim dNextYear As Date = CalendarWeek(1, dDate.Year + 1)
' Prüfen, ob Datum zur ersten Woche des Folgejahres gehört
If dDate >= dNextYear Then
' Rückgabe: KW 1 des Folgejahres
Return dDate.Year + 1 & "01"
ElseIf dDate < dThisYear Then
' Falls das Datum noch zu einer KW aus dem letzten Jahr zählt
Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear, _
New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday, _
FirstWeekOfYear.FirstFourDays)
Else
' KW = Differenz zum ersten Tag der ersten Woche
Return dDate.Year & Format$(dDate.Subtract(dThisYear).Days \ 7 + 1, "00")
End If
End Function
Public Function CalendarWeek(ByVal nWeek As Integer, _
ByVal nYear As Integer) As Date
' Wochentag des 4. Januar des Jahres ermitteln
Dim dStart As New Date(nYear, 1, 4)
Dim nDay As Integer = (dStart.DayOfWeek + 6) Mod 7 + 1
' Beginn der 1. KW des Jahres
Dim dFirst As Date = dStart.AddDays(1 - nDay)
' Gesuchte KW ermitteln
Return dFirst.AddDays((nWeek - 1) * 7)
End Function
Private Sub PaintThis(e As PaintEventArgs)
' If Not isDrawn Then
isDrawn = True
Dim z As Graphics
z = e.Graphics
z.Clear(Color.White)
' Dim f_red As New Font("Arial", 8)
Dim myDT As DateTime = DateTime.Now
Dim myCal As Calendar = CultureInfo.InvariantCulture.Calendar
Dim lastMonth As DateTime = myCal.AddMonths(myDT, -1)
Dim nextMonth As DateTime = myCal.AddMonths(myDT, 1)
Dim dayOWeak As Array = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"}
Dim monthOYear As Array = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"}
' Dim Mitarbeiter As Array = {"Luxbauer Johann", "Siener Josef", "Luxbauer Andreas"}
' Dim format As New StringFormat(StringFormatFlags.DirectionRightToLeft)
' Dim cnt_mitarb As Integer = 0
' For Each m In Mitarbeiter
'z.DrawString(m, f_black, Brushes.Black, New Rectangle(20, scr_top + 5 + (cnt_mitarb * 20), 160, 20), Format)
' cnt_mitarb += 1
' Next
' z.DrawString("", f_black, Brushes.Black, New Rectangle(20, scr_top + 25, 160, 20), Format)
' Dim lastMonth As DateTime = myCal.AddMonths(myDT, -1)
Dim daysLastM As Integer = myCal.GetDaysInMonth(myCal.GetYear(lastMonth), myCal.GetMonth(lastMonth))
Dim daysThisM As Integer = myCal.GetDaysInMonth(myCal.GetYear(myDT), myCal.GetMonth(myDT))
Dim daysNextM As Integer = myCal.GetDaysInMonth(myCal.GetYear(nextMonth), myCal.GetMonth(nextMonth))
Dim greyBrush As New SolidBrush(Color.LightGray)
z.FillRectangle(greyBrush, scr_left, scr_top - 50, (daysLastM + daysThisM + daysNextM) * 20, 20)
z.DrawRectangle(stift, scr_left, scr_top - 50, daysLastM * 20, 20) 'Rahmen lastMonth
z.DrawRectangle(stift, scr_left, scr_top - 50, (daysLastM + daysThisM) * 20, 20) 'Rahmen myCal
z.DrawRectangle(stift, scr_left, scr_top - 50, (daysLastM + daysThisM + daysNextM) * 20, 20) 'Rahmen nextMonth
z.DrawString(monthOYear(myCal.GetMonth(lastMonth) - 1), f_black, Brushes.Black, scr_left + daysLastM * 20 / 2, 2)
z.DrawString(monthOYear(myCal.GetMonth(myDT) - 1), f_black_bold, Brushes.Black, scr_left + daysLastM * 20 + daysThisM * 20 / 2, 2)
z.DrawString(monthOYear(myCal.GetMonth(nextMonth) - 1), f_black, Brushes.Black, scr_left + daysLastM * 20 + daysThisM * 20 + daysNextM * 20 / 2, 2)
z.DrawRectangle(stift, 0, 0, 1800 + scr_left, 500 + scr_top) 'Rahmen
z.FillRectangle(blueBrush, scr_left, scr_top - 30, 90 * 20, 30)
Dim arrayDays(daysLastM + daysThisM + daysNextM) As Date
Dim cnt As Integer = 0
'lastMonth zeichnen:
For i As Integer = 0 To daysLastM - 1
z.DrawRectangle(stift, scr_left + i * 20, scr_top - 30, 20, 30)
Dim b As Brush : Dim d As New DateTime(myCal.GetYear(lastMonth), myCal.GetMonth(lastMonth), i + 1)
Dim dow As String = dayOWeak(myCal.GetDayOfWeek(d))
If dow = "Sa" Or dow = "So" Then b = Brushes.Red Else b = Brushes.Black
z.DrawString(dow & vbNewLine & (i + 1), f_black, b, scr_left + i * 20, scr_top - 30)
arrayDays(cnt) = d : cnt += 1
Next
'thisMonth zeichnen:
For i As Integer = 0 To daysThisM - 1
z.DrawRectangle(stift, scr_left + i * 20, scr_top - 30, 20, 30)
Dim b As Brush : Dim d As New DateTime(myCal.GetYear(myDT), myCal.GetMonth(myDT), i + 1)
Dim dow As String = dayOWeak(myCal.GetDayOfWeek(d))
If dow = "Sa" Or dow = "So" Then b = Brushes.Red Else b = Brushes.Black
Dim f As Font = f_black : If (i + 1) = myCal.GetDayOfMonth(myDT) Then f = f_black_bold
z.DrawString(dow & vbNewLine & (i + 1), f, b, scr_left + (daysLastM + i) * 20, scr_top - 30)
arrayDays(cnt) = d : cnt += 1
Next
'nextMonth zeichnen:
For i As Integer = 0 To daysNextM - 1
z.DrawRectangle(stift, scr_left + i * 20, scr_top - 30, 20, 30)
Dim b As Brush : Dim d As New DateTime(myCal.GetYear(nextMonth), myCal.GetMonth(nextMonth), i + 1)
Dim dow As String = dayOWeak(myCal.GetDayOfWeek(d))
If dow = "Sa" Or dow = "So" Then b = Brushes.Red Else b = Brushes.Black
z.DrawString(dow & vbNewLine & (i + 1), f_black, b, scr_left + (daysLastM + daysThisM + i) * 20, scr_top - 30)
arrayDays(cnt) = d : cnt += 1
Next
'Raster zeichnen:
For j As Integer = 0 To 20
For i As Integer = 0 To 90
z.DrawRectangle(stift, scr_left + i * 20, scr_top + j * 20, 20, 20)
Next
Next
insertUrlaub(z, New DateTime(2015, 3, 15), New DateTime(2015, 4, 18), arrayDays, 0)
insertUrlaub(z, New DateTime(2015, 4, 1), New DateTime(2015, 4, 10), arrayDays, 2)
End Sub
Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Paint
PaintThis(e)
End Sub
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Paint
PaintLeft(e)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs)
Panel2.AutoScrollPosition = New Point(Panel2.HorizontalScroll.Value + 20, 0)
End Sub
Private Sub insertUrlaub(z As Graphics, startDate As DateTime, endDate As DateTime, arrayDays() As DateTime, Zeile As Integer)
' Dim startDate As New DateTime(2015, 3, 15)
' Dim endDate As New DateTime(2015, 4, 18)
Dim x_start As Integer : Dim x_end As Integer
If arrayDays(arrayDays.Count - 1) < endDate Then x_start = arrayDays.Count * 20 + 20
If arrayDays(0) > startDate Then x_start = 0
Dim diff As Integer
For i As Integer = 0 To arrayDays.Count - 1
If arrayDays(i) = startDate Then x_start = i * 20 : diff = i
If arrayDays(i) = endDate Then x_end = (i - diff) * 20 + 20
Next
z.FillRectangle(greenBrush, scr_left + x_start, scr_top + (Zeile * 20), x_end, 20)
z.DrawRectangle(stift, scr_left + x_start, scr_top + (Zeile * 20), x_end, 20)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
Panel2.AutoScrollPosition = New Point(Panel2.HorizontalScroll.Value - 20, 0)
End Sub
Private Sub handleDGVClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Try
Dim thisDgv As DataGridView = DirectCast(sender, DataGridView)
Dim row As DataGridViewRow = thisDgv.CurrentRow
setDetails(row.Cells("dstetr_id").Value) 'NULL???????
Catch ex As Exception
clearAllSelection()
End Try
End Sub
Public entryId_TMP As Integer = -1
Sub setDetails(entryId)
Try
entryId_TMP = entryId
Dim row As DataRow = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info as dstma_kuerzel,dstetr_info,dstma_id, dstetr_von,dstetr_bis,dstetr_art,dstetr_pause,dstetr_datum FROM tblDienstplanEintraege, tblDienstMitarb, tblMitarbeiter WHERE dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId AND dstetr_id='" & entryId & "'").Rows(0)
TextBox1.Text = row("dstetr_von").ToString
TextBox2.Text = row("dstetr_bis").ToString
TextBox3.Text = row("dstetr_info").ToString
TextBox4.Text = row("dstetr_pause").ToString
Label32.Text = CDate(row("dstetr_datum")).ToShortDateString
lblMAInfo.Text = row("dstma_kuerzel").ToString
aktMitarbeiterEintrag = row("dstetr_id").ToString
' If row("dstetr_art").ToString.Contains("NACHT") Then Button9.Visible = True
markNamesinDGV(row("dstma_id").ToString)
If pnl.Controls.Count > 0 Then
DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).markrow(row("dstma_id").ToString)
End If
' For Each r In dgvStundenMa.Rows
'If r.Cells("dstma_id").value = thisDgv.CurrentRow.Cells(2).Value Then
'r.DefaultCellStyle.Font = New Font(thisDgv.Font, FontStyle.Bold)
' End If
' Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Sub markNamesinDGV(id)
markId = id
' clearBlackFont()
If pnl.Controls.Count > 0 Then
DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).clearRowBg()
DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).markrow(id)
End If
For Each d In DGV
For Each r As DataGridViewRow In getDGV(d.dgvName).Rows
If r.Cells(2).Value = id Then
'r.Cells(1).Style.Font.Style = FontStyle.Bold
Dim style As New DataGridViewCellStyle
' style.Font = New Font(dataGridView1.Font, FontStyle.Bold)
r.DefaultCellStyle.Font = New Font(r.DataGridView.Font, FontStyle.Bold)
Else
r.DefaultCellStyle.Font = New Font(r.DataGridView.Font, FontStyle.Regular)
End If
Next
Next
End Sub
Private Sub handleDGVContextMenue(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) 'Handles dgvZoll1_Mo.MouseDown
Dim thisDgv As DataGridView = DirectCast(sender, DataGridView)
Dim ht As DataGridView.HitTestInfo
ht = thisDgv.HitTest(e.X, e.Y)
If ht.Type = DataGridViewHitTestType.Cell Then
thisDgv.ContextMenuStrip = ctxtDgv
If thisDgv.SelectedCells.Count = 0 Then
thisDgv.CurrentCell = thisDgv(ht.ColumnIndex, ht.RowIndex)
thisDgv.CurrentCell.Selected = True
End If
End If
If e.Button = Windows.Forms.MouseButtons.Right Then
' Dim ht As DataGridView.HitTestInfo
' ht = thisDgv.HitTest(e.X, e.Y)
If ht.Type = DataGridViewHitTestType.Cell Then
thisDgv.ContextMenuStrip = ctxtDgv
ctiSchicht1.Enabled = True : ctiSchicht2.Enabled = True : ctiDbl.Enabled = True : ctiQS.Enabled = True
ctiZollTag.Enabled = True : ctiUrlaub.Enabled = True : ctiKrankenstand.Enabled = True : ctiWocheSchichtWechsel.Enabled = False
Select Case week(CDate((getValuesDienstDGV(thisDgv.Name, "datum"))).DayOfWeek)
Case "SO" : ctiSchicht1.Enabled = False : ctiDbl.Enabled = False
ctiQS.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
Case "SA" : ctiDbl.Enabled = False
ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False ' ctiSchicht2.Enabled = False
Case Else
Select Case getValuesDienstDGV(thisDgv.Name, "abt")
Case "ZOLL_VM" : ctiWocheSchichtWechsel.Enabled = True
Case "ZOLL_NM" : ctiWocheSchichtWechsel.Enabled = True
Case Else : ctiWocheSchichtWechsel.Enabled = False
End Select
End Select
If thisDgv.SelectedCells.Count <= 1 Then
thisDgv.CurrentCell = thisDgv(ht.ColumnIndex, ht.RowIndex)
thisDgv.CurrentCell.Selected = True
End If
' ctxtDgvSchicht1.Items(0).Text = String.Format("This is the cell at {0}, {1}", ht.ColumnIndex, ht.RowIndex)
End If
Else
RemoveHandler DirectCast(sender, DataGridView).KeyDown, AddressOf changeByKey
AddHandler thisDgv.KeyDown, AddressOf changeByKey
'MsgBox(dgv.Name)
Exit Sub ' kein dragdrop
Dim info As DataGridView.HitTestInfo = thisDgv.HitTest(e.X, e.Y)
If info.RowIndex >= 0 Then
Dim row As DataGridViewRow = thisDgv.Rows(info.RowIndex)
thisDgv.DoDragDrop(row, DragDropEffects.All)
End If
End If
End Sub
Sub changeByKey(sender As Object, e As KeyEventArgs)
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
If dgv.SelectedCells.Count > 0 Then
' Case "SO" : ctiSchicht1.Enabled = False : ctiDbl.Enabled = False : ctiQS.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
' Case "SA" : ctiSchicht2.Enabled = False : ctiDbl.Enabled = False : ctiZollTag.Enabled = False : ctiUrlaub.Enabled = False : ctiKrankenstand.Enabled = False
Dim d As Date = CDate(getValuesDienstDGV(dgv.Name, "datum"))
Select Case week(CDate(getValuesDienstDGV(dgv.Name, "datum")).DayOfWeek)
Case "SA"
Select Case e.KeyCode
Case Keys.V : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_VM"))
Case Keys.N : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_NM"))
Case Keys.Q : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "NACHT"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "FREI"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "DR"))
End Select
Case "SO"
Select Case e.KeyCode
Case Keys.N : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_NM"))
Case Keys.T : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_TAG"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "FREI"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "DR"))
End Select
Case Else
Select Case e.KeyCode
Case Keys.V : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_VM"))
Case Keys.N : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_NM"))
Case Keys.T : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZOLL_TAG"))
Case Keys.Q : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "NACHT"))
Case Keys.U : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "URL"))
Case Keys.F : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "FREI"))
Case Keys.K : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "KS"))
Case Keys.S : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "DR"))
Case Keys.Z : changeDGV(dgv, getDgvByDatArt(getValuesDienstDGV(dgv.Name, "datum"), "ZA"))
End Select
End Select
End If
End Sub
Sub remHandlerKey(sender As Object, e As EventArgs)
RemoveHandler DirectCast(sender, DataGridView).KeyDown, AddressOf changeByKey
End Sub
Sub clearBlackFont()
markId = -1
For Each d In DGV
For Each r As DataGridViewRow In getDGV(d.dgvName).Rows
r.DefaultCellStyle.Font = New Font(r.DataGridView.Font, FontStyle.Regular)
Next
Next
If pnl.Controls.Count > 0 Then
DirectCast(pnl.Controls(0), usrcntlDienstplanStunden).clearRowBg()
End If
'For Each r In dgvStundenMa.Rows
'r.DefaultCellStyle.Font = New Font(dgvStundenMa.Font, FontStyle.Regular)
'Next
End Sub
Private Sub dgv_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs)
e.Effect = DragDropEffects.All
End Sub
Private Sub dgv_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs)
Dim row As DataGridViewRow = TryCast(e.Data.GetData(GetType(DataGridViewRow)), DataGridViewRow)
If row IsNot Nothing Then
Try
changeDGV(row.DataGridView, DirectCast(sender, DataGridView))
Catch ex As Exception
MessageBox.Show("dgv_DragDrop-Error: " & ex.Message)
End Try
End If
End Sub
Function getValuesDienstDGV(dgvname, s)
For Each d In DGV
If d.dgvName = dgvname Then
If s = "abt" Then Return d.dgvAbteilung
If s = "von" Then Return d.dgvVon
If s = "bis" Then Return d.dgvBis
If s = "datum" Then Return d.dgvDatum
End If
Next
Return ""
End Function
Function alreadyExists(d As DataGridView, s As String) As Boolean
For Each r As DataGridViewRow In d.Rows
If r.Cells(2).Value.ToString = s Then Return True
Next
Return False
End Function
Function removeRow(d As DataGridView, id As String) As Boolean
Try
For Each r As DataGridViewRow In d.Rows
If r.Cells(0).Value.ToString = id Then d.Rows.RemoveAt(r.Index) : Return True
Next
Catch ex As Exception
End Try
Return False
End Function
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If vbYes = MsgBox("Möchten Sie wirklich neu initialisieren?" & vbNewLine & "(Dabei gehen alle Änderungen in dieser Woche verloren)", vbYesNoCancel) Then
initALL()
End If
End Sub
Public Sub initALL(Optional MAID As Integer = -1)
'MsgBox("init" & MAID, MAID)
Me.Cursor = Cursors.WaitCursor
' Me.Enabled = False
Dim dStart As Date = CalendarWeek(aktWoche, aktJahr)
Label1.Text = dStart & " - " & dStart.AddDays(6)
Dim montag As Date = CalendarWeek(aktWoche, aktJahr)
Dim sonntag As Date = montag.AddDays(6)
Dim cDienstAbwesendheiten As List(Of cDienstAbwesendheiten) = SQLDienst.getDienstAbwesendheiten(montag, sonntag, niederlassung)
Dim ma As List(Of cDienstMA) = Nothing
If MAID > 0 Then
ma = SQLDienst.getAllDienstMA(niederlassung, montag, " AND dstma_id = " & MAID)
Else
If Not SQLDienst.delDstEintraege(montag, sonntag, niederlassung) Then Exit Sub 'Alle löschen
ma = SQLDienst.getAllDienstMA(niederlassung, montag)
End If
' If SQLDienst.delDstEintraege(montag, sonntag, niederlassung) Then
' Dim ma As List(Of cDienstMA) = SQLDienst.getAllDienstMA(niederlassung)
Dim datum As Date = montag
For i = 1 To 7
Dim FT As New cFeiertage(datum.Year) 'Evtl Jahressprung, darum neu definieren
For Each m In ma
Dim eintrag As New cDienstEintrag
eintrag.dstetr_dstmaId = m.dstma_id
eintrag.dstetr_datum = datum
If Not FT.isFeiertag(datum, cDienstSettings.getLand(niederlassung)) Then
If m.dstma_muster Then
' MsgBox("HIER")
Dim tz As List(Of cDienstTeilzeit) = SQLDienst.getAllDienstTeilzeit(m.dstma_id)
eintrag.dstetr_art = getFromTeilzeit("abt", tz, datum, SCHICHT, m.dstma_4wo)
If eintrag.dstetr_art = "" Then
eintrag.dstetr_art = "FREI"
Else
' MsgBox(getFromTeilzeit("von", tz, datum, SCHICHT) & " _ " & getFromTeilzeit("bis", tz, datum, SCHICHT))
eintrag.dstetr_von = getFromTeilzeit("von", tz, datum, SCHICHT, m.dstma_4wo)
eintrag.dstetr_bis = getFromTeilzeit("bis", tz, datum, SCHICHT, m.dstma_4wo)
eintrag.dstetr_pause = getFromTeilzeit("pause", tz, datum, SCHICHT, m.dstma_4wo)
eintrag.dstetr_grund = ""
eintrag.dstetr_info = ""
' MsgBox(eintrag.dstetr_art)
eintrag.dstetr_art = getFromTeilzeit("abt", tz, datum, SCHICHT, m.dstma_4wo)
' SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
End If
Else
If m.dstma_arbvh = "VZ" Then
If week(datum.DayOfWeek) = "SA" Or week(datum.DayOfWeek) = "SO" Then
eintrag.dstetr_art = "FREI"
Else
eintrag.dstetr_art = getSchichtArt(m.dstma_abteilung, m.dstma_stammSchicht, datum)
End If
eintrag.dstetr_von = getDefaultTimeBySchicht(eintrag.dstetr_art, "von", week(datum.DayOfWeek).ToUpper)
eintrag.dstetr_bis = getDefaultTimeBySchicht(eintrag.dstetr_art, "bis", week(datum.DayOfWeek).ToUpper)
eintrag.dstetr_pause = getDefaultTimeBySchicht(eintrag.dstetr_art, "pause", week(datum.DayOfWeek).ToUpper)
eintrag.dstetr_grund = ""
eintrag.dstetr_info = ""
' SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Else 'TEILZEIT
eintrag.dstetr_art = "FREI"
eintrag.dstetr_von = "00:00"
eintrag.dstetr_bis = "00:00"
eintrag.dstetr_pause = "0"
eintrag.dstetr_grund = ""
eintrag.dstetr_info = ""
' SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
End If
End If
Else 'FEIERTAG
eintrag.dstetr_art = "FREI"
eintrag.dstetr_von = "00:00"
eintrag.dstetr_bis = "00:00"
eintrag.dstetr_pause = "0"
eintrag.dstetr_grund = ""
eintrag.dstetr_info = ""
' SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
End If
'Abwesenheiten prüfen:
For Each d In cDienstAbwesendheiten
If d.dstna_mitId = eintrag.dstetr_dstmaId AndAlso d.dstna_datum_von <= datum And d.dstna_datum_bis >= datum Then
eintrag.dstetr_art = d.dstna_grund
If week(datum.DayOfWeek) = "SA" Or week(datum.DayOfWeek) = "SO" Then
eintrag.dstetr_art = "FREI"
End If
eintrag.dstetr_von = getDefaultTimeBySchicht(d.dstna_grund, "von", week(datum.DayOfWeek).ToUpper)
eintrag.dstetr_bis = getDefaultTimeBySchicht(d.dstna_grund, "bis", week(datum.DayOfWeek).ToUpper)
eintrag.dstetr_pause = getDefaultTimeBySchicht(d.dstna_grund, "pause", week(datum.DayOfWeek).ToUpper)
End If
Next
SQLDienst.updateInsertByDienstEintrag(eintrag, niederlassung)
Next
datum = datum.AddDays(1)
Next
' End If
Me.Enabled = True
initDienstplan()
Me.Cursor = Cursors.Default
End Sub
Function getFromTeilzeit(switch, tz, datum, dienstplan, dp4wo) As String
For Each t As cDienstTeilzeit In tz
Dim isSchicht = False
If dp4wo Then
If dienstplan = t.dsttz_dienstplan Then isSchicht = True
Else
If dienstplan.contains("ROT") And t.dsttz_dienstplan.Contains("ROT") Then isSchicht = True
If dienstplan.contains("BLAU") And t.dsttz_dienstplan.Contains("BLAU") Then isSchicht = True
End If
If t.dsttz_wotag = week(datum.DayOfWeek) And isSchicht Then
If switch = "von" Then Return t.dsttz_von
If switch = "bis" Then Return t.dsttz_bis
If switch = "pause" Then Return t.dsttz_pause
If switch = "abt" Then
If t.dsttz_abt = "ZOLL1" Then Return "ZOLL_VM"
If t.dsttz_abt = "ZOLL2" Then Return "ZOLL_NM"
Return t.dsttz_abt
' If False Then
'If t.dsttz_abt = "ZOLL1" Then
'If SCHICHT.ToString.StartsWith("ROT") Then Return "ZOLL_VM" Else Return "ZOLL_NM"
'End If
'If t.dsttz_abt = "ZOLL2" Then
'If SCHICHT.ToString.StartsWith("ROT") Then Return "ZOLL_NM" Else Return "ZOLL_VM"
' End If
'If t.dsttz_abt = "ZOLL_TAG" Then
'If SCHICHT.ToString.StartsWith("ROT") Then Return "ZOLL_NM" Else Return "ZOLL_TAG"
'End If
'If t.dsttz_abt = "NACHT" Then Return "NACHT"
' End If
End If
End If
Next
Return ""
End Function
Public Function getSchichtArt(abteilung, stammschicht, datum)
Dim s1 = ""
Dim s2 = ""
If stammschicht = "ZOLL TAG" Then Return "ZOLL_TAG"
If abteilung = "NACHT" Then Return abteilung
If niederlassung = "SUB" Or niederlassung = "ATILLA" Then
If SCHICHT.ToString.StartsWith("ROT") Then
Select Case week(datum.DayOfWeek)
Case "MO", "MI", "FR"
s1 = "ZOLL_NM"
s2 = "ZOLL_VM"
Case "DI", "DO"
s2 = "ZOLL_NM"
s1 = "ZOLL_VM"
End Select
Else
Select Case week(datum.DayOfWeek)
Case "MO", "MI", "FR"
s2 = "ZOLL_NM"
s1 = "ZOLL_VM"
Case "DI", "DO"
s1 = "ZOLL_NM"
s2 = "ZOLL_VM"
End Select
End If
Else
s1 = "ZOLL_VM"
s2 = "ZOLL_NM"
End If
If stammschicht = "ZOLL1" Then Return s1
If stammschicht = "ZOLL2" Then Return s2
Return ""
End Function
Public Function getDefaultTimeBySchicht(abteilung, vonOrBis, woTag)
abteilung = abteilung.ToString.Replace("ZOLL_VM", "ZOLL1")
abteilung = abteilung.ToString.Replace("ZOLL_NM", "ZOLL2")
Dim d As cDienstDetails = SQLDienst.getDienstDetailsWoTagByArtAndWoTag(niederlassung, abteilung, woTag)
If vonOrBis = "von" Then
If d.dedet_von <> "" Then Return d.dedet_von Else : Return "00:00" : End If
If vonOrBis = "bis" Then
If d.dedet_bis <> "" Then Return d.dedet_bis Else : Return "00:00" : End If
If vonOrBis = "pause" Then
Return d.dedet_pause : End If
Return ""
End Function
Private Sub dgv_clearSelection(sender As Object, e As EventArgs)
DirectCast(sender, DataGridView).ClearSelection()
' TextBox1.Text = ""
' TextBox2.Text = ""
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim txt As String = Button4.Text
Button4.Text = txt & " (0 %)"
Me.Cursor = Cursors.WaitCursor
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'as WorkSheet
exclApp = CreateObject("Excel.Application")
' Dim nWeek As Integer
' nWeek = DatePart(DateInterval.WeekOfYear, New Date(2004, 3, 22), _
' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)
If Not My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\") Then
My.Computer.FileSystem.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\")
End If
Dim strFileName As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\tmp\tmp.xlsx"
Try
With exclApp
.Visible = False
Datei = .Workbooks.Open(AppDomain.CurrentDomain.BaseDirectory & "Resources\DienstplanATILLA.xlsx")
'WordDoc.Activate()
' MsgBox(AppDomain.CurrentDomain.BaseDirectory & "Resources\Dienstplan.xlsx")
' .Visible = True
' Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\Dienstplan\" ' My.Computer.FileSystem.GetTempFileName
' If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
'My.Computer.FileSystem.CreateDirectory(sPath)
' End If
'
' Try
'My.Computer.FileSystem.WriteAllBytes(sPath & "Auswertung.xlsx", My.Resources, False)
'System.IO.File.Copy("C:\Users\DEVELOPER1\Desktop\Dienstplan.xlsx", sPath & "Dienstplan.xlsx", True)
'Catch ex As Exception
'MsgBox(ex.Message)
' Exit Sub
'End Try
'Datei = .Workbooks.Open(sPath & "Dienstplan.xlsx") 'Anpassen
Blatt = Datei.Worksheets("DIENSTPLAN")
Dim d As Date = CalendarWeek(aktWoche, aktJahr)
Blatt.Range("B2").Value = "MONTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("D2").Value = "DIENSTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("F2").Value = "MITTWOCH, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("H2").Value = "DONNERSTAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("J2").Value = "FREITAG, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("O2").Value = "SA, " & d.ToString("dd.MMM") : d = d.AddDays(1)
Blatt.Range("P2").Value = "SO, " & d.ToString("dd.MMM")
If SCHICHT.ToString.StartsWith("ROT") Then
Blatt.Range("A4").Font.Color = Color.Red
Blatt.Range("H1").Font.Color = Color.Red
Blatt.Range("H1").value = "ROT"
Else
Blatt.Range("A4").Font.Color = Color.Blue
Blatt.Range("H1").Font.Color = Color.Blue
Blatt.Range("H1").value = "BLAU"
End If
Blatt.Range("A4").Value = aktWoche
Button4.Text = txt & " (10 %)"
'MONTAG
Dim zoll1Mo(20) As String
For i = 0 To 19 : zoll1Mo(i) = "B" & i + 14 : Next
Dim zoll2Mo(20) As String
For i = 0 To 19 : zoll2Mo(i) = "C" & i + 14 : Next
Dim zollTagMo(6) As String
For i = 0 To 2 : zollTagMo(i) = "B" & i + 34 : Next
For i = 0 To 2 : zollTagMo(i + 3) = "C" & i + 34 : Next
Dim NACHTMo1(6) As String
For i = 0 To 2 : NACHTMo1(i) = "B" & i + 37 : Next
' Dim NACHTMo2(11) As String
For i = 0 To 2 : NACHTMo1(i + 3) = "C" & i + 37 : Next
Dim ZAMo(10) As String
For i = 0 To 4 : ZAMo(i) = "B" & i + 40 : Next
For i = 0 To 4 : ZAMo(i + 5) = "C" & i + 40 : Next
Dim UrlMo(6) As String
For i = 0 To 2 : UrlMo(i) = "B" & i + 45 : Next
For i = 0 To 2 : UrlMo(i + 3) = "C" & i + 45 : Next
Dim SOMo(4) As String
For i = 0 To 1 : SOMo(i) = "B" & i + 48 : Next
For i = 0 To 1 : SOMo(i + 2) = "C" & i + 48 : Next
Dim KSMo(6) As String
For i = 0 To 2 : KSMo(i) = "B" & i + 50 : Next
For i = 0 To 2 : KSMo(i + 3) = "C" & i + 50 : Next
Blatt = fill(dgvZoll1_Mo, zoll1Mo, Blatt)
Blatt = fill(dgvZoll2_Mo, zoll2Mo, Blatt)
Blatt = fill(dgvZollTag_Mo, zollTagMo, Blatt)
Blatt = fill(dgvNACHT_Mo, NACHTMo1, Blatt)
Blatt = fill(dgvZA_Mo, ZAMo, Blatt)
Blatt = fill(dgvUrl_Mo, UrlMo, Blatt)
Blatt = fill(dgvDR_Mo, SOMo, Blatt)
Blatt = fill(dgvKS_Mo, KSMo, Blatt)
Button4.Text = txt & " (25 %)"
'DIENSTAG
Dim zoll1Di(20) As String
For i = 0 To 19 : zoll1Di(i) = "D" & i + 14 : Next
Dim zoll2Di(20) As String
For i = 0 To 19 : zoll2Di(i) = "E" & i + 14 : Next
Dim zollTagDi(6) As String
For i = 0 To 2 : zollTagDi(i) = "D" & i + 34 : Next
For i = 0 To 2 : zollTagDi(i + 3) = "E" & i + 34 : Next
Dim NACHTDi1(6) As String
For i = 0 To 2 : NACHTDi1(i) = "D" & i + 37 : Next
' Dim NACHTDi2(11) As String
For i = 0 To 2 : NACHTDi1(i + 3) = "E" & i + 37 : Next
Dim ZADi(10) As String
For i = 0 To 4 : ZADi(i) = "D" & i + 40 : Next
For i = 0 To 4 : ZADi(i + 5) = "E" & i + 40 : Next
Dim UrlDi(6) As String
For i = 0 To 2 : UrlDi(i) = "D" & i + 45 : Next
For i = 0 To 2 : UrlDi(i + 3) = "E" & i + 45 : Next
Dim SODi(4) As String
For i = 0 To 1 : SODi(i) = "D" & i + 48 : Next
For i = 0 To 1 : SODi(i + 2) = "E" & i + 48 : Next
Dim KSDi(6) As String
For i = 0 To 2 : KSDi(i) = "D" & i + 50 : Next
For i = 0 To 2 : KSDi(i + 3) = "E" & i + 50 : Next
Blatt = fill(dgvZoll1_Di, zoll1Di, Blatt)
Blatt = fill(dgvZoll2_Di, zoll2Di, Blatt)
Blatt = fill(dgvZollTag_Di, zollTagDi, Blatt)
Blatt = fill(dgvNACHT_Di, NACHTDi1, Blatt)
Blatt = fill(dgvZA_Di, ZADi, Blatt)
Blatt = fill(dgvUrl_Di, UrlDi, Blatt)
Blatt = fill(dgvDR_Di, SODi, Blatt)
Blatt = fill(dgvKS_Di, KSDi, Blatt)
Button4.Text = txt & " (40 %)"
'MITTWOCH
Dim zoll1Mi(20) As String
For i = 0 To 19 : zoll1Mi(i) = "F" & i + 14 : Next
Dim zoll2Mi(20) As String
For i = 0 To 19 : zoll2Mi(i) = "G" & i + 14 : Next
Dim zollTagMi(6) As String
For i = 0 To 2 : zollTagMi(i) = "F" & i + 34 : Next
For i = 0 To 2 : zollTagMi(i + 3) = "G" & i + 34 : Next
Dim NACHTMi1(6) As String
For i = 0 To 2 : NACHTMi1(i) = "F" & i + 37 : Next
' Dim NACHTMi2(11) As String
For i = 0 To 2 : NACHTMi1(i + 3) = "G" & i + 37 : Next
Dim ZAMi(10) As String
For i = 0 To 4 : ZAMi(i) = "F" & i + 40 : Next
For i = 0 To 4 : ZAMi(i + 5) = "G" & i + 40 : Next
Dim UrlMi(6) As String
For i = 0 To 2 : UrlMi(i) = "F" & i + 45 : Next
For i = 0 To 2 : UrlMi(i + 3) = "G" & i + 45 : Next
Dim SOMi(4) As String
For i = 0 To 1 : SOMi(i) = "F" & i + 48 : Next
For i = 0 To 1 : SOMi(i + 2) = "G" & i + 48 : Next
Dim KSMi(6) As String
For i = 0 To 2 : KSMi(i) = "F" & i + 50 : Next
For i = 0 To 2 : KSMi(i + 3) = "G" & i + 50 : Next
Blatt = fill(dgvZoll1_Mi, zoll1Mi, Blatt)
Blatt = fill(dgvZoll2_Mi, zoll2Mi, Blatt)
Blatt = fill(dgvZollTag_Mi, zollTagMi, Blatt)
Blatt = fill(dgvNACHT_Mi, NACHTMi1, Blatt)
Blatt = fill(dgvZA_Mi, ZAMi, Blatt)
Blatt = fill(dgvUrl_Mi, UrlMi, Blatt)
Blatt = fill(dgvDR_Mi, SOMi, Blatt)
Blatt = fill(dgvKS_Mi, KSMi, Blatt)
Button4.Text = txt & " (55 %)"
'DONNERSTAG
Dim zoll1Do(20) As String
For i = 0 To 19 : zoll1Do(i) = "H" & i + 14 : Next
Dim zoll2Do(20) As String
For i = 0 To 19 : zoll2Do(i) = "I" & i + 14 : Next
Dim zollTagDo(6) As String
For i = 0 To 2 : zollTagDo(i) = "H" & i + 34 : Next
For i = 0 To 2 : zollTagDo(i + 3) = "I" & i + 34 : Next
Dim NACHTDo1(6) As String
For i = 0 To 2 : NACHTDo1(i) = "H" & i + 37 : Next
' Dim NACHTDo2(11) As String
For i = 0 To 2 : NACHTDo1(i + 3) = "I" & i + 37 : Next
Dim ZADo(10) As String
For i = 0 To 4 : ZADo(i) = "H" & i + 40 : Next
For i = 0 To 4 : ZADo(i + 5) = "I" & i + 40 : Next
Dim UrlDo(6) As String
For i = 0 To 2 : UrlDo(i) = "H" & i + 45 : Next
For i = 0 To 2 : UrlDo(i + 3) = "I" & i + 45 : Next
Dim SODo(4) As String
For i = 0 To 1 : SODo(i) = "H" & i + 48 : Next
For i = 0 To 1 : SODo(i + 2) = "I" & i + 48 : Next
Dim KSDo(6) As String
For i = 0 To 2 : KSDo(i) = "H" & i + 50 : Next
For i = 0 To 2 : KSDo(i + 3) = "I" & i + 50 : Next
Blatt = fill(dgvZoll1_Do, zoll1Do, Blatt)
Blatt = fill(dgvZoll2_Do, zoll2Do, Blatt)
Blatt = fill(dgvZollTag_Do, zollTagDo, Blatt)
Blatt = fill(dgvNACHT_Do, NACHTDo1, Blatt)
Blatt = fill(dgvZA_Do, ZADo, Blatt)
Blatt = fill(dgvUrl_Do, UrlDo, Blatt)
Blatt = fill(dgvDR_Do, SODo, Blatt)
Blatt = fill(dgvKS_Do, KSDo, Blatt)
Button4.Text = txt & " (70 %)"
'FREITAG
Dim zoll1Fr(20) As String
For i = 0 To 19 : zoll1Fr(i) = "J" & i + 14 : Next
Dim zoll2Fr(20) As String
For i = 0 To 19 : zoll2Fr(i) = "L" & i + 14 : Next
Dim zollTagFr(6) As String
For i = 0 To 2 : zollTagFr(i) = "J" & i + 34 : Next
For i = 0 To 2 : zollTagFr(i + 3) = "L" & i + 34 : Next
Dim NACHTFr1(6) As String
For i = 0 To 2 : NACHTFr1(i) = "J" & i + 37 : Next
' Dim NACHTFr2(11) As String
For i = 0 To 2 : NACHTFr1(i + 3) = "L" & i + 37 : Next
Dim ZAFr(10) As String
For i = 0 To 4 : ZAFr(i) = "J" & i + 40 : Next
For i = 0 To 4 : ZAFr(i + 5) = "L" & i + 40 : Next
Dim UrlFr(6) As String
For i = 0 To 2 : UrlFr(i) = "J" & i + 45 : Next
For i = 0 To 2 : UrlFr(i + 3) = "L" & i + 45 : Next
Dim SOFr(4) As String
For i = 0 To 1 : SOFr(i) = "J" & i + 48 : Next
For i = 0 To 1 : SOFr(i + 2) = "L" & i + 48 : Next
Dim KSFr(6) As String
For i = 0 To 2 : KSFr(i) = "J" & i + 50 : Next
For i = 0 To 2 : KSFr(i + 3) = "L" & i + 50 : Next
Blatt = fill(dgvZoll1_Fr, zoll1Fr, Blatt)
Blatt = fill(dgvZoll2_Fr, zoll2Fr, Blatt)
Blatt = fill(dgvZollTag_Fr, zollTagFr, Blatt)
Blatt = fill(dgvNACHT_Fr, NACHTFr1, Blatt)
Blatt = fill(dgvZA_Fr, ZAFr, Blatt)
Blatt = fill(dgvUrl_Fr, UrlFr, Blatt)
Blatt = fill(dgvDR_Fr, SOFr, Blatt)
Blatt = fill(dgvKS_Fr, KSFr, Blatt)
Button4.Text = txt & " (80 %)"
'SAMSTAG
Dim zoll1Sa(20) As String
For i = 0 To 19 : zoll1Sa(i) = "O" & i + 14 : Next
Dim zollTagSa(3) As String
For i = 0 To 2 : zollTagSa(i) = "O" & i + 34 : Next
' Dim zoll2Sa(14) As String
' For i = 0 To 13 : zoll2Sa(i) = "L" & i + 14 : Next
Dim NACHTSa1(3) As String
For i = 0 To 2 : NACHTSa1(i) = "O" & i + 37 : Next
' Dim NACHTSa2(11) As String
' For i = 0 To 2 : NACHTSa2(i) = "L" & i + 31 : Next
Dim ZASa(5) As String
For i = 0 To 4 : ZASa(i) = "O" & i + 40 : Next
' For i = 0 To 3: ZAFr(i + 3) = "L" & i + 40 : Next
Dim UrlSa(3) As String
For i = 0 To 2 : UrlSa(i) = "O" & i + 45 : Next
' For i = 0 To 2 : UrlSa(i + 4) = "L" & i + 45 : Next
Dim SOSa(2) As String
For i = 0 To 1 : SOSa(i) = "O" & i + 48 : Next
'For i = 0 To 2 : SOSa(i + 3) = "L" & i + 48 : Next
Dim KSSa(3) As String
For i = 0 To 2 : KSSa(i) = "O" & i + 50 : Next
' For i = 0 To 2 : KSSa(i + 3) = "L" & i + 50 : Next
Blatt = fill(dgvZoll1_Sa, dgvZoll2_Sa, zoll1Sa, Blatt)
'Blatt = fill(dgvZoll2_Sa, zoll1Sa, Blatt)
'Blatt = fill(dgvZollTag_Sa, zollTagSa, Blatt)
Blatt = fill(dgvNACHT_Sa, NACHTSa1, Blatt)
Blatt = fill(dgvZA_Sa, ZASa, Blatt)
Blatt = fill(dgvUrl_Sa, UrlSa, Blatt)
Blatt = fill(dgvDR_Sa, SOSa, Blatt)
Blatt = fill(dgvKS_Sa, KSSa, Blatt)
Button4.Text = txt & " (90 %)"
'SONNTAG
' Dim zoll1So(14) As String
' For i = 0 To 13 : zoll1So(i) = "Q" & i + 14 : Next
Dim zoll2So(20) As String
For i = 0 To 19 : zoll2So(i) = "P" & i + 14 : Next
Dim zollTagSo(3) As String
For i = 0 To 2 : zollTagSo(i) = "P" & i + 34 : Next
' Dim zoll2So(14) As String
' For i = 0 To 13 : zoll2So(i) = "L" & i + 14 : Next
Dim NACHTSo1(3) As String
For i = 0 To 2 : NACHTSo1(i) = "P" & i + 37 : Next
' Dim NACHTSo2(11) As String
' For i = 0 To 2 : NACHTSo2(i) = "L" & i + 31 : Next
Dim ZASo(5) As String
For i = 0 To 4 : ZASo(i) = "P" & i + 40 : Next
' For i = 0 To 3: ZAFr(i + 3) = "L" & i + 40 : Next
Dim UrlSo(3) As String
For i = 0 To 2 : UrlSo(i) = "P" & i + 45 : Next
' For i = 0 To 2 : UrlSo(i + 4) = "L" & i + 45 : Next
Dim SOSo(2) As String
For i = 0 To 1 : SOSo(i) = "P" & i + 48 : Next
'For i = 0 To 2 : SOSo(i + 3) = "L" & i + 48 : Next
Dim KSSo(3) As String
For i = 0 To 2 : KSSo(i) = "P" & i + 50 : Next
' For i = 0 To 2 : KSSo(i + 3) = "L" & i + 50 : Next
' Blatt = fill(dgvZoll1_So, zoll1So, Blatt)
Blatt = fill(dgvZoll2_So, zoll2So, Blatt, "SO")
' Blatt = fill(dgvZollTag_So, zollTagSo, Blatt)
Blatt = fill(dgvNACHT_So, NACHTSo1, Blatt)
Blatt = fill(dgvZA_So, ZASo, Blatt)
Blatt = fill(dgvUrl_So, UrlSo, Blatt)
Blatt = fill(dgvDR_So, SOSo, Blatt)
Blatt = fill(dgvKS_So, KSSo, Blatt)
Button4.Text = txt & " (100 %)"
.Visible = True
.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
Try : Datei.SaveAs(strFileName) : Catch : End Try
End With
Catch ex As Exception
MsgBox(ex.Message)
End Try
Me.Cursor = Cursors.Default
Button4.Text = txt
End Sub
Function fillQS(dgv As DataGridView, s1() As String, s2() As String, mestan As String, Blatt As Excel.Worksheet) As Excel.Worksheet
With dgv
Dim cnt1 As Integer = 0
Dim cnt2 As Integer = 0
If .RowCount > 0 Then
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)
If r.Cells(1).Value.ToString.Contains("AKPINAR") Then
Try : Blatt.Range(mestan).Value = r.Cells(1).Value : Catch : End Try
ElseIf r.Cells(4).Value = "10:00" And r.Cells(5).Value = "19:00" Then
Try : Blatt.Range(s2(cnt2)).Value = r.Cells(1).Value : cnt2 += 1 : Catch : End Try
Else
Try : Blatt.Range(s1(cnt1)).Value = r.Cells(1).Value : cnt1 += 1 : Catch : End Try
End If
Next
End If
End With
Return Blatt
End Function
Function fill(dgv As DataGridView, s() As String, Blatt As Excel.Worksheet, Optional dayOweek As String = "") As Excel.Worksheet
With dgv
If .RowCount > 0 Then
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 ex As Exception : MsgBox(ex.Message) : End Try
Try : Blatt.Range(s(i)).Value = r.Cells(1).Value : Catch ex As Exception : MsgBox(ex.Message) : End Try
If dayOweek = "SO" Then
Try : Blatt.Range(s(i)).Font.Color = Color.Red : Catch ex As Exception : MsgBox(ex.Message) : End Try
End If
If dayOweek <> "SO" And i = 0 And (dgv.Name.Contains("Zoll1") Or dgv.Name.Contains("Zoll2")) Then
Blatt.Range(s(i)).Value = Blatt.Range(s(i)).Value & " (SL)"
Dim start As Integer = Blatt.Range(s(i)).Value.ToString.Length - 2
Blatt.Range(s(i)).Characters(Start:=start, Length:=2).Font.Color = Color.Red
End If
Next
End If
End With
Return Blatt
End Function
Function fill(dgv As DataGridView, dgv2 As DataGridView, s() As String, Blatt As Excel.Worksheet, Optional dayOweek As String = "") As Excel.Worksheet
Dim j = 0
With dgv
If .RowCount > 0 Then
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(j)).Font.Color = ColorTranslator.FromHtml(r.Cells(9).Value)
Catch ex As Exception : MsgBox(ex.Message) : End Try
Try : Blatt.Range(s(j)).Value = r.Cells(1).Value : Catch ex As Exception : MsgBox(ex.Message) : End Try
If dayOweek = "SO" Then
Try : Blatt.Range(s(j)).Font.Color = Color.Red : Catch ex As Exception : MsgBox(ex.Message) : End Try
End If
If dayOweek <> "SO" And i = 0 And (.Name.Contains("Zoll1") Or .Name.Contains("Zoll2")) Then
Blatt.Range(s(j)).Value = Blatt.Range(s(j)).Value & " (SL)"
Dim start As Integer = Blatt.Range(s(j)).Value.ToString.Length - 2
Blatt.Range(s(j)).Characters(Start:=start, Length:=2).Font.Color = Color.Red
End If
j += 1
Next
End If
End With
With dgv2
If .RowCount > 0 Then
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(j)).Font.Color = ColorTranslator.FromHtml(r.Cells(9).Value)
Catch ex As Exception : MsgBox(ex.Message) : End Try
Try : Blatt.Range(s(j)).Value = r.Cells(1).Value : Catch ex As Exception : MsgBox(ex.Message) : End Try
j += 1
Next
End If
End With
Return Blatt
End Function
Private Sub Schicht2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ctiZollTag.Click, ctiDbl.Click, ctiSchicht1.Click, ctiSchicht2.Click, ctiKrankenstand.Click, ctiQS.Click, ctiFrei.Click, ctiDienstreise.Click, ctiUrlaub.Click, ctiWocheSchichtWechsel.Click, ctiBemWo.Click, ZeitausgleichToolStripMenuItem.Click, NormaldienstToolStripMenuItem.Click, _
ctiZVMLaenger.Click, ctiZNMLaenger.Click
' Dim a As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
Dim dgv_tmp As DataGridView = DirectCast(sender.owner.SourceControl, DataGridView)
Dim vm = "ZOLL2" : If SCHICHT.ToString.StartsWith("ROT") Then vm = "ZOLL1"
Dim nm = "ZOLL1" : If SCHICHT.ToString.StartsWith("BLAU") Then vm = "ZOLL2"
Select Case sender.Name
Case "ctiSchicht1"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "ZOLL_VM"))
Case "ctiSchicht2"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "ZOLL_NM"))
Case "ctiZollTag"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "ZOLL_TAG"))
Case "ctiKrankenstand"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "KS"))
Case "ctiQS"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "NACHT"))
Case "ctiFrei"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "FREI"))
Case "ctiDienstreise"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "DR"))
Case "ctiUrlaub"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "URL"))
Case "ctiDbl"
changeDGVToDBL(dgv_tmp)
Case "ctiWocheSchichtWechsel"
changeDGVWoSchicht(dgv_tmp)
Case "ctiBemWo"
changeDGVWoBemerkung(dgv_tmp)
Case "ZeitausgleichToolStripMenuItem"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "ZA"))
Case "NormaldienstToolStripMenuItem"
initALL(dgv_tmp.CurrentRow.Cells("dstma_id").Value)
Case "ctiZVMLaenger"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "ZOLL_VM"), "06:00", "16:00", 0, " 06-16")
Case "ctiZNMLaenger"
changeDGV(dgv_tmp, getDgvByDatArt(getValuesDienstDGV(dgv_tmp.Name, "datum"), "ZOLL_NM"), "16:00", "01:00", 0, " 16-01")
End Select
End Sub
Sub changeDGVToDBL(dgv_sender As DataGridView)
Me.Cursor = Cursors.WaitCursor
Try
Dim arr As DataGridViewSelectedCellCollection = dgv_sender.SelectedCells
For Each c As DataGridViewCell In arr
Dim r As DataGridViewRow = c.OwningRow
Dim von = getDefaultTimeBySchicht("DBL", "von", CDate(getValuesDienstDGV(dgv_sender.Name, "datum")).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim bis = getDefaultTimeBySchicht("DBL", "bis", CDate(getValuesDienstDGV(dgv_sender.Name, "datum")).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim pause = getDefaultTimeBySchicht("DBL", "pause", CDate(getValuesDienstDGV(dgv_sender.Name, "datum")).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
SQLDienst.updateDienstEintragArtChange(r.Cells(0).Value, getValuesDienstDGV(dgv_sender.Name, "datum"), "DBL", von, bis, pause)
Next
initDienstplan()
Catch ex As Exception
MessageBox.Show("changeDGVToDBL-Error: " & ex.Message)
End Try
Me.Cursor = Cursors.Default
End Sub
Sub changeDGVWoSchicht(dgv_sender As DataGridView)
Me.Cursor = Cursors.WaitCursor
Try
If dgv_sender.SelectedCells.Count = 1 Then
Dim maId = dgv_sender.CurrentRow.Cells(2).Value
Dim montag As Date = CalendarWeek(aktWoche, aktJahr)
For i = 0 To 4
Dim datum = montag.AddDays(i)
Dim abt = ""
Select Case SQLDienst.getSchichtOnDate(maId, datum)
Case "ZOLL_VM" : abt = "ZOLL_NM"
Case "ZOLL_NM" : abt = "ZOLL_VM"
End Select
If abt <> "" Then
Dim von As String = getDefaultTimeBySchicht(abt, "von", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim bis As String = getDefaultTimeBySchicht(abt, "bis", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim pause As String = getDefaultTimeBySchicht(abt, "pause", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
SQLDienst.updateDienstEintragArtChangeByDstMaId(maId, datum, abt, von, bis, "", pause)
End If
Next
Else
MsgBox("Bei dieser Funktion muss genau ein Mitarbeiter auswegählt sein!")
End If
initDienstplan()
Catch ex As Exception
MessageBox.Show("changeDGVWoSchicht-Error: " & ex.Message)
End Try
Me.Cursor = Cursors.Default
End Sub
Sub changeDGVWoBemerkung(dgv_sender As DataGridView)
Me.Cursor = Cursors.WaitCursor
Try
If dgv_sender.SelectedCells.Count = 1 Then
Dim maId = dgv_sender.CurrentRow.Cells(2).Value
Dim montag As Date = CalendarWeek(aktWoche, aktJahr)
Dim input = InputBox("Bitte geben Sie eine Bemerkung ein:", "Bemerkung ändern")
If input <> "" Then
SQLDienst.updateDienstBemerkungChange(maId, montag, montag.AddDays(4), input, niederlassung)
Else
MsgBox("Keine Bemerkung angegeben!")
End If
Else
MsgBox("Bei dieser Funktion muss genau ein Mitarbeiter auswegählt sein!")
End If
initDienstplan()
Catch ex As Exception
MessageBox.Show("changeDGVWoBemerkung-Error: " & ex.Message)
End Try
Me.Cursor = Cursors.Default
End Sub
Sub checkMaTageIfTeilzeit(maId)
Dim dMa As cDienstMA = SQLDienst.getDstMAByDstMaId(maId)
If dMa.dstma_arbvh = "TZ" Then
Dim daysEintrag = SQLDienst.getCountDays(maId, CalendarWeek(aktWoche, aktJahr), CalendarWeek(aktWoche, aktJahr).AddDays(6))
If dMa.dstma_TageProWoche >= 0 And daysEintrag > dMa.dstma_TageProWoche Then
MsgBox(dMa.dstma_kuerzel & " wurde " & daysEintrag & " Mal eingetragen (Standard: " & dMa.dstma_TageProWoche & " Tage)!", vbInformation)
End If
End If
End Sub
Sub changeDGV(dgv_sender As DataGridView, dgv_receiver As DataGridView)
Me.Cursor = Cursors.WaitCursor
Try
If dgv_sender IsNot Nothing And dgv_receiver IsNot Nothing Then
If Not dgv_sender.Name = dgv_receiver.Name Then
If getValuesDienstDGV(dgv_receiver.Name, "datum") = getValuesDienstDGV(dgv_sender.Name, "datum") Then
Dim arr As DataGridViewSelectedCellCollection = dgv_sender.SelectedCells
For Each c As DataGridViewCell In arr
Dim r As DataGridViewRow = c.OwningRow
'If Not alreadyExists(dgv_receiver, r.Cells(2).Value) Then
Dim datum As Date = Date.Parse(getValuesDienstDGV(dgv_receiver.Name, "datum"))
Dim abt As String = getValuesDienstDGV(dgv_receiver.Name, "abt")
Dim von = getDefaultTimeBySchicht(abt, "von", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim bis = getDefaultTimeBySchicht(abt, "bis", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim pause = getDefaultTimeBySchicht(abt, "pause", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
SQLDienst.updateDienstEintragArtChange(r.Cells(0).Value, datum.ToShortDateString, abt, von, bis, pause)
If abt.Contains("ZOLL") Or abt = "NACHT" And r.Cells("dstma_arbvh").Value = "TZ" Then
checkMaTageIfTeilzeit(r.Cells("dstma_id").Value)
End If
Next
initDienstplan()
End If
End If
End If
Catch ex As Exception
MessageBox.Show("changeDGV-Error: " & ex.Message)
End Try
Me.Cursor = Cursors.Default
End Sub
Sub changeDGV(dgv_sender As DataGridView, dgv_receiver As DataGridView, von As String, bis As String, pause As Double, info As String)
Me.Cursor = Cursors.WaitCursor
Try
'If dgv_sender IsNot Nothing And dgv_receiver IsNot Nothing Then
' If Not dgv_sender.Name = dgv_receiver.Name Then
If getValuesDienstDGV(dgv_receiver.Name, "datum") = getValuesDienstDGV(dgv_sender.Name, "datum") Then
Dim arr As DataGridViewSelectedCellCollection = dgv_sender.SelectedCells
For Each c As DataGridViewCell In arr
Dim r As DataGridViewRow = c.OwningRow
'If Not alreadyExists(dgv_receiver, r.Cells(2).Value) Then
Dim datum As Date = Date.Parse(getValuesDienstDGV(dgv_receiver.Name, "datum"))
Dim abt As String = getValuesDienstDGV(dgv_receiver.Name, "abt")
' If von = "" Then von = getDefaultTimeBySchicht(abt, "von", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
' If bis = "" Then bis = getDefaultTimeBySchicht(abt, "bis", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
' If pause < 0 Then pause = getDefaultTimeBySchicht(abt, "pause", datum.ToString("ddd", New CultureInfo("de-DE")).ToUpper)
SQLDienst.updateDienstEintragArtChange(r.Cells(0).Value, datum.ToShortDateString, abt, von, bis, pause)
If info <> "" Then SQLDienst.updateDienstEintragInfo(r.Cells(0).Value, info)
If abt.Contains("ZOLL") Or abt = "NACHT" And r.Cells("dstma_arbvh").Value = "TZ" Then
checkMaTageIfTeilzeit(r.Cells("dstma_id").Value)
End If
Next
initDienstplan()
End If
'End If
' End If
Catch ex As Exception
MessageBox.Show("changeDGV-Error: " & ex.Message)
End Try
Me.Cursor = Cursors.Default
End Sub
Function getDgvByDatArt(datum, art) As DataGridView
For Each d As cDienstDGV In DGV
If d.dgvDatum = datum And d.dgvAbteilung = art Then Return getDGV(d.dgvName)
Next
Return Nothing
End Function
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
AbwesenheitEintragen("URL")
Exit Sub
Dim frmDiestEintrag As New frmDiestEintrag
frmDiestEintrag.niederlassung = niederlassung
frmDiestEintrag.art = "URL"
frmDiestEintrag.Show()
End Sub
Private Sub AbwesenheitEintragen(grund)
' MsgBox(e.ColumnIndex & " : " & e.RowIndex)
If markId < 0 Then MsgBox("Mitarbeiter auswählen!") : Exit Sub
Dim frmUrlKW As New frmUrlKW
Dim art = ""
frmUrlKW.KW = aktWoche
frmUrlKW.YEAR = aktJahr
'Dim kw As Integer = dgvUrlaub.Rows(e.RowIndex).Cells(e.ColumnIndex).Tag
' Dim maId = markId
Dim ll As List(Of cDienstAbwesendheitenKW) = SQLDienst.getDienstAbwesendheitenKWByArt(aktWoche, markId, aktJahr, niederlassung, grund)
' Dim ll As List(Of cDienstAbwesendheitenKW) = DP.getDienstAbwesendheitenKW(kw, aktJahr, niederlassung)
' MsgBox(e.ColumnIndex - 1)
If ll.Count = 1 Then
frmUrlKW.KW_ID = ll(0).dstnk_id
' frmUrlKW.KW_ID = ll(0).dstnk_grund
ElseIf ll.Count > 1 Then
Dim frmDienstAuswahl As New frmDienstAuswahl
frmDienstAuswahl.list = ll
frmDienstAuswahl.ShowDialog(Me)
frmUrlKW.KW_ID = frmDienstAuswahl.kw_id
End If
frmUrlKW.maId = markId
frmUrlKW.niederlassung = niederlassung
frmUrlKW.ShowDialog(Me)
If frmUrlKW.RESULT <> "" Then
initALL(markId)
End If
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Me.Cursor = Cursors.WaitCursor
aktDate = aktDate.AddDays(7)
aktWoche = DateToWeek(aktDate).Substring(4, 2)
aktJahr = DateToWeek(aktDate).Substring(0, 4)
initWeekInfo()
initDienstplan()
txtKWYear.Text = aktDate.Year
Me.Cursor = Cursors.Default
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
Me.Cursor = Cursors.WaitCursor
aktDate = aktDate.AddDays(-7)
aktWoche = DateToWeek(aktDate).Substring(4, 2)
aktJahr = DateToWeek(aktDate).Substring(0, 4)
initWeekInfo()
initDienstplan()
txtKWYear.Text = aktDate.Year
Me.Cursor = Cursors.Default
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Me.Cursor = Cursors.WaitCursor
'MsgBox(dgvZoll1_Mo.Rows(0).Cells(2).Value)
Try
If TextBox1.Text = "" Then Throw New Exception
If TextBox2.Text = "" Then Throw New Exception
If Not IsNumeric(TextBox4.Text) Then Throw New Exception
If TextBox4.Text > 3 Or TextBox4.Text < 0 Then MsgBox("Die Pause darf nicht größer als 3 Stunden sein!") : Throw New Exception
If cbxChangeForWo.Checked Then 'für ganze Woche
Try
Dim montag As Date = CalendarWeek(aktWoche, aktJahr)
Dim maid = SQLDienst.getMaIdByEtrId(aktMitarbeiterEintrag)
If maid <> "" Then
SQLDienst.updateDienstEintragVonBisBemWOCHEChangeByMitId(CInt(maid), montag, montag.AddDays(4), TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, niederlassung)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else 'für diesen Eintrag
SQLDienst.updateDienstEintragArtBemerkungChange(aktMitarbeiterEintrag, TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text)
End If
cbxChangeForWo.Checked = False
Catch ex As Exception
MsgBox("Fehler beim Speichern des Eintrages.")
End Try
'Where dsteintr_id=aktMitarbeiterEintrag
initDienstplan()
setDetails(entryId_TMP)
Me.Cursor = Cursors.Default
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
TextBox1.Text = "10:00"
TextBox2.Text = "19:00"
End Sub
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
AbwesenheitEintragen("KS")
Exit Sub
Dim frmDiestEintrag As New frmDiestEintrag
frmDiestEintrag.niederlassung = niederlassung
frmDiestEintrag.art = "KS"
frmDiestEintrag.Show()
End Sub
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
AbwesenheitEintragen("DR")
Exit Sub
Dim frmDiestEintrag As New frmDiestEintrag
frmDiestEintrag.niederlassung = niederlassung
frmDiestEintrag.art = "DR"
frmDiestEintrag.Show()
End Sub
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
Dim frmUrlaubsplaner As New frmUrlaubsplaner
frmUrlaubsplaner.niederlassung = niederlassung
frmUrlaubsplaner.ShowDialog()
Exit Sub
frmDienstAbwesenheitenUebersicht.Show()
End Sub
Private Sub cboQSSpaet_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboQSSpaet.SelectedIndexChanged
Dim montag As Date = CalendarWeek(aktWoche, aktJahr)
'SONNTAG
Dim von = getDefaultTimeBySchicht("NACHT", "von", montag.AddDays(6).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim bis = getDefaultTimeBySchicht("NACHT", "bis", montag.AddDays(6).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
Dim pause = getDefaultTimeBySchicht("NACHT", "pause", montag.AddDays(6).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
SQLDienst.updateDienstEintragArtChangeByDstMaId(CType(cboQSSpaet.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value, montag.AddDays(6), "NACHT", von, bis, "", pause)
For i = 0 To 4
von = getDefaultTimeBySchicht("NACHT", "von", montag.AddDays(i).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
bis = getDefaultTimeBySchicht("NACHT", "bis", montag.AddDays(i).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
pause = getDefaultTimeBySchicht("NACHT", "pause", montag.AddDays(i).ToString("ddd", New CultureInfo("de-DE")).ToUpper)
' If montag.AddDays(i).DayOfWeek = 6 Then
SQLDienst.updateDienstEintragArtChangeByDstMaId(CType(cboQSSpaet.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value, montag.AddDays(i), "NACHT", von, bis, "", pause)
' Else
' SQLDienst.updateDienstEintragArtChangeByDstMaId(CType(cboQSSpaet.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value, montag.AddDays(i), "NACHT", "10:00", "19:00", "10-19", "1")
'End If
Next
initDienstplan()
End Sub
Private Function GetWeekStartDate(weekNumber As Integer, year As Integer) As Date
Dim startDate As New DateTime(year, 1, 1)
Dim weekDate As DateTime = DateAdd(DateInterval.WeekOfYear, weekNumber, startDate)
Return DateAdd(DateInterval.Day, (-weekDate.DayOfWeek) + 1, weekDate)
End Function
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
If IsNumeric(txtKW.Text) AndAlso txtKW.Text < 54 AndAlso txtKW.Text > 0 Then
If IsNumeric(txtKWYear.Text) AndAlso txtKWYear.Text < 3000 AndAlso txtKWYear.Text > 2000 Then
Me.Cursor = Cursors.WaitCursor
aktDate = GetWeekStartDate(txtKW.Text, txtKWYear.Text)
aktWoche = DateToWeek(aktDate).Substring(4, 2)
aktJahr = DateToWeek(aktDate).Substring(0, 4)
initWeekInfo()
initDienstplan()
Me.Cursor = Cursors.Default
End If
End If
End Sub
Private Sub txtKW_KeyDown(sender As Object, e As KeyEventArgs) Handles txtKW.KeyDown, txtKWYear.KeyDown
If e.KeyCode = Keys.Enter Then Button11.PerformClick()
End Sub
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
Exit Sub
'Dim pf As New cProgramFunctions
'pf.KWAbschluss(niederlassung, aktJahr, aktWoche, SCHICHT)
'initDienstplan()
End Sub
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
AbwesenheitEintragen("BS")
End Sub
Private Sub Button16_Click_1(sender As Object, e As EventArgs) Handles Button16.Click
If vbYes = MsgBox("Möchten Sie die Woche wirklich löschen?", vbYesNoCancel) Then
Dim datum As Date = CalendarWeek(aktWoche, aktJahr)
SQLDienst.delDienstplanEintraege(datum, datum.AddDays(6), niederlassung)
SQLDienst.delDienstplanUeberSdtMa(aktWoche, aktJahr, niederlassung)
initDienstplan()
End If
End Sub
Private Sub btnDetails_Click_1(sender As Object, e As EventArgs) Handles btnDetails.Click
initDetails(False)
End Sub
Sub initDetails(refresh As Boolean)
If refresh Then 'nur Aktualisieren
If usrDetailsTMP.Visible Then usrDetailsTMP.init(CalendarWeek(aktWoche, aktJahr), niederlassung)
Exit Sub
End If
If usrDetailsTMP.Visible Then
usrDetailsTMP.Visible = False
Else
usrDetailsTMP.init(CalendarWeek(aktWoche, aktJahr), niederlassung)
usrDetailsTMP.Visible = True
End If
End Sub
End Class