From 7a6496f820efc0a954db54869150a0a37d22a9f2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 21 Jun 2023 13:16:57 +0200 Subject: [PATCH] Rundungsdifferenzenanzeige, Excelexport --- .../frmGesamtsicherheitenMenuNEU.Designer.vb | 12 +- Aviso/frmGesamtsicherheitenMenuNEU.vb | 19 ++- Aviso/frmGesamtsicherheitenNEU.vb | 120 ++++++++++++++++-- 3 files changed, 132 insertions(+), 19 deletions(-) diff --git a/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb b/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb index 6852d3f..dcd4801 100644 --- a/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb +++ b/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb @@ -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 diff --git a/Aviso/frmGesamtsicherheitenMenuNEU.vb b/Aviso/frmGesamtsicherheitenMenuNEU.vb index a55bd55..e1a4533 100644 --- a/Aviso/frmGesamtsicherheitenMenuNEU.vb +++ b/Aviso/frmGesamtsicherheitenMenuNEU.vb @@ -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) diff --git a/Aviso/frmGesamtsicherheitenNEU.vb b/Aviso/frmGesamtsicherheitenNEU.vb index a70cd2b..19cc3be 100644 --- a/Aviso/frmGesamtsicherheitenNEU.vb +++ b/Aviso/frmGesamtsicherheitenNEU.vb @@ -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 @@ -1079,7 +1152,7 @@ Public Class frmGesamtsicherheitenNEU ' Return False 'End If - If (offenerSicherheitsbetrag < 0 Or offenerSicherheitsbetrag < offenerSicherheitsbetragPos) Then + If (offenerSicherheitsbetrag <0 Or offenerSicherheitsbetrag "" 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