This commit is contained in:
2024-03-01 15:03:39 +01:00
5 changed files with 490 additions and 69 deletions

View File

@@ -17,10 +17,12 @@ Public Class cUeberstunden
Property uest_systemuser As Object = Nothing
Property uest_maxUE As Object = Nothing
Property uest_ignoreLimit As Boolean
Property uest_overwriteValue As Boolean
Property uest_paidout_sum As Object = Nothing
Public hasEntry = False
Dim SQL As New SQL
Dim SQL As New SQL
@@ -37,7 +39,7 @@ Public Class cUeberstunden
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_id", uest_id,, True, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_maId", uest_maId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_timasId", uest_timasId))
@@ -51,14 +53,16 @@ Public Class cUeberstunden
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_systemuser", uest_systemuser))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_ignoreLimit", uest_ignoreLimit))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_maxUE", uest_maxUE))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_overwriteValue", uest_overwriteValue))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_paidout_sum", uest_paidout_sum))
Return list
End Function
End Function
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblUeberstunden WHERE uest_maId=@uest_maId AND uest_date=@uest_date AND uest_deleted = 0) " &
" BEGIN " & getUpdateCmd() & " END " &
@@ -69,9 +73,9 @@ Public Class cUeberstunden
Return SQL.doSQLVarList(sqlstr, "ADMIN", , list)
End Function
Public Sub LOAD()
Try
hasEntry = False
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN()
Using cmd As New SqlCommand("SELECT TOP(1) * FROM tblUeberstunden WHERE uest_maId=@uest_maId AND uest_date=@uest_date AND uest_deleted = 0 order by uest_created desc", conn)
cmd.Parameters.AddWithValue("@uest_maId", uest_maId)
@@ -94,31 +98,31 @@ Public Class cUeberstunden
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Function getUpdateCmd() As String
Try
Public Function getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [tblUeberstunden] SET " & str & " WHERE uest_maId=@uest_maId AND uest_date=@uest_date AND uest_deleted = 0 ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Public Function getInsertCmd() As String

View File

@@ -828,8 +828,6 @@ Public Class frmMessenger
End If
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try

View File

@@ -22,7 +22,7 @@ Partial Class frmUeberstundenauszahlen
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmUeberstundenauszahlen))
Me.dtpMonat = New System.Windows.Forms.DateTimePicker()
Me.lblMonat = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
@@ -52,13 +52,23 @@ 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.txtAuszManuell = New System.Windows.Forms.TextBox()
Me.cx25 = New System.Windows.Forms.CheckBox()
Me.cbx50 = New System.Windows.Forms.CheckBox()
Me.cbx100 = New System.Windows.Forms.CheckBox()
Me.txtberAusz25 = New System.Windows.Forms.TextBox()
Me.cbxoverwrite = New System.Windows.Forms.CheckBox()
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()
Me.cbxTeilzeit = New System.Windows.Forms.CheckBox()
Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.picShow = New System.Windows.Forms.PictureBox()
CType(Me.picDel, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picShow, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'dtpMonat
@@ -162,7 +172,7 @@ Partial Class frmUeberstundenauszahlen
'Button1
'
Me.Button1.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Button1.Location = New System.Drawing.Point(321, 170)
Me.Button1.Location = New System.Drawing.Point(464, 170)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(87, 30)
Me.Button1.TabIndex = 12
@@ -252,7 +262,7 @@ Partial Class frmUeberstundenauszahlen
'
'txtberAusz50
'
Me.txtberAusz50.Location = New System.Drawing.Point(291, 69)
Me.txtberAusz50.Location = New System.Drawing.Point(309, 69)
Me.txtberAusz50.Name = "txtberAusz50"
Me.txtberAusz50.ReadOnly = True
Me.txtberAusz50.Size = New System.Drawing.Size(54, 20)
@@ -261,7 +271,7 @@ Partial Class frmUeberstundenauszahlen
'
'txtberAusz100
'
Me.txtberAusz100.Location = New System.Drawing.Point(291, 27)
Me.txtberAusz100.Location = New System.Drawing.Point(309, 27)
Me.txtberAusz100.Name = "txtberAusz100"
Me.txtberAusz100.ReadOnly = True
Me.txtberAusz100.Size = New System.Drawing.Size(54, 20)
@@ -271,7 +281,7 @@ Partial Class frmUeberstundenauszahlen
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(289, 11)
Me.Label1.Location = New System.Drawing.Point(306, 11)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(92, 13)
Me.Label1.TabIndex = 25
@@ -299,7 +309,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(387, 11)
Me.picDel.Location = New System.Drawing.Point(404, 11)
Me.picDel.Name = "picDel"
Me.picDel.Size = New System.Drawing.Size(21, 16)
Me.picDel.TabIndex = 28
@@ -316,7 +326,14 @@ Partial Class frmUeberstundenauszahlen
'
'Panel1
'
Me.Panel1.Controls.Add(Me.picShow)
Me.Panel1.Controls.Add(Me.txtAuszManuell)
Me.Panel1.Controls.Add(Me.cx25)
Me.Panel1.Controls.Add(Me.cbx50)
Me.Panel1.Controls.Add(Me.cbx100)
Me.Panel1.Controls.Add(Me.txtberAusz25)
Me.Panel1.Controls.Add(Me.cbxoverwrite)
Me.Panel1.Controls.Add(Me.dgvUeberstunden)
Me.Panel1.Controls.Add(Me.Label8)
Me.Panel1.Controls.Add(Me.txt50x1)
Me.Panel1.Controls.Add(Me.Label2)
@@ -341,9 +358,67 @@ 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, 235)
Me.Panel1.Size = New System.Drawing.Size(619, 235)
Me.Panel1.TabIndex = 30
'
'txtAuszManuell
'
Me.txtAuszManuell.Location = New System.Drawing.Point(272, 196)
Me.txtAuszManuell.Name = "txtAuszManuell"
Me.txtAuszManuell.Size = New System.Drawing.Size(54, 20)
Me.txtAuszManuell.TabIndex = 37
Me.txtAuszManuell.Text = "0"
Me.txtAuszManuell.Visible = False
'
'cx25
'
Me.cx25.AutoSize = True
Me.cx25.Location = New System.Drawing.Point(196, 111)
Me.cx25.Name = "cx25"
Me.cx25.Size = New System.Drawing.Size(15, 14)
Me.cx25.TabIndex = 36
Me.cx25.UseVisualStyleBackColor = True
'
'cbx50
'
Me.cbx50.AutoSize = True
Me.cbx50.Location = New System.Drawing.Point(196, 72)
Me.cbx50.Name = "cbx50"
Me.cbx50.Size = New System.Drawing.Size(15, 14)
Me.cbx50.TabIndex = 35
Me.cbx50.UseVisualStyleBackColor = True
'
'cbx100
'
Me.cbx100.AutoSize = True
Me.cbx100.Location = New System.Drawing.Point(196, 30)
Me.cbx100.Name = "cbx100"
Me.cbx100.Size = New System.Drawing.Size(15, 14)
Me.cbx100.TabIndex = 32
Me.cbx100.UseVisualStyleBackColor = True
'
'txtberAusz25
'
Me.txtberAusz25.Location = New System.Drawing.Point(309, 108)
Me.txtberAusz25.Name = "txtberAusz25"
Me.txtberAusz25.ReadOnly = True
Me.txtberAusz25.Size = New System.Drawing.Size(54, 20)
Me.txtberAusz25.TabIndex = 34
Me.txtberAusz25.Text = "0"
Me.txtberAusz25.Visible = False
'
'cbxoverwrite
'
Me.cbxoverwrite.AutoSize = True
Me.cbxoverwrite.Checked = True
Me.cbxoverwrite.CheckState = System.Windows.Forms.CheckState.Checked
Me.cbxoverwrite.Location = New System.Drawing.Point(79, 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
'
'Label8
'
Me.Label8.AutoSize = True
@@ -362,6 +437,16 @@ Partial Class frmUeberstundenauszahlen
Me.txt50x1.TabIndex = 32
Me.txt50x1.Text = "0"
'
'cbxTeilzeit
'
Me.cbxTeilzeit.AutoSize = True
Me.cbxTeilzeit.Location = New System.Drawing.Point(239, 5)
Me.cbxTeilzeit.Name = "cbxTeilzeit"
Me.cbxTeilzeit.Size = New System.Drawing.Size(59, 17)
Me.cbxTeilzeit.TabIndex = 31
Me.cbxTeilzeit.Text = "Teilzeit"
Me.cbxTeilzeit.UseVisualStyleBackColor = True
'
'dgvUeberstunden
'
Me.dgvUeberstunden.AKTUALISIERUNGS_INTERVALL = -1
@@ -369,10 +454,10 @@ Partial Class frmUeberstundenauszahlen
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, 12)
Me.dgvUeberstunden.Location = New System.Drawing.Point(381, 30)
Me.dgvUeberstunden.Name = "dgvUeberstunden"
Me.dgvUeberstunden.ReadOnly = True
Me.dgvUeberstunden.Size = New System.Drawing.Size(32, 20)
Me.dgvUeberstunden.Size = New System.Drawing.Size(227, 98)
Me.dgvUeberstunden.TabIndex = 13
Me.dgvUeberstunden.Visible = False
'
@@ -388,16 +473,28 @@ Partial Class frmUeberstundenauszahlen
Me.cbxoverwrite.Text = "max. auszahlbar"
Me.cbxoverwrite.UseVisualStyleBackColor = True
'
'picShow
'
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.Name = "picShow"
Me.picShow.Size = New System.Drawing.Size(21, 16)
Me.picShow.TabIndex = 38
Me.picShow.TabStop = False
Me.picShow.Visible = False
'
'frmUeberstundenauszahlen
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(463, 337)
Me.ClientSize = New System.Drawing.Size(646, 337)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.cbxTeilzeit)
Me.Controls.Add(Me.Panel1)
Me.Controls.Add(Me.lblBis)
Me.Controls.Add(Me.dtpBis)
Me.Controls.Add(Me.cbxabwDatum)
Me.Controls.Add(Me.dgvUeberstunden)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.lblMA)
Me.Controls.Add(Me.lblMonat)
@@ -409,6 +506,8 @@ Partial Class frmUeberstundenauszahlen
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picShow, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -447,4 +546,12 @@ Partial Class frmUeberstundenauszahlen
Friend WithEvents txt50x1 As Windows.Forms.TextBox
Friend WithEvents Label8 As Windows.Forms.Label
Friend WithEvents cbxoverwrite As Windows.Forms.CheckBox
Friend WithEvents cbxTeilzeit As Windows.Forms.CheckBox
Friend WithEvents txtberAusz25 As Windows.Forms.TextBox
Friend WithEvents cx25 As Windows.Forms.CheckBox
Friend WithEvents cbx50 As Windows.Forms.CheckBox
Friend WithEvents cbx100 As Windows.Forms.CheckBox
Friend WithEvents txtAuszManuell As Windows.Forms.TextBox
Friend WithEvents PictureBox1 As Windows.Forms.PictureBox
Friend WithEvents picShow As Windows.Forms.PictureBox
End Class

View File

@@ -120,4 +120,183 @@
<metadata name="CheckVatTestService1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PictureBox1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@@ -1,16 +1,19 @@
Imports System.Runtime.InteropServices.ComTypes

Imports System.Drawing
Imports System.Text
Imports System.Threading
Imports System.Windows.Forms
Imports Microsoft.Office.Interop.Outlook
Imports Therefore.API
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip
Public Class frmUeberstundenauszahlen
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim MA As cMitarbeiter = Nothing
Dim timas As cTimasAPI = New cTimasAPI
Dim dt 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
@@ -28,9 +31,44 @@ Public Class frmUeberstundenauszahlen
Label7.Text = MA.mit_vname & " " & MA.mit_nname
timas.getTimeaccountList(dt)
'65;"01-Lfd Saldo"
'66;02-Krank
'67;03-Urlaub
'69;"10-Na 22-06"
'70;"11-Sa 00-24"
'72;"13-So 00-24"
'73;"14-FtN 00-24"
'438;04-Sonstige
'986;Stundenlohn
'987;FT-Ersatzzeit
'993;"Ausz. ÜS"
'1209;Mehrarbeit
'1210;"Script hilfskonto WSaldo"
'1227;Schichtzulage
'1231;Urlaubsstunden
'1235;"Überstunden 100% gesamt"
'1257;Zuschlag
'1272;"unbezahlter Urlaub"
'1366;"Mehrarbeit am 25. des Monats gesamt"
'1393;"Urlaub (Stunden)"
'1550;"AUSZ ÜS 100%"
'1551;"AUSZ ÜS 50%"
'65
'69
'70
'72
'73
'1209
'1235
'1550
'1551
'1553
Dim dv = New DataView(dt)
dv.RowFilter = "info like '%zuschlag%' Or name = 'Mehrarbeit' Or name like 'Überstunden%' Or info like 'Auszahlungskonto%' Or name like '%01-Lfd Saldo%'"
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"
timeaccountdt = dv.ToTable
getUeberstunden(False)
@@ -66,6 +104,15 @@ Public Class frmUeberstundenauszahlen
startdate = (dtpMonat.Value)
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)
@@ -82,9 +129,8 @@ Public Class frmUeberstundenauszahlen
Panel1.Enabled = True
End If
Dim dt = calcUeberstunden(timeaccountdt, dtResult)
dt = getUeberstunden(timeaccountdt, dtResult)
fillFields(dt)
dgvUeberstunden.DataSource = dt
End If
End Sub
@@ -112,10 +158,10 @@ Public Class frmUeberstundenauszahlen
dtmerged.AcceptChanges()
End If
If (dtmerged.Columns.Contains("date")) Then
dtmerged.Columns.Remove("date")
dtmerged.AcceptChanges()
End If
'If (dtmerged.Columns.Contains("date")) Then
' dtmerged.Columns.Remove("date")
' dtmerged.AcceptChanges()
'End If
Dim groups = dtmerged.AsEnumerable().
@@ -140,6 +186,87 @@ 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 picShow_Click(sender As Object, e As EventArgs) Handles picShow.Click
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim frm As New Form
Dim dgv As New DataGridView()
If dt.Rows.Count = 0 Then
MsgBox("keine Daten vorhanden!")
Exit Sub
End If
Dim dv = New DataView(dt)
dv.RowFilter = "accountid = 1550 Or accountid = 1551 Or accountid = 1553"
dgv.DataSource = dv.ToTable
If dgv IsNot Nothing Then
frm.Size = New Size(500, 500)
dgv.Size = New Size(frm.Size.Width, frm.Size.Height)
dgv.Dock = DockStyle.Fill
dgv.Anchor = AnchorStyles.Left
dgv.Anchor = AnchorStyles.Top
dgv.ReadOnly = True
frm.Controls.Add(dgv)
frm.StartPosition = FormStartPosition.CenterScreen
frm.ShowDialog()
End If
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
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
@@ -216,35 +343,30 @@ Public Class frmUeberstundenauszahlen
picDel.Visible = True
Button1.Enabled = False
txtAusz.Enabled = False
picShow.Visible = True
Else
Button1.Enabled = True
txtAusz.Enabled = True
picShow.Visible = False
End If
stunden100auszbere = stunden100ausz * 2
stunden50auszbere = stunden50ausz * 1.5
'If cbxabwDatum.Checked AndAlso dtbereitsausgezahlteUE IsNot Nothing Then
txt100x2.Text = stunden100auszbere
txt50x15.Text = stunden50auszbere
' 'If dtbereitsausgezahlteUE.Rows.Count > 0 Then
'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")
' ' txtberAusz100ZR.Text = CDbl(dtbereitsausgezahlteUE.Rows(0).Item("ue100").ToString)
' ' If istTeilzeit Then
' ' txtberAusz50ZR.Text = CDbl(dtbereitsausgezahlteUE.Rows(0).Item("ue50").ToString) + CDbl(dtbereitsausgezahlteUE.Rows(0).Item("ue0").ToString)
' ' Else
' ' txtberAusz25ZR.Text = CDbl(dtbereitsausgezahlteUE.Rows(0).Item("ue25").ToString) + CDbl(dtbereitsausgezahlteUE.Rows(0).Item("ue0").ToString)
' ' End If
' 'End If
'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
calxMaxauszahlbar()
End If
@@ -387,6 +509,13 @@ Public Class frmUeberstundenauszahlen
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
ues.uest_ignoreLimit = Not maxUberstundenpruefung
ues.uest_maxUE = CDbl(txtSummeAuszb.Text)
ues.uest_paidout_sum = gesamt
If istTeilzeit Then
ues.uest_25 = sum0
Else
ues.uest_0 = sum0
End If
Dim info As String = ""
@@ -554,8 +683,12 @@ Public Class frmUeberstundenauszahlen
If stundenlfdSaldo <= 0 Then Button1.Enabled = False
txtSummeAuszb.Text = stundenlfdSaldo
'txtSummeAuszb.Text = stundenlfdSaldobere
If (stunden100bereitsausbezahl + stunden50bereitsausbezahlt + stunden25bereitsausbezahlt) > 0 Then
txtSummeAuszb.Text = stundenlfdSaldo
Else
txtSummeAuszb.Text = stundenlfdSaldobere
End If
End Sub