Fehlermeldung FinanzOnline, Ueberstunden, Feiertags

This commit is contained in:
2024-03-29 15:14:17 +01:00
parent ba3cd9da89
commit de12fd9466
5 changed files with 297 additions and 139 deletions

View File

@@ -76,7 +76,6 @@ Public Class cFeiertage
startDate = New DateTime(year, month + 1, 1)
Else
startDate = New DateTime(year + 1, 1, 1)
startDate = startDate.AddDays(-1)
End If
If irgnoreDay Then

View File

@@ -190,7 +190,15 @@ Public Class frmMitarbeitersuche
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZE_AKTENGANG", "SDL") Then btnAkten.Visible = True
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Überstunden_auszahlen", "SDL") Then Button3.Visible = True = True
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Überstunden_auszahlen", "SDL") Then
If MA.getFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then 'MA derselben Firma bearbeiten
Button3.Visible = True
End If
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Überstunden_auszahlen_alle", "SDL") Then
Button3.Visible = True
End If
End If
End Sub

View File

@@ -53,6 +53,14 @@ 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.txtNettoSum = New System.Windows.Forms.TextBox()
Me.Label11 = New System.Windows.Forms.Label()
Me.txtAusz100Netto = New System.Windows.Forms.TextBox()
Me.txtAusz50Netto = New System.Windows.Forms.TextBox()
Me.txtAusz50vonSaldoNetto = New System.Windows.Forms.TextBox()
Me.Label10 = New System.Windows.Forms.Label()
Me.txtAuszManuell_hhmm = New System.Windows.Forms.TextBox()
Me.txtAusz_hhmm = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.Label6 = New System.Windows.Forms.Label()
Me.picShow = New System.Windows.Forms.PictureBox()
@@ -62,20 +70,20 @@ Partial Class frmUeberstundenauszahlen
Me.cbx100 = New System.Windows.Forms.CheckBox()
Me.txtberAusz25 = New System.Windows.Forms.TextBox()
Me.cbxoverwrite = New System.Windows.Forms.CheckBox()
Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.Label8 = New System.Windows.Forms.Label()
Me.txt50x1 = New System.Windows.Forms.TextBox()
Me.cbxTeilzeit = New System.Windows.Forms.CheckBox()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.lblWarning = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.txtAusz_hhmm = New System.Windows.Forms.TextBox()
Me.txtAuszManuell_hhmm = New System.Windows.Forms.TextBox()
Me.txtBruttoSum = New System.Windows.Forms.TextBox()
Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.Label12 = New System.Windows.Forms.Label()
CType(Me.picDel, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
CType(Me.picShow, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'dtpMonat
@@ -205,19 +213,19 @@ Partial Class frmUeberstundenauszahlen
'
'txtAusz100
'
Me.txtAusz100.Location = New System.Drawing.Point(217, 27)
Me.txtAusz100.Location = New System.Drawing.Point(292, 27)
Me.txtAusz100.Name = "txtAusz100"
Me.txtAusz100.ReadOnly = True
Me.txtAusz100.Size = New System.Drawing.Size(54, 20)
Me.txtAusz100.Size = New System.Drawing.Size(40, 20)
Me.txtAusz100.TabIndex = 16
Me.txtAusz100.Text = "0"
'
'txtAusz50
'
Me.txtAusz50.Location = New System.Drawing.Point(217, 69)
Me.txtAusz50.Location = New System.Drawing.Point(292, 69)
Me.txtAusz50.Name = "txtAusz50"
Me.txtAusz50.ReadOnly = True
Me.txtAusz50.Size = New System.Drawing.Size(54, 20)
Me.txtAusz50.Size = New System.Drawing.Size(40, 20)
Me.txtAusz50.TabIndex = 17
Me.txtAusz50.Text = "0"
'
@@ -268,26 +276,26 @@ Partial Class frmUeberstundenauszahlen
'
'txtberAusz50
'
Me.txtberAusz50.Location = New System.Drawing.Point(309, 69)
Me.txtberAusz50.Location = New System.Drawing.Point(348, 69)
Me.txtberAusz50.Name = "txtberAusz50"
Me.txtberAusz50.ReadOnly = True
Me.txtberAusz50.Size = New System.Drawing.Size(54, 20)
Me.txtberAusz50.Size = New System.Drawing.Size(40, 20)
Me.txtberAusz50.TabIndex = 24
Me.txtberAusz50.Text = "0"
'
'txtberAusz100
'
Me.txtberAusz100.Location = New System.Drawing.Point(309, 27)
Me.txtberAusz100.Location = New System.Drawing.Point(348, 27)
Me.txtberAusz100.Name = "txtberAusz100"
Me.txtberAusz100.ReadOnly = True
Me.txtberAusz100.Size = New System.Drawing.Size(54, 20)
Me.txtberAusz100.Size = New System.Drawing.Size(40, 20)
Me.txtberAusz100.TabIndex = 23
Me.txtberAusz100.Text = "0"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(306, 11)
Me.Label1.Location = New System.Drawing.Point(330, 11)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(92, 13)
Me.Label1.TabIndex = 25
@@ -315,7 +323,7 @@ Partial Class frmUeberstundenauszahlen
'
Me.picDel.BackgroundImage = Global.VERAG_PROG_ALLGEMEIN.My.Resources.Resources.del
Me.picDel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.picDel.Location = New System.Drawing.Point(404, 11)
Me.picDel.Location = New System.Drawing.Point(428, 11)
Me.picDel.Name = "picDel"
Me.picDel.Size = New System.Drawing.Size(21, 16)
Me.picDel.TabIndex = 28
@@ -323,15 +331,23 @@ Partial Class frmUeberstundenauszahlen
'
'txtAusz50vonSaldo
'
Me.txtAusz50vonSaldo.Location = New System.Drawing.Point(217, 108)
Me.txtAusz50vonSaldo.Location = New System.Drawing.Point(292, 108)
Me.txtAusz50vonSaldo.Name = "txtAusz50vonSaldo"
Me.txtAusz50vonSaldo.ReadOnly = True
Me.txtAusz50vonSaldo.Size = New System.Drawing.Size(49, 20)
Me.txtAusz50vonSaldo.Size = New System.Drawing.Size(40, 20)
Me.txtAusz50vonSaldo.TabIndex = 29
Me.txtAusz50vonSaldo.Text = "0"
'
'Panel1
'
Me.Panel1.Controls.Add(Me.Label12)
Me.Panel1.Controls.Add(Me.txtBruttoSum)
Me.Panel1.Controls.Add(Me.txtNettoSum)
Me.Panel1.Controls.Add(Me.Label11)
Me.Panel1.Controls.Add(Me.txtAusz100Netto)
Me.Panel1.Controls.Add(Me.txtAusz50Netto)
Me.Panel1.Controls.Add(Me.txtAusz50vonSaldoNetto)
Me.Panel1.Controls.Add(Me.Label10)
Me.Panel1.Controls.Add(Me.txtAuszManuell_hhmm)
Me.Panel1.Controls.Add(Me.txtAusz_hhmm)
Me.Panel1.Controls.Add(Me.Label9)
@@ -371,6 +387,77 @@ Partial Class frmUeberstundenauszahlen
Me.Panel1.Size = New System.Drawing.Size(619, 258)
Me.Panel1.TabIndex = 30
'
'txtNettoSum
'
Me.txtNettoSum.Location = New System.Drawing.Point(224, 147)
Me.txtNettoSum.Name = "txtNettoSum"
Me.txtNettoSum.ReadOnly = True
Me.txtNettoSum.Size = New System.Drawing.Size(40, 20)
Me.txtNettoSum.TabIndex = 52
Me.txtNettoSum.Text = "0"
'
'Label11
'
Me.Label11.AutoSize = True
Me.Label11.Location = New System.Drawing.Point(229, 11)
Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(33, 13)
Me.Label11.TabIndex = 51
Me.Label11.Text = "Netto"
'
'txtAusz100Netto
'
Me.txtAusz100Netto.Location = New System.Drawing.Point(224, 30)
Me.txtAusz100Netto.Name = "txtAusz100Netto"
Me.txtAusz100Netto.ReadOnly = True
Me.txtAusz100Netto.Size = New System.Drawing.Size(40, 20)
Me.txtAusz100Netto.TabIndex = 50
Me.txtAusz100Netto.Text = "0"
'
'txtAusz50Netto
'
Me.txtAusz50Netto.Location = New System.Drawing.Point(224, 69)
Me.txtAusz50Netto.Name = "txtAusz50Netto"
Me.txtAusz50Netto.ReadOnly = True
Me.txtAusz50Netto.Size = New System.Drawing.Size(40, 20)
Me.txtAusz50Netto.TabIndex = 49
Me.txtAusz50Netto.Text = "0"
'
'txtAusz50vonSaldoNetto
'
Me.txtAusz50vonSaldoNetto.Location = New System.Drawing.Point(224, 108)
Me.txtAusz50vonSaldoNetto.Name = "txtAusz50vonSaldoNetto"
Me.txtAusz50vonSaldoNetto.ReadOnly = True
Me.txtAusz50vonSaldoNetto.Size = New System.Drawing.Size(40, 20)
Me.txtAusz50vonSaldoNetto.TabIndex = 48
Me.txtAusz50vonSaldoNetto.Text = "0"
'
'Label10
'
Me.Label10.AutoSize = True
Me.Label10.Location = New System.Drawing.Point(289, 11)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(35, 13)
Me.Label10.TabIndex = 47
Me.Label10.Text = "Brutto"
'
'txtAuszManuell_hhmm
'
Me.txtAuszManuell_hhmm.Location = New System.Drawing.Point(305, 222)
Me.txtAuszManuell_hhmm.Name = "txtAuszManuell_hhmm"
Me.txtAuszManuell_hhmm.Size = New System.Drawing.Size(54, 20)
Me.txtAuszManuell_hhmm.TabIndex = 46
Me.txtAuszManuell_hhmm.Text = "0"
Me.txtAuszManuell_hhmm.Visible = False
'
'txtAusz_hhmm
'
Me.txtAusz_hhmm.Location = New System.Drawing.Point(245, 222)
Me.txtAusz_hhmm.Name = "txtAusz_hhmm"
Me.txtAusz_hhmm.Size = New System.Drawing.Size(54, 20)
Me.txtAusz_hhmm.TabIndex = 45
Me.txtAusz_hhmm.Text = "0"
'
'Label9
'
Me.Label9.AutoSize = True
@@ -393,7 +480,7 @@ Partial Class frmUeberstundenauszahlen
'
Me.picShow.BackgroundImage = Global.VERAG_PROG_ALLGEMEIN.My.Resources.Resources.today
Me.picShow.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.picShow.Location = New System.Drawing.Point(431, 11)
Me.picShow.Location = New System.Drawing.Point(455, 11)
Me.picShow.Name = "picShow"
Me.picShow.Size = New System.Drawing.Size(21, 16)
Me.picShow.TabIndex = 38
@@ -412,7 +499,7 @@ Partial Class frmUeberstundenauszahlen
'cx25
'
Me.cx25.AutoSize = True
Me.cx25.Location = New System.Drawing.Point(196, 111)
Me.cx25.Location = New System.Drawing.Point(271, 111)
Me.cx25.Name = "cx25"
Me.cx25.Size = New System.Drawing.Size(15, 14)
Me.cx25.TabIndex = 36
@@ -421,7 +508,7 @@ Partial Class frmUeberstundenauszahlen
'cbx50
'
Me.cbx50.AutoSize = True
Me.cbx50.Location = New System.Drawing.Point(196, 72)
Me.cbx50.Location = New System.Drawing.Point(271, 72)
Me.cbx50.Name = "cbx50"
Me.cbx50.Size = New System.Drawing.Size(15, 14)
Me.cbx50.TabIndex = 35
@@ -430,7 +517,7 @@ Partial Class frmUeberstundenauszahlen
'cbx100
'
Me.cbx100.AutoSize = True
Me.cbx100.Location = New System.Drawing.Point(196, 30)
Me.cbx100.Location = New System.Drawing.Point(271, 30)
Me.cbx100.Name = "cbx100"
Me.cbx100.Size = New System.Drawing.Size(15, 14)
Me.cbx100.TabIndex = 32
@@ -438,10 +525,10 @@ Partial Class frmUeberstundenauszahlen
'
'txtberAusz25
'
Me.txtberAusz25.Location = New System.Drawing.Point(309, 108)
Me.txtberAusz25.Location = New System.Drawing.Point(348, 108)
Me.txtberAusz25.Name = "txtberAusz25"
Me.txtberAusz25.ReadOnly = True
Me.txtberAusz25.Size = New System.Drawing.Size(54, 20)
Me.txtberAusz25.Size = New System.Drawing.Size(40, 20)
Me.txtberAusz25.TabIndex = 34
Me.txtberAusz25.Text = "0"
Me.txtberAusz25.Visible = False
@@ -458,28 +545,14 @@ Partial Class frmUeberstundenauszahlen
Me.cbxoverwrite.Text = "max. auszahlbar"
Me.cbxoverwrite.UseVisualStyleBackColor = True
'
'dgvUeberstunden
'
Me.dgvUeberstunden.AKTUALISIERUNGS_INTERVALL = -1
Me.dgvUeberstunden.AllowUserToAddRows = False
Me.dgvUeberstunden.AllowUserToDeleteRows = False
Me.dgvUeberstunden.BackgroundColor = System.Drawing.Color.White
Me.dgvUeberstunden.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvUeberstunden.Location = New System.Drawing.Point(381, 30)
Me.dgvUeberstunden.Name = "dgvUeberstunden"
Me.dgvUeberstunden.ReadOnly = True
Me.dgvUeberstunden.Size = New System.Drawing.Size(227, 98)
Me.dgvUeberstunden.TabIndex = 13
Me.dgvUeberstunden.Visible = False
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Location = New System.Drawing.Point(247, 179)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(56, 13)
Me.Label8.Size = New System.Drawing.Size(93, 13)
Me.Label8.TabIndex = 33
Me.Label8.Text = "Auszahlen"
Me.Label8.Text = "Auszahlen (Brutto)"
'
'txt50x1
'
@@ -528,22 +601,37 @@ Partial Class frmUeberstundenauszahlen
Me.Label5.Size = New System.Drawing.Size(0, 13)
Me.Label5.TabIndex = 40
'
'txtAusz_hhmm
'txtBruttoSum
'
Me.txtAusz_hhmm.Location = New System.Drawing.Point(245, 222)
Me.txtAusz_hhmm.Name = "txtAusz_hhmm"
Me.txtAusz_hhmm.Size = New System.Drawing.Size(54, 20)
Me.txtAusz_hhmm.TabIndex = 45
Me.txtAusz_hhmm.Text = "0"
Me.txtBruttoSum.Location = New System.Drawing.Point(292, 147)
Me.txtBruttoSum.Name = "txtBruttoSum"
Me.txtBruttoSum.ReadOnly = True
Me.txtBruttoSum.Size = New System.Drawing.Size(40, 20)
Me.txtBruttoSum.TabIndex = 53
Me.txtBruttoSum.Text = "0"
'
'txtAuszManuell_hhmm
'dgvUeberstunden
'
Me.txtAuszManuell_hhmm.Location = New System.Drawing.Point(305, 222)
Me.txtAuszManuell_hhmm.Name = "txtAuszManuell_hhmm"
Me.txtAuszManuell_hhmm.Size = New System.Drawing.Size(54, 20)
Me.txtAuszManuell_hhmm.TabIndex = 46
Me.txtAuszManuell_hhmm.Text = "0"
Me.txtAuszManuell_hhmm.Visible = False
Me.dgvUeberstunden.AKTUALISIERUNGS_INTERVALL = -1
Me.dgvUeberstunden.AllowUserToAddRows = False
Me.dgvUeberstunden.AllowUserToDeleteRows = False
Me.dgvUeberstunden.BackgroundColor = System.Drawing.Color.White
Me.dgvUeberstunden.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvUeberstunden.Location = New System.Drawing.Point(422, 30)
Me.dgvUeberstunden.Name = "dgvUeberstunden"
Me.dgvUeberstunden.ReadOnly = True
Me.dgvUeberstunden.Size = New System.Drawing.Size(186, 98)
Me.dgvUeberstunden.TabIndex = 13
Me.dgvUeberstunden.Visible = False
'
'Label12
'
Me.Label12.AutoSize = True
Me.Label12.Location = New System.Drawing.Point(176, 150)
Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(42, 13)
Me.Label12.TabIndex = 54
Me.Label12.Text = "Summe"
'
'frmUeberstundenauszahlen
'
@@ -569,8 +657,8 @@ Partial Class frmUeberstundenauszahlen
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
CType(Me.picShow, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -623,4 +711,12 @@ Partial Class frmUeberstundenauszahlen
Friend WithEvents Label6 As Windows.Forms.Label
Friend WithEvents txtAuszManuell_hhmm As Windows.Forms.TextBox
Friend WithEvents txtAusz_hhmm As Windows.Forms.TextBox
Friend WithEvents Label10 As Windows.Forms.Label
Friend WithEvents Label11 As Windows.Forms.Label
Friend WithEvents txtAusz100Netto As Windows.Forms.TextBox
Friend WithEvents txtAusz50Netto As Windows.Forms.TextBox
Friend WithEvents txtAusz50vonSaldoNetto As Windows.Forms.TextBox
Friend WithEvents txtNettoSum As Windows.Forms.TextBox
Friend WithEvents txtBruttoSum As Windows.Forms.TextBox
Friend WithEvents Label12 As Windows.Forms.Label
End Class

View File

@@ -3,11 +3,10 @@ Imports System.Globalization
Imports System.Text
Imports System.Threading
Imports System.Windows.Forms
Imports DocumentFormat.OpenXml.Drawing.Diagrams
Public Class frmUeberstundenauszahlen
Dim refresh As Boolean = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim MA As cMitarbeiter = Nothing
Dim timas As cTimasAPI = New cTimasAPI
@@ -15,16 +14,17 @@ Public Class frmUeberstundenauszahlen
Dim customFields As New DataTable
Dim timeaccountdt As New DataTable
Dim dtResult As New DataTable
'Dim dtbereitsausgezahlteUE As New DataTable
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 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
Dim faktor100Zuschlag As Double = 200
Dim faktor50Zuschlag As Double = 150
Dim ignoreFactor As Boolean = False
Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, stunden25bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere, overwrittenSum, overallSumNetto, overallSumBrutto As Double
'Dim dtbereitsausgezahlteUE As New DataTable
Sub New(mit_id)
@@ -41,22 +41,9 @@ Public Class frmUeberstundenauszahlen
Dim dv = New DataView(dt)
dv.RowFilter = "accountid = 65 Or accountid = 69 Or accountid = 70 Or accountid = 72 Or accountid = 73 Or accountid = 1209 Or accountid = 1235 Or accountid = 1550 Or accountid = 1551 Or accountid = 1553"
'65;"01-Lfd Saldo"
'69;"10-Na 22-06"
'70;"11-Sa 00-24"
'72;"13-So 00-24"
'73;"14-FtN 00-24"
'1209;Mehrarbeit
'1235;"Überstunden 100% gesamt"
'1550;"AUSZ ÜS 100%"
'1551;"AUSZ ÜS 50%"
'1553;"AUSZ ÜS MA 25%"
timeaccountdt = dv.ToTable
getAddDataFromTimas()
getUeberstunden(False)
'getAddDataFromTimas()
@@ -144,12 +131,6 @@ Public Class frmUeberstundenauszahlen
dtmerged.AcceptChanges()
End If
'If (dtmerged.Columns.Contains("date")) Then
' dtmerged.Columns.Remove("date")
' dtmerged.AcceptChanges()
'End If
Dim groups = dtmerged.AsEnumerable().
GroupBy(Function(row) New With {
Key .Id = row.Field(Of Integer)("accountid"),
@@ -248,25 +229,76 @@ Public Class frmUeberstundenauszahlen
End Sub
Private Sub txtAusz100_TextChanged(sender As Object, e As EventArgs) Handles txtAusz100.TextChanged, txtAusz50.TextChanged, txtAusz50vonSaldo.TextChanged
Dim sum As Double = 0
overwrittenSum = 0
If cbx100.Checked AndAlso txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text) AndAlso CDbl(txtAusz100.Text) >= 0 Then
Select Case sender.Name
Case "txtAusz100"
txtAusz100Netto.Text = 0
If txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text) AndAlso CDbl(txtAusz100.Text) > 0 Then
txtAusz100Netto.Text = RoundOfDigits(txtAusz100.Text * 100 / faktor100Zuschlag, 2)
Else
txtAusz100Netto.Text = 0
End If
Case "txtAusz50"
txtAusz50Netto.Text = 0
If txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text) AndAlso CDbl(txtAusz50.Text) > 0 Then
txtAusz50Netto.Text = RoundOfDigits(txtAusz50.Text * 100 / faktor50Zuschlag, 2)
Else
txtAusz50Netto.Text = 0
End If
Case "txtAusz50vonSaldo"
txtAusz50vonSaldoNetto.Text = 0
If txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text) AndAlso CDbl(txtAusz50vonSaldo.Text) > 0 Then
txtAusz50vonSaldoNetto.Text = txtAusz50vonSaldo.Text
Else
txtAusz50vonSaldoNetto.Text = 0
End If
End Select
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
If (txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text)) Then
sum += CDbl(txtAusz100.Text)
End If
If (txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text)) Then
sum += CDbl(txtAusz50.Text)
End If
If (txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text)) Then
sum += CDbl(txtAusz50vonSaldo.Text)
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
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
@@ -281,16 +313,16 @@ Public Class frmUeberstundenauszahlen
End If
If overwrittenSum > 0 Then
txtBruttoSum.Text = overwrittenSum
Else
txtBruttoSum.Text = sum
End If
End Sub
Public Sub fillFields(dt As DataTable)
'69 10-Na 22-06
'70 11-Sa 00-24 ===> 50%
'72 13-So 00-24
'73 14-FtN 00-24
'1209 Mehrarbeit
'1235 Überstunden 100% gesamt ===> 100%
picDel.Visible = False
@@ -457,6 +489,25 @@ Public Class frmUeberstundenauszahlen
End Sub
Private Sub txtAusz100Netto_TextChanged(sender As Object, e As EventArgs) Handles txtAusz100Netto.TextChanged, txtAusz50Netto.TextChanged, txtAusz50vonSaldoNetto.TextChanged
Dim sum As Double = 0
If txtAusz100Netto.Text <> "" AndAlso txtAusz100Netto.Text >= 0 Then
sum += RoundOfDigits(CDbl(txtAusz100Netto.Text), 2)
End If
If txtAusz50Netto.Text <> "" AndAlso txtAusz50Netto.Text >= 0 Then
sum += RoundOfDigits(CDbl(txtAusz50Netto.Text), 2)
End If
If txtAusz50vonSaldoNetto.Text <> "" AndAlso txtAusz50vonSaldoNetto.Text >= 0 Then
sum += RoundOfDigits(CDbl(txtAusz50vonSaldoNetto.Text), 2)
End If
txtNettoSum.Text = sum
End Sub
Private Sub txtAusz_TextChanged(sender As Object, e As EventArgs) Handles txtAusz.TextChanged
calcUeberstunden()
@@ -505,31 +556,36 @@ Public Class frmUeberstundenauszahlen
'1551;"AUSZ ÜS 50%"
'1598; Korrektur MJ - ÜBER API ansprechen!
'sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 100 / faktor100Zuschlag, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
'sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / faktor50Zuschlag, 2)
'sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2)
'gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text))
Dim sum100, sum50, sum0, gesamt As Double
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)
sum100 = RoundOfDigits(CDbl(txtAusz100Netto.Text), 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
sum50 = RoundOfDigits(CDbl(txtAusz50Netto.Text), 2)
sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldoNetto.Text), 2)
gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text))
If faktorSamstagsarbeit = 150 AndAlso istTeilzeit Then
If faktor50Zuschlag = 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
'29.03.2024 MÜSSEN SOFERN SICH NICHT 40Wochenstunden ERREICHEN, ALS 25% AUSBEZAHLT 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)
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)
@@ -732,17 +788,17 @@ Public Class frmUeberstundenauszahlen
Dim summeAusz = CDbl(txtAusz.Text)
If summeAusz <= 0 Then
txtAusz50vonSaldo.Text = "0"
txtAusz50.Text = "0"
txtAusz100.Text = "0"
txtAusz.Text = "0"
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 = RoundOfDigits(stundenlfdSaldobere * faktorTeilzeit / 100, 2)
If stundenlfdSaldo >= summeAusz Then 'Prüfung, damit nicht zuviele ÜS ausbezahlt werden können!
@@ -765,41 +821,51 @@ Public Class frmUeberstundenauszahlen
End If
summeAusz = RoundOfDigits(summeAusz - stunden100auszbere, 2)
'summeAusz = RoundOfDigits(summeAusz - RoundOfDigits(stunden100auszbere * 100 / faktor100Zuschlag, 2), 2)
If summeAusz >= stunden50auszbere Then
txtAusz50.Text = stunden50auszbere
summeAusz = RoundOfDigits(summeAusz - stunden50auszbere, 2)
'summeAusz = RoundOfDigits(summeAusz - RoundOfDigits(stunden50auszbere * 100 / faktor50Zuschlag, 2), 2)
ElseIf summeAusz < 0 Then
txtAusz50.Text = "0"
Else
txtAusz50.Text = summeAusz
summeAusz = RoundOfDigits(summeAusz - stunden50auszbere, 2)
'summeAusz = RoundOfDigits(summeAusz - RoundOfDigits(stunden50auszbere * 100 / faktor50Zuschlag, 2), 2)
End If
If summeAusz >= stundenlfdSaldo Then
txtAusz50vonSaldo.Text = stundenlfdSaldo
summeAusz = RoundOfDigits(summeAusz - stundenlfdSaldo, 2)
txtAusz50vonSaldo.Text = summeAusz
ElseIf summeAusz < 0 Then
txtAusz50vonSaldo.Text = "0"
Else
txtAusz50vonSaldo.Text = summeAusz
summeAusz = RoundOfDigits(summeAusz - stundenlfdSaldo, 2)
End If
txtAusz50vonSaldo.Text = summeAusz
End If
End If
If stundenlfdSaldo < 0 And cbxoverwrite.Checked Then txtAusz50vonSaldo.Text = 0 'Wenn Saldo negativ, dann nichts vom lfd Saldo vorschlagen!
If Not refresh Then refresh = Not refresh
End Sub
Private Sub calxMaxauszahlbar()
'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 * faktorFeiertagsarbeit / 100, 2)
stunden50auszbere = RoundOfDigits(stunden50ausz * faktorSamstagsarbeit / 100, 2)
stunden100auszbere = RoundOfDigits(stunden100ausz * faktor100Zuschlag / 100, 2)
stunden50auszbere = RoundOfDigits(stunden50ausz * faktor50Zuschlag / 100, 2)
txt100x2.Text = stunden100auszbere
txt50x15.Text = stunden50auszbere
@@ -841,10 +907,10 @@ Public Class frmUeberstundenauszahlen
If row.Item("name") = "SA-Zuschlag" Then
If row.Item("value") = "true" Then
faktorSamstagsarbeit = 150 'Samstagsarbeit wir im Timas hochgerechnet
faktor50Zuschlag = 150 'Samstagsarbeit wir im Timas hochgerechnet
lblMA.Text = "Mitarbeiter (mit SA-Zuschlag):"
Else
faktorSamstagsarbeit = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet
faktor50Zuschlag = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet
lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):"
End If
@@ -853,18 +919,20 @@ Public Class frmUeberstundenauszahlen
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
ignoreFactor = True
'Zuschläge ohne Faktoren!
faktorSamstagsarbeit = 100
faktorFeiertagsarbeit = 100
faktor50Zuschlag = 100
faktor100Zuschlag = 100
faktorTeilzeit = 100
Else
Label5.Text = ""
keinenFaktor = False
ignoreFactor = False
End If
cbxabwDatum.Enabled = Not keinenFaktor
cbxabwDatum.Enabled = Not ignoreFactor
End If
@@ -881,24 +949,4 @@ Public Class frmUeberstundenauszahlen
Next
End Sub
Private Function fixTime(val As String) As String
Try
If val <> "" AndAlso IsNumeric(val) Then
Dim hours = Convert.ToInt32(val)
Dim minutes = (val Mod hours) * 60
Return hours & ":" & minutes
Else
Return ""
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
End Class

View File

@@ -129,8 +129,15 @@ Public Class cFinanzOnlineWebService
StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item2
End Select
Dim returnInt As Integer = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, countryCode & vatNumber, StufeAbf, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6)
errorCode = returnInt
Dim returnInt As Integer
Try
returnInt = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, countryCode & vatNumber, StufeAbf, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6)
errorCode = returnInt
Catch ex As Exception
MsgBox("Fehler im externen Webservice '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
Exit Function
End Try
If returnInt = 0 Or returnInt = 1 Then