Rundungsdifferenzenanzeige, Excelexport

This commit is contained in:
2023-06-21 13:16:57 +02:00
parent 4c6d9eb959
commit 7a6496f820
3 changed files with 132 additions and 19 deletions

View File

@@ -28,6 +28,7 @@ Partial Class frmGesamtsicherheitenMenuNEU
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ExportCSVToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ListeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.DetaillisteToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ReferenzlisteZollamtToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.SaldenNeuBerechnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.Panel1 = New System.Windows.Forms.Panel()
@@ -91,11 +92,11 @@ Partial Class frmGesamtsicherheitenMenuNEU
'
Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExportCSVToolStripMenuItem, Me.SaldenNeuBerechnenToolStripMenuItem})
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
Me.ContextMenuStrip1.Size = New System.Drawing.Size(192, 70)
Me.ContextMenuStrip1.Size = New System.Drawing.Size(192, 48)
'
'ExportCSVToolStripMenuItem
'
Me.ExportCSVToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ListeToolStripMenuItem, Me.ReferenzlisteZollamtToolStripMenuItem})
Me.ExportCSVToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ListeToolStripMenuItem, Me.DetaillisteToolStripMenuItem, Me.ReferenzlisteZollamtToolStripMenuItem})
Me.ExportCSVToolStripMenuItem.Name = "ExportCSVToolStripMenuItem"
Me.ExportCSVToolStripMenuItem.Size = New System.Drawing.Size(191, 22)
Me.ExportCSVToolStripMenuItem.Text = "Export CSV"
@@ -106,6 +107,12 @@ Partial Class frmGesamtsicherheitenMenuNEU
Me.ListeToolStripMenuItem.Size = New System.Drawing.Size(186, 22)
Me.ListeToolStripMenuItem.Text = "Liste"
'
'DetaillisteToolStripMenuItem
'
Me.DetaillisteToolStripMenuItem.Name = "DetaillisteToolStripMenuItem"
Me.DetaillisteToolStripMenuItem.Size = New System.Drawing.Size(186, 22)
Me.DetaillisteToolStripMenuItem.Text = "Detailliste"
'
'ReferenzlisteZollamtToolStripMenuItem
'
Me.ReferenzlisteZollamtToolStripMenuItem.Name = "ReferenzlisteZollamtToolStripMenuItem"
@@ -752,4 +759,5 @@ Partial Class frmGesamtsicherheitenMenuNEU
Friend WithEvents btnExcel As VERAG_PROG_ALLGEMEIN.FlatButton
Friend WithEvents ListeToolStripMenuItem As ToolStripMenuItem
Friend WithEvents ReferenzlisteZollamtToolStripMenuItem As ToolStripMenuItem
Friend WithEvents DetaillisteToolStripMenuItem As ToolStripMenuItem
End Class

View File

@@ -389,7 +389,7 @@ Public Class frmGesamtsicherheitenMenuNEU
End Sub
Private Sub ExportCSV2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReferenzlisteZollamtToolStripMenuItem.Click
Private Sub ExportCSV2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReferenzlisteZollamtToolStripMenuItem.Click, DetaillisteToolStripMenuItem.Click
If dgvListe.Rows.Count = 0 Then
MsgBox("keine Daten vorhanden!")
@@ -400,14 +400,23 @@ Public Class frmGesamtsicherheitenMenuNEU
For Each row As DataGridViewRow In dgvListe.Rows
list.Add(CInt(row.Cells("gs_gsnr").Value))
Next
Dim frm As New frmGesamtsicherheitenNEU
Dim datumVon As String = DateTimePicker1.Value.AddDays(-1)
Dim datumVon As Date = CDate(txtDatVon.Text)
frm.LoadDataTableSicherheitenForExport(list, datumVon, txtDatBis.Text)
datumVon = datumVon.AddDays(-1)
If sender.ToString = "Detailliste" Then
frm.LoadDataTableSicherheitenForExport2(list, datumVon.ToShortDateString, txtDatBis.Text)
ElseIf sender.ToString = "Referenzliste-Zollamt" Then
frm.LoadDataTableSicherheitenForExport(list, datumVon.ToShortDateString, txtDatBis.Text, Standort)
Else
MsgBox("Funktion nicht definiert!")
Exit Sub
End If
SDL.cProgramFunctions.genExcelFromDT_NEW(frm.dtSicherheiten)

View File

@@ -183,11 +183,11 @@ Public Class frmGesamtsicherheitenNEU
End Sub
Public Sub LoadDataTableSicherheitenForExport(list As List(Of Integer), datumVon As String, datumBis As String)
Public Sub LoadDataTableSicherheitenForExport(list As List(Of Integer), datumVon As String, datumBis As String, standort As String)
Me.Cursor = Cursors.WaitCursor
Dim Firma As New VERAG_PROG_ALLGEMEIN.cFirmen(firmaId)
Dim currentGesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(standort)
Dim gsnr As String
@@ -209,15 +209,15 @@ Public Class frmGesamtsicherheitenNEU
' order by gs_gsId"
Dim SQLStringSicherheit = "select gs_gsnr as 'Nr',[gs_ATBNr] as 'ATB Verwahrlager " & Firma.Firma_Bez & "','Eingang Verwahrlager' as 'Typ', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_sicherheitsbetrag] as Sicherheitbetrag_Calc, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt'
Dim SQLStringSicherheit = "select gs_gsnr as 'Nr',[gs_ATBNr] as 'ATB Verwahrlager " & standort & "','Eingang Verwahrlager' as 'Typ', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_sicherheitsbetrag] *-1 as Sicherheitbetrag_Calc, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt'
From [tblGesamtsicherheit]
Where [gs_gsnr] In (" & gsnr & ")
and isnull(gs_warenwert,0) <> 0
UNION
Select gsp_gsnr, [gsp_ATCNr],'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag]*-1, [gsp_freitext],[gsp_art],[gsp_ust]
Select gsp_gsnr, [gsp_ATCNr],'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag], [gsp_freitext],[gsp_art],[gsp_ust]
From [tblGesamtsicherheitsPositionen]
where [gsp_gsnr] In (" & gsnr & ")
and isnull(gsp_warenwert,0) <> 0
order by Datum, Uhrzeit"
@@ -231,7 +231,7 @@ Public Class frmGesamtsicherheitenNEU
drFirst.Item("Nr") = 0
drFirst.Item("Typ") = "Uebertrag vom"
drFirst.Item("Datum") = CDate(datumVon).ToShortDateString
drFirst.Item("Saldo") = SQL.getValueTxtBySql("SELECT TOP 1 isnull([gs_saldo],0) FROM [tblGesamtsicherheit] where gs_datum='" & CDate(datumVon).ToShortDateString & "' order by gs_datum asc", "AVISO",,, 500000) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
drFirst.Item("Saldo") = SQL.getValueTxtBySql("SELECT TOP 1 isnull([gs_saldo],0) FROM [tblGesamtsicherheit] where gs_standort = '" & standort & "' AND gs_datum <'" & CDate(datumVon).ToShortDateString & "' order by gs_datum asc", "AVISO",,, currentGesSichRef.brgakto_betrag) 'CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drFirst, 0)
@@ -257,6 +257,7 @@ Public Class frmGesamtsicherheitenNEU
drLast.Item("Nr") = 0
drLast.Item("Typ") = "Saldo zum"
drLast.Item("Datum") = CDate(datumBis).ToShortDateString
drLast.Item("Saldo") = CDbl(dtSicherheiten.Rows(dtSicherheiten.Rows.Count - 1).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drLast, dtSicherheiten.Rows.Count)
@@ -270,6 +271,74 @@ Public Class frmGesamtsicherheitenNEU
Public Sub LoadDataTableSicherheitenForExport2(list As List(Of Integer), datumVon As String, datumBis As String)
Me.Cursor = Cursors.WaitCursor
Dim gsnr As String
Dim counter = 0
For Each n In list
gsnr &= n.ToString()
counter = counter + 1
If (list.Count <> 0 And counter <> list.Count) Then
gsnr &= ","
End If
Next
Dim SQLStringSicherheit As String = "select [gs_ATBNr] as 'ATB Verwahrlager',[gs_gsnr] as 'GS Nr', CAST(gs_datum as Date) as Datum, CONVERT(VARCHAR(5),gs_datum, 108) as Uhrzeit, [gs_warenwert] as Warenwert, [gs_sicherheitsbetrag] as Sicherheitbetrag, [gs_saldo] as Saldo, [gs_freitext] as Freitext, [gs_atr] as 'ATR ja/nein', [gs_ust] as '19% EUSt',
[gsp_ATCNr] as 'ATCNr oder MRN eroeffnet', CAST(gsp_datum as Date) as Datum, CONVERT(VARCHAR(5),gsp_datum, 108) as Uhrzeit, [gsp_warenwert] as Warenwert, [gsp_sicherheitsbetrag] as Sicherheitsbetrag2, [gsp_freitext] as Freitext
from [tblGesamtsicherheit]
inner join [tblGesamtsicherheitsPositionen] on [tblGesamtsicherheit].gs_gsId = [tblGesamtsicherheitsPositionen].gsp_gsId
where [gs_gsnr] IN (" & gsnr & ")
order by gs_gsId"
dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit, "AVISO", 100, True)
dtSicherheiten.Columns.Add("SSaldo")
Dim drFirst = dtSicherheiten.NewRow
drFirst.Item("ATB Verwahrlager") = "Uebertrag vom " & datumVon
drFirst.Item("SSaldo") = CDbl(dtSicherheiten.Rows(0).Item("Saldo"))
dtSicherheiten.Rows.InsertAt(drFirst, 0)
Dim sicherheitsbetragATBs As Double
Dim sicherheitsbetragATCs As Double
Dim saldo As Double
Dim c1 As Double
Dim saldoStart As Double
For i As Integer = 1 To dtSicherheiten.Rows.Count - 1
saldoStart = CDbl(dtSicherheiten.Rows(0).Item("SSaldo"))
saldo = CDbl(dtSicherheiten.Rows(i - 1).Item("SSaldo"))
sicherheitsbetragATCs = CDbl(dtSicherheiten.Rows(i).Item("Sicherheitbetrag"))
sicherheitsbetragATBs = CDbl(dtSicherheiten.Rows(i).Item("Sicherheitsbetrag2"))
c1 = saldo - sicherheitsbetragATCs + sicherheitsbetragATBs
dtSicherheiten.Rows(i)("SSaldo") = c1
Next
Dim drLast = dtSicherheiten.NewRow
drLast.Item("ATB Verwahrlager") = "Saldo zum " & datumBis
drLast.Item("SSaldo") = CDbl(dtSicherheiten.Rows(dtSicherheiten.Rows.Count - 1).Item("SSaldo"))
dtSicherheiten.Rows.InsertAt(drLast, dtSicherheiten.Rows.Count)
dtSicherheiten.Columns.Remove("Saldo")
Me.Cursor = Cursors.Default
End Sub
Private Sub dgvGesamtsicherheit_SelectionChanged(sender As Object, e As EventArgs) Handles dgvGesamtsicherheit.SelectionChanged
If dgvGesamtsicherheit.SelectedRows.Count > 0 Then
@@ -638,13 +707,14 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnAddPos_Click(sender As Object, e As EventArgs) Handles btnAddPos.Click
If dgvGesamtsicherheit.SelectedRows.Count = 0 Then
MsgBox("Bitte eine Gestellung markieren, zu diese eine Pos hinzugefügt/entfernt/aktualisiert werden soll")
Exit Sub
End If
If checkSicherheitsbetrag() = False Then Exit Sub
If Not checkDateOfPosition(txtPosDat.Text, txtPosTime.Text) Then Exit Sub
Try
Dim OPEN As New cSicherheiten()
@@ -896,6 +966,9 @@ Public Class frmGesamtsicherheitenNEU
Private Sub btnUpdatePos_Click(sender As Object, e As EventArgs) Handles btnUpdatePos.Click
If Not checkDateOfPosition(txtPosDat.Text, txtPosTime.Text) Then Exit Sub
With currentSPos
.gsp_art = "CLOSE"
@@ -905,9 +978,9 @@ Public Class frmGesamtsicherheitenNEU
.gsp_ATCNr = If(txtPositionenCRN.Text <> "", txtPositionenCRN.Text, Nothing)
If txtPosDat.Text <> "" AndAlso txtPosTime.Text <> "" Then
.gsp_datum = DateTimeString2DateTimeKonvertinator(txtPosDat.Text, txtPosTime.Text)
currentSPos.gsp_datum = DateTimeString2DateTimeKonvertinator(txtPosDat.Text, txtPosTime.Text)
Else
.gsp_datum = Nothing
currentSPos.gsp_datum = Nothing
End If
@@ -1787,7 +1860,7 @@ Public Class frmGesamtsicherheitenNEU
End With
SicherheitsPos.SAVE()
cbxRundPosanzeigen.Checked = True
AfterButton()
End If
@@ -1815,4 +1888,27 @@ Public Class frmGesamtsicherheitenNEU
LoadDGVSicherheiten(True)
End Sub
Private Function checkDateOfPosition(datum As String, uhrzeit As String) As Boolean
Dim checkOK As Boolean = True
Dim datumPos As Date = Nothing
If datum <> "" AndAlso uhrzeit <> "" Then
datumPos = DateTimeString2DateTimeKonvertinator(datum, uhrzeit)
ElseIf datum <> "" Then
datumPos = CDate(datum).ToShortDateString
End If
If datumPos <> Nothing And dgvGesamtsicherheit.Rows.Count > 0 Then
If IsDate(dgvGesamtsicherheit.Rows(0).Cells("gs_datum").Value) Then
If datumPos < dgvGesamtsicherheit.Rows(0).Cells("gs_datum").Value Then
MsgBox("Datum/Uhrzeit der Pos-Gestellung darf zeitlich nicht vor der Gestellung liegen! (" & dgvGesamtsicherheit.Rows(0).Cells("gs_datum").Value & ")")
checkOK = False
End If
End If
End If
Return checkOK
End Function
End Class