Imports System.DirectoryServices Imports System.Globalization Imports System.IO Imports System.Net Imports System.Net.Http Imports System.Net.WebRequestMethods Imports System.Security.Policy Imports System.Text Imports System.Text.RegularExpressions Imports System.Windows Imports System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel Imports DAKOSY_Worker.DEERRE Imports GrapeCity.ActiveReports.ReportsCore.Tools Imports itextsharp.text.pdf.codec.wmf Imports Microsoft.VisualBasic.ApplicationServices Imports Newtonsoft.Json Imports VERAG_PROG_ALLGEMEIN Public Class frmMitarbDetails Private UID As New cMitarbeiter Private berechtigungen As New List(Of cBerechtigungen) Public mid As Integer = -1 Public isUpdate As Boolean = False Public mitarbeiter As New VERAG_PROG_ALLGEMEIN.cMitarbeiter Private usrBerechtigung As New List(Of cUserBerechtigungen) Private usrBerechtigungNEU As New List(Of cUserBerechtigungen) Dim ZOLLDATENBEARB = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim FirmaTmp = "" Dim timas As cTimasAPI Dim dtTimas As New DataTable Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Sub New(Firma) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() Me.FirmaTmp = Firma btnADladen.Visible = True ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Sub New(mitarbeiter As cMitarbeiter) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Private Sub frmMitarbDetails_Load(sender As Object, e As EventArgs) Handles MyBase.Load cboFirmaFMZOLL.fillWithSQL("SELECT[Firma_ID],[Firma_Bez] FROM [tblFirma] ", True, "FMZOLL", True) ' cboKasse.fillWithSQL("SELECT [Standard_RKSV_KasseId],[Name] FROM [Personal] ", True, "FMZOLL", True) cboKasse.fillWithSQL("SELECT [rksv_id],[rksv_bez] FROM [tblRKSV_Kassen] ", True, "FMZOLL", True) cboPersonal.fillWithSQL("SELECT ID, Name FROM Personal WHERE [Status]<>'L' ORDER BY Name ", False, "FMZOLL", True) cboSpedbuch.fillWithSQL("SELECT ID, Name FROM Personal WHERE [Status]<>'L' ORDER BY Name ", False, "FMZOLL", True) MyComboBox2.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", False, "FMZOLL", True) MyComboBox3.fillWithSQL("SELECT [PreislistenNr],[PreislistenBez] FROM [tblPreislisten] ORDER BY PreislistenBez", False, "FMZOLL", True) cboDP.fillWithSQL("SELECT [dpset_niederlassung] FROM [tblDienstSettings] ORDER BY dpset_niederlassung", False, "ADMIN", True) MyListBox1.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [VERAG].[dbo].[tblFirma]", False, "FMZOLL") MyListBox1.Items.Insert(0, New VERAG_PROG_ALLGEMEIN.MyListItem("Alle", "A")) cboDPFirma.Items.Clear() cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "ALLE")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG", "VERAG")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATILLA", "ATILLA")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISPED")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBAR", "AMBAR")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FRONTOFFICE")) cboDPFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERIMEX", "VERIMEX")) cboDPFirma2.Items.Clear() cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "ALLE")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG", "VERAG")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATILLA", "ATILLA")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISPED")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBAR", "AMBAR")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FRONTOFFICE")) cboDPFirma2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERIMEX", "VERIMEX")) cboALIASDomain.Items.Clear() cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAGOST", "VERAGOST")) cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX")) cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG-SBG", "VERAG-SBG")) cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAGNEUHAUS", "VERAGNEUHAUS")) cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG-NCTS (ATILLA)", "VERAG-NCTS")) cboALIASDomain.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISU.AT")) cboALIASDomain2.Items.Clear() cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAGOST", "VERAGOST")) cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX")) cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG-SBG", "VERAG-SBG")) cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAGNEUHAUS", "VERAGNEUHAUS")) cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG-NCTS (ATILLA)", "VERAG-NCTS")) cboALIASDomain2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISU.AT")) cboProgSprache.Items.Clear() cboProgSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DEUTSCH", "DE")) cboProgSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TÜRKISCH", "TR")) cboProgSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ENGLISCH", "EN")) cboFirma.Items.Clear() cboFirma.Items.Add("VERAG") cboFirma.Items.Add("ATILLA") cboFirma.Items.Add("IMEX") cboFirma.Items.Add("UNISPED") cboFirma.Items.Add("AMBAR") cboFirma.Items.Add("FRONTOFFICE") cboFirma.Items.Add("VERIMEX") cboFirma.Items.Add("ALLE") cboFirmaHaupt.Items.Clear() cboFirmaHaupt.Items.Add("VERAG") cboFirmaHaupt.Items.Add("ATILLA") cboFirmaHaupt.Items.Add("IMEX") cboFirmaHaupt.Items.Add("UNISPED") cboFirmaHaupt.Items.Add("AMBAR") cboFirmaHaupt.Items.Add("FRONTOFFICE") cboFirmaHaupt.Items.Add("VERIMEX") cboFaktGrp.Items.Clear() cboFaktGrp.fillWithSQL("SELECT [Code],[Bezeichnung] FROM tblFakturierungsgruppe", False, "ADMIN", False) cboFaktGrp.changeItem("") ZOLLDATENBEARB = False txtPwd.Visible = False berechtigungen = UID.getBerechtigungen() cbxEinsteigsDat.Checked = False cbxGebDat.Checked = False If Not IsNothing(berechtigungen) Then For Each d As cBerechtigungen In berechtigungen If d.prog_codename = "ADMIN" Then cboAdminBer.Items.Add(d.ber_name) If d.prog_codename = "DISPO" Then cboDispoBer.Items.Add(d.ber_name) If d.prog_codename = "UID" Then cboUidBer.Items.Add(d.ber_name) If d.prog_codename = "PARKZEIT" Then cboParkzeitBer.Items.Add(d.ber_name) If d.prog_codename = "ZOLL" Then cboZollBer.Items.Add(d.ber_name) If d.prog_codename = "SDL" Then cboSdlBer.Items.Add(d.ber_name) If d.prog_codename = "AVISO" Then cboAvisoBer.Items.Add(d.ber_name) Next cboAdminBer.SelectedIndex = 0 End If ' cboNiederlassung.SelectedIndex = 0 If FirmaTmp <> "" Then cboFirma.Text = FirmaTmp End If cboAbteilung.Items.Clear() cboAbteilung.fillWithSQL("SELECT [abt_kuerzel],[abt_bezeichnung] FROM tblAbteilungen", False, "ADMIN", True) cboNiederlassung.Items.Clear() cboNiederlassung.fillWithSQL("SELECT [nl_kuerzel],[nl_bezeichnung] FROM tblNiederlassungen", False, "ADMIN", True) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Zollabteilung", "ZOLL")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("quick-stop", "QS")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Buchhaltung", "BH")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EDV", "EDV")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Fiskal", "FISK")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Geschäftsführung", "GF")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Lager", "LAGER")) ' cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MDM", "MDM")) 'cboAbteilung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Verrechnung", "VRR")) ' cboNiederlassung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) ' cboNiederlassung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Suben", "SUB")) ' cboNiederlassung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Salzburg", "SBG")) ' cboNiederlassung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Waidhaus", "WAI")) ' cboNiederlassung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Nickelsdorf", "NKD")) txtGebDat.Format = DateTimePickerFormat.Custom txtGebDat.CustomFormat = "dd.MM.yyyy" datGekuendigtAm.Format = DateTimePickerFormat.Custom datGekuendigtAm.CustomFormat = "dd.MM.yyyy" datEinstiegsdatum.Format = DateTimePickerFormat.Custom datEinstiegsdatum.CustomFormat = "dd.MM.yyyy" If mid >= 0 Then 'mid = frmMitarbeiter.mid mitarbeiter = UID.getMitarbeiterById(mid) usrBerechtigung = UID.getUserBerechtigungen(mid) ' usrBerechtigungNEU = UID.getUserBerechtigungenNEU(mid) If Not IsNothing(mitarbeiter) Then initMitarbeiter() Else MsgBox("Fehler beim Laden der Daten!") End If Else rbtnGeschlechtM.Checked = True ' btnSave.Visible = False TabControl2.TabPages.Remove(TabPage3) txtPwd.Text = "0000" End If If False Then For Each ber As cUserBerechtigungen In usrBerechtigungNEU If ber.bepr_programm = "ADMIN" Then cbxADMIN.Checked = True ': cboAdminBer.Text = ber.ber_name If ber.bepr_programm = "SDL" Then cbxSDL.Checked = True ': cboSdlBer.Text = ber.ber_name If ber.bepr_programm = "AVISO" Then cbxAVISO.Checked = True ': cboAvisoBer.Text = ber.ber_name Next End If For Each ber As cUserBerechtigungen In usrBerechtigung If ber.bepr_programm = "ADMIN" Then cbxADMIN.Checked = True : cboAdminBer.Text = ber.ber_name If ber.bepr_programm = "DISPO" Then cbxDISPO.Checked = True : cboDispoBer.Text = ber.ber_name If ber.bepr_programm = "UID" Then cbxUID.Checked = True : cboUidBer.Text = ber.ber_name If ber.bepr_programm = "PARKZEIT" Then cbxPARKZEIT.Checked = True : cboParkzeitBer.Text = ber.ber_name If ber.bepr_programm = "ZOLL" Then cbxZOLL.Checked = True : cboZollBer.Text = ber.ber_name If ber.bepr_programm = "SDL" Then cbxSDL.Checked = True : cboSdlBer.Text = ber.ber_name If ber.bepr_programm = "AVISO" Then cbxAVISO.Checked = True : cboAvisoBer.Text = ber.ber_name Next End Sub Private Sub initMitarbeiter(Optional _isUpdate As Boolean = True) isUpdate = _isUpdate 'isUpdate = True ' mit_id.Text = mitarbeiter.mit_id Label48.Text = mitarbeiter.mit_id txtUsername.Text = mitarbeiter.mit_username txtAbweichenderAnzeigename.Text = mitarbeiter.mit_abweichenderAnzeigename txtPwd.Text = mitarbeiter.mit_pwd If mitarbeiter.mit_geschlecht = "m" Then rbtnGeschlechtM.Checked = True If mitarbeiter.mit_geschlecht = "w" Then rbtnGeschlechtW.Checked = True txtTitel.Text = mitarbeiter.mit_affix txtVname.Text = mitarbeiter.mit_vname txtNname.Text = mitarbeiter.mit_nname If mitarbeiter.mit_gebdat = "" Then cbxGebDat.Checked = False Else cbxGebDat.Checked = True : txtGebDat.Text = mitarbeiter.mit_gebdat End If txtStrasse.Text = mitarbeiter.mit_strasse txtHausnummer.Text = mitarbeiter.mit_hausnr txtLand.Text = mitarbeiter.mit_land txtPlz.Text = mitarbeiter.mit_plz txtOrt.Text = mitarbeiter.mit_ort cboNiederlassung.changeItem(mitarbeiter.mit_niederlassung) cboFaktGrp.changeItem(mitarbeiter.mit_fakturierungsgruppe) cboAbteilung.changeItem(mitarbeiter.mit_abteilung) cboPosition.Text = mitarbeiter.mit_position txtDurchwahl.Text = mitarbeiter.mit_durchwahl txtTelNr.Text = mitarbeiter.mit_telefonnr txtEmail.Text = mitarbeiter.mit_email txtMobiltel.Text = mitarbeiter.mit_mobiltel cbxAnrufen.Checked = mitarbeiter.mit_allowAnruf txtInfo.Text = mitarbeiter.mit_info txtATGRNAccessCode_AT51FP7.Text = mitarbeiter.mit_ATGRNAccessCode_AT51FP7 txtATGRNAccessCode_AT52VA6.Text = mitarbeiter.mit_ATGRNAccessCode_AT52VA6 txtDakosySB.Text = mitarbeiter.mit_DAKOSY_SB txtDyFullName.Text = If(mitarbeiter.mit_DAKOSY_SBFull, "") txtTelotecSB.Text = mitarbeiter.mit_TELOTEC_SB txtCSUser.Text = mitarbeiter.mit_CSuser txtCSPW.Text = mitarbeiter.mit_CSpwd txtPersonalNr.Text = mitarbeiter.mit_PersonalNr txtTelNr.Text = mitarbeiter.mit_telefonnr cboALIASDomain.changeItem(mitarbeiter.mit_AliasAD_Domain) txtALIASUser.Text = mitarbeiter.mit_AliasAD_Username cboALIASDomain2.changeItem(mitarbeiter.mit_AliasAD_Domain2) txtALIASUser2.Text = mitarbeiter.mit_AliasAD_Username2 If mitarbeiter.mit_firma = "ALL" Then cboFirma.Text = "ALLE" cboFirmaHaupt.Text = mitarbeiter.mit_FirmaHaupt Else cboFirma.Text = mitarbeiter.mit_firma End If cbxChatBenutzer.Checked = mitarbeiter.mit_ChatBenutzer cboFirmaFMZOLL.changeItem(If(mitarbeiter.mit_firmaFMZoll, "")) cboTeam.changeItem(If(mitarbeiter.mit_teamId, "")) cboKasse.changeItem("") If mitarbeiter.mit_FMZollPersID IsNot Nothing Then cboKasse.changeItem(SQL.getValueTxtBySql("SELECT [Standard_RKSV_KasseId] FROM [Personal] WHERE ID='" & mitarbeiter.mit_FMZollPersID & "'", "FMZOLL")) End If If mitarbeiter.mit_FirmenDatenAnzeige IsNot Nothing AndAlso mitarbeiter.mit_FirmenDatenAnzeige <> "" Then For Each f In mitarbeiter.mit_FirmenDatenAnzeige.ToString.Split(",") 'Dim i = 0 For i = 0 To MyListBox1.Items.Count - 1 ' If DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value = f Then ' MsgBox(MyListBox1.Items.IndexOf(i)) 'End If If DirectCast(MyListBox1.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value.ToString = f.ToString Then MyListBox1.SetSelected(i, True) End If Next Next End If If mitarbeiter.mit_einstiegsdatum = "" Then cbxEinsteigsDat.Checked = False Else cbxEinsteigsDat.Checked = True : datEinstiegsdatum.Text = mitarbeiter.mit_einstiegsdatum End If If mitarbeiter.mit_gekuendigt Then cbxGekuendigt.Checked = True If mitarbeiter.mit_kuendigungsdatum <> "" Then datGekuendigtAm.Text = mitarbeiter.mit_kuendigungsdatum End If Else cbxGekuendigt.Checked = False End If If mitarbeiter.mit_FMZollPersID > 0 Then cboPersonal._value = mitarbeiter.mit_FMZollPersID End If If mitarbeiter.mit_DpUserStandardDP IsNot Nothing Then cboDP.changeItem(mitarbeiter.mit_DpUserStandardDP) If mitarbeiter.mit_DpUserStandardFirma IsNot Nothing Then cboDPFirma.changeItem(mitarbeiter.mit_DpUserStandardFirma) If mitarbeiter.mit_DpUserStandardFirma2 IsNot Nothing Then cboDPFirma2.changeItem(mitarbeiter.mit_DpUserStandardFirma2) If mitarbeiter.mit_sprache IsNot Nothing Then cboProgSprache.changeItem(mitarbeiter.mit_sprache) cbxSpedBuch.Checked = mitarbeiter.mit_FMZollPersIDKasseIsnotSpedBuch If mitarbeiter.mit_FMZollPersIDSpedBuch > 0 Then cboSpedbuch._value = mitarbeiter.mit_FMZollPersIDSpedBuch End If If mitarbeiter.mit_standartFiliale > 0 Then MyComboBox2._value = mitarbeiter.mit_standartFiliale End If If mitarbeiter.mit_standardPreisliste > 0 Then MyComboBox3._value = mitarbeiter.mit_standardPreisliste End If cbxTestaccount.Checked = If(mitarbeiter.mit_TESTonly, False) initFoto() ' picFoto.ImageLocation = mitarbeiter.mit_foto End Sub Sub initFoto() If mitarbeiter.mit_foto_DocId IsNot Nothing Then Try picFoto.BackgroundImage = Image.FromFile(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(mitarbeiter.mit_foto_DocId)) Catch ex As Exception picFoto.BackgroundImage = My.Resources.personGray_m End Try ElseIf mitarbeiter.mit_geschlecht = "w" Then picFoto.BackgroundImage = My.Resources.personGray_w Else picFoto.BackgroundImage = My.Resources.personGray_m End If End Sub Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Me.Close() End Sub Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click Dim newMid As Integer = 0 If txtVname.Text = "" And txtNname.Text = "" Then MsgBox("Bitte geben Sie einen Namen ein!") : Exit Sub getMitarbeiter() If isUpdate Then mitarbeiter.mit_id = mid If UID.updateMitarbeiter(mitarbeiter) Then saveBerechtigungen(newMid) : Me.Close() Else If UID.insertMitarbeiter(mitarbeiter, newMid) Then saveBerechtigungen(newMid) : Me.Close() End If End Sub Private Sub saveBerechtigungen(newMitId As Integer) If newMitId > 0 Then mid = newMitId End If Dim ber_admin As String = "" Dim ber_dispo As String = "" Dim ber_uid As String = "" Dim ber_parkzeit As String = "" Dim ber_zoll As String = "" Dim ber_sdl As String = "" Dim ber_aviso As String = "" For Each ber As cUserBerechtigungen In usrBerechtigung If ber.bepr_programm = "ADMIN" Then ber_admin = ber.ber_name If ber.bepr_programm = "DISPO" Then ber_dispo = ber.ber_name If ber.bepr_programm = "UID" Then ber_uid = ber.ber_name If ber.bepr_programm = "PARKZEIT" Then ber_parkzeit = ber.ber_name If ber.bepr_programm = "ZOLL" Then ber_zoll = ber.ber_name If ber.bepr_programm = "SDL" Then ber_sdl = ber.ber_name If ber.bepr_programm = "AVISO" Then ber_aviso = ber.ber_name Next If cbxADMIN.Checked Then UID.insertUpdateBerechtigungProg(mid, Nothing, "ADMIN", True) Else UID.deleteBerechtigungProg(mid, "ADMIN") End If If cbxAVISO.Checked Then UID.insertUpdateBerechtigungProg(mid, Nothing, "AVISO", True) Else UID.deleteBerechtigungProg(mid, "AVISO") End If If cbxDISPO.Checked Then UID.insertUpdateBerechtigungProg(mid, Nothing, "DISPO", True) Else UID.deleteBerechtigungProg(mid, "DISPO") End If If cbxSDL.Checked Then UID.insertUpdateBerechtigungProg(mid, Nothing, "SDL", True) Else UID.deleteBerechtigungProg(mid, "SDL") End If Dim akt_ber_admin As String = "" Dim akt_ber_dispo As String = "" Dim akt_ber_uid As String = "" Dim akt_ber_parkzeit As String = "" Dim akt_ber_zoll As String = "" Dim akt_ber_sdl As String = "" Dim akt_ber_aviso As String = "" If cbxADMIN.Checked Then akt_ber_admin = cboAdminBer.Text If cbxDISPO.Checked Then akt_ber_dispo = cboDispoBer.Text If cbxUID.Checked Then akt_ber_uid = cboUidBer.Text If cbxPARKZEIT.Checked Then akt_ber_parkzeit = cboParkzeitBer.Text If cbxZOLL.Checked Then akt_ber_zoll = cboZollBer.Text If cbxSDL.Checked Then akt_ber_sdl = "" If cbxAVISO.Checked Then akt_ber_aviso = cboAvisoBer.Text If Not ber_admin = akt_ber_admin Then 'WEnn sich die Berechtigung geändert hat Dim berid As Integer = getBerId("ADMIN", cboAdminBer.Text) 'ID anhand der ausgewählten Berechtigung holen If akt_ber_admin = "" Then : UID.deleteBerechtigungProg(mid, "ADMIN") ' wenn keine gesetzt ist -> Berechtigung löschen ElseIf ber_admin = "" Then : UID.insertBerechtigungProg(mid, berid, "ADMIN", True) ' wenn vorher keine gesetzt war -> insert Else : UID.updateBerechtigungProg(mid, berid, "ADMIN") ' bei Änderung -> update End If End If 'If Not ber_dispo = akt_ber_dispo Then ' Dim berid As Integer = getBerId("DISPO", cboDispoBer.Text) ' If akt_ber_dispo = "" Then : UID.deleteBerechtigungProg(mid, "DISPO") ' ElseIf ber_dispo = "" Then : UID.insertBerechtigungProg(mid, berid, "DISPO", True) ' Else : UID.updateBerechtigungProg(mid, berid, "DISPO") ' End If 'End If If Not ber_uid = akt_ber_uid Then Dim berid As Integer = getBerId("UID", cboUidBer.Text) If akt_ber_uid = "" Then : UID.deleteBerechtigungProg(mid, "UID") ElseIf ber_uid = "" Then : UID.insertBerechtigungProg(mid, berid, "UID", True) Else : UID.updateBerechtigungProg(mid, berid, "UID") End If End If If Not ber_parkzeit = akt_ber_parkzeit Then Dim berid As Integer = getBerId("PARKZEIT", cboParkzeitBer.Text) If akt_ber_parkzeit = "" Then : UID.deleteBerechtigungProg(mid, "PARKZEIT") ElseIf ber_parkzeit = "" Then : UID.insertBerechtigungProg(mid, berid, "PARKZEIT", True) Else : UID.updateBerechtigungProg(mid, berid, "PARKZEIT") End If End If If Not ber_zoll = akt_ber_zoll Then Dim berid As Integer = getBerId("ZOLL", cboZollBer.Text) If akt_ber_zoll = "" Then : UID.deleteBerechtigungProg(mid, "ZOLL") ElseIf ber_zoll = "" Then : UID.insertBerechtigungProg(mid, berid, "ZOLL", True) Else : UID.updateBerechtigungProg(mid, berid, "ZOLL") End If End If ' If Not ber_sdl = akt_ber_sdl Then 'Dim berid As Integer = getBerId("SDL", cboSdlBer.Text) ' If akt_ber_sdl = "" Then : UID.deleteBerechtigungProg(mid, "SDL") ' ElseIf ber_sdl = "" Then : UID.insertBerechtigungProg(mid, berid, "SDL", True) ' Else : UID.updateBerechtigungProg(mid, berid, "SDL") ' End If ' End If ' If Not ber_aviso = akt_ber_aviso Then 'Dim berid As Integer = getBerId("AVISO", cboAvisoBer.Text) ' If akt_ber_aviso = "" Then 'UID.deleteBerechtigungProg(mid, "AVISO") 'ElseIf ber_aviso = "" Then : UID.insertBerechtigungProg(mid, berid, "AVISO", True) ' Else : UID.updateBerechtigungProg(mid, berid, "AVISO") ' End If ' End If End Sub Private Function getBerId(ByVal codename As String, ByVal name As String) As String For Each ber As cBerechtigungen In berechtigungen If ber.prog_codename = codename And ber.ber_name = name Then Return ber.ber_id Next Return "-1" End Function Private Sub getMitarbeiter() mitarbeiter.mit_username = txtUsername.Text mitarbeiter.mit_abweichenderAnzeigename = txtAbweichenderAnzeigename.Text mitarbeiter.mit_pwd = txtPwd.Text mitarbeiter.mit_affix = txtTitel.Text If rbtnGeschlechtM.Checked Then mitarbeiter.mit_geschlecht = "m" If rbtnGeschlechtW.Checked Then mitarbeiter.mit_geschlecht = "w" mitarbeiter.mit_vname = txtVname.Text mitarbeiter.mit_nname = txtNname.Text If cbxGebDat.Checked Then mitarbeiter.mit_gebdat = txtGebDat.Text Else mitarbeiter.mit_gebdat = "" mitarbeiter.mit_strasse = txtStrasse.Text mitarbeiter.mit_hausnr = txtHausnummer.Text mitarbeiter.mit_land = txtLand.Text mitarbeiter.mit_plz = txtPlz.Text mitarbeiter.mit_ort = txtOrt.Text mitarbeiter.mit_niederlassung = cboNiederlassung._value mitarbeiter.mit_fakturierungsgruppe = cboFaktGrp._value mitarbeiter.mit_abteilung = cboAbteilung._value mitarbeiter.mit_position = cboPosition.Text mitarbeiter.mit_durchwahl = txtDurchwahl.Text mitarbeiter.mit_email = txtEmail.Text mitarbeiter.mit_mobiltel = txtMobiltel.Text mitarbeiter.mit_allowAnruf = cbxAnrufen.Checked mitarbeiter.mit_info = txtInfo.Text mitarbeiter.mit_ATGRNAccessCode_AT51FP7 = txtATGRNAccessCode_AT51FP7.Text mitarbeiter.mit_ATGRNAccessCode_AT52VA6 = txtATGRNAccessCode_AT52VA6.Text mitarbeiter.mit_DAKOSY_SB = txtDakosySB.Text mitarbeiter.mit_DAKOSY_SBFull = txtDyFullName.Text mitarbeiter.mit_TELOTEC_SB = txtTelotecSB.Text mitarbeiter.mit_AliasAD_Domain = cboALIASDomain._value mitarbeiter.mit_AliasAD_Username = txtALIASUser.Text mitarbeiter.mit_AliasAD_Domain2 = cboALIASDomain2._value mitarbeiter.mit_AliasAD_Username2 = txtALIASUser2.Text mitarbeiter.mit_teamId = If(cboTeam._value = "", Nothing, cboTeam._value) mitarbeiter.mit_CSuser = txtCSUser.Text mitarbeiter.mit_CSpwd = txtCSPW.Text mitarbeiter.mit_PersonalNr = txtPersonalNr.Text mitarbeiter.mit_telefonnr = txtTelNr.Text If IsNumeric(cboPersonal._value) AndAlso cboPersonal._value > 0 Then mitarbeiter.mit_FMZollPersID = cboPersonal._value Else mitarbeiter.mit_FMZollPersID = -1 End If mitarbeiter.mit_FirmenDatenAnzeige = "" For Each a In MyListBox1.SelectedItems If DirectCast(a, VERAG_PROG_ALLGEMEIN.MyListItem).Value = "A" Then ' For Each i In MyListBox1.Items mitarbeiter.mit_FirmenDatenAnzeige = "A" ' Next Exit For End If Next If mitarbeiter.mit_FirmenDatenAnzeige = "" Then For Each i In MyListBox1.SelectedItems mitarbeiter.mit_FirmenDatenAnzeige &= DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & "," Next End If If mitarbeiter.mit_FirmenDatenAnzeige <> "" And mitarbeiter.mit_FirmenDatenAnzeige.ToString.EndsWith(",") Then mitarbeiter.mit_FirmenDatenAnzeige = mitarbeiter.mit_FirmenDatenAnzeige.ToString.Substring(0, mitarbeiter.mit_FirmenDatenAnzeige.ToString.Length - 1) End If mitarbeiter.mit_FMZollPersIDKasseIsnotSpedBuch = cbxSpedBuch.Checked mitarbeiter.mit_FMZollPersIDSpedBuch = Nothing If IsNumeric(cboPersonal._value) AndAlso cboPersonal._value > 0 And cbxSpedBuch.Checked Then mitarbeiter.mit_FMZollPersIDSpedBuch = cboSpedbuch._value End If mitarbeiter.mit_DpUserStandardDP = cboDP._value mitarbeiter.mit_DpUserStandardFirma = cboDPFirma._value mitarbeiter.mit_DpUserStandardFirma2 = cboDPFirma2._value mitarbeiter.mit_sprache = cboProgSprache._value If IsNumeric(MyComboBox2._value) AndAlso MyComboBox2._value > 0 Then mitarbeiter.mit_standartFiliale = MyComboBox2._value Else mitarbeiter.mit_standartFiliale = -1 End If If IsNumeric(MyComboBox3._value) AndAlso MyComboBox3._value > 0 Then mitarbeiter.mit_standardPreisliste = MyComboBox3._value Else mitarbeiter.mit_standardPreisliste = -1 End If mitarbeiter.mit_firmaFMZoll = If(cboFirmaFMZOLL._value = "", Nothing, cboFirmaFMZOLL._value) If ZOLLDATENBEARB Then mitarbeiter.mit_EZOLL_SB = If(cboEZOLL_SB._value = "", Nothing, cboEZOLL_SB._value) mitarbeiter.mit_ATLAS_SB = If(cboATLAS_SB._value = "", Nothing, cboATLAS_SB._value) End If If mitarbeiter.mit_FMZollPersID IsNot Nothing And cboKasse._value <> "" Then cboKasse.changeItem(SQL.doSQL("UPDATE [Personal] SET Standard_RKSV_KasseId='" & cboKasse._value & "' WHERE ID='" & mitarbeiter.mit_FMZollPersID & "'", "FMZOLL")) End If If cboFirma.Text = "ALLE" Then mitarbeiter.mit_firma = "ALL" mitarbeiter.mit_FirmaHaupt = cboFirmaHaupt.Text Else mitarbeiter.mit_firma = cboFirma.Text End If mitarbeiter.mit_ChatBenutzer = cbxChatBenutzer.Checked If cbxEinsteigsDat.Checked Then mitarbeiter.mit_einstiegsdatum = datEinstiegsdatum.Text Else mitarbeiter.mit_einstiegsdatum = "" mitarbeiter.mit_gekuendigt = cbxGekuendigt.Checked If cbxGekuendigt.Checked Then mitarbeiter.mit_kuendigungsdatum = datGekuendigtAm.Text Else mitarbeiter.mit_kuendigungsdatum = "" 'If picFoto.ImageLocation <> "" Then mitarbeiter.mit_foto = picFoto.ImageLocation initFoto() mitarbeiter.mit_TESTonly = cbxTestaccount.Checked End Sub Private Sub Label8_Click(sender As Object, e As EventArgs) txtPwd.Visible = Not txtPwd.Visible End Sub Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles picFoto.Click Dim fd2 As Windows.Forms.OpenFileDialog = New Windows.Forms.OpenFileDialog() fd2.Title = "Bild auswählen" ' fd.InitialDirectory = "F:\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\" fd2.Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG" fd2.FilterIndex = 2 fd2.RestoreDirectory = True If fd2.ShowDialog() = DialogResult.OK AndAlso fd2.FileName <> "" Then Dim Extension = New IO.FileInfo(fd2.FileName).Extension Dim docId = -1 If saveToDS(Extension, fd2.FileName, docId) Then mitarbeiter.mit_foto_DocId = docId Try picFoto.BackgroundImage = Image.FromFile(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(mitarbeiter.mit_foto_DocId)) Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try End If End If Exit Sub Dim fd As OpenFileDialog = New OpenFileDialog() Dim strFileName As String If Not System.IO.Directory.Exists("\\192.168.0.90\f\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\") Then System.IO.Directory.CreateDirectory("\\192.168.0.90\f\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\") End If If Not System.IO.Directory.Exists("\\192.168.0.91\f\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\") Then System.IO.Directory.CreateDirectory("\\192.168.0.91\f\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\") End If fd.Title = "Bild auswählen" fd.InitialDirectory = "F:\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\" fd.Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG" fd.FilterIndex = 2 fd.RestoreDirectory = True If fd.ShowDialog() = DialogResult.OK Then strFileName = fd.FileName picFoto.ImageLocation = strFileName Dim myValue = InputBox("Bitte Name eingeben (mit Endung)", "FileName", cut_file(strFileName)) If myValue <> "" Then FileCopy(fd.FileName, "\\192.168.0.91\f\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\" & myValue) FileCopy(fd.FileName, "\\192.168.0.90\f\PROGRAMME\ADMIN_DATA\Fotos_Mitarbeiter\" & myValue) End If mitarbeiter.mit_foto = strFileName End If End Sub Public Function saveToDS(Extension, sourcePath, Optional ByRef da_id = -1) As Boolean Dim DS As VERAG_PROG_ALLGEMEIN.cDATENSERVER = Nothing If da_id > 0 Then DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(da_id) Else DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MITARBEITER", "PERSONAL_FOTOS", "", "", mitarbeiter.mit_nname & "_" & mitarbeiter.mit_id & Extension, -1, False) End If ' Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MITARBEITER", "PERSONAL_FOTOS", "", "", MA.mit_nname & "_" & MA.mit_id, -1, False) ' MsgBox(DS.da_id) If Not DS.uploadDataToDATENSERVER(sourcePath,,, False,, False) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False If DS.da_id <= 0 Then MsgBox("Keine DocId!") : Return False da_id = DS.da_id ' destPath = DS.GET_TOP1_PATH Return True End Function Private Function cut_file(ByVal file As String) As String ' Funktion zum Entfernen der Backslashs / Ordner While file.Contains("\") file = file.Remove(0, 1) End While Return file End Function While file.Contains("\") file = file.Remove(0, 1) End While Return file End Function Private Sub cbxADMIN_CheckedChanged(sender As Object, e As EventArgs) Handles cbxADMIN.CheckedChanged cboAdminBer.Enabled = cbxADMIN.Checked End Sub Private Sub cbxUID_CheckedChanged(sender As Object, e As EventArgs) Handles cbxUID.CheckedChanged cboUidBer.Enabled = cbxUID.Checked End Sub Private Sub cbxDISPO_CheckedChanged(sender As Object, e As EventArgs) Handles cbxDISPO.CheckedChanged cboDispoBer.Enabled = cbxDISPO.Checked End Sub Private Sub cbxPARKZEIT_CheckedChanged(sender As Object, e As EventArgs) Handles cbxPARKZEIT.CheckedChanged cboParkzeitBer.Enabled = cbxPARKZEIT.Checked End Sub Private Sub cbxZOLL_CheckedChanged(sender As Object, e As EventArgs) Handles cbxZOLL.CheckedChanged cboZollBer.Enabled = cbxZOLL.Checked End Sub Private Sub cbxSDL_CheckedChanged(sender As Object, e As EventArgs) Handles cbxSDL.CheckedChanged cboSdlBer.Enabled = cbxSDL.Checked End Sub Private Sub cbxAVISO_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAVISO.CheckedChanged cboAvisoBer.Enabled = cbxAVISO.Checked End Sub Private Sub Label8_Click_1(sender As Object, e As EventArgs) Handles Label8.DoubleClick txtPwd.Visible = True Label8.Visible = False End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) If txtVname.Text = "" And txtNname.Text = "" Then MsgBox("Bitte geben Sie einen Namen ein!") : Exit Sub getMitarbeiter() If isUpdate Then mitarbeiter.mit_id = mid If UID.updateMitarbeiter(mitarbeiter) Then Me.Close() End If End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles cbxEinsteigsDat.CheckedChanged datEinstiegsdatum.Enabled = cbxEinsteigsDat.Checked End Sub Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles cbxGebDat.CheckedChanged txtGebDat.Enabled = cbxGebDat.Checked End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click frmMitarbBerechtigungen.codename = "SDL" frmMitarbBerechtigungen.progId = 7 frmMitarbBerechtigungen.maId = mid frmMitarbBerechtigungen.Show() End Sub Private Sub cbxGekuendigt_CheckedChanged(sender As Object, e As EventArgs) Handles cbxGekuendigt.CheckedChanged datGekuendigtAm.Enabled = cbxGekuendigt.Checked End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim frmBenutzerBerGruppen As New frmBenutzerBerGruppen(mid, 7, "SDL") frmBenutzerBerGruppen.Show(Me) End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim frmBenutzerBerGruppen As New frmBenutzerBerGruppen(mid, 1, "ADMIN") frmBenutzerBerGruppen.Show(Me) End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim frmBenutzerBerGruppen As New frmBenutzerBerGruppen(mid, 5, "AVISO") frmBenutzerBerGruppen.Show(Me) End Sub Private Sub cbxSpedBuch_CheckedChanged(sender As Object, e As EventArgs) Handles cbxSpedBuch.CheckedChanged cboSpedbuch.Enabled = sender.checked If sender.checked Then Label37.Text = "Benutzer Kasse:" Else Label37.Text = "Zuordnung / FM-ZOLL Personal - Tabelle:" End If End Sub Private Sub cboNiederlassung_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboNiederlassung.SelectedIndexChanged End Sub Private Sub tbcntr_TabIndexChanged(sender As Object, e As EventArgs) Handles tbcntr.SelectedIndexChanged If tbcntr.SelectedIndex = 1 Then Try cboATLAS_SB.fillWithSQL("SELECT [bassba_sbnr],[bassba_sbnr] FROM [atlas].[dbo].[bassba] ORDER BY bassba.bassba_sbnr", False, If(cboNiederlassung._value = "SBG", "ATLAS_SBG", "ATLAS"), True) Catch ex As Exception MsgBox("ATLAS Problem") tbcntr.SelectedIndex = 0 Exit Sub End Try Try cboEZOLL_SB.fillWithSQL("SELECT [PersonalID],[UserID] FROM [zzPersonal] where lizenznr='S01122' ORDER BY UserID ", False, "EZOLL", True) Catch ex As Exception MsgBox("EZOLL Problem") tbcntr.SelectedIndex = 0 Exit Sub End Try If If(mitarbeiter.mit_EZOLL_SB, -1) > 0 Then cboEZOLL_SB._value = mitarbeiter.mit_EZOLL_SB End If If If(mitarbeiter.mit_ATLAS_SB, "") <> "" Then cboATLAS_SB._value = mitarbeiter.mit_ATLAS_SB End If ZOLLDATENBEARB = True ElseIf tbcntr.SelectedIndex = 3 Then timas = New VERAG_PROG_ALLGEMEIN.cTimasAPI() If IsNothing(mitarbeiter.mit_timasId) Then cbxTimasAngelegt.Checked = False timas.getGroups(dtTimas) initDGV(dtTimas) Else cbxTimasAngelegt.Checked = True End If btnMAanlegen.Visible = Not cbxTimasAngelegt.Checked txtPersonalNr.Enabled = Not cbxTimasAngelegt.Checked dgvData.Visible = Not cbxTimasAngelegt.Checked TabControl1.Visible = Not cbxTimasAngelegt.Checked rtfInfoTimas.Visible = cbxTimasAngelegt.Checked btngetInfo.Visible = cbxTimasAngelegt.Checked End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click Dim frmBenutzerBerGruppen As New frmBenutzerBerGruppen(mid, 3, "DISPO") frmBenutzerBerGruppen.Show(Me) End Sub Private Sub lkl_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lkl.LinkClicked If vbYes = MsgBox("Möchten Sie das Kennwort wirklich zurücksetzen? " & vbNewLine & "Der Benutzer wird beim nächsten Login zur Eingabe aufgefordert.", vbYesNoCancel) Then ' txtPwd.Text = "0000" getMitarbeiter() mitarbeiter.mit_PasswortChanged = Nothing UID.updateMitarbeiter(mitarbeiter) End If End Sub Private Sub cboFirma_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged cboTeam.Items.Clear() If cboFirma.Text <> "" Then cboTeam.fillWithSQL("SELECT team_id, team_bezeichnung FROM tblTeams WHERE team_firma='" & cboFirma.Text & "'", False, "ADMIN", True) End If cboFirmaHaupt.Enabled = (cboFirma.Text = "ALLE") End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click lblCheckconnection.Text = "" If txtCSUser.Text = "" Then lblCheckconnection.Text = "User ist leer!" Exit Sub End If If txtCSPW.Text = "" Then lblCheckconnection.Text = "Passwort ist leer!" Exit Sub End If Dim cs = New cCreditSafeAPI Dim statuscode = cs.authenticate(txtCSUser.Text, txtCSPW.Text) Select Case statuscode Case 200 : lblCheckconnection.Text = "Zugangsdaten OK" Case Else lblCheckconnection.Text = "User konnte nicht authentifiziert werden (" & statuscode & ")" End Select End Sub Private Sub cbxShowPW_CheckedChanged(sender As Object, e As EventArgs) Handles cbxShowPW.CheckedChanged txtCSPW.UseSystemPasswordChar = Not cbxShowPW.Checked End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnADladen.Click Dim frmAD = New frmADsearch() If frmAD.ShowDialog = DialogResult.OK Then txtEmail.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("mail").Value) txtUsername.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("sAMAccountName").Value) txtVname.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("givenName").Value) txtNname.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("sn").Value) txtStrasse.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("streetAdress").Value) txtPlz.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("postalCode").Value) txtOrt.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("I").Value) txtMobiltel.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("Mobile").Value) txtDurchwahl.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("telephoneNumber").Value) txtALIASUser.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("sAMAccountName").Value) txtEmailExtension.Text = frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("extensionAttribute7").Value) cboALIASDomain.changeItem(frmAD.activeDirectoryObj.domain) cboAbteilung.changeItem(frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("department").Value)) cboNiederlassung.changeItem(frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("company").Value)) End If End Sub Private Sub mnuItem_Clicked(sender As Object, e As EventArgs) ContextMenuStrip1.Hide() 'Sometimes the menu items can remain open. May not be necessary for you. Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem) If item IsNot Nothing Then synchActiveDirectoryADMIN(item.Name) End If End Sub Private Sub btnUpdateAD_Click(sender As Object, e As EventArgs) Handles btnUpdateAD.Click If cboALIASDomain._value = "" Or txtALIASUser.Text = "" Then Exit Sub End If ContextMenuStrip1.Items.Clear() Dim ADToADMIN = New ToolStripMenuItem() With {.Text = "Active Directory -> ADMIN (nur leere Felder werden befüllt)", .Name = "ADtoADMIN", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} Dim ADMINToAD = New ToolStripMenuItem() With {.Text = "ADMIN -> Active Directory (nur leere Felder werden befüllt)", .Name = "ADMINtoAD", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler ADToADMIN.Click, AddressOf mnuItem_Clicked ContextMenuStrip1.Items.Add(ADToADMIN) AddHandler ADMINToAD.Click, AddressOf mnuItem_Clicked ContextMenuStrip1.Items.Add(ADMINToAD) ContextMenuStrip1.Show(Cursor.Position) End Sub Private Sub synchActiveDirectoryADMIN(AdminTOAD As String) Dim a As MsgBoxResult = MsgBox("Die Daten des Mitarbeiters mit dem AD synchronisieren?", vbYesNo) If a = vbYes Then Dim ldap As String = "" Select Case cboALIASDomain._value Case "imex.local" ldap = "LDAP://DC=IMEX,DC=LOCAL" Case "VERAGNEUHAUS.local" ldap = "LDAP://DC=VERAGNEUHAUS,DC=LOCAL" Case "VERAGOST" ldap = "LDAP://DC=VERAG,DC=OST,DC=DMN" End Select Dim dirEntry As System.DirectoryServices.DirectoryEntry Dim dirSearcher As System.DirectoryServices.DirectorySearcher Try dirEntry = New System.DirectoryServices.DirectoryEntry(ldap) dirSearcher = New System.DirectoryServices.DirectorySearcher(dirEntry) dirSearcher.Filter = " (&(objectClass=user)(objectCategory=person)(|(samAccountName=*" & txtALIASUser.Text & "*)))" Dim sr As DirectoryServices.SearchResult = dirSearcher.FindOne() If sr Is Nothing Then Dim b As MsgBoxResult = MsgBox("User ist im AD nicht vorhanden?" & vbNewLine & "Solle der Mitarbeiter " & txtALIASUser.Text & " in der Domain " & cboALIASDomain.Text & " angelegt werden?", vbYesNo) If b = vbYes Then Dim frmAD = New frmADsearch("Referenzuser (Gruppenberechtigungen werden von diesem User übernommen)!") If frmAD.ShowDialog = DialogResult.OK Then MsgBox("The Lightweight Directory Access Protocol (LDAP) provider does not CURRENTLY support this method!") 'Sobald diese Funktion unterstützt wird, kann nachfolgende Funktion aktiviert werden 'https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.directoryentry.copyto 'Dim NewADAccount As DirectoryEntry = New DirectoryEntry(frmAD.activeDirectoryObj.ADEntry.Parent.Path, txtALIASUser.Text, txtPwd.Text) 'frmAD.activeDirectoryObj.ADEntry.CopyTo(NewADAccount) End If Else Exit Sub End If End If Dim de As System.DirectoryServices.DirectoryEntry = sr.GetDirectoryEntry() If de.SchemaClassName <> "user" Then MsgBox("hinterlegter AD-User ist nicht vom Typ USER") Exit Sub End If If AdminTOAD = "ADMINtoAD" Then If (isFilled(de.Properties("givenName").Value)) Then de.Properties("givenName").Value = txtVname.Text If (isFilled(de.Properties("department").Value)) Then de.Properties("department").Value = cboAbteilung._value If (isFilled(de.Properties("company").Value)) Then de.Properties("company").Value = cboFirma.SelectedValue If (isFilled(de.Properties("sn").Value)) Then de.Properties("sn").Value = txtNname.Text If (isFilled(de.Properties("mail").Value)) Then de.Properties("mail").Value = txtEmail.Text If (isFilled(de.Properties("streetAdress").Value)) Then de.Properties("streetAdress").Value = txtStrasse.Text If (isFilled(de.Properties("postalCode").Value)) Then de.Properties("postalCode").Value = txtPlz.Text If (isFilled(de.Properties("I").Value)) Then de.Properties("I").Value = txtOrt.Text If (isFilled(de.Properties("mobile").Value)) Then de.Properties("mobile").Value = txtMobiltel.Text If (isFilled(de.Properties("telephoneNumber").Value)) Then de.Properties("telephoneNumber").Value = txtTelNr.Text If (isFilled(de.Properties("otherTelephone").Value)) Then de.Properties("otherTelephone").Value = txtDurchwahl.Text If cbxGekuendigt.Checked Then Dim expire As DateTime = datGekuendigtAm.Value expire = expire.AddDays(1) de.Properties("accountExpires").Value = expire.ToFileTime.ToString End If de.CommitChanges() Else If txtEmail.Text = "" Then txtEmail.Text = de.Properties("mail").Value If txtUsername.Text = "" Then txtUsername.Text = de.Properties("sAMAccountName").Value If txtVname.Text = "" Then txtVname.Text = de.Properties("givenName").Value If txtNname.Text = "" Then txtNname.Text = de.Properties("sn").Value If txtStrasse.Text = "" Then txtStrasse.Text = de.Properties("streetAdress").Value If txtPlz.Text = "" Then txtPlz.Text = de.Properties("postalCode").Value If txtOrt.Text = "" Then txtOrt.Text = de.Properties("I").Value If txtMobiltel.Text = "" Then txtMobiltel.Text = de.Properties("mobile").Value If txtDurchwahl.Text = "" Then txtDurchwahl.Text = de.Properties("otherTelephone").Value If txtALIASUser.Text = "" Then txtALIASUser.Text = de.Properties("sAMAccountName").Value If txtEmailExtension.Text = "" Then txtEmailExtension.Text = de.Properties("extensionAttribute7").Value Dim phoneNr = de.Properties("telephoneNumber").Value If phoneNr <> "" Then Dim pattern = "-.*" 'enfernt alle zeichen nach - Dim myString = Regex.Replace(phoneNr, pattern, "") pattern = "DW.*" 'enfernt alle zeichen nach DW myString = Regex.Replace(myString, pattern, "") If txtTelNr.Text = "" Then txtTelNr.Text = myString.Trim() End If 'cboALIASDomain.changeItem(frmAD.activeDirectoryObj.domain) 'cboAbteilung.changeItem(frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("department").Value)) 'cboNiederlassung.changeItem(frmAD.setNoNullableValue(frmAD.activeDirectoryObj.ADEntry.Properties("company").Value)) End If Catch ex As Exception MsgBox(ex.Message) End Try End If End Sub Private Sub txtALIASUser_TextChanged(sender As Object, e As EventArgs) Handles txtALIASUser.TextChanged, cboALIASDomain.TextChanged If txtALIASUser.Text <> "" AndAlso cboALIASDomain._value <> "" Then btnUpdateAD.Enabled = True Else btnUpdateAD.Enabled = False End If End Sub Public Function isFilled(value As String) As Boolean If value IsNot Nothing Then If value <> "" Then Return False ' Werte aus AD sollen nur gesetzt, nicht überschr Else Return True End If End If Return True End Function Private Sub btnMAanlegen_Click(sender As Object, e As EventArgs) Handles btnMAanlegen.Click Dim newMid As Integer = 0 If txtVname.Text = "" And txtNname.Text = "" Then MsgBox("Bitte geben Sie einen Namen ein!") : Exit Sub getMitarbeiter() If isUpdate Then mitarbeiter.mit_id = mid If UID.updateMitarbeiter(mitarbeiter) Then saveBerechtigungen(newMid) Else If UID.insertMitarbeiter(mitarbeiter, newMid) Then saveBerechtigungen(newMid) End If If checkMandatoryFields() Then timas.createMA(mitarbeiter, rtfInfoTimas.Text, dtTimas) tbcntr_TabIndexChanged(sender, e) End If End Sub Private Sub btngetInfo_Click(sender As Object, e As EventArgs) Handles btngetInfo.Click If Not cbxTimasAngelegt.Checked Then rtfInfoTimas.Text = "Mitarbeiter nicht im Timas angelegt!" Exit Sub End If timas.getInfo(mitarbeiter, rtfInfoTimas.Text) End Sub Private Sub cbxTimasAngelegt_CheckedChanged(sender As Object, e As EventArgs) Handles cbxTimasAngelegt.CheckedChanged btnMAanlegen.Visible = Not cbxTimasAngelegt.Checked txtPersonalNr.Enabled = Not cbxTimasAngelegt.Checked dgvData.Visible = Not cbxTimasAngelegt.Checked rtfInfoTimas.Visible = cbxTimasAngelegt.Checked btngetInfo.Visible = cbxTimasAngelegt.Checked End Sub Private Function checkMandatoryFields() As Boolean If Not cbxEinsteigsDat.Checked Or mitarbeiter.mit_einstiegsdatum = "" Then MsgBox("Einstiegsdatum prüfen!") Return False End If If CDate(mitarbeiter.mit_einstiegsdatum).ToShortDateString <= DateTime.Parse("01/01/2000") Then MsgBox("Einstiegsdatum darf nicht vor 01.01.2000 liegen!") Return False End If If mitarbeiter.mit_gekuendigt Then MsgBox("Bereits gekündige MA können nicht angelegt werden!") Return False End If If mitarbeiter.mit_vname = "" Or mitarbeiter.mit_nname = "" Then MsgBox("Vor- und Nachnamen angeben!") Return False End If If mitarbeiter.mit_firma = "" Then MsgBox("Firma angeben!") Return False End If Return True End Function Sub initDGV(dt As DataTable) 'dgvData.DataSource = dt 'If dgvData.Columns.Count > 0 Then ' With dgvData ' .RowHeadersWidth = 10 ' .Columns("id").Visible = False ' .Columns("groupType").Visible = False ' .Columns("name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill ' .Columns("info").Width = 200 ' .Columns("set").Width = 20 ' .Columns("set").HeaderText = "X" ' End With 'End If If dtTimas.Columns.Count > 0 Then If TabControl1.TabCount = 0 Then For Each row As DataRow In dt.DefaultView.ToTable(True, "groupType").Rows Dim TabIndex As Integer 'Anzahl der erstellten Tabs, bei keinem Tab ist der Index 0 TabIndex = TabControl1.TabCount TabControl1.TabPages.Add(row("groupType")) If TabIndex = 0 Then Dim tab As TabPage = Me.TabControl1.SelectedTab Dim dv = New DataView(dt) dv.RowFilter = "groupType = '" & tab.Text & "'" dgvData.DataSource = dv If dgvData.Columns.Count > 0 Then With dgvData .RowHeadersWidth = 10 .Columns("id").Visible = False .Columns("name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("groupType").Visible = False .Columns("info").Width = 150 .Columns("set").Width = 20 .Columns("set").HeaderText = "X" .Dock = DockStyle.Fill End With tab.Controls.Add(Me.dgvData) End If End If Next End If End If End Sub Private Sub PictureBox9_Click_1(sender As Object, e As EventArgs) Handles PictureBox9.Click Dim webAddress As String = "https://zeit.verag.ag/" Process.Start(webAddress) End Sub Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged If dgvData Is Nothing And dgvData.Rows.Count < 1 Then Exit Sub Dim tab As TabPage = Me.TabControl1.SelectedTab If ((Not tab Is Nothing) AndAlso (Not tab.Controls.Contains(Me.dgvData))) Then Dim dv = New DataView(dtTimas) dv.RowFilter = "groupType = '" & tab.Text & "'" dgvData.DataSource = dv If dgvData.Columns.Count > 0 Then tab.Controls.Add(Me.dgvData) End If If (Me.isDataLoaded) Then End If End If End Sub Private isDataLoaded As Boolean = True End Class