You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

211 lines
10 KiB

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Public Class frmSBEdit
#Region "Deklarationen"
Public sb As edokadb.clsEdex_sb_serienbrief
Private EmpfData As New DataTable
Public ResultatDaten As New DataTable
#End Region
Sub New(ByRef serienbrief As edokadb.clsEdex_sb_serienbrief, ByRef daten As DataTable)
Me.InitializeComponent()
Me.sb = serienbrief
Me.EmpfData = daten.Copy
Me.ResultatDaten = daten.Copy
End Sub
Private Sub frmSBEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Me.txtStatus.Text = Me.sb.iStatus.Value.ToString
Me.txtfehlerhaft.Text = Me.sb.iFehlerhaft.Value.ToString
Me.txtinbearbeitung.Text = Me.sb.iInBearbeitung.Value.ToString
Me.txterstellt.Text = Me.sb.iErstellt.Value.ToString
Me.txtgedruckt.Text = Me.sb.iGedruckt.Value.ToString
Me.txtbestätigt.Text = Me.sb.iBestaetigt.Value.ToString
Me.txtausgelöst.Text = Me.sb.iAusgeloest.Value.ToString
Me.txtBLDossier.Text = Me.sb.iBldossier.Value.ToString
Me.empflist.DataSource = Me.EmpfData
Me.empflist.DataMember = Me.EmpfData.TableName
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click
Me.sb.iStatus = New SqlInt32(CType(Me.txtStatus.Text, Int32))
Me.sb.iFehlerhaft = New SqlInt32(CType(Me.txtfehlerhaft.Text, Int32))
Me.sb.iInBearbeitung = New SqlInt32(CType(Me.txtinbearbeitung.Text, Int32))
Me.sb.iErstellt = New SqlInt32(CType(Me.txterstellt.Text, Int32))
Me.sb.iGedruckt = New SqlInt32(CType(Me.txtgedruckt.Text, Int32))
Me.sb.iBestaetigt = New SqlInt32(CType(Me.txtbestätigt.Text, Int32))
Me.sb.iAusgeloest = New SqlInt32(CType(Me.txtausgelöst.Text, Int32))
Me.sb.iBldossier = New SqlInt32(CType(Me.txtBLDossier.Text, Int32))
Me.ResultatDaten.Clear()
Me.ResultatDaten = Me.EmpfData.Copy
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
End Sub
Private Sub StatusEmpfängerlisteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusEmpfängerlisteToolStripMenuItem.Click
Dim res As String = "-99"
res = InputBox("Status der Einträge in der Empängerliste:", "Status Empfängerliste setzen")
If res <> "-99" Then
For Each dr As DataRow In Me.EmpfData.Rows
dr.Item("Status") = res
Next
End If
End Sub
Private Sub DruckstapelLöschenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckstapelLöschenToolStripMenuItem.Click
If MsgBox("Es werden alle Druckstapel gelöscht. Die Löschung kann nicht mehr rückgängig gemacht werde. Fortfahren?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Druckstapel löschen") = MsgBoxResult.Yes Then
set_druckjobstatus(3, Me.sb.iSerienbriefnr.Value)
End If
End Sub
Private Function set_druckjobstatus(ByVal status As Integer, ByVal serienbriefnr As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Dim i As Integer
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "sp_edex_sb_set_druckjobstatus"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@druckjobnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status))
scmCmdToExecute.Parameters.Add(New SqlParameter("@serienbriefnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, serienbriefnr))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
Throw New Exception("sp_check_dokumentreaktivierung::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
Private Sub DokumentePruefenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DokumentePruefenToolStripMenuItem.Click
Try
Cursor = Cursors.WaitCursor
Dim i As Integer
Dim tmpdata As New DataTable
Dim errorstring As String = "Folgende Dokumente sind nicht im EDOKA:"
Dim dok As New edokadb.clsDokument
dok.cpMainConnectionProvider = Globals.conn
For i = 0 To EmpfData.Rows.Count - 1
tmpdata.Rows.Clear()
dok.sDokumentid = New SqlString(CType(EmpfData.Rows(i).Item("Dokumentid"), String))
tmpdata = dok.SelectOne()
If tmpdata.Rows.Count = 0 Then
errorstring = errorstring + vbCrLf + EmpfData.Rows(i).Item("Partnernr").ToString + ": " + EmpfData.Rows(i).Item("Dokumentid").ToString
End If
Next
tmpdata.Dispose()
dok.Dispose()
If errorstring <> "Folgende Dokumente sind nicht im EDOKA:" Then
MsgBox(errorstring, MsgBoxStyle.Critical)
Else
MsgBox("Alle Dokumente im EDOKA vorhanden.")
End If
Catch ex As Exception
MsgBox("Bei der Prüfung ist ein Fehler aufgetreten:" + ex.Message)
Cursor = Cursors.Default
End Try
End Sub
Private Sub IndexdatenFürMarkierteDatensätzeGenerierenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IndexdatenFürMarkierteDatensätzeGenerierenToolStripMenuItem.Click
If Not IO.File.Exists(Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\EDKB08Struktur.xml") Then
MsgBox("Die Datei 'EDKB08Struktur.xml' muss für diesen Vorgang im Verzeichnis " + Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + " zur Verfügung stehen.", MsgBoxStyle.Critical)
Exit Sub
End If
Dim importdata As New DataSet()
importdata.ReadXml(Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\EDKB08Struktur.xml")
importdata.Tables(0).Rows.Clear()
importdata.Tables(0).Columns.Add("BLKunde")
importdata.Tables(0).Columns.Add("Dokumentidbdr")
importdata.Tables(0).Columns.Add("Dokumentid")
importdata.Tables(0).Columns.Add("Bezeichnung")
Dim i As Integer = 0
Dim s As String = ""
Dim row As Long
Dim col As C1.Win.C1TrueDBGrid.C1DataColumn
Dim cols As Integer, rows As Long
If Me.empflist.SelectedRows.Count = 0 Then
s = Me.empflist.Columns("Dokumentid").Text
Insert_datarow(importdata, s)
Else
For Each row In Me.empflist.SelectedRows
For Each col In Me.empflist.Columns
If col.Caption = "DOKUMENTID" Then
s = col.CellText(row)
Insert_datarow(importdata, s)
End If
Next
Next
End If
importdata.WriteXml(Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\" + Me.sb.iSerienbriefnr.Value.ToString + "_EDKB08_Import.xml")
MsgBox("Die Datei " + Globals.Applikationsdaten.Rows(0).Item("pfad_temporaer_dokumente") + "\" + Me.sb.iSerienbriefnr.Value.ToString + "_EDKB08_Import.xml mit den generierten Indexdaten wurde erstellt.")
End Sub
Private Function Insert_datarow(ByVal importdata As DataSet, ByVal dokumentid As String)
Dim i As Integer
For Each dv As DataRow In EmpfData.Rows
If dv.Item("Dokumentid") = dokumentid Then
Dim dr As DataRow
dr = importdata.Tables(0).NewRow
Try
While i < 40
dr.Item(i) = ""
i = i + 1
End While
Catch
End Try
dr.Item("Funktion") = "ADD"
dr.Item("PARTNERNR") = dv.Item("Partnernr")
dr.Item("Dokumenttypnr") = sb.iDokumenttypnr.Value
dr.Item("dateiname") = dv.Item("Dokumentid") + ".pdf"
dr.Item("Dateiformat") = "PDF"
dr.Item("Archivdatum") = Now.ToString
Dim ma As New edokadb.clsMitarbeiter
ma.cpMainConnectionProvider = Globals.conn
ma.iMitarbeiternr = New SqlInt32(CType(dv.Item("Ersteller"), Int32))
ma.SelectOne()
dr.Item("Ersteller") = ma.sTgnummer.Value.ToString
ma.Dispose()
dr.Item("HERKUNFTSAPPLIKATION") = "EDKB09"
dr.Item("Dokumentid") = dv.Item("Dokumentid")
dr.Item("Dokumentidbdr") = dv.Item("Dokumentidbdr")
'Rel. 4.1 - Nur als BL-Kunde kennzeichnen, sofern so im Serienbrief festgehalten
If sb.iBldossier.Value.ToString = "1" Then
dr.Item("BLKunde") = dv.Item("BLKUNDE")
Else
If dv.Item("BLKunde") = "1" Then
'insert_sb_bl_physiche_ablage_journal(Me.Serienbriefnr, sb.sBezeichnung.Value.ToString, get_tgnummer(dv.Item("Ersteller")), dv.Item("Partnernr"), dv.Item("DokumentID"))
End If
dr.Item("BLKunde") = "0"
End If
dr.Item("Bezeichnung") = sb.sBezeichnung.Value
dr.Item("DOKUMENTWERT2") = "Serienbriefnr;" + sb.iSerienbriefnr.ToString
importdata.Tables(0).Rows.Add(dr)
End If
Next
End Function
End Class