div. Änderungen, Gesamtsicherheiten, etc.
This commit is contained in:
@@ -245,6 +245,107 @@ Public Class cAufschubKonten
|
||||
Return brgakto_gs_aktSaldo
|
||||
End Function
|
||||
|
||||
Public Function CalcSaldo_new(Optional dtDate As DataTable = Nothing, Optional Stichtag As Date? = Nothing, Optional showMessage As Boolean = False) As String
|
||||
|
||||
Dim datumBis As Date =
|
||||
If(Stichtag.HasValue, Stichtag.Value.Date, Today.Date)
|
||||
|
||||
Dim datumBisSql As String =
|
||||
datumBis.ToString("yyyy-MM-dd")
|
||||
|
||||
Dim standort As String =
|
||||
brgakto_gs_standort.Replace("'", "''")
|
||||
|
||||
|
||||
Dim saldoSql As String = "DECLARE @Stichtag date = '" & datumBisSql & "'; Declare @Standort varchar(100) = '" & standort & "'; " & "DECLARE @Referenzbetrag decimal(18,2);
|
||||
/* Referenzbetrag vor dem Stichtag */
|
||||
SELECT TOP (1)
|
||||
@Referenzbetrag = r.brgarefb_refbetrag
|
||||
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
|
||||
AND r.brgarefb_gueltig_ab < @Stichtag
|
||||
AND (
|
||||
r.brgarefb_gueltig_bis IS NULL
|
||||
OR r.brgarefb_gueltig_bis >= @Stichtag
|
||||
)
|
||||
ORDER BY
|
||||
r.brgarefb_gueltig_ab DESC,
|
||||
r.brgarefb_id DESC;
|
||||
|
||||
|
||||
/* Bewegungen vor dem Stichtag */
|
||||
SELECT
|
||||
ISNULL(@Referenzbetrag, 0)
|
||||
+ ISNULL(SUM(Betrag), 0) AS GesamtSicherheitsSaldo
|
||||
FROM
|
||||
(
|
||||
/* Eingänge vor dem Stichtag */
|
||||
SELECT
|
||||
ISNULL(gs.gs_sicherheitsbetrag, 0) * -1 AS Betrag
|
||||
FROM dbo.tblGesamtsicherheit AS gs
|
||||
WHERE gs.gs_standort = @Standort
|
||||
AND gs.gs_datum < @Stichtag
|
||||
AND ISNULL(gs.gs_ReferenzAenderung, 0) = 0
|
||||
|
||||
UNION ALL
|
||||
|
||||
/* Ausgänge vor dem Stichtag */
|
||||
SELECT
|
||||
ISNULL(gsp.gsp_sicherheitsbetrag, 0) AS Betrag
|
||||
FROM dbo.tblGesamtsicherheitsPositionen AS gsp
|
||||
WHERE gsp.gsp_datum < @Stichtag
|
||||
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 < @Stichtag
|
||||
AND ISNULL(gs.gs_ReferenzAenderung, 0) = 0
|
||||
)
|
||||
) AS Bewegungen;"
|
||||
|
||||
|
||||
Dim dt As DataTable =
|
||||
SQL.loadDgvBySql(saldoSql, "AVISO", 100, True)
|
||||
|
||||
Dim saldo As Decimal = 0D
|
||||
|
||||
If dt IsNot Nothing AndAlso
|
||||
dt.Rows.Count > 0 AndAlso
|
||||
Not IsDBNull(dt.Rows(0).Item("GesamtSicherheitsSaldo")) Then
|
||||
|
||||
saldo = Convert.ToDecimal(
|
||||
dt.Rows(0).Item("GesamtSicherheitsSaldo")
|
||||
)
|
||||
End If
|
||||
|
||||
|
||||
brgakto_gs_aktSaldo = CDbl(saldo)
|
||||
|
||||
|
||||
If showMessage Then
|
||||
MsgBox(
|
||||
"Saldo zum Stichtag " &
|
||||
datumBis.ToShortDateString() &
|
||||
":" & vbNewLine &
|
||||
brgakto_gs_aktSaldo.ToString("N2")
|
||||
)
|
||||
End If
|
||||
|
||||
|
||||
If Not Stichtag.HasValue Then
|
||||
updateSaldo()
|
||||
End If
|
||||
|
||||
|
||||
Return brgakto_gs_aktSaldo.ToString()
|
||||
|
||||
End Function
|
||||
|
||||
Public Function getReferenzbetrag(nowDate As Date) As Double
|
||||
|
||||
Try
|
||||
|
||||
Reference in New Issue
Block a user