Files
AVISO/Aviso/frmGesSichMenu.vb
2021-03-04 15:59:08 +01:00

282 lines
11 KiB
VB.net

Imports System.Reflection
Public Class frmGesSichMenu
' Public Zollsatz As Integer = 0
' Public ZollsatzMulti As Double = 0
' Public Referenzwert As Integer = 0
' Public UstEnabled As Boolean = False
'Public Ust As Integer
' Public Saldo As Integer = 0
Public SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim GesSichRef As New cGesamtSicherheitsReferenz
'Public ATR As Boolean = False
Public Property Standort As String = ""
Private Sub frmGesamtsicherheiten_Menu_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Text = "Gesamtsicherheiten " & Standort
frmHauptfenster.EnableDoubleBuffered(dgvListe)
GesSichRef.LoadStandort(Standort)
lblSaldo.Text = "Saldo: €" & Decimal.Parse(GesSichRef.CalcSaldo()).ToString("N")
txtVon._ShortDateOnly = True
txtbis._ShortDateOnly = True
txtVon.Text = Date.Today.AddDays(-30).ToString("dd.MM.yyyy")
txtbis.Text = Date.Today.ToString("dd.MM.yyyy")
ShowStandort()
LoadDGV()
End Sub
Public Function LoadDGV()
Dim sqladdon As String = ""
If chkOffen.Checked Then sqladdon &= " AND Sicherheitssaldo != '0,00 €'"
' Dim sqlstring As String = "select * from (Select GesamtsichNr, MIN(Standort) as Standort, MIN(FilialNummer) as FilialNummer, min(Abfertigungsnummer) as Abfertigungsnummer,
'max(LKWID) as LKWID, min (MakeDate) as Datum, FORMAT(SUM(
'Case
' when Art = 'Open' then (Sicherheitsbetrag * -1)
' when Art = 'Close' then Sicherheitsbetrag
'End) , 'C', 'de-DE') As SicherheitsSaldo
'From [tblGesamtsicherheit]
'Group by GesamtsichNr) as Temp
' Where Standort = '" & Standort & "'
'" & sqladdon & "
'order by GesamtsichNr"
Dim sqlstring As String = " select * from (Select gesamtsichnr, MIN(Standort) as Standort, MIN(FilialNummer) as FilialNummer, min(Abfertigungsnummer) as Abfertigungsnummer,
max(LKWID) as LKWID, min (MakeDate) as Datum, FORMAT(SUM(
Case
when Art = 'Open' then (Sicherheitsbetrag * -1)
when Art = 'Close' then Sicherheitsbetrag
End) , 'C', 'de-DE')As SicherheitsSaldo
From (select * from (select GesamtsichNr as ding from [tblGesamtsicherheit] where
Freitext like '%" & txtSuchbegriff.Text & "%' OR
Abfertigungsnummer like '%" & txtSuchbegriff.Text & "%' OR
Kennnummer like '%" & txtSuchbegriff.Text & "%' OR
LKWID like '%" & txtSuchbegriff.Text & "%'
)as tb1 left join [tblGesamtsicherheit] as tb2 on tb1.ding = tb2.GesamtsichNr) as meh group by GesamtsichNr) as meh2
Where Standort = '" & Standort & "' " & sqladdon & "
AND Datum > '" & Date.Parse(txtVon.Text) & "'
AND Datum < '" & Date.Parse(txtbis.Text).AddDays(1).AddSeconds(-1) & "'"
dgvListe.SET_SQL(sqlstring, "AVISO")
dgvListe.LOAD()
With dgvListe
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.RowHeadersWidth = 6
.Columns("Standort").Visible = False
.Columns("GesamtsichNr").HeaderText = "#"
.Columns("GesamtsichNr").Width = 36
.Columns("Filialnummer").HeaderText = "Filiale"
.Columns("Filialnummer").Width = 43
.Columns("Abfertigungsnummer").HeaderText = "Abfert.Nr."
.Columns("Abfertigungsnummer").Width = 107
.Columns("Datum").Width = 112
.Columns("SicherheitsSaldo").Width = 96
End With
For Each row As DataGridViewRow In dgvListe.Rows
If row.Cells("SicherheitsSaldo").Value <> 0 Then
row.DefaultCellStyle.BackColor = Color.Red
Else
row.DefaultCellStyle.BackColor = Color.Green
End If
Next
End Function
Public Sub ShowStandort()
lblReferenzwert.Text = "Referenzwert: €" & GesSichRef.Referenzwert.ToString("N")
lblZollsatz.Text = "Zollsatz: " & GesSichRef.Zollsatz & "%"
lblSaldo.Text = "Saldo: €" & Decimal.Parse(GesSichRef.CalcSaldo()).ToString("N")
End Sub
Private Sub OpenFRM(sender As Object, e As DataGridViewCellEventArgs) Handles dgvListe.CellDoubleClick
Dim frm As New frmGesSich
With frm
.GesSichRef = GesSichRef
.GesamtsichNr = dgvListe.CurrentRow.Cells("GesamtsichNr").Value
.Standort = Me.Standort
.MakeDate = dgvListe.CurrentRow.Cells("Datum").Value
.LKWID = dgvListe.CurrentRow.Cells("LKWID").Value
.FilialNummer = dgvListe.CurrentRow.Cells("FilialNummer").Value
.Abfertigungsnummer = dgvListe.CurrentRow.Cells("Abfertigungsnummer").Value
End With
AddHandler frm.FormClosing, Function()
GesSichRef.CalcSaldo()
ShowStandort()
LoadDGV()
Me.BringToFront()
End Function
frm.Show()
End Sub
Private Sub btnNeu_Click(sender As Object, e As EventArgs) Handles btnNeu.Click
Dim frm As New frmGesSich
With frm
.GesSichRef = GesSichRef
.Standort = Me.Standort
.MakeDate = Date.Now
'.ATR = GesSichRef.ATR
'.Ust = GesSichRef.Ust
'.UstEnabled = GesSichRef.UstEnabled
.Neu = True
End With
AddHandler frm.FormClosing, Function()
GesSichRef.CalcSaldo()
ShowStandort()
LoadDGV()
Me.BringToFront()
End Function
frm.Show()
End Sub
Private Sub lblSaldo_Click(sender As Object, e As EventArgs) Handles lblSaldo.Click
lblSaldo.Text = "Saldo: €" & Decimal.Parse(GesSichRef.CalcSaldo()).ToString("N")
LoadDGV()
End Sub
Private Sub chkOffen_CheckedChanged(sender As Object, e As EventArgs) Handles chkOffen.CheckedChanged, txtSuchbegriff.TextChanged
If Me.Visible Then LoadDGV()
End Sub
Private Sub Keypresses(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtSuchbegriff.KeyPress
Select Case Asc(e.KeyChar)
Case 48 To 57, 8, 46, 58, 32, 44, 65 To 90, 97 To 122
' Zahlen, Backspace, . und : zulassen
Case Else
' alle anderen Eingaben unterdrücken
e.Handled = True
End Select
End Sub
Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles FlatButton1.Click
txtSuchbegriff.Text = "" : chkOffen.Checked = True
txtVon.Text = Date.Today.AddDays(-30).ToString("dd.MM.yyyy")
txtbis.Text = Date.Today.ToString("dd.MM.yyyy")
End Sub
Private Sub MyTextBox1_TextChanged(sender As Object, e As EventArgs)
End Sub
Private Sub btnSucheStarten_Click(sender As Object, e As EventArgs) Handles btnSucheStarten.Click
Try
Date.Parse(txtVon.Text)
Date.Parse(txtbis.Text)
If Me.Visible Then LoadDGV()
Catch ex As Exception
MsgBox("Datum VON und/oder BIS konnte nicht konvertiert werden.")
End Try
End Sub
Private Sub FlatButton2_Click(sender As Object, e As EventArgs) Handles FlatButton2.Click
txtVon.Text = Date.Parse("01.01.1970")
txtbis.Text = Date.Today.ToString("dd.MM.yyyy")
End Sub
Private Sub ExportCSVToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportCSVToolStripMenuItem.Click
csvexport(dgvListe)
End Sub
Public Shared Function csvexport(quelldgv As DataGridView)
Dim savefiledialog As New SaveFileDialog
Dim firstin As String
Dim out As String
Dim in2 As String
Dim header As String
savefiledialog.Filter = "CSV files (*.csv)|*.CSV"
savefiledialog.InitialDirectory = "C:\Verag"
savefiledialog.ShowDialog()
Try
For r As Integer = 0 To quelldgv.Rows.Count - 1
For c As Integer = 0 To quelldgv.Columns.Count
'test &= r & c & vbCrLf
Try
'test &= Replace(quelldgv.Rows(r).Cells(c).Value.ToString, vbCrLf, "vbCrlLf")
firstin = quelldgv.Rows(r).Cells(c).Value.ToString
'in2 = """" & firstin & """" & ";"
in2 = firstin & ";"
out &= Replace(in2, vbCrLf, "##vbCrLf##")
Catch ex As Exception
out &= ""
End Try
Next
out &= "nZ"
Next
For c As Integer = 0 To quelldgv.Columns.Count - 1
header &= quelldgv.Columns(c).Name & ";"
Next
out = Replace(out, "nZ", vbCrLf)
'MsgBox(out)
Using sw As New IO.StreamWriter(savefiledialog.FileName)
sw.WriteLine(header)
sw.WriteLine(out)
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
End Class
Public Class cGesamtSicherheitsReferenz
Public SQL As New VERAG_PROG_ALLGEMEIN.SQL
Property Zollsatz As Integer = 0
Property ZollsatzMulti As Double = 0
Property Referenzwert As Double = 0
Property UstEnabled As Boolean = False
Property Ust As Integer
Property Saldo As Double = 0
Property ATR As Boolean = False
Property Standort As String = ""
Public Sub LoadStandort(_Standort As String)
Dim StandortSqlString As String = "select * from [tblGesamtsicherheitReferenz] where Standort = " & "'" & _Standort & "'"
Dim dt As New DataTable
dt = SQL.loadDgvBySql(StandortSqlString, "AVISO", 100, True)
Zollsatz = dt.Rows(0).Item("Zollsatz")
Referenzwert = dt.Rows(0).Item("Referenzwert")
UstEnabled = dt.Rows(0).Item("UstEnabled")
Ust = dt.Rows(0).Item("Ust")
ATR = dt.Rows(0).Item("ATR")
ZollsatzMulti = Zollsatz / 100
Saldo = dt.Rows(0).Item("aktSaldo")
Standort = _Standort
End Sub
Public Function CalcSaldo() As String
Dim SaldoString As String = "select SUM(
case
when Art = 'Open' then (Sicherheitsbetrag * -1)
when Art = 'Close' then Sicherheitsbetrag
end) as SicherheitsSaldo
from [tblGesamtsicherheit] Where Standort = '" & Standort & "'"
Dim dt As New DataTable
Dim mrn As Double = 0
dt = SQL.loadDgvBySql(SaldoString, "AVISO", 100, True)
If dt.Rows(0).Item(0).ToString.Length > 0 Then
mrn = dt.Rows(0).Item(0)
End If
Saldo = Referenzwert + mrn
UpdateSaldo()
Return Saldo
End Function
Public Function UpdateSaldo()
SQL.doSQL("Update [tblGesamtsicherheitReferenz] Set aktSaldo = '" & Saldo & "' WHERE Standort = '" & Standort & "'", "AVISO")
End Function
End Class