Files
AVISO/Aviso/frmGesamtsicherheitenNEU.vb

810 lines
31 KiB
VB.net

Imports System.Reflection
Imports System.Web.UI.WebControls.Expressions
Imports DocumentFormat.OpenXml.Bibliography
Imports DocumentFormat.OpenXml.Presentation
Imports DocumentFormat.OpenXml.Spreadsheet
Imports Spire.Pdf.General.Render.Decode
Imports VERAG_PROG_ALLGEMEIN
Public Class frmGesamtsicherheitenNEU
Property currentSicherheit As cSicherheiten
Property currentSPos As cGesamtsicherheitsPositionen
Property currentGesSichRef As cGesamtsicherheitsReferenz
Public Property gessicherheitID As Integer
Public Property datum As DateTime = Nothing
Property Standort As String = ""
Public ZollsatzMulti As Double = 0
Public Zollsatz As Double
Public Saldo As Integer = 0
Public Neu As Boolean = False
Public FilialNummer As Integer
Public Abfertigungsnummer As String
Public LKWKZ As String
Public warenortID As String
Dim indexGsId As Integer
Dim indexGspPosId As Integer
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Private Sub frmGesamtsicherheitNEU_Load(sender As Object, e As EventArgs) Handles MyBase.Load
currentGesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(Standort)
lblSaldo.Text = "Saldo: €" & Decimal.Parse(currentGesSichRef.CalcSaldo()).ToString("N")
Me.Text = "Gesamtsicherheit " & Standort
cbx_Suche_Warenort.fillWithSQL("SELECT [grz_Grenzstelle], [grz_Bezeichnung] FROM [tblGrenzstelle] WHERE [grz_Aktiv] ='1' AND [grz_Warenort] ='1' ORDER BY [grz_Reihenfolge] ", True, "AVISO", True)
If setNullToZero(gessicherheitID) = "" Or Neu = True Then
panOben.Enabled = False : panOben.Enabled = False
Panel1.Enabled = True
panOverlay.Visible = True
cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
cboWarenort.fillWithSQL("SELECT [grz_Grenzstelle], [grz_Bezeichnung] FROM [tblGrenzstelle] WHERE [grz_Aktiv] ='1' AND [grz_Warenort] ='1' ORDER BY [grz_Reihenfolge] ", True, "AVISO", True)
If datum = Nothing Then datum = Date.Now
Else
LoadDGVSicherheiten()
End If
LoadStandort()
cboSicherheitATR.Enabled = currentGesSichRef.gsr_ATR
Zollsatz = currentGesSichRef.gsr_zollsatz
Me.Text = "Gesamtsicherheit " & Standort
frmHauptfenster.EnableDoubleBuffered(dgvSicherheitsPos)
End Sub
Public Sub LoadDGVSicherheiten()
lblSaldo.Text = "Saldo: € " & currentGesSichRef.gsr_Saldo.ToString()
lblGestellungNr.Text = ""
Dim sqladd1 As String = ""
If currentGesSichRef.gsr_ustEnabled Then sqladd1 &= ", FORMAT((([gs_warenwert] + [gs_sicherheitsbetrag]) * " & currentGesSichRef.gsr_ust & "/100), 'C', 'de-DE') as gs_ust"
If currentGesSichRef.gsr_ATR Then sqladd1 &= ", [gs_atr]"
If txt_Suche.Text <> "" Or cbx_Suche_Warenort._value <> "" Then Dim sqlSearchSting As String = ""
Dim addtosqlstring As String = ""
'Dim SQLStringSicherheit As String = "select [gs_gsId], [gs_ATBNr], [gs_posNr], [gs_datum], [gs_warenwert], [gs_sicherheitsbetrag], [gs_saldo] " &
' sqladd1 & " , [gs_freitext] from [tblGesamtsicherheit]
' where gs_standort = '" & Standort & "'And gs_datum > '" & Date.Parse(txtDatVon.Text) & "' And gs_datum < '" & Date.Parse(txtDatBis.Text).AddDays(1).AddSeconds(-1) & "'" &
' "AND (gs_abfertigungsNr Like '%" & txt_Suche.Text & "%' OR" &
' " gs_ATBNr like '%" & txt_Suche.Text & "%' OR" &
' " gs_LKWKZ like '%" & txt_Suche.Text & "%' OR" &
' " gs_warenort like '%" & cbx_Suche_Warenort.Text & "%') order by [gs_datum]"
Dim SQLStringSicherheit As String = "select [gs_gsId], [gs_gsnr], [gs_ATBNr], [gs_posNr], [gs_datum], [gs_warenwert], [gs_sicherheitsbetrag], [gs_saldo] " & sqladd1 & " , [gs_freitext] from [tblGesamtsicherheit] where [gs_gsnr] = '" & gessicherheitID & "' order by [gs_datum]"
dgvGesamtsicherheit.SET_SQL(SQLStringSicherheit, "AVISO", ,)
dgvGesamtsicherheit.LOAD()
If dgvGesamtsicherheit.Columns.Count > 0 Then
With dgvGesamtsicherheit
.RowHeadersWidth = 10
.Columns("gs_gsId").Visible = True
.Columns("gs_gsnr").Visible = True
.Columns("gs_warenwert").DefaultCellStyle.Format = "c"
.Columns("gs_sicherheitsbetrag").DefaultCellStyle.Format = "c"
.Columns("gs_saldo").DefaultCellStyle.Format = "c"
.Columns("gs_saldo").Visible = True
Select Case currentGesSichRef.gsr_ATR
Case True
.Columns("gs_ATBNr").HeaderText = "ATB"
.Columns("gs_atr").HeaderText = "ATR"
.Columns("gs_atr").Width = 33
.Columns("gs_ust").Width = 69
Case Else
.Columns("gs_ATBNr").HeaderText = "CRN"
End Select
.Columns("gs_ATBNr").Width = 146
.Columns("gs_posNr").Width = 20
.Columns("gs_datum").Width = 95
.Columns("gs_warenwert").Width = 100
.Columns("gs_saldo").Width = 100
.Columns("gs_sicherheitsbetrag").Width = 100
.Columns("gs_freitext").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End With
'For Each row As DataGridViewRow In dgvGesamtsicherheit.Rows
' If row.Cells("gs_SicherheitsSaldo").Value <> 0 Then
' row.DefaultCellStyle.BackColor = Color.Red
' Else
' row.DefaultCellStyle.BackColor = Color.Green
' End If
'Next
End If
End Sub
Private Sub dgvGesamtsicherheit_SelectionChanged(sender As Object, e As EventArgs) Handles dgvGesamtsicherheit.SelectionChanged
If dgvGesamtsicherheit.SelectedRows.Count > 0 Then
indexGsId = CInt(dgvGesamtsicherheit.SelectedRows(0).Cells("gs_gsId").Value)
currentSicherheit = New cSicherheiten(indexGsId)
LoadDGVSicherheitsPos(indexGsId)
loadTitle()
setSaldo()
If dgvGesamtsicherheit.Enabled = False Then Exit Sub
End If
End Sub
Public Sub LoadDGVSicherheitsPos(gsId As Integer)
If gsId = 0 Then Exit Sub
Dim SQLStringCRN As String = "select [gsp_gspPosId] ,[gsp_gsId],[gsp_warenwert],[gsp_sicherheitsbetrag],[gsp_freitext],[gsp_art] ,[gsp_avisoId] ,[gsp_ust] ,[gsp_filialenNr],[gsp_abfertigungsNr] ,[gsp_ATCNr] ,[gsp_MRNNr],[gsp_erstellungsdatum] from [tblGesamtsicherheitsPositionen] where [gsp_gsId] = '" & gsId & "' order by [gsp_gspPosId]"
dgvSicherheitsPos.SET_SQL(SQLStringCRN, "AVISO", ,)
dgvSicherheitsPos.LOAD()
If dgvSicherheitsPos.Columns.Count > 0 Then
With dgvSicherheitsPos
.RowHeadersWidth = 10
.Columns("gsp_gsId").Visible = True
.Columns("gsp_warenwert").DefaultCellStyle.Format = "c"
.Columns("gsp_sicherheitsbetrag").DefaultCellStyle.Format = "c"
'.Columns("gs_saldo").DefaultCellStyle.Format = "c"
'.Columns("gs_saldo").Visible = False
Select Case currentGesSichRef.gsr_ATR
Case True
.Columns("gsp_ATCNr").HeaderText = "ATC / MRN"
Case Else
.Columns("gsp_ATCNr").HeaderText = "CRN"
End Select
.Columns("gsp_ATCNr").Width = 120
.Columns("gsp_erstellungsdatum").Width = 140
.Columns("gsp_warenwert").Width = 100
.Columns("gsp_sicherheitsbetrag").Width = 100
.Columns("gsp_freitext").Width = 220
End With
End If
End Sub
'Private Sub dgvSicherheitsPos_SelectionChanged(sender As Object, e As EventArgs) Handles dgvSicherheitsPos.SelectionChanged
' If dgvSicherheitsPos.SelectedRows.Count > 0 Then
' indexGspPosId = CInt(dgvSicherheitsPos.SelectedRows(0).Cells("gsp_gspPosId").Value)
' currentSPos = New cGesamtsicherheitsPositionen(indexGsId, indexGspPosId)
' If dgvSicherheitsPos.Enabled = False Then Exit Sub
' End If
'End Sub
Sub loadTitle()
'Dim StandortSqlString As String = "select * from [tblGesamtsicherheit] where [gs_gsNr] = '" & gessicherheitID & "'"
lblGestellungNr.Text = ""
Dim StandortSqlString As String = "select * from [tblGesamtsicherheit] where [gs_gsId] = '" & indexGsId & "'"
Dim dt As New DataTable
dt = SQL.loadDgvBySql(StandortSqlString, "AVISO", 100, True)
If dt.Rows.Count > 0 Then
Me.LKWKZ = setNullToZero(dt.Rows(0).Item("gs_LKWKZ"))
Me.FilialNummer = setNullToZero(dt.Rows(0).Item("gs_filialenNr"))
Me.Abfertigungsnummer = setNullToZero(dt.Rows(0).Item("gs_abfertigungsNr"))
Me.warenortID = setNullToZero(dt.Rows(0).Item("gs_warenort"))
End If
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 & " "
If Me.warenortID.Length > 0 Then lblGestellungNr.Text &= "Warenort: " & Me.warenortID & " "
End Sub
Public Sub LoadStandort()
lblReferenzwert.Text = "Referenzwert: €" & currentGesSichRef.gsr_referenzwert.ToString()
lblZollsatz.Text = "Zollsatz: " & currentGesSichRef.gsr_zollsatz & "%"
ZollsatzMulti = currentGesSichRef.gsr_zollsatz / 100
End Sub
Private Sub Warenwert_TextChanged(sender As Object, e As EventArgs) Handles txtSicherheitWarenwert.TextChanged, txtPosWarenwert.TextChanged
Try
Select Case sender.name
Case "txtSicherheitWarenwert"
txtSicherheitSicherheitsbetrag.Text = (txtSicherheitWarenwert.Text * ZollsatzMulti).ToString("N")
If currentGesSichRef.gsr_ustEnabled Then txtSicherheitEust.Text = (Double.Parse(txtSicherheitWarenwert.Text) + Double.Parse(txtSicherheitSicherheitsbetrag.Text)) * (currentGesSichRef.gsr_ust / 100)
Case "txtPosWarenwert"
txtPosSicherheitsbetrag.Text = (txtPosWarenwert.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
Select Case Asc(e.KeyChar)
Case 48 To 57, 8, 44
' Zahlen, Backspace und , zulassen
Case Else
' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub
Private Sub DateTime_Keypresses(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtPosDate.KeyPress, txtPosTime.KeyPress, txtSicherheitDate.KeyPress, txtSicherheitTime.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8, 46, 58
' Zahlen, Backspace, . und : zulassen
Case Else
' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub
Private Sub btnSaveOben_Click(sender As Object, e As EventArgs) Handles btnSaveOben.Click
Try
Dim a As Date = Date.ParseExact(txtSicherheitDate.Text, "dd.MM.yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Dim b As Date = Date.ParseExact(txtSicherheitTime.Text, "HH:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Dim ab As Date = a.AddHours(b.Hour).AddMinutes(b.Minute)
MsgBox(ab.ToString)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub txtMRNDate_GotFocus(sender As Object, e As EventArgs) Handles txtSicherheitDate.GotFocus, txtPosDate.GotFocus, txtSicherheitTime.GotFocus, txtPosTime.GotFocus
Select Case sender.name
Case "txtSicherheitDate"
If txtSicherheitDate.Text.Length < 1 Then txtSicherheitDate.Text = Date.Today.ToString("dd.MM.yyyy")
Case "txtPosDate"
If txtPosDate.Text.Length < 1 Then txtPosDate.Text = Date.Today.ToString("dd.MM.yyyy")
Case "txtSicherheitTime"
If txtSicherheitTime.Text.Length < 1 Then txtSicherheitTime.Text = Date.Now.ToString("HH:mm")
Case "txtPosTime"
If txtPosTime.Text.Length < 1 Then txtPosTime.Text = Date.Now.ToString("HH:mm")
End Select
End Sub
Private Sub btnAddSicherheit_Click(sender As Object, e As EventArgs) Handles btnAddSicherheit.Click
Try
Dim limit As Integer = Integer.Parse(setNullToZero(txtAnzahlPos.Text))
Dim OPEN As New cSicherheiten()
With OPEN
.gs_gsNr = AddNewGesamtSichNr()
.gs_ATBNr = txtSicherheitATBNr.Text
.gs_posNr = Integer.Parse(setNullToZero(txtAnzahlPos.Text))
.gs_datum = DateTimeString2DateTimeKonvertinator(txtSicherheitDate.Text, txtSicherheitTime.Text)
.gs_warenwert = Double.Parse(txtSicherheitWarenwert.Text) '.Replace(".", "").Replace(",", ".")
.gs_sicherheitsbetrag = Double.Parse(txtSicherheitSicherheitsbetrag.Text) '.Replace(".", "").Replace(",", ".")
.gs_standort = Me.Standort
.gs_art = "OPEN"
.gs_gsNr = Me.gessicherheitID
.gs_erstellungsdatum = Me.datum
.gs_freitext = Me.txtSicherheitFreitext.Text
.gs_saldo = currentGesSichRef.gsr_Saldo
.gs_atr = setNullToZero(cboSicherheitATR.SelectedItem)
setEnviromentDataToObject(OPEN, Me)
End With
'If Neu = True AndAlso count <= 1 Then OPENWithMultiplePosNr.gs_gsNr = AddNewGesamtSichNr()
'Select Case checkIfExist(OPENWithMultiplePosNr.gs_ATBNr, gessicherheitID)
' Case "Neu"
' OPENWithMultiplePosNr.SAVE()
' Case Else
' If (count > 1) Then
' OPENWithMultiplePosNr.SAVE()
' Else
' MsgBox("INFO: Dieser Eintrag wurde bereits bei GesamtsichNr " & checkIfExist(OPENWithMultiplePosNr.gs_ATBNr, gessicherheitID) & "eingetragen") : OPENWithMultiplePosNr.SAVE()
' End If
'End Select
indexGsId = OPEN.SAVEOBJECT()
For count As Integer = 1 To limit
'If (count > 1) Then txtMRNWarenwert.Text = 0
Dim OPENPos As New cGesamtsicherheitsPositionen(indexGsId, count)
With OPENPos
'.gsp_gsId =
'.gsp_gspPosId = count
.gsp_warenwert = 0
.gsp_sicherheitsbetrag = 0
.gsp_freitext = ""
.gsp_filialenNr = OPEN.gs_filialenNr
.gsp_art = "OPEN"
.gsp_abfertigungsNr = OPEN.gs_abfertigungsnr
.gsp_erstellungsdatum = Me.datum
.gsp_avisoId = ""
.gsp_ust = ""
.gsp_ATCNr = ""
.gsp_MRNNr = ""
End With
OPENPos.SAVE()
If Neu = True AndAlso count <= 1 Then OPEN.gs_gsNr = AddNewGesamtSichNr()
Select Case checkIfExist(OPEN.gs_ATBNr, gessicherheitID)
Case "Neu"
OPEN.SAVE()
Case Else
If (count >= 1) Then
OPEN.SAVE()
OPENPos.SAVE()
Else
MsgBox("INFO: Dieser Eintrag wurde bereits bei GesamtsichNr " & checkIfExist(OPEN.gs_ATBNr, gessicherheitID) & "eingetragen") : OPEN.SAVE()
End If
End Select
Next
AfterButton()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub btnAddPos_Click(sender As Object, e As EventArgs) Handles btnAddPos.Click
If dgvGesamtsicherheit.SelectedRows.Count = 0 Then
MsgBox("Bitte Sicherheit markieren, zu diese eine Pos hinzugefügt/entfernt/aktualisiert werden soll")
Exit Sub
End If
If (checkWarenwert() = False) Then
MsgBox("Der Warenwert der Positionen übersteigt den Warenwert der Gestellung!")
txtPosWarenwert.Focus()
Exit Sub
End If
Try
Dim SicherheitsPos As New cGesamtsicherheitsPositionen()
With SicherheitsPos
.gsp_gsId = currentSicherheit.gs_gsId
.gsp_gspPosId = Me.getLatestPosNr(currentSicherheit.gs_gsId) + 1
.gsp_warenwert = Double.Parse(txtPosWarenwert.Text)
.gsp_sicherheitsbetrag = Double.Parse(txtPosSicherheitsbetrag.Text)
.gsp_freitext = txtPosFreitext.Text
.gsp_filialenNr = currentSicherheit.gs_filialenNr
.gsp_art = "OPEN"
.gsp_abfertigungsNr = currentSicherheit.gs_abfertigungsnr
.gsp_erstellungsdatum = DateTimeString2DateTimeKonvertinator(txtPosDate.Text, txtPosTime.Text)
.gsp_ust = currentSicherheit.gs_ust
.gsp_ATCNr = txtPositionenCRN.Text
.gsp_MRNNr = txtPositionenCRN.Text
End With
SicherheitsPos.SAVE()
'If Neu = True Then Close.gs_gsNr = AddNewGesamtSichNr()
'Select Case checkIfExist(Close.gs_ATBNr, gessicherheitID)
' Case "Neu"
' Close.SAVE()
' Case Else
' MsgBox("Dieser Eintrag wurde bereits bei GesamtsichNr " & checkIfExist(Close.gs_ATBNr, gessicherheitID) & "eingetragen") : Exit Sub
'End Select
AfterButton()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Function setNullToZero(s As String, Optional type As String = "")
If s = "" Then
Dim zero As Double = 0
Return zero
Else
Return s
End If
End Function
Sub AfterButton()
currentGesSichRef.CalcSaldo()
LoadDGVSicherheiten()
EmptyTXT()
End Sub
Public Function AddNewGesamtSichNr() As Integer
Dim sqlq As String = "select MAX([gs_gsNr]) as MaxGesSich from tblGesamtsicherheit"
Dim dt As New DataTable
dt = SQL.loadDgvBySql(sqlq, "AVISO", 100, True)
Dim LetzteGesSichNum As Integer = -1
If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then
LetzteGesSichNum = dt.Rows(0).Item(0)
Me.gessicherheitID = LetzteGesSichNum + 1
Me.Neu = False
End If
Return Me.gessicherheitID
End Function
Public Sub EmptyTXT()
Dim a As New List(Of Windows.Forms.Control)
For Each contr As Windows.Forms.Control In panOben.Controls
If contr.GetType.FullName = "System.Windows.Forms.TextBox" Then contr.Text = ""
Next
cboSicherheitATR.SelectedItem = Nothing
End Sub
Public Function checkIfExist(KennnummerStr As String, Optional ByVal lkw As String = "") As String
If lkw = "" And Me.gessicherheitID > 0 Then lkw = gessicherheitID
Dim SQLString As String = "Select * from [tblGesamtsicherheit] where [gs_ATBNr] = '" & KennnummerStr & "'"
Dim dt As New DataTable
dt = SQL.loadDgvBySql(SQLString, "AVISO", 100, True)
If dt.Rows.Count > 0 Then
Return dt.Rows(0).Item("gs_gsNr").ToString
Else
Return "Neu"
End If
End Function
Public Function DateTimeString2DateTimeKonvertinator(datum As String, uhrzeit As String) As DateTime
Try
Dim a As Date = Date.ParseExact(datum, "dd.MM.yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Dim b As Date = Date.ParseExact(uhrzeit, "HH:mm", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Dim ab As Date = a.AddHours(b.Hour).AddMinutes(b.Minute)
Return ab
Catch ex As Exception
MsgBox(ex.Message)
Return Date.Now
End Try
End Function
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click ', btnSaveOben.Click
If checkMandatoryFieldsAreFilled() = False Then Exit Sub
Try
Me.FilialNummer = checkNothingValue(cboFiliale.SelectedItem, "Integer")
Catch
Me.FilialNummer = "0"
End Try
Try
Me.warenortID = checkNothingValue(cbx_Suche_Warenort.SelectedItem, "String")
Catch
Me.warenortID = "-"
End Try
Me.Abfertigungsnummer = txtAbfertNum.Text
Me.LKWKZ = txtLKWID.Text
If setNullToZero(Me.gessicherheitID) >= 0 Then
Dim sqlstring = "Update [tblGesamtsicherheit] set [gs_filialenNr] = '" & Me.FilialNummer & "', [gs_abfertigungsNr] = '" & Me.Abfertigungsnummer & "', [gs_LKWKZ] = '" & Me.LKWKZ & "', [gs_warenort] = '" & Me.warenortID & "' WHERE [gs_gsNr] = '" & Me.gessicherheitID & "' "
SQL.doSQL(sqlstring, "AVISO")
LoadDGVSicherheiten()
End If
loadTitle()
panOben.Enabled = True : panOben.Enabled = True
panOverlay.Visible = False
End Sub
Private Function checkNothingValue(obj As Object, Optional type As String = "String") As Object
Select Case type
Case "String"
If obj Is Nothing Then
Return ""
Else
Return obj.value.ToString
End If
Case "Integer"
If obj Is Nothing Then
Return Nothing
Else
Return Integer.Parse(obj.value)
End If
End Select
End Function
Private Sub dgvGesamtsicherheit_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvGesamtsicherheit.CellContentClick
Dim Sicherh As New cSicherheiten(dgvGesamtsicherheit.CurrentRow.Cells("gs_gsId").Value)
txtSicherheitATBNr.Text = Sicherh.gs_ATBNr
txtAnzahlPos.Text = Sicherh.gs_posNr
txtSicherheitWarenwert.Text = Sicherh.gs_warenwert
txtSicherheitFreitext.Text = Sicherh.gs_freitext
cboSicherheitATR.SelectedItem = Sicherh.gs_atr
txtSicherheitDate.Text = Sicherh.gs_erstellungsdatum.ToString("dd.MM.yyyy")
txtSicherheitTime.Text = Sicherh.gs_erstellungsdatum.ToString("HH:mm")
currentSicherheit = Sicherh
btnAddSicherheit.Visible = False
btnUpdateSicherheit.Visible = True
btnDeleteSicherheit.Visible = True
End Sub
Private Sub btnUpdateSicherheit_Click(sender As Object, e As EventArgs) Handles btnUpdateSicherheit.Click
With currentSicherheit
.gs_ATBNr = txtSicherheitATBNr.Text
.gs_posNr = Double.Parse(setNullToZero(txtAnzahlPos.Text))
.gs_datum = DateTimeString2DateTimeKonvertinator(txtSicherheitDate.Text, txtSicherheitTime.Text)
.gs_warenwert = Double.Parse(txtSicherheitWarenwert.Text) '.Replace(".", "").Replace(",", ".")
.gs_sicherheitsbetrag = Double.Parse(txtSicherheitSicherheitsbetrag.Text) '.Replace(".", "").Replace(",", ".")
.gs_standort = Me.Standort
.gs_art = "OPEN"
.gs_gsNr = Me.gessicherheitID
'.MakeDate = Me.MakeDate
.gs_freitext = Me.txtSicherheitFreitext.Text
'.saldo = currentGesSichRef.Saldo
.gs_atr = setNullToZero(cboSicherheitATR.SelectedItem)
End With
checkWarenwert()
currentSicherheit.SAVE()
btnUpdateSicherheit.Visible = False
btnAddSicherheit.Visible = True
btnDeleteSicherheit.Visible = False
AfterButton()
End Sub
Private Sub btnUpdatePos_Click(sender As Object, e As EventArgs) Handles btnUpdatePos.Click
With currentSPos
.gsp_art = "CLOSE"
.gsp_freitext = txtPosFreitext.Text
.gsp_sicherheitsbetrag = Double.Parse(txtPosSicherheitsbetrag.Text)
.gsp_warenwert = Double.Parse(txtPosWarenwert.Text)
.gsp_ATCNr = txtPositionenCRN.Text
End With
checkWarenwert()
currentSPos.SAVE()
btnAddPos.Visible = True
btnUpdatePos.Visible = False
btnDeletePos.Visible = False
AfterButton()
End Sub
Private Sub dgvGesamtsicherheitPositionen_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvSicherheitsPos.CellDoubleClick
Dim sPos As New cGesamtsicherheitsPositionen(indexGsId, dgvSicherheitsPos.CurrentRow.Cells("gsp_gspPosId").Value)
txtPosNr.Text = sPos.gsp_gspPosId
txtPosFreitext.Text = sPos.gsp_freitext
txtPosSicherheitsbetrag.Text = sPos.gsp_sicherheitsbetrag
txtPosWarenwert.Text = sPos.gsp_warenwert
txtPositionenCRN.Text = sPos.gsp_ATCNr
txtPosDate.Text = sPos.gsp_erstellungsdatum.ToString("dd.MM.yyyy")
txtPosTime.Text = sPos.gsp_erstellungsdatum.ToString("HH:mm")
currentSPos = sPos
btnDeletePos.Visible = True
btnAddPos.Visible = False
btnUpdatePos.Visible = True
End Sub
Private Sub btnDeleteSicherheit_Click(sender As Object, e As EventArgs) Handles btnDeleteSicherheit.Click
Try
currentSicherheit.Delete()
btnUpdateSicherheit.Visible = False
btnAddSicherheit.Visible = True
btnDeleteSicherheit.Visible = False
AfterButton()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btnDeletePos_Click(sender As Object, e As EventArgs) Handles btnDeletePos.Click
Try
currentSPos.Delete()
btnUpdatePos.Visible = False
btnAddPos.Visible = True
btnDeletePos.Visible = False
AfterButton()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub lblGestellungNr_Click(sender As Object, e As EventArgs) Handles lblGestellungNr.DoubleClick
panOverlay.Visible = True
cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
cboFiliale.SelectedIndex = cboFiliale.FindString(Me.FilialNummer)
cbx_Suche_Warenort.fillWithSQL("SELECT [grz_Grenzstelle], [grz_Bezeichnung] FROM [tblGrenzstelle] WHERE [grz_Aktiv] ='1' AND [grz_Warenort] ='1' ORDER BY [grz_Reihenfolge] ", True, "AVISO", True)
cbx_Suche_Warenort.SelectedIndex = cbx_Suche_Warenort.FindString(Me.warenortID)
txtAbfertNum.Text = Me.Abfertigungsnummer
txtLKWID.Text = Me.LKWKZ
panOben.Enabled = False
End Sub
Private Sub btnClosePanOverlay_Click(sender As Object, e As EventArgs) Handles btnClosePanOverlay.Click
panOverlay.Visible = False
End Sub
Private Function checkMandatoryFieldsAreFilled() As Boolean
Dim isFilled = True
If cboWarenort._value = Nothing Or cboWarenort._value = "" Then
MsgBox("Bitte Warenort angeben!")
isFilled = False
End If
Return isFilled
End Function
Private Sub setEnviromentDataToObject(sicherheiten As cSicherheiten, Optional ByVal gessich As frmGesamtsicherheitenNEU = Nothing)
sicherheiten.gs_filialenNr = gessich.FilialNummer
sicherheiten.gs_abfertigungsnr = gessich.Abfertigungsnummer
sicherheiten.gs_LKWKZ = gessich.LKWKZ
sicherheiten.gs_warenort = gessich.warenortID
End Sub
Private Function getLatestPosNr(gs_gsId As Integer) As Integer
Dim posNr As Integer = 0
Dim sqlq As String = "select MAX([gsp_gspPosId]) as MaxPosNr from tblGesamtsicherheitsPositionen where gsp_gsId = " & gs_gsId
Dim dt As New DataTable
dt = SQL.loadDgvBySql(sqlq, "AVISO", 100, True)
If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then
posNr = dt.Rows(0).Item(0)
End If
Return posNr
End Function
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click
Try
If Me.Visible Then LoadDGVSicherheiten()
Catch ex As Exception
MsgBox("Datum VON und/oder BIS konnte nicht konvertiert werden.")
End Try
End Sub
Private Sub btnNeu_Click(sender As Object, e As EventArgs)
panOverlay.Visible = True
End Sub
Private Sub btn_resetSearch_Click(sender As Object, e As EventArgs) Handles btn_resetSearch.Click
Dim dgv As String = ""
For Each c As DataGridViewColumn In dgvGesamtsicherheit.Columns
dgv &= c.Width & c.HeaderText & vbCrLf
Next
clearSearchFields()
LoadDGVSicherheiten()
currentGesSichRef.LOAD()
LoadStandort()
End Sub
Private Sub clearSearchFields()
cbx_Suche_Warenort.changeItem("")
txt_Suche.Clear()
End Sub
Private Function checkWarenwert() As Boolean
Dim ok As Boolean = True
Dim offenerWarenwert As Double
Try
offenerWarenwert = calcOffenenWarenwert()
If (offenerWarenwert < Double.Parse(txtPosWarenwert.Text)) Then
ok = False
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return ok
End Function
Private Function calcOffenenWarenwert() As Double
Dim diff As Double = -10000
If currentSicherheit Is Nothing Then Exit Function
Try
Dim warenwertSumPositionen = CDbl(SQL.DLookup("SUM(gsp_warenwert)", "[tblGesamtsicherheitsPositionen]", "gsp_gsId ='" & currentSicherheit.gs_gsId & "'", "AVISO"))
diff = Double.Parse(currentSicherheit.gs_warenwert) - Double.Parse(warenwertSumPositionen)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return diff
End Function
Private Sub setSaldo()
lbloffenerSaldo.Text = "offener Saldo: "
If Me.calcOffenenWarenwert > 0 Then
lbloffenerSaldo.Text &= Me.calcOffenenWarenwert()
Else
lbloffenerSaldo.Text &= "0"
End If
End Sub
Private Sub rearangePosNr()
End Sub
End Class