236 lines
12 KiB
VB.net

'Imports DD_LIB_Standards
Public Class ClassFileResult
Public Shared Property DocID As Integer
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
'If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
' MYDB_ECM.ExecuteNonQuery(upd)
'End If
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
'If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
' MYDB_ECM.ExecuteNonQuery(upd)
'End If
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