62 lines
2.3 KiB
VB.net
62 lines
2.3 KiB
VB.net
Public Class ClassRecordState
|
|
|
|
Public Shared Sub LockRecord(RecordId As Integer)
|
|
Try
|
|
If RecordId = 0 Then
|
|
Exit Sub
|
|
End If
|
|
Dim SQL As String = String.Format("UPDATE TBPMO_RECORD SET IN_WORK = 1, IN_WORK_WHO = '{0}' WHERE GUID = {1}", USER_USERNAME, RecordId)
|
|
MYDB_ECM.ExecuteNonQuery(SQL)
|
|
Catch ex As Exception
|
|
MsgBox("Error in LockRecord: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Shared Sub UnlockRecord(RecordId As Integer)
|
|
Try
|
|
If RecordId = 0 Then
|
|
Exit Sub
|
|
End If
|
|
Dim RECLOCKED = IsRecordLocked(RecordId)
|
|
If IsNothing(RECLOCKED) Then
|
|
Exit Sub
|
|
End If
|
|
Dim SQL As String = String.Format("UPDATE TBPMO_RECORD SET IN_WORK = 0, IN_WORK_WHO = NULL WHERE GUID = {0}", RecordId)
|
|
MYDB_ECM.ExecuteNonQuery(SQL)
|
|
Catch ex As Exception
|
|
MsgBox("Error in UnlockRecord: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Shared Function IsRecordLocked(RecordId As Integer) As String
|
|
Try
|
|
Dim SQL As String = String.Format("SELECT IN_WORK, IN_WORK_WHO FROM TBPMO_RECORD WHERE GUID = {0}", RecordId)
|
|
Dim dt As DataTable = MYDB_ECM.GetDatatable(sql)
|
|
|
|
If dt.Rows.Count = 1 Then
|
|
|
|
Dim IN_WORK As Boolean = dt.Rows(0).Item("IN_WORK")
|
|
Dim IN_WORK_WHO As String = dt.Rows(0).Item("IN_WORK_WHO").ToString
|
|
|
|
If IN_WORK = True Then
|
|
' Record ist in Arbeit, benutzer zurückgeben
|
|
Return IN_WORK_WHO
|
|
ElseIf IN_WORK = False Then
|
|
' Record ist nicht in Arbeit, nothing zurück geben
|
|
Return Nothing
|
|
End If
|
|
|
|
ElseIf dt.Rows.Count = 0 Then
|
|
Return Nothing
|
|
Else
|
|
MsgBox("Unexpected behaviour in IsRecordLocked: ", MsgBoxStyle.Information)
|
|
Return Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in IsRecordLocked: " + vbNewLine + ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
End Class
|