Files
SDL/VERAG_PROG_ALLGEMEIN/Schnittstellen/cTherefore.vb
2024-01-23 07:50:02 +01:00

162 lines
7.7 KiB
VB.net

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 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