Gesamtsicherheiten: Hinweis bei Überschreitung von Referenzwert!

This commit is contained in:
2022-11-23 17:02:15 +01:00
parent c999394224
commit f0e9eb8867

View File

@@ -20,7 +20,7 @@ Public Class frmGesamtsicherheitenNEU
Public Zollsatz As Double
Public Saldo As Integer = 0
Public SaldoNew As Double = 0
Public Neu As Boolean = False
@@ -50,6 +50,7 @@ Public Class frmGesamtsicherheitenNEU
Private Sub frmGesamtsicherheitNEU_Load(sender As Object, e As EventArgs) Handles MyBase.Load
currentGesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(Standort)
SaldoNew = Decimal.Parse(currentGesSichRef.CalcSaldo())
lblSaldo.Text = "Saldo: €" & Decimal.Parse(currentGesSichRef.CalcSaldo()).ToString("N")
Me.Text = "Gesamtsicherheit " & Standort
@@ -319,7 +320,7 @@ Public Class frmGesamtsicherheitenNEU
Me.warenortID = setNullToZero(dt.Rows(0).Item("gs_warenort"))
End If
If Me.avisoID.ToString.Length > 0 Then lblGestellungNr.Text &= "Aviso-ID: " & Me.LKWKZ & " "
If Me.avisoID.ToString.Length > 0 Then lblGestellungNr.Text &= "Aviso-ID: " & Me.avisoID & " "
If Me.LKWKZ.ToString.Length > 0 Then lblGestellungNr.Text &= "LKW-ID: " & Me.LKWKZ & " "
If Me.FilialNummer.ToString.Length > 0 Then lblGestellungNr.Text &= "FilialNr: " & Me.FilialNummer & " "
If Me.Abfertigungsnummer.Length > 0 Then lblGestellungNr.Text &= "AbfNr: " & Me.Abfertigungsnummer & " "
@@ -419,6 +420,11 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnAddSicherheit_Click(sender As Object, e As EventArgs) Handles btnAddSicherheit.Click
If checkNothingValue(txtSicherheitSicherheitsbetrag.Text, "Double") IsNot Nothing Then
Dim sichBetr As Double = Double.Parse(txtSicherheitSicherheitsbetrag.Text)
If checkSaldo(sichBetr, True) = False Then Exit Sub
End If
Dim attachPosNrToExistingATB As Boolean = False
Try
@@ -691,8 +697,16 @@ Public Class frmGesamtsicherheitenNEU
If obj Is Nothing Then
Return Nothing
Else
Return Integer.Parse(obj.value)
Return Integer.Parse(CStr(obj.value))
End If
Case "Double"
If obj Is Nothing Or obj Is DBNull.Value Then
Return Nothing
Else
Return Double.Parse(CStr(obj))
End If
End Select
@@ -719,6 +733,13 @@ Public Class frmGesamtsicherheitenNEU
End Sub
Private Sub btnUpdateSicherheit_Click(sender As Object, e As EventArgs) Handles btnUpdateSicherheit.Click
If checkNothingValue(txtSicherheitSicherheitsbetrag.Text, "Double") IsNot Nothing Then
Dim sichBetr As Double = Double.Parse(txtSicherheitSicherheitsbetrag.Text)
If checkSaldo(sichBetr - Double.Parse(currentSicherheit.gs_sicherheitsbetrag)) = False Then Exit Sub
End If
With currentSicherheit
.gs_ATBNr = txtSicherheitATBNr.Text
.gs_posNr = Integer.Parse(setNullToZero(txtAnzahlPos.Text))
@@ -733,6 +754,7 @@ Public Class frmGesamtsicherheitenNEU
'.saldo = currentGesSichRef.Saldo
.gs_atr = setNullToZero(cboSicherheitATR.SelectedItem)
End With
If checkSicherheitsbetrag() = False Then Exit Sub
currentSicherheit.SAVE()
txtAnzahlPos.Enabled = True
@@ -903,8 +925,9 @@ Public Class frmGesamtsicherheitenNEU
Dim offenerSicherheitsbetragPos As Double
Try
offenerSicherheitsbetrag = calcOffenerSicherheitsbetrag()
'If checkSaldo() = False Then
' Return False
'End If
If (offenerSicherheitsbetrag < 0 Or offenerSicherheitsbetrag < offenerSicherheitsbetragPos) Then
If vbYes = MsgBox("Der Warenwert der Positionen übersteigt den Warenwert der Gestellung!" & vbCrLf & "Trotzdem speichen?", vbYesNo) Then
@@ -922,6 +945,53 @@ Public Class frmGesamtsicherheitenNEU
Return ok
End Function
Private Function checkSaldo(Optional currentSBetrag As Double = 0, Optional newPosition As Boolean = False) As Boolean
Try
'Dim currentSaldo As Double = Decimal.Parse(currentGesSichRef.CalcSaldo()).ToString("N")
Dim SaldoNewTemp = SaldoNew
Dim calcSicherheiten As Double = calcSicherheitsbetragGestelle()
Dim calcSicherheitenPos As Double = calcSicherheitsbetragPos()
Dim newCalcSaldo As Double
If newPosition Then
newCalcSaldo = SaldoNewTemp - currentSBetrag
Else
newCalcSaldo = SaldoNewTemp - currentSBetrag
End If
Dim referenzbetrag As Double = currentGesSichRef.brgakto_betrag
If SaldoNewTemp < 0 Then
MsgBox("Achtung!" & vbCrLf & " Saldo ist NEGATIV")
Return True 'Saldo ist bereits negativ!
End If
Dim diffAbs As Double = Math.Abs(SaldoNewTemp - currentSBetrag)
If (referenzbetrag - newCalcSaldo < 0) Then
If vbNo = MsgBox("ACHTUNG! " & vbCrLf & " Dieser Sicherheitsbetrag würde den jezigen Saldo um " & diffAbs & " übersteigen !" & vbCrLf & "Trotzdem speichen?", vbYesNo) Then
Return False
Else
Return True
End If
Return True
End If
Return True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Private Function calcSicherheitsbetragPos() As Double
Dim sicherheitsbetragSumPositionen As Double
@@ -943,12 +1013,12 @@ Public Class frmGesamtsicherheitenNEU
If currentSicherheit Is Nothing Then Exit Function
sicherheitsbetragSumGestelle = CDbl(SQL.DLookup("SUM(gs_sicherheitsbetrag)", "[tblGesamtsicherheit]", "gs_gsnr ='" & currentSicherheit.gs_gsNr & "'", "AVISO"))
Return sicherheitsbetragSumGestelle
End Function
Private Function calcOffenerSicherheitsbetrag() As Double
Dim diff As Double = -10000