Initial commit
This commit is contained in:
193
EDKB09/Klassen/clsImportData.vb
Normal file
193
EDKB09/Klassen/clsImportData.vb
Normal file
@@ -0,0 +1,193 @@
|
||||
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
|
||||
Reference in New Issue
Block a user