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