Mitarbeiter, verwahrung

This commit is contained in:
2026-08-21 14:15:13 +02:00
parent cdc881a643
commit 2aed96d9af
5 changed files with 161 additions and 65 deletions

View File

@@ -50,6 +50,7 @@ Partial Class usrCntlMitarbeiter
Me.TabPage8 = New System.Windows.Forms.TabPage()
Me.dgvTimasNew = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.Panel1 = New System.Windows.Forms.Panel()
Me.lblAktiv = New System.Windows.Forms.Label()
Me.cbxDakosy = New System.Windows.Forms.CheckBox()
Me.cbxZE = New System.Windows.Forms.CheckBox()
Me.cbx = New System.Windows.Forms.CheckBox()
@@ -62,7 +63,6 @@ Partial Class usrCntlMitarbeiter
Me.UserKopierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.BerechtigungenSetzenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.lblAktiv = New System.Windows.Forms.Label()
Me.Panel2.SuspendLayout()
Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout()
@@ -113,11 +113,11 @@ Partial Class usrCntlMitarbeiter
'
'btnUEZ_ausz
'
Me.btnUEZ_ausz.Location = New System.Drawing.Point(10, 276)
Me.btnUEZ_ausz.Location = New System.Drawing.Point(4, 276)
Me.btnUEZ_ausz.Name = "btnUEZ_ausz"
Me.btnUEZ_ausz.Size = New System.Drawing.Size(75, 49)
Me.btnUEZ_ausz.Size = New System.Drawing.Size(83, 40)
Me.btnUEZ_ausz.TabIndex = 22
Me.btnUEZ_ausz.Text = "Check ÜS-Auszahl."
Me.btnUEZ_ausz.Text = "Überstunden"
Me.btnUEZ_ausz.UseVisualStyleBackColor = True
'
'Button9
@@ -388,6 +388,14 @@ Partial Class usrCntlMitarbeiter
Me.Panel1.Size = New System.Drawing.Size(889, 36)
Me.Panel1.TabIndex = 26
'
'lblAktiv
'
Me.lblAktiv.AutoSize = True
Me.lblAktiv.Location = New System.Drawing.Point(775, 13)
Me.lblAktiv.Name = "lblAktiv"
Me.lblAktiv.Size = New System.Drawing.Size(0, 13)
Me.lblAktiv.TabIndex = 53
'
'cbxDakosy
'
Me.cbxDakosy.AutoSize = True
@@ -491,14 +499,6 @@ Partial Class usrCntlMitarbeiter
Me.ContextMenuStrip2.Name = "ContextMenuStrip2"
Me.ContextMenuStrip2.Size = New System.Drawing.Size(61, 4)
'
'lblAktiv
'
Me.lblAktiv.AutoSize = True
Me.lblAktiv.Location = New System.Drawing.Point(775, 13)
Me.lblAktiv.Name = "lblAktiv"
Me.lblAktiv.Size = New System.Drawing.Size(0, 13)
Me.lblAktiv.TabIndex = 53
'
'usrCntlMitarbeiter
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)

View File

@@ -1,7 +1,7 @@
Imports System.ComponentModel
Imports System.Net
Imports System.Text
Imports Mysqlx.XDevAPI.CRUD
Imports Microsoft.Office.Interop.Outlook
Imports VERAG_PROG_ALLGEMEIN
@@ -25,8 +25,8 @@ Public Class usrCntlMitarbeiter
Try
' Me.Size = My.Settings.frmMainSize
' Me.Location = My.Settings.frmMainPosition
Catch ex As Exception
Catch ex As Exception
Catch ex As System.Exception
'nix tun - Standardgröße wird somit automatisch gesetzt
End Try
@@ -730,7 +730,7 @@ Public Class usrCntlMitarbeiter
MsgBox("Daten in Zwischenablage gespeichert")
Catch ex As Exception
Catch ex As System.Exception
MsgBox(ex.Message & ex.StackTrace)
Me.Cursor = Cursors.Default
End Try
@@ -748,8 +748,21 @@ Public Class usrCntlMitarbeiter
ElseIf item.Name = "copyToClipboard" Then
copyToClipboardWIKI()
ElseIf item.Name = "checkue" Then
checkUeberstunden(False, Now().Month, Now().Year)
ElseIf item.Name = "ueuebersicht" Then
Dim f As New frmDatumsabfrage("Überstunden-Übersicht Monat ", True)
f.dtp_date.Format = DateTimePickerFormat.Custom
f.dtp_date.CustomFormat = "MM.yyyy"
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
checkUeberstunden(True, CDate(f.dtp_date.Value).Month, CDate(f.dtp_date.Value).Year)
End If
Else
MsgBox("Funktion nicht implementiert!")
MsgBox("Funktion nicht implementiert!")
End If
End If
@@ -759,6 +772,9 @@ Public Class usrCntlMitarbeiter
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
ContextMenuStrip2.Items.Clear()
If Not ContextMenuStrip2.Items.ContainsKey("uploadPuctureToWiki") Then
Dim uploadPictures = New ToolStripMenuItem() With {.Text = "Bilder ins WIKI hochladen", .Name = "uploadPuctureToWiki", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip2.Items.Add(uploadPictures)
@@ -774,6 +790,28 @@ Public Class usrCntlMitarbeiter
ContextMenuStrip2.Show(Cursor.Position)
End Sub
Private Sub btnUEZ_ausz_Click(sender As Object, e As EventArgs) Handles btnUEZ_ausz.Click
ContextMenuStrip2.Items.Clear()
If Not ContextMenuStrip2.Items.ContainsKey("ueuebersicht") Then
Dim ueuebersicht = New ToolStripMenuItem() With {.Text = "Übersicht Überstunden", .Name = "ueuebersicht", .Font = New Font(Me.Font.FontFamily, Me.Font.Size), .Image = My.Resources.Excel_2013_logo_155x110}
ContextMenuStrip2.Items.Add(ueuebersicht)
AddHandler ueuebersicht.Click, AddressOf mnuItem_Clicked
End If
If Not ContextMenuStrip2.Items.ContainsKey("checkue") Then
Dim checkue = New ToolStripMenuItem() With {.Text = "Überstunden prüfen", .Name = "checkue", .Font = New Font(Me.Font.FontFamily, Me.Font.Size), .Image = My.Resources.Excel_2013_logo_155x110}
AddHandler checkue.Click, AddressOf mnuItem_Clicked
ContextMenuStrip2.Items.Add(checkue)
End If
ContextMenuStrip2.Show(Cursor.Position)
End Sub
@@ -842,7 +880,7 @@ Public Class usrCntlMitarbeiter
Me.Cursor = Cursors.Default
Try
Catch ex As Exception
Catch ex As System.Exception
Me.Cursor = Cursors.Default
MsgBox(ex.Message & ex.StackTrace)
End Try
@@ -946,12 +984,13 @@ Public Class usrCntlMitarbeiter
Tabelle_anzeigen()
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnUEZ_ausz.Click
Private Sub checkUeberstunden(showAll As Boolean, Month As Integer, year As Integer)
If dgvTimasNew.Rows.Count = 0 Then Exit Sub
Try
Dim tag As New cFeiertage(year)
Dim dt_Accounts As New DataTable
dt_Accounts.Columns.Add("accountid", GetType(Integer))
@@ -960,15 +999,6 @@ Public Class usrCntlMitarbeiter
ROW_ACC("accountid") = "993" 'Auszahlungen ÜS!
dt_Accounts.Rows.Add(ROW_ACC)
'Dim ROW_ACC1 As DataRow = dt_Accounts.NewRow
'ROW_ACC1("accountid") = "1598" 'Auszahlungen ÜS!
'dt_Accounts.Rows.Add(ROW_ACC1)
'Dim ROW_ACC2 As DataRow = dt_Accounts.NewRow
'ROW_ACC2("accountid") = "1235" 'Auszahlungen ÜS!
'dt_Accounts.Rows.Add(ROW_ACC2)
Dim dt_Employee As New DataTable
dt_Employee.Columns.Add("employeeId", GetType(Integer))
dt_Employee.Columns.Add("Vorname", GetType(String))
@@ -976,8 +1006,14 @@ Public Class usrCntlMitarbeiter
Dim dt_result As New DataTable
Dim dateStart As New Date("2025", "01", "01")
Dim dateEnd = Today()
Dim dateStart As Date
If showAll Then
dateStart = New Date(year, Month, 1)
Else
dateStart = New Date(2025, 1, 1)
End If
Dim dateEnd = CDate(tag.GetLastyDayYInxMonth(DayOfWeek.Monday, Month, year, True))
For Each r As DataGridViewRow In dgvTimasNew.Rows
Dim ROW As DataRow = dt_Employee.NewRow
@@ -994,19 +1030,36 @@ Public Class usrCntlMitarbeiter
If dt_result.Rows.Count > 0 Then
Dim dt_result_temp As New DataTable
Dim dt_UES_AUS_AVISO As New DataTable
Dim Info As String = ""
Dim dt_falschAusbezahlt As New DataTable
If showAll Then
dt_result_temp = dt_result.Select("multiplier = '+'", "date").CopyToDataTable
Info = "Überstunden aus TIMAS von " & dateStart.ToShortDateString & " bis " & dateEnd.ToShortDateString
dt_falschAusbezahlt = dt_result.Select("multiplier = '-'", "date").CopyToDataTable
Dim sqlWhere As String = String.Join(",", dt_Employee.AsEnumerable().Where(Function(r) Not r.IsNull("employeeId")).Select(Function(r) r("employeeId").ToString()))
If dt_falschAusbezahlt.Rows.Count = 0 Then
MsgBox("keine falsch ausbezahlten Überstunden vorhanden!" & vbNewLine & "Es wird nur geprüft, ob die ausbezahlten Überstunden NICHT negativ sind!")
Dim sql = "select mit_nname as Nachname ,mit_vname as Vorname, uest_date as Datum ,isnull(uest_100,0) as ÜS100 , isnull(uest_50,0) as ÜS50, isnull(uest_25,0) as ÜS25, isnull(uest_0,0) as ÜS50_Saldo, isnull(uest_paidout_sum,0) as ausbezahlt, uest_systemuser as eingetragen_von ,uest_created as eingetragen_am,
cast (case when isnull([uest_ignorePayoutDate],0) = 0 then 0 else 1 end as bit) as ignoreAuszahlungsdatum, uest_deleted as geloescht
FROM [ADMIN].[dbo].[tblUeberstunden]
inner join tblMitarbeiter on uest_maId = mit_id
where uest_deleted = 0 and uest_date >= '" & dateStart.ToShortDateString & "' and uest_date <= '" & dateEnd.ToShortDateString & "' and mit_timasId in (" & sqlWhere & ") Order by uest_paidout_sum desc"
dt_UES_AUS_AVISO = (New SQL).loadDgvBySql(sql, "ADMIN", 100, True)
Else
dt_result_temp = dt_result.Select("multiplier = '-'", "date").CopyToDataTable
Info = "falsch ausbezahlte Überstunden (ÜS sind negativ -> Erhöhen den Saldo)"
End If
If dt_result_temp.Rows.Count = 0 Then
MsgBox("keine (falsch) ausbezahlten Überstunden vorhanden!" & vbNewLine & "Es wird nur geprüft, ob die ausbezahlten Überstunden NICHT negativ sind!")
Exit Sub
Else
' VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_falschAusbezahlt,,,,,,,, True)
Dim query = From fa In dt_falschAusbezahlt.AsEnumerable()
Dim query = From fa In dt_result_temp.AsEnumerable()
Join emp In dt_Employee.AsEnumerable() On fa.Field(Of Integer)("employeeId") Equals emp.Field(Of Integer)("employeeId")
Select result = fa.ItemArray.Concat({emp.Field(Of String)("Vorname"), emp.Field(Of String)("Nachname")}).ToArray()
@@ -1014,28 +1067,83 @@ Public Class usrCntlMitarbeiter
Dim dt_merged As New DataTable
' Alte Spalten übernehmen
For Each col As DataColumn In dt_falschAusbezahlt.Columns
For Each col As DataColumn In dt_result_temp.Columns
dt_merged.Columns.Add(col.ColumnName, col.DataType)
Next
' Neue Spalten hinzufügen
dt_merged.Columns.Add("Vorname", GetType(String))
dt_merged.Columns.Add("Nachname", GetType(String))
dt_merged.Columns.Add("Nachname", GetType(String))
' Daten einfügen
For Each row In query
dt_merged.Rows.Add(row)
Next
' Daten einfügen
For Each row In query
dt_merged.Rows.Add(row)
Next
If dt_merged.Rows.Count > 0 Then
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_merged,,, "falsch ausbezahlte Überstunden (ÜS sind negativ -> Erhöhen den Saldo)",,,,, True)
If dt_merged.Rows.Count > 0 Then
dt_merged = dt_merged.AsEnumerable().OrderByDescending(Function(r) r("value")).CopyToDataTable()
End If
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_merged,,, Info,,,,, True)
If dt_UES_AUS_AVISO.Rows.Count > 0 Then
Dim infoAVISO = Info.Replace("TIMAS", "AVISO")
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_UES_AUS_AVISO,,, infoAVISO,,,,, True)
End If
End If
End If
End If
Catch ex As System.Exception
End Try
End Sub
Private Sub ShowUberstunden()
If dgvTimasNew.Rows.Count = 0 Then Exit Sub
Try
Dim f As New frmDatumsabfrage("Überstunden-Übersicht Monat ", True)
f.dtp_date.Format = DateTimePickerFormat.Custom
f.dtp_date.CustomFormat = "MM.yyyy"
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
'Dim timas As New cTimasAPI("timas")
'timas.getTimeAccounts(dateStart, dateEnd, 0, dt_Accounts, dt_result, dt_Employee)
'If dt_result.Rows.Count > 0 Then
' If dt_merged.Rows.Count > 0 Then
' VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_merged,,, "falsch ausbezahlte Überstunden (ÜS sind negativ -> Erhöhen den Saldo)",,,,, True)
' End If
'End If
End If
Catch ex As Exception
Catch ex As System.Exception
End Try