DHF Artikelstamm
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Reflection
|
||||
Imports com.sun.org.apache.xml.internal.security.transforms
|
||||
Imports DocumentFormat.OpenXml.Bibliography
|
||||
|
||||
Public Class SQL
|
||||
@@ -545,6 +547,54 @@ Public Class SQL
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Public Function GetNewOpenConnection(conn_art) As SqlConnection
|
||||
Dim conn As New SqlConnection
|
||||
Select Case conn_art
|
||||
Case "SDL" : conn = GetNewOpenConnectionSDL()
|
||||
Case "FMZOLL" : conn = GetNewOpenConnectionFMZOLL()
|
||||
Case "ADMIN" : conn = GetNewOpenConnectionADMIN()
|
||||
Case "ASFINAG" : conn = GetNewOpenConnectionAsfinag()
|
||||
Case "DISPO" : conn = GetNewOpenConnectionDISPO()
|
||||
Case "ATLAS" : conn = GetNewOpenConnectionATLAS()
|
||||
Case "ATLAS_SBG" : conn = GetNewOpenConnectionATLAS_SBG()
|
||||
Case "EZOLL" : conn = GetNewOpenConnectionEZOLL()
|
||||
Case "EZOLL_UNISPED" : conn = GetNewOpenConnectionEZOLL_UNISPED()
|
||||
Case "AVISO" : conn = GetNewOpenConnectionAVISO()
|
||||
Case "VERAG" : conn = GetNewOpenConnectionFMZOLL()
|
||||
Case "FD" : conn = GetNewOpenConnectionFD()
|
||||
Case "WEB" : conn = GetNewOpenConnectionWEB()
|
||||
Case "FIBU", "SYSKA" : conn = GetNewOpenConnectionSYSKA()
|
||||
Case "PARKZEIT" : conn = GetNewOpenConnectionPARKZEIT()
|
||||
|
||||
|
||||
Case "AVISO_ATILLA"
|
||||
conn.ConnectionString = "Data Source=172.16.0.98;Initial Catalog=AVISO_ATILLA;Integrated Security=false;User ID=sa;Password=BmWr501956;Pooling=true;Min Pool Size=5;Max Pool Size=200"
|
||||
conn.Open()
|
||||
End Select
|
||||
Return conn
|
||||
End Function
|
||||
Public Function GetScalarValue(sql As String, conn_art As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Integer
|
||||
Try
|
||||
Using conn As SqlConnection = GetNewOpenConnection(conn_art)
|
||||
Using cmd As New SqlCommand(sql, conn)
|
||||
For Each p In params
|
||||
cmd.Parameters.AddWithValue("@" & p.Scalarvariable, If(p.Value, DBNull.Value))
|
||||
Next
|
||||
|
||||
Dim result = cmd.ExecuteScalar()
|
||||
If result Is Nothing OrElse result Is DBNull.Value Then
|
||||
Return 0
|
||||
Else
|
||||
Return Convert.ToInt32(result)
|
||||
End If
|
||||
End Using
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler in GetScalarValue: " & ex.Message, ex.StackTrace, MethodBase.GetCurrentMethod().Name)
|
||||
Return 0
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function loadDgvBySql(ByVal sql As String, Optional conn_art As String = "SDL", Optional timeout As Integer = 0, Optional showerror As Boolean = True) As DataTable
|
||||
Try
|
||||
Dim myTable = New DataTable()
|
||||
@@ -867,10 +917,27 @@ Public Class SQL
|
||||
Case "PARKZEIT" : conn = GetNewOpenConnectionPARKZEIT()
|
||||
End Select
|
||||
Try
|
||||
|
||||
|
||||
' MsgBox(sql)
|
||||
Using cmd As New SqlCommand(sql, conn)
|
||||
If list IsNot Nothing Then
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
For Each i In list
|
||||
If String.IsNullOrWhiteSpace(i.Scalarvariable) Then
|
||||
Throw New Exception("❌ Leerer Parametername in SQLVariable!")
|
||||
End If
|
||||
If i.Scalarvariable.ToLower = "errno" Then
|
||||
Throw New Exception("❌ Ungültiger Parametername 'errno' – bitte umbenennen.")
|
||||
End If
|
||||
If Not System.Text.RegularExpressions.Regex.IsMatch(i.Scalarvariable, "^[a-zA-Z0-9_]+$") Then
|
||||
Throw New Exception("❌ Ungültiger SQL-Parametername (Regex): '" & i.Scalarvariable & "'")
|
||||
End If
|
||||
|
||||
'MsgBox(i.Text.trim & " " & IIf(i.Value Is Nothing, DBNull.Value, i.Value))
|
||||
cmd.Parameters.AddWithValue("@" & i.Scalarvariable.trim, IIf(i.Value Is Nothing, DBNull.Value, i.Value))
|
||||
Next
|
||||
@@ -881,7 +948,13 @@ Public Class SQL
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
' MsgBox("ERR!")
|
||||
If showErr Then VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , , , , sql)
|
||||
If ex.Message.Contains("Falsche Syntax in der Nähe von '@errno'") Then
|
||||
' Spezielle Behandlung für den Fehler mit dem Parameter 'errno'
|
||||
'VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("❌ Ungültiger SQL-Parametername 'errno' – bitte umbenennen.", ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , , , , sql)
|
||||
|
||||
ElseIf ex.Message.Contains("Leerer Parametername") Then
|
||||
If showErr Then VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , , , , sql)
|
||||
End If
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
@@ -61,7 +61,96 @@ Public Class MyListItem2
|
||||
|
||||
End Class
|
||||
|
||||
'Public Class SQLVariable
|
||||
' Private ReadOnly TextSQLName As String
|
||||
' Private ReadOnly ValueSQLVALUE As Object
|
||||
' Private ReadOnly ScalarvariablenameIntern As String
|
||||
' Private ReadOnly primaryParam As Boolean
|
||||
' Private ReadOnly onlyForLoad As Boolean
|
||||
' Private ReadOnly onlyForSave As Boolean
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Erstellt eine neue SQLVariable für Parameterübergaben an SQL-Befehle.
|
||||
' ''' </summary>
|
||||
' ''' <param name="Text">Spaltenname in der Datenbank</param>
|
||||
' ''' <param name="Value">Wert, der gespeichert oder gelesen werden soll</param>
|
||||
' ''' <param name="Scalarvariablename">Parametername für SQL-Bindung (optional, sonst = Text)</param>
|
||||
' ''' <param name="primaryParam">Kennzeichnet Primärschlüssel für WHERE-Klausel</param>
|
||||
' ''' <param name="onlyForLoad">Wird nur beim Laden verwendet</param>
|
||||
' ''' <param name="onlyForSave">Wird nur beim Speichern verwendet</param>
|
||||
' Public Sub New(ByVal Text As String,
|
||||
' ByVal Value As Object,
|
||||
' Optional Scalarvariablename As String = "",
|
||||
' Optional primaryParam As Boolean = False,
|
||||
' Optional onlyForLoad As Boolean = False,
|
||||
' Optional onlyForSave As Boolean = False)
|
||||
|
||||
' If String.IsNullOrWhiteSpace(Text) Then
|
||||
' Throw New ArgumentException("❌ SQLVariable: Text darf nicht leer sein!")
|
||||
' End If
|
||||
|
||||
' Me.TextSQLName = Text
|
||||
' Me.ValueSQLVALUE = Value
|
||||
' Me.primaryParam = primaryParam
|
||||
' Me.onlyForLoad = onlyForLoad
|
||||
' Me.onlyForSave = onlyForSave
|
||||
' Me.ScalarvariablenameIntern = If(String.IsNullOrWhiteSpace(Scalarvariablename), Text, Scalarvariablename)
|
||||
' End Sub
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Name der SQL-Spalte
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property Text() As String
|
||||
' Get
|
||||
' Return TextSQLName
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Wert der SQL-Spalte
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property Value() As Object
|
||||
' Get
|
||||
' Return ValueSQLVALUE
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' Parametername für die SQL-Zuweisung (z. B. @Bezeichnung)
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property Scalarvariable() As String
|
||||
' Get
|
||||
' Return ScalarvariablenameIntern
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' True, wenn es sich um einen Primärschlüssel handelt
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property isPrimaryParam() As Boolean
|
||||
' Get
|
||||
' Return primaryParam
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' True, wenn nur für Lade-Operationen verwenden
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property isOnlyForLoad() As Boolean
|
||||
' Get
|
||||
' Return onlyForLoad
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' ''' <summary>
|
||||
' ''' True, wenn nur für Speicher-Operationen verwenden
|
||||
' ''' </summary>
|
||||
' Public ReadOnly Property isOnlyForSave() As Boolean
|
||||
' Get
|
||||
' Return onlyForSave
|
||||
' End Get
|
||||
' End Property
|
||||
'End Class
|
||||
|
||||
Public Class SQLVariable
|
||||
Private TextSQLName As String
|
||||
|
||||
@@ -24,6 +24,7 @@ Public Class cZollArtikel
|
||||
Property zollArt_Besondere_Maßeinheit_Qualifikator As Object = Nothing
|
||||
Property zollArt_Gewicht As Object = Nothing
|
||||
Property zollArt_Menge As Object = Nothing
|
||||
Property zollArt_Ursprungsland As Object = Nothing
|
||||
Property Erfassungsdatum As Object = Nothing
|
||||
Property Aenderungsdatum As Object = Nothing
|
||||
Property Sachbearbeiter As Object = Nothing
|
||||
@@ -67,6 +68,7 @@ Public Class cZollArtikel
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Besondere_Maßeinheit_Qualifikator", zollArt_Besondere_Maßeinheit_Qualifikator))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Gewicht", zollArt_Gewicht))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Menge", zollArt_Menge))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Ursprungsland", zollArt_Ursprungsland))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Erfassungsdatum", Erfassungsdatum))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Aenderungsdatum", Aenderungsdatum))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter))
|
||||
@@ -81,7 +83,7 @@ Public Class cZollArtikel
|
||||
Public Function SAVE(Optional errHinweis = "") As Boolean
|
||||
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||
|
||||
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblZollArtikel WHERE zollArt_id=@zollArt_id) " &
|
||||
Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblZollArtikel WHERE zollArt_id=@zollArt_id) " &
|
||||
" BEGIN " & getUpdateCmd() & " End " &
|
||||
" Else " &
|
||||
" BEGIN " & getInsertCmd() & " End " &
|
||||
@@ -170,4 +172,32 @@ Public Class cZollArtikel
|
||||
Dim sqlstr = " DELETE FROM tblZollArtikel WHERE zollArt_id=" & id
|
||||
Return SQL.doSQL(sqlstr, "FMZOLL")
|
||||
End Function
|
||||
|
||||
Public Shared Function GetListByKundenNr(kdnr As Integer) As List(Of cZollArtikel)
|
||||
Dim result As New List(Of cZollArtikel)
|
||||
Dim SQL As New SQL
|
||||
|
||||
Try
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand("SELECT * FROM tblZollArtikel WHERE KundenNr = @kdnr", conn)
|
||||
cmd.Parameters.AddWithValue("@kdnr", kdnr)
|
||||
Using dr = cmd.ExecuteReader()
|
||||
While dr.Read()
|
||||
Dim item As New cZollArtikel()
|
||||
For Each prop In GetType(cZollArtikel).GetProperties()
|
||||
prop.SetValue(item, dr(prop.Name))
|
||||
Next
|
||||
item.hasEntry = True
|
||||
result.Add(item)
|
||||
End While
|
||||
End Using
|
||||
End Using
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler in der Funktion '" & MethodBase.GetCurrentMethod.Name & "'" & vbNewLine &
|
||||
ex.Message & vbNewLine & ex.StackTrace)
|
||||
End Try
|
||||
|
||||
Return result
|
||||
End Function
|
||||
End Class
|
||||
|
||||
299
VERAG_PROG_ALLGEMEIN/Schnittstellen/DHF/cDHF_Artikel.vb
Normal file
299
VERAG_PROG_ALLGEMEIN/Schnittstellen/DHF/cDHF_Artikel.vb
Normal file
@@ -0,0 +1,299 @@
|
||||
Imports System.Reflection
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
' ========================
|
||||
' 📦 Hauptklasse: DHF_Artikel
|
||||
' ========================
|
||||
Public Class DHF_Artikel
|
||||
Public LizenzNr As String = "S01122"
|
||||
Public FremdAdressID As String
|
||||
Public FremdKennung As String = "EXT"
|
||||
Public ArtikelCode As String
|
||||
Public AdressID As Integer?
|
||||
Public Bezeichnung As String
|
||||
Public Eigenmasse As Double?
|
||||
Public MengenEH As String
|
||||
Public GueltigAb As Date?
|
||||
Public Ursprungsland As String
|
||||
Public AusfVerfCode As String
|
||||
Public AusfVerfZusatzcode As String
|
||||
Public EinfVerfCode As String
|
||||
Public EinfVerfZusatzcode As String
|
||||
Public IndEAH As Byte?
|
||||
Public GeaendertVon As Integer = 1
|
||||
Public GeaendertAm As Date = Now
|
||||
|
||||
Public ArtikelTarife As New List(Of DHF_ArtikelTarif)
|
||||
Private db As New DHF_DBHelper
|
||||
|
||||
Public Function Save() As Boolean
|
||||
Dim result = db.Save("imArtikel", GetParameterList())
|
||||
For Each tarif In ArtikelTarife
|
||||
tarif.LizenzNr = LizenzNr
|
||||
tarif.FremdAdressID = FremdAdressID
|
||||
tarif.FremdKennung = FremdKennung
|
||||
tarif.ArtikelCode = ArtikelCode
|
||||
tarif.Save()
|
||||
Next
|
||||
Return result
|
||||
End Function
|
||||
|
||||
Public Function Delete() As Boolean
|
||||
For Each tarif In ArtikelTarife
|
||||
tarif.Delete()
|
||||
Next
|
||||
Return db.Delete("imArtikel", GetParameterList())
|
||||
End Function
|
||||
|
||||
Public Shared Function Delete_KD(KdNr As String) As Boolean
|
||||
Dim db As New DHF_DBHelper
|
||||
db.DeleteByFremdAdressID("imArtikelTarifZucodes", KdNr)
|
||||
db.DeleteByFremdAdressID("imArtikelTarif", KdNr)
|
||||
Return db.DeleteByFremdAdressID("imArtikel", KdNr)
|
||||
End Function
|
||||
|
||||
Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdAdressID", FremdAdressID, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdKennung", FremdKennung, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("ArtikelCode", ArtikelCode, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("AdressID", AdressID),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("Bezeichnung", Bezeichnung),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("Eigenmasse", Eigenmasse),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("MengenEH", MengenEH),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("GueltigAb", GueltigAb),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("Ursprungsland", Ursprungsland),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("AusfVerfCode", AusfVerfCode),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("AusfVerfZusatzcode", AusfVerfZusatzcode),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("EinfVerfCode", EinfVerfCode),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("EinfVerfZusatzcode", EinfVerfZusatzcode),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("IndEAH", IndEAH),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("GeaendertVon", GeaendertVon),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("GeaendertAm", GeaendertAm)
|
||||
}
|
||||
End Function
|
||||
End Class
|
||||
|
||||
' ========================
|
||||
' 💶 Unterklasse: DHF_ArtikelTarif
|
||||
' ========================
|
||||
Public Class DHF_ArtikelTarif
|
||||
Public LizenzNr As String
|
||||
Public FremdAdressID As String
|
||||
Public FremdKennung As String
|
||||
Public ArtikelCode As String
|
||||
Public GueltigAb As Date?
|
||||
Public TarifNr As String
|
||||
|
||||
Public TarifZucodes As New List(Of DHF_ArtikelTarifZucode)
|
||||
Private db As New DHF_DBHelper
|
||||
|
||||
Public Function Save() As Boolean
|
||||
Dim result = db.Save("imArtikelTarif", GetParameterList())
|
||||
For Each zuc In TarifZucodes
|
||||
zuc.LizenzNr = LizenzNr
|
||||
zuc.FremdAdressID = FremdAdressID
|
||||
zuc.FremdKennung = FremdKennung
|
||||
zuc.ArtikelCode = ArtikelCode
|
||||
zuc.GueltigAb = GueltigAb
|
||||
zuc.Save()
|
||||
Next
|
||||
Return result
|
||||
End Function
|
||||
|
||||
Public Function Delete() As Boolean
|
||||
For Each zuc In TarifZucodes
|
||||
zuc.Delete()
|
||||
Next
|
||||
Return db.Delete("imArtikelTarif", GetParameterList())
|
||||
End Function
|
||||
|
||||
Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdAdressID", FremdAdressID, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdKennung", FremdKennung, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("ArtikelCode", ArtikelCode, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("GueltigAb", GueltigAb, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("TarifNr", TarifNr)
|
||||
}
|
||||
End Function
|
||||
End Class
|
||||
|
||||
' ========================
|
||||
' 🧩 Unterklasse: DHF_ArtikelTarifZucode
|
||||
' ========================
|
||||
Public Class DHF_ArtikelTarifZucode
|
||||
Public LizenzNr As String
|
||||
Public FremdAdressID As String
|
||||
Public FremdKennung As String
|
||||
Public ArtikelCode As String
|
||||
Public GueltigAb As Date?
|
||||
Public TarifNrZusatzcode As String
|
||||
|
||||
Private db As New DHF_DBHelper
|
||||
|
||||
|
||||
Public Function Save() As Boolean
|
||||
Return db.Save("imArtikelTarifZucodes", GetParameterList())
|
||||
End Function
|
||||
|
||||
Public Function Delete() As Boolean
|
||||
Return db.Delete("imArtikelTarifZucodes", GetParameterList())
|
||||
End Function
|
||||
|
||||
Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdAdressID", FremdAdressID, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FremdKennung", FremdKennung, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("ArtikelCode", ArtikelCode, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("GueltigAb", GueltigAb, , True),
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("TarifNrZusatzcode", TarifNrZusatzcode)
|
||||
}
|
||||
End Function
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
|
||||
' ========================
|
||||
' 🧰 Datenbank-Hilfsklasse
|
||||
' ========================
|
||||
Public Class DHF_DBHelper
|
||||
Private SQL As New SQL
|
||||
|
||||
Public Function Save(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean
|
||||
Dim whereClause = GetPrimaryKeyWhere(params)
|
||||
Dim existsSQL = "SELECT COUNT(*) FROM [" & tableName & "] WHERE " & whereClause
|
||||
|
||||
For Each p In params
|
||||
If String.IsNullOrWhiteSpace(p.Scalarvariable) OrElse String.IsNullOrWhiteSpace(p.Text) Then
|
||||
Throw New Exception("❌ Ungültiger Parameter in SQLVariable! Text='" & p.Text & "', Scalarvariable='" & p.Scalarvariable & "'")
|
||||
End If
|
||||
Next
|
||||
|
||||
' Prüfen, ob Eintrag existiert
|
||||
Dim count = SQL.GetScalarValue(existsSQL, "EZOLL", params)
|
||||
Dim sqlCmd As String
|
||||
|
||||
If count > 0 Then
|
||||
sqlCmd = GetUpdateCmd(tableName, params)
|
||||
Else
|
||||
sqlCmd = GetInsertCmd(tableName, params)
|
||||
End If
|
||||
|
||||
Return SQL.doSQLVarList(sqlCmd, "EZOLL", , params)
|
||||
End Function
|
||||
|
||||
Public Function Delete(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean
|
||||
Dim whereClause = GetPrimaryKeyWhere(params)
|
||||
Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE " & whereClause
|
||||
Return SQL.doSQLVarList(sqlstr, "EZOLL", , params)
|
||||
End Function
|
||||
|
||||
Public Function DeleteByFremdAdressID(tableName As String, fremdAdressID As String) As Boolean
|
||||
Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE [FremdAdressID]=@FID"
|
||||
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
|
||||
New VERAG_PROG_ALLGEMEIN.SQLVariable("FID", fremdAdressID)
|
||||
}
|
||||
Return SQL.doSQLVarList(sqlstr, "EZOLL", , list)
|
||||
End Function
|
||||
|
||||
Private Function GetPrimaryKeyWhere(params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String
|
||||
Return String.Join(" AND ", params.Where(Function(p) p.isPrimaryParam).Select(Function(p) "[" & p.Text & "]=@" & p.Scalarvariable))
|
||||
End Function
|
||||
|
||||
Private Function GetUpdateCmd(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String
|
||||
' Primärschlüssel-Felder NICHT in SET verwenden
|
||||
Dim setCmd = String.Join(",",
|
||||
params.Where(Function(p) p.isPrimaryParam <> True).
|
||||
Select(Function(p) "[" & p.Text & "]=@" & p.Scalarvariable))
|
||||
|
||||
Return "UPDATE [" & tableName & "] SET " & setCmd & " WHERE " & GetPrimaryKeyWhere(params)
|
||||
End Function
|
||||
|
||||
Private Function GetInsertCmd(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String
|
||||
Dim fields = String.Join(",", params.Select(Function(p) "[" & p.Text & "]"))
|
||||
Dim values = String.Join(",", params.Select(Function(p) "@" & p.Scalarvariable))
|
||||
Return "INSERT INTO [" & tableName & "] (" & fields & ") VALUES (" & values & ")"
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Public Class DHF_ArtikelBeispiel
|
||||
|
||||
Public Shared Sub Beispiel_TestSave()
|
||||
|
||||
|
||||
Dim KdNr = "123456"
|
||||
|
||||
DHF_Artikel.Delete_KD(KdNr)
|
||||
|
||||
MsgBox("del")
|
||||
|
||||
Dim artikel As New DHF_Artikel With {
|
||||
.LizenzNr = "S01122",
|
||||
.FremdAdressID = KdNr,
|
||||
.FremdKennung = "EXT",
|
||||
.ArtikelCode = "ART1001",
|
||||
.Bezeichnung = "Testartikel223",
|
||||
.Eigenmasse = 12.5,
|
||||
.MengenEH = "kg",
|
||||
.GueltigAb = Date.Today,
|
||||
.Ursprungsland = "AT",
|
||||
.AusfVerfCode = "1000",
|
||||
.EinfVerfCode = "4000",
|
||||
.IndEAH = 0
|
||||
}
|
||||
|
||||
Dim tarif1 As New DHF_ArtikelTarif With {
|
||||
.GueltigAb = Date.Today,
|
||||
.TarifNr = "85011000"
|
||||
}
|
||||
tarif1.TarifZucodes.Add(New DHF_ArtikelTarifZucode With {
|
||||
.TarifNrZusatzcode = "V001"
|
||||
})
|
||||
tarif1.TarifZucodes.Add(New DHF_ArtikelTarifZucode With {
|
||||
.TarifNrZusatzcode = "V002"
|
||||
})
|
||||
|
||||
artikel.ArtikelTarife.Add(tarif1)
|
||||
|
||||
Dim tarif2 As New DHF_ArtikelTarif With {
|
||||
.GueltigAb = Date.Today.AddDays(30),
|
||||
.TarifNr = "85012000"
|
||||
}
|
||||
|
||||
artikel.ArtikelTarife.Add(tarif2)
|
||||
|
||||
If artikel.Save() Then
|
||||
Console.WriteLine("Artikel erfolgreich gespeichert.")
|
||||
Else
|
||||
Console.WriteLine("Fehler beim Speichern.")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Beispiel_TestDelete()
|
||||
Dim artikel As New DHF_Artikel With {
|
||||
.LizenzNr = "S00001",
|
||||
.FremdAdressID = "K12345",
|
||||
.FremdKennung = "EXT",
|
||||
.ArtikelCode = "ART100"
|
||||
}
|
||||
|
||||
If artikel.Delete() Then
|
||||
Console.WriteLine("Artikel erfolgreich gelöscht.")
|
||||
Else
|
||||
Console.WriteLine("Fehler beim Löschen.")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Beispiel_DeleteAlleFuerKunde()
|
||||
If DHF_Artikel.Delete_KD("K12345") Then
|
||||
Console.WriteLine("Alle Artikel für Kunde gelöscht.")
|
||||
Else
|
||||
Console.WriteLine("Fehler beim Kundendaten-Löschen.")
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
@@ -374,6 +374,7 @@
|
||||
<Compile Include="Schnittstellen\BZST\cBZST_UID_XML.vb" />
|
||||
<Compile Include="Schnittstellen\BZST\cBZST_UID.vb" />
|
||||
<Compile Include="Schnittstellen\cHMRC.vb" />
|
||||
<Compile Include="Schnittstellen\DHF\cDHF_Artikel.vb" />
|
||||
<Compile Include="Schnittstellen\TELOTEC\cTelotecAPI.vb" />
|
||||
<Compile Include="Schnittstellen\HMRC\cHMRCToken.vb" />
|
||||
<Compile Include="Classes\cKundenAufschubkonten.vb" />
|
||||
|
||||
Reference in New Issue
Block a user