Files
SDL/VERAG_PROG_ALLGEMEIN/cSicherheiten.vb
2026-03-19 13:38:47 +01:00

443 lines
18 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Reflection
Public Class cSicherheiten
Property gs_gsId As Integer
Property gs_ATBNr As String
Property gs_posNr As Integer
Property gs_datum As DateTime
Property gs_erstellungsdatum As DateTime
Property gs_warenwert As Object
Property gs_sicherheitsbetrag As Object
Property gs_saldo As Object
Property gs_standort As String
Property gs_art As String
Property gs_gsNr As Integer
Property gs_ust As Integer
Property gs_freitext As String
Property gs_filialenNr As Integer
Property gs_abfertigungsnr As String
Property gs_LKWKZ As String
Property gs_atr As String = ""
Property gs_warenort As String
Property gs_zollsatz As Object
Property gs_avisoId As Integer
Property gs_isRundungsdiff As Boolean
Property gs_ReferenzAenderung As Boolean
Property gs_zuletztgeandert As Object = Nothing
Property gs_systemuser As Object = Nothing
Property gs_MRNNr As Object = Nothing
Property gs_posSubNr As Object = Nothing
Property gs_VeralteteWeitereRegistriernummer As Object = Nothing
Property gs_dakoyimport As Boolean = False
Property gs_EH_Anzahl As Object = Nothing
Property gs_DK_laufnr As Object = Nothing
Property gs_gewicht As Object = Nothing
Public hasEntry = False
Dim SQL As New SQL
Sub New(gs_gsID, gs_posNr)
Me.gs_gsId = gs_gsID
Me.gs_posNr = gs_posNr
LOAD()
End Sub
Sub New(gs_gsID, gs_posNr, gs_posSubNr)
Me.gs_gsId = gs_gsID
Me.gs_posNr = gs_posNr
Me.gs_posSubNr = gs_posSubNr
LOADSubNr()
End Sub
Sub New(gs_gsID, gs_posNr, gs_posSubNr, gs_DK_laufnr)
Me.gs_gsId = gs_gsID
Me.gs_posNr = gs_posNr
Me.gs_posSubNr = gs_posSubNr
Me.gs_DK_laufnr = gs_DK_laufnr
LOADDakosyLaufNr()
End Sub
Sub New(gs_gsNr)
Me.gs_gsNr = gs_gsNr
LOADGSNR()
End Sub
Sub New()
End Sub
Function getParameterList(Optional WithoutPosSubNr As Boolean = False) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_gsId", gs_gsId,, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_ATBNr", gs_ATBNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_posNr", gs_posNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_datum", gs_datum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_erstellungsdatum", gs_erstellungsdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_warenwert", gs_warenwert))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_sicherheitsbetrag", gs_sicherheitsbetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_saldo", gs_saldo))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_standort", gs_standort))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_art", gs_art))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_gsNr", gs_gsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_ust", gs_ust))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_freitext", gs_freitext))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_filialenNr", gs_filialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_abfertigungsnr", gs_abfertigungsnr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_LKWKZ", gs_LKWKZ))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_atr", gs_atr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_warenort", gs_warenort))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_zollsatz", gs_zollsatz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_avisoId", gs_avisoId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_isRundungsdiff", gs_isRundungsdiff))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_ReferenzAenderung", gs_ReferenzAenderung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_zuletztgeandert", gs_zuletztgeandert))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_systemuser", gs_systemuser))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_MRNNr", gs_MRNNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_VeralteteWeitereRegistriernummer", gs_VeralteteWeitereRegistriernummer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_dakoyimport", gs_dakoyimport))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_EH_Anzahl", gs_EH_Anzahl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_DK_laufnr", gs_DK_laufnr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_gewicht", gs_gewicht))
If Not WithoutPosSubNr Then list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gs_posSubNr", gs_posSubNr))
Return list
End Function
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM [tblGesamtsicherheit] WHERE gs_gsId=@gs_gsId AND gs_posNr=@gs_posNr) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
Return SQL.doSQLVarList(sqlstr, "AVISO", , list)
End Function
Public Function SAVEOBJECT() As Integer
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM [tblGesamtsicherheit] WHERE gs_gsId=@gs_gsId AND gs_posNr=@gs_posNr) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
gs_gsId = SQL.doSQLVarListID(gs_gsId, sqlstr, "AVISO", , list)
Return gs_gsId
End Function
Public Function UPDATEWithNewPosNr(Optional ingorePosSubNr As Boolean = False) As Integer
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList(ingorePosSubNr)
Dim sqlstr = " BEGIN " & getUpdateCmd(ingorePosSubNr) & " END "
gs_gsId = SQL.doSQLVarListID(gs_gsId, sqlstr, "AVISO", , list)
Return gs_gsId
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
Using cmd As New SqlCommand("SELECT * FROM [tblGesamtsicherheit] WHERE gs_gsId=@gs_gsId AND gs_posNr=@gs_posNr ", conn)
cmd.Parameters.AddWithValue("@gs_gsID", gs_gsId)
cmd.Parameters.AddWithValue("@gs_posNr", gs_posNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
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
dr.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Sub LOADSubNr()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
Using cmd As New SqlCommand("SELECT * FROM [tblGesamtsicherheit] WHERE gs_gsId=@gs_gsId AND gs_posNr=@gs_posNr AND gs_posSubNr=@gs_posSubNr ", conn)
cmd.Parameters.AddWithValue("@gs_gsID", gs_gsId)
cmd.Parameters.AddWithValue("@gs_posNr", gs_posNr)
cmd.Parameters.AddWithValue("@gs_posSubNr", gs_posSubNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
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
dr.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Sub LOADDakosyLaufNr()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
Using cmd As New SqlCommand("SELECT * FROM [tblGesamtsicherheit] WHERE gs_gsId=@gs_gsId AND gs_posNr=@gs_posNr AND gs_DK_laufnr=@gs_DK_laufnr ", conn)
cmd.Parameters.AddWithValue("@gs_gsID", gs_gsId)
cmd.Parameters.AddWithValue("@gs_posNr", gs_posNr)
cmd.Parameters.AddWithValue("@gs_DK_laufnr", gs_DK_laufnr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
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
dr.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Sub LOADGSNR()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
Using cmd As New SqlCommand("SELECT * FROM [tblGesamtsicherheit] WHERE gs_gsNr=@gs_gsNr ", conn)
cmd.Parameters.AddWithValue("@gs_gsNr", gs_gsNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
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
dr.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Function getUpdateCmd(Optional ingorePosSubNr As Boolean = False) As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList(ingorePosSubNr)
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [tblGesamtsicherheit] SET " & str & " WHERE gs_gsId=@gs_gsId") ' AND gs_posNr=@gs_posNr ")
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ""
End Function
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO [tblGesamtsicherheit] (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ""
End Function
Public Function Delete()
SQL.doSQL("delete from [tblGesamtsicherheit] where gs_gsId = '" & Me.gs_gsId & "' AND gs_posNr='" & Me.gs_posNr & "'", "AVISO")
End Function
Public Shared Sub rearangePosNr(gsNr As Integer, ATBNr As String, posNr As Integer)
If posNr = -1 Or posNr = 1 Then Exit Sub
Dim sqlq As String = "select [gs_gsId], [gs_posNr] from [tblGesamtsicherheit] where gs_gsnr = " & gsNr & " AND gs_ATBNR = '" & ATBNr & "' AND gs_posNr >= " & posNr
Dim dt As New DataTable
dt = (New SQL).loadDgvBySql(sqlq, "AVISO", 100, True)
If (dt.Rows.Count = 0) Then Exit Sub
For i As Integer = 0 To dt.Rows.Count - 1
Dim sicherheit = New cSicherheiten(dt.Rows(i).Item("gs_gsId"), dt.Rows(i).Item("gs_posNr"))
Dim currentPos = sicherheit.gs_posNr
If sicherheit.gs_posSubNr IsNot Nothing Then
rearangeSubPosNr(gsNr, ATBNr, currentPos, sicherheit.gs_posSubNr)
End If
If currentPos > 0 Then
sicherheit.gs_posNr = currentPos - 1
End If
sicherheit.UPDATEWithNewPosNr(True)
Next
End Sub
Public Shared Function rearangePosNrByDakosyLaufNr(gsNr As Integer, ATBNr As String)
If gsNr > 0 AndAlso ATBNr <> "" Then
Dim SQLString = "WITH Ordered AS (
SELECT
gs_gsId,
ROW_NUMBER() OVER (
ORDER BY gs_DK_laufnr, gs_posSubNr
) - 1 AS NewPosNr
FROM tblGesamtsicherheit
WHERE gs_gsnr = " & gsNr & "
AND gs_ATBNR = '" & ATBNr & "'
)
UPDATE t
SET gs_posNr = o.NewPosNr
FROM tblGesamtsicherheit t
INNER JOIN Ordered o ON t.gs_gsId = o.gs_gsId"
If (New SQL).doSQL(SQLString, "AVISO") Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Sub rearangeSubPosNr(gsNr As Integer, ATBNr As String, posNr As Integer, subposNr As Integer)
If subposNr = -1 Or subposNr = 1 Then Exit Sub
Dim sqlq As String = "select [gs_gsId], [gs_posNr] ,[gs_posSubNr] from [tblGesamtsicherheit] where gs_gsnr = " & gsNr & " AND gs_ATBNR = '" & ATBNr & "' AND gs_posSubNr >= " & subposNr
Dim dt As New DataTable
dt = (New SQL).loadDgvBySql(sqlq, "AVISO", 100, True)
If (dt.Rows.Count = 0) Then Exit Sub
For i As Integer = 0 To dt.Rows.Count - 1
Dim sicherheit = New cSicherheiten(dt.Rows(i).Item("gs_gsId"), dt.Rows(i).Item("gs_posNr"), dt.Rows(i).Item("gs_posSubNr"))
Dim currentPos = sicherheit.gs_posSubNr
sicherheit.gs_posSubNr = currentPos - 1
sicherheit.UPDATEWithNewPosNr()
Next
End Sub
Public Shared Function getLatestPosNr(gs_gsnr As Integer, gs_ATBNr As String) As Integer
Dim posNr As Integer = 0
Dim sqlq As String = "Select MAX([gs_posNr]) As MaxPosNr from [tblGesamtsicherheit] where gs_gsnr = " & gs_gsnr & " And gs_ATBNR = '" & gs_ATBNr & "'"
Dim dt As New DataTable
dt = (New SQL).loadDgvBySql(sqlq, "AVISO", 100, True)
If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then
posNr = dt.Rows(0).Item(0)
End If
Return posNr
End Function
Public Shared Function getLatestSubPosNr(gs_gsnr As Integer, gs_ATBNr As String, gs_MRNNr As String) As Integer
Dim posNr As Integer = 0
Dim sqlq As String = "Select MAX([gs_posSubNr]) As MaxPosNr from [tblGesamtsicherheit] where gs_gsnr = " & gs_gsnr & " And gs_MRNNr is not null and gs_MRNNr = '" & gs_MRNNr & "' And gs_ATBNR = '" & gs_ATBNr & "'"
Dim dt As New DataTable
dt = (New SQL).loadDgvBySql(sqlq, "AVISO", 100, True)
If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then
posNr = dt.Rows(0).Item(0)
End If
Return posNr
End Function
End Class