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

@@ -80,7 +80,7 @@ Public Class frmGesamtsicherheitenNEU
End Select
currentGesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(Standort, firmaId)
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo())
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo_new())
lblSaldo.Text = "Saldo: €" & SaldoNew.ToString("N")
Me.Text = "Gesamtsicherheit " & Standort
@@ -295,7 +295,7 @@ Public Class frmGesamtsicherheitenNEU
and isnull(gs_sicherheitsbetrag,0) <> 0
and gs_datum is not null
UNION
Select gsp_gsnr, [gsp_ATCNr],gsp_MRNNr,'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag], [gsp_freitext],'',[gsp_ust] " & IIf(detailinfo, ", [gsp_erstellungsdatum] as Erstellungsdatum, [gsp_zuletztgeandert] as GeänderAm, [gsp_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheitsPositionen]
Select gsp_gsnr, [gsp_ATCNr],gsp_MRNNr,'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag] " & IIf(detailinfo, ", [gsp_erstellungsdatum] as Erstellungsdatum, [gsp_zuletztgeandert] as GeänderAm, [gsp_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheitsPositionen]
Where gsp_gsnr In (
SELECT [gs_gsnr] FROM tblGesamtsicherheit WHERE gs_standort = '" & standort & "' AND cast(gs_datum as Date) > '" & datumVon.ToShortDateString & "' AND cast(gs_datum as Date) <= '" & datumBis.ToShortDateString & "'
@@ -305,41 +305,159 @@ Public Class frmGesamtsicherheitenNEU
) as Temp order by Temp.Datum, Temp.Uhrzeit "
Dim SQLStringSicherheit_new_new As String = " select * from (select gs_gsnr as 'Nr',[gs_ATBNr] as 'Reg-Nr. Verwahrlager " & standort & "', gs_MRNNr as MRN,'Eingang Verwahrlager' as 'Typ', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_sicherheitsbetrag] *-1 as Sicherheitbetrag_Calc, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt' " & IIf(detailinfo, ", [gs_erstellungsdatum] as Erstellungsdatum, [gs_zuletztgeandert] as GeänderAm, [gs_systemuser] as Benutzer ", "") & "
Dim SQLStringSicherheit_new_new As String = " select * from (select gs_gsnr as 'Nr',[gs_ATBNr] as 'Reg-Nr. Verwahrlager " & standort & "', gs_MRNNr as MRN,'Eingang Verwahrlager' as 'Typ', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_sicherheitsbetrag] *-1 as Sicherheitbetrag_Calc " & IIf(detailinfo, ", [gs_erstellungsdatum] as Erstellungsdatum, [gs_zuletztgeandert] as GeänderAm, [gs_systemuser] as Benutzer ", "") & "
From [tblGesamtsicherheit]
Where gs_standort = '" & standort & "' AND cast(gs_datum as Date) > '" & datumVon.ToShortDateString & "' AND cast(gs_datum as Date) <= '" & datumBis.ToShortDateString & "' and gs_datum is not null
UNION
Select gsp_gsnr, [gsp_ATCNr],gsp_MRNNr,'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag], [gsp_freitext],'',[gsp_ust] " & IIf(detailinfo, ", [gsp_erstellungsdatum] as Erstellungsdatum, [gsp_zuletztgeandert] as GeänderAm, [gsp_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheitsPositionen]
Select gsp_gsnr, [gsp_ATCNr],gsp_MRNNr,'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag] " & IIf(detailinfo, ", [gsp_erstellungsdatum] as Erstellungsdatum, [gsp_zuletztgeandert] as GeänderAm, [gsp_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheitsPositionen]
Where gsp_gsnr In ( SELECT [gs_gsnr] FROM tblGesamtsicherheit WHERE gs_standort = '" & standort & "' )
and gsp_datum is not null AND cast(gsp_datum as Date) >= '" & datumVon.ToShortDateString & "'
) as Temp order by Temp.Datum, Temp.Uhrzeit "
dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit_new_new, "AVISO", 100, True)
Dim SQLStringSicherheit_refactored As String = " DECLARE @DatumVon date = '" & datumVon.ToShortDateString & "';
DECLARE @DatumBis date = '" & datumBis.ToShortDateString & "';
DECLARE @Standort varchar(100) = '" & standort & "';
dtSicherheiten.Columns.Add("Saldo")
;WITH ReferenzHistorie AS
(
SELECT
k.brgakto_gs_standort AS Standort,
r.brgarefb_id,
r.brgarefb_refbetrag,
r.brgarefb_gueltig_ab,
LAG(r.brgarefb_refbetrag, 1, 0) OVER
(
PARTITION BY k.brgakto_gs_standort
ORDER BY
r.brgarefb_gueltig_ab,
r.brgarefb_id
) AS VorherigerReferenzbetrag
FROM [ADMIN].[dbo].[tblBrgAufschubKonten] AS k
INNER JOIN [ADMIN].[dbo].[tblBrgAufschubReferenzberaege] AS r
ON r.brgarefb_gsid = k.brgakto_id
WHERE k.brgakto_gs_standort = @Standort
AND ISNULL(r.brgarefb_gs_aktiv, 1) = 1
),
Saldenliste AS
(
/* Referenzbetragsänderungen nach dem Anfangssaldo */
SELECT
0 AS Nr,
CAST(NULL AS varchar(100)) AS RegNr,
CAST(NULL AS varchar(100)) AS MRN,
'Änderung Referenzbetrag' AS Typ,
CAST(rh.brgarefb_gueltig_ab AS date) AS Datum,
CAST('00:00:00' AS time) AS Uhrzeit,
CAST(NULL AS decimal(18,2)) AS Warenwert,
rh.brgarefb_refbetrag AS Sicherheitbetrag,
rh.brgarefb_refbetrag
- rh.VorherigerReferenzbetrag AS Sicherheitbetrag_Calc,
rh.Standort,
0 AS Sortierung
FROM ReferenzHistorie AS rh
WHERE rh.brgarefb_gueltig_ab > @DatumVon
AND rh.brgarefb_gueltig_ab < DATEADD(day, 1, @DatumBis)
AND rh.brgarefb_refbetrag <> rh.VorherigerReferenzbetrag
UNION ALL
/* Eingang Verwahrlager */
SELECT
gs.gs_gsnr AS Nr,
gs.gs_ATBNr AS RegNr,
gs.gs_MRNNr AS MRN,
'Eingang Verwahrlager' AS Typ,
CAST(gs.gs_datum AS date) AS Datum,
CAST(gs.gs_datum AS time) AS Uhrzeit,
gs.gs_warenwert AS Warenwert,
gs.gs_sicherheitsbetrag AS Sicherheitbetrag,
gs.gs_sicherheitsbetrag * -1 AS Sicherheitbetrag_Calc,
gs.gs_standort AS Standort,
1 AS Sortierung
FROM dbo.tblGesamtsicherheit AS gs
WHERE gs.gs_standort = @Standort
AND gs.gs_datum >= @DatumVon
AND gs.gs_datum < DATEADD(day, 1, @DatumBis)
AND gs.gs_datum IS NOT NULL
AND ISNULL(gs.gs_ReferenzAenderung, 0) = 0
UNION ALL
/* Ausgang Verwahrlager */
SELECT
gsp.gsp_gsnr AS Nr,
gsp.gsp_ATCNr AS RegNr,
gsp.gsp_MRNNr AS MRN,
'Ausgang Verwahrlager' AS Typ,
CAST(gsp.gsp_datum AS date) AS Datum,
CAST(gsp.gsp_datum AS time) AS Uhrzeit,
gsp.gsp_warenwert AS Warenwert,
gsp.gsp_sicherheitsbetrag AS Sicherheitbetrag,
gsp.gsp_sicherheitsbetrag AS Sicherheitbetrag_Calc,
@Standort AS Standort,
2 AS Sortierung
FROM dbo.tblGesamtsicherheitsPositionen AS gsp
WHERE gsp.gsp_datum >= @DatumVon
AND gsp.gsp_datum < DATEADD(day, 1, @DatumBis)
AND gsp.gsp_datum IS NOT NULL
AND EXISTS
(
SELECT 1
FROM dbo.tblGesamtsicherheit AS gs
WHERE gs.gs_gsId = gsp.gsp_gsId
AND gs.gs_standort = @Standort
AND gs.gs_datum IS NOT NULL
AND gs.gs_datum < DATEADD(day, 1, @DatumBis)
AND ISNULL(gs.gs_ReferenzAenderung, 0) = 0
)
)
SELECT
Nr,
RegNr,
MRN,
Typ,
Datum,
Uhrzeit,
Warenwert,
Sicherheitbetrag,
Sicherheitbetrag_Calc,
Standort
FROM Saldenliste
ORDER BY
Datum ASC,
Sortierung ASC,
Uhrzeit ASC,
Nr ASC;"
dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit_refactored, "AVISO", 100, True)
dtSicherheiten.Columns.Add("Saldo", GetType(Decimal))
Dim drFirst = dtSicherheiten.NewRow
drFirst.Item("Nr") = 0
drFirst.Item("Typ") = "Uebertrag vom"
drFirst.Item("Datum") = CDate(datumVon).ToShortDateString
Dim DefaultSaldo As Double = currentGesSichRef.getReferenzbetrag(CDate(datumVon).ToShortDateString)
drFirst.Item("Saldo") = currentGesSichRef.CalcSaldo(, datumVon) 'SQL.getValueTxtBySql("SELECT TOP 1 isnull([gs_saldo],0) FROM [tblGesamtsicherheit] where gs_standort = '" & standort & "' AND gs_datum <'" & CDate(datumVon).ToShortDateString & "' order by gs_datum desc", "AVISO",,, DefaultSaldo) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
drFirst.Item("Saldo") = currentGesSichRef.CalcSaldo_new(, datumVon) 'SQL.getValueTxtBySql("SELECT TOP 1 isnull([gs_saldo],0) FROM [tblGesamtsicherheit] where gs_standort = '" & standort & "' AND gs_datum <'" & CDate(datumVon).ToShortDateString & "' order by gs_datum desc", "AVISO",,, DefaultSaldo) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drFirst, 0)
Dim sicherheitsbetrag As Double
Dim saldo As Double
Dim c1 As Double
Dim saldoStart As Double
Dim sicherheitsbetrag As Decimal
Dim saldo As Decimal
Dim c1 As Decimal
Dim saldoStart As Decimal
For i As Integer = 1 To dtSicherheiten.Rows.Count - 1
saldoStart = CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
saldo = CDbl(dtSicherheiten.Rows(i - 1).Item("Saldo"))
saldoStart = CDec(dtSicherheiten.Rows(0).Item("Saldo"))
saldo = CDec(dtSicherheiten.Rows(i - 1).Item("Saldo"))
sicherheitsbetrag = IIf(dtSicherheiten.Rows(i).Item("Sicherheitbetrag_Calc") IsNot Nothing, CDbl(dtSicherheiten.Rows(i).Item("Sicherheitbetrag_Calc")), 0)
sicherheitsbetrag = If(IsDBNull(dtSicherheiten.Rows(i)("Sicherheitbetrag_Calc")), 0, CDec(dtSicherheiten.Rows(i)("Sicherheitbetrag_Calc")))
c1 = saldo + sicherheitsbetrag
@@ -351,7 +469,7 @@ Public Class frmGesamtsicherheitenNEU
drLast.Item("Nr") = 0
drLast.Item("Typ") = "Saldo zum"
drLast.Item("Datum") = CDate(datumBis).ToShortDateString
drLast.Item("Saldo") = CDbl(dtSicherheiten.Rows(dtSicherheiten.Rows.Count - 1).Item("Saldo"))
drLast.Item("Saldo") = CDec(dtSicherheiten.Rows(dtSicherheiten.Rows.Count - 1).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drLast, dtSicherheiten.Rows.Count)
@@ -410,7 +528,7 @@ Public Class frmGesamtsicherheitenNEU
drFirst_new.Item("Nr") = 0
drFirst_new.Item("Typ") = "Uebertrag vom"
drFirst_new.Item("Datum") = CDate(datumVon).ToShortDateString
drFirst_new.Item("Saldo") = CDbl(startSaldo)
drFirst_new.Item("Saldo") = CDec(startSaldo)
sicherheiten_cleared.Rows.InsertAt(drFirst_new, 0)
@@ -419,11 +537,15 @@ Public Class frmGesamtsicherheitenNEU
drLast_new.Item("Nr") = 0
drLast_new.Item("Typ") = "Saldo zum"
drLast_new.Item("Datum") = CDate(datumBis).ToShortDateString
drLast_new.Item("Saldo") = CDbl(endSaldo)
drLast_new.Item("Saldo") = CDec(endSaldo)
sicherheiten_cleared.Rows.InsertAt(drLast_new, sicherheiten_cleared.Rows.Count)
If sicherheiten_cleared.Rows.Count > 2 Then SDL.cProgramFunctions.genExcelFromDT_NEW(sicherheiten_cleared)
If sicherheiten_cleared.Rows.Count > 2 Then
SDL.cProgramFunctions.genExcelFromDT_NEW(sicherheiten_cleared, {"K1:K" & (sicherheiten_cleared.Rows.Count + 1)})
End If
End If
@@ -466,7 +588,7 @@ Public Class frmGesamtsicherheitenNEU
Next
Dim SQLStringSicherheit As String = "select [gs_ATBNr] as 'Reg-Nr. Verwahrlager',[gs_gsnr] as 'GS Nr', gs_MRNNr as MRN, CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_saldo] as Saldo, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt', gs_art,
Dim SQLStringSicherheit As String = "select [gs_ATBNr] as 'Reg-Nr. Verwahrlager',[gs_gsnr] as 'GS Nr', gs_MRNNr as MRN, CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_saldo] as Saldo, gs_art,
[gsp_MRNNr] as 'ATCNr oder MRN eroeffnet', CAST(gsp_datum as Date) as Datum, CONVERT(VARCHAR(5),gsp_datum, 108) as Uhrzeit, [gsp_warenwert] as Warenwert, [gsp_sicherheitsbetrag] as Sicherheitsbetrag2, [gsp_freitext] as Freitext, gsp_art" &
IIf(detailinfo, ", gs_erstellungsdatum as 'Eingang erstellt am', gs_systemuser as 'von', gs_zuletztgeandert as ' Eingang geändert am', gsp_erstellungsdatum as 'Ausgang erstellt am', gsp_systemuser as 'von_', gsp_zuletztgeandert as ' Ausgang geändert am'", "") &
"from [tblGesamtsicherheit]
@@ -477,7 +599,7 @@ Public Class frmGesamtsicherheitenNEU
Dim SQLStringSicherheit_new As String = " select [gs_ATBNr] as 'Reg-Nr. Verwahrlager',[gs_gsnr] as 'GS Nr', gs_MRNNr as MRN, CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_saldo] as Saldo, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt',
Dim SQLStringSicherheit_new As String = " select [gs_ATBNr] as 'Reg-Nr. Verwahrlager',[gs_gsnr] as 'GS Nr', gs_MRNNr as MRN, CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_saldo] as Saldo,
[gsp_MRNNr] as 'ATCNr oder MRN eroeffnet', CAST(gsp_datum as Date) as Datum, CONVERT(VARCHAR(5),gsp_datum, 108) as Uhrzeit, [gsp_warenwert] as Warenwert, [gsp_sicherheitsbetrag] as Sicherheitsbetrag2, [gsp_freitext] as Freitext" &
IIf(detailinfo, ", gs_erstellungsdatum as 'Eingang erstellt am', gs_systemuser as 'von', gs_zuletztgeandert as ' Eingang geändert am', gsp_erstellungsdatum as 'Ausgang erstellt am', gsp_systemuser as 'von_', gsp_zuletztgeandert as ' Ausgang geändert am'", "") &
"From tblGesamtsicherheit
@@ -500,7 +622,7 @@ Public Class frmGesamtsicherheitenNEU
Dim drFirst = dtSicherheiten.NewRow
drFirst.Item("Reg-Nr. Verwahrlager") = "Uebertrag vom " & datumVon
drFirst.Item("SSaldo") = currentGesSichRef.CalcSaldo(, datumVon) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
drFirst.Item("SSaldo") = currentGesSichRef.CalcSaldo_new(, datumVon) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drFirst, 0)
@@ -805,7 +927,7 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnAddSicherheit_Click(sender As Object, e As EventArgs) Handles btnAddSicherheit.Click
Try
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo())
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo_new())
lblSaldo.Text = "Saldo: €" & SaldoNew.ToString("N")
If (txtSicherheitATBNr.Text = "") Then
@@ -940,7 +1062,7 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnAddPos_Click(sender As Object, e As EventArgs) Handles btnAddPos.Click
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo())
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo_new())
lblSaldo.Text = "Saldo: €" & SaldoNew.ToString("N")
If dgvGesamtsicherheit.SelectedRows.Count = 0 Then
@@ -1023,7 +1145,7 @@ Public Class frmGesamtsicherheitenNEU
End Function
Sub AfterButton()
'currentGesSichRef.CalcSaldo()
lblSaldo.Text = "Saldo: €" & Decimal.Parse(currentGesSichRef.CalcSaldo()).ToString("N")
lblSaldo.Text = "Saldo: €" & Decimal.Parse(currentGesSichRef.CalcSaldo_new()).ToString("N")
LoadDGVSicherheiten(True)
EmptyTXT()
End Sub
@@ -2136,7 +2258,7 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnRundungsdifAusgl_Click(sender As Object, e As EventArgs) Handles btnRundungsdifAusgl.Click
Try
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo())
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo_new())
lblSaldo.Text = "Saldo: €" & SaldoNew.ToString("N")
If (rundungsdiff <> 0) AndAlso checkIfRundungsPosExists() = False Then