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.
AssesmentMgmt/.svn/pristine/b5/b57ed5efdf85228d60ea3d2c103...

467 lines
19 KiB

Imports System
Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Imports DevComponents
Imports DropDownControls
Public Class clsMassnahmeplan
Inherits DB.clsMassnahmeplan
#Region "Deklarationen"
Public daten As New DataTable
Public Neuer_Datensatz As Boolean = False
Public Mitarbeiterdaten As New DataTable
Public Zeitpunkt As New DataTable
Public Periodizitaet As New DataTable
Public Prioritaet As New DataTable
Public VerantwortungISI As New DataTable
Public Verantwortung As New DataTable
Dim stammdaten As New DB.clsStammdaten
Dim SpaltenTitel As New Utils.Tabellenspalte
Dim Definition_Massnahmeplan As New DataTable
Dim clsDefinition_Massnahmeplan As New DB.clsDefinition_massnahmeplan
Public Terminierung 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()
MyBase.New()
Zeitpunkt = stammdaten.Get_Stammdaten("Zeitpunkt", "Beschreibung")
Periodizitaet = stammdaten.Get_Stammdaten("Periodizitaet", "Bezeichnung")
Prioritaet = stammdaten.Get_Stammdaten("Prioritaet", "Bezeichnung")
VerantwortungISI = stammdaten.Get_Stammdaten("VerantwortungIsi", "Bezeichnung")
Verantwortung = stammdaten.Get_Stammdaten("Verantwortung", "Bezeichnung")
Terminierung = stammdaten.Get_Stammdaten("Terminierung", "Bezeichnung")
End Sub
Public Overloads Sub dispose()
MyBase.Dispose()
Try
Me.Zeitpunkt.Dispose()
Me.Periodizitaet.Dispose()
Me.Prioritaet.Dispose()
Me.VerantwortungISI.Dispose()
Me.Verantwortung.Dispose()
Me.stammdaten = Nothing
Me.Definition_Massnahmeplan.Dispose()
Catch
End Try
End Sub
''' <summary>
''' Mutierer auslesen
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function Get_Mutierer(ByVal nr As Integer) As String
Try
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
Catch
Return ""
End Try
End Function
Public Function Get_Data(ByVal Nr As Integer)
Me.cpMainConnectionProvider = Globals.conn
Me.iMassnahmeplanNr = New SqlInt32(CType(Nr, Int32))
Globals.conn.OpenConnection()
Me.daten = Me.SelectOne()
Globals.conn.CloseConnection(True)
Try
Me.MutiererText = Get_Mutierer(Me.iMutierer.Value)
Catch ex As Exception
Me.MutiererText = ""
End Try
End Function
Public Function Save_Data() As Integer
Me.cpMainConnectionProvider = Globals.conn
Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr, 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("Massnahmeplan")
db.Dispose()
Me.cpMainConnectionProvider = Globals.conn
Me.iMassnahmeplanNr = 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.clsmitarbeiter.iMitarbeiternr, 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.clsmitarbeiter.iMitarbeiternr, 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("massnahmeplan")
db.Dispose()
Me.iMassnahmeplanNr = New SqlInt32(CType(newkey, Int32))
Me.daGueltig_Bis = New SqlDateTime(CType("31.12.2099", DateTime))
Me.iPrioritaetNr = New SqlInt32(CType(0, Int32))
Me.iPeriodizitaetNr = New SqlInt32(CType(0, Int32))
Me.iZeitpunktNr = New SqlInt32(CType(0, Int32))
Me.sBeschreibung = New SqlString(CType("", String))
Me.sPruefgegenstand = New SqlString(CType("", String))
Me.sHilfsmittel = New SqlString(CType("", String))
Me.sMassnahmen = New SqlString(CType("", String))
Me.iVerantwortungISINr = New SqlInt32(CType(0, Int32))
Me.sBeschreibung = New SqlString(CType("", String))
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.clsmitarbeiter.iMitarbeiternr, Int32))
Me.daErstmals_am = New SqlDateTime(CType(DateAdd(DateInterval.Day, 1, Now), DateTime))
Me.iTerminierungID = New SqlInt32(CType(0, Int32))
Me.cpMainConnectionProvider = Globals.conn
Try
Globals.conn.OpenConnection()
Me.Insert()
Globals.conn.CloseConnection(True)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Me.Neuer_Datensatz = True
Return Me.iMassnahmeplanNr.Value
End Function
Public Function Get_massnahmeplan(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer)
Try
Dim ds As New DataSet
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("", connection)
Dim sqlcmd As New SqlCommand
sqlcmd.CommandText = "sp_get_massnahmenplan"
sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key))
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Connection = connection
Try
connection.ConnectionString = Globals.sConnectionString
connection.Open()
da.SelectCommand = sqlcmd
da.Fill(ds, "Datatable1")
c1daten.DataSource = Nothing
c1daten.DataSource = ds.Tables(0)
c1daten.DataMember = ds.Tables(0).TableName
SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "massnahmeplan", ds.Tables(0))
Catch ex As Exception
MsgBox(ex.Message)
Finally
connection.Close()
da.Dispose()
sqlcmd.Dispose()
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Function Get_Eintraege(ByRef c1daten As C1.Win.C1TrueDBGrid.C1TrueDBGrid, ByVal Key As Integer, Optional Searchstring As String = "")
Try
Dim ds As New DataSet
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("", connection)
Dim sqlcmd As New SqlCommand
sqlcmd.CommandText = "sp_get_massnahmeplan"
sqlcmd.Parameters.Add(New SqlParameter("@key", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key))
sqlcmd.Parameters.Add(New SqlParameter("@Searchstring", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Searchstring))
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Connection = connection
Try
connection.ConnectionString = Globals.sConnectionString
connection.Open()
da.SelectCommand = sqlcmd
da.Fill(ds, "Datatable1")
c1daten.DataSource = Nothing
c1daten.DataSource = ds.Tables(0)
c1daten.DataMember = ds.Tables(0).TableName
SpaltenTitel.Spaltentitel_aktualisieren(c1daten, "massnahmeplan", ds.Tables(0))
Catch ex As Exception
MsgBox(ex.Message)
Finally
connection.Close()
da.Dispose()
sqlcmd.Dispose()
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Function Get_Definition_Massnahmeplan(ByVal Key As Integer, ByRef cb As CheckedListBox)
Me.Definition_Massnahmeplan.Rows.Clear()
Try
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("", connection)
Dim sqlcmd As New SqlCommand
sqlcmd.CommandText = "sp_get_definition_Massnahmeplan"
sqlcmd.Parameters.Add(New SqlParameter("@massnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key))
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Connection = connection
Try
connection.ConnectionString = Globals.sConnectionString
connection.Open()
da.SelectCommand = sqlcmd
da.Fill(Me.Definition_Massnahmeplan)
For Each r As DataRow In Definition_Massnahmeplan.Rows
cb.Items.Add(r.Item("Bezeichnung"), True)
Next
'cb.DataSource = Definition_massnahmeplan
'cb.ValueMember = "Definition_massnahmeplanNr"
'cb.DisplayMember = "Bezeichnung"
Catch ex As Exception
MsgBox(ex.Message)
Finally
connection.Close()
da.Dispose()
sqlcmd.Dispose()
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Function Add_new_Zuordnung(ByVal massnahmeplannr As Integer, DefinitionNr As Integer, nodetext As String, ByRef chkcb As CheckedListBox)
For Each r As DataRow In Me.Definition_Massnahmeplan.Rows
If r.Item(1) = DefinitionNr Then
MsgBox("Die Beziehung zu '" + nodetext + "' ist bereits vorhanden", vbExclamation)
Exit Function
End If
Next
Dim dr As DataRow = Me.Definition_Massnahmeplan.NewRow
dr.Item(1) = DefinitionNr
dr.Item(2) = massnahmeplannr
dr.Item(3) = "31.12.2099"
dr.Item(4) = True
dr.Item(5) = Now
dr.Item(6) = Now
dr.Item(7) = Globals.clsmitarbeiter.iMitarbeiternr.Value
dr.Item(8) = nodetext
Me.Definition_Massnahmeplan.Rows.Add(dr)
chkcb.Items.Add(nodetext + " | " + dr.Item(3).ToString, True)
End Function
Public Function Get_Definition_massnahmeplan(ByVal Key As Integer, ByRef tree As AdvTree.AdvTree)
Me.Definition_Massnahmeplan.Rows.Clear()
Try
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("", connection)
Dim sqlcmd As New SqlCommand
sqlcmd.CommandText = "sp_get_definition_massnahmeplan"
sqlcmd.Parameters.Add(New SqlParameter("@massnahmeplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Key))
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Connection = connection
Try
connection.ConnectionString = Globals.sConnectionString
connection.Open()
da.SelectCommand = sqlcmd
da.Fill(Me.Definition_Massnahmeplan)
Set_Zuordnungnodes(Definition_Massnahmeplan, tree)
Catch ex As Exception
MsgBox(ex.Message)
Finally
connection.Close()
da.Dispose()
sqlcmd.Dispose()
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Public Function Add_new_Zuordnung(ByVal Massnahmeplannr As Integer, DefinitionNr As Integer, nodetext As String, ByRef tree As AdvTree.AdvTree)
For Each r As DataRow In Me.Definition_Massnahmeplan.Rows
If r.Item(1) = DefinitionNr And (r(4) = True Or r(3) < Now) Then
MsgBox("Die Beziehung zu '" + nodetext + "' ist bereits vorhanden", vbExclamation)
Exit Function
End If
Next
Dim dr As DataRow = Me.Definition_Massnahmeplan.NewRow
dr.Item(0) = Format(Now, "ddhhmmss")
dr.Item(1) = DefinitionNr
dr.Item(2) = Massnahmeplannr
dr.Item(3) = "31.12.2099"
dr.Item(4) = True
dr.Item(5) = Now
dr.Item(6) = Now
dr.Item(7) = Globals.clsmitarbeiter.iMitarbeiternr.Value
dr.Item(8) = nodetext
Me.Definition_Massnahmeplan.Rows.Add(dr)
Set_Zuordnungnodes(Definition_Massnahmeplan, tree)
End Function
Sub Set_Zuordnungnodes(data As DataTable, ByRef tree As AdvTree.AdvTree)
tree.Nodes.Clear()
For Each r As DataRow In data.Rows
Dim tn As New AdvTree.Node
tn.Tag = r(0)
tn.Text = r(8)
tree.Nodes.Add(tn)
Dim tn1 As New AdvTree.Node
tn1.Text = r(3)
tn1.Tag = r(4)
tn.Nodes.Add(tn1)
tn.ImageIndex = 0
If r(3) < "31.12.2099" And r(3) > Now Then tn.ImageIndex = 3
If r(3) < Now Then tn.ImageIndex = 2
If r(4) = False Then tn.ImageIndex = 1
Next
End Sub
Public Sub Update_Zuordnung(ByVal ID As Integer, Aktiv As Boolean, gueltig As DateTime)
For Each r As DataRow In Me.Definition_Massnahmeplan.Rows
If r.Item(0) = ID Then
r(4) = Aktiv
r(3) = gueltig
End If
Next
End Sub
Public Function Save_Definition_massnahmeplan(ByRef tree As AdvTree.AdvTree)
clsDefinition_Massnahmeplan.sConnectionString = Globals.sConnectionString
For Each n As AdvTree.Node In tree.Nodes
For Each r As DataRow In Definition_Massnahmeplan.Rows
If r(0) = n.Tag Then
If r(0) > 100000 Then
clsDefinition_Massnahmeplan.iDefinitionNr = New SqlInt32(CType(r(1), Int32))
clsDefinition_Massnahmeplan.imassnahmeplanNr = New SqlInt32(CType(r(2), Int32))
clsDefinition_Massnahmeplan.daGueltig_Bis = New SqlDateTime(CType(r(3), DateTime))
clsDefinition_Massnahmeplan.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
clsDefinition_Massnahmeplan.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
clsDefinition_Massnahmeplan.bAktiv = New SqlBoolean(CType(True, Boolean))
clsDefinition_Massnahmeplan.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32))
conn.OpenConnection()
clsDefinition_Massnahmeplan.Insert()
conn.CloseConnection(True)
Else
clsDefinition_Massnahmeplan.iDefinition_massnahmeplanNr = New SqlInt32(CType(r(0), Int32))
clsDefinition_Massnahmeplan.cpMainConnectionProvider = Globals.conn
clsDefinition_Massnahmeplan.SelectOne()
Dim tn1 As New AdvTree.Node
tn1 = n.Nodes(0)
If tn1.Tag <> clsDefinition_Massnahmeplan.bAktiv.Value Or tn1.Text <> clsDefinition_Massnahmeplan.daGueltig_Bis.Value Then
clsDefinition_Massnahmeplan.iDefinition_massnahmeplanNr = New SqlInt32(CType(r(0), Int32))
clsDefinition_Massnahmeplan.cpMainConnectionProvider = Globals.conn
clsDefinition_Massnahmeplan.SelectOne()
clsDefinition_Massnahmeplan.iDefinitionNr = New SqlInt32(CType(r(1), Int32))
clsDefinition_Massnahmeplan.imassnahmeplanNr = New SqlInt32(CType(r(2), Int32))
clsDefinition_Massnahmeplan.daGueltig_Bis = New SqlDateTime(CType(r(3), DateTime))
clsDefinition_Massnahmeplan.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
clsDefinition_Massnahmeplan.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
clsDefinition_Massnahmeplan.bAktiv = New SqlBoolean(CType(tn1.Tag, Boolean))
clsDefinition_Massnahmeplan.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32))
conn.OpenConnection()
clsDefinition_Massnahmeplan.Update()
conn.CloseConnection(True)
End If
End If
End If
Next
Next
End Function
End Class