Imports C1.Win.C1TrueDBGrid
Imports System
Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Namespace TKB.VV.Vertrag
'''
'''
'''
'''
'''
'''
'''
''' yes
Public Class clsVertragselement
Inherits TKB.VV.DB.clsVertragselement
#Region "Deklarationen"
Private Stammdaten As New TKB.VV.Stammdaten.clsStammdaten
Public Vertragselement As TKB.VV.DB.clsVertragselement
Private Vertragspartner As New TKB.VV.Vertrag.clsVertragspartner
'Private vertragstyp As New TKB.VV.DB.clsVertragstyp
Public Vertragstypen As New DataTable
'Private Applikation As New TKB.VV.DB.clsApplikation
Public Applikationen As New DataTable
'Private Lizenztyp As New TKB.VV.DB.clsLizenztyp
Public Lizenztypen As New DataTable
Public Parentelemente As New TKB.VV.Vertrag.clsParentelemente
Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder
Public Lizenzinformationen As New clsLizenzinformationen
Public Neuer_Datensatz As Boolean = False
Public IsLizenzElement As Boolean = False
ReadOnly Property Vertragspartnername() As String
Get
Try
Return Vertragspartner.Get_Vertragspartnername(Me.iVertragspartnerNr.Value)
Catch ex As Exception
Return ""
End Try
End Get
End Property
#End Region
Sub New()
' vertragstyp.cpMainConnectionProvider = Globals.conn
' Vertragstypen = vertragstyp.SelectAll
Vertragstypen = Stammdaten.Get_Stammdaten("Vertragstyp", "Vertragstyp")
' Applikation.cpMainConnectionProvider = Globals.conn
' Applikationen = Applikation.SelectAll()
Applikationen = Stammdaten.Get_Stammdaten("Applikation", "Bezeichnung")
' Lizenztyp.cpMainConnectionProvider = Globals.conn
' Lizenztypen = Lizenztyp.SelectAll
Lizenztypen = Stammdaten.Get_Stammdaten("Lizenztyp", "Bezeichnung")
End Sub
Public Overloads Sub dispose()
MyBase.Dispose()
Try
'vertragstyp.Dispose()
Vertragstypen.Dispose()
'Applikation.Dispose()
Applikationen.Dispose()
'Lizenztyp.Dispose()
Lizenztypen.Dispose()
Vertragspartner.dispose()
Me.Lizenzinformationen.Dispose()
Catch
End Try
End Sub
'''
''' Vertragselement lesen
'''
''' Vertragselementnr
'''
'''
Public daten As New DataTable
Public Function Get_Vertragselement(ByVal Nr As Integer)
Me.cpMainConnectionProvider = Globals.conn
Me.iVertragselementnr = New SqlInt32(CType(Nr, Int32))
Globals.conn.OpenConnection()
Me.daten = Me.SelectOne()
Me.IsLizenzElement = Me.Lizenzinformationen.Check_Vertragstyp_Fuer_Lizenz(Me.iVertragstypNr.Value)
Globals.conn.CloseConnection(True)
Try
Vertragspartner.Get_Partner(Me.iVertragspartnerNr.Value)
Catch ex As Exception
End Try
End Function
'''
''' Vertragselement sichern
'''
'''
'''
Public Function Save_Data() As Integer
Me.cpMainConnectionProvider = Globals.conn
Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32))
Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
Globals.conn.OpenConnection()
Me.Update()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = False
End Function
'''
''' Kopie eines Datensatzes erstellen.
'''
''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen
'''
'''
Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer
If Basenr <> 0 Then
Get_Vertragselement(Basenr)
End If
Dim db As New TKB.VV.DB.clsMyKey_Tabelle
db.cpMainConnectionProvider = Globals.conn
Dim newkey = db.get_dbkey("Vertragselement")
db.Dispose()
Me.cpMainConnectionProvider = Globals.conn
Me.iVertragselementnr = 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.Value, Int32))
Globals.conn.OpenConnection()
Me.Insert()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = True
Return newkey
End Function
'''
''' Löschen eines Datensatzes erstellen.
'''
''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen
'''
'''
Public Function Delete_Vertragselement(Optional ByVal Basenr As Integer = 0) As Integer
If Basenr <> 0 Then
Get_Vertragselement(Basenr)
End If
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.Value, Int32))
Globals.conn.OpenConnection()
Me.Update()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = False
End Function
'''
''' Löschen eines Datensatzes erstellen.
'''
''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen
'''
'''
Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer
If Basenr <> 0 Then
Get_Vertragselement(Basenr)
End If
Me.cpMainConnectionProvider = Globals.conn
Globals.conn.OpenConnection()
MyBase.Delete()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = False
End Function
'''
''' Neue Person einfügen
'''
'''
'''
Public Function Add_New(ByVal Vertragspartnernr As Integer) As Integer
Dim db As New TKB.VV.DB.clsMyKey_Tabelle
db.cpMainConnectionProvider = Globals.conn
Dim newkey = db.get_dbkey("Vertragselement")
db.Dispose()
Me.iVertragselementnr = New SqlInt32(CType(newkey, Int32))
Me.iVertragstypNr = New SqlInt32(CType(1, Int32))
Me.iVertragspartnerNr = New SqlInt32(CType(Vertragspartnernr, Int32))
Me.iParentID = New SqlInt32(CType(0, Int32))
Me.sBezeichnung = New SqlString(CType("", String))
Me.sBeschreibung = New SqlString(CType("", String))
Me.sVersion = New SqlString(CType("", String))
Me.daVersionsdatum = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.daVertragsbeginn = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.daVertragsablauf = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.daMindestvertragsdauer_bis = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.daUnterzeichnet_am = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.daGekuendigt_am = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.daGekuendigt_per = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
Me.sNummer = 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.Value, Int32))
Me.iSecurityLevelNr = New SqlInt32(CType(0, Int32))
Me.cpMainConnectionProvider = Globals.conn
Me.iApplikationNr = New SqlInt32(CType(0, Int32))
Me.iLizenztypnr = New SqlInt32(CType(0, Int32))
Globals.conn.OpenConnection()
Me.Insert()
Globals.conn.CloseConnection(True)
Me.Neuer_Datensatz = True
Return newkey
End Function
'''
''' Vertragspartner für das Vertragselement suchen
'''
'''
'''
'''
'''
Public Function Vertragspartner_suchen(ByRef Vertragspartnernummer As Integer, ByRef Partnername As TextBox) As Boolean
Dim save_Vertragspartnernr As Integer = Vertragspartnernummer
If Me.Vertragspartner.Vertragspartner_Suchen(Vertragspartnernummer) = True Then
Me.iVertragspartnerNr = New SqlInt32(CType(Vertragspartnernummer, Int32))
Partnername.Text = Me.Vertragspartnername
If Me.iVertragspartnerNr.Value <> save_Vertragspartnernr Then Return True Else Return False
End If
End Function
'''
''' Suchen eines Vertragselementes
'''
'''
'''
'''
Public Function Suchen(ByRef Vertragselementnr As Integer) As Boolean
Dim vesuche As New frmVertragselementSuche
vesuche.ShowDialog()
Try
If vesuche.DialogResult = DialogResult.OK Then
Vertragselementnr = vesuche.Vertragselementnr
Return True
Else
Vertragselementnr = -1
Return False
End If
Catch ex As Exception
Return False
Finally
vesuche.dispose()
End Try
End Function
#Region "Kündigungsfristen"
#Region "Deklarationen"
Public Kuendigungsfristen As TKB.VV.Sysadmin.DomainTable
Public Kuendigungsfrist As New TKB.VV.Vertrag.clsKuendigungsfrist
#End Region
'''
''' Kündiguntsfristen lasen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Kündigungsfristen
'''
'''
Public Function Get_Kuendigungsfristen(ByRef c1data As C1TrueDBGrid)
Try
Kuendigungsfristen.dispose()
Kuendigungsfristen = Nothing
Catch ex As Exception
End Try
Kuendigungsfristen = New TKB.VV.Sysadmin.DomainTable("Kuendigungsfrist", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Kuendigungsfristen.Tabledata
c1data.DataMember = Kuendigungsfristen.Tabledata.Tables(0).TableName
End Function
'''
''' Kündiguntsfristen lasen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Kündigungsfristen
''' Vertragselement, für welches die Kündigungsfristen geladen werden sollen
'''
'''
Public Function Get_Kuendigungsfristen(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
If Vertragselementnr <> -1 Then Me.Get_Vertragselement(Vertragselementnr)
Try
Kuendigungsfristen.dispose()
Kuendigungsfristen = Nothing
Catch ex As Exception
End Try
If Vertragselementnr <> -1 Then
Me.Get_Vertragselement(Vertragselementnr)
End If
Kuendigungsfristen = New TKB.VV.Sysadmin.DomainTable("Kuendigungsfrist", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Kuendigungsfristen.Tabledata
c1data.DataMember = Kuendigungsfristen.Tabledata.Tables(0).TableName
End Function
#End Region
#Region "Vertragskontakte"
#Region "Deklarationen"
Public Vertragskontakte As TKB.VV.Sysadmin.DomainTable
Public Vertragskontakt As New TKB.VV.Vertrag.clsKontakt
#End Region
'''
''' Kontakte auslesen und dem TrueDBGrid übergeben
'''
''' C1TrueDBGrid
'''
'''
Public Function Get_Vertragskontakte(ByRef c1data As C1TrueDBGrid)
Try
Vertragskontakte.dispose()
Vertragskontakte = Nothing
Catch ex As Exception
End Try
Vertragskontakte = New TKB.VV.Sysadmin.DomainTable("Vertragskontakt", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Vertragskontakte.Tabledata
c1data.DataMember = Vertragskontakte.Tabledata.Tables(0).TableName
End Function
'''
''' Kontakte auslesen und dem TrueDBGrid übergeben
'''
''' C1TrueDBGrid
''' Vertragselement, für welches die Kontakte ausgelesen werden
'''
'''
Public Function Get_Vertragskontakte(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
Vertragskontakte = New TKB.VV.Sysadmin.DomainTable("Vertragskontakt", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Vertragskontakte.Tabledata
c1data.DataMember = Vertragskontakte.Tabledata.Tables(0).TableName
End Function
#End Region
#Region "Dokumente"
Public dokumente As New DataTable
Public Dokument As New TKB.VV.DMS.clsDok
'''
''' Dokumente lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Dokumente(ByRef c1data As C1TrueDBGrid, Optional ByVal ImgList As ImageList = Nothing)
Try
dokumente.dispose()
dokumente = Nothing
Catch ex As Exception
End Try
'dokumente = Dokument.get
dokumente = Dokument.Get_Dokumente(Me.iVertragselementnr.Value, 1)
c1data.DataSource = dokumente
c1data.DataMember = dokumente.TableName
If Not ImgList Is Nothing Then
Set_Imagevalues(c1data, ImgList)
End If
End Function
Private Sub Set_Imagevalues(ByRef c1data As C1TrueDBGrid, ByRef imglist As ImageList)
Dim i As Integer
Dim s As String
For i = 0 To dokumente.Rows.Count - 1
s = dokumente.Rows(i).Item("Filename")
If Len(s) < 4 Then s = ".div"
Select Case UCase(s.Substring(Len(s) - 4, 4))
Case ".PDF"
dokumente.Rows(i).Item("DokIcon") = 0
Case ".DOC"
dokumente.Rows(i).Item("DokIcon") = 1
Case ".XLS"
dokumente.Rows(i).Item("DokIcon") = 2
Case ".PPT"
dokumente.Rows(i).Item("DokIcon") = 3
Case ".HTM", "TML", "XML"
dokumente.Rows(i).Item("DokIcon") = 4
Case ".MSG"
dokumente.Rows(i).Item("DokIcon") = 5
Case Else
dokumente.Rows(i).Item("DokIcon") = 6
End Select
Next
Dim bmp0 As New Bitmap(imglist.Images(0))
Dim bmp1 As New Bitmap(imglist.Images(1))
Dim bmp2 As New Bitmap(imglist.Images(2))
Dim bmp3 As New Bitmap(imglist.Images(3))
Dim bmp4 As New Bitmap(imglist.Images(4))
Dim bmp5 As New Bitmap(imglist.Images(5))
Dim bmp6 As New Bitmap(imglist.Images(6))
Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v4 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v5 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v6 As New C1.Win.C1TrueDBGrid.ValueItem()
v0.DisplayValue = bmp0
v0.Value = 0
v1.DisplayValue = bmp1
v1.Value = 1
v2.DisplayValue = bmp2
v2.Value = 2
v3.DisplayValue = bmp3
v3.Value = 3
v4.DisplayValue = bmp4
v4.Value = 4
v5.DisplayValue = bmp5
v5.Value = 5
v6.DisplayValue = bmp6
v6.Value = 6
c1data.Columns("dokicon").ValueItems.Values.Add(v0)
c1data.Columns("dokicon").ValueItems.Values.Add(v1)
c1data.Columns("dokicon").ValueItems.Values.Add(v2)
c1data.Columns("dokicon").ValueItems.Values.Add(v3)
c1data.Columns("dokicon").ValueItems.Values.Add(v4)
c1data.Columns("dokicon").ValueItems.Values.Add(v5)
c1data.Columns("dokicon").ValueItems.Values.Add(v6)
c1data.Columns("dokicon").ValueItems.Translate = True
End Sub
'''
''' Kontakte auslesen und dem Truedbgrid übergeben
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Dokumente(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer, Optional ByVal ImgList As ImageList = Nothing)
Me.Get_Vertragselement(Vertragselementnr)
dokumente = Dokument.Get_Dokumente(Me.iVertragselementnr.Value, 1)
c1data.DataSource = dokumente
c1data.DataMember = dokumente.TableName
If Not ImgList Is Nothing Then
Me.Set_Imagevalues(c1data, ImgList)
End If
End Function
#End Region
#Region "Vertragsereignisse"
Public Vertragsereignisse As TKB.VV.Sysadmin.DomainTable
Public Vertragsereignis As New TKB.VV.Vertrag.clsVertragsereignis
'''
''' Dokumente lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Vertragsereignisse(ByRef c1data As C1TrueDBGrid)
Try
Vertragsereignis.dispose()
dokumente = Nothing
Catch ex As Exception
End Try
Vertragsereignisse = New TKB.VV.Sysadmin.DomainTable("Vertragsereignis", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Vertragsereignisse.Tabledata
c1data.DataMember = Vertragsereignisse.Tabledata.Tables(0).TableName
End Function
'''
''' Kontakte auslesen und dem Truedbgrid übergeben
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Vertragsereignisse(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
Vertragsereignisse = New TKB.VV.Sysadmin.DomainTable("Vertragsereignis", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Vertragsereignisse.Tabledata
c1data.DataMember = Vertragsereignisse.Tabledata.Tables(0).TableName
End Function
'''
''' Gibt die Bezeichnung eines Vertragselementes zurück
'''
'''
'''
'''
Public Function Get_Vertragselementbezeichnung(ByVal Vertragselementnr As Integer) As String
Me.iVertragselementnr = New SqlInt32(CType(Vertragselementnr, Int32))
Me.cpMainConnectionProvider = Globals.conn
Me.SelectOne()
Return Me.sBezeichnung.Value
End Function
#End Region
#Region "Pendenzen"
Public Pendenzen As TKB.VV.Sysadmin.DomainTable
Public Pendenz As New TKB.VV.Vertrag.clsPendenz
'''
''' Referenzverträge lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Pedenzen(ByRef c1data As C1TrueDBGrid)
Try
Pendenz.Dispose()
dokumente = Nothing
Catch ex As Exception
End Try
Pendenzen = New TKB.VV.Sysadmin.DomainTable("Pendenz", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Pendenzen.Tabledata
c1data.DataMember = Pendenzen.Tabledata.Tables(0).TableName
End Function
'''
''' Pendenzen auslesen und dem Truedbgrid übergeben.
''' Ist im Feld Termin der Wert "01.01.1900" wird dieser durch NULL ersetzt
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Pendenzen(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
Pendenzen = New TKB.VV.Sysadmin.DomainTable("Pendenz", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
Dim i As Integer = 0
For i = 0 To Pendenzen.Tabledata.Tables(0).Rows.Count - 1
If Pendenzen.Tabledata.Tables(0).Rows(i).Item("Termin") = "01.01.1900" Then
Pendenzen.Tabledata.Tables(0).Rows(i).Item("Termin") = System.DBNull.Value
End If
Next
c1data.DataSource = Pendenzen.Tabledata
c1data.DataMember = Pendenzen.Tabledata.Tables(0).TableName
End Function
#End Region
#Region "Vertragsreferenz"
Public Vertragselement_Referenzen As TKB.VV.Sysadmin.DomainTable
Public Vertragselement_Referenz As New TKB.VV.Vertrag.clsReferenzvertrag
'''
''' Referenzverträge lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Vertragselement_Referenzen(ByRef c1data As C1TrueDBGrid)
Try
Vertragselement_Referenz.dispose()
Vertragselement_Referenzen = Nothing
Catch ex As Exception
End Try
Vertragselement_Referenzen = New TKB.VV.Sysadmin.DomainTable("Vertragselement_Referenz", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Vertragselement_Referenzen.Tabledata
c1data.DataMember = Vertragselement_Referenzen.Tabledata.Tables(0).TableName
End Function
'''
''' Pendenzen auslesen und dem Truedbgrid übergeben.
''' Ist im Feld Termin der Wert "01.01.1900" wird dieser durch NULL ersetzt
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Vertragselement_Referenzen(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
Vertragselement_Referenzen = New TKB.VV.Sysadmin.DomainTable("Vertragselement_Referenz", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
Dim i As Integer = 0
c1data.DataSource = Vertragselement_Referenzen.Tabledata
c1data.DataMember = Vertragselement_Referenzen.Tabledata.Tables(0).TableName
End Function
#End Region
#Region "Services"
Public Services As TKB.VV.Sysadmin.DomainTable
Public Service As New TKB.VV.Vertrag.clsVertragsleistung
'''
''' Vertragsleistungen lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Services(ByRef c1data As C1TrueDBGrid)
Try
Service.Dispose()
Services = Nothing
Catch ex As Exception
End Try
Services = New TKB.VV.Sysadmin.DomainTable("Vertragsleistung", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Services.Tabledata
c1data.DataMember = Services.Tabledata.Tables(0).TableName
End Function
'''
''' Services / Vertragsleistungen auslesen und dem Truedbgrid übergeben.
''' Ist im Feld Termin der Wert "01.01.1900" wird dieser durch NULL ersetzt
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Services(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
Services = New TKB.VV.Sysadmin.DomainTable("Vertragsleistung", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
Dim i As Integer = 0
c1data.DataSource = Services.Tabledata
c1data.DataMember = Services.Tabledata.Tables(0).TableName
End Function
'''
''' Neuer Serice/Leistung als Vertragsleistung hinzufügen
'''
''' Nr des aktuellen Vertragselementes
''' Formular welches für die MDI.Parent-Eigenschaft benötigt wird
'''
'''
Public Function Add_Service(ByRef vertragselementnr As Integer, ByRef ParentForm As Form)
Dim i As Integer = Service.Add_New(vertragselementnr)
Dim f As New frmServicekatalog(Service.iServicekatalogNr.Value, False, True, i, True)
f.MdiParent = ParentForm.MdiParent
f.Show()
End Function
'''
''' Vertragsleistung physisch löschen, wenn keine Leistung selektiert wurde
'''
'''
'''
Private Sub evh_KeineLeistungSelektiert(ByVal Vertragsleistungsnr As Integer) Handles evh.KeineLeistungSelektiert
Service.Delete(Vertragsleistungsnr)
End Sub
'''
''' Speichert das Vertragsleistungselement aufgrund der Auswahl im
''' frmServicekaltalog
'''
''' Vertragsleistungsnummer
''' Gewählte ServicekatalogNr
'''
Private Sub evh_LeistungSelektiert(ByVal Vertragsleistungsnr As Integer, ByVal Servicekatalognr As Integer) Handles evh.LeistungSelektiert
Service.Get_Vertragsleistung(Vertragsleistungsnr)
Service.iServicekatalogNr = New SqlInt32(CType(Servicekatalognr, Int32))
Service.Save_Data()
End Sub
#End Region
#Region "History"
Public History As TKB.VV.Sysadmin.DomainTable
'''
''' History lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit History
'''
'''
Public Function Get_History(ByRef c1data As C1TrueDBGrid)
Try
History = Nothing
Catch ex As Exception
End Try
History = New TKB.VV.Sysadmin.DomainTable("History", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = History.Tabledata
c1data.DataMember = History.Tabledata.Tables(0).TableName
End Function
'''
''' Services / Vertragsleistungen auslesen und dem Truedbgrid übergeben.
''' Ist im Feld Termin der Wert "01.01.1900" wird dieser durch NULL ersetzt
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_History(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
History = New TKB.VV.Sysadmin.DomainTable("History", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
Dim i As Integer = 0
c1data.DataSource = History.Tabledata
c1data.DataMember = History.Tabledata.Tables(0).TableName
End Function
#End Region
#Region "Applikationen"
Public VertragselementApplikationen As TKB.VV.Sysadmin.DomainTable
Public VertragselementApplikation As New TKB.VV.Vertrag.clsVertragselementApplikation
'''
''' Applikationen lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Applikationen(ByRef c1data As C1TrueDBGrid)
Try
VertragselementApplikationen.dispose()
VertragselementApplikationen = Nothing
Catch ex As Exception
End Try
VertragselementApplikationen = New TKB.VV.Sysadmin.DomainTable("VertragselementApplikation", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = VertragselementApplikationen.Tabledata
c1data.DataMember = VertragselementApplikationen.Tabledata.Tables(0).TableName
End Function
'''
''' Applikationen auslesen und dem Truedbgrid übergeben.
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Applikationen(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
VertragselementApplikationen = New TKB.VV.Sysadmin.DomainTable("VertragselementApplikation", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
Dim i As Integer = 0
c1data.DataSource = VertragselementApplikationen.Tabledata
c1data.DataMember = VertragselementApplikationen.Tabledata.Tables(0).TableName
End Function
#End Region
#Region "Aktivitaeten"
Public Aktivitaeten As TKB.VV.Sysadmin.DomainTable
Public aktivitaet As New TKB.VV.DB.clsAktivitaet
'''
''' Aktivitaeten lesen und dem Grid übergeben
'''
''' C1TrueDBGrid mit Dokumente
'''
'''
Public Function Get_Aktivitaeten(ByRef c1data As C1TrueDBGrid)
Try
Aktivitaeten.dispose()
Aktivitaeten = Nothing
Catch ex As Exception
End Try
Aktivitaeten = New TKB.VV.Sysadmin.DomainTable("Aktivitaet", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Aktivitaeten.Tabledata
c1data.DataMember = Aktivitaeten.Tabledata.Tables(0).TableName
End Function
'''
''' Aktivitaeten auslesen und dem Truedbgrid übergeben.
'''
''' TruedbGrid
''' Vertragselement, für welches die Dokumente ausgelesen werden
'''
'''
Public Function Get_Aktivitaeten(ByRef c1data As C1TrueDBGrid, ByVal Vertragselementnr As Integer)
Me.Get_Vertragselement(Vertragselementnr)
Aktivitaeten = New TKB.VV.Sysadmin.DomainTable("Aktivitaet", Me.iVertragselementnr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value)
Dim i As Integer = 0
c1data.DataSource = Aktivitaeten.Tabledata
c1data.DataMember = Aktivitaeten.Tabledata.Tables(0).TableName
End Function
#End Region
End Class
Public Class clsParentelemente
Private fnt_Strikeout As Font
Private fnt_normal As Font
'''
''' Treedaten ab Datenbank laden
'''
'''
'''
Dim xvertragspartnernr As Integer
Public Function Load_ParentElemente(ByVal vertragspartnernr As Integer, ByVal Parentid As Integer, ByRef Tree As TreeView)
Dim dt As New DataTable
fnt_Strikeout = New System.Drawing.Font(Tree.Font.FontFamily, Tree.Font.Size, FontStyle.Strikeout)
fnt_normal = New System.Drawing.Font(Tree.Font.FontFamily, Tree.Font.Size, FontStyle.Regular)
Dim tn As New TreeNode
dt = Me.Get_SubStruktur(0, vertragspartnernr, 1)
Tree.ShowLines = True
Tree.ShowRootLines = False
Tree.SuspendLayout()
Tree.Visible = True
Tree.Nodes.Clear()
tn = Tree.Nodes.Add("--- kein übergeordnetes Element ---")
tn.Tag = 0
Me.Update_Node(dt, Tree)
Tree.ExpandAll()
Tree.SelectedNode = Me.FindNode(Tree.Nodes, Parentid, "")
End Function
'''
''' Parent-Beziehung herstellen und Struktur abfüllen
'''
'''
'''
'''
Private Sub Update_Node(ByVal oSourceData As DataTable, ByVal Tree As TreeView)
If Not (oSourceData Is Nothing) Then
Dim oView As DataView = oSourceData.DefaultView
Dim oTable As DataTable = oView.Table
Dim oDS As DataSet = New DataSet()
oDS.Tables.Add(oTable.Copy())
If oDS.Relations.Contains("SelfRefenceRelation") = False Then
oDS.Relations.Add("SelfRefenceRelation", _
oDS.Tables(0).Columns("Vertragselementnr"), _
oDS.Tables(0).Columns("Parentid"))
End If
oTable.Dispose()
oTable = Nothing
LoadNode(oDS, Tree)
oDS.Dispose()
oDS = Nothing
End If
End Sub
'''
''' Tree aufbauen
'''
''' Input-Dataset
''' Aktueller Node
''' Type Vertragspartner oder Vertragstyp
'''
Private Sub LoadNode(ByVal oDS As DataSet, ByRef oNode As TreeView)
'Dim oTreeView As TreeView = New TreeView()
Dim oDataRow As DataRow
For Each oDataRow In oDS.Tables(0).Rows
If Not oDataRow.IsNull("Parentid") Then
If oDataRow.Item("Parentid") = 0 Then
'If oDataRow.IsNull("Parentid") Then
Dim oNode1 As New TreeNode()
oNode1.Text = oDataRow("Bezeichnung").ToString()
oNode1.Tag = oDataRow("vertragselementnr").ToString
If oDataRow.Item("aktiv") = 0 Then
oNode1.NodeFont = Me.fnt_Strikeout
oNode1.ImageIndex = 3
oNode1.SelectedImageIndex = 3
oNode1.StateImageIndex = 3
Else
oNode1.NodeFont = Me.fnt_normal
oNode1.ImageIndex = 1
oNode1.SelectedImageIndex = 1
oNode1.StateImageIndex = 1
End If
oNode.Nodes.Add(oNode1)
RecursivelyLoadNode(oDataRow, oNode1)
End If
End If
Next oDataRow
oDS.Dispose()
oDS = Nothing
End Sub
'''
''' Child-Nodes hinzufügen
'''
'''
'''
'''
Private Sub RecursivelyLoadNode(ByVal oDataRow As DataRow, ByRef oNode As TreeNode)
Dim oChildRow As DataRow
For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation")
Dim oChildNode As New TreeNode()
oChildNode.Text = oChildRow("Bezeichnung").ToString()
oChildNode.Tag = oChildRow("Vertragselementnr").ToString
If oChildRow.Item("aktiv") = 0 Then
oChildNode.NodeFont = Me.fnt_Strikeout
oChildNode.ImageIndex = 3
oChildNode.SelectedImageIndex = 3
oChildNode.StateImageIndex = 3
Else
oChildNode.NodeFont = Me.fnt_normal
oChildNode.ImageIndex = 1
oChildNode.SelectedImageIndex = 1
oChildNode.StateImageIndex = 1
End If
oNode.Nodes.Add(oChildNode)
If oNode.ImageIndex = 3 Then
oNode.ImageIndex = 2
oNode.StateImageIndex = 2
oNode.SelectedImageIndex = 2
Else
oNode.ImageIndex = 0
oNode.StateImageIndex = 0
oNode.SelectedImageIndex = 0
End If
RecursivelyLoadNode(oChildRow, oChildNode)
Next oChildRow
End Sub
'''
''' Laden der Substruktur
'''
''' Nummer des aktuellen Vertragspartners
'''
'''
Private Function Get_SubStruktur(ByVal vertragstypnr As Integer, ByVal Vertragspartnernr As Integer, ByVal Details_anzeigen As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_vertragselement_parent_struktur"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@vertragspartnernr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Vertragspartnernr))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
Throw New Exception("clsParentelemente::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
'''
''' Suchen eines Knoten Treeview
'''
''' Nodes des TreeView
''' Tag.Keyvalue
''' Node.Text als Suchbegriff
'''
'''
Public Function FindNode(ByVal _nodeCollection As TreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As TreeNode
Dim tmpNode As TreeNode
For Each _child As TreeNode In _nodeCollection
If _child.Tag = SearchVal Then
Return _child
End If
tmpNode = FindNode(_child.Nodes, SearchVal, SearchString)
If Not tmpNode Is Nothing Then
Return tmpNode
End If
Next
Return Nothing
End Function
End Class
'''
''' Klasse für die Verwaltung der Lizenzinformationen eines Vertragselementes bzw. einer Applikation
'''
'''
Public Class clsLizenzinformationen
'''
''' Domaintable für Lizenkauf
'''
'''
Public Lizenzkauf As TKB.VV.Sysadmin.DomainTable
'''
''' Domaintable für Lizenzschlüssel
'''
'''
Public Lizenzschluessel As TKB.VV.Sysadmin.DomainTable
'''
''' Destructor Dispose für umd die beiden Domaintables frei zu geben
'''
'''
Sub Dispose()
If Me.Lizenzkauf.Tabledata.HasChanges Then
Dim msg As New TKB.VV.Utils.MyMessage
If msg.Show_MessageYesNoCancel(800) = MsgBoxResult.Yes Then
Me.Lizenzkauf.Save_Data()
End If
msg.dispose()
End If
Me.Lizenzkauf.dispose()
Me.Lizenzkauf = Nothing
If Me.Lizenzschluessel.Tabledata.HasChanges Then
Dim msg As New TKB.VV.Utils.MyMessage
If msg.Show_MessageYesNoCancel(801) = MsgBoxResult.Yes Then
Me.Lizenzkauf.Save_Data()
End If
msg.dispose()
End If
Me.Lizenzschluessel.dispose()
Me.Lizenzschluessel = Nothing
End Sub
'''
''' Laufinformationen eines Lizenz-Vertragselementes auslesen und dem Grid übergeben
'''
''' Nr. Des Lizenz-Vertragselementes
''' C1TrueDBGrid
'''
'''
Public Function Get_Lizenzkauf(ByVal Vertragselementnr As Integer, ByRef c1data As C1TrueDBGrid, ByVal Applikationnr As Integer)
Try
Me.Lizenzkauf.dispose()
Me.Lizenzkauf = Nothing
Catch ex As Exception
End Try
Me.Lizenzkauf = New TKB.VV.Sysadmin.DomainTable("Lizenzkauf", 0, Vertragselementnr, Globals.clsmitarbeiter.iMitarbeiternr.Value, Applikationnr)
c1data.DataSource = Me.Lizenzkauf.Tabledata
c1data.DataMember = Me.Lizenzkauf.Tabledata.Tables(0).TableName
c1data.AllowAddNew = True
End Function
'''
''' Daten der Domaintable Lizenzkauf sichern
'''
'''
Public Sub Save_Lizenzkauf()
Me.Lizenzkauf.Save_Data()
End Sub
Public Function Get_Lizenzschluessel(ByVal Lizenzkaufnr As Integer, ByRef c1data As C1TrueDBGrid)
Try
Me.Lizenzschluessel.dispose()
Me.Lizenzschluessel = Nothing
Catch ex As Exception
End Try
Me.Lizenzschluessel = New TKB.VV.Sysadmin.DomainTable("Lizenzschluessel", 0, Lizenzkaufnr, Globals.clsmitarbeiter.iMitarbeiternr.Value)
c1data.DataSource = Me.Lizenzschluessel.Tabledata
c1data.DataMember = Me.Lizenzschluessel.Tabledata.Tables(0).TableName
c1data.AllowAddNew = True
End Function
Public Sub Save_Lizenzschluessel()
Me.Lizenzkauf.Save_Data()
End Sub
Public Function Check_Vertragstyp_Fuer_Lizenz(ByVal Vertragstypnr As Integer) As Boolean
Dim vertragstyp As New TKB.VV.DB.clsVertragstyp
vertragstyp.cpMainConnectionProvider = Globals.conn
vertragstyp.iVertragstypnr = New SqlInt32(CType(Vertragstypnr, Int32))
vertragstyp.SelectOne()
If vertragstyp.bAlsLizenz.Value = True Then Return True Else Return False
End Function
End Class
End Namespace