diff --git a/UID/Mitarbeiter/usrCntlMitarbeiter.Designer.vb b/UID/Mitarbeiter/usrCntlMitarbeiter.Designer.vb index 7d0a346..51e10a9 100644 --- a/UID/Mitarbeiter/usrCntlMitarbeiter.Designer.vb +++ b/UID/Mitarbeiter/usrCntlMitarbeiter.Designer.vb @@ -22,6 +22,7 @@ Partial Class usrCntlMitarbeiter 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() Me.Button6 = New System.Windows.Forms.Button() Me.Panel2 = New System.Windows.Forms.Panel() Me.btnUEZ_ausz = New System.Windows.Forms.Button() @@ -31,25 +32,26 @@ Partial Class usrCntlMitarbeiter Me.Button3 = New System.Windows.Forms.Button() Me.TabControl1 = New System.Windows.Forms.TabControl() Me.TabPage1 = New System.Windows.Forms.TabPage() - Me.c = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.c = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage2 = New System.Windows.Forms.TabPage() - Me.dgvATILLA = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvATILLA = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage3 = New System.Windows.Forms.TabPage() - Me.dgvIMEX = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvIMEX = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage4 = New System.Windows.Forms.TabPage() - Me.dgvUNISPED = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvUNISPED = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage5 = New System.Windows.Forms.TabPage() - Me.dgvAMBAR = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvAMBAR = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage6 = New System.Windows.Forms.TabPage() - Me.dgvFRONTOFFICE = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvFRONTOFFICE = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage7 = New System.Windows.Forms.TabPage() - Me.dgvVERIMEX = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvVERIMEX = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage9 = New System.Windows.Forms.TabPage() - Me.dgvDURMAZ = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvDURMAZ = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabPage8 = New System.Windows.Forms.TabPage() + Me.cbxTimasAktiv = New System.Windows.Forms.CheckBox() Me.lblTimasMandant = New System.Windows.Forms.Label() Me.cbxClientTimas = New System.Windows.Forms.ComboBox() - Me.dgvTimasNew = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + 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() @@ -60,10 +62,10 @@ Partial Class usrCntlMitarbeiter Me.Button2 = New System.Windows.Forms.Button() Me.Label1 = New System.Windows.Forms.Label() Me.Panel3 = New System.Windows.Forms.Panel() - Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.UserKopierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.BerechtigungenSetzenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip() + Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.Panel2.SuspendLayout() Me.TabControl1.SuspendLayout() Me.TabPage1.SuspendLayout() @@ -354,6 +356,7 @@ Partial Class usrCntlMitarbeiter ' 'TabPage8 ' + Me.TabPage8.Controls.Add(Me.cbxTimasAktiv) Me.TabPage8.Controls.Add(Me.lblTimasMandant) Me.TabPage8.Controls.Add(Me.cbxClientTimas) Me.TabPage8.Controls.Add(Me.dgvTimasNew) @@ -364,6 +367,19 @@ Partial Class usrCntlMitarbeiter Me.TabPage8.Text = "Zeiterfassung" Me.TabPage8.UseVisualStyleBackColor = True ' + 'cbxTimasAktiv + ' + Me.cbxTimasAktiv.AutoSize = True + Me.cbxTimasAktiv.Checked = True + Me.cbxTimasAktiv.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbxTimasAktiv.Location = New System.Drawing.Point(804, 7) + Me.cbxTimasAktiv.Name = "cbxTimasAktiv" + Me.cbxTimasAktiv.Size = New System.Drawing.Size(57, 17) + Me.cbxTimasAktiv.TabIndex = 54 + Me.cbxTimasAktiv.Text = "AKTIV" + Me.cbxTimasAktiv.ThreeState = True + Me.cbxTimasAktiv.UseVisualStyleBackColor = True + ' 'lblTimasMandant ' Me.lblTimasMandant.AutoSize = True @@ -426,7 +442,7 @@ Partial Class usrCntlMitarbeiter Me.cbxDakosy.AutoSize = True Me.cbxDakosy.Checked = True Me.cbxDakosy.CheckState = System.Windows.Forms.CheckState.Indeterminate - Me.cbxDakosy.Location = New System.Drawing.Point(666, 11) + Me.cbxDakosy.Location = New System.Drawing.Point(666, 13) Me.cbxDakosy.Name = "cbxDakosy" Me.cbxDakosy.Size = New System.Drawing.Size(62, 17) Me.cbxDakosy.TabIndex = 52 @@ -604,4 +620,5 @@ Partial Class usrCntlMitarbeiter Friend WithEvents lblAktiv As Label Friend WithEvents lblTimasMandant As Label Friend WithEvents cbxClientTimas As ComboBox + Friend WithEvents cbxTimasAktiv As CheckBox End Class diff --git a/UID/Mitarbeiter/usrCntlMitarbeiter.vb b/UID/Mitarbeiter/usrCntlMitarbeiter.vb index babb863..0c0ee5d 100644 --- a/UID/Mitarbeiter/usrCntlMitarbeiter.vb +++ b/UID/Mitarbeiter/usrCntlMitarbeiter.vb @@ -35,7 +35,7 @@ Public Class usrCntlMitarbeiter txtSuche.Focus() End Sub - Public Sub Tabelle_anzeigen() + Public Sub Tabelle_anzeigen(Optional refreshTimasDGV As Boolean = False) btnUEZ_ausz.Visible = False lblAktiv.Text = "" @@ -66,20 +66,21 @@ Public Class usrCntlMitarbeiter cbxClientTimas.Visible = True cbxClientTimas.Items.Clear() - cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) + cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "")) 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("FRONTOFFICE", "FRONTOFFICE")) 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 360", "VERAG - MDM")) 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.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG CL LIMITED", "VERAG CUSTOMS LOGISTICS Ltd")) cbxClientTimas.SelectedIndex = 0 - showTIMAS(False) + + If refreshTimasDGV Then getTimasPreData() End If End If @@ -242,23 +243,30 @@ Public Class usrCntlMitarbeiter - Public Sub showTIMAS(refresh As Boolean, Optional TimasMandant As String = "") + Public Sub showTIMAS(refresh As Boolean, Status As String, Optional TimasMandant As String = "") locZeilen = -1 If Not Grid_aktiv Then Exit Sub - If dt.Columns.Count > 0 And Not refresh AndAlso TimasMandant <> "" Then + Dim SQLWhere = "" + Select Case Status + Case "AKTIV" + SQLWhere = " AND [Ausweis-Nr] <> 0 and Vorname <> '' and Nachname <> ''" + Case "INAKTIV" + SQLWhere = " AND [Ausweis-Nr] = 0 and Vorname <> '' and Nachname <> ''" + + End Select + + + If dt.Columns.Count > 0 And Not refresh Then + + SQLWhere &= " AND Info like '%" & TimasMandant & "%'" 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 & "%'" + dt.DefaultView.RowFilter = "Vorname like '%" & txtSuche.Text & "%' or Nachname like '%" & txtSuche.Text & "%' or 'Personal-Nr (Lohn)' like '%" & txtSuche.Text & "%' or Info like '%" & txtSuche.Text & "%'" & SQLWhere Else - dt.DefaultView.RowFilter = Nothing + dt.DefaultView.RowFilter = " 1 = 1" & SQLWhere End If - If TimasMandant <> "" Then - dt.DefaultView.RowFilter = "Info like '%" & TimasMandant & "%'" - End If - - dgvTimasNew.DataSource = dt Else @@ -266,7 +274,7 @@ Public Class usrCntlMitarbeiter 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 + dt_onlyActive = dt.Select(" 1 = 1 " & SQLWhere).CopyToDataTable dgvTimasNew.DataSource = dt_onlyActive lblAktiv.Text = "AKTIV: " & dt_onlyActive.Rows.Count & "/" & dt.Rows.Count ' MsgBox("ALLE:" & dt.Rows.Count & vbNewLine & "AKIVE:" & dt_onlyActive.Rows.Count) @@ -524,7 +532,7 @@ Public Class usrCntlMitarbeiter End Sub Private Sub txtSuche_TextChanged(sender As Object, e As EventArgs) Handles txtSuche.TextChanged - Tabelle_anzeigen() + Tabelle_anzeigen(True) End Sub Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckStateChanged @@ -781,6 +789,14 @@ Public Class usrCntlMitarbeiter ContextMenuStrip1.Hide() Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem) + Dim Mandant As String = "" + + If Not cbxClientTimas.SelectedItem Is Nothing Then + Mandant = cbxClientTimas.SelectedItem.value + End If + + + If item IsNot Nothing Then If item.Name = "uploadPuctureToWiki" Then uploadToWiki() @@ -788,34 +804,35 @@ Public Class usrCntlMitarbeiter ElseIf item.Name = "copyToClipboard" Then copyToClipboardWIKI() ElseIf item.Name = "checkue" Then - checkUeberstunden(False, Now().Month, Now().Year) + checkUeberstunden(False, Now().Month, Now().Year, Mandant) ElseIf item.Name = "ue_stand_yesterday" Then - gettimesaldo(False) + gettimesaldo(False, Mandant) ElseIf item.Name = "ue_stand" Then Dim f As New frmDatumsabfrage("Zeitsaldo-Stichtag ", True) + f.Label1.Text = "GS-Saldo Ende Vortag" f.ShowDialog() + If f.DialogResult = DialogResult.OK Then - gettimesaldo(True, CDate(f.dtp_date.Value)) + gettimesaldo(True, Mandant, CDate(f.dtp_date.Value)) End If 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 + 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, Mandant) + End If - checkUeberstunden(True, CDate(f.dtp_date.Value).Month, CDate(f.dtp_date.Value).Year) - End If - - Else - MsgBox("Funktion nicht implementiert!") + Else + MsgBox("Funktion nicht implementiert!") End If - + Me.Cursor = Cursors.Default End If End Sub @@ -861,7 +878,7 @@ Public Class usrCntlMitarbeiter ContextMenuStrip2.Items.Add(checkue) End If - If Not ContextMenuStrip2.Items.ContainsKey("ue_stand_yesterday") Then + If Not ContextMenuStrip2.Items.ContainsKey("ue_stand_yesterday") AndAlso cbxTimasAktiv.CheckState <> CheckState.Unchecked 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) @@ -1034,7 +1051,7 @@ Public Class usrCntlMitarbeiter 'frmMitarbDetails.Show(Me) If frmMitarbDetails.ShowDialog() = DialogResult.OK Then sender.RELOAD() - showTIMAS(True) + showTIMAS(True, "") dgvTimasNew.Refresh() End If @@ -1047,12 +1064,12 @@ Public Class usrCntlMitarbeiter Tabelle_anzeigen() End Sub - Private Sub checkUeberstunden(showAll As Boolean, Month As Integer, year As Integer) + Private Sub checkUeberstunden(showAll As Boolean, Month As Integer, year As Integer, TimasMandant As String) If dgvTimasNew.Rows.Count = 0 Then Exit Sub Try - + Me.Cursor = Cursors.WaitCursor Dim tag As New cFeiertage(year) Dim dt_Accounts As New DataTable @@ -1101,8 +1118,16 @@ Public Class usrCntlMitarbeiter Dim Info As String = "" If showAll Then - dt_result_temp = dt_result.Select("multiplier = '+'", "date").CopyToDataTable - Info = "Überstunden aus TIMAS von " & dateStart.ToShortDateString & " bis " & dateEnd.ToShortDateString + + Dim rows = dt_result.Select("multiplier = '+'", "date") + + If rows.Length > 0 Then + dt_result_temp = rows.CopyToDataTable() + Else + dt_result_temp = dt_result.Clone() 'leere Tabelle mit denselben Spalten + End If + + Info = "Überstunden aus TIMAS von " & dateStart.ToShortDateString & " bis " & dateEnd.ToShortDateString & IIf(TimasMandant = "", "", " Timas-Mandant: " & TimasMandant) Dim sqlWhere As String = String.Join(",", dt_Employee.AsEnumerable().Where(Function(r) Not r.IsNull("employeeId")).Select(Function(r) r("employeeId").ToString())) @@ -1116,8 +1141,16 @@ Public Class usrCntlMitarbeiter 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); Ausweis-Nr = 0 -> Mitarbeiter archiviert" + + Dim rows = dt_result.Select("multiplier = '-'", "date") + + If rows.Length > 0 Then + dt_result_temp = rows.CopyToDataTable() + Else + dt_result_temp = dt_result.Clone() 'leere Tabelle mit denselben Spalten + End If + + Info = "falsch ausbezahlte Überstunden (ÜS sind negativ -> Erhöhen den Saldo) " & IIf(TimasMandant = "", "", " Timas-Mandant: " & TimasMandant) End If If dt_result_temp.Rows.Count = 0 Then @@ -1165,6 +1198,10 @@ Public Class usrCntlMitarbeiter + Else + MsgBox("keine Daten vorhanden") + + End If @@ -1177,7 +1214,9 @@ Public Class usrCntlMitarbeiter End Sub - Private Sub gettimesaldo(stichtag As Boolean, Optional st_datum As Date = Nothing) + Private Sub gettimesaldo(stichtag As Boolean, TimasMandant As String, Optional st_datum As Date = Nothing) + + Me.Cursor = Cursors.WaitCursor Dim timas As New cTimasAPI("timas") Dim isServiceRunning As Boolean = True @@ -1261,8 +1300,8 @@ Public Class usrCntlMitarbeiter If Not isServiceRunning Then - MsgBox("Abfragefehler am Timas-Server!") - Exit Sub + MsgBox("Abfragefehler (Timeout) am Timas-Server!") + Continue For End If r.Item("Saldo-raw") = saldo @@ -1297,22 +1336,58 @@ Public Class usrCntlMitarbeiter Next If dt_Employee.Rows.Count > 0 Then - VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_Employee,,, "Stundensaldo: " & Now.AddDays(-1).ToShortDateString,,,,, True) + VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_Employee,,, IIf(TimasMandant <> "", "", "Mandant: ") & TimasMandant & " Stundensaldo zum " & IIf(stichtag, st_datum.ToShortDateString, Now.AddDays(-1).ToShortDateString),,,,, True) End If End Sub - Private Sub cbxClientTimas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxClientTimas.SelectedIndexChanged + Private Sub cbxClientTimas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxClientTimas.SelectedIndexChanged, cbxTimasAktiv.CheckStateChanged + + + getTimasPreData() + + End Sub + + Private Sub dgvTimasNew_Sorted(sender As Object, e As EventArgs) Handles dgvTimasNew.Sorted + + + + For i As Integer = 0 To dgvTimasNew.Rows.Count - 1 + + dgvTimasNew.Rows(i).DefaultCellStyle.BackColor = If(dgvTimasNew.Rows(i).Cells("Ausweis-Nr").Value = "0", Color.IndianRed, Color.LightBlue) + + + Next + End Sub + + Private Sub getTimasPreData() + + Dim Firma = "" + + If cbxClientTimas.SelectedItem Is Nothing Then Exit Sub + + Firma = cbxClientTimas.SelectedItem.Value + + Dim STATUS As String = "" + + Select Case cbxTimasAktiv.CheckState + + Case CheckState.Checked + STATUS = "AKTIV" + + Case CheckState.Unchecked + STATUS = "INAKTIV" + Case Else + STATUS = "" + End Select - Dim Firma = cbxClientTimas.SelectedItem.Text If Firma <> "" Then - showTIMAS(False, Firma) + showTIMAS(False, STATUS, Firma) Else - showTIMAS(False) + showTIMAS(False, STATUS) End If - End Sub End Class diff --git a/UID/My Project/AssemblyInfo.vb b/UID/My Project/AssemblyInfo.vb index bfc3c58..ae0d9ef 100644 --- a/UID/My Project/AssemblyInfo.vb +++ b/UID/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index 5961e92..8ef7468 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -6407,8 +6407,8 @@ weiter: If txtUTADate.Text = "" AndAlso txtUTAYear.Text <> "" Then datumString = txtUTAYear.Text SQLWhere = "And YEAR(U.Rechnungsdatum) = '" & datumString & "'" - von = New Date("01.01." & txtUTAYear.Text) - bis = New Date("31.12." & txtUTAYear.Text) + von = New Date(txtUTAYear.Text, 1, 1) + bis = New Date(txtUTAYear.Text, 12, 31) ElseIf txtUTADate.Text <> "" AndAlso IsDate(txtUTADate.Text) Then datumString = txtUTADate.Text SQLWhere = "And CAST(U.Rechnungsdatum AS date) = '" & datumString & "'"