Update Akonto bei PADM
This commit is contained in:
@@ -1,410 +1,522 @@
|
||||
Imports System.Data.Sql
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Data.SqlTypes
|
||||
Imports System.IO
|
||||
Imports DevComponents.AdvTree
|
||||
|
||||
Public Class clsDok
|
||||
|
||||
Dim dbdokumente As New clsDB
|
||||
Dim m_stream As MemoryStream
|
||||
Property Documentstream As MemoryStream
|
||||
Get
|
||||
Return m_stream
|
||||
|
||||
End Get
|
||||
Set(value As MemoryStream)
|
||||
m_stream = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "Dokument Save Get"
|
||||
|
||||
Public Function Save_Document(ByVal Dokumentnr As Integer, ByVal Filename As String) As Boolean
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from dms_dokument where nreintrag =" + Str(Dokumentnr), Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read)
|
||||
Dim mydata(fs.Length) As Byte
|
||||
Try
|
||||
fs.Read(mydata, 0, fs.Length)
|
||||
fs.Close()
|
||||
|
||||
Connection.ConnectionString = My.Settings.ConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
Return False
|
||||
Else
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
myRow.Item(14) = mydata
|
||||
DA.Update(ds, "Dokument")
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
Return False
|
||||
Finally
|
||||
fs = Nothing
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Save_Vorlage(ByVal Dokumentnr As Integer, ByVal Filename As String) As Boolean
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from dms_vorlage where nreintrag =" + Str(Dokumentnr), Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read)
|
||||
Dim mydata(fs.Length) As Byte
|
||||
Try
|
||||
fs.Read(mydata, 0, fs.Length)
|
||||
fs.Close()
|
||||
|
||||
Connection.ConnectionString = My.Settings.ConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
Return False
|
||||
Else
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
myRow.Item(8) = mydata
|
||||
DA.Update(ds, "Dokument")
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
Return False
|
||||
Finally
|
||||
fs = Nothing
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Function Get_Dokument(ByVal DokumentNr As Integer, Optional destdir As String = "", Optional WithTimeStamp As Boolean = False, Optional DeleteDestFile As Boolean = False) As String
|
||||
Dim Filename As String = My.Settings.TempPath
|
||||
If destdir <> "" Then Filename = destdir
|
||||
If Right(Filename, 1) <> "\" Then Filename = Filename + "\"
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From dms_Dokument where nreintrag=" + Str(DokumentNr), connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(14)
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
|
||||
If WithTimeStamp = True Then
|
||||
Filename = Filename + Format(Now, "yyyyMMddHHmmss") + "_"
|
||||
End If
|
||||
Filename = Filename + System.IO.Path.GetFileName(myRow.Item(4))
|
||||
If System.IO.File.Exists(Filename) Then
|
||||
System.IO.File.Delete(Filename)
|
||||
End If
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return ""
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Filename
|
||||
End Function
|
||||
|
||||
Public Function Get_Vorlage(ByVal DokumentNr As Integer, ByVal Filename As String) As String
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From dms_vorlage where nreintrag=" + Str(DokumentNr), connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(8)
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
If System.IO.File.Exists(Filename) Then
|
||||
System.IO.File.Delete(Filename)
|
||||
End If
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return ""
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Filename
|
||||
End Function
|
||||
|
||||
|
||||
Public Function Get_Dokument_stram(ByVal DokumentNr As Integer) As MemoryStream
|
||||
Dim Filename As String = My.Settings.TempPath
|
||||
If Right(Filename, 1) <> "\" Then Filename = Filename + "\"
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From dms_Dokument where nreintrag=" + Str(DokumentNr), connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(14)
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
Dim ms As New MemoryStream(MyData)
|
||||
|
||||
Return ms
|
||||
|
||||
Filename = Filename + System.IO.Path.GetFileName(myRow.Item(4))
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return Nothing
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Nothing
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
#Region "Tree"
|
||||
Public Function LoadTree(ByRef Tree As DevComponents.AdvTree.AdvTree)
|
||||
Dim db As New clsDB
|
||||
Try
|
||||
db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1 order by sort, bezeichnung ")
|
||||
If db.dsDaten.Tables(0).Rows.Count = 0 Then db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1")
|
||||
Catch
|
||||
db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1")
|
||||
|
||||
End Try
|
||||
|
||||
Load_Treeview(db.dsDaten, Tree)
|
||||
db.Dispose()
|
||||
Tree.ExpandAll()
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Load_Treeview(ByVal oSourceData As DataSet, ByRef tree As AdvTree)
|
||||
If Not (oSourceData Is Nothing) Then
|
||||
Dim oView As DataView = oSourceData.Tables(0).DefaultView
|
||||
Dim oTable As DataTable = oView.Table
|
||||
Dim oDS As DataSet = New DataSet()
|
||||
oDS.Tables.Add(oTable.Copy())
|
||||
|
||||
If oDS.Relations.Contains("SelfRefenceRelation") = False Then
|
||||
oDS.Relations.Add("SelfRefenceRelation",
|
||||
oDS.Tables(0).Columns("eintragnr"),
|
||||
oDS.Tables(0).Columns("parentid"))
|
||||
End If
|
||||
oTable.Dispose()
|
||||
oTable = Nothing
|
||||
LoadTreeView(oDS, tree)
|
||||
oDS.Dispose()
|
||||
oDS = Nothing
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Tree aufbauen
|
||||
''' </summary>
|
||||
''' <param name="oDS"></param>
|
||||
''' <param name="oTreeview"></param>
|
||||
''' <remarks></remarks>
|
||||
Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As AdvTree)
|
||||
'Dim oTreeView As TreeView = New TreeView()
|
||||
Dim oDataRow As DataRow
|
||||
For Each oDataRow In oDS.Tables(0).Rows
|
||||
If Not oDataRow.IsNull("Parentid") Then
|
||||
If oDataRow.Item("Parentid") = 0 Then
|
||||
Dim oNode As New DevComponents.AdvTree.Node
|
||||
oNode.Text = oDataRow("Bezeichnung").ToString()
|
||||
oNode.Tag = oDataRow("eintragnr").ToString
|
||||
oNode.ImageIndex = 0
|
||||
oNode.ImageIndex = 0
|
||||
oTreeview.Nodes.Add(oNode)
|
||||
RecursivelyLoadTree(oDataRow, oNode)
|
||||
End If
|
||||
End If
|
||||
Next oDataRow
|
||||
oDS.Dispose()
|
||||
oDS = Nothing
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Child-Nodes hinzufügen
|
||||
''' </summary>
|
||||
''' <param name="oDataRow"></param>
|
||||
''' <param name="oNode"></param>
|
||||
''' <remarks></remarks>
|
||||
Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node)
|
||||
Dim oChildRow As DataRow
|
||||
For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation")
|
||||
Dim oChildNode As New DevComponents.AdvTree.Node()
|
||||
oChildNode.Text = oChildRow("Bezeichnung").ToString()
|
||||
oChildNode.Tag = oChildRow("eintragnr").ToString()
|
||||
If oChildRow("eintragnr") = 0 Then
|
||||
oChildNode.ImageIndex = 0
|
||||
oChildNode.ImageIndex = 0
|
||||
Else
|
||||
oChildNode.ImageIndex = 1
|
||||
oChildNode.ImageIndex = 1
|
||||
End If
|
||||
oNode.Nodes.Add(oChildNode)
|
||||
RecursivelyLoadTree(oChildRow, oChildNode)
|
||||
Next oChildRow
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "Datahandling"
|
||||
|
||||
Public Function Update_Grid(ByVal Strukturelement As Integer, ByVal Keyvalue As Integer, ByRef c1dokumente As C1.Win.C1TrueDBGrid.C1TrueDBGrid)
|
||||
dbdokumente.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where dms_strukturnr=" + Strukturelement.ToString + " and keyvalue=" + Keyvalue.ToString + " and aktiv=1 order by erstellt_am desc")
|
||||
c1dokumente.DataSource = Nothing
|
||||
c1dokumente.DataSource = dbdokumente.dsDaten.Tables(0)
|
||||
c1dokumente.DataMember = dbdokumente.dsDaten.Tables(0).TableName
|
||||
Dim spalten As New Tabellenspalte
|
||||
spalten.Spaltentitel_aktualisieren(c1dokumente, "DMS_Dokument", dbdokumente.dsDaten.Tables(0))
|
||||
End Function
|
||||
|
||||
Public Function Create_Doc(ByVal Strukturelement As Integer, ByVal Bezeichnung As String, ByVal Path As String, ByVal Partnernr As Integer, Optional nrfaktura As Integer = 0)
|
||||
Dim dir As String
|
||||
Dim db1 As New clsDB
|
||||
db1.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=1")
|
||||
Dim db2 As New clsDB
|
||||
db2.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=2")
|
||||
dir = db2.dsDaten.Tables(0).Rows(0).Item(2)
|
||||
|
||||
dbdokumente.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where nreintrag=-1")
|
||||
Dim dr As DataRow
|
||||
dr = dbdokumente.dsDaten.Tables(0).NewRow
|
||||
|
||||
dr.Item(1) = Strukturelement
|
||||
dr.Item(2) = Bezeichnung
|
||||
dr.Item(3) = ""
|
||||
dr.Item(4) = Path
|
||||
dr.Item(5) = Now
|
||||
dr.Item(6) = Now
|
||||
dr.Item(7) = Globals.ActUser
|
||||
dr.Item(8) = True
|
||||
dr.Item(9) = db1.dsDaten.Tables(0).Rows(0).Item(2)
|
||||
If UCase(db1.dsDaten.Tables(0).Rows(0).Item(2)) = "FALSE" Then
|
||||
dr.Item(4) = dir + System.IO.Path.GetFileName(Path)
|
||||
End If
|
||||
dr.Item(10) = Now
|
||||
dr.Item(11) = False
|
||||
dr.Item(12) = ""
|
||||
dr.Item(13) = Partnernr
|
||||
dr.Item(15) = nrfaktura
|
||||
dbdokumente.dsDaten.Tables(0).Rows.Add(dr)
|
||||
dbdokumente.Update_Data()
|
||||
If db1.dsDaten.Tables(0).Rows(0).Item(2) = "True" Then
|
||||
dbdokumente.Get_Tabledata("Dokument", "", "Select top 1 * from dms_dokument order by nreintrag desc")
|
||||
Dim dok As New clsDok
|
||||
dok.Save_Document(dbdokumente.dsDaten.Tables(0).Rows(0).Item(0), Path)
|
||||
Else
|
||||
If Not System.IO.Directory.Exists(dir) Then
|
||||
System.IO.Directory.CreateDirectory(dir)
|
||||
End If
|
||||
System.IO.File.Copy(Path, dir + System.IO.Path.GetFileName(Path))
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Sub Delete_Doks(ByVal nrbehandlung As String)
|
||||
Dim db As New clsDB
|
||||
Dim db1 As New clsDB
|
||||
Try
|
||||
Dim Hauptfaktura As Integer
|
||||
db.Get_Tabledata("Doks", "", "Select nrhauptfaktura from faktura where nrbehandlung=" + nrbehandlung.ToString + " order by erstellt_am desc")
|
||||
Hauptfaktura = db.dsDaten.Tables(0).Rows(0).Item(0)
|
||||
db.Get_Tabledata("Doks", "", "Select * from dms_dokument where nrfaktura=" + Hauptfaktura.ToString + " and aktiv=1")
|
||||
If db.dsDaten.Tables(0).Rows.Count > 0 Then
|
||||
If MsgBox("Möchten Sie die vorhandenen Dokumente löschen?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
|
||||
db.Get_Tabledata("fakturen", "", "Select nrfaktura from faktura where nrhauptfaktura=" + Hauptfaktura.ToString + " order by erstellt_am desc")
|
||||
For Each r As DataRow In db.dsDaten.Tables(0).Rows
|
||||
db1.Get_Tabledata("doks", "", "Select * from dms_dokument where nrfaktura=" + r.Item(0).ToString)
|
||||
Delete_Dok(db1.dsDaten.Tables(0).Rows(0).Item(0))
|
||||
Next
|
||||
End If
|
||||
Catch
|
||||
Finally
|
||||
db.Dispose()
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub Delete_Dok(ByVal Dokumentid As String)
|
||||
Dim db As New clsDB
|
||||
Dim db1 As New clsDB
|
||||
db.Get_Tabledata("DMS_Dokument", "where nreintrag=" + Dokumentid, "")
|
||||
db.dsDaten.Tables(0).Rows(0).Item("Aktiv") = 0
|
||||
db.dsDaten.Tables(0).Rows(0).Item("mutiert_am") = Now
|
||||
db.dsDaten.Tables(0).Rows(0).Item("mutierer") = Globals.ActUser
|
||||
db.Update_Data()
|
||||
db1.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=1")
|
||||
If UCase(db1.dsDaten.Tables(0).Rows(0).Item(2)) = "FALSE" Then
|
||||
Try
|
||||
System.IO.File.Delete(db.dsDaten.Tables(0).Rows(0).Item("Pfad"))
|
||||
Catch ex As Exception
|
||||
MsgBox("Die Datei '" + db.dsDaten.Tables(0).Rows(0).Item("Pfad") + " konnte nicht gelöscht werden.", vbExclamation)
|
||||
End Try
|
||||
End If
|
||||
db.Dispose()
|
||||
db1.Dispose()
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
Imports System.Data.Sql
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Data.SqlTypes
|
||||
Imports System.IO
|
||||
Imports DevComponents.AdvTree
|
||||
Imports Syncfusion.DocIO
|
||||
Imports Syncfusion.DocIO.DLS
|
||||
Imports Syncfusion.DocToPDFConverter
|
||||
Imports Syncfusion.OfficeChart
|
||||
Imports Syncfusion.OfficeChartToImageConverter
|
||||
Imports Syncfusion.Pdf
|
||||
|
||||
Public Class clsDok
|
||||
|
||||
Dim dbdokumente As New clsDB
|
||||
Dim m_stream As MemoryStream
|
||||
Property Documentstream As MemoryStream
|
||||
Get
|
||||
Return m_stream
|
||||
|
||||
End Get
|
||||
Set(value As MemoryStream)
|
||||
m_stream = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "Dokument Save Get"
|
||||
|
||||
Public Function Save_Document(ByVal Dokumentnr As Integer, ByVal Filename As String) As Boolean
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from dms_dokument where nreintrag =" + Str(Dokumentnr), Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read)
|
||||
Dim mydata(fs.Length) As Byte
|
||||
Try
|
||||
fs.Read(mydata, 0, fs.Length)
|
||||
fs.Close()
|
||||
|
||||
Connection.ConnectionString = My.Settings.ConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
Return False
|
||||
Else
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
myRow.Item(14) = mydata
|
||||
DA.Update(ds, "Dokument")
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
Return False
|
||||
Finally
|
||||
fs = Nothing
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Save_Vorlage(ByVal Dokumentnr As Integer, ByVal Filename As String) As Boolean
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from dms_vorlage where nreintrag =" + Str(Dokumentnr), Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read)
|
||||
Dim mydata(fs.Length) As Byte
|
||||
Try
|
||||
fs.Read(mydata, 0, fs.Length)
|
||||
fs.Close()
|
||||
|
||||
Connection.ConnectionString = My.Settings.ConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
Return False
|
||||
Else
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
myRow.Item(8) = mydata
|
||||
DA.Update(ds, "Dokument")
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
Return False
|
||||
Finally
|
||||
fs = Nothing
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Function Get_Dokument(ByVal DokumentNr As Integer, Optional destdir As String = "", Optional WithTimeStamp As Boolean = False, Optional DeleteDestFile As Boolean = False) As String
|
||||
Dim Filename As String = My.Settings.TempPath
|
||||
If destdir <> "" Then Filename = destdir
|
||||
If Right(Filename, 1) <> "\" Then Filename = Filename + "\"
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From dms_Dokument where nreintrag=" + Str(DokumentNr), connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(14)
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
|
||||
If WithTimeStamp = True Then
|
||||
Filename = Filename + Format(Now, "yyyyMMddHHmmss") + "_"
|
||||
End If
|
||||
Filename = Filename + System.IO.Path.GetFileName(myRow.Item(4))
|
||||
If System.IO.File.Exists(Filename) Then
|
||||
System.IO.File.Delete(Filename)
|
||||
End If
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return ""
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Filename
|
||||
End Function
|
||||
|
||||
Public Function Get_Vorlage(ByVal DokumentNr As Integer, ByVal Filename As String) As String
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From dms_vorlage where nreintrag=" + Str(DokumentNr), connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(8)
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
If System.IO.File.Exists(Filename) Then
|
||||
System.IO.File.Delete(Filename)
|
||||
End If
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return ""
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Filename
|
||||
End Function
|
||||
|
||||
|
||||
Public Function Get_Dokument_stram(ByVal DokumentNr As Integer) As MemoryStream
|
||||
Dim Filename As String = My.Settings.TempPath
|
||||
If Right(Filename, 1) <> "\" Then Filename = Filename + "\"
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From dms_Dokument where nreintrag=" + Str(DokumentNr), connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item(14)
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
Dim ms As New MemoryStream(MyData)
|
||||
|
||||
Return ms
|
||||
|
||||
Filename = Filename + System.IO.Path.GetFileName(myRow.Item(4))
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return Nothing
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Nothing
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
Function convert_to_pdf(filename As String) As String
|
||||
Dim xwordDocument As New WordDocument(filename, FormatType.Docx)
|
||||
xwordDocument.ChartToImageConverter = New ChartToImageConverter()
|
||||
xwordDocument.ChartToImageConverter.ScalingMode = ScalingMode.Normal
|
||||
|
||||
Dim converter As New DocToPDFConverter()
|
||||
converter.Settings.EnableFastRendering = True
|
||||
converter.Settings.EmbedFonts = True
|
||||
converter.Settings.EmbedCompleteFonts = True
|
||||
converter.Settings.AutoTag = True
|
||||
'Converts Word document into PDF document
|
||||
Dim xpdfDocument As PdfDocument
|
||||
xpdfDocument = converter.ConvertToPDF(xwordDocument)
|
||||
xpdfDocument.Save(filename + ".pdf")
|
||||
xpdfDocument.Close(True)
|
||||
xwordDocument.Close()
|
||||
Return filename + ".pdf"
|
||||
End Function
|
||||
|
||||
Public Function Save_Akonto_Document(AkontoID As Integer, ByVal Filename As String) As Boolean
|
||||
Try
|
||||
If UCase(Path.GetExtension(Filename)) = ".DOCX" Then
|
||||
Filename = convert_to_pdf(Filename)
|
||||
End If
|
||||
|
||||
Dim Connection As New SqlConnection()
|
||||
Dim DA As New SqlDataAdapter("select * from akonto where id=" + AkontoID.ToString, Connection)
|
||||
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
||||
Dim ds As New DataSet()
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read)
|
||||
Dim mydata(fs.Length) As Byte
|
||||
Try
|
||||
fs.Read(mydata, 0, fs.Length)
|
||||
fs.Close()
|
||||
|
||||
Connection.ConnectionString = My.Settings.ConnectionString
|
||||
Connection.Open()
|
||||
DA.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
If ds.Tables(0).Rows.Count = 0 Then
|
||||
Return False
|
||||
Else
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
myRow.Item("rechnungsdatei") = mydata
|
||||
DA.Update(ds, "Dokument")
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
Return False
|
||||
Finally
|
||||
fs = Nothing
|
||||
cb = Nothing
|
||||
ds = Nothing
|
||||
DA = Nothing
|
||||
Connection.Close()
|
||||
Connection = Nothing
|
||||
End Try
|
||||
Catch
|
||||
End Try
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Get_Aktono_Dokument(ByVal Akontoid As Integer) As String
|
||||
Dim Filename As String = My.Settings.TempPath
|
||||
If Right(Filename, 1) <> "\" Then Filename = Filename + "\"
|
||||
|
||||
Dim connection As New SqlConnection()
|
||||
Dim da As New SqlDataAdapter("Select * From akonto where id=" + Akontoid.ToString, connection)
|
||||
Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da)
|
||||
Dim ds As New DataSet()
|
||||
Try
|
||||
connection.ConnectionString = My.Settings.ConnectionString
|
||||
connection.Open()
|
||||
da.Fill(ds, "Dokument")
|
||||
Dim myRow As DataRow
|
||||
myRow = ds.Tables(0).Rows(0)
|
||||
Dim MyData() As Byte
|
||||
MyData = myRow.Item("Rechnungsdatei")
|
||||
|
||||
Dim K As Long
|
||||
K = UBound(MyData)
|
||||
|
||||
Filename = Filename + Format(Now, "yyyyMMddHHmmss") + "_"
|
||||
Filename = Filename + Akontoid.ToString + ".pdf"
|
||||
If System.IO.File.Exists(Filename) Then
|
||||
System.IO.File.Delete(Filename)
|
||||
End If
|
||||
Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write)
|
||||
fs.Write(MyData, 0, K)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
Catch ex As Exception
|
||||
'MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return ""
|
||||
Finally
|
||||
connection.Close()
|
||||
connection = Nothing
|
||||
End Try
|
||||
CB = Nothing
|
||||
ds = Nothing
|
||||
da = Nothing
|
||||
Return Filename
|
||||
End Function
|
||||
|
||||
#Region "Tree"
|
||||
Public Function LoadTree(ByRef Tree As DevComponents.AdvTree.AdvTree)
|
||||
Dim db As New clsDB
|
||||
Try
|
||||
db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1 order by sort, bezeichnung ")
|
||||
If db.dsDaten.Tables(0).Rows.Count = 0 Then db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1")
|
||||
Catch
|
||||
db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1")
|
||||
|
||||
End Try
|
||||
|
||||
Load_Treeview(db.dsDaten, Tree)
|
||||
db.Dispose()
|
||||
Tree.ExpandAll()
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Load_Treeview(ByVal oSourceData As DataSet, ByRef tree As AdvTree)
|
||||
If Not (oSourceData Is Nothing) Then
|
||||
Dim oView As DataView = oSourceData.Tables(0).DefaultView
|
||||
Dim oTable As DataTable = oView.Table
|
||||
Dim oDS As DataSet = New DataSet()
|
||||
oDS.Tables.Add(oTable.Copy())
|
||||
|
||||
If oDS.Relations.Contains("SelfRefenceRelation") = False Then
|
||||
oDS.Relations.Add("SelfRefenceRelation",
|
||||
oDS.Tables(0).Columns("eintragnr"),
|
||||
oDS.Tables(0).Columns("parentid"))
|
||||
End If
|
||||
oTable.Dispose()
|
||||
oTable = Nothing
|
||||
LoadTreeView(oDS, tree)
|
||||
oDS.Dispose()
|
||||
oDS = Nothing
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Tree aufbauen
|
||||
''' </summary>
|
||||
''' <param name="oDS"></param>
|
||||
''' <param name="oTreeview"></param>
|
||||
''' <remarks></remarks>
|
||||
Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As AdvTree)
|
||||
'Dim oTreeView As TreeView = New TreeView()
|
||||
Dim oDataRow As DataRow
|
||||
For Each oDataRow In oDS.Tables(0).Rows
|
||||
If Not oDataRow.IsNull("Parentid") Then
|
||||
If oDataRow.Item("Parentid") = 0 Then
|
||||
Dim oNode As New DevComponents.AdvTree.Node
|
||||
oNode.Text = oDataRow("Bezeichnung").ToString()
|
||||
oNode.Tag = oDataRow("eintragnr").ToString
|
||||
oNode.ImageIndex = 0
|
||||
oNode.ImageIndex = 0
|
||||
oTreeview.Nodes.Add(oNode)
|
||||
RecursivelyLoadTree(oDataRow, oNode)
|
||||
End If
|
||||
End If
|
||||
Next oDataRow
|
||||
oDS.Dispose()
|
||||
oDS = Nothing
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Child-Nodes hinzufügen
|
||||
''' </summary>
|
||||
''' <param name="oDataRow"></param>
|
||||
''' <param name="oNode"></param>
|
||||
''' <remarks></remarks>
|
||||
Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node)
|
||||
Dim oChildRow As DataRow
|
||||
For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation")
|
||||
Dim oChildNode As New DevComponents.AdvTree.Node()
|
||||
oChildNode.Text = oChildRow("Bezeichnung").ToString()
|
||||
oChildNode.Tag = oChildRow("eintragnr").ToString()
|
||||
If oChildRow("eintragnr") = 0 Then
|
||||
oChildNode.ImageIndex = 0
|
||||
oChildNode.ImageIndex = 0
|
||||
Else
|
||||
oChildNode.ImageIndex = 1
|
||||
oChildNode.ImageIndex = 1
|
||||
End If
|
||||
oNode.Nodes.Add(oChildNode)
|
||||
RecursivelyLoadTree(oChildRow, oChildNode)
|
||||
Next oChildRow
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "Datahandling"
|
||||
|
||||
Public Function Update_Grid(ByVal Strukturelement As Integer, ByVal Keyvalue As Integer, ByRef c1dokumente As C1.Win.C1TrueDBGrid.C1TrueDBGrid)
|
||||
dbdokumente.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where dms_strukturnr=" + Strukturelement.ToString + " And keyvalue=" + Keyvalue.ToString + " And aktiv=1 order by erstellt_am desc")
|
||||
c1dokumente.DataSource = Nothing
|
||||
c1dokumente.DataSource = dbdokumente.dsDaten.Tables(0)
|
||||
c1dokumente.DataMember = dbdokumente.dsDaten.Tables(0).TableName
|
||||
Dim spalten As New Tabellenspalte
|
||||
spalten.Spaltentitel_aktualisieren(c1dokumente, "DMS_Dokument", dbdokumente.dsDaten.Tables(0))
|
||||
End Function
|
||||
|
||||
Public Function Create_Doc(ByVal Strukturelement As Integer, ByVal Bezeichnung As String, ByVal Path As String, ByVal Partnernr As Integer, Optional nrfaktura As Integer = 0)
|
||||
Dim dir As String
|
||||
Dim db1 As New clsDB
|
||||
db1.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=1")
|
||||
Dim db2 As New clsDB
|
||||
db2.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=2")
|
||||
dir = db2.dsDaten.Tables(0).Rows(0).Item(2)
|
||||
|
||||
dbdokumente.Get_Tabledata("Dokumente", "", "Select * from dms_dokument where nreintrag=-1")
|
||||
Dim dr As DataRow
|
||||
dr = dbdokumente.dsDaten.Tables(0).NewRow
|
||||
|
||||
dr.Item(1) = Strukturelement
|
||||
dr.Item(2) = Bezeichnung
|
||||
dr.Item(3) = ""
|
||||
dr.Item(4) = Path
|
||||
dr.Item(5) = Now
|
||||
dr.Item(6) = Now
|
||||
dr.Item(7) = Globals.ActUser
|
||||
dr.Item(8) = True
|
||||
dr.Item(9) = db1.dsDaten.Tables(0).Rows(0).Item(2)
|
||||
If UCase(db1.dsDaten.Tables(0).Rows(0).Item(2)) = "FALSE" Then
|
||||
dr.Item(4) = dir + System.IO.Path.GetFileName(Path)
|
||||
End If
|
||||
dr.Item(10) = Now
|
||||
dr.Item(11) = False
|
||||
dr.Item(12) = ""
|
||||
dr.Item(13) = Partnernr
|
||||
dr.Item(15) = nrfaktura
|
||||
dbdokumente.dsDaten.Tables(0).Rows.Add(dr)
|
||||
dbdokumente.Update_Data()
|
||||
If db1.dsDaten.Tables(0).Rows(0).Item(2) = "True" Then
|
||||
dbdokumente.Get_Tabledata("Dokument", "", "Select top 1 * from dms_dokument order by nreintrag desc")
|
||||
Dim dok As New clsDok
|
||||
dok.Save_Document(dbdokumente.dsDaten.Tables(0).Rows(0).Item(0), Path)
|
||||
Else
|
||||
If Not System.IO.Directory.Exists(dir) Then
|
||||
System.IO.Directory.CreateDirectory(dir)
|
||||
End If
|
||||
System.IO.File.Copy(Path, dir + System.IO.Path.GetFileName(Path))
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Sub Delete_Doks(ByVal nrbehandlung As String)
|
||||
Dim db As New clsDB
|
||||
Dim db1 As New clsDB
|
||||
Try
|
||||
Dim Hauptfaktura As Integer
|
||||
db.Get_Tabledata("Doks", "", "Select nrhauptfaktura from faktura where nrbehandlung=" + nrbehandlung.ToString + " order by erstellt_am desc")
|
||||
Hauptfaktura = db.dsDaten.Tables(0).Rows(0).Item(0)
|
||||
db.Get_Tabledata("Doks", "", "Select * from dms_dokument where nrfaktura=" + Hauptfaktura.ToString + " And aktiv=1")
|
||||
If db.dsDaten.Tables(0).Rows.Count > 0 Then
|
||||
If MsgBox("Möchten Sie die vorhandenen Dokumente löschen?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
|
||||
db.Get_Tabledata("fakturen", "", "Select nrfaktura from faktura where nrhauptfaktura=" + Hauptfaktura.ToString + " order by erstellt_am desc")
|
||||
For Each r As DataRow In db.dsDaten.Tables(0).Rows
|
||||
db1.Get_Tabledata("doks", "", "Select * from dms_dokument where nrfaktura=" + r.Item(0).ToString)
|
||||
Delete_Dok(db1.dsDaten.Tables(0).Rows(0).Item(0))
|
||||
Next
|
||||
End If
|
||||
Catch
|
||||
Finally
|
||||
db.Dispose()
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub Delete_Dok(ByVal Dokumentid As String)
|
||||
Dim db As New clsDB
|
||||
Dim db1 As New clsDB
|
||||
db.Get_Tabledata("DMS_Dokument", "where nreintrag=" + Dokumentid, "")
|
||||
db.dsDaten.Tables(0).Rows(0).Item("Aktiv") = 0
|
||||
db.dsDaten.Tables(0).Rows(0).Item("mutiert_am") = Now
|
||||
db.dsDaten.Tables(0).Rows(0).Item("mutierer") = Globals.ActUser
|
||||
db.Update_Data()
|
||||
db1.Get_Tabledata("DMS_Settings", "", "Select * from dms_settings where nreintrag=1")
|
||||
If UCase(db1.dsDaten.Tables(0).Rows(0).Item(2)) = "FALSE" Then
|
||||
Try
|
||||
System.IO.File.Delete(db.dsDaten.Tables(0).Rows(0).Item("Pfad"))
|
||||
Catch ex As Exception
|
||||
MsgBox("Die Datei '" + db.dsDaten.Tables(0).Rows(0).Item("Pfad") + " konnte nicht gelöscht werden.", vbExclamation)
|
||||
End Try
|
||||
End If
|
||||
db.Dispose()
|
||||
db1.Dispose()
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user