You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

323 lines
13 KiB

Imports System.Data
Imports System.Data.SqlClient
'''<summary>Datenzugriff auf Tabelle Mitarbeiter</summary>
Public Class Mitarbeiter
#Region "Constructor"
Public Sub New(ByVal mitarbeiterId As Integer)
End Sub
#End Region
#Region "Public methods"
'''<summary>Gibt eine Liste mit allen Mitarbeitern zurück</summary>
'''<param name="teamNr">Nur Mitarbeiter von diesem Team</param>
'''<param name="funktionsGruppeNr">Nur Mitarbeiter von dieser Funktionsgruppe</param>
'''<param name="dsMitarbeiter">Das DataSet welches gefüllt werden soll</param>
Overloads Shared Sub GetListe(ByVal teamNr As Integer, ByVal funktionsGruppeNr As Integer, ByRef dsMitarbeiter As DataSet)
Dim sqlConn As New SqlConnection()
Dim sqlCmd As New SqlCommand()
Dim da As New SqlDataAdapter()
Try
sqlCmd.CommandText = "sp_ListMitarbeiter"
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.Connection = sqlConn
sqlConn.ConnectionString = Common.Datenbank.GetDSN()
If teamNr = 0 Then
sqlCmd.Parameters.Add(New SqlParameter("@TeamNr", DBNull.Value))
Else
sqlCmd.Parameters.Add(New SqlParameter("@TeamNr", teamNr))
End If
If funktionsGruppeNr = 0 Then
sqlCmd.Parameters.Add(New SqlParameter("@FunktionsGruppeNr", DBNull.Value))
Else
sqlCmd.Parameters.Add(New SqlParameter("@FunktionsGruppeNr", funktionsGruppeNr))
End If
sqlConn.Open()
da.SelectCommand = sqlCmd
da.Fill(dsMitarbeiter, "MitarbeiterListe")
Catch ex As Exception
Throw ex
Finally
If sqlCmd Is Nothing Then
sqlCmd.Dispose()
End If
If sqlConn Is Nothing Then
sqlConn.Dispose()
End If
If da Is Nothing Then
da.Dispose()
End If
End Try
End Sub
'''<summary>Gibt alle Details zur einem Mitarbeiter zurück</summary>
'''<param name="mitarbeiterNr">Die datenbank Nummer des Mitarbeiters (ID)</param>
'''<param name="dsMitarbeiter">Das zu füllende DataSet</param>
Overloads Shared Sub GetById(ByVal mitarbeiterNr As Integer, ByRef dsMitarbeiter As DataSet)
Dim sqlConn As New SqlConnection()
Dim sqlCmd As New SqlCommand()
Dim da As New SqlDataAdapter()
Try
sqlCmd.CommandText = "sp_GetMitarbeiterById"
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.Connection = sqlConn
sqlCmd.Parameters.Add(New SqlParameter("@MitarbeiterNr", mitarbeiterNr))
sqlConn.ConnectionString = Common.Datenbank.GetDSN()
sqlConn.Open()
da.SelectCommand = sqlCmd
da.Fill(dsMitarbeiter, "Mitarbeiter")
Catch ex As Exception
Throw ex
Finally
If sqlCmd Is Nothing Then
sqlCmd.Dispose()
End If
If sqlConn Is Nothing Then
sqlConn.Dispose()
End If
If da Is Nothing Then
da.Dispose()
End If
End Try
End Sub
'''<summary>Gibt alle Details zur einem Mitarbeiter zurück</summary>
'''<param name="tgNummer">Die NT TG Nummer des Mitarbeiters (NTG, NtAccount)</param>
'''<param name="dsMitarbeiter">Das zu füllende DataSet</param>
Overloads Shared Sub GetByTgNummer(ByVal tgNummer As String, ByRef dsMitarbeiter As DataSet)
Dim sqlConn As New SqlConnection()
Dim sqlCmd As New SqlCommand()
Dim da As New SqlDataAdapter()
Try
sqlCmd.CommandText = "sp_GetMitarbeiterByTgNummer"
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.Connection = sqlConn
sqlCmd.Parameters.Add(New SqlParameter("@TgNummer", tgNummer))
sqlConn.ConnectionString = Common.Datenbank.GetDSN()
sqlConn.Open()
da.SelectCommand = sqlCmd
da.Fill(dsMitarbeiter, "Mitarbeiter")
Catch ex As Exception
Throw ex
Finally
If sqlCmd Is Nothing Then
sqlCmd.Dispose()
End If
If sqlConn Is Nothing Then
sqlConn.Dispose()
End If
If da Is Nothing Then
da.Dispose()
End If
End Try
End Sub
'''<summary>Erstellt ein neues Standard Profil für den angegebenen Mitarbeiter</summary>
'''<param name="mitarbeiterNr">Die datenbank Nummer des Mitarbeiters (ID)</param>
'''<param name="mutiererMitarbeiterNr">Die datenbank Nummer des Mutierers (ID)</param>
Overloads Shared Sub CreateNewStandardProfil(ByVal mitarbeiterNr As Integer, ByVal mutiererMitarbeiterNr As Integer)
Dim sqlConn As New SqlConnection()
Dim sqlCmd As New SqlCommand()
Try
sqlCmd.CommandText = "sp_InsMitarbeiterProfil"
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.Connection = sqlConn
sqlCmd.Parameters.Add(New SqlParameter("@MitarbeiterNr", mitarbeiterNr))
sqlCmd.Parameters.Add(New SqlParameter("@MutiererMitarbeiterNr", mutiererMitarbeiterNr))
sqlConn.ConnectionString = Common.Datenbank.GetDSN()
sqlConn.Open()
sqlCmd.ExecuteNonQuery()
Catch ex As Exception
Throw ex
Finally
If sqlCmd Is Nothing Then
sqlCmd.Dispose()
End If
If sqlConn Is Nothing Then
sqlConn.Dispose()
End If
End Try
End Sub
'''<summary>Gibt alle Details zur einem Mitarbeiter zurück</summary>
Overloads Shared Function Insert(ByVal vorname As String, ByVal name As String, ByVal kurzzeichen As String, ByVal anrede As String, _
ByVal tgNummer As String, ByVal eMail As String, ByVal fax As String, ByVal telefon As String, _
ByVal unterschriftText As String, ByVal spracheNr As Integer, ByVal fuerMandant As Integer, _
ByVal showTipp As Boolean, ByVal partnerNr As Integer, ByVal mandantNr As Integer, _
ByVal isAktiv As Boolean, ByVal mailEmpfang As Boolean, ByVal edokaMessage As Boolean, _
ByVal funktion As String, ByVal mailDirektVersenden As Boolean, ByVal rang As String, _
ByVal mailDokumentrueckgang As Boolean, ByVal klassifizierungNr As Integer, _
ByVal edokaMail As Boolean, ByVal journalisierung As Boolean, ByVal getMeldung As Boolean, _
ByVal mail1 As String, ByVal mutiererMitarbeiterNr As Integer) As Integer
Dim sqlConn As New SqlConnection()
Dim sqlCmd As New SqlCommand()
Try
sqlCmd.CommandText = "sp_InsertMitarbeiter"
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.Connection = sqlConn
sqlCmd.Parameters.Add(New SqlParameter("@Vorname", vorname))
sqlCmd.Parameters.Add(New SqlParameter("@Name", name))
sqlCmd.Parameters.Add(New SqlParameter("@KurzZeichen", kurzzeichen))
sqlCmd.Parameters.Add(New SqlParameter("@Anrede", anrede))
sqlCmd.Parameters.Add(New SqlParameter("@TgNummer", tgNummer))
sqlCmd.Parameters.Add(New SqlParameter("@eMail", eMail))
sqlCmd.Parameters.Add(New SqlParameter("@Fax", fax))
sqlCmd.Parameters.Add(New SqlParameter("@Telefon", telefon))
sqlCmd.Parameters.Add(New SqlParameter("@UnterschriftText", unterschriftText))
sqlCmd.Parameters.Add(New SqlParameter("@SpracheNr", spracheNr))
sqlCmd.Parameters.Add(New SqlParameter("@FuerMandantNr", fuerMandant))
sqlCmd.Parameters.Add(New SqlParameter("@ShowTipp", showTipp))
sqlCmd.Parameters.Add(New SqlParameter("@PartnerNr", partnerNr))
sqlCmd.Parameters.Add(New SqlParameter("@MandantNr", mandantNr))
sqlCmd.Parameters.Add(New SqlParameter("@Aktiv", isAktiv))
sqlCmd.Parameters.Add(New SqlParameter("@MutiererMitarbeiterNr", mutiererMitarbeiterNr))
sqlCmd.Parameters.Add(New SqlParameter("@MailEmpfang", mailEmpfang))
sqlCmd.Parameters.Add(New SqlParameter("@EdokaMessage", edokaMessage))
sqlCmd.Parameters.Add(New SqlParameter("@Funktion", funktion))
sqlCmd.Parameters.Add(New SqlParameter("@MailDirektVersenden", mailDirektVersenden))
sqlCmd.Parameters.Add(New SqlParameter("@Rang", rang))
sqlCmd.Parameters.Add(New SqlParameter("@MailDokumentRueckgang", mailDokumentrueckgang))
sqlCmd.Parameters.Add(New SqlParameter("@KlassifizierungNr", klassifizierungNr))
sqlCmd.Parameters.Add(New SqlParameter("@EdokaMail", edokaMail))
sqlCmd.Parameters.Add(New SqlParameter("@Journalisierung", journalisierung))
sqlCmd.Parameters.Add(New SqlParameter("@GebMeldung", getMeldung))
sqlCmd.Parameters.Add(New SqlParameter("@Mail1", mail1))
sqlCmd.Parameters.Add(New SqlParameter("@MitarbeiterNr", -1))
sqlCmd.Parameters("@MitarbeiterNr").Direction = ParameterDirection.InputOutput
sqlCmd.Parameters.Add(New SqlParameter("@Return", SqlDbType.Int))
sqlCmd.Parameters("@Return").Direction = ParameterDirection.ReturnValue
sqlConn.ConnectionString = Common.Datenbank.GetDSN()
sqlConn.Open()
If sqlCmd.ExecuteNonQuery() = 0 Then
Return -1
Else
If Convert.ToInt32(sqlCmd.Parameters("@Return").Value) <> 0 Then
Throw New Exception("DA.Mitarbeiter.Insert(): Return value was " + sqlCmd.Parameters("@Return").Value)
Else
Return Convert.ToInt32(sqlCmd.Parameters("@MitarbeiterNr").Value)
End If
End If
Catch ex As Exception
Throw ex
Finally
If sqlCmd Is Nothing Then
sqlCmd.Dispose()
End If
If sqlConn Is Nothing Then
sqlConn.Dispose()
End If
End Try
End Function
'''<summary>Aktualisiert alle Details von einem Mitarbeiter</summary>
Overloads Shared Function Update(ByVal mitarbeiterNr As Integer, ByVal vorname As String, ByVal name As String, ByVal kurzzeichen As String, ByVal anrede As String, _
ByVal tgNummer As String, ByVal eMail As String, ByVal fax As String, ByVal telefon As String, _
ByVal unterschriftText As String, ByVal spracheNr As Integer, ByVal fuerMandant As Integer, _
ByVal showTipp As Boolean, ByVal partnerNr As Integer, ByVal mandantNr As Integer, _
ByVal isAktiv As Boolean, ByVal mailEmpfang As Boolean, ByVal edokaMessage As Boolean, _
ByVal funktion As String, ByVal mailDirektVersenden As Boolean, ByVal rang As String, _
ByVal mailDokumentrueckgang As Boolean, ByVal klassifizierungNr As Integer, _
ByVal edokaMail As Boolean, ByVal journalisierung As Boolean, ByVal getMeldung As Boolean, _
ByVal mail1 As String, ByVal mutiererMitarbeiterNr As Integer)
Dim sqlConn As New SqlConnection()
Dim sqlCmd As New SqlCommand()
Try
sqlCmd.CommandText = "sp_UpdateMitarbeiter"
sqlCmd.CommandType = CommandType.StoredProcedure
sqlCmd.Connection = sqlConn
sqlCmd.Parameters.Add(New SqlParameter("@MitarbeiterNr", mitarbeiterNr))
sqlCmd.Parameters.Add(New SqlParameter("@Vorname", vorname))
sqlCmd.Parameters.Add(New SqlParameter("@Name", name))
sqlCmd.Parameters.Add(New SqlParameter("@KurzZeichen", kurzzeichen))
sqlCmd.Parameters.Add(New SqlParameter("@Anrede", anrede))
sqlCmd.Parameters.Add(New SqlParameter("@TgNummer", tgNummer))
sqlCmd.Parameters.Add(New SqlParameter("@eMail", eMail))
sqlCmd.Parameters.Add(New SqlParameter("@Fax", fax))
sqlCmd.Parameters.Add(New SqlParameter("@Telefon", telefon))
sqlCmd.Parameters.Add(New SqlParameter("@UnterschriftText", unterschriftText))
sqlCmd.Parameters.Add(New SqlParameter("@SpracheNr", spracheNr))
sqlCmd.Parameters.Add(New SqlParameter("@FuerMandantNr", fuerMandant))
sqlCmd.Parameters.Add(New SqlParameter("@ShowTipp", showTipp))
sqlCmd.Parameters.Add(New SqlParameter("@PartnerNr", partnerNr))
sqlCmd.Parameters.Add(New SqlParameter("@MandantNr", mandantNr))
sqlCmd.Parameters.Add(New SqlParameter("@Aktiv", isAktiv))
sqlCmd.Parameters.Add(New SqlParameter("@MutiererMitarbeiterNr", mutiererMitarbeiterNr))
sqlCmd.Parameters.Add(New SqlParameter("@MailEmpfang", mailEmpfang))
sqlCmd.Parameters.Add(New SqlParameter("@EdokaMessage", edokaMessage))
sqlCmd.Parameters.Add(New SqlParameter("@Funktion", funktion))
sqlCmd.Parameters.Add(New SqlParameter("@MailDirektVersenden", mailDirektVersenden))
sqlCmd.Parameters.Add(New SqlParameter("@Rang", rang))
sqlCmd.Parameters.Add(New SqlParameter("@MailDokumentRueckgang", mailDokumentrueckgang))
sqlCmd.Parameters.Add(New SqlParameter("@KlassifizierungNr", klassifizierungNr))
sqlCmd.Parameters.Add(New SqlParameter("@EdokaMail", edokaMail))
sqlCmd.Parameters.Add(New SqlParameter("@Journalisierung", journalisierung))
sqlCmd.Parameters.Add(New SqlParameter("@GebMeldung", getMeldung))
sqlCmd.Parameters.Add(New SqlParameter("@Mail1", mail1))
sqlConn.ConnectionString = Common.Datenbank.GetDSN()
sqlConn.Open()
sqlCmd.ExecuteNonQuery()
Catch ex As Exception
Throw ex
Finally
If sqlCmd Is Nothing Then
sqlCmd.Dispose()
End If
If sqlConn Is Nothing Then
sqlConn.Dispose()
End If
End Try
End Function
#End Region
End Class