Sicherheiten -> CBAM

This commit is contained in:
2026-11-06 11:02:06 +01:00
parent 01995273bf
commit 77b757b031
2 changed files with 118 additions and 6 deletions

View File

@@ -43,6 +43,7 @@ Partial Class usrCntlDatenarchiv
Me.txtMaxSrch = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.Button10 = New System.Windows.Forms.Button()
Me.Button11 = New System.Windows.Forms.Button()
Me.lblWorkingArea = New System.Windows.Forms.Label()
CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer.Panel1.SuspendLayout()
Me.SplitContainer.Panel2.SuspendLayout()
@@ -98,6 +99,7 @@ Partial Class usrCntlDatenarchiv
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.lblWorkingArea)
Me.SplitContainer1.Panel1.Controls.Add(Me.lblfehlendeDokumente)
Me.SplitContainer1.Panel1.Controls.Add(Me.Button1)
Me.SplitContainer1.Panel1.Controls.Add(Me.cbxTestsystem)
@@ -115,7 +117,7 @@ Partial Class usrCntlDatenarchiv
'
Me.lblfehlendeDokumente.AutoSize = True
Me.lblfehlendeDokumente.ForeColor = System.Drawing.Color.Red
Me.lblfehlendeDokumente.Location = New System.Drawing.Point(617, 15)
Me.lblfehlendeDokumente.Location = New System.Drawing.Point(449, 54)
Me.lblfehlendeDokumente.Name = "lblfehlendeDokumente"
Me.lblfehlendeDokumente.Size = New System.Drawing.Size(0, 13)
Me.lblfehlendeDokumente.TabIndex = 57
@@ -326,6 +328,15 @@ Partial Class usrCntlDatenarchiv
Me.Button11.TabIndex = 4
Me.Button11.UseVisualStyleBackColor = True
'
'lblWorkingArea
'
Me.lblWorkingArea.AutoSize = True
Me.lblWorkingArea.ForeColor = System.Drawing.Color.Black
Me.lblWorkingArea.Location = New System.Drawing.Point(449, 36)
Me.lblWorkingArea.Name = "lblWorkingArea"
Me.lblWorkingArea.Size = New System.Drawing.Size(0, 13)
Me.lblWorkingArea.TabIndex = 58
'
'usrCntlDatenarchiv
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -371,4 +382,5 @@ Partial Class usrCntlDatenarchiv
Friend WithEvents btnSave As Button
Friend WithEvents Button1 As Button
Friend WithEvents lblfehlendeDokumente As Label
Friend WithEvents lblWorkingArea As Label
End Class

View File

@@ -179,13 +179,17 @@ Public Class usrCntlDatenarchiv
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim jahr As Integer = 2026
Dim zupruefendeDokumente As String = " select top(100000) * from [tblDatenarchiv_Collection] where Year(coll_date) = " & jahr & " and coll_archiv = 0 and isnull(coll_pfad,'') <> '' order by coll_date desc "
'Dim zupruefendeDokumente As String = " select top(100000) * from [tblDatenarchiv_Collection] where Year(coll_date) = " & jahr & " and coll_archiv = 0 and isnull(coll_pfad,'') <> '' order by coll_date desc "
Dim zupruefendeDokumente As String = " select top(100000) * from [tblDatenarchiv_Collection] where cast(coll_date as Date) = '29.10.2026' and coll_archiv = 0 and isnull(coll_pfad,'') <> '' order by coll_date desc "
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim Datenarchiv_DOKS As DataTable = SQL.loadDgvBySql(zupruefendeDokumente, "FMZOLL")
Dim dtFehlendeDOKS = Datenarchiv_DOKS.Clone()
Dim listOfSources As New List(Of String)
Dim listOfCOLL_DAID As New List(Of Integer)
If Datenarchiv_DOKS.Rows.Count > 0 Then
@@ -194,13 +198,16 @@ Public Class usrCntlDatenarchiv
If r.Item("coll_pfad") <> "" Then
If Not System.IO.File.Exists(r.Item("coll_pfad")) Then
dtFehlendeDOKS.ImportRow(r)
lblfehlendeDokumente.Text = "fehlende Doks.: " & dtFehlendeDOKS.Rows.Count
Me.Refresh()
If dtFehlendeDOKS.Rows.Count >= 10000 Then Exit For
lblfehlendeDokumente.Text = "fehlende DOK.: " & dtFehlendeDOKS.Rows.Count
addToLlist(listOfSources, listOfCOLL_DAID, r)
'Me.Refresh()
If dtFehlendeDOKS.Rows.Count >= 1000 Then Exit For
End If
End If
lblWorkingArea.Text = "geprüft DOK.: : " & Datenarchiv_DOKS.Rows.IndexOf(r) & "/" & Datenarchiv_DOKS.Rows.Count
Me.Refresh()
Next
@@ -209,9 +216,53 @@ Public Class usrCntlDatenarchiv
MsgBox("Es existieren " & dtFehlendeDOKS.Rows.Count & " Datenarchiv-Datensätze, die kein zugeordnetes Dokument besitzen!")
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtFehlendeDOKS,,,,, True,,, True)
Dim deleted As Boolean = False
If vbYes = MsgBox("Sollen diese Datenarchiveinträge gelöscht werden?" & vbNewLine & "Bitte vorher Excelliste prüfen!", vbYesNo) Then
Dim Where As String = ""
For Each DAID In listOfCOLL_DAID
Where &= DAID & ","
Next
Where = Where.Substring(0, Where.Length - 1)
deleted = SQL.doSQL("DELETE FROM [tblDatenarchiv_Collection] WHERE [coll_daId] in (" & Where & ")", "FMZOLL")
deleted = SQL.doSQL("DELETE FROM [tblDatenarchiv] WHERE [da_id] in (" & Where & ")", "FMZOLL")
If deleted Then
For Each source In listOfSources
'Hier muss die DA-ID in der verknüpften Tabelle auf NULL gesetzt werden!
Select Case source
Case "AVISO_ANHAENGE" : SQL.doSQL("UPDATE tblAvisoAnhaenge set tblAvisoAnhaenge.anh_docId = NULL where tblAvisoAnhaenge.anh_docId in (" & Where & ")", "AVISO") ' -> Eintrag auch gleich löschen- > NEIN nur DA_ID laut Andreas, wegen Nachvollziehbarkeit: 05.11.2026
'Case "UID_PRUEFUNG"; EORI_PRUEFUNG -> Über AVISO-Anhänge
Case "RECHNUNGEN" : SQL.doSQL("UPDATE Rechnungsausgang set Rechnungsausgang.dsId = NULL where Rechnungsausgang.dsId in (" & Where & ")", "FMZOLL")
Case "ZUGFERD" : SQL.doSQL("UPDATE Rechnungsausgang set Rechnungsausgang.zugferdcheck_daid = NULL where Rechnungsausgang.zugferdcheck_daid in (" & Where & ")", "FMZOLL")
Case "CREDITSAFE" : SQL.doSQL("UPDATE tblBonitaetsauskunft set tblBonitaetsauskunft.ba_datenarchivId = NULL where tblBonitaetsauskunft.ba_datenarchivId in (" & Where & ")", "FMZOLL")
'3x weil 3 versch. Felder!
Case "VOLLMACHTEN"
SQL.doSQL("UPDATE tblKundenVollmachten set tblKundenVollmachten.kdvm_datenarchivId = NULL where tblKundenVollmachten.kdvm_datenarchivId in (" & Where & ")", "FMZOLL")
SQL.doSQL("UPDATE tblKundenVollmachten set tblKundenVollmachten.kdvm_emailId = NULL where tblKundenVollmachten.kdvm_emailId in (" & Where & ")", "FMZOLL")
SQL.doSQL("UPDATE tblKundenVollmachten set tblKundenVollmachten.kdvm_datenarchivId_2 = NULL where tblKundenVollmachten.kdvm_datenarchivId_2 in (" & Where & ")", "FMZOLL")
'MDM
Case "USTVA" : SQL.doSQL("UPDATE tblUStVPositionen set tblUStVPositionen.UStVPo_daId = NULL where UStVPo_daId_loeschbar = 1 AND tblUStVPositionen.UStVPo_daId in (" & Where & ")", "FMZOLL")
Case "USTVERS" : SQL.doSQL("UPDATE tblUStVErstattung set tblUStVErstattung.UStVEr_daId = NULL where tblUStVErstattung.UStVEr_daId in (" & Where & ")", "FMZOLL")
End Select
Next
End If
If vbYes = MsgBox("Sollen diese Datenarchiveinträge gelöscht werden?", vbYesNo) Then
If deleted Then
MsgBox("Daten wurden erfolgreich bereinigt!")
Else
MsgBox("Fehler beim Bereinigen der Daten!")
End If
End If
@@ -227,4 +278,53 @@ Public Class usrCntlDatenarchiv
End Sub
Private Sub addToLlist(listOfSources As List(Of String), listOfCOLL_DAID As List(Of Integer), r As DataRow)
Dim da_id As Integer
If Not IsDBNull(r.Item("coll_daId")) AndAlso Integer.TryParse(Convert.ToString(r.Item("coll_daId")).Trim(), da_id) Then
If Not listOfCOLL_DAID.Contains(da_id) Then
listOfCOLL_DAID.Add(da_id)
End If
End If
If r.Item("coll_pfad").ToString.Contains("AVISO_ANHAENGE") Then
If Not listOfSources.Contains("AVISO_ANHAENGE") Then listOfSources.Add("AVISO_ANHAENGE")
ElseIf r.Item("coll_pfad").ToString.Contains("RECHNUNGEN") Then
If Not listOfSources.Contains("RECHNUNGEN") Then listOfSources.Add("RECHNUNGEN")
ElseIf r.Item("coll_pfad").ToString.Contains("CHAT_ANHAENGE") Then
If Not listOfSources.Contains("CHAT_ANHAENGE") Then listOfSources.Add("CHAT_ANHAENGE")
ElseIf r.Item("coll_pfad").ToString.Contains("VOLLMACHTEN") Then
If Not listOfSources.Contains("VOLLMACHTEN") Then listOfSources.Add("VOLLMACHTEN")
ElseIf r.Item("coll_pfad").ToString.Contains("CREDITSAFE") Then
If Not listOfSources.Contains("CREDITSAFE") Then listOfSources.Add("CREDITSAFE")
ElseIf r.Item("coll_pfad").ToString.Contains("ZUGFERD") Then
If Not listOfSources.Contains("ZUGFERD") Then listOfSources.Add("ZUGFERD")
ElseIf r.Item("coll_pfad").ToString.Contains("KD_VERTRÄGE") Then
If Not listOfSources.Contains("KD_VERTRÄGE") Then listOfSources.Add("KD_VERTRÄGE")
ElseIf r.Item("coll_pfad").ToString.Contains("ZOLLDATEN") AndAlso r.Item("coll_pfad").ToString.Contains("DAKOSY") Then
If Not listOfSources.Contains("ZOLLDATEN") Then listOfSources.Add("ZOLLDATEN_DAKOSY")
ElseIf r.Item("coll_pfad").ToString.Contains("UID_PRUEFUNG") Then
If Not listOfSources.Contains("UID_PRUEFUNG") Then listOfSources.Add("UID_PRUEFUNG")
ElseIf r.Item("coll_pfad").ToString.Contains("EORI_PRUEFUNG") Then
If Not listOfSources.Contains("EORI_PRUEFUNG") Then listOfSources.Add("EORI_PRUEFUNG")
End If
'MDM-Spezifisch
If r.Item("coll_pfad").ToString.Contains("USTVERS_") AndAlso r.Item("coll_pfad").ToString.Contains("MDM") Then
If Not listOfSources.Contains("USTVERS_") Then listOfSources.Add("USTVERS")
End If
If r.Item("coll_pfad").ToString.Contains("USTVA_") AndAlso r.Item("coll_pfad").ToString.Contains("MDM") Then
If Not listOfSources.Contains("USTVA_") Then listOfSources.Add("USTVA")
End If
End Sub
End Class