Handling, etc.

This commit is contained in:
2026-05-08 14:58:49 +02:00
parent 1b677dee85
commit 614b55dd8b
6 changed files with 1555 additions and 151 deletions

View File

@@ -5,46 +5,98 @@ Imports System.Data.SqlClient
Public Class cHandlingssaetzeInternLIST
Property hs_Bezeichnung As Object = Nothing
Property hs_jahr As Object = Nothing
Property hs_datum As Object = Nothing
' Property OffertenNr As Object = Nothing
Public LIST As New List(Of cHandlingssaetzeIntern)
Dim SQL As New SQL
'Dim listTodelete As New List(Of cHandlingssaetzeIntern)
Sub New(hs_Bezeichnung, hs_jahr)
Sub New(hs_Bezeichnung, hs_datum)
Me.hs_Bezeichnung = hs_Bezeichnung
Me.hs_jahr = hs_jahr
Me.hs_datum = hs_datum
' Me.OffertenNr = OffertenNr
LOAD_LIST(Me.hs_Bezeichnung, Me.hs_jahr)
LOAD_LIST_DATUM(Me.hs_Bezeichnung, Me.hs_datum)
End Sub
Sub New(hs_Bezeichnung)
Me.hs_Bezeichnung = hs_Bezeichnung
LOAD_LIST(Me.hs_Bezeichnung)
End Sub
Public Sub CLEAR()
LIST.Clear()
End Sub
Public Sub LOAD_LIST(hs_Bezeichnung, Jahr)
Dim SQLString = " AND ISNULL(hs_gueltigAbJahr, " & Jahr & ") =
CASE
WHEN EXISTS (
SELECT 1
FROM [VERAG].[dbo].[tblHandlingssaetzeIntern]
WHERE hs_Bezeichnung = @hs_Bezeichnung
AND ISNULL(hs_gueltigAbJahr, " & Jahr & ") = " & Jahr & "
)
THEN 2023
ELSE (
SELECT MAX(ISNULL(hs_gueltigAbJahr, " & Jahr & "))
FROM [VERAG].[dbo].[tblHandlingssaetzeIntern]
WHERE hs_Bezeichnung = @hs_Bezeichnung
)
END"
Public Sub LOAD_LIST(hs_Bezeichnung)
Try
LIST.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblHandlingssaetzeIntern WHERE hs_Bezeichnung=@hs_Bezeichnung " & SQLString, conn)
Using cmd As New SqlCommand("SELECT * FROM tblHandlingssaetzeIntern WHERE hs_Bezeichnung=@hs_Bezeichnung ", conn)
cmd.Parameters.AddWithValue("@hs_Bezeichnung", hs_Bezeichnung)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cHandlingssaetzeIntern
For Each i In l.getParameterList()
Dim propInfo As PropertyInfo = l.GetType.GetProperty(i.Scalarvariable)
If dr.Item(i.Text) Is DBNull.Value Then
propInfo.SetValue(l, Nothing)
Else
propInfo.SetValue(l, dr.Item(i.Text))
End If
Next
LIST.Add(l)
End While
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 LOAD_LIST_DATUM(hs_Bezeichnung, ab_datum)
Dim SQLString = ";WITH cte AS (
SELECT *,
ROW_NUMBER() OVER
(
PARTITION BY
hs_Bezeichnung,
hs_Abfertigungsart
ORDER BY
hs_gueltigAbDatum DESC
) AS rn
FROM tblHandlingssaetzeIntern
WHERE isnull(hs_gueltigAbDatum,'01-01-2021') <= @Stichtag AND hs_Bezeichnung = @hs_Bezeichnung
)
SELECT
hs_Bezeichnung,
hs_Abfertigungsart,
hs_Preis,
hs_gueltigAbDatum,
hs_RgVon,
hs_RgAn
FROM cte
WHERE rn = 1
ORDER BY
hs_Bezeichnung,
hs_Abfertigungsart desc;"
Try
LIST.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(SQLString, conn)
cmd.Parameters.AddWithValue("@hs_Bezeichnung", hs_Bezeichnung)
cmd.Parameters.AddWithValue("@Stichtag", CDate(ab_datum))
' cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr)
Dim dr = cmd.ExecuteReader()
While dr.Read
@@ -68,6 +120,7 @@ Public Class cHandlingssaetzeInternLIST
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
'Function SAVE()
' If SQL.doSQLVarList("DELETE FROM tblEmailBenachrichtigung WHERE eb_KundenNr=" & Me.eb_KundenNr & " and eb_ebartId=" & Me.eb_ebartId & " ", "FMZOLL") Then
' For Each l In LIST