div. Änderungen, Gesamtsicherheiten, etc.

This commit is contained in:
2026-09-22 14:30:17 +02:00
parent 3cf0e28dac
commit d561ec8f27
7 changed files with 377 additions and 185 deletions

View File

@@ -81,6 +81,10 @@ Public Class frmGesamtsicherheitenMenuNEU
If txtSuchbegriff.Text <> "" Then
Dim sqlWhereZusatz As String = ""
If IsNumeric(txtSuchbegriff.Text) Then
sqlWhereZusatz = " OR gs.gs_gsNr = " & txtSuchbegriff.Text
End If
sqlWhere = " AND ( gs.gs_freitext LIKE '%" & txtSuchbegriff.Text.Trim() & "%' OR
gs.gs_abfertigungsNr LIKE '%" & txtSuchbegriff.Text.Trim() & "%' OR
@@ -89,42 +93,14 @@ Public Class frmGesamtsicherheitenMenuNEU
gs.gs_VeralteteWeitereRegistriernummer LIKE '%" & txtSuchbegriff.Text.Trim() & "%' OR
gs.gs_MRNNr LIKE '%" & txtSuchbegriff.Text.Trim() & "%' OR
gs.gs_LKWKZ LIKE '%" & txtSuchbegriff.Text.Trim() & "%' OR
gs.gs_warenort LIKE '%" & txtSuchbegriff.Text.Trim() & "%'
)"
gs.gs_warenort LIKE '%" & txtSuchbegriff.Text.Trim() & "%'" & sqlWhereZusatz &
")"
End If
'Dim sqlstring As String =
' " select * from (Select gs_gsnr as gs_gsnr, MIN(gs_standort) as gs_standort, MIN(gs_warenort) as gs_warenort, MIN(gs_filialenNr) as gs_filialenNr, min(gs_abfertigungsNr) as gs_abfertigungsNr, MIN(gs_avisoId) as gs_avisoId,
' max(gs_LKWKZ) as gs_LKWKZ, min (gs_datum) as gs_datum, FORMAT(
' (Select SUM( Case
'when gs_art = 'Open' then (gs_sicherheitsbetrag * -1)
'when gs_art = 'Close' then gs_sicherheitsbetrag
' End) As gs_SicherheitsSaldo FROM [tblGesamtsicherheit] where gs_gsnr = meh.gs_gsnr
' )
' +
' (Select SUM( Case
'when gsp_art = 'Open' then (gsp_sicherheitsbetrag * -1)
'when gsp_art = 'Close' then gsp_sicherheitsbetrag
' End) As gs_SicherheitsSaldo FROM [tblGesamtsicherheitsPositionen] where gsp_gsnr = meh.gs_gsnr
' ) , 'C', 'de-DE') as gs_SicherheitsSaldo
' From (select * from (select gs_gsnr as ding from [tblGesamtsicherheit] where
' gs_freitext like '%" & txtSuchbegriff.Text & "%' OR
' gs_abfertigungsNr like '%" & txtSuchbegriff.Text & "%' OR
' gs_avisoId like '%" & txtSuchbegriff.Text & "%' OR
' gs_ATBNr like '%" & txtSuchbegriff.Text & "%' OR
' gs_LKWKZ like '%" & txtSuchbegriff.Text & "%' OR
' gs_warenort like '%" & txtSuchbegriff.Text & "%'
' ) as tb1 left join [tblGesamtsicherheit] as tb2 on tb1.ding = tb2.gs_gsnr) as meh group by gs_gsnr) as meh2
' Where gs_standort = '" & Standort & "' " & sqladdon & "
' AND gs_datum > '" & Date.Parse(txtDatVon.Text) & "'
' AND gs_datum < '" & Date.Parse(txtDatBis.Text).AddDays(1).AddSeconds(-1) & "' ORDER BY gs_gsnr"
Dim sqlstring As String = "WITH SicherheitsSaldo AS (
SELECT
@@ -581,7 +557,7 @@ Public Class frmGesamtsicherheitenMenuNEU
Exit Sub
End If
If Not zollliste_bereinigt Then SDL.cProgramFunctions.genExcelFromDT_NEW(frm.dtSicherheiten)
If Not zollliste_bereinigt Then SDL.cProgramFunctions.genExcelFromDT_NEW(frm.dtSicherheiten, {"K1:K" & (frm.dtSicherheiten.Rows.Count + 1)})
End Sub
@@ -629,7 +605,7 @@ Public Class frmGesamtsicherheitenMenuNEU
Dim f As New frmDatumsabfrage("Saldo zum Stichtag", False)
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
GesSichRef.CalcSaldo(, f.Datum, True)
GesSichRef.CalcSaldo_new(, f.Datum, True)
End If
@@ -639,9 +615,16 @@ Public Class frmGesamtsicherheitenMenuNEU
Dim SQLPlausPruefung = "select gs_gsnr as Nr,gs_ATBNr as ATBNr, gs_Sicherheitsbetrag as Sicherheitsbetrag ,gsp_ATCNr as ATCNr , cast(gs_datum as Date) as Ausgangsdatum, cast(gsp_datum as Date) as Eingangsdatum, [gs_erstellungsdatum] as Erstellungsdatum, [gs_zuletztgeandert] as GeänderAm, [gs_systemuser] as Benutzer from tblGesamtsicherheit
inner join tblGesamtsicherheitsPositionen on gs_gsId = gsp_gsId
where cast(gsp_datum as Date) < cast(gs_datum as Date) and not ( [gs_sicherheitsbetrag] = 0.00 and [gsp_sicherheitsbetrag] = 0.00) and gs_standort = '" & Standort & "'"
Dim SQLPlausPruefung = "SELECT
gs.gs_gsId,
gs.gs_datum AS GestellungDatum,
gsp.gsp_datum AS PositionDatum,
gsp.gsp_sicherheitsbetrag
FROM dbo.tblGesamtsicherheit AS gs
INNER JOIN dbo.tblGesamtsicherheitsPositionen AS gsp
ON gsp.gsp_gsId = gs.gs_gsId
WHERE gs.gs_standort = '" & Standort & "'
AND gsp.gsp_datum < gs.gs_datum;"
Dim dt As New DataTable
@@ -666,29 +649,45 @@ Public Class frmGesamtsicherheitenMenuNEU
Private Sub SicherheitsbetragToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SicherheitsbetragToolStripMenuItem.Click
Dim SQLPlausPruefung = "SELECT
gs.gs_gsnr,
gs.Sicherheitbetrag_Ausgang,
gsp.Sicherheitbetrag_Eingang,
gs.gs_standort
FROM
(
SELECT
gs_gsnr,
gs_standort,
SUM(gs_sicherheitsbetrag) AS Sicherheitbetrag_Ausgang
FROM tblGesamtsicherheit
GROUP BY gs_standort, gs_gsnr
) gs
JOIN
(
SELECT
gsp_gsnr,
SUM(gsp_sicherheitsbetrag) AS Sicherheitbetrag_Eingang
FROM tblGesamtsicherheitsPositionen
GROUP BY gsp_gsnr
) gsp
ON gs.gs_gsnr = gsp.gsp_gsnr WHERE gs.Sicherheitbetrag_Ausgang < gsp.Sicherheitbetrag_Eingang and gs_standort = '" & Standort & "' and gs_gsnr <> 2030 order by gs.gs_gsnr"
Dim SQLPlausPruefung = "DECLARE @Standort varchar(100) = '" & Standort & "';
SELECT
gs.gs_gsnr,
gs.Sicherheitsbetrag_Eingang,
gsp.Sicherheitsbetrag_Ausgang,
gs.gs_standort,
gsp.Sicherheitsbetrag_Ausgang
- gs.Sicherheitsbetrag_Eingang AS Differenz
FROM
(
SELECT
gs_gsnr,
gs_standort,
SUM(ISNULL(gs_sicherheitsbetrag, 0))
AS Sicherheitsbetrag_Eingang
FROM dbo.tblGesamtsicherheit
WHERE gs_standort = @Standort
AND gs_gsnr <> 2030
GROUP BY
gs_gsnr,
gs_standort
) AS gs
INNER JOIN
(
SELECT
gsp_gsnr,
SUM(ISNULL(gsp_sicherheitsbetrag, 0))
AS Sicherheitsbetrag_Ausgang
FROM dbo.tblGesamtsicherheitsPositionen
GROUP BY
gsp_gsnr
) AS gsp
ON gsp.gsp_gsnr = gs.gs_gsnr
WHERE
gs.Sicherheitsbetrag_Eingang
< gsp.Sicherheitsbetrag_Ausgang
ORDER BY
gs.gs_gsnr;"
Dim dt As New DataTable
@@ -697,7 +696,7 @@ JOIN
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
MsgBox(dt.Rows.Count & " Datensätze müssen korrigiert werden (S-Betrag des Gestellungseinganges darf nicht größer als der des dem Gestellungsausganges)! " & vbNewLine & "Ansonsten können keine korrekten Werte über die Saldenliste ermittelt werden.")
MsgBox(dt.Rows.Count & " Datensätze müssen korrigiert werden (S-Betrag des Gestellungseinganges darf nicht größer als der des Gestellungsausganges)! " & vbNewLine & "Ansonsten können keine korrekten Werte über die Saldenliste ermittelt werden.")
SDL.cProgramFunctions.genExcelFromDT_NEW(dt)
Else
@@ -737,4 +736,60 @@ JOIN
End If
End Sub
Private Sub GestellungenInDerZukunftToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GestellungenInDerZukunftToolStripMenuItem.Click
Dim SQLPlausPruefung = "DECLARE @Heute date = CAST(GETDATE() AS date) DECLARE @Standort varchar(100) = '" & Standort & "';
-- Zukünftige Gestellungen
SELECT
gs.gs_gsnr AS Nummer,
'Gestellung' AS Typ,
gs.gs_datum AS Datum,
gs.gs_standort AS Standort,
gs.gs_ATBNr AS Registriernummer,
gs.gs_MRNNr AS MRN,
gs.gs_sicherheitsbetrag AS Sicherheitsbetrag
FROM tblGesamtsicherheit AS gs
WHERE gs.gs_datum >= DATEADD(day, 1, @Heute) AND gs.gs_standort = @Standort
UNION ALL
-- Zukünftige Gestellungspositionen
SELECT
gsp.gsp_gsnr AS Nummer,
'Gestellungsposition' AS Typ,
gsp.gsp_datum AS Datum,
gs.gs_standort AS Standort,
gsp.gsp_ATCNr AS Registriernummer,
gsp.gsp_MRNNr AS MRN,
gsp.gsp_sicherheitsbetrag AS Sicherheitsbetrag
FROM tblGesamtsicherheitsPositionen AS gsp
INNER JOIN tblGesamtsicherheit AS gs
ON gs.gs_gsnr = gsp.gsp_gsnr
WHERE gsp.gsp_datum >= DATEADD(day, 1, @Heute) AND gs.gs_standort = @Standort
ORDER BY
Datum,
Nummer,
Typ;"
Dim dt As New DataTable
dt = SQL.loadDgvBySql(SQLPlausPruefung, "AVISO", 100, True)
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
MsgBox(dt.Rows.Count & " Datensätze befinden sich in der Zukunft, bitte korrektes Datum eintragen. " & vbNewLine & "Ansonsten können keine korrekten Werte über die Saldenliste ermittelt werden.")
SDL.cProgramFunctions.genExcelFromDT_NEW(dt)
Else
MsgBox("keine fehlerhaften Eingaben vorhanden!")
End If
End Sub
End Class