Bugfix Gesamtsicherheiten (über Kontextmenü -> Warenwert).

This commit is contained in:
2023-01-02 12:41:11 +01:00
parent 313524ee75
commit e72c228809
2 changed files with 129 additions and 45 deletions

View File

@@ -142,6 +142,8 @@ Partial Class frmGesamtsicherheitenNEU
Me.txtSicherheitFreitext = New System.Windows.Forms.TextBox()
Me.btnAddPos = New VERAG_PROG_ALLGEMEIN.FlatButton()
Me.btnAddSicherheit = New VERAG_PROG_ALLGEMEIN.FlatButton()
Me.txtSicherheitsbetragContext = New System.Windows.Forms.TextBox()
Me.Label30 = New System.Windows.Forms.Label()
Me.ContextMenuStripGesSicherh.SuspendLayout()
Me.Panel2.SuspendLayout()
Me.pnlChangeATCNr.SuspendLayout()
@@ -185,6 +187,8 @@ Partial Class frmGesamtsicherheitenNEU
'pnlChangeATCNr
'
Me.pnlChangeATCNr.BackColor = System.Drawing.SystemColors.ButtonHighlight
Me.pnlChangeATCNr.Controls.Add(Me.txtSicherheitsbetragContext)
Me.pnlChangeATCNr.Controls.Add(Me.Label30)
Me.pnlChangeATCNr.Controls.Add(Me.txtWarenwertContext)
Me.pnlChangeATCNr.Controls.Add(Me.lblWarenwertContext)
Me.pnlChangeATCNr.Controls.Add(Me.txtUhrzeitaendern)
@@ -197,7 +201,7 @@ Partial Class frmGesamtsicherheitenNEU
Me.pnlChangeATCNr.Controls.Add(Me.FlatButton4)
Me.pnlChangeATCNr.Location = New System.Drawing.Point(1051, 42)
Me.pnlChangeATCNr.Name = "pnlChangeATCNr"
Me.pnlChangeATCNr.Size = New System.Drawing.Size(292, 162)
Me.pnlChangeATCNr.Size = New System.Drawing.Size(292, 192)
Me.pnlChangeATCNr.TabIndex = 13
Me.pnlChangeATCNr.Visible = False
'
@@ -207,8 +211,8 @@ Partial Class frmGesamtsicherheitenNEU
Me.txtWarenwertContext.Location = New System.Drawing.Point(95, 104)
Me.txtWarenwertContext.Margin = New System.Windows.Forms.Padding(0)
Me.txtWarenwertContext.Name = "txtWarenwertContext"
Me.txtWarenwertContext.Size = New System.Drawing.Size(180, 24)
Me.txtWarenwertContext.TabIndex = 12
Me.txtWarenwertContext.Size = New System.Drawing.Size(186, 24)
Me.txtWarenwertContext.TabIndex = 9
'
'lblWarenwertContext
'
@@ -265,10 +269,10 @@ Partial Class frmGesamtsicherheitenNEU
Me.FlatButton3.FlatAppearance.BorderSize = 0
Me.FlatButton3.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.FlatButton3.ForeColor = System.Drawing.Color.Black
Me.FlatButton3.Location = New System.Drawing.Point(210, 136)
Me.FlatButton3.Location = New System.Drawing.Point(210, 160)
Me.FlatButton3.Name = "FlatButton3"
Me.FlatButton3.Size = New System.Drawing.Size(75, 23)
Me.FlatButton3.TabIndex = 9
Me.FlatButton3.TabIndex = 10
Me.FlatButton3.Text = "Ändern"
Me.FlatButton3.UseVisualStyleBackColor = False
'
@@ -1630,6 +1634,27 @@ Partial Class frmGesamtsicherheitenNEU
Me.btnAddSicherheit.TabIndex = 36
Me.btnAddSicherheit.UseVisualStyleBackColor = False
'
'txtSicherheitsbetragContext
'
Me.txtSicherheitsbetragContext.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtSicherheitsbetragContext.Location = New System.Drawing.Point(147, 133)
Me.txtSicherheitsbetragContext.Margin = New System.Windows.Forms.Padding(0)
Me.txtSicherheitsbetragContext.Name = "txtSicherheitsbetragContext"
Me.txtSicherheitsbetragContext.ReadOnly = True
Me.txtSicherheitsbetragContext.Size = New System.Drawing.Size(134, 24)
Me.txtSicherheitsbetragContext.TabIndex = 14
Me.txtSicherheitsbetragContext.TabStop = False
'
'Label30
'
Me.Label30.AutoSize = True
Me.Label30.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label30.Location = New System.Drawing.Point(10, 133)
Me.Label30.Name = "Label30"
Me.Label30.Size = New System.Drawing.Size(134, 20)
Me.Label30.TabIndex = 15
Me.Label30.Text = "Sicherheitsbetrag"
'
'frmGesamtsicherheitenNEU
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -1777,4 +1802,6 @@ Partial Class frmGesamtsicherheitenNEU
Friend WithEvents dtpPosDat As DateTimePicker
Friend WithEvents txtSicherheitDat As VERAG_PROG_ALLGEMEIN.MyTextBox
Friend WithEvents dtpSicherheitDat As DateTimePicker
Friend WithEvents txtSicherheitsbetragContext As TextBox
Friend WithEvents Label30 As Label
End Class

View File

@@ -381,6 +381,32 @@ Public Class frmGesamtsicherheitenNEU
End Try
End Sub
Private Sub WarenwertContext_TextChanged(sender As Object, e As EventArgs) Handles txtWarenwertContext.TextChanged
If Not IsNumeric(txtWarenwertContext.Text) And sender.name = "txtWarenwertContext" Then
txtWarenwertContext.ForeColor = Color.Red
Exit Sub
Else
txtWarenwertContext.ForeColor = Color.Black
End If
txtWarenwertContext.Text = Replace(txtWarenwertContext.Text, ".", "")
txtWarenwertContext.Text = Replace(txtWarenwertContext.Text, "", "")
Try
Select Case sender.name
Case "txtWarenwertContext"
txtSicherheitsbetragContext.Text = (txtWarenwertContext.Text * ZollsatzMulti).ToString("N")
End Select
Catch
End Try
End Sub
Private Sub Warenwert_Keypresses(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtSicherheitWarenwert.KeyPress, txtPosWarenwert.KeyPress, txtAnzahlPos.KeyPress, txtZollsatzueberschreiben.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8, 44, 22
@@ -1098,7 +1124,8 @@ Public Class frmGesamtsicherheitenNEU
Dim isInList As Boolean = False
Dim onlyOpenDT As DataTable
dataTable.DefaultView.Sort = "gs_gsnr ASC"
dataTable = dataTable.DefaultView.ToTable
onlyOpenDT = dataTable.Select("gs_isOpen = True").CopyToDataTable
@@ -1112,8 +1139,6 @@ Public Class frmGesamtsicherheitenNEU
End If
'MsgBox("prevOPENGessicherheitID " & prevGessicherheitID)
If i = onlyOpenDT.Rows.Count - 1 Then
nextGessicherheitID = -1 ' no next Sicherheit
Else
@@ -1121,52 +1146,65 @@ Public Class frmGesamtsicherheitenNEU
End If
'MsgBox("nextOPENGessicherheitID " & nextGessicherheitID)
End If
Next
If isInList = False AndAlso onlyOpenDT.Rows.Count - 1 <> 0 Then
For i As Integer = 0 To dataTable.Rows.Count - 1
If dataTable.Rows(i).Item("gs_gsnr") = Me.gessicherheitID Then
setPrevAndNextGesIDAllOpenIfNotInList(isInList) 'wenn Me.gessicherheitID selbst nicht mehr offen ist!!!
If i = 0 Then
prevGessicherheitID = -1 ' no prev Sicherheit
Else
If isInList = False Then
dataTable.Rows.Add(Me.gessicherheitID, True) ' wenn Me.gessicherheitsID neu angelegt wurde!!!
setPrevAndNextGesIDAllOpenIfNotInList(isInList)
For j As Integer = i To 0
If dataTable.Rows(j).Item("gs_isOpen") Then
prevGessicherheitID = dataTable.Rows(j).Item("gs_gsnr")
'MsgBox("prevGessicherheitID " & prevGessicherheitID)
Exit For
End If
Next
End If
End If
If i = dataTable.Rows.Count - 1 Then
nextGessicherheitID = -1 ' ' no next Sicherheit
Else
For k As Integer = i To dataTable.Rows.Count - 1
If dataTable.Rows(k).Item("gs_isOpen") Then
nextGessicherheitID = dataTable.Rows(k).Item("gs_gsnr")
'MsgBox("nextGessicherheitID " & nextGessicherheitID)
Exit For
End If
Next
End If
End If
Next
End If
End Function
Private Function setPrevAndNextGesIDAllOpenIfNotInList(ByRef isInList As Boolean)
For i As Integer = 0 To dataTable.Rows.Count - 1
If dataTable.Rows(i).Item("gs_gsnr") = Me.gessicherheitID Then
isInList = True
If i = 0 Then
prevGessicherheitID = -1 ' no prev Sicherheit
Else
For j As Integer = i - 1 To 0 Step -1
If dataTable.Rows(j).Item("gs_isOpen") Then
prevGessicherheitID = dataTable.Rows(j).Item("gs_gsnr")
'MsgBox("prevGessicherheitID " & prevGessicherheitID)
Exit For
End If
Next
End If
If i = dataTable.Rows.Count - 1 Then
nextGessicherheitID = -1 ' ' no next Sicherheit
Else
For k As Integer = i To dataTable.Rows.Count - 1
If dataTable.Rows(k).Item("gs_isOpen") Then
nextGessicherheitID = dataTable.Rows(k).Item("gs_gsnr")
'MsgBox("nextGessicherheitID " & nextGessicherheitID)
Exit For
End If
Next
End If
End If
Next
End Function
Private Function setPrevAndNextGesAll()
For i As Integer = 0 To dataTable.Rows.Count - 1
@@ -1452,7 +1490,7 @@ Public Class frmGesamtsicherheitenNEU
Exit Sub
End If
If txtWarenwertContext.Text = "" Or Not IsNumeric(txtWarenwertContext().Text) Then
If txtWarenwertContext.Text = "" Then
MsgBox("Bitte Warenwert angeben!")
Exit Sub
End If
@@ -1460,16 +1498,34 @@ Public Class frmGesamtsicherheitenNEU
If dgvSicherheitsPos.SelectedRows.Count > 0 Then
Dim firstIndex As Integer = 10000
If dgvSicherheitsPos.SelectedRows.Count = 1 Then firstIndex = dgvSicherheitsPos.SelectedRows(0).Index
If dgvSicherheitsPos.SelectedRows.Count > 1 Then
For Each row As DataGridViewRow In dgvSicherheitsPos.SelectedRows
If row.Index < firstIndex Then
firstIndex = row.Index
End If
Next
End If
For Each row As DataGridViewRow In dgvSicherheitsPos.SelectedRows
Dim SicherhPos As New cGesamtsicherheitsPositionen(row.Cells("gsp_gsId").Value, row.Cells("gsp_gspPosId").Value)
If row.Index = 0 Then
SicherhPos.gsp_warenwert = txtWarenwertContext
If row.Index = firstIndex Then
Dim warenwert = Double.Parse(txtWarenwertContext.Text)
SicherhPos.gsp_warenwert = warenwert
SicherhPos.gsp_sicherheitsbetrag = Double.Parse(txtSicherheitsbetragContext.Text)
If warenwert > 0 Then
SicherhPos.gsp_art = "CLOSE"
End If
End If
SicherhPos.gsp_ATCNr = txtATCaendern.Text
SicherhPos.gsp_datum = DateTimeString2DateTimeKonvertinator(txtDatumaendern.Text, txtUhrzeitaendern.Text)
SicherhPos.SAVE()
@@ -1503,6 +1559,7 @@ Public Class frmGesamtsicherheitenNEU
If Not System.Windows.Forms.Application.OpenForms.Item("frmGesamtsicherheitenMenuNEU") Is Nothing Then
Dim p = System.Windows.Forms.Application.OpenForms.Item("frmGesamtsicherheitenMenuNEU")
DirectCast(p, frmGesamtsicherheitenMenuNEU).btnNeu.PerformClick()
Me.Close()
Me.Cursor = Cursors.Default : Exit Sub