Mitarbeiter-Überstundensaldo, etc.
This commit is contained in:
@@ -39,6 +39,7 @@ Public Class usrCntlMitarbeiter
|
||||
|
||||
btnUEZ_ausz.Visible = False
|
||||
lblAktiv.Text = ""
|
||||
cbxClientTimas.Visible = False
|
||||
|
||||
If TabControl1.SelectedIndex = 0 Then
|
||||
showVERAGATILLA("VERAG")
|
||||
@@ -61,6 +62,23 @@ Public Class usrCntlMitarbeiter
|
||||
btnUEZ_ausz.Visible = True
|
||||
End If
|
||||
If dgvTimasNew IsNot Nothing Then
|
||||
|
||||
cbxClientTimas.Visible = True
|
||||
|
||||
cbxClientTimas.Items.Clear()
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBAR", "AMBAR"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATILLA", "ATILLA"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FO"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG AG", "VERAG AG"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG - MDM", "VERAG 360"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG CS", "VERAG CS"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG GMBH", "VERAG GMBH"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG UNISPED Ltd", "VERAG UNISPED LIMITED"))
|
||||
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG CUSTOMS LOGISTICS Ltd", "VERAG CL LIMITED"))
|
||||
cbxClientTimas.SelectedIndex = 0
|
||||
|
||||
showTIMAS(False)
|
||||
End If
|
||||
End If
|
||||
@@ -224,11 +242,11 @@ Public Class usrCntlMitarbeiter
|
||||
|
||||
|
||||
|
||||
Public Sub showTIMAS(refresh As Boolean)
|
||||
Public Sub showTIMAS(refresh As Boolean, Optional TimasMandant As String = "")
|
||||
locZeilen = -1
|
||||
If Not Grid_aktiv Then Exit Sub
|
||||
|
||||
If dt.Columns.Count > 0 And Not refresh Then
|
||||
If dt.Columns.Count > 0 And Not refresh AndAlso TimasMandant <> "" Then
|
||||
|
||||
If txtSuche.Text <> "" Then
|
||||
dt.DefaultView.RowFilter = "Vorname like '%" & txtSuche.Text & "%' or Nachname like '%" & txtSuche.Text & "%' or 'Personal-Nr (Lohn)' like '%" & txtSuche.Text & "%' or Info like '%" & txtSuche.Text & "%'"
|
||||
@@ -236,12 +254,17 @@ Public Class usrCntlMitarbeiter
|
||||
dt.DefaultView.RowFilter = Nothing
|
||||
End If
|
||||
|
||||
If TimasMandant <> "" Then
|
||||
dt.DefaultView.RowFilter = "Info like '%" & TimasMandant & "%'"
|
||||
End If
|
||||
|
||||
|
||||
dgvTimasNew.DataSource = dt
|
||||
|
||||
Else
|
||||
Dim timas As New cTimasAPI("timas")
|
||||
timas.getEmployeeList(dt)
|
||||
|
||||
timas.getEmployeeList(dt, TimasMandant)
|
||||
dgvTimasNew.DataSource = dt
|
||||
Dim dt_onlyActive As New DataTable
|
||||
dt_onlyActive = dt.Select("[Ausweis-Nr] <> 0 and Vorname <> '' and Nachname <> ''").CopyToDataTable
|
||||
dgvTimasNew.DataSource = dt_onlyActive
|
||||
@@ -766,18 +789,30 @@ Public Class usrCntlMitarbeiter
|
||||
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"
|
||||
ElseIf item.Name = "ue_stand_yesterday" Then
|
||||
gettimesaldo(False)
|
||||
|
||||
ElseIf item.Name = "ue_stand" Then
|
||||
Dim f As New frmDatumsabfrage("Zeitsaldo-Stichtag ", True)
|
||||
f.ShowDialog()
|
||||
If f.DialogResult = DialogResult.OK Then
|
||||
|
||||
checkUeberstunden(True, CDate(f.dtp_date.Value).Month, CDate(f.dtp_date.Value).Year)
|
||||
gettimesaldo(True, CDate(f.dtp_date.Value))
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
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!")
|
||||
End If
|
||||
|
||||
@@ -826,6 +861,18 @@ Public Class usrCntlMitarbeiter
|
||||
ContextMenuStrip2.Items.Add(checkue)
|
||||
End If
|
||||
|
||||
If Not ContextMenuStrip2.Items.ContainsKey("ue_stand_yesterday") Then
|
||||
Dim ue_stand = New ToolStripMenuItem() With {.Text = "Stand Zeitsaldo gestern", .Name = "ue_stand_yesterday", .Font = New Font(Me.Font.FontFamily, Me.Font.Size), .Image = My.Resources.Excel_2013_logo_155x110}
|
||||
AddHandler ue_stand.Click, AddressOf mnuItem_Clicked
|
||||
ContextMenuStrip2.Items.Add(ue_stand)
|
||||
End If
|
||||
|
||||
If Not ContextMenuStrip2.Items.ContainsKey("ue_stand") Then
|
||||
Dim ue_stand = New ToolStripMenuItem() With {.Text = "Stand Zeitsaldo Stichtag", .Name = "ue_stand", .Font = New Font(Me.Font.FontFamily, Me.Font.Size), .Image = My.Resources.Excel_2013_logo_155x110}
|
||||
AddHandler ue_stand.Click, AddressOf mnuItem_Clicked
|
||||
ContextMenuStrip2.Items.Add(ue_stand)
|
||||
End If
|
||||
|
||||
|
||||
|
||||
ContextMenuStrip2.Show(Cursor.Position)
|
||||
@@ -1012,7 +1059,9 @@ Public Class usrCntlMitarbeiter
|
||||
dt_Accounts.Columns.Add("accountid", GetType(Integer))
|
||||
|
||||
Dim ROW_ACC As DataRow = dt_Accounts.NewRow
|
||||
|
||||
ROW_ACC("accountid") = "993" 'Auszahlungen ÜS!
|
||||
|
||||
dt_Accounts.Rows.Add(ROW_ACC)
|
||||
|
||||
Dim dt_Employee As New DataTable
|
||||
@@ -1032,6 +1081,7 @@ Public Class usrCntlMitarbeiter
|
||||
|
||||
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
|
||||
ROW("employeeId") = r.Cells("Id").Value
|
||||
@@ -1041,8 +1091,6 @@ Public Class usrCntlMitarbeiter
|
||||
dt_Employee.Rows.Add(ROW)
|
||||
Next
|
||||
|
||||
|
||||
|
||||
Dim timas As New cTimasAPI("timas")
|
||||
timas.getTimeAccounts(dateStart, dateEnd, 0, dt_Accounts, dt_result, dt_Employee)
|
||||
|
||||
@@ -1096,8 +1144,8 @@ Public Class usrCntlMitarbeiter
|
||||
|
||||
' Daten einfügen
|
||||
For Each row In query
|
||||
dt_merged.Rows.Add(row)
|
||||
Next
|
||||
dt_merged.Rows.Add(row)
|
||||
Next
|
||||
|
||||
If dt_merged.Rows.Count > 0 Then
|
||||
If dt_merged.Rows.Count > 0 Then
|
||||
@@ -1117,7 +1165,7 @@ Public Class usrCntlMitarbeiter
|
||||
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
@@ -1129,4 +1177,142 @@ Public Class usrCntlMitarbeiter
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub gettimesaldo(stichtag As Boolean, Optional st_datum As Date = Nothing)
|
||||
|
||||
Dim timas As New cTimasAPI("timas")
|
||||
Dim isServiceRunning As Boolean = True
|
||||
|
||||
Dim dt_Employee_temp As New DataTable
|
||||
dt_Employee_temp.Columns.Add("employeeId", GetType(Integer))
|
||||
|
||||
If dgvTimasNew.SelectedRows.Count = 0 Then
|
||||
MsgBox("Bitte Mitarbeiter markieren!")
|
||||
End If
|
||||
|
||||
|
||||
For Each r As DataGridViewRow In dgvTimasNew.SelectedRows
|
||||
|
||||
Dim ROW As DataRow = dt_Employee_temp.NewRow
|
||||
ROW("employeeId") = r.Cells("Id").Value
|
||||
dt_Employee_temp.Rows.Add(ROW)
|
||||
|
||||
Next
|
||||
|
||||
Dim sqlWhere As String = String.Join(",", dt_Employee_temp.AsEnumerable().Where(Function(r) Not r.IsNull("employeeId")).Select(Function(r) r("employeeId").ToString()))
|
||||
|
||||
Dim sql = "select mit_timasId as employeeId,mit_vname as Vorname ,mit_nname as Nachname , mit_niederlassung as Niederlassung,mit_abteilung as Abteilung, mit_firma as Firma
|
||||
FROM [ADMIN].[dbo].tblMitarbeiter where mit_timasId in (" & sqlWhere & ")"
|
||||
|
||||
Dim dt_AVISO As DataTable = (New SQL).loadDgvBySql(sql, "ADMIN", 100, True)
|
||||
|
||||
|
||||
Dim query =
|
||||
From fa In dt_Employee_temp.AsEnumerable() Join emp In dt_AVISO.AsEnumerable() On fa.Field(Of Integer)("employeeId") Equals emp.Field(Of Integer)("employeeId")
|
||||
Select New With {
|
||||
.EmployeeId = fa.Field(Of Integer)("employeeId"),
|
||||
.Vorname = emp.Field(Of String)("Vorname"),
|
||||
.Nachname = emp.Field(Of String)("Nachname"),
|
||||
.Niederlassung = emp.Field(Of String)("Niederlassung"),
|
||||
.Abteilung = emp.Field(Of String)("Abteilung"),
|
||||
.Firma = emp.Field(Of String)("Firma")
|
||||
}
|
||||
|
||||
Dim dt_Employee As New DataTable
|
||||
|
||||
dt_Employee.Columns.Add("employeeId", GetType(Integer))
|
||||
dt_Employee.Columns.Add("Vorname", GetType(String))
|
||||
dt_Employee.Columns.Add("Nachname", GetType(String))
|
||||
dt_Employee.Columns.Add("Niederlassung", GetType(String))
|
||||
dt_Employee.Columns.Add("Abteilung", GetType(String))
|
||||
dt_Employee.Columns.Add("Firma", GetType(String))
|
||||
dt_Employee.Columns.Add("Saldo-raw", GetType(String))
|
||||
dt_Employee.Columns.Add("Saldo", GetType(Double))
|
||||
|
||||
For Each item In query
|
||||
dt_Employee.Rows.Add(
|
||||
item.EmployeeId,
|
||||
item.Vorname,
|
||||
item.Nachname,
|
||||
item.Niederlassung,
|
||||
item.Abteilung,
|
||||
item.Firma,
|
||||
DBNull.Value, ' Saldo-raw
|
||||
DBNull.Value ' Saldo
|
||||
)
|
||||
Next
|
||||
|
||||
Dim emp_id_all As Integer = -1
|
||||
Dim saldo As String = ""
|
||||
Dim saldoDouble As Double
|
||||
|
||||
For Each r As DataRow In dt_Employee.Rows
|
||||
|
||||
|
||||
Dim emp_id As Integer = r.Item("employeeId")
|
||||
|
||||
If emp_id <> emp_id_all Then
|
||||
|
||||
|
||||
If stichtag Then
|
||||
saldo = timas.getTimeSaldo(emp_id, "", "dailyBalanceYesterday", isServiceRunning, "time", True, st_datum)
|
||||
Else
|
||||
saldo = timas.getTimeSaldo(emp_id, "", "dailyBalanceYesterday", isServiceRunning, "time", True)
|
||||
End If
|
||||
|
||||
|
||||
If Not isServiceRunning Then
|
||||
MsgBox("Abfragefehler am Timas-Server!")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
r.Item("Saldo-raw") = saldo
|
||||
|
||||
emp_id_all = emp_id
|
||||
|
||||
Dim teile = saldo.Trim().Split(":"c)
|
||||
Dim stunden As Integer
|
||||
Dim minuten As Integer
|
||||
|
||||
If teile.Length = 2 AndAlso
|
||||
Integer.TryParse(teile(0), stunden) AndAlso
|
||||
Integer.TryParse(teile(1), minuten) AndAlso
|
||||
minuten >= 0 AndAlso minuten < 60 Then
|
||||
|
||||
saldoDouble = CDbl(stunden + minuten / 60.0)
|
||||
r("Saldo") = Math.Round(saldoDouble, 2)
|
||||
Else
|
||||
saldoDouble = 0
|
||||
r("Saldo") = DBNull.Value
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Else
|
||||
r.Item("Saldo-raw") = saldo
|
||||
r.Item("Saldo") = Math.Round(saldoDouble, 2)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
|
||||
If dt_Employee.Rows.Count > 0 Then
|
||||
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_Employee,,, "Stundensaldo: " & Now.AddDays(-1).ToShortDateString,,,,, True)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub cbxClientTimas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxClientTimas.SelectedIndexChanged
|
||||
|
||||
Dim Firma = cbxClientTimas.SelectedItem.Text
|
||||
|
||||
If Firma <> "" Then
|
||||
showTIMAS(False, Firma)
|
||||
Else
|
||||
showTIMAS(False)
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user