systa, etc.

This commit is contained in:
2026-03-19 13:38:47 +01:00
parent 3b29d299ed
commit 297365fec6
3 changed files with 125 additions and 4 deletions

View File

@@ -317,4 +317,126 @@ Public Class cSicherheiten
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