Imports C1.Win.C1TrueDBGrid Imports System Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Namespace TKB.VV.Vertrag Public Class clsVertragsereignis Inherits TKB.VV.DB.clsVertragsereignis #Region "Deklarationen" Public Vertragsereignisse As TKB.VV.Sysadmin.DomainTable Public Vertragselement As New TKB.VV.DB.clsVertragselement Public Vertragsereignis As New TKB.VV.DB.clsVertragsereignis 'Public Ereignistypen As New TKB.VV.Sysadmin.DomainTable("Ereignistyp") 'Public Kostenarten As New TKB.VV.Sysadmin.DomainTable("Kostenart") 'Public Periodizitäten As New TKB.VV.Sysadmin.DomainTable("Periodizitaet") Public Neuer_Datensatz As Boolean = False Public Kuendigungsfrist As New DataTable Private Stammdaten As New TKB.VV.Stammdaten.clsStammdaten Public Periodizitäten As New DataTable Public Kostenarten As New DataTable Public Ereignistypen As New DataTable #End Region ''' ''' Destructor Dispose ''' ''' Overloads Sub dispose() Vertragsereignisse = Nothing Vertragsereignis.Dispose() Ereignistypen.dispose() Kostenarten.dispose() Periodizitäten.dispose() MyBase.Dispose() End Sub Sub New() Kuendigungsfrist = Stammdaten.Get_Stammdaten("Kuendigungsfristen", "Sort") Periodizitäten = Stammdaten.Get_Stammdaten("Periodizitaet", "Sort") Ereignistypen = Stammdaten.Get_Stammdaten("Ereignistyp", "Bezeichnung") Kostenarten = Stammdaten.Get_Stammdaten("Kostenart", "Bezeichnung") End Sub ''' ''' Vertragsereignis auslesen ''' ''' Nr des VertragsEreigniss ''' ''' Public Function Get_Ereignis(ByVal Nr As Integer) Me.cpMainConnectionProvider = Globals.conn Me.iEreignisNr = New SqlInt32(CType(Nr, Int32)) Globals.conn.OpenConnection() Me.SelectOne() Globals.conn.CloseConnection(True) Vertragselement.cpMainConnectionProvider = Globals.conn Vertragselement.iVertragselementnr = New SqlInt32(CType(Me.iVertragselementnr.Value, Int32)) Vertragselement.SelectOne() End Function ''' ''' VertragsEreignis speichern ''' ''' ''' Public Function Save_Data() As Integer Me.cpMainConnectionProvider = Globals.conn 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 Return Me.iEreignisNr.Value End Function ''' ''' Vertragsereignis zu einem Vertragselement auselesen ''' ''' Datagrid, welches die Kontaktpersonen anzeigt ''' ''' Public Function Get_Vertragsereignisse(ByRef c1data As C1TrueDBGrid) Try Vertragsereignisse.dispose() Vertragsereignis = Nothing Catch ex As Exception End Try Vertragsereignisse = New TKB.VV.Sysadmin.DomainTable("Ereignis", Me.iEreignisNr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value) c1data.DataSource = Vertragsereignisse.Tabledata c1data.DataMember = Vertragsereignisse.Tabledata.Tables(0).TableName End Function ''' ''' Kontaktpersonen zu einem VertragsEreignis auslesen ''' ''' ''' Public Function Get_Vertragsereignisse() As DataSet Try Vertragsereignisse.dispose() Vertragsereignis = Nothing Catch ex As Exception End Try Vertragsereignisse = New TKB.VV.Sysadmin.DomainTable("Vertragsereignis", Me.iEreignisNr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value) Return Vertragsereignisse.Tabledata End Function ''' ''' Kopie eines VertragsEreignisses erstellen ''' ''' ''' ''' Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Ereignis(Basenr) End If Dim db As New TKB.VV.DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("Ereignis") db.Dispose() Me.cpMainConnectionProvider = Globals.conn Me.iEreignisNr = 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 ''' ''' VertragsEreignis inaktivieren ''' ''' ''' ''' Public Function Delete_Ereignis(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Me.Get_Ereignis(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) ' Delete_Vertragsereignisse() End Function ''' ''' VertragsEreignis inaktivieren ''' ''' ''' ''' Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Me.Get_Ereignis(Basenr) End If Me.cpMainConnectionProvider = Globals.conn Globals.conn.OpenConnection() MyBase.Delete() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = False End Function ''' ''' Inaktivieren aller aktiven Vertragsereignisse zu einem Vertragselement ''' ''' Private Sub Delete_Vertragsereignisse() Dim i As Integer For i = 0 To Me.Vertragsereignisse.Tabledata.Tables(0).Rows.Count - 1 If Me.Vertragsereignisse.Tabledata.Tables(0).Rows(i).Item("Aktiv") = True Then Me.Delete_Ereignis(Me.Vertragsereignisse.Tabledata.Tables(0).Rows(i).Item("Ereignisnr")) End If Next End Sub ''' ''' Neues VertragsEreignis ''' ''' Key des neuen VertragsEreigniss ''' Public Function Add_New(ByVal Vertragselementnr As Integer) As Integer Dim db As New TKB.VV.DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("Ereignis") db.Dispose() Me.iEreignisNr = New SqlInt32(CType(newkey, Int32)) Me.iVertragselementnr = New SqlInt32(CType(Vertragselementnr, Int32)) Me.iEreignistypNr = New SqlInt32(CType(1, Int32)) Me.iKostenartNr = New SqlInt32(CType(-1, Int32)) Me.iPeriodizitaetNr = New SqlInt32(CType(15, Int32)) Me.daDatum = New SqlDateTime(CType(SqlDateTime.Null, DateTime)) Me.daEnde = New SqlDateTime(CType(SqlDateTime.Null, DateTime)) Me.daStart = New SqlDateTime(CType(SqlDateTime.Null, DateTime)) Me.iVorlaufzeit = New SqlInt32(CType(0, Int32)) Me.fBetrag = New SqlDouble(CType(0, Double)) Me.sBeschreibung = New SqlString(CType("", String)) Me.sBezeichnung = New SqlString(CType("", String)) Me.bInklMwSt = New SqlBoolean(CType(False, Boolean)) 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.iKuendigungsfristnr = New SqlInt32(CType(Me.Kuendigungsfrist.Rows(0).Item(0), Int32)) Globals.conn.OpenConnection() Me.Insert() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = True Return newkey End Function 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_Ereignis", Me.iEreignisNr.ToString, Globals.clsmitarbeiter.iMitarbeiternr.Value) c1data.DataSource = History.Tabledata c1data.DataMember = History.Tabledata.Tables(0).TableName End Function Public Function Check_Zahlungsdaten(ByVal Key As Integer) As Boolean For Each dr As DataRow In Me.Ereignistypen.Rows If dr.Item("Ereignistypnr") = Key And dr.Item("Zahlung") = True Then Return True End If Next Return False End Function Public Function Check_Kuendigungsdaten(ByVal Key As Integer) As Boolean For Each dr As DataRow In Me.Ereignistypen.Rows If dr.Item("Ereignistypnr") = Key And dr.Item("Kuendigung") = True Then Return True End If Next Return False End Function ''' ''' Datumscheck ''' ''' ''' ''' Public Function Datumscheck(ByVal vertragselementnr As Integer, ByVal datum As DateTime, ByVal element As String) 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_vertragsereignis_checkdaten" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = conn.scoDBConnection Try scmCmdToExecute.Parameters.Add(New SqlParameter("@vertragselementnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, vertragselementnr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@datum", SqlDbType.DateTime, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, datum)) scmCmdToExecute.Parameters.Add(New SqlParameter("@element", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, element)) sdaAdapter.Fill(dtToReturn) Return dtToReturn Catch ex As Exception Throw New Exception("clsVertragselement::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex) Finally scmCmdToExecute.Dispose() sdaAdapter.Dispose() End Try End Function End Class End Namespace