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

@@ -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