Files
ADMIN/UID/Mitarbeiter/frmMitarbDetails.vb

1420 lines
63 KiB
VB.net

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"))
lbSprachen.fillWithSQL("SELECT [wert], [bezeichnung] FROM [dbo].[tblSprachen]", False, "ADMIN")
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
txtLohnNr.Text = mitarbeiter.mit_PersonalNr
txtTelNr.Text = mitarbeiter.mit_telefonnr
txtprivateEMail.Text = mitarbeiter.mit_emailprivat
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, ""))
cbxHO.Checked = mitarbeiter.mit_homeoffice
cbxTimasNichtStempeln1.Checked = mitarbeiter.mit_timasNichtStempeln
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_Sprachkentnisse IsNot Nothing AndAlso mitarbeiter.mit_Sprachkentnisse <> "" Then
For Each f In mitarbeiter.mit_Sprachkentnisse.ToString.Split(",")
For i = 0 To lbSprachen.Items.Count - 1
If DirectCast(lbSprachen.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value.ToString = f.ToString Then
lbSprachen.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 = txtLohnNr.Text
mitarbeiter.mit_telefonnr = txtTelNr.Text
mitarbeiter.mit_homeoffice = cbxHO.Checked
mitarbeiter.mit_timasNichtStempeln = cbxTimasNichtStempeln1.Checked
mitarbeiter.mit_emailprivat = txtprivateEMail.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_Sprachkentnisse = ""
'For Each a In lbSprachen.SelectedItems
' If DirectCast(a, VERAG_PROG_ALLGEMEIN.MyListItem).Value = "DE" Then
' mitarbeiter.mit_Sprachkentnisse = "DE"
' Exit For
' End If
'Next
If mitarbeiter.mit_Sprachkentnisse = "" Then
For Each i In lbSprachen.SelectedItems
mitarbeiter.mit_Sprachkentnisse &= DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ","
Next
End If
If mitarbeiter.mit_Sprachkentnisse <> "" And mitarbeiter.mit_Sprachkentnisse.ToString.EndsWith(",") Then
mitarbeiter.mit_Sprachkentnisse = mitarbeiter.mit_Sprachkentnisse.ToString.Substring(0, mitarbeiter.mit_Sprachkentnisse.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)
mitarbeiter.mit_EZOLL_SB_UNISPED = If(cboEZOLL_SB_UNISPED._value = "", Nothing, cboEZOLL_SB_UNISPED._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
Try
cboEZOLL_SB_UNISPED.fillWithSQL("SELECT [PersonalID],[UserID] FROM [zzPersonal] where lizenznr='S01133' ORDER BY UserID ", False, "EZOLL_UNISPED", True)
Catch ex As Exception
MsgBox("EZOLL UNISPED Problem")
tbcntr.SelectedIndex = 0
Exit Sub
End Try
If If(mitarbeiter.mit_EZOLL_SB_UNISPED, -1) > 0 Then
cboEZOLL_SB_UNISPED._value = mitarbeiter.mit_EZOLL_SB_UNISPED
End If
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("timas")
If IsNothing(mitarbeiter.mit_timasId) Then
cbxTimasAngelegt.Checked = False
timas.getAllGroups(dtTimas)
initDGV(dtTimas)
Else
cbxTimasAngelegt.Checked = True
End If
btnMAanlegen.Visible = Not cbxTimasAngelegt.Checked
txtLohnNr.Enabled = Not cbxTimasAngelegt.Checked
txtClientNr.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("creditsafe")
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.createEmployee(mitarbeiter, rtfInfoTimas.Text, txtClientNr.Text, dtTimas)
If rtfInfoTimas.Visible = False AndAlso rtfInfoTimas.Text <> "" Then MsgBox(rtfInfoTimas.Text)
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
txtLohnNr.Enabled = Not cbxTimasAngelegt.Checked
txtClientNr.Enabled = Not cbxTimasAngelegt.Checked
dgvData.Visible = Not cbxTimasAngelegt.Checked
rtfInfoTimas.Visible = cbxTimasAngelegt.Checked
btngetInfo.Visible = cbxTimasAngelegt.Checked
btnDelete.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 txtClientNr.Text = "" Then
MsgBox("ClientNr 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
If txtLohnNr.Text = "" Then
If Not vbYes = MsgBox("Möchten Sie den Mitarbeiter ohne Lohnnummer anlegen?" & vbNewLine & "Ohne Lohnnummer kann kein Abgleich ins Lohnsystem erfolgen!", vbYesNoCancel) Then
Return False
End If
End If
Return True
End Function
Sub initDGV(dt As DataTable)
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
dgvData.AllowUserToAddRows = False
dgvData.AllowUserToDeleteRows = False
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 = 250
.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 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
Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
If Not cbxTimasAngelegt.Checked Then
rtfInfoTimas.Text = "Mitarbeiter nicht im Timas angelegt!"
Exit Sub
End If
If vbYes = MsgBox("Soll die Verknüpfung zu Timas gelöscht werden?", vbYesNoCancel) Then
getMitarbeiter()
mitarbeiter.mit_PersonalNr = DBNull.Value
mitarbeiter.mit_timasId = DBNull.Value
If UID.updateMitarbeiter(mitarbeiter) Then
MsgBox("Mitarbeitverknüpfung gelöscht!")
End If
End If
End Sub
Private Sub datEinstiegsdatum_ValueChanged(sender As Object, e As EventArgs) Handles datEinstiegsdatum.ValueChanged, cbUrlaubInStund.CheckedChanged, txtUrlaubsabsp.TextChanged, cboDaysPerWeek.SelectedIndexChanged
If cbxEinsteigsDat.Checked And mitarbeiter.mit_einstiegsdatum <> "" Then
If CDate(mitarbeiter.mit_einstiegsdatum).ToShortDateString >= DateTime.Parse("01/01/2000") Then
If txtWoStd.Text <> "" AndAlso IsNumeric(txtWoStd.Text) AndAlso cboDaysPerWeek.Text <> "" AndAlso IsNumeric(cboDaysPerWeek.Text) Then
Dim einstiegsdat As Date = CDate(mitarbeiter.mit_einstiegsdatum)
Dim endOfCurrentYear = New DateTime(einstiegsdat.Year, 12, 31)
Dim span = endOfCurrentYear - einstiegsdat
If cbxGekuendigt.Checked AndAlso mitarbeiter.mit_kuendigungsdatum <> "" AndAlso CDate(mitarbeiter.mit_kuendigungsdatum).ToShortDateString >= DateTime.Parse("01/01/2000") Then
Dim kuendigungsdatum As Date = CDate(mitarbeiter.mit_kuendigungsdatum)
span = kuendigungsdatum - einstiegsdat
End If
Dim days As Double = span.TotalDays
Dim uansp As Double = 0
Dim aliquU As Double = 0
calcUrlaubsabspruch(cbUrlaubInStund.Checked, uansp)
If days > 0 AndAlso uansp > 0 Then
If IsNumeric(txtUrlaubsabsp.Text) Then uansp = txtUrlaubsabsp.Text
If Not cbUrlaubInStund.Checked Then
aliquU = Math.Round((uansp / 365) * span.TotalDays, 2, MidpointRounding.AwayFromZero)
txtaliquUA.Text = aliquU
lblHoursOrDays2.Text = "D"
Else
aliquU = Math.Round((uansp / 365) * span.TotalDays, 2, MidpointRounding.AwayFromZero)
txtaliquUA.Text = aliquU
lblHoursOrDays2.Text = "H"
End If
End If
End If
End If
End If
End Sub
'Private Sub cboDaysPerWeek_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboDaysPerWeek.SelectedIndexChanged
' calcUrlaubsabspruch(cbUrlaubInStund.Checked)
'End Sub
Private Sub calcUrlaubsabspruch(UrlaubInStunden As Boolean, ByRef urlaubsabspruch As Double)
If Not UrlaubInStunden Then
If cboDaysPerWeek.SelectedItem <> "" Then
If Not cbabwJahresurlaub.Checked Then
urlaubsabspruch = 5 * cboDaysPerWeek.SelectedItem
End If
lblHoursOrDays1.Text = "D"
End If
Else
If cboDaysPerWeek.SelectedItem <> "" AndAlso IsNumeric(txtWoStd.Text) AndAlso txtWoStd.Text > 0 Then
If Not cbabwJahresurlaub.Checked Then
urlaubsabspruch = (txtWoStd.Text / cboDaysPerWeek.SelectedItem) * cboDaysPerWeek.SelectedItem * 5
End If
lblHoursOrDays1.Text = "H"
End If
End If
txtUrlaubsabsp.Text = urlaubsabspruch
End Sub
End Class