NEU
This commit is contained in:
181
UID/Dienstplan/usrcntlDienstplanStunden.vb
Normal file
181
UID/Dienstplan/usrcntlDienstplanStunden.vb
Normal file
@@ -0,0 +1,181 @@
|
||||
Imports System.Globalization
|
||||
|
||||
Public Class usrcntlDienstplanStunden
|
||||
|
||||
Dim SQLDienst As New cDienstplan
|
||||
' Dim ListMA As New List(Of cMAShort)
|
||||
' Dim aktDate As Date = Now
|
||||
Dim aktWoche As Integer = 0
|
||||
Dim aktJahr As Integer = 1900
|
||||
Dim niederlassung As String = ""
|
||||
Dim cPF As New cProgramFunctions
|
||||
Public SCHICHT = "ROT"
|
||||
Public loaded As Integer = False
|
||||
|
||||
Public Event NAME_CHANGED(maId As Integer)
|
||||
|
||||
|
||||
Sub New(aktWoche, aktJahr, niederlassung, SCHICHT)
|
||||
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
Me.aktWoche = aktWoche
|
||||
Me.aktJahr = aktJahr
|
||||
Me.niederlassung = niederlassung
|
||||
Me.SCHICHT = SCHICHT
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
'initStdMa()
|
||||
End Sub
|
||||
Public Sub initStdMa()
|
||||
loaded = False
|
||||
Try
|
||||
Dim datum_start As Date = CalendarWeek(aktWoche, aktJahr)
|
||||
Dim datum_end As Date = datum_start.AddDays(6)
|
||||
With dgvStundenMa
|
||||
.Columns.Clear()
|
||||
.DataSource = SQLDienst.loadDGV("SELECT dstma_abteilung AS ABT, dstma_kuerzel AS NAME,dstma_wochenStunden,dstma_arbvh, dstma_id,dstma_farbe,dstma_mitId,dstma_ueberstdCounter FROM tblDienstMitarb INNER JOIN tblMitarbeiter ON mit_id=dstma_mitId WHERE dstma_inaktiv=0 AND (mit_gekuendigt =0 OR mit_kuendigungsdatum>='" & datum_start.ToShortDateString & "') AND dstma_niederlassung='" & niederlassung & "' ORDER BY ABT DESC, dstma_arbvh DESC, NAME")
|
||||
|
||||
Try
|
||||
|
||||
Dim d2 As New DataGridViewTextBoxColumn
|
||||
d2.Name = "stundenBerechnet"
|
||||
.Columns.Insert(2, d2)
|
||||
|
||||
Dim d As New DataGridViewTextBoxColumn
|
||||
d.HeaderText = "Stunden Woche"
|
||||
d.Name = "stunden"
|
||||
.Columns.Insert(3, d)
|
||||
|
||||
|
||||
|
||||
' Dim d2 As New DataGridViewTextBoxColumn
|
||||
' d2.HeaderText = "Std/Mon."
|
||||
' .Columns.Add(d2)
|
||||
|
||||
.RowHeadersVisible = False
|
||||
.Columns("dstma_farbe").Visible = False
|
||||
'.Columns("dstma_kuerzel").Visible = False
|
||||
.Columns("dstma_arbvh").Visible = False
|
||||
.Columns("dstma_id").Visible = False
|
||||
.Columns("dstma_wochenStunden").Visible = False
|
||||
.Columns("dstma_mitId").Visible = False
|
||||
|
||||
.Columns("dstma_ueberstdCounter").HeaderText = "Überstd.(letzte KW)"
|
||||
.Columns("dstma_ueberstdCounter").Width = 60
|
||||
|
||||
|
||||
.Columns("stundenBerechnet").HeaderText = "Std."
|
||||
.Columns("stundenBerechnet").Width = 40
|
||||
|
||||
.Columns("ABT").Width = 50
|
||||
If niederlassung <> "SUB" Then .Columns("ABT").Visible = False
|
||||
.Columns("NAME").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
||||
'.Columns(2).Width = 50
|
||||
.Columns("stunden").Width = 70
|
||||
' .Columns(9).Width = 80
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
MsgBox("initStdMa-Error: " & ex.StackTrace)
|
||||
End Try
|
||||
|
||||
For Each r As DataGridViewRow In .Rows
|
||||
Try : r.DefaultCellStyle.ForeColor = ColorTranslator.FromHtml(r.Cells("dstma_farbe").Value) : Catch : End Try
|
||||
|
||||
Dim datum_montag As Date = CalendarWeek(aktWoche, aktJahr)
|
||||
Dim thisMonth As New DateTime(DateTime.Today.Year, DateTime.Today.Month, 1)
|
||||
Dim datum As Date = datum_montag
|
||||
|
||||
Dim ma As cDienstMA = SQLDienst.getDstMA(r.Cells("dstma_id").Value)
|
||||
Dim Wochenstunden As Double = 0
|
||||
|
||||
If IsNumeric(ma.dstma_wochenStunden) Then Wochenstunden = ma.dstma_wochenStunden
|
||||
'MsgBox(ma.dstma_wochenStunden)
|
||||
'hier wird berechnet, wie viele Stunden tatsächlich zu arbeiten sind (abzgl. Feiertage)
|
||||
Wochenstunden = cPF.getWochenstunden(Wochenstunden, datum, SCHICHT, r.Cells("dstma_id").Value, ma.dstma_muster, ma.dstma_WEStdRegelAZ, ma.dstma_arbvh, niederlassung, ma.dstma_TzFeiertageStd)
|
||||
|
||||
'Hier wird berechnet wie viele Std tastächlich gearbeitet wurden:
|
||||
Dim tatStd As Double = SQLDienst.getDstStunden(r.Cells("dstma_id").Value, datum_montag, datum_montag.AddDays(6), niederlassung)
|
||||
|
||||
|
||||
r.Cells("stundenBerechnet").Value = (Wochenstunden)
|
||||
r.Cells("stunden").Value = (tatStd) & " (" & tatStd - Wochenstunden & ")"
|
||||
Dim arb As New cArbeitstage
|
||||
r.Cells("dstma_ueberstdCounter").Value = SQLDienst.getDienstplanUeberSdtMaSUMMEBisKW(r.Cells("dstma_id").Value, aktWoche, aktJahr, niederlassung) '
|
||||
|
||||
Next
|
||||
End With
|
||||
loaded = True
|
||||
Catch ex As Exception
|
||||
MsgBox("initStdMa-Error: " & ex.Message)
|
||||
|
||||
End Try
|
||||
initUestd()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
Public Sub markrow(maId)
|
||||
loaded = False
|
||||
dgvStundenMa.ClearSelection()
|
||||
For Each r In dgvStundenMa.Rows
|
||||
If r.Cells("dstma_id").value = maId Then
|
||||
r.DefaultCellStyle.Font = New Font(dgvStundenMa.Font, FontStyle.Bold)
|
||||
r.Selected = True
|
||||
End If
|
||||
Next
|
||||
loaded = True
|
||||
End Sub
|
||||
Public Sub clearRowBg()
|
||||
loaded = False
|
||||
For Each r In dgvStundenMa.Rows
|
||||
r.DefaultCellStyle.Font = New Font(dgvStundenMa.Font, FontStyle.Regular)
|
||||
Next
|
||||
loaded = True
|
||||
End Sub
|
||||
|
||||
Private Sub btnCounterUest_Click(sender As Object, e As EventArgs) Handles btnCounterUest.Click
|
||||
If dgvStundenMa.SelectedRows.Count = 0 Then MsgBox("Mitarbeiter auswählen!") : Exit Sub
|
||||
If Not IsNumeric(txtUeberstd.Text) Then MsgBox("Falsches Format!") : Exit Sub
|
||||
Dim maId = dgvStundenMa.SelectedRows(0).Cells("dstma_id").Value
|
||||
SQLDienst.insertupdateDienstplanUeberSdtMaAuszahlung(maId, aktWoche, aktJahr, CDbl(IIf(IsNumeric(txtUeberstd.Text), txtUeberstd.Text, 0)), niederlassung)
|
||||
'MsgBox(CDbl(IIf(IsNumeric(lblUeberStd.Text), lblUeberStd.Text, 0)))
|
||||
' SQLDienst.updateDienstMaStd(dgvStundenMa.SelectedRows(0).Cells("dstma_id").Value, CDbl(IIf(IsNumeric(lblUeberStd.Text), lblUeberStd.Text, 0)) + CDbl(txtUeberstd.Text))
|
||||
|
||||
|
||||
initStdMa()
|
||||
markrow(maId)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub dgvStundenMa_SelectionChanged(sender As Object, e As EventArgs) Handles dgvStundenMa.SelectionChanged
|
||||
If dgvStundenMa.SelectedRows.Count = 0 Then Exit Sub
|
||||
initUestd()
|
||||
If loaded Then RaiseEvent NAME_CHANGED(dgvStundenMa.SelectedRows(0).Cells("dstma_id").Value)
|
||||
End Sub
|
||||
|
||||
Sub initUestd()
|
||||
If dgvStundenMa.SelectedRows.Count = 0 Then Exit Sub
|
||||
lblUeberStd.Text = dgvStundenMa.SelectedRows(0).Cells("dstma_ueberstdCounter").Value()
|
||||
txtUeberstd.Text = "0"
|
||||
txtUeberstd.Text = SQLDienst.getDienstplanAuszSdtMaSUMM_KW(dgvStundenMa.SelectedRows(0).Cells("dstma_id").Value, aktWoche, aktJahr)
|
||||
lblName.Text = dgvStundenMa.SelectedRows(0).Cells("NAME").Value()
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user