289 lines
16 KiB
VB.net
289 lines
16 KiB
VB.net
Imports System.ServiceModel.Configuration
|
|
Imports Therefore.API
|
|
Public Class cTherefore
|
|
|
|
Shared Function saveFileTo_ImportFolder(Path As String, FilialeAbfertigungsNr As String, AvisoId As String, FirmaId As String, Optional deleteFileAfterImport As Boolean = False)
|
|
FilialeAbfertigungsNr = FilialeAbfertigungsNr.Replace(";", " ")
|
|
FilialeAbfertigungsNr = FilialeAbfertigungsNr.Replace("/", " ")
|
|
FilialeAbfertigungsNr = FilialeAbfertigungsNr.Replace("-", " ")
|
|
If FilialeAbfertigungsNr.Length > 30 Then FilialeAbfertigungsNr = FilialeAbfertigungsNr.ToString.Substring(0, 30)
|
|
Select Case FirmaId
|
|
Case 7
|
|
Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Atilla ab Juni 2011",, deleteFileAfterImport)
|
|
Case 21, 22, 23
|
|
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2021 UNISPED", "UNISPED\Import ab Jänner 2021 UNISPED DE", deleteFileAfterImport)
|
|
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2021 UNISPED", "Import ab Jänner 2021 UNISPED DE", deleteFileAfterImport)
|
|
|
|
Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2021 UNISPED_DE", "UNISPED Zollakten", deleteFileAfterImport)
|
|
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, 394, 394, deleteFileAfterImport)
|
|
Case 1, 11, 20, 17 ', 15
|
|
' Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import an Jänner 2019", "Import ab Jänner 2019", deleteFileAfterImport)
|
|
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2021", "Import ab Jänner 2021", deleteFileAfterImport)
|
|
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2022", "Import ab Jänner 2022", deleteFileAfterImport)
|
|
'Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2023", "Import ab Jänner 2023", deleteFileAfterImport)
|
|
Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2024", "Import ab Jänner 2024", deleteFileAfterImport)
|
|
' Return saveFileTo_ImportFolderCat(Path, FilialeAbfertigungsNr, AvisoId, "Import ab Jänner 2020", "Import ab Jänner 2020", deleteFileAfterImport)
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Shared Function getFileFromFolderCat(Path As String, FilialeAbfertigungsNr As String, AvisoId As String, Category As String, Optional Category2 As String = "", Optional deleteFileAfterImport As Boolean = False)
|
|
Try
|
|
' MsgBox("go: ")
|
|
|
|
'Dim SQL_VERAG As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
'Dim abfertNr = FilialeAbfertigungsNr
|
|
'Dim docid As String = ""
|
|
'Dim Filiale = FilialeAbfertigungsNr.Substring(0, 4)
|
|
|
|
'If Filiale = 4801 Then
|
|
' docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat17] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
'ElseIf Filiale = 5601 Then
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat393] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat394] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
'ElseIf Filiale = 5701 Then
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat395] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat397] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
'Else
|
|
' docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].TheCat1083 WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat889] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat398] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat291] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat153] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat119] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat109] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat101] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat84] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat72] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat59] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat36] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat14] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat130] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON") ' WAI
|
|
' If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat131] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON") ' SBG
|
|
'End If
|
|
|
|
'If IsNumeric(docid) AndAlso docid > 0 Then
|
|
' ' Process.Start("theviewer.exe -" & docid)
|
|
' ' Process.Start("C:\Program Files (x86)\Therefore\theviewer.exe -" & docid)
|
|
' Try
|
|
' Shell("C:\Program Files (x86)\Therefore\theviewer.exe -d" & docid)
|
|
' Catch ex As Exception
|
|
' Shell("C:\Program Files\Therefore\theviewer.exe -d" & docid)
|
|
' End Try
|
|
'Else
|
|
' MsgBox("Das Dokument konnte nicht gefunden werden.")
|
|
'End If
|
|
|
|
|
|
If Category2 = "" Then Category2 = Category
|
|
Dim SQL As New SQL
|
|
|
|
' 1. Connect to the Therefore™ Server
|
|
Dim server As New TheServer
|
|
server.Connect(TheClientType.CustomApplication)
|
|
|
|
' 2. Create a new Therefore™ Document
|
|
Dim doc As New TheDocument()
|
|
|
|
|
|
|
|
' 3. Retrieve the document from the server to the inbox
|
|
|
|
Dim inbox As String = Path
|
|
|
|
Dim TableName = ""
|
|
If IsNumeric(Category) Then
|
|
TableName = "TheCat" & Category
|
|
If SQL.getValueTxtBySql("SELECT count(*) FROM [TheCategory] WHERE TableName='" & TableName & "'", "SCANCANON",,, "") = 0 Then
|
|
MsgBox("Therefore: Tabelle nicht gefunden: " & TableName)
|
|
Return False
|
|
End If
|
|
Else
|
|
TableName = SQL.getValueTxtBySql("SELECT TOP 1 [TableName] FROM [TheCategory] WHERE Title='" & Category & "'", "SCANCANON",,, "")
|
|
End If
|
|
|
|
Dim docNo As Integer = SQL.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM " & TableName & " WHERE [String] LIKE '" & FilialeAbfertigungsNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON",,, -1)
|
|
' MsgBox("docNo: " & docNo)
|
|
|
|
Dim extractDir As String = Path & FilialeAbfertigungsNr & "\"
|
|
If Not System.IO.Directory.Exists(extractDir) Then
|
|
System.IO.Directory.CreateDirectory(extractDir)
|
|
End If
|
|
|
|
Dim filename As String = ""
|
|
If docNo > 0 Then
|
|
Dim folder = ""
|
|
Dim VerionNo As Integer
|
|
filename = doc.Retrieve(docNo, VerionNo, folder, server, False)
|
|
' 4. Extract all file streams to the specified directory
|
|
|
|
|
|
Dim i As Integer
|
|
|
|
|
|
|
|
For i = 0 To doc.StreamCount - 1 Step i + 1
|
|
|
|
Dim extractFile As String = doc.ExtractStream(i, extractDir)
|
|
|
|
Console.WriteLine("File stream extracted to " + extractFile)
|
|
|
|
Next
|
|
|
|
Else
|
|
'Nicht gefunden, hier hinschreiben:
|
|
Dim file As System.IO.StreamWriter
|
|
file = My.Computer.FileSystem.OpenTextFileWriter(Path & "notfound.txt", True)
|
|
file.WriteLine(FilialeAbfertigungsNr)
|
|
file.Close()
|
|
|
|
' MsgBox(FilialeAbfertigungsNr)
|
|
End If
|
|
|
|
|
|
' 8. Close Therefore™ document object
|
|
doc.Close()
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
|
|
Shared Function saveFileTo_ImportFolderCat(Path As String, FilialeAbfertigungsNr As String, AvisoId As String, Category As String, Optional Category2 As String = "", Optional deleteFileAfterImport As Boolean = False)
|
|
Try
|
|
If Category2 = "" Then Category2 = Category
|
|
Dim SQL As New SQL
|
|
|
|
' 1. Connect to the Therefore™ Server
|
|
Dim server As New TheServer
|
|
server.Connect(TheClientType.CustomApplication)
|
|
|
|
' 2. Create a new Therefore™ Document
|
|
Dim doc As New TheDocument()
|
|
|
|
' 3. Create temporary File
|
|
'Dim filename As String = ""
|
|
'doc.Create(filename)
|
|
|
|
' 4A. Set Therefore™ Category by Number
|
|
' doc.IndexData.SetCategory(5, server)
|
|
' or 4B. Set Therefore™ Category by Name
|
|
doc.IndexData.SetCategory(Category2, server)
|
|
|
|
' 5. Add streams
|
|
'doc.AddStream("D:\\TestAll\\TestDocs\\Scsi.doc", "", 0)
|
|
'doc.AddStream("D:\\TestAll\\TestDocs\\TEST.xls", "", 0)
|
|
' 6. Set index data
|
|
'Dim indexData As TheIndexData = doc.IndexData
|
|
'indexData("String") = FilialeAbfertigungsNr
|
|
'indexData("Eingabedatum") = Now.ToShortDateString
|
|
'indexData("LKW_ID") = AvisoId
|
|
|
|
'MsgBox(doc.IndexData.Count)
|
|
' 7. Archive the document
|
|
'Dim docNo As Integer = doc.Archive(server, 0)
|
|
'Dim docNo As Integer = 0
|
|
'Dim filenameNEW As String = doc.Retrieve(docNo, "", server)
|
|
Dim TableName = ""
|
|
If IsNumeric(Category) Then
|
|
TableName = "TheCat" & Category
|
|
If SQL.getValueTxtBySql("SELECT count(*) FROM [TheCategory] WHERE TableName='" & TableName & "'", "SCANCANON",,, "") = 0 Then
|
|
MsgBox("Therefore: Tabelle nicht gefunden: " & TableName)
|
|
Return False
|
|
End If
|
|
Else
|
|
TableName = SQL.getValueTxtBySql("SELECT TOP 1 [TableName] FROM [TheCategory] WHERE Title='" & Category & "'", "SCANCANON",,, "")
|
|
End If
|
|
|
|
Dim docNo As Integer = SQL.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM " & TableName & " WHERE [String] LIKE '" & FilialeAbfertigungsNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON",,, -1)
|
|
' MsgBox("docNo: " & docNo)
|
|
Dim filename As String = ""
|
|
If docNo <= 0 Then
|
|
doc.Create(filename)
|
|
|
|
doc.AddStream(Path, "", 0)
|
|
Dim indexData As TheIndexData = doc.IndexData
|
|
indexData("String") = FilialeAbfertigungsNr
|
|
indexData("Eingabedatum") = Now.ToShortDateString
|
|
indexData("LKW_ID") = AvisoId
|
|
|
|
docNo = doc.Archive(server, 0)
|
|
Else
|
|
Dim folder = ""
|
|
Dim VerionNo As Integer
|
|
filename = doc.Retrieve(docNo, VerionNo, folder, server, False)
|
|
|
|
Dim user As String = ""
|
|
doc.CheckOut(server, False, user, VerionNo)
|
|
|
|
doc.AddStream(Path, "", 0)
|
|
doc.CheckIn(server)
|
|
End If
|
|
|
|
|
|
|
|
' 8. Close Therefore™ document object
|
|
doc.Close()
|
|
|
|
' 9. Delete the temporary file
|
|
If deleteFileAfterImport Then System.IO.File.Delete(filename)
|
|
|
|
' 10. Optional: Print a success message on the console
|
|
' Console.WriteLine("Document successfully archived as " + docNo.ToString() + ".")
|
|
Return True
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
'Shared Function saveFileTo_ImportFolder2(Path As String, FilialeAbfertigungsNr As Integer, AvisoId As Integer)
|
|
' Try
|
|
|
|
' ' 1. Connect to the Therefore™ Server
|
|
' Dim server As New TheServer
|
|
' server.Connect(TheClientType.CustomApplication)
|
|
|
|
' ' 2. Create a new Therefore™ Document
|
|
' Dim doc As New TheDocument()
|
|
|
|
' ' 3. Create temporary File
|
|
' Dim filename As String = ""
|
|
' doc.Create(filename)
|
|
|
|
' ' 4A. Set Therefore™ Category by Number
|
|
' ' doc.IndexData.SetCategory(5, server)
|
|
' ' or 4B. Set Therefore™ Category by Name
|
|
' doc.IndexData.SetCategory("Import ab Jänner 2019", server)
|
|
|
|
' ' 5. Add streams
|
|
' 'doc.AddStream("D:\\TestAll\\TestDocs\\Scsi.doc", "", 0)
|
|
' 'doc.AddStream("D:\\TestAll\\TestDocs\\TEST.xls", "", 0)
|
|
' doc.AddStream(Path, "", 0)
|
|
' ' 6. Set index data
|
|
|
|
' ' MsgBox(doc.IndexData.Count)
|
|
' ' 7. Archive the document
|
|
' Dim docNo As Integer = doc.Archive(server, 0)
|
|
' MsgBox(docNo)
|
|
|
|
' ' 8. Close Therefore™ document object
|
|
' doc.Close()
|
|
|
|
' ' 9. Delete the temporary file
|
|
' System.IO.File.Delete(filename)
|
|
|
|
' ' 10. Optional: Print a success message on the console
|
|
' ' Console.WriteLine("Document successfully archived as " + docNo.ToString() + ".")
|
|
|
|
' Catch ex As Exception
|
|
' MsgBox(ex.Message & ex.StackTrace)
|
|
' End Try
|
|
'End Function
|
|
End Class
|