Essenbestellungen, Ueberstunden

This commit is contained in:
2024-03-25 08:52:07 +01:00
parent 585f5cbf75
commit 826e83bf5d
3 changed files with 100 additions and 58 deletions

View File

@@ -19,7 +19,9 @@ Public Class frmUeberstundenauszahlen
Dim maxUberstundenpruefung As Boolean = True
Dim istTeilzeit As Boolean = False
Dim faktorTeilzeit As Double = 100
Dim faktorFeiertagsarbeit As Double = 200
Dim faktorSamstagsarbeit As Double = 150
Dim keinenFaktor As Boolean = False
Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, stunden25bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere, overwrittenSum As Double
@@ -49,9 +51,11 @@ Public Class frmUeberstundenauszahlen
'1553;"AUSZ ÜS MA 25%"
timeaccountdt = dv.ToTable
getAddDataFromTimas()
getUeberstunden(False)
getAddDataFromTimas()
'getAddDataFromTimas()
End Sub
@@ -90,14 +94,6 @@ Public Class frmUeberstundenauszahlen
enddate = (dtpBis.Value)
auszahlugsdatum = tag.GetLastyDayYInxMonth(enddate.DayOfWeek, enddate.Month, enddate.Year, True) 'Endmonat des Enddates
'Dim bereitsgezahlteueberstunden = "select sum(isnull(uest_100,0)) as ue100 , sum(isnull(uest_50,0)) as ue50, sum(isnull(uest_25,0)) as ue25, sum(isnull(uest_0,0)) as ue0
'FROM [ADMIN].[dbo].[tblUeberstunden]
'where uest_date between '" & startdate & "' and '" & enddate & "' and uest_deleted = 0 and uest_maId = " & MA.mit_id & "
'group by uest_maId"
'dtbereitsausgezahlteUE.Clear()
'dtbereitsausgezahlteUE = SQL.loadDgvBySql(bereitsgezahlteueberstunden, "ADMIN", 100, True)
Else
startdate = tag.GetFirstyDayYInxMonth(DateTime.Parse(dtpMonat.Value).DayOfWeek, DateTime.Parse(dtpMonat.Value).Month, DateTime.Parse(dtpMonat.Value).Year, True)
enddate = tag.GetLastyDayYInxMonth(DateTime.Parse(dtpMonat.Value).DayOfWeek, DateTime.Parse(dtpMonat.Value).Month, DateTime.Parse(dtpMonat.Value).Year, True)
@@ -449,16 +445,29 @@ Public Class frmUeberstundenauszahlen
Dim sum100, sum50, sum0, gesamt As Double
sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 100 / 200, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 100 / faktorFeiertagsarbeit, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / faktorSamstagsarbeit, 2)
sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2)
gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text))
If faktorSamstagsarbeit = 150 AndAlso istTeilzeit Then
'Besprechung mit RESI ob Teilzeitmitarbeiter 50% ausgezahlt bekommen oder diese umgerechnet in 25% werden!
MsgBox("Die Konstellation SA-Zuschlag und Teilzeitmitarbeiter ist noch nicht umgesetzt!")
Exit Sub
End If
Dim txtAusgabe As New StringBuilder
txtAusgabe.Append("Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " auszahlen?" & vbNewLine)
txtAusgabe.Append(sum100 & "x 100% ÜS :" & txtAusz100.Text & vbNewLine)
txtAusgabe.Append(IIf(Not istTeilzeit, sum50 + sum0, sum50) & "x 50% ÜS: " & CDbl(txtAusz50.Text) + IIf(Not istTeilzeit, CDbl(txtAusz50vonSaldo.Text), 0) & vbNewLine)
If istTeilzeit Then txtAusgabe.Append(sum0 & "x 25% ÜS: " & CDbl(txtAusz50vonSaldo.Text) & vbNewLine)
If Not istTeilzeit Then
txtAusgabe.Append(sum50 + sum0 & "x 50% ÜS: " & CDbl(txtAusz50.Text) + CDbl(txtAusz50vonSaldo.Text) & vbNewLine)
Else
txtAusgabe.Append(sum50 + sum0 & "x 25% ÜS: " & CDbl(txtAusz50.Text) + CDbl(txtAusz50vonSaldo.Text) & vbNewLine)
End If
txtAusgabe.Append("ÜS gesamt: " & gesamt)
Dim aksAuszahlung As MsgBoxResult = MsgBox(txtAusgabe.ToString, vbYesNo)
@@ -483,24 +492,35 @@ Public Class frmUeberstundenauszahlen
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If
If istTeilzeit Then
If sum50 > 0 Then
Dim row = dtsetEntries.NewRow
row.Item("accountid") = 1551
row.Item("value") = sum50.ToString.Replace(",", ".")
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If
If sum0 > 0 Then
Dim row = dtsetEntries.NewRow
row.Item("accountid") = 1553
row.Item("value") = sum0.ToString.Replace(",", ".")
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If
'ANMERKUNG -> TZ-Mitarbeiter bekommt die Stunden, die am SA gearbeitet wurden, auch als 25% ausgezahlt!
If (sum50 > 0 Or sum0 > 0) And istTeilzeit Then
Dim row = dtsetEntries.NewRow
row.Item("accountid") = 1553
row.Item("value") = (sum50 + sum0).ToString.Replace(",", ".")
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If
If gesamt > 0 Then 'vom ldf Saldo, ev. über API Möglich monatliche Korrektur direkt zu befüllen, dann muss dieser If Zweig überarbeitet werden!!!!!!!!!!!!!!
'If istTeilzeit Then
' If sum50 > 0 Then
' Dim row = dtsetEntries.NewRow
' row.Item("accountid") = 1551
' row.Item("value") = sum50.ToString.Replace(",", ".")
' dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
' End If
' If sum0 > 0 Then
' Dim row = dtsetEntries.NewRow
' row.Item("accountid") = 1553
' row.Item("value") = sum0.ToString.Replace(",", ".")
' dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
' End If
'End If
If gesamt > 0 Then
Dim row = dtsetEntries.NewRow
row.Item("accountid") = 1598
row.Item("value") = gesamt.ToString.Replace(",", ".") * (-1)
@@ -601,20 +621,23 @@ Public Class frmUeberstundenauszahlen
Dim ues As New cUeberstunden(MA.mit_id, auszahlugsdatum.ToString("dd/MM/yyyy"))
ues.uest_deleted = True
ues.uest_lastChanged = Now()
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
ues.SAVE()
If ues.hasEntry Then
ues.uest_deleted = True
ues.uest_lastChanged = Now()
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
ues.SAVE()
End If
MsgBox("Erfolgreich aus Timas zurückgesetzt!")
picDel.Visible = False
Thread.Sleep(1000) 'warten bis Eintrag in Timas-DB
getUeberstunden(cbxabwDatum.Checked)
picDel.Visible = False
Thread.Sleep(1000) 'warten bis Eintrag in Timas-DB
getUeberstunden(cbxabwDatum.Checked)
End If
End If
End If
End Sub
Public Function RoundOfDigits(ByVal Value As Decimal, ByVal Digits As Integer) As Decimal
@@ -626,9 +649,11 @@ Public Class frmUeberstundenauszahlen
If istTeilzeit Then
lbllfdSaldo.Text = "Mehrarbeit 25% (nur Teilzeit-MA)"
Label4.Text = "Überstunden 50% (Sa) - werden als 25% ausbezahlt!"
faktorTeilzeit = 100 ' werden Zeitlich nicht hochgerechnet, sondern nur mit aufschlag ausbezahlt, somit keine Hochrechnung um Faktor!
Else
lbllfdSaldo.Text = "lfd Saldo"
Label4.Text = "Überstunden 50% (Sa)"
faktorTeilzeit = 100
End If
@@ -707,9 +732,11 @@ Public Class frmUeberstundenauszahlen
'wenn berechneter Saldo negativ, dann ist im Regelfall das aktuelle MOnat noch nicht abgeschlossen!, daher anstatt den berechneten Saldo in overallBalance laden!
'wenn keinFaktor (also keine hochgerechneten 100% und 50%, dann kann nur monatsweiiße ausbezahlt werden (weil
txtlfdSaldo.Text = timas.getTimeSaldo(MA.mit_timasId, "", "overallBalance")
stunden100auszbere = RoundOfDigits(stunden100ausz * 2, 2)
stunden100auszbere = RoundOfDigits(stunden100ausz * faktorFeiertagsarbeit / 100, 2)
stunden50auszbere = RoundOfDigits(stunden50ausz * faktorSamstagsarbeit / 100, 2)
txt100x2.Text = stunden100auszbere
@@ -755,17 +782,28 @@ Public Class frmUeberstundenauszahlen
faktorSamstagsarbeit = 150 'Samstagsarbeit wir im Timas hochgerechnet
lblMA.Text = "Mitarbeiter (mit SA-Zuschlag):"
Else
lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):"
faktorSamstagsarbeit = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet
lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):"
End If
End If
If row.Item("name") = "ÜS werden nicht auf lfd. Saldo hinzugezählt" Then
If row.Item("value") = "true" Then
Label5.Text = "ÜS werden nicht auf lfd. Saldo hinzugezählt!"
keinenFaktor = True
'Zuschläge ohne Faktoren!
faktorSamstagsarbeit = 100
faktorFeiertagsarbeit = 100
faktorTeilzeit = 100
Else
Label5.Text = ""
keinenFaktor = False
End If
cbxabwDatum.Enabled = Not keinenFaktor
End If
If row.Item("name") = "Automatisch auszahlen" Then