Ueberstundenauszahlung

This commit is contained in:
2024-02-22 15:18:46 +01:00
parent e480d92d1c
commit 4c5885c7da
2 changed files with 74 additions and 82 deletions

View File

@@ -31,7 +31,6 @@ Partial Class frmUeberstundenauszahlen
Me.txt100 = New System.Windows.Forms.TextBox()
Me.txt50 = New System.Windows.Forms.TextBox()
Me.txtMehr = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.txtAusz = New System.Windows.Forms.TextBox()
Me.lblMA = New System.Windows.Forms.Label()
Me.Label7 = New System.Windows.Forms.Label()
@@ -53,9 +52,10 @@ Partial Class frmUeberstundenauszahlen
Me.picDel = New System.Windows.Forms.PictureBox()
Me.txtAusz50vonSaldo = New System.Windows.Forms.TextBox()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.txt50x1 = New System.Windows.Forms.TextBox()
Me.Label8 = New System.Windows.Forms.Label()
Me.txt50x1 = New System.Windows.Forms.TextBox()
Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.cbxoverwrite = New System.Windows.Forms.CheckBox()
CType(Me.picDel, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -133,15 +133,6 @@ Partial Class frmUeberstundenauszahlen
Me.txtMehr.TabIndex = 7
Me.txtMehr.Text = "0"
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Location = New System.Drawing.Point(75, 179)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(86, 13)
Me.Label5.TabIndex = 8
Me.Label5.Text = "max. auszahlbar:"
'
'txtAusz
'
Me.txtAusz.Location = New System.Drawing.Point(192, 196)
@@ -325,6 +316,7 @@ Partial Class frmUeberstundenauszahlen
'
'Panel1
'
Me.Panel1.Controls.Add(Me.cbxoverwrite)
Me.Panel1.Controls.Add(Me.Label8)
Me.Panel1.Controls.Add(Me.txt50x1)
Me.Panel1.Controls.Add(Me.Label2)
@@ -339,7 +331,6 @@ Partial Class frmUeberstundenauszahlen
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Controls.Add(Me.txtMehr)
Me.Panel1.Controls.Add(Me.txtberAusz50)
Me.Panel1.Controls.Add(Me.Label5)
Me.Panel1.Controls.Add(Me.txtberAusz100)
Me.Panel1.Controls.Add(Me.txtAusz)
Me.Panel1.Controls.Add(Me.txtSummeAuszb)
@@ -350,9 +341,27 @@ Partial Class frmUeberstundenauszahlen
Me.Panel1.Controls.Add(Me.txtAusz50)
Me.Panel1.Location = New System.Drawing.Point(15, 67)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(421, 219)
Me.Panel1.Size = New System.Drawing.Size(421, 235)
Me.Panel1.TabIndex = 30
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Location = New System.Drawing.Point(194, 179)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(56, 13)
Me.Label8.TabIndex = 33
Me.Label8.Text = "Auszahlen"
'
'txt50x1
'
Me.txt50x1.Location = New System.Drawing.Point(112, 108)
Me.txt50x1.Name = "txt50x1"
Me.txt50x1.ReadOnly = True
Me.txt50x1.Size = New System.Drawing.Size(49, 20)
Me.txt50x1.TabIndex = 32
Me.txt50x1.Text = "0"
'
'dgvUeberstunden
'
Me.dgvUeberstunden.AKTUALISIERUNGS_INTERVALL = -1
@@ -367,23 +376,17 @@ Partial Class frmUeberstundenauszahlen
Me.dgvUeberstunden.TabIndex = 13
Me.dgvUeberstunden.Visible = False
'
'txt50x1
'cbxoverwrite
'
Me.txt50x1.Location = New System.Drawing.Point(112, 108)
Me.txt50x1.Name = "txt50x1"
Me.txt50x1.ReadOnly = True
Me.txt50x1.Size = New System.Drawing.Size(49, 20)
Me.txt50x1.TabIndex = 32
Me.txt50x1.Text = "0"
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Location = New System.Drawing.Point(194, 179)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(56, 13)
Me.Label8.TabIndex = 33
Me.Label8.Text = "Auszahlen"
Me.cbxoverwrite.AutoSize = True
Me.cbxoverwrite.Checked = True
Me.cbxoverwrite.CheckState = System.Windows.Forms.CheckState.Checked
Me.cbxoverwrite.Location = New System.Drawing.Point(59, 179)
Me.cbxoverwrite.Name = "cbxoverwrite"
Me.cbxoverwrite.Size = New System.Drawing.Size(102, 17)
Me.cbxoverwrite.TabIndex = 31
Me.cbxoverwrite.Text = "max. auszahlbar"
Me.cbxoverwrite.UseVisualStyleBackColor = True
'
'frmUeberstundenauszahlen
'
@@ -419,7 +422,6 @@ Partial Class frmUeberstundenauszahlen
Friend WithEvents txt100 As Windows.Forms.TextBox
Friend WithEvents txt50 As Windows.Forms.TextBox
Friend WithEvents txtMehr As Windows.Forms.TextBox
Friend WithEvents Label5 As Windows.Forms.Label
Friend WithEvents txtAusz As Windows.Forms.TextBox
Friend WithEvents lblMA As Windows.Forms.Label
Friend WithEvents Label7 As Windows.Forms.Label
@@ -444,4 +446,5 @@ Partial Class frmUeberstundenauszahlen
Friend WithEvents Panel1 As Windows.Forms.Panel
Friend WithEvents txt50x1 As Windows.Forms.TextBox
Friend WithEvents Label8 As Windows.Forms.Label
Friend WithEvents cbxoverwrite As Windows.Forms.CheckBox
End Class

View File

@@ -2,6 +2,7 @@
Imports System.Threading
Imports System.Windows.Forms
Imports Microsoft.Office.Interop.Outlook
Imports Therefore.API
Public Class frmUeberstundenauszahlen
@@ -12,7 +13,7 @@ Public Class frmUeberstundenauszahlen
Dim dtResult As New DataTable
Dim tag As cFeiertage
Dim auszahlugsdatum As New Date
Dim maxUberstundenpruefung As Boolean = True
Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere As Double
@@ -34,6 +35,21 @@ Public Class frmUeberstundenauszahlen
getUeberstunden(False)
End Sub
Private Sub cbxoverwrite_CheckedChanged(sender As Object, e As EventArgs) Handles cbxoverwrite.CheckedChanged
If Not cbxoverwrite.Checked Then
maxUberstundenpruefung = False 'Limit für max. auszahlbar deaktivieren!
Else
If Not maxUberstundenpruefung Then
maxUberstundenpruefung = True
getUeberstunden(cbxabwDatum.Checked)
End If
End If
End Sub
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles dtpMonat.ValueChanged, dtpBis.ValueChanged
@@ -59,7 +75,7 @@ Public Class frmUeberstundenauszahlen
timas.getTimeAccounts(startdate, enddate, MA.mit_timasId, timeaccountdt, dtResult)
If dtResult.Rows.Count < 1 Then
MsgBox("Es konnten keine Stunden ermittelt werden!")
MsgBox("Für den gewählten Zeitraum konnten keine Stunden ermittelt werden!")
Panel1.Enabled = False
Exit Sub
Else
@@ -186,6 +202,7 @@ Public Class frmUeberstundenauszahlen
stunden50bereitsausbezahlt = calc
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)
' calc += r.Item("value") * (r.Item("multiplier") & "1")
@@ -210,7 +227,12 @@ Public Class frmUeberstundenauszahlen
txt100x2.Text = stunden100auszbere
txt50x15.Text = stunden50auszbere
txtlfdSaldo.Text = timas.getTimeSaldo(MA.mit_timasId, "", "overallBalance") 'Saldo zu Stichtag, nicht aktueller Saldo!!!
'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
@@ -248,12 +270,17 @@ Public Class frmUeberstundenauszahlen
txt50x15.Text = stunden50auszbere
txt50x1.Text = stundenlfdSaldobere
If stundenlfdSaldo >= summeAusz Then 'Prüfung, damit nicht zuviele ÜS ausbezahlt werden können!
Button1.Enabled = True
Else
Button1.Enabled = False
If maxUberstundenpruefung Then
Button1.Enabled = False
Else
Button1.Enabled = True
End If
End If
@@ -285,49 +312,6 @@ Public Class frmUeberstundenauszahlen
summeAusz = Math.Round(summeAusz - stundenlfdSaldo, 2)
End If
'Dim ausz100 As Double = (CDbl(txt100x2.Text))
'Dim ausz50 As Double = (CDbl(txt50x15.Text))
'Dim ausz50vonldfSaldo As Double = CDbl(txtlfdSaldo.Text)
'If ausz50 + ausz100 + ausz50vonldfSaldo >= summeAusz Then 'Prüfung, damit nicht zuviele ÜS ausbezahlt werden!
' Button1.Enabled = True
'Else
' Button1.Enabled = False
'End If
'If summeAusz >= ausz100 Then
' txtAusz100.Text = ausz100
' summeAusz = summeAusz - ausz100
'Else
' txtAusz100.Text = summeAusz
' summeAusz = summeAusz - ausz100
'End If
'If summeAusz >= ausz50 Then
' summeAusz = summeAusz - ausz50
' txtAusz50.Text = ausz50
'ElseIf summeAusz < 0 Then
' txtAusz50.Text = "0"
'Else
' txtAusz50.Text = summeAusz
' summeAusz = ausz50 - summeAusz
'End If
'If summeAusz >= ausz50vonldfSaldo Then
' summeAusz = summeAusz - ausz50vonldfSaldo
' txtAusz50vonSaldo.Text = ausz50vonldfSaldo
'ElseIf summeAusz < 0 Then
' txtAusz50vonSaldo.Text = "0"
'Else
' txtAusz50vonSaldo.Text = summeAusz
' summeAusz = ausz50vonldfSaldo - summeAusz
'End If
End If
@@ -354,8 +338,8 @@ Public Class frmUeberstundenauszahlen
Dim sum100, sum50, gesamt As Double
sum100 = Math.Round(CDbl(txtAusz100.Text) * 0.5, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
sum50 = Math.Round(CDbl(txtAusz50.Text) * 0.67, 2) + CDbl(txtAusz50vonSaldo.Text)
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) + CDbl(txtAusz50vonSaldo.Text)
gesamt = CDbl(txtAusz.Text)
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)
@@ -436,4 +420,9 @@ Public Class frmUeberstundenauszahlen
End If
End Sub
Public Function RoundOfDigits(ByVal Value As Decimal, ByVal Digits As Integer) As Decimal
If Digits < 0 Then Return Math.Round(Value * CDec(Math.Pow(10, Digits)), 0, MidpointRounding.AwayFromZero) / CDec(Math.Pow(10, Digits))
Return Math.Round(Value, Digits)
End Function
End Class