2025-09-19 15:14:19 +02:00

232 lines
11 KiB
VB.net

'Imports DD_LIB_Standards
Public Class ClassFileResult
Public Shared Property DocID As Integer
Public Shared Property ParentID As Integer
Public Shared Property FileName As String
Public Shared Property OldDisplayName As String
Public Shared Property DocumentPath As String
Public Shared InWork As Boolean = False
Public Shared Function Set_InWork(state As Integer, comment As String)
Try
Dim upd As String
InWork = False
If comment = "" Then
upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET Change_DateTime = GETDATE(), IN_WORK_USER = NULL, IN_WORK = {0} WHERE DocID = {1}", state, DocID)
Else
upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET Change_DateTime = GETDATE(), IN_WORK = {0}, IN_WORK_USER = '{1}', IN_WORK_COMMENT = '{2}' WHERE DocID = {3}", state, USER_USERNAME, comment, DocID)
End If
If MYDB_ECM.ExecuteNonQuery(upd) = True Then
InWork = True
Return True
Else
Return False
End If
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Set_InWork: " & ex.Message)
Return False
End Try
End Function
Public Shared Function Set_Displayname(Displayname As String)
Try
Dim upd As String
upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET DISPLAY_NAME = '{0}',CHANGED_WHO = '{2}',Change_DateTime = GETDATE() WHERE DocID = {1}", Displayname, DocID, USER_USERNAME)
If MYDB_ECM.ExecuteNonQuery(upd) = True Then
Return True
Else
Return False
End If
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Set_Displayname: " & ex.Message)
Return False
End Try
End Function
Public Shared Function GET_DATATABLE_INDICES_PMO()
Try
Dim sql = String.Format("SELECT * FROM TBPMO_INDEX_MAN WHERE ACTIVE = 1 AND ENTITY_ID = (SELECT CASE REDUNDANT_ENTITY WHEN 0 THEN GUID ELSE REDUNDANT_ENTITY END AS ENTITY_ID FROM TBPMO_FORM WHERE GUID = {0}) AND DOCTYPE_ID = {1}", CURRENT_ENTITY_ID, CURRENT_DOKARTID)
Dim DT As DataTable = MYDB_ECM.GetDatatable(sql)
LOGGER.Debug("GET_DATATABLE_INDICES_PMO: " & sql)
CURRENT_TBPMO_INDEX_MAN = DT
Return True
Catch ex As Exception
LOGGER.Warn("Unexpected Error in GET_DATATABLE_INDICES_PMO: " & ex.Message)
Return False
End Try
End Function
Public Shared Function SET_DOCID_INDICES()
Try
Dim DT As DataTable = CURRENT_TBPMO_INDEX_MAN
If DT.Rows.Count > 0 Then
For Each row As DataRow In DT.Rows
If row.Item("MAN_VALUE") <> String.Empty Then
Dim MAN_INDEX_ID = row.Item("GUID")
Dim insert As String = String.Format("INSERT INTO TBPMO_DOC_INDICES (DocID,INDEX_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", DocID, MAN_INDEX_ID, row.Item("MAN_VALUE"), USER_USERNAME)
MYDB_ECM.ExecuteNonQuery(insert)
End If
Next
End If
Return True
Catch ex As Exception
LOGGER.Warn("Unexpected Error in SET_DOCID_INDICES: " & ex.Message)
Return False
End Try
End Function
Public Shared Function Delete_Doc_Indices()
Try
Dim delete As String = String.Format("DELETE FROM TBPMO_DOC_INDICES WHERE DocID = {0}", DocID)
Return MYDB_ECM.ExecuteNonQuery(delete)
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Update_Doc_Indices: " & ex.Message)
Return False
End Try
End Function
Public Shared Function Delete_ResultFile(RESULT_DOC_ID, RECORD_ID, DELETE_FILE)
Try
If DELETE_FILE = "True" Then
DELETE_FILE = 1
End If
Dim proc = String.Format("EXEC PRPMO_DELETE_RESULTFILE {0},{1},{2}", RESULT_DOC_ID, RECORD_ID, DELETE_FILE)
If MYDB_ECM.ExecuteNonQuery(proc) = True Then
'If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
' proc = String.Format("EXEC PRPROXY_DOC_CHECK_DELETE {0}", RESULT_DOC_ID)
' MYDB_ECM.ExecuteNonQuery(proc)
'End If
Return True
Else
Return False
End If
Catch ex As Exception
LOGGER.Warn(String.Format("Unexpected Error in Delete_ResultFile: ({0},{1},{2})", RESULT_DOC_ID, RECORD_ID, DELETE_FILE) & ex.Message)
MsgBox("Unexpected Error in Delete ResultFile:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function CheckWrite_IndexeMan(grbxControls As GroupBox)
'#### Zuerst manuelle Werte indexieren ####
Try
LOGGER.Debug(" >>In CheckWrite_IndexeMan")
Dim result As Boolean = False
For Each ctrl As Control In grbxControls.Controls
' ' MsgBox(ctrl.Name)
If ctrl.Name.StartsWith("txt") Then
Dim box As TextBox = ctrl
If box.Text = "" Then
Dim optional_index = ClassMoreMetadata.Return_CURRENT_TBPMO_INDEX_MAN_VALUE(box.Tag, "OPTIONAL")
If Not IsNothing(optional_index) Then
If CBool(optional_index) = False Then
MsgBox("Please insert a value!", MsgBoxStyle.Exclamation, "Missing input:")
box.Focus()
Return False
Else
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(box.Tag, "")
'Indexwert_Postprocessing(Replace(box.Name, "txt", ""), "")
result = True
End If
Else
Return False
End If
Else
'If Indexwert_checkValueDB(Replace(box.Name, "txt", ""), box.Text) = False Then
' Logger.Warn(" - Der eingegebene Wert wurde nicht in der Datenbank gefunden")
' MsgBox("Der eingegebene Wert wurde nicht in der Datenbank gefunden!", MsgBoxStyle.Exclamation, "Fehlerhafte Indexierung:")
' box.Focus()
' Return False
'Else
' 'Indexwert_Postprocessing(Replace(box.Name, "txt", ""), box.Text)
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(box.Tag, box.Text)
result = True
'End If
End If
End If
If ctrl.Name.StartsWith("btn") Then
Dim btn As Button = ctrl
Dim optional_index = ClassMoreMetadata.Return_CURRENT_TBPMO_INDEX_MAN_VALUE(btn.Tag, "OPTIONAL")
If Not IsNothing(optional_index) Then
If CBool(optional_index) = False Then
For Each row As DataRow In CURRENT_TBPMO_INDEX_MAN.Rows
If row.Item("GUID") = btn.Tag Then
If Not IsDBNull(row.Item("MAN_VALUE")) Then
LOGGER.Debug("we got a value for folder...")
result = True
Else
LOGGER.Debug("value for folder is missing...")
MsgBox("Please choose a folder!", MsgBoxStyle.Exclamation, "Missing input:")
Return False
End If
End If
Next
Else
LOGGER.Debug("value for folder is OPTIONAL...")
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(btn.Tag, "")
result = True
End If
End If
End If
If ctrl.Name.StartsWith("cmb") Then
Dim cmb As ComboBox = ctrl
If cmb.Text = "" Then
Dim optional_index = ClassMoreMetadata.Return_CURRENT_TBPMO_INDEX_MAN_VALUE(cmb.Tag, "OPTIONAL")
If Not IsNothing(optional_index) Then
If CBool(optional_index) = False Then
MsgBox("Please choose a value!", MsgBoxStyle.Exclamation, "Missing input:")
cmb.Focus()
Return False
Else
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(cmb.Tag, "")
'Indexwert_Postprocessing(Replace(box.Name, "txt", ""), "")
result = True
End If
End If
Else
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(cmb.Tag, cmb.Text)
' Indexwert_Postprocessing(Replace(cmb.Name, "cmb", ""), cmb.Text)
result = True
End If
End If
If ctrl.Name.StartsWith("dtp") Then
Dim dtp As DateTimePicker = ctrl
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(dtp.Tag, dtp.Value)
'Indexwert_Postprocessing(Replace(dtp.Name, "dtp", ""), dtp.Text)
result = True
End If
If ctrl.Name.StartsWith("chk") Then
Dim chk As CheckBox = ctrl
SET_CURRENT_TBPMO_INDEX_MAN_VALUE(chk.Tag, chk.Checked)
'Indexwert_Postprocessing(Replace(chk.Name, "chk", ""), chk.Checked)
result = True
End If
If ctrl.Name.StartsWith("lbl") = False And result = False Then
LOGGER.Warn("Die Überprüfung der manuellen Indices ist fehlerhaft. Bitte informieren Sie den Systembetreuer", True)
Return False
End If
Next
Return True
Catch ex As Exception
LOGGER.Warn(" - Unvorhergesehener Fehler in CheckWrite_IndexeMan - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unerwarteter Unexpected error in CheckWrite_IndexeMan:")
Return False
End Try
End Function
Public Shared Function SET_CURRENT_TBPMO_INDEX_MAN_VALUE(CONTROL_GUID As Integer, VALUE As String)
Try
For Each row As DataRow In CURRENT_TBPMO_INDEX_MAN.Rows
If row.Item("GUID") = CONTROL_GUID Then
row.Item("MAN_VALUE") = VALUE
Return True
End If
Next
Catch ex As Exception
LOGGER.Warn(" - Unvorhergesehener Fehler in SET_CURRENT_TBPMO_INDEX_MAN_VALUE - Fehler: " & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
End Class