224 lines
11 KiB
VB.net
224 lines
11 KiB
VB.net
|
|
Imports System.Data.SqlClient
|
|
Imports System.Reflection
|
|
|
|
Public Class cAuditFlow_Pruefobjekte
|
|
|
|
'=== Properties (Spalten laut Tabelle) ===
|
|
Public Property wartPO_Id As Integer
|
|
Public Property wartPO_Bezeichnung As String
|
|
Public Property wartPO_Kennung As String
|
|
Public Property wartPO_Kategorie As String
|
|
Public Property wartPO_Firma As String
|
|
Public Property wartPO_Niederlasung As String
|
|
Public Property wartPO_StandortId As Integer
|
|
Public Property wartPO_Aktiv As Boolean = True
|
|
Public Property wartPO_IntervallTyp As String ' VARCHAR(30)
|
|
Public Property wartPO_IntervallWert As Nullable(Of Integer) ' NULL
|
|
Public Property wartPO_Erinnerung_VorlaufInTagen As Integer = 0 ' NOT NULL DEFAULT(0)
|
|
Public Property wartPO_startdatum As Date = Date.Today ' NOT NULL DEFAULT(getdate())
|
|
Public Property wartPO_enddatum As Nullable(Of Date) ' NULL (DEFAULT(getdate()) wenn nicht gesetzt)
|
|
Public Property wartPO_zustaendigIntern_MaId As Nullable(Of Integer)
|
|
Public Property wartPO_zustaendigIntern_Name As String
|
|
Public Property wartPO_zustaendigIntern_Tel As String
|
|
Public Property wartPO_zustaendigIntern_Mail As String
|
|
Public Property wartPO_zustaendigExtern_Firma As String
|
|
Public Property wartPO_zustaendigExtern_Name As String
|
|
Public Property wartPO_zustaendigExtern_Tel As String
|
|
Public Property wartPO_zustaendigExtern_Mail As String
|
|
|
|
Public Property wartPO_MailErinnerung_SendenAnIntZust As Boolean = True ' NOT NULL DEFAULT(1)
|
|
|
|
Public Property wartPO_Beschreibung As String
|
|
|
|
'=== Status / Helper ===
|
|
Public hasEntry As Boolean = False
|
|
Private ReadOnly SQL As New SQL
|
|
|
|
'=== CTORs ===
|
|
Public Sub New(wartPO_Id As Integer)
|
|
Me.wartPO_Id = wartPO_Id
|
|
LOAD()
|
|
End Sub
|
|
|
|
Public Sub New()
|
|
' Für neue Datensätze ohne sofortiges LOAD
|
|
End Sub
|
|
|
|
'=== Parameterliste ===
|
|
Private Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
|
|
' PK
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Id", wartPO_Id, , True))
|
|
|
|
' Datenfelder
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Bezeichnung", wartPO_Bezeichnung))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Kennung", wartPO_Kennung))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Kategorie", wartPO_Kategorie))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Firma", wartPO_Firma))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Niederlasung", wartPO_Niederlasung))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_StandortId", wartPO_StandortId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Aktiv", wartPO_Aktiv))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_IntervallTyp", wartPO_IntervallTyp))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_IntervallWert", wartPO_IntervallWert))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Erinnerung_VorlaufInTagen", wartPO_Erinnerung_VorlaufInTagen))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_startdatum", wartPO_startdatum))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_enddatum", wartPO_enddatum))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigIntern_MaId", wartPO_zustaendigIntern_MaId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigIntern_Name", wartPO_zustaendigIntern_Name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigIntern_Tel", wartPO_zustaendigIntern_Tel))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigIntern_Mail", wartPO_zustaendigIntern_Mail))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigExtern_Firma", wartPO_zustaendigExtern_Firma))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigExtern_Name", wartPO_zustaendigExtern_Name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigExtern_Tel", wartPO_zustaendigExtern_Tel))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_zustaendigExtern_Mail", wartPO_zustaendigExtern_Mail))
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_MailErinnerung_SendenAnIntZust", wartPO_MailErinnerung_SendenAnIntZust))
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("wartPO_Beschreibung", wartPO_Beschreibung))
|
|
|
|
Return list
|
|
End Function
|
|
|
|
'=== SAVE: Insert/Update in einer Transaktion ===
|
|
Public Function SAVE() As Boolean
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim sqlstr As String =
|
|
"BEGIN TRAN " &
|
|
"IF EXISTS(SELECT * FROM [tblAuditFlow_Pruefobjekte] WHERE [wartPO_Id]=@wartPO_Id) " &
|
|
"BEGIN " & getUpdateCmd() & " END " &
|
|
"ELSE " &
|
|
"BEGIN " & getInsertCmd() & " END " &
|
|
"COMMIT TRAN "
|
|
' MsgBox(sqlstr)
|
|
Return SQL.doSQLVarList(sqlstr, "ADMIN", , list)
|
|
Catch ex As Exception
|
|
' MsgBox(ex.Message)
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
'=== LOAD: füllt Properties via Reflection aus DataReader ===
|
|
Public Sub LOAD()
|
|
Try
|
|
hasEntry = False
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN()
|
|
Using cmd As New SqlCommand("SELECT * FROM [tblAuditFlow_Pruefobjekte] WHERE [wartPO_Id]=@wartPO_Id", conn)
|
|
cmd.Parameters.AddWithValue("@wartPO_Id", wartPO_Id)
|
|
Using dr = cmd.ExecuteReader()
|
|
If dr.Read() Then
|
|
For Each li In getParameterList()
|
|
' li.Text = Spaltenname, li.Scalarvariable = Property-Name
|
|
Dim propInfo As PropertyInfo = Me.GetType().GetProperty(li.Scalarvariable)
|
|
If propInfo Is Nothing Then Continue For
|
|
If dr.Item(li.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(Me, Nothing)
|
|
Else
|
|
propInfo.SetValue(Me, dr.Item(li.Text))
|
|
End If
|
|
Next
|
|
hasEntry = True
|
|
End If
|
|
End Using
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
'=== UPDATE-Kommando dynamisch aus Parameterliste ===
|
|
Private Function getUpdateCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim setParts As New List(Of String)
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
setParts.Add("[" & i.Text & "]=@" & i.Scalarvariable)
|
|
End If
|
|
Next
|
|
Dim setClause As String = String.Join(",", setParts)
|
|
Return "UPDATE [tblAuditFlow_Pruefobjekte] SET " & setClause & " WHERE [wartPO_Id]=@wartPO_Id"
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return ""
|
|
End Try
|
|
End Function
|
|
|
|
'=== INSERT-Kommando dynamisch aus Parameterliste ===
|
|
Private Function getInsertCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim cols As New List(Of String)
|
|
Dim vals As New List(Of String)
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
cols.Add("[" & i.Text & "]")
|
|
vals.Add("@" & i.Scalarvariable)
|
|
End If
|
|
Next
|
|
Return "INSERT INTO [tblAuditFlow_Pruefobjekte] (" & String.Join(",", cols) & ") VALUES (" & String.Join(",", vals) & ")"
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return ""
|
|
End Try
|
|
End Function
|
|
|
|
|
|
|
|
Private Function DELETE_ALL_OPEN_FAELLIGE() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim setParts As New List(Of String)
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
setParts.Add("[" & i.Text & "]=@" & i.Scalarvariable)
|
|
End If
|
|
Next
|
|
Dim setClause As String = String.Join(",", setParts)
|
|
Return "UPDATE [tblAuditFlow_Pruefobjekte] SET " & setClause & " WHERE [wartPO_Id]=@wartPO_Id"
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return ""
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Public Shared Function LoadAllAktiv() As List(Of cAuditFlow_Pruefobjekte)
|
|
Dim result As New List(Of cAuditFlow_Pruefobjekte)
|
|
|
|
Try
|
|
Using conn As SqlConnection = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionADMIN()
|
|
Using cmd As New SqlCommand("SELECT * FROM [tblAuditFlow_Pruefobjekte] WHERE [wartPO_Aktiv]=1", conn)
|
|
Using dr As SqlDataReader = cmd.ExecuteReader()
|
|
While dr.Read()
|
|
Dim obj As New cAuditFlow_Pruefobjekte()
|
|
For Each li In obj.getParameterList()
|
|
Dim propInfo As PropertyInfo = obj.GetType().GetProperty(li.Scalarvariable)
|
|
If propInfo Is Nothing Then Continue For
|
|
If dr(li.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(obj, Nothing)
|
|
Else
|
|
propInfo.SetValue(obj, dr(li.Text))
|
|
End If
|
|
Next
|
|
obj.hasEntry = True
|
|
result.Add(obj)
|
|
End While
|
|
End Using
|
|
End Using
|
|
End Using
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
Return result
|
|
End Function
|
|
|
|
|
|
End Class |