Wiederherstellung
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
|
||||
Imports System.Text
|
||||
Imports System.Runtime.InteropServices.ComTypes
|
||||
Imports System.Threading
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Imports Microsoft.Office.Interop.Outlook
|
||||
Imports Therefore.API
|
||||
|
||||
Public Class frmUeberstundenauszahlen
|
||||
|
||||
@@ -14,9 +14,7 @@ Public Class frmUeberstundenauszahlen
|
||||
Dim tag As cFeiertage
|
||||
Dim auszahlugsdatum As New Date
|
||||
Dim maxUberstundenpruefung As Boolean = True
|
||||
Dim istTeilzeit As Boolean = False
|
||||
Dim faktorTeilzeit As Double = 100
|
||||
Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, stunden25bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere, overwrittenSum As Double
|
||||
Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere As Double
|
||||
|
||||
|
||||
Sub New(mit_id)
|
||||
@@ -59,11 +57,6 @@ Public Class frmUeberstundenauszahlen
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub cbxTeilzeit_CheckedChanged(sender As Object, e As EventArgs) Handles cbxTeilzeit.CheckedChanged
|
||||
istTeilzeit = cbxTeilzeit.Checked
|
||||
changeTeilzeit()
|
||||
End Sub
|
||||
|
||||
Private Sub getUeberstunden(abwDatum As Boolean)
|
||||
|
||||
Dim startdate, enddate As Date
|
||||
@@ -89,7 +82,7 @@ Public Class frmUeberstundenauszahlen
|
||||
Panel1.Enabled = True
|
||||
End If
|
||||
|
||||
Dim dt = getUeberstunden(timeaccountdt, dtResult)
|
||||
Dim dt = calcUeberstunden(timeaccountdt, dtResult)
|
||||
fillFields(dt)
|
||||
dgvUeberstunden.DataSource = dt
|
||||
|
||||
@@ -97,7 +90,7 @@ Public Class frmUeberstundenauszahlen
|
||||
End Sub
|
||||
|
||||
|
||||
Private Function getUeberstunden(dtAccouts As DataTable, dtSumUeberstunden As DataTable) As DataTable
|
||||
Private Function calcUeberstunden(dtAccouts As DataTable, dtSumUeberstunden As DataTable) As DataTable
|
||||
Dim dtmerged As DataTable
|
||||
If dtAccouts IsNot Nothing AndAlso dtSumUeberstunden IsNot Nothing Then
|
||||
|
||||
@@ -147,49 +140,6 @@ Public Class frmUeberstundenauszahlen
|
||||
Return dtmerged
|
||||
End Function
|
||||
|
||||
Private Sub cbx100_CheckedChanged(sender As Object, e As EventArgs) Handles cbx100.CheckedChanged, cbx50.CheckedChanged, cx25.CheckedChanged
|
||||
|
||||
txtAusz100.ReadOnly = Not cbx100.Checked
|
||||
txtAusz50.ReadOnly = Not cbx50.Checked
|
||||
txtAusz50vonSaldo.ReadOnly = Not cx25.Checked
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
|
||||
getUeberstunden(cbxabwDatum.Checked)
|
||||
End Sub
|
||||
|
||||
Private Sub txtAusz100_TextChanged(sender As Object, e As EventArgs) Handles txtAusz100.TextChanged, txtAusz50.TextChanged, txtAusz50vonSaldo.TextChanged
|
||||
|
||||
overwrittenSum = 0
|
||||
|
||||
If cbx100.Checked AndAlso txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text) AndAlso CDbl(txtAusz100.Text) >= 0 Then
|
||||
stunden100auszbere = CDbl(txtAusz100.Text)
|
||||
overwrittenSum += stunden100auszbere
|
||||
End If
|
||||
|
||||
If cbx50.Checked AndAlso txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text) AndAlso CDbl(txtAusz50.Text) >= 0 Then
|
||||
stunden50auszbere = CDbl(txtAusz50.Text)
|
||||
overwrittenSum += stunden50auszbere
|
||||
End If
|
||||
|
||||
If cx25.Checked AndAlso txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text) AndAlso CDbl(txtAusz50vonSaldo.Text) >= 0 Then
|
||||
stundenlfdSaldobere = RoundOfDigits(txtAusz50vonSaldo.Text, 2)
|
||||
overwrittenSum += stundenlfdSaldobere
|
||||
End If
|
||||
|
||||
If overwrittenSum > 0 Then
|
||||
txtAuszManuell.Text = overwrittenSum
|
||||
txtAusz.Visible = False
|
||||
txtAuszManuell.Visible = True
|
||||
Else
|
||||
txtAusz.Visible = True
|
||||
txtAuszManuell.Visible = False
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub fillFields(dt As DataTable)
|
||||
|
||||
'69 10-Na 22-06
|
||||
@@ -207,13 +157,9 @@ Public Class frmUeberstundenauszahlen
|
||||
End If
|
||||
Next
|
||||
|
||||
'alle zurücksetzen, falls im neuen Monat dieser Wert nicht mitgegeben wird!
|
||||
stunden50ausz = 0
|
||||
stunden100ausz = 0
|
||||
mehrabeit = 0
|
||||
stunden50bereitsausbezahlt = 0
|
||||
stunden100bereitsausbezahl = 0
|
||||
stunden25bereitsausbezahlt = 0
|
||||
|
||||
|
||||
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
|
||||
Dim calc As Double = 0
|
||||
@@ -256,15 +202,6 @@ Public Class frmUeberstundenauszahlen
|
||||
stunden50bereitsausbezahlt = calc
|
||||
End If
|
||||
|
||||
If r.Item("accountid") = "1553" Then
|
||||
txtberAusz25.Visible = True
|
||||
calc = CDbl(txtberAusz25.Text)
|
||||
calc += r.Item("value") * (r.Item("multiplier") & "1")
|
||||
txtberAusz25.Text = calc
|
||||
stunden25bereitsausbezahlt = calc
|
||||
cbxTeilzeit.Checked = True
|
||||
End If
|
||||
|
||||
'Berechnung von lfd Saldo im Zeitraum -> deaktiviert, es soll immer der aktuelle Saldo gezogen werden, egal in welchem Monat ich bin (22.02.2024)
|
||||
'If r.Item("accountid") = "65" Then
|
||||
' calc = CDbl(txtlfdSaldo.Text)
|
||||
@@ -275,7 +212,7 @@ Public Class frmUeberstundenauszahlen
|
||||
End If
|
||||
Next
|
||||
|
||||
If (stunden100bereitsausbezahl + stunden50bereitsausbezahlt + stunden25bereitsausbezahlt) > 0 Then
|
||||
If (stunden100bereitsausbezahl + stunden50bereitsausbezahlt) > 0 Then
|
||||
picDel.Visible = True
|
||||
Button1.Enabled = False
|
||||
txtAusz.Enabled = False
|
||||
@@ -284,7 +221,30 @@ Public Class frmUeberstundenauszahlen
|
||||
txtAusz.Enabled = True
|
||||
End If
|
||||
|
||||
calxMaxauszahlbar()
|
||||
stunden100auszbere = stunden100ausz * 2
|
||||
stunden50auszbere = stunden50ausz * 1.5
|
||||
|
||||
txt100x2.Text = stunden100auszbere
|
||||
txt50x15.Text = stunden50auszbere
|
||||
|
||||
'If CDbl(txtlfdSaldo.Text) < 0 Or auszahlugsdatum.Month = Today.Month AndAlso auszahlugsdatum.Year = Today.Year Then
|
||||
'wenn berechneter Saldo negativ, dann ist im Regelfall das aktuelle MOnat noch nicht abgeschlossen!, daher anstatt den berechneten Saldo in overallBalance laden!
|
||||
txtlfdSaldo.Text = timas.getTimeSaldo(MA.mit_timasId, "", "overallBalance")
|
||||
|
||||
'End If
|
||||
|
||||
|
||||
stundenlfdSaldo = CDbl(txtlfdSaldo.Text)
|
||||
stundenlfdSaldobere = stundenlfdSaldo
|
||||
|
||||
stundenlfdSaldobere -= stunden100auszbere
|
||||
stundenlfdSaldobere -= stunden50auszbere
|
||||
stundenlfdSaldobere = Math.Round(stundenlfdSaldobere, 2)
|
||||
|
||||
|
||||
If stundenlfdSaldo <= 0 Then Button1.Enabled = False
|
||||
|
||||
txtSummeAuszb.Text = stundenlfdSaldo
|
||||
|
||||
End If
|
||||
|
||||
@@ -292,7 +252,69 @@ Public Class frmUeberstundenauszahlen
|
||||
|
||||
Private Sub txtAusz_TextChanged(sender As Object, e As EventArgs) Handles txtAusz.TextChanged
|
||||
|
||||
calcUeberstunden()
|
||||
|
||||
|
||||
If txtAusz.Text <> "" AndAlso IsNumeric(txtAusz.Text) Then
|
||||
|
||||
Dim summeAusz = CDbl(txtAusz.Text)
|
||||
If summeAusz <= 0 Then
|
||||
txtAusz50vonSaldo.Text = "0"
|
||||
txtAusz50.Text = "0"
|
||||
txtAusz100.Text = "0"
|
||||
txtAusz.Text = "0"
|
||||
Button1.Enabled = False
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
txt100x2.Text = stunden100auszbere
|
||||
txt50x15.Text = stunden50auszbere
|
||||
txt50x1.Text = stundenlfdSaldobere
|
||||
|
||||
If stundenlfdSaldo >= summeAusz Then 'Prüfung, damit nicht zuviele ÜS ausbezahlt werden können!
|
||||
|
||||
Button1.Enabled = True
|
||||
|
||||
Else
|
||||
If maxUberstundenpruefung Then
|
||||
Button1.Enabled = False
|
||||
Else
|
||||
Button1.Enabled = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If summeAusz >= stunden100auszbere Then
|
||||
txtAusz100.Text = stunden100auszbere
|
||||
Else
|
||||
txtAusz100.Text = summeAusz
|
||||
End If
|
||||
|
||||
summeAusz = Math.Round(summeAusz - stunden100auszbere, 2)
|
||||
|
||||
If summeAusz >= stunden50auszbere Then
|
||||
txtAusz50.Text = stunden50auszbere
|
||||
summeAusz = Math.Round(summeAusz - stunden50auszbere, 2)
|
||||
ElseIf summeAusz < 0 Then
|
||||
txtAusz50.Text = "0"
|
||||
Else
|
||||
txtAusz50.Text = summeAusz
|
||||
summeAusz = Math.Round(summeAusz - stunden50auszbere, 2)
|
||||
End If
|
||||
|
||||
If summeAusz >= stundenlfdSaldo Then
|
||||
txtAusz50vonSaldo.Text = stundenlfdSaldo
|
||||
summeAusz = Math.Round(summeAusz - stundenlfdSaldo, 2)
|
||||
ElseIf summeAusz < 0 Then
|
||||
txtAusz50vonSaldo.Text = "0"
|
||||
Else
|
||||
txtAusz50vonSaldo.Text = summeAusz
|
||||
summeAusz = Math.Round(summeAusz - stundenlfdSaldo, 2)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -316,19 +338,12 @@ 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) * 0.5, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
|
||||
sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / 150, 2)
|
||||
sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2)
|
||||
gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text))
|
||||
sum0 = CDbl(txtAusz50vonSaldo.Text)
|
||||
gesamt = CDbl(txtAusz.Text)
|
||||
|
||||
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)
|
||||
txtAusgabe.Append("ÜS gesamt: " & gesamt)
|
||||
|
||||
Dim aksAuszahlung As MsgBoxResult = MsgBox(txtAusgabe.ToString, vbYesNo)
|
||||
Dim aksAuszahlung As MsgBoxResult = MsgBox("Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " auszahlen?" & vbNewLine & sum100 & "x 100% ÜS :" & txtAusz100.Text & vbNewLine & sum50 & "x 50% ÜS: " & CDbl(txtAusz50.Text) + CDbl(txtAusz50vonSaldo.Text) & vbNewLine & "ÜS gesamt: " & gesamt, vbYesNo)
|
||||
|
||||
If aksAuszahlung = vbYes Then
|
||||
Dim dtsetEntries As New DataTable
|
||||
@@ -336,28 +351,28 @@ Public Class frmUeberstundenauszahlen
|
||||
dtsetEntries.Columns.Add("accountid", GetType(Integer))
|
||||
dtsetEntries.Columns.Add("value", GetType(String))
|
||||
|
||||
If sum100 > 0 Then
|
||||
If sum100 >= 0 Then
|
||||
Dim row = dtsetEntries.NewRow
|
||||
row.Item("accountid") = 1550
|
||||
row.Item("value") = sum100.ToString.Replace(",", ".")
|
||||
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
|
||||
End If
|
||||
|
||||
If sum50 > 0 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
|
||||
If sum0 >= 0 Then
|
||||
Dim row = dtsetEntries.NewRow
|
||||
row.Item("accountid") = IIf(istTeilzeit, 1553, 1551)
|
||||
row.Item("accountid") = 1551
|
||||
row.Item("value") = 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 gesamt >= 0 Then 'vom ldf Saldo, ev. über API Möglich monatliche Korrektur direkt zu befüllen, dann muss dieser If Zweig überarbeitet werden!!!!!!!!!!!!!!
|
||||
Dim row = dtsetEntries.NewRow
|
||||
row.Item("accountid") = 993
|
||||
row.Item("value") = gesamt.ToString.Replace(",", ".")
|
||||
@@ -368,17 +383,11 @@ Public Class frmUeberstundenauszahlen
|
||||
ues.uest_timasId = MA.mit_timasId
|
||||
ues.uest_100 = sum100
|
||||
ues.uest_50 = sum50
|
||||
ues.uest_overwriteValue = IIf(cbx100.Checked Or cbx50.Checked Or cx25.Checked, True, False)
|
||||
ues.uest_0 = sum0
|
||||
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
||||
ues.uest_ignoreLimit = Not maxUberstundenpruefung
|
||||
ues.uest_maxUE = CDbl(txtSummeAuszb.Text)
|
||||
|
||||
If istTeilzeit Then
|
||||
ues.uest_25 = sum0
|
||||
Else
|
||||
ues.uest_0 = sum0
|
||||
End If
|
||||
|
||||
|
||||
Dim info As String = ""
|
||||
If timas.setTimeAccountEntries(MA, dtsetEntries, auszahlugsdatum, info) AndAlso ues.SAVE() Then
|
||||
@@ -393,17 +402,7 @@ Public Class frmUeberstundenauszahlen
|
||||
End Sub
|
||||
|
||||
Private Sub picDel_Click(sender As Object, e As EventArgs) Handles picDel.Click
|
||||
|
||||
|
||||
Dim txtAusgabe As New StringBuilder
|
||||
txtAusgabe.Append("Ausbezahlte Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " zurücksetzen?" & vbNewLine)
|
||||
txtAusgabe.Append("100% ÜS: " & txtberAusz100.Text & vbNewLine)
|
||||
txtAusgabe.Append("50% ÜS: " & txtberAusz50.Text + IIf(Not istTeilzeit, CDbl(txtberAusz25.Text), 0) & vbNewLine)
|
||||
If istTeilzeit Then txtAusgabe.Append("25% ÜS: " & CDbl(txtberAusz25.Text) & vbNewLine)
|
||||
txtAusgabe.Append("ÜS gesamt: " & CDbl(txtberAusz100.Text) + CDbl(txtberAusz50.Text) + CDbl(txtberAusz25.Text))
|
||||
|
||||
|
||||
Dim aksAuszahlung As MsgBoxResult = MsgBox(txtAusgabe.ToString, vbYesNo)
|
||||
Dim aksAuszahlung As MsgBoxResult = MsgBox("Ausbezahlte Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " zurücksetzen?" & vbNewLine & "100% ÜS: " & txtberAusz100.Text & vbNewLine & "50% ÜS: " & txtberAusz50.Text & vbNewLine & "ÜS gesamt: " & CDbl(txtberAusz100.Text) + CDbl(txtberAusz50.Text), vbYesNo)
|
||||
If aksAuszahlung = vbYes Then
|
||||
Dim dtdeleteEntries As New DataTable
|
||||
|
||||
@@ -426,18 +425,12 @@ Public Class frmUeberstundenauszahlen
|
||||
dtdeleteEntries.Rows.InsertAt(row, dtdeleteEntries.Rows.Count)
|
||||
End If
|
||||
|
||||
If txtberAusz25.Text <> "" AndAlso IsNumeric(txtberAusz25.Text) Then
|
||||
Dim row = dtdeleteEntries.NewRow
|
||||
row.Item("accountid") = 1553
|
||||
dtdeleteEntries.Rows.InsertAt(row, dtdeleteEntries.Rows.Count)
|
||||
End If
|
||||
|
||||
If timas.deleteTimeAccounts(auszahlugsdatum, auszahlugsdatum, MA.mit_timasId, dtdeleteEntries) Then
|
||||
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()
|
||||
ues.uest_lastChanged = Now()
|
||||
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
||||
ues.SAVE()
|
||||
|
||||
MsgBox("Erfolgreich aus Timas zurückgesetzt!")
|
||||
picDel.Visible = False
|
||||
|
||||
Reference in New Issue
Block a user