Gesamtsicherheiten, Sendungsdetails (Ausdruck Anhang Rechnung)

This commit is contained in:
2024-10-10 11:31:28 +02:00
parent 1dc8c1b913
commit f12c20c800
4 changed files with 172 additions and 62 deletions

View File

@@ -54,7 +54,7 @@ Public Class frmGesamtsicherheitenMenuNEU
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
If GesSichRef.brgakto_gs_ATR = True Then
If GesSichRef.brgakto_gs_ATR Then
Dim anzahlOffenerGSUeber85Tage As Integer = checkOpenATBs()
If anzahlOffenerGSUeber85Tage > 0 Then
btnOpenOver85Days.Visible = True
@@ -67,36 +67,95 @@ Public Class frmGesamtsicherheitenMenuNEU
Public Function LoadDGV()
Dim sqladdon As String = ""
If chkOffen.Checked Then sqladdon &= " AND gs_SicherheitsSaldo != '0,00 €'"
If cbxStandort._value <> "" Then sqladdon &= " AND gs_filialenNr = '" & cbxStandort._value.ToString & "'"
Dim sqlSicherheitssaldo As String = ""
If chkOffen.Checked Then sqlSicherheitssaldo &= " HAVING
( COALESCE(MAX(SicherheitsSaldo.gs_SicherheitsSaldo), 0) +
COALESCE(MAX(PositionenSaldo.gsp_SicherheitsSaldo), 0)
) <> 0 "
If cbxStandort._value <> "" Then sqladdon &= " AND gs_filialenNr = " & cbxStandort._value.ToString
If cbxWarenort._value <> "" Then sqladdon &= " AND gs_warenort = '" & cbxWarenort._value.ToString & "'"
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
'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"
' 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
gs_gsnr,
SUM(CASE
WHEN gs_art = 'Open' THEN -gs_sicherheitsbetrag
WHEN gs_art = 'Close' THEN gs_sicherheitsbetrag
END) AS gs_SicherheitsSaldo
FROM tblGesamtsicherheit
GROUP BY gs_gsnr
),
PositionenSaldo AS (
SELECT
gsp_gsnr,
SUM(CASE
WHEN gsp_art = 'Open' THEN -gsp_sicherheitsbetrag
WHEN gsp_art = 'Close' THEN gsp_sicherheitsbetrag
END) AS gsp_SicherheitsSaldo
FROM tblGesamtsicherheitsPositionen
GROUP BY gsp_gsnr
)
SELECT
gs.gs_gsnr,
MIN(gs.gs_standort) AS gs_standort,
MIN(gs.gs_warenort) AS gs_warenort,
MIN(gs.gs_filialenNr) AS gs_filialenNr,
MIN(gs.gs_abfertigungsNr) AS gs_abfertigungsNr,
MIN(gs.gs_avisoId) AS gs_avisoId,
MAX(gs.gs_LKWKZ) AS gs_LKWKZ,
MIN(gs.gs_datum) AS gs_datum,
(
COALESCE(MAX(SicherheitsSaldo.gs_SicherheitsSaldo), 0) +
COALESCE(MAX(PositionenSaldo.gsp_SicherheitsSaldo), 0)
) AS gs_SicherheitsSaldo
FROM
tblGesamtsicherheit gs
LEFT JOIN SicherheitsSaldo ON gs.gs_gsnr = SicherheitsSaldo.gs_gsnr
LEFT JOIN PositionenSaldo ON gs.gs_gsnr = PositionenSaldo.gsp_gsnr
WHERE
gs.gs_standort = '" & Standort & "' " & sqladdon & "
AND gs.gs_datum BETWEEN '" & Date.Parse(txtDatVon.Text) & "' AND '" & Date.Parse(txtDatBis.Text).AddDays(1).AddSeconds(-1) & "'
AND (
gs.gs_freitext LIKE '%" & txtSuchbegriff.Text & "%' OR
gs.gs_abfertigungsNr LIKE '%" & txtSuchbegriff.Text & "%' OR
gs.gs_avisoId LIKE '%" & txtSuchbegriff.Text & "%' OR
gs.gs_ATBNr LIKE '%" & txtSuchbegriff.Text & "%' OR
gs.gs_LKWKZ LIKE '%" & txtSuchbegriff.Text & "%' OR
gs.gs_warenort LIKE '%" & txtSuchbegriff.Text & "%'
)
GROUP BY
gs.gs_gsnr " & sqlSicherheitssaldo &
"ORDER BY
gs.gs_gsnr;"
dgvListe.SET_SQL(sqlstring, "AVISO")
dgvListe.LOAD()
@@ -115,6 +174,7 @@ Public Class frmGesamtsicherheitenMenuNEU
.Columns("gs_datum").HeaderText = "Datum"
.Columns("gs_SicherheitsSaldo").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("gs_SicherheitsSaldo").HeaderText = "offener S-Betrag"
.Columns("gs_SicherheitsSaldo").DefaultCellStyle.Format = "c2"
.Columns("gs_Warenort").Width = 96
.Columns("gs_Warenort").HeaderText = "Warenort"
.Columns("gs_avisoId").Width = 96
@@ -123,8 +183,6 @@ Public Class frmGesamtsicherheitenMenuNEU
End With
If dgvListe.Rows.Count = 0 Then Exit Function
dataTable = New DataTable()
@@ -361,21 +419,63 @@ Public Class frmGesamtsicherheitenMenuNEU
Dim anzahlOffenerGSUeber85Tage As Integer
Dim sqlstring As String = "select count(*) as anzahlOffeneATBs from (Select gs_gsnr as gs_gsnr, MIN(gs_standort) as gs_standort,min (gs_datum) as gs_datum,
(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
) as Sicherheitssaldo
' Dim sqlstring As String = "select count(*) as anzahlOffeneATBs from (Select gs_gsnr as gs_gsnr, MIN(gs_standort) as gs_standort,min (gs_datum) as gs_datum,
' (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
' ) as Sicherheitssaldo
' From [tblGesamtsicherheit] as meh group by gs_gsnr) as meh2
' Where gs_standort = '" & Standort & "'AND Sicherheitssaldo <> 0 AND gs_datum < '" & Date.Now().AddDays(-85) & "'"
Dim sqlstring As String = "WITH SicherheitsSaldo AS (
SELECT
gs_gsnr,
SUM(CASE
WHEN gs_art = 'Open' THEN -gs_sicherheitsbetrag
WHEN gs_art = 'Close' THEN gs_sicherheitsbetrag
END) AS gs_SicherheitsSaldo
FROM tblGesamtsicherheit
GROUP BY gs_gsnr
),
PositionenSaldo AS (
SELECT
gsp_gsnr,
SUM(CASE
WHEN gsp_art = 'Open' THEN -gsp_sicherheitsbetrag
WHEN gsp_art = 'Close' THEN gsp_sicherheitsbetrag
END) AS gsp_SicherheitsSaldo
FROM tblGesamtsicherheitsPositionen
GROUP BY gsp_gsnr
)
SELECT
COUNT(*) AS anzahlOffeneATBs
FROM (
SELECT
gs.gs_gsnr,
MIN(gs.gs_standort) AS gs_standort,
MIN(gs.gs_datum) AS gs_datum,
COALESCE(SUM(SicherheitsSaldo.gs_SicherheitsSaldo), 0) +
COALESCE(SUM(PositionenSaldo.gsp_SicherheitsSaldo), 0) AS Sicherheitssaldo
FROM tblGesamtsicherheit gs
LEFT JOIN SicherheitsSaldo ON gs.gs_gsnr = SicherheitsSaldo.gs_gsnr
LEFT JOIN PositionenSaldo ON gs.gs_gsnr = PositionenSaldo.gsp_gsnr
WHERE gs.gs_standort = '" & Standort & "'
AND gs.gs_datum < '" & Date.Now().AddDays(-85) & "'
GROUP BY gs.gs_gsnr
) AS meh2
WHERE meh2.Sicherheitssaldo <> 0;"
From [tblGesamtsicherheit] as meh group by gs_gsnr) as meh2
Where gs_standort = '" & Standort & "'AND Sicherheitssaldo <> 0 AND gs_datum < '" & Date.Now().AddDays(-85) & "'"
Dim dtNew As DataTable = SQL.loadDgvBySql(sqlstring, "AVISO", 100, True)
@@ -412,13 +512,10 @@ Public Class frmGesamtsicherheitenMenuNEU
Next
Dim frm As New frmGesamtsicherheitenNEU
Dim datumVon As Date = CDate(txtDatVon.Text)
datumVon = datumVon.AddDays(-1)
If sender.ToString = "Detailliste" Then
frm.LoadDataTableSicherheitenForExport2(list, datumVon.ToShortDateString, txtDatBis.Text)
ElseIf sender.ToString = "Referenzliste-Zollamt" Then
frm.LoadDataTableSicherheitenForExport(list, datumVon.ToShortDateString, txtDatBis.Text, Standort)