From d8d16b1aad5317f24b3d68235df40d72e22f0463 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 15 Jan 2026 11:05:15 +0100 Subject: [PATCH] gesamtsicherheiten --- .../frmGesamtsicherheitenMenuNEU.Designer.vb | 48 +++++++++--- Aviso/frmGesamtsicherheitenMenuNEU.vb | 78 ++++++++++++++++++- Aviso/frmGesamtsicherheitenNEU.vb | 43 ++++++++-- 3 files changed, 151 insertions(+), 18 deletions(-) diff --git a/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb b/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb index a9e44c6..7dd3b23 100644 --- a/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb +++ b/Aviso/frmGesamtsicherheitenMenuNEU.Designer.vb @@ -22,13 +22,15 @@ Partial Class frmGesamtsicherheitenMenuNEU 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmGesamtsicherheitenMenuNEU)) - Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip() + 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.SaldoZumStichtagToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel1 = New System.Windows.Forms.Panel() Me.PictureBox5 = New System.Windows.Forms.PictureBox() Me.Label26 = New System.Windows.Forms.Label() @@ -54,7 +56,7 @@ Partial Class frmGesamtsicherheitenMenuNEU Me.lblZollsatz = New System.Windows.Forms.Label() Me.lblReferenzwert = New System.Windows.Forms.Label() Me.btnExcel = New VERAG_PROG_ALLGEMEIN.FlatButton() - Me.dgvListe = New VERAG_PROG_ALLGEMEIN.MyDatagridview() + Me.dgvListe = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.btnOpenOver85Days = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.txtDatBis = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.txtDatVon = New VERAG_PROG_ALLGEMEIN.MyTextBox() @@ -63,7 +65,9 @@ Partial Class frmGesamtsicherheitenMenuNEU Me.btnSucheStarten = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.btnResetFilter = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.btnNeu = New VERAG_PROG_ALLGEMEIN.FlatButton() - Me.SaldoZumStichtagToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PrüfungAusPlausibilitätToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AusgangEingangToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SicherheitsbetragToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ContextMenuStrip1.SuspendLayout() Me.Panel1.SuspendLayout() CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).BeginInit() @@ -72,15 +76,15 @@ Partial Class frmGesamtsicherheitenMenuNEU ' 'ContextMenuStrip1 ' - Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExportCSVToolStripMenuItem, Me.SaldenNeuBerechnenToolStripMenuItem, Me.SaldoZumStichtagToolStripMenuItem}) + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExportCSVToolStripMenuItem, Me.SaldenNeuBerechnenToolStripMenuItem, Me.SaldoZumStichtagToolStripMenuItem, Me.PrüfungAusPlausibilitätToolStripMenuItem}) Me.ContextMenuStrip1.Name = "ContextMenuStrip1" - Me.ContextMenuStrip1.Size = New System.Drawing.Size(192, 92) + Me.ContextMenuStrip1.Size = New System.Drawing.Size(203, 114) ' 'ExportCSVToolStripMenuItem ' 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.Size = New System.Drawing.Size(202, 22) Me.ExportCSVToolStripMenuItem.Text = "Export CSV" ' 'ListeToolStripMenuItem @@ -104,9 +108,15 @@ Partial Class frmGesamtsicherheitenMenuNEU 'SaldenNeuBerechnenToolStripMenuItem ' Me.SaldenNeuBerechnenToolStripMenuItem.Name = "SaldenNeuBerechnenToolStripMenuItem" - Me.SaldenNeuBerechnenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) + Me.SaldenNeuBerechnenToolStripMenuItem.Size = New System.Drawing.Size(202, 22) Me.SaldenNeuBerechnenToolStripMenuItem.Text = "Salden neu berechnen" ' + 'SaldoZumStichtagToolStripMenuItem + ' + Me.SaldoZumStichtagToolStripMenuItem.Name = "SaldoZumStichtagToolStripMenuItem" + Me.SaldoZumStichtagToolStripMenuItem.Size = New System.Drawing.Size(202, 22) + Me.SaldoZumStichtagToolStripMenuItem.Text = "Saldo zum Stichtag" + ' 'Panel1 ' Me.Panel1.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) @@ -604,11 +614,24 @@ Partial Class frmGesamtsicherheitenMenuNEU Me.btnNeu.Text = "Neu" Me.btnNeu.UseVisualStyleBackColor = False ' - 'SaldoZumStichtagToolStripMenuItem + 'PrüfungAusPlausibilitätToolStripMenuItem ' - Me.SaldoZumStichtagToolStripMenuItem.Name = "SaldoZumStichtagToolStripMenuItem" - Me.SaldoZumStichtagToolStripMenuItem.Size = New System.Drawing.Size(191, 22) - Me.SaldoZumStichtagToolStripMenuItem.Text = "Saldo zum Stichtag" + Me.PrüfungAusPlausibilitätToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AusgangEingangToolStripMenuItem, Me.SicherheitsbetragToolStripMenuItem}) + Me.PrüfungAusPlausibilitätToolStripMenuItem.Name = "PrüfungAusPlausibilitätToolStripMenuItem" + Me.PrüfungAusPlausibilitätToolStripMenuItem.Size = New System.Drawing.Size(202, 22) + Me.PrüfungAusPlausibilitätToolStripMenuItem.Text = "Prüfung aus Plausibilität" + ' + 'AusgangEingangToolStripMenuItem + ' + Me.AusgangEingangToolStripMenuItem.Name = "AusgangEingangToolStripMenuItem" + Me.AusgangEingangToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AusgangEingangToolStripMenuItem.Text = "Ausgang < Eingang" + ' + 'SicherheitsbetragToolStripMenuItem + ' + Me.SicherheitsbetragToolStripMenuItem.Name = "SicherheitsbetragToolStripMenuItem" + Me.SicherheitsbetragToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.SicherheitsbetragToolStripMenuItem.Text = "Sicherheitsbetrag" ' 'frmGesamtsicherheitenMenuNEU ' @@ -674,4 +697,7 @@ Partial Class frmGesamtsicherheitenMenuNEU Friend WithEvents DetaillisteToolStripMenuItem As ToolStripMenuItem Friend WithEvents PictureBox5 As PictureBox Friend WithEvents SaldoZumStichtagToolStripMenuItem As ToolStripMenuItem + Friend WithEvents PrüfungAusPlausibilitätToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AusgangEingangToolStripMenuItem As ToolStripMenuItem + Friend WithEvents SicherheitsbetragToolStripMenuItem As ToolStripMenuItem End Class diff --git a/Aviso/frmGesamtsicherheitenMenuNEU.vb b/Aviso/frmGesamtsicherheitenMenuNEU.vb index 24d285b..d8c1c6b 100644 --- a/Aviso/frmGesamtsicherheitenMenuNEU.vb +++ b/Aviso/frmGesamtsicherheitenMenuNEU.vb @@ -317,6 +317,7 @@ Public Class frmGesamtsicherheitenMenuNEU DateTimePicker1.Value = JAHR DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1) 'End If + Case "Tag" Case "Tag" DateTimePicker1.Value = TAG @@ -524,14 +525,14 @@ Public Class frmGesamtsicherheitenMenuNEU 'End If If sender.ToString = "Detailliste" Then - frm.LoadDataTableSicherheitenForExport2(list, datumVon, CDate(txtDatBis.Text), Standort, detailINfo, nurErstellungsdatumNotAenderungsdatum) + frm.LoadDataTableSicherheitenForExport(list, datumVon, CDate(txtDatBis.Text), Standort, detailINfo, nurErstellungsdatumNotAenderungsdatum) ElseIf sender.ToString = "Referenzliste-Zollamt" Then If Not vbYes = MsgBox("Sollen interne Detailinfos mitangegeben werden?", vbYesNoCancel) Then detailINfo = False End If - frm.LoadDataTableSicherheitenForExport(list, datumVon, CDate(txtDatBis.Text), Standort, detailINfo, nurErstellungsdatumNotAenderungsdatum) + frm.LoadDataTableSicherheitenForZollamt(list, datumVon, CDate(txtDatBis.Text), Standort, detailINfo, nurErstellungsdatumNotAenderungsdatum) Else MsgBox("Funktion nicht definiert!") Exit Sub @@ -590,4 +591,77 @@ Public Class frmGesamtsicherheitenMenuNEU End Sub + + Private Sub AusgangEingangToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AusgangEingangToolStripMenuItem.Click + + + + Dim SQLPlausPruefung = "select gs_gsnr as Nr,gs_ATBNr as ATBNr, gs_Sicherheitsbetrag as Sicherheitsbetrag ,gsp_ATCNr as ATCNr , cast(gs_datum as Date) as Ausgangsdatum, cast(gsp_datum as Date) as Eingangsdatum, [gs_erstellungsdatum] as Erstellungsdatum, [gs_zuletztgeandert] as GeänderAm, [gs_systemuser] as Benutzer from tblGesamtsicherheit + inner join tblGesamtsicherheitsPositionen on gs_gsId = gsp_gsId + where cast(gsp_datum as Date) < cast(gs_datum as Date) and not ( [gs_sicherheitsbetrag] = 0.00 and [gsp_sicherheitsbetrag] = 0.00) and gs_standort = '" & Standort & "'" + + + Dim dt As New DataTable + dt = SQL.loadDgvBySql(SQLPlausPruefung, "AVISO", 100, True) + + + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + + MsgBox(dt.Rows.Count & " Datensätze müssen korrigiert werden (Datum/Uhrzeit des Gestellungsausganges muss zeitlich NACH dem Gestellungseingang liegen)! " & vbNewLine & "Ansonsten können keine korrekten Werte über die Saldenliste ermittelt werden.") + SDL.cProgramFunctions.genExcelFromDT_NEW(dt) + + Else + + MsgBox("keine fehlerhaften Eingaben vorhanden!") + + End If + + + End Sub + + + Private Sub SicherheitsbetragToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SicherheitsbetragToolStripMenuItem.Click + + + Dim SQLPlausPruefung = "SELECT + gs.gs_gsnr, + gs.Sicherheitbetrag_Ausgang, + gsp.Sicherheitbetrag_Eingang, + gs.gs_standort +FROM +( + SELECT + gs_gsnr, + gs_standort, + SUM(gs_sicherheitsbetrag) AS Sicherheitbetrag_Ausgang + FROM tblGesamtsicherheit + GROUP BY gs_standort, gs_gsnr +) gs +JOIN +( + SELECT + gsp_gsnr, + SUM(gsp_sicherheitsbetrag) AS Sicherheitbetrag_Eingang + FROM tblGesamtsicherheitsPositionen + GROUP BY gsp_gsnr +) gsp + ON gs.gs_gsnr = gsp.gsp_gsnr WHERE gs.Sicherheitbetrag_Ausgang < gsp.Sicherheitbetrag_Eingang and gs_standort = '" & Standort & "' and gs_gsnr <> 2030 order by gs.gs_gsnr" + + + Dim dt As New DataTable + dt = SQL.loadDgvBySql(SQLPlausPruefung, "AVISO", 100, True) + + + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + + MsgBox(dt.Rows.Count & " Datensätze müssen korrigiert werden (S-Betrag des Gestellungseinganges darf nicht größer als der des dem Gestellungsausganges)! " & vbNewLine & "Ansonsten können keine korrekten Werte über die Saldenliste ermittelt werden.") + SDL.cProgramFunctions.genExcelFromDT_NEW(dt) + + Else + + MsgBox("keine fehlerhaften Eingaben vorhanden!") + + End If + + End Sub End Class diff --git a/Aviso/frmGesamtsicherheitenNEU.vb b/Aviso/frmGesamtsicherheitenNEU.vb index eccaf69..02aa0a6 100644 --- a/Aviso/frmGesamtsicherheitenNEU.vb +++ b/Aviso/frmGesamtsicherheitenNEU.vb @@ -226,7 +226,7 @@ Public Class frmGesamtsicherheitenNEU End Sub - Public Sub LoadDataTableSicherheitenForExport(list As List(Of Integer), datumVon As Date, datumBis As Date, standort As String, Optional detailinfo As Boolean = False, Optional nurErstellungisNichtAenderungsdatum As Boolean = False) + Public Sub LoadDataTableSicherheitenForZollamt(list As List(Of Integer), datumVon As Date, datumBis As Date, standort As String, Optional detailinfo As Boolean = False, Optional nurErstellungisNichtAenderungsdatum As Boolean = False) Me.Cursor = Cursors.WaitCursor @@ -247,8 +247,7 @@ Public Class frmGesamtsicherheitenNEU Dim SQLStringSicherheit = " select * from (select gs_gsnr as 'Nr',[gs_ATBNr] as 'Reg-Nr. Verwahrlager " & standort & "', gs_MRNNr as MRN,'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' " & IIf(detailinfo, ", [gs_erstellungsdatum] as Erstellungsdatum, [gs_zuletztgeandert] as GeänderAm, [gs_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheit] - Where [gs_gsnr] In (" & gsnr & ") - and isnull(gs_warenwert,0) <> 0 + Where [gs_gsnr] In (" & gsnr & ") and isnull(gs_warenwert,0) <> 0 UNION Select gsp_gsnr, [gsp_ATCNr],gsp_MRNNr,'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag], [gsp_freitext],'',[gsp_ust] " & IIf(detailinfo, ", [gsp_erstellungsdatum] as Erstellungsdatum, [gsp_zuletztgeandert] as GeänderAm, [gsp_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheitsPositionen] @@ -256,7 +255,28 @@ Public Class frmGesamtsicherheitenNEU and isnull(gsp_warenwert,0) <> 0 ) as Temp WHERE Temp.Datum > '" & datumVon.ToShortDateString & "' and Temp.Datum <= '" & datumBis.ToShortDateString & "' " & IIf(nurErstellungisNichtAenderungsdatum, " AND (Temp.Erstellungsdatum is not null AND cast(Temp.Erstellungsdatum as Date) <> cast(Temp.Datum as Date)) OR (Temp.GeänderAm is not null AND cast(Temp.GeänderAm as Date) <> cast(Temp.Datum as Date))", "") & "order by Temp.Datum, Temp.Uhrzeit " - dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit, "AVISO", 100, True) + + + Dim SQLStringSicherheit_new As String = " select * from (select gs_gsnr as 'Nr',[gs_ATBNr] as 'Reg-Nr. Verwahrlager " & standort & "', gs_MRNNr as MRN,'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' " & IIf(detailinfo, ", [gs_erstellungsdatum] as Erstellungsdatum, [gs_zuletztgeandert] as GeänderAm, [gs_systemuser] as Benutzer ", "") & " + From [tblGesamtsicherheit] + Where + [gs_gsnr] In ( + SELECT [gs_gsnr] + FROM tblGesamtsicherheit + WHERE gs_standort = '" & standort & "'AND cast(gs_datum as Date) between '" & datumVon.ToShortDateString & "' and '" & datumBis.ToShortDateString & "' ) + and isnull(gs_sicherheitsbetrag,0) <> 0 + and gs_datum is not null + UNION + Select gsp_gsnr, [gsp_ATCNr],gsp_MRNNr,'Ausgang Verwahrlager', CAST(gsp_datum as Date), CONVERT(VARCHAR(5),gsp_datum, 108), [gsp_warenwert] , [gsp_sicherheitsbetrag],[gsp_sicherheitsbetrag], [gsp_freitext],'',[gsp_ust] " & IIf(detailinfo, ", [gsp_erstellungsdatum] as Erstellungsdatum, [gsp_zuletztgeandert] as GeänderAm, [gsp_systemuser] as Benutzer ", "") & " From [tblGesamtsicherheitsPositionen] + Where gsp_gsnr In ( + + SELECT [gs_gsnr] FROM tblGesamtsicherheit WHERE gs_standort = '" & standort & "' AND cast(gs_datum as Date) between '" & datumVon.ToShortDateString & "' and '" & datumBis.ToShortDateString & "' + + ) and isnull(gsp_sicherheitsbetrag,0) <> 0 + and gsp_datum is not null + ) as Temp order by Temp.Datum, Temp.Uhrzeit " + + dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit_new, "AVISO", 100, True) dtSicherheiten.Columns.Add("Saldo") @@ -306,7 +326,7 @@ Public Class frmGesamtsicherheitenNEU - Public Sub LoadDataTableSicherheitenForExport2(list As List(Of Integer), datumVon As Date, datumBis As Date, standort As String, Optional detailinfo As Boolean = False, Optional nurErstellungisNichtAenderungsdatum As Boolean = False) + Public Sub LoadDataTableSicherheitenForExport(list As List(Of Integer), datumVon As Date, datumBis As Date, standort As String, Optional detailinfo As Boolean = False, Optional nurErstellungisNichtAenderungsdatum As Boolean = False) Me.Cursor = Cursors.WaitCursor @@ -333,6 +353,19 @@ Public Class frmGesamtsicherheitenNEU OR gsp_zuletztgeandert is not null and cast(gsp_datum as Date) <> cast(gsp_zuletztgeandert as Date)) ", " ") & "order by gs_gsId" + + Dim SQLStringSicherheit_new As String = " select [gs_ATBNr] as 'Reg-Nr. Verwahrlager',[gs_gsnr] as 'GS Nr', gs_MRNNr as MRN, 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" & + IIf(detailinfo, ", gs_erstellungsdatum as 'Eingang erstellt am', gs_systemuser as 'von', gs_zuletztgeandert as ' Eingang geändert am', gsp_erstellungsdatum as 'Ausgang erstellt am', gsp_systemuser as 'von_', gsp_zuletztgeandert as ' Ausgang geändert am'", "") & + "From tblGesamtsicherheit + Where gs_standort = '" & brgakto_gs_standort & "'" & StichtagSQLGesamtsicherheit & " AND ISNULL(gs_ReferenzAenderung,0) = 0 + left join [tblGesamtsicherheitsPositionen] on [tblGesamtsicherheit].gs_gsId = [tblGesamtsicherheitsPositionen].gsp_gsId + where [gs_gsnr] IN (SELECT gs_gsnr FROM tblGesamtsicherheit WHERE gs_standort = '" & brgakto_gs_standort & "'" & StichtagSQLGesamtsicherheit & " AND ISNULL(gs_ReferenzAenderung,0) = 0 )) AND cast(gs_datum as Date) between '" & datumVon.ToShortDateString & "' and '" & datumBis.ToShortDateString & "'" & IIf(nurErstellungisNichtAenderungsdatum, " AND ( + (cast(gs_datum as Date) <> cast(gs_erstellungsdatum as Date) OR gs_zuletztgeandert is not null and cast(gs_datum as Date) <> cast(gs_zuletztgeandert as Date)) + OR gsp_zuletztgeandert is not null and cast(gsp_datum as Date) <> cast(gsp_zuletztgeandert as Date)) ", " ") & "order by gs_gsId" + + + dtSicherheiten = SQL.loadDgvBySql(SQLStringSicherheit, "AVISO", 100, True)