331 lines
14 KiB
VB.net
331 lines
14 KiB
VB.net
Imports System.Windows.Documents
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class usrCntlDatenarchiv
|
|
|
|
|
|
Dim DatenarchivBind As cEasyBinding
|
|
Public table
|
|
Public BIND_DB
|
|
Private EditRow As Integer = -1
|
|
Sub New(table, BIND_DB)
|
|
Me.table = table
|
|
Me.BIND_DB = BIND_DB
|
|
InitializeComponent()
|
|
End Sub
|
|
|
|
|
|
Private Sub usrCntlDatenarchiv_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
|
|
loaddgv()
|
|
|
|
'cboPartnersystem.Items.Clear()
|
|
Dim distinctDT As DataTable = DatenarchivBind.bindingdataTable.DefaultView.ToTable(True, "Param_system")
|
|
|
|
cboPartnersystem.Items.Add(New MyListItem("", ""))
|
|
For Each d As DataRow In distinctDT.Rows
|
|
If Not cboPartnersystem.Items.Contains(d.Item(0)) Then cboPartnersystem.Items.Add(d.Item(0))
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
|
|
loaddgv()
|
|
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Function getAPIList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Param_system", cboPartnersystem._value))
|
|
|
|
Return list
|
|
|
|
End Function
|
|
|
|
Function getDatenarchivwhere() As String
|
|
|
|
Dim sqlstr = " and Param_testsystem = " & IIf(cbxTestsystem.Checked, "1 ", "0 ")
|
|
If cboPartnersystem._value <> "" Then sqlstr &= " And [Param_system] = '" & cboPartnersystem._value & "'"
|
|
|
|
Return sqlstr
|
|
End Function
|
|
|
|
|
|
Private Sub DataGridView_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView.CellDoubleClick
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Dim tmprowindex As Integer = e.RowIndex
|
|
If DataGridView.Columns(e.ColumnIndex).Name = "open" Then
|
|
|
|
If DataGridView.CurrentRow.Cells("Param_value").Value IsNot DBNull.Value AndAlso DataGridView.CurrentRow.Cells("Param_value").Value.ToString.StartsWith("\\") Then
|
|
Process.Start(DataGridView.CurrentRow.Cells("Param_value").Value)
|
|
End If
|
|
Else
|
|
|
|
End If
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub cboPartnersystem_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPartnersystem.SelectedIndexChanged
|
|
btnSuche_Click(sender, e)
|
|
End Sub
|
|
|
|
|
|
Public Sub loaddgv()
|
|
|
|
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = cbxTestsystem.Checked
|
|
|
|
Try
|
|
DatenarchivBind = New cEasyBinding(BIND_DB)
|
|
|
|
|
|
Dim sqlstr As String = ""
|
|
Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "")
|
|
|
|
|
|
DatenarchivBind.initBinding("SELECT " & TopMax & " [Param_name],[Param_value], [Param_system] FROM " & table & " WHERE 1 = 1 " & getDatenarchivwhere(), table)
|
|
|
|
DataGridView.DataSource = DatenarchivBind.bindingdataTable
|
|
|
|
|
|
With DataGridView
|
|
|
|
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
|
|
.RowHeadersVisible = False
|
|
.ReadOnly = False
|
|
'.SelectionMode = DataGridViewSelectionMode.FullRowSelect
|
|
.MultiSelect = False
|
|
|
|
|
|
For Each cc As DataGridViewColumn In .Columns
|
|
If cc.Name.ToLower.Contains("param_") Then
|
|
cc.HeaderText = cc.Name.Replace("Param_", "")
|
|
If cc.Name.ToLower.Contains("value") Then
|
|
cc.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
Else
|
|
cc.Width = 200
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
|
|
lblErgebnis.Text = "Ergebnisse: " & .RowCount
|
|
|
|
|
|
If .Columns("open") Is Nothing Then
|
|
|
|
Dim c As New DataGridViewImageColumn
|
|
c.Name = "open" : c.HeaderText = "open"
|
|
c.Image = New Bitmap(1, 1)
|
|
c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White
|
|
c.DefaultCellStyle.Tag = "open"
|
|
.Columns.Add(c)
|
|
|
|
End If
|
|
|
|
For Each r As DataGridViewRow In .Rows
|
|
|
|
If r.Cells("Param_value").Value IsNot DBNull.Value AndAlso r.Cells("Param_value").Value <> "" Then
|
|
Dim path As New System.IO.DirectoryInfo(r.Cells("Param_value").Value)
|
|
|
|
If path.Exists Then
|
|
DirectCast(r.Cells("open"), DataGridViewImageCell).Value = My.Resources.search
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
End With
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnSave.Click
|
|
|
|
If DataGridView.Columns.Count = 0 Or DataGridView.SelectedRows.Count = 0 Then 'alles gelöscht oder markierte Zeile gelöscht
|
|
DatenarchivBind.updateBinding()
|
|
Exit Sub
|
|
End If
|
|
|
|
If DataGridView.CurrentRow.Cells("Param_name").ToString <> "" AndAlso DataGridView.CurrentRow.Cells("Param_value").ToString <> "" AndAlso DataGridView.CurrentRow.Cells("Param_system").ToString <> "" AndAlso EditRow >= 0 Then
|
|
DatenarchivBind.updateBinding()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub DataGridView_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView.EditingControlShowing
|
|
EditRow = DataGridView.CurrentRow.Index
|
|
End Sub
|
|
|
|
Private Sub DataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView.SelectionChanged
|
|
If EditRow >= 0 Then
|
|
Dim new_row As Integer = EditRow
|
|
EditRow = -1
|
|
DataGridView.CurrentCell = DataGridView.Rows(new_row).Cells(
|
|
DataGridView.CurrentCell.ColumnIndex)
|
|
End If
|
|
End Sub
|
|
|
|
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 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
|
|
For Each r As DataRow In Datenarchiv_DOKS.Rows
|
|
|
|
If r.Item("coll_pfad") <> "" Then
|
|
If Not System.IO.File.Exists(r.Item("coll_pfad")) Then
|
|
dtFehlendeDOKS.ImportRow(r)
|
|
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
|
|
|
|
|
|
If dtFehlendeDOKS.Rows.Count > 0 Then
|
|
|
|
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 deleted Then
|
|
MsgBox("Daten wurden erfolgreich bereinigt!")
|
|
Else
|
|
MsgBox("Fehler beim Bereinigen der Daten!")
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
|
|
Else
|
|
|
|
MsgBox("Es wurden keine fehlenden Dokumente gefunden!")
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
|
|
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
|