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.
194 lines
7.7 KiB
194 lines
7.7 KiB
Imports System.Data
|
|
Imports System.Data.SqlClient
|
|
Imports System.Data.SqlTypes
|
|
Imports System.IO
|
|
|
|
Public Class clsImportData
|
|
#Region "Deklarationen"
|
|
Dim dsempfaenger As DataSet
|
|
Dim Serienbriefnr As Integer
|
|
Dim importdata As New DataSet()
|
|
Dim sb As edokadb.clsEdex_sb_serienbrief
|
|
Dim hasdata As Boolean = False
|
|
|
|
#End Region
|
|
|
|
#Region "öffentliche Methoden"
|
|
Public Sub New(ByRef DsEmpfaenger As DataSet, ByVal Serienbriefnr As Integer, ByVal sbdata As edokadb.clsEdex_sb_serienbrief)
|
|
Me.dsempfaenger = DsEmpfaenger
|
|
Me.Serienbriefnr = Serienbriefnr
|
|
Me.sb = sbdata
|
|
create_importdata()
|
|
End Sub
|
|
|
|
Private Sub create_importdata()
|
|
importdata.ReadXml(Globals.ApplicationPath + "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")
|
|
End Sub
|
|
|
|
Public Sub Create_Import_Data()
|
|
Dim dv As DataRow
|
|
Dim i As Integer
|
|
For i = 0 To Me.dsempfaenger.Tables(0).Rows.Count - 1
|
|
Try
|
|
dv = Me.dsempfaenger.Tables(0).Rows(i)
|
|
If dv.Item("Status") = "4" And dv.Item("Dokument_Gedruckt") <> "2" Then
|
|
dv.Item("Dokument_Gedruckt") = "2"
|
|
'dv.Item("Status") = 2
|
|
If dv.Item("partnernr") <> "" Then
|
|
Write_Import_Files(dv)
|
|
End If
|
|
End If
|
|
Catch ex1 As Exception
|
|
End Try
|
|
|
|
Next
|
|
If hasdata = True Then
|
|
importdata.WriteXml(Globals.Params.Pfad_EDKB08 + "SBImport_" + Format(Now, "yyyyMMddHHmmss") + ".ind")
|
|
Me.save_empfaenger()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Write_Import_Files(ByRef dv As DataRow)
|
|
Try
|
|
Dim dt As New edokadb.clsDokumenttyp()
|
|
dt.cpMainConnectionProvider = Globals.conn_edoka
|
|
dt.iDokumenttypnr = New SqlInt32(CType(sb.iDokumenttypnr.Value, Int32))
|
|
dt.SelectOne()
|
|
If dt.bNurnative.Value = True Then
|
|
dt.Dispose()
|
|
Exit Sub
|
|
End If
|
|
dt.Dispose()
|
|
Catch ex As Exception
|
|
Exit Sub
|
|
End Try
|
|
Dim sourcedok As String = Globals.Params.Pfad_Serienbrief_Daten + Me.Serienbriefnr.ToString + "\" + dv.Item("Dokumentid") + ".pdf"
|
|
Dim destdok As String = Globals.Params.Pfad_EDKB08 + dv.Item("Dokumentid") + ".pdf"
|
|
If IO.File.Exists(sourcedok) Then
|
|
IO.File.Copy(sourcedok, destdok, True)
|
|
Dim dr As DataRow
|
|
Dim i As Integer = 0
|
|
|
|
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
|
|
dr.Item("Ersteller") = get_tgnummer(dv.Item("Ersteller"))
|
|
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;" + Me.Serienbriefnr.ToString
|
|
importdata.Tables(0).Rows.Add(dr)
|
|
hasdata = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub insert_sb_bl_physiche_ablage_journal(ByVal sbnr As Integer, ByVal bezeichnung As String, ByVal tgnummer As String, ByVal partnernr As Integer, ByVal dokumentid As String)
|
|
Try
|
|
Dim j As New edokadb.clsSerienbrief_BL_Physiche_Ablage
|
|
j.cpMainConnectionProvider = Globals.conn_journale
|
|
j.iSerienbriefnr = New SqlInt32(CType(sbnr, Int32))
|
|
j.sBezeichnung = New SqlString(CType(bezeichnung, String))
|
|
j.sTGNumer_Ersteller = New SqlString(CType(tgnummer, String))
|
|
j.iPartnernr = New SqlInt32(CType(partnernr, Int32))
|
|
j.sDokumentid = New SqlString(CType(dokumentid, String))
|
|
j.daTimestampe = New SqlDateTime(CType(Now, DateTime))
|
|
Globals.conn_journale.OpenConnection()
|
|
j.Insert()
|
|
Globals.conn_journale.CloseConnection(True)
|
|
j.Dispose()
|
|
Catch ex As Exception
|
|
'MsgBox(ex.Message)
|
|
End Try
|
|
End Sub
|
|
Private Function get_tgnummer(ByVal mitarbeiternr As Integer) As String
|
|
Dim x As New edokadb.clsMitarbeiter
|
|
Try
|
|
x.cpMainConnectionProvider = Globals.conn_edoka
|
|
x.iMitarbeiternr = New SqlInt32(CType(mitarbeiternr, Int32))
|
|
x.SelectOne()
|
|
Return x.sTgnummer.Value
|
|
Catch
|
|
Return mitarbeiternr.ToString
|
|
Finally
|
|
x.Dispose()
|
|
End Try
|
|
End Function
|
|
Private Function save_empfaenger() As Boolean
|
|
Try
|
|
Dim dokumentname As String = Globals.Params.Pfad_Serienbrief_Daten + Me.Serienbriefnr.ToString + "_empfaenger.xml"
|
|
Me.dsempfaenger.WriteXml(dokumentname)
|
|
Dim Connection As New SqlConnection
|
|
Dim DA As New SqlDataAdapter("select * from edex_sb_empfaenger where serienbriefnr=" + Str(Me.Serienbriefnr), Connection)
|
|
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
|
Dim ds As New DataSet
|
|
Dim fs As New FileStream(dokumentname, FileMode.Open, FileAccess.Read)
|
|
Dim mydata(fs.Length) As Byte
|
|
Try
|
|
fs.Read(mydata, 0, fs.Length)
|
|
fs.Close()
|
|
Connection.ConnectionString = Globals.sConnectionString_edoka
|
|
Connection.Open()
|
|
DA.Fill(ds, "empf")
|
|
Dim myRow As DataRow
|
|
If ds.Tables(0).Rows.Count = 0 Then
|
|
'Neue Serienbrief_Empfaenger speichern
|
|
myRow = ds.Tables(0).NewRow
|
|
myRow.Item(1) = Me.Serienbriefnr
|
|
myRow.Item(2) = mydata
|
|
ds.Tables(0).Rows.Add(myRow)
|
|
DA.Update(ds, "empf")
|
|
Else
|
|
' Bestehende Empfängerliste überschreiben
|
|
myRow = ds.Tables(0).Rows(0)
|
|
myRow.Item(2) = mydata
|
|
DA.Update(ds, "empf")
|
|
End If
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
fs = Nothing
|
|
cb = Nothing
|
|
ds = Nothing
|
|
DA = Nothing
|
|
|
|
Connection.Close()
|
|
Connection = Nothing
|
|
Return True
|
|
Catch EX As Exception
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
#End Region
|
|
End Class
|