This commit is contained in:
2022-07-08 08:12:07 +02:00
parent e3843466c8
commit 46c14b6500
34 changed files with 1958 additions and 678 deletions

View File

@@ -910,7 +910,7 @@ Public Class cProgramFunctions
Dim SQLDienst As New cDienstplan
Public Function getWochenstunden(STD_LIST As List(Of cDienstMitarbAbweichendeWochenstunden), Wochenstunden As Double, datum As Date, SCHICHT As String, dstma_id As Integer, dstma_muster As Boolean, dstma_WEStdRegelAZ As Boolean, dstma_arbvh As String, niederlassung As String, StdFeiertag As Object) As Double
Public Function getWochenstunden(STD_LIST As List(Of cDienstMitarbAbweichendeWochenstunden), Wochenstunden As Double, datum As Date, SCHICHT As String, dstma_id As Integer, dstma_muster As Boolean, dstma_WEStdRegelAZ As Boolean, dstma_arbvh As String, niederlassung As String, StdFeiertag As Object, schicht4wo As Boolean) As Double
getWochenstunden = cDienstMitarbAbweichendeWochenstunden.GET_STD_LIST(STD_LIST, dstma_id, datum, Wochenstunden, If(StdFeiertag, -1))
Dim UrlStd As Double = 8
@@ -924,26 +924,31 @@ Public Class cProgramFunctions
If dstma_muster Then 'Wenn Muster, dann muss Feiertag bei VZ und TZ berüchsichtigt werden....
If (woTag <> "SA" And woTag <> "SO") Or dstma_WEStdRegelAZ Then ' ... aber nur wenn Wochendende teil der Regel-Arbeitszeit ist.
Dim tz As cDienstTeilzeit = SQLDienst.getDienstTeilzeitBySchicht(dstma_id, SCHICHT, woTag)
Dim tz As cDienstTeilzeit = SQLDienst.getDienstTeilzeitBySchicht(dstma_id, SCHICHT, woTag, schicht4wo)
If tz IsNot Nothing Then ' EVtl gibt es den WoTag Nicht
'Wochenstunden -= getDiff(tz.dsttz_von, tz.dsttz_bis, niederlassung, (FT.isFeiertag(datum) Or woTag = "SO"))
If datum.ToString("dd.MM.") = "31.12." Or datum.ToString("dd.MM.") = "24.12." Then 'Weihnachten und Silvester ist ist nur 1/2 Tag!!!
getWochenstunden -= UrlStd / 2
Else
If dstma_arbvh = "VZ" Then
getWochenstunden -= UrlStd 'bei vollzeit mit Muster werden 8 Std abgezogen
Else
If getDiff(tz.dsttz_von, tz.dsttz_bis, niederlassung, False) > 0 Then 'Wenn an deisem Tag Stunden angefallen wären (lt. Muster)
getWochenstunden -= UrlStd
' getWochenstunden -= getDiff(tz.dsttz_von, tz.dsttz_bis, niederlassung, False)
' If IsNumeric(tz.dsttz_pause) Then getWochenstunden += tz.dsttz_pause
If StdFeiertag IsNot Nothing Then
getWochenstunden -= UrlStd ' wurde oben schon angepasst.
Else
'gibt es keine deinierten Std.für einen Feiertag, werden die Stunden nach Mustereinteilung berechnet:
If getDiff(tz.dsttz_von, tz.dsttz_bis, niederlassung, False) > 0 Then 'Wenn an deisem Tag Stunden angefallen wären (lt. Muster)
Dim getWochenstundenTAG = getDiff(tz.dsttz_von, tz.dsttz_bis, niederlassung, False)
If IsNumeric(tz.dsttz_pause) Then getWochenstundenTAG += tz.dsttz_pause
getWochenstunden -= getWochenstundenTAG
End If
End If
End If
End If
End If
End If
Else
@@ -1036,16 +1041,17 @@ Public Class cProgramFunctions
' 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"
' 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")
Return dDate.Year.ToString & Format$(dDate.Subtract(dThisYear).Days \ 7 + 1, "00").ToString
End If
End Function
@@ -1079,7 +1085,7 @@ Public Class cProgramFunctions
If IsNumeric(ma.dstma_wochenStunden) Then Wochenstunden = ma.dstma_wochenStunden
' MsgBox(Wochenstunden)
Wochenstunden = cPF.getWochenstunden(STD_LIST, Wochenstunden, datum, SCHICHT, r("dstma_id"), ma.dstma_muster, ma.dstma_WEStdRegelAZ, ma.dstma_arbvh, niederlassung, ma.dstma_TzFeiertageStd)
Wochenstunden = cPF.getWochenstunden(STD_LIST, Wochenstunden, datum, SCHICHT, r("dstma_id"), ma.dstma_muster, ma.dstma_WEStdRegelAZ, ma.dstma_arbvh, niederlassung, ma.dstma_TzFeiertageStd, ma.dstma_4wo)
Dim tatStd As Double = SQLDienst.getDstStunden(r("dstma_id"), datum_montag, datum_montag.AddDays(6), niederlassung)
' : ANDERES ERG"""""!!!!!!!!!!!!!!!!!!!!