Rundungsdifferenzausgleich implementiert.

This commit is contained in:
2023-01-20 13:45:49 +01:00
parent f4f8ab91a4
commit 139c1b93ae
3 changed files with 635 additions and 530 deletions

View File

@@ -57,7 +57,7 @@ Public Class frmGesamtsicherheitenMenuNEU
Public Function LoadDGV()
Dim sqladdon As String = ""
If chkOffen.Checked Then sqladdon &= " AND gs_SicherheitsSaldo != '0,00 €' AND gs_SicherheitsSaldo != '0,01 €' AND gs_SicherheitsSaldo != '-0,01 €'"
If chkOffen.Checked Then sqladdon &= " AND gs_SicherheitsSaldo != '0,00 €'"
If cbxStandort._value <> "" Then sqladdon &= " AND gs_filialenNr = '" & cbxStandort._value.ToString & "'"
If cbxWarenort._value <> "" Then sqladdon &= " AND gs_warenort = '" & cbxWarenort._value.ToString & "'"
@@ -126,7 +126,7 @@ Public Class frmGesamtsicherheitenMenuNEU
For Each row As DataGridViewRow In dgvListe.Rows
If Not IsDBNull(row.Cells("gs_SicherheitsSaldo").Value) Then
If row.Cells("gs_SicherheitsSaldo").Value <> 0 And row.Cells("gs_SicherheitsSaldo").Value <> 0.01 And row.Cells("gs_SicherheitsSaldo").Value <> -0.01 Then
If row.Cells("gs_SicherheitsSaldo").Value <> 0 Then
dataTable.Rows.Add(row.Cells("gs_gsnr").Value, True)
row.DefaultCellStyle.BackColor = Color.IndianRed
@@ -367,7 +367,7 @@ Public Class frmGesamtsicherheitenMenuNEU
) as Sicherheitssaldo
From [tblGesamtsicherheit] as meh group by gs_gsnr) as meh2
Where gs_standort = '" & Standort & "' AND Sicherheitssaldo > '0.01' AND gs_datum < '" & Date.Now().AddDays(-85) & "'"
Where gs_standort = '" & Standort & "' AND gs_datum < '" & Date.Now().AddDays(-85) & "'"
dtNew = SQL.loadDgvBySql(sqlstring, "AVISO", 100, True)

File diff suppressed because it is too large Load Diff

View File

@@ -38,6 +38,8 @@ Public Class frmGesamtsicherheitenNEU
Dim isOpen As Boolean = False
Dim rundungsdiff As Double = 0
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public dataTable As New DataTable()
@@ -50,6 +52,12 @@ Public Class frmGesamtsicherheitenNEU
Private Sub frmGesamtsicherheitNEU_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("GESAMTSICHERHEIT_RUNDUNGSKORREKTUR", "AVISO") Then
btnRundungsdifAusgl.Visible = True
Else
btnRundungsdifAusgl.Visible = False
End If
currentGesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(Standort)
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo())
lblSaldo.Text = "Saldo: €" & SaldoNew.ToString("N")
@@ -810,8 +818,14 @@ Public Class frmGesamtsicherheitenNEU
currentSicherheit = Sicherh
txtAnzahlPos.Enabled = False
btnAddSicherheit.Visible = False
btnUpdateSicherheit.Visible = True
If Sicherh.gs_isRundungsdiff = True Then
btnAddSicherheit.Visible = False
btnUpdateSicherheit.Visible = False
Else
btnAddSicherheit.Visible = False
btnUpdateSicherheit.Visible = True
End If
btnDeleteSicherheit.Visible = True
End Sub
@@ -878,7 +892,7 @@ Public Class frmGesamtsicherheitenNEU
Private Sub dgvGesamtsicherheitPositionen_CellCellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvSicherheitsPos.CellDoubleClick
Dim sPos As New cGesamtsicherheitsPositionen(dgvSicherheitsPos.CurrentRow.Cells("gsp_gsId").Value, dgvSicherheitsPos.CurrentRow.Cells("gsp_gspPosId").Value)
If sPos.gsp_isPosRundungsdiff = True Then Exit Sub
txtPosNr.Text = sPos.gsp_gspPosId
txtPosFreitext.Text = sPos.gsp_freitext
txtPosSicherheitsbetrag.Text = sPos.gsp_sicherheitsbetrag
@@ -1373,6 +1387,14 @@ Public Class frmGesamtsicherheitenNEU
lbloffenerWarenwert.Text = "offener Warenwert: €"
lbloffenerWarenwert.Text &= Math.Round(countWarenwert, 2) - Math.Round(countWarenwertPos, 2)
If (Math.Abs(countSicherheitsbetrag - countSicherheitsbetragPos) < 0.1 AndAlso Math.Abs(countSicherheitsbetrag - countSicherheitsbetragPos) <> 0) Then
btnRundungsdifAusgl.Enabled = True
rundungsdiff = Math.Round(countSicherheitsbetrag - countSicherheitsbetragPos, 2)
Else
btnRundungsdifAusgl.Enabled = False
End If
End Sub
@@ -1645,4 +1667,76 @@ Public Class frmGesamtsicherheitenNEU
End If
End Sub
Private Sub btnRundungsdifAusgl_Click(sender As Object, e As EventArgs) Handles btnRundungsdifAusgl.Click
Try
If (rundungsdiff <> 0) AndAlso checkIfRundungsPosExists() = False Then
Dim OPEN As New cSicherheiten()
With OPEN
.gs_gsNr = gessicherheitID
.gs_ATBNr = "Korrekt. Rundungsdiff. " & gessicherheitID
.gs_posNr = Me.getLatestPosNr(currentSicherheit.gs_gsNr, currentSicherheit.gs_ATBNr) + 1
.gs_datum = DateTime.Now
.gs_warenwert = 0
.gs_sicherheitsbetrag = 0
.gs_standort = Me.Standort
.gs_art = "OPEN"
.gs_erstellungsdatum = DateTime.Now
.gs_freitext = ""
.gs_saldo = currentGesSichRef.brgakto_gs_aktSaldo
.gs_atr = setNullToZero(cboSicherheitATR.SelectedItem)
.gs_zollsatz = Me.Zollsatz
.gs_avisoId = Me.avisoID
.gs_isRundungsdiff = True
setEnviromentDataToObject(OPEN, Me)
End With
Dim gs_gsId = OPEN.SAVEOBJECT()
Dim SicherheitsPos As New cGesamtsicherheitsPositionen()
With SicherheitsPos
.gsp_gsId = gs_gsId
.gsp_gspPosId = OPEN.gs_posNr
.gsp_warenwert = 0
.gsp_sicherheitsbetrag = rundungsdiff
.gsp_freitext = ""
.gsp_filialenNr = currentSicherheit.gs_filialenNr
.gsp_art = "CLOSE"
.gsp_gsNr = gessicherheitID
.gsp_abfertigungsNr = currentSicherheit.gs_abfertigungsnr
.gsp_datum = DateTime.Now
.gsp_erstellungsdatum = DateTime.Now
.gsp_ust = currentSicherheit.gs_ust
.gsp_ATCNr = "Korrekt. Rundungsdiff. " & gessicherheitID
.gsp_isPosRundungsdiff = True
.gsp_avisoId = Me.avisoID
End With
SicherheitsPos.SAVE()
AfterButton()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Function checkIfRundungsPosExists()
If dgvGesamtsicherheit.Rows.Count < 1 Then Return False
For Each Row In dgvGesamtsicherheit.Rows
Dim sicherh As New cSicherheiten(Row.Cells("gs_gsId").Value, Row.Cells("gs_posNr").Value)
If sicherh.gs_isRundungsdiff Then Return True
Next
Return False
End Function
End Class