CBAM, VERAG CustomsDec
This commit is contained in:
230
VERAG_PROG_ALLGEMEIN/Classes/cGreendeal_CBAM_Trn.vb
Normal file
230
VERAG_PROG_ALLGEMEIN/Classes/cGreendeal_CBAM_Trn.vb
Normal file
@@ -0,0 +1,230 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Reflection
|
||||
|
||||
Public Class cGreendeal_CBAM_Trn
|
||||
|
||||
' =====================================================
|
||||
' Properties = Spalten tblGreendeal_CBAM_Trn
|
||||
' =====================================================
|
||||
Public Property cbam_Id As Integer
|
||||
Public Property trnPattern As String
|
||||
Public Property ware As String
|
||||
Public Property sektor As String
|
||||
Public Property hinweis As String
|
||||
Public Property is_exclusion As Boolean?
|
||||
Public Property is_active As Boolean?
|
||||
Public Property start_date As Date?
|
||||
Public Property end_date As Date?
|
||||
|
||||
Public Property hasEntry As Boolean = False
|
||||
|
||||
Private SQL As New SQL
|
||||
|
||||
' =====================================================
|
||||
' Konstruktor
|
||||
' =====================================================
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
Sub New(cbam_Id As Integer)
|
||||
Me.cbam_Id = cbam_Id
|
||||
LOAD()
|
||||
End Sub
|
||||
|
||||
' =====================================================
|
||||
' Parameterliste (Mapping Property <-> SQL)
|
||||
' =====================================================
|
||||
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
|
||||
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cbam_Id", cbam_Id,, True))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("trnPattern", trnPattern))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ware", ware))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sektor", sektor))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("hinweis", hinweis))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("is_exclusion", is_exclusion))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("is_active", is_active))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("start_date", start_date))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("end_date", end_date))
|
||||
|
||||
Return list
|
||||
End Function
|
||||
|
||||
' =====================================================
|
||||
' SAVE (Insert / Update)
|
||||
' =====================================================
|
||||
Public Function SAVE() As Boolean
|
||||
|
||||
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||
|
||||
Dim sqlstr As String =
|
||||
" BEGIN TRAN " &
|
||||
" IF EXISTS (SELECT 1 FROM tblGreendeal_CBAM_Trn WHERE cbam_Id=@cbam_Id) " &
|
||||
" BEGIN " & getUpdateCmd() & " END " &
|
||||
" ELSE " &
|
||||
" BEGIN " & getInsertCmd() & " END " &
|
||||
" COMMIT TRAN "
|
||||
|
||||
Return SQL.doSQLVarList(sqlstr, "VERAG", , list)
|
||||
|
||||
End Function
|
||||
|
||||
' =====================================================
|
||||
' LOAD
|
||||
' =====================================================
|
||||
Public Sub LOAD()
|
||||
Try
|
||||
hasEntry = False
|
||||
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand(
|
||||
"SELECT * FROM tblGreendeal_CBAM_Trn WHERE cbam_Id=@cbam_Id", conn)
|
||||
|
||||
cmd.Parameters.AddWithValue("@cbam_Id", cbam_Id)
|
||||
|
||||
Using dr = cmd.ExecuteReader()
|
||||
If dr.Read Then
|
||||
For Each li In getParameterList()
|
||||
Dim pi As PropertyInfo =
|
||||
Me.GetType.GetProperty(li.Scalarvariable)
|
||||
|
||||
If pi IsNot Nothing Then
|
||||
If dr.Item(li.Text) Is DBNull.Value Then
|
||||
pi.SetValue(Me, Nothing)
|
||||
Else
|
||||
pi.SetValue(Me, dr.Item(li.Text))
|
||||
End If
|
||||
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 Command
|
||||
' =====================================================
|
||||
Private Function getUpdateCmd() As String
|
||||
Try
|
||||
Dim list = getParameterList()
|
||||
Dim str As String = ""
|
||||
|
||||
For Each i In list
|
||||
If Not i.isPrimaryParam Then
|
||||
str &= "[" & i.Text & "] = @" & i.Scalarvariable & ","
|
||||
End If
|
||||
Next
|
||||
|
||||
str = str.Substring(0, str.Length - 1)
|
||||
|
||||
Return " UPDATE tblGreendeal_CBAM_Trn SET " & str &
|
||||
" WHERE cbam_Id=@cbam_Id "
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
|
||||
ex.Message,
|
||||
ex.StackTrace,
|
||||
System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
' =====================================================
|
||||
' INSERT Command
|
||||
' =====================================================
|
||||
Private Function getInsertCmd() As String
|
||||
Try
|
||||
Dim list = getParameterList()
|
||||
Dim cols As String = ""
|
||||
Dim vals As String = ""
|
||||
|
||||
For Each i In list
|
||||
If Not i.isPrimaryParam Then
|
||||
cols &= "[" & i.Text & "],"
|
||||
vals &= "@" & i.Scalarvariable & ","
|
||||
End If
|
||||
Next
|
||||
|
||||
cols = cols.Substring(0, cols.Length - 1)
|
||||
vals = vals.Substring(0, vals.Length - 1)
|
||||
|
||||
Return " INSERT INTO tblGreendeal_CBAM_Trn (" & cols & ") VALUES (" & vals & ") "
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
|
||||
ex.Message,
|
||||
ex.StackTrace,
|
||||
System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
Public Shared Function BuildCBAMPatternWhereClause(columnName As String, Optional onlyActive As Boolean = True, Optional includeExclusions As Boolean = False) As String
|
||||
|
||||
Dim sql As String =
|
||||
"SELECT trnPattern " &
|
||||
" FROM VERAG.dbo.tblGreendeal_CBAM_Trn " &
|
||||
" WHERE trnPattern IS NOT NULL " &
|
||||
" AND LTRIM(RTRIM(trnPattern)) <> '' "
|
||||
|
||||
If onlyActive Then
|
||||
sql &= " AND is_active = 1 " &
|
||||
" AND (start_date IS NULL OR start_date <= GETDATE()) " &
|
||||
" AND (end_date IS NULL OR end_date >= GETDATE()) "
|
||||
End If
|
||||
|
||||
If Not includeExclusions Then
|
||||
sql &= " AND ISNULL(is_exclusion,0) = 0 "
|
||||
End If
|
||||
|
||||
Dim dt As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(sql, "FMZOLL")
|
||||
|
||||
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
|
||||
Return "1=0" ' bewusst: keine Patterns → kein Treffer
|
||||
End If
|
||||
|
||||
Dim conditions As New List(Of String)
|
||||
|
||||
For Each r As DataRow In dt.Rows
|
||||
Dim pattern As String = r("trnPattern").ToString().Trim()
|
||||
|
||||
' einfache SQL-Escaping-Sicherheit
|
||||
pattern = pattern.Replace("'", "''")
|
||||
|
||||
conditions.Add($"{columnName} LIKE '{pattern}'")
|
||||
Next
|
||||
|
||||
Return "(" & String.Join(" OR ", conditions) & ")"
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function DELETE_ALL() As Boolean
|
||||
Try
|
||||
|
||||
Dim sqlstr As String = " DELETE FROM tblGreendeal_CBAM_Trn "
|
||||
Return (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(sqlstr, "VERAG", , Nothing)
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
|
||||
ex.Message,
|
||||
ex.StackTrace,
|
||||
System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user