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.

219 lines
7.9 KiB

Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Namespace db
Public Class Funktionstelle
Inherits db.clsFunktionstelle
#Region "Deklarationen"
Public daten As New DataTable
Public Neuer_Datensatz As Boolean = False
Public Mitarbeiterdaten As New DataTable
Dim mMutierer As String
Property MutiererText() As String
Get
Return mMutierer
End Get
Set(ByVal value As String)
mMutierer = value
End Set
End Property
#End Region
Sub New()
End Sub
Public Overloads Sub dispose()
MyBase.Dispose()
Try
Catch
End Try
End Sub
''' <summary>
''' Mutierer auslesen
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function Get_Mutierer(ByVal nr As Integer) As String
Dim ma As New DB.clsMitarbeiter
Dim dt As New DataTable
Dim Retvalue As String
ma.cpMainConnectionProvider = Globals.conn
ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32))
dt = ma.SelectOne()
If dt.Rows.Count = 0 Then
Retvalue = ("{" + nr.ToString + "}")
Else
Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString
End If
ma.Dispose()
dt.Dispose()
Return Retvalue
End Function
Public Function Get_Data(ByVal Nr As Integer)
Me.cpMainConnectionProvider = Globals.conn
Me.iFunktionstelleNr = New SqlInt32(CType(Nr, Int32))
Globals.conn.OpenConnection()
Me.daten = Me.SelectOne()
Globals.conn.CloseConnection(True)
Try
Catch ex As Exception
End Try
Me.MutiererText = Get_Mutierer(Me.iMutierer.Value)
End Function
Public Function Save_Data() As Integer
Me.cpMainConnectionProvider = Globals.conn
Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
Globals.conn.OpenConnection()
Me.Update()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = False
End Function
Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer
If Basenr <> 0 Then
Get_Data(Basenr)
End If
Dim db As New DB.clsMyKey_Tabelle
db.cpMainConnectionProvider = Globals.conn
Dim newkey = db.get_dbkey("Funktionstelle")
db.Dispose()
Me.cpMainConnectionProvider = Globals.conn
Me.iFunktionstelleNr = New SqlInt32(CType(newkey, Int32))
Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
Globals.conn.OpenConnection()
Me.Insert()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = True
Return newkey
End Function
''' <summary>
''' Löschen eines Datensatzes erstellen.
''' </summary>
''' <param name="Basenr">Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer
If Basenr <> 0 Then
Get_Data(Basenr)
End If
If bAktiv.Value = False Then Exit Function
Me.cpMainConnectionProvider = Globals.conn
Me.bAktiv = New SqlBoolean(CType(False, Boolean))
Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
Globals.conn.OpenConnection()
Me.Update()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = False
End Function
Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer
If Basenr <> 0 Then
Get_Data(Basenr)
End If
Me.cpMainConnectionProvider = Globals.conn
Globals.conn.OpenConnection()
MyBase.Delete()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = False
End Function
''' <summary>
''' Neue Person einfügen
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function Add_New() As Integer
Dim db As New DB.clsMyKey_Tabelle
db.cpMainConnectionProvider = Globals.conn
Dim newkey = db.get_dbkey("Funktionstelle")
db.Dispose()
Me.iFunktionstelleNr = New SqlInt32(CType(newkey, Int32))
Me.sBeschreibung = New SqlString(CType("", String))
Me.sBezeichnung = New SqlString(CType("", String))
Me.iSequenz = New SqlInt32(CType(1, Int32))
Me.bAktiv = New SqlBoolean(CType(True, Boolean))
Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
Me.cpMainConnectionProvider = Globals.conn
Globals.conn.OpenConnection()
Me.Insert()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = True
Return newkey
End Function
Public Function Get_Keyvalue() As Integer
Return Me.iFunktionstelleNr.Value
End Function
Public Function get_FunktionStelle_by_Funktionstelle(ByVal Funktionstelle As String) As Boolean
Dim sqlcmd As New SqlCommand
Dim connection As New SqlConnection()
connection.ConnectionString = Globals.sConnectionString
sqlcmd.CommandText = "dbo.sp_get_funktionstelle_by_funktionstelle"
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Parameters.Clear()
sqlcmd.Parameters.Add("@funktionstelle", SqlDbType.VarChar)
sqlcmd.Parameters.Add("@resultat", SqlDbType.VarChar)
sqlcmd.Parameters(0).Value = Funktionstelle
sqlcmd.Parameters(1).Value = ""
sqlcmd.Parameters(1).Direction = ParameterDirection.Output
sqlcmd.Parameters(1).Size = 1024
sqlcmd.Connection = connection
connection.Open()
Try
sqlcmd.ExecuteNonQuery()
Get_Data(sqlcmd.Parameters(1).Value)
Return True
Catch ex As Exception
Return False
Finally
connection.Close()
End Try
End Function
Public Function Get_aktive_Funktionsstellen() As DataTable
Dim fs As New db.clsFunktionstelle
fs.cpMainConnectionProvider = Globals.conn
Dim dt As New DataTable
dt = fs.SelectAll
Dim dn As New DataTable
dn.Columns.Add("Nr")
dn.Columns.Add("Bezeichnung")
dn.Columns.Add("Funktionstelle")
For Each r As DataRow In dt.Rows
If r("aktiv") = True And Trim(r("Bezeichnung").ToString) <> "" And Trim(r("Funktionsstelle").ToString) <> "" Then
Dim dnr As DataRow = dn.NewRow
dnr.Item(0) = r("FunktionstelleNr")
dnr.Item(1) = r("Bezeichnung")
dnr.Item(2) = r("Funktionsstelle")
dn.Rows.Add(dnr)
End If
Next
Return dn
End Function
End Class
End Namespace