86 lines
2.7 KiB
Plaintext
86 lines
2.7 KiB
Plaintext
' IsOrderLocked(OrderNumber : Int)
|
|
' ----------------------------------------------------------------------------
|
|
' Gibt die UserID des Benutzers zurück, der den Auftrag sperrt.
|
|
' Wenn der Auftrag nicht gesperrt ist, wird 0 zurückgegeben.
|
|
'
|
|
' Returns: IsOrderLocked: Int
|
|
' ----------------------------------------------------------------------------
|
|
' Copyright (c) 2021 by Digital Data GmbH
|
|
'
|
|
' Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
|
|
' Tel.: 0641/202360 • E-Mail: info-flow(at)digitaldata.works
|
|
' ----------------------------------------------------------------------------
|
|
' Creation Date / Author: 26.04.2021 / MP
|
|
' Version Date / Editor: 26.04.2021 / MP
|
|
' Version Number: 4.0.0.0
|
|
|
|
' Hole die interne Belegnummer
|
|
' t025.c021 = Kontonummer und t025.c022 = Laufende Nummer
|
|
Function GetInternalOrderNumber(OrderNumber)
|
|
GetInternalOrderNumber = ""
|
|
|
|
Err.Clear
|
|
|
|
If Len(OrderNumber) > 0 Then
|
|
Set Conn = CWLStart.Connection
|
|
|
|
Dim SQL : SQL = ""
|
|
SQL = SQL & " SELECT TOP 1 c021, c022"
|
|
SQL = SQL & " FROM t025 (NOLOCK) "
|
|
SQL = SQL & " WHERE c044 = '"& OrderNumber & "'"
|
|
SQL = SQL & SQLQuery_OrderWhere
|
|
SQL = SQL & " ORDER BY c022"
|
|
Set Result = Conn.Select(SQL)
|
|
|
|
If Result < 0 Then
|
|
If err <> 0 Then
|
|
MsgBox "Fehler bei SQL-Abfrage:" & vbNewline & err.description, vbExclamation, DEFAULT_TITLE & " - GetInternalOrderNumber"
|
|
Exit Function
|
|
Else
|
|
Message = "Den Auftrag [" & OrderNumber & "] gibt es nicht in der Datenbank"
|
|
MsgBox Message, vbExclamation, DEFAULT_TITLE
|
|
Exit Function
|
|
End If
|
|
End If
|
|
|
|
GetInternalOrderNumber = result.Value("c021") & result.Value("c022")
|
|
End If
|
|
End Function
|
|
|
|
Function IsOrderLocked(OrderNumber)
|
|
Set mywin = CWLStart.CurrentModule.Windows.Item(WINDOW_ID)
|
|
Set Grid = mywin.Controls.Item(GRID_ID).Grid
|
|
|
|
Err.Clear
|
|
|
|
IsOrderLocked = 0
|
|
InternalOrderNumber = GetInternalOrderNumber(OrderNumber)
|
|
|
|
SQL = ""
|
|
SQL = SQL & " c001 = 'E" & InternalOrderNumber & "' "
|
|
SQL = SQL & SQLQuery_BasicWhere
|
|
|
|
Set Result = CWLStart.CurrentCompany.SearchRecord(TABLE_499, SQL)
|
|
|
|
If DEBUG_ON = True Then
|
|
MsgBox "SQL: ... FROM " & TABLE_499 & " WHERE " & SQL, vbOkonly, DEBUG_TITLE
|
|
|
|
AddDebugLine "Checking For Order by internal OrderId [" & InternalOrderNumber & "]:"& vbNewline & vbNewline
|
|
AddDebugLine "Result Columns: " & Result & vbNewline
|
|
AddDebugLine "Result Rows: " & Result.RowCount & vbNewline
|
|
AddDebugLine "SQL: " & SQL
|
|
|
|
ShowDebugBox "IsOrderLocked"
|
|
End If
|
|
|
|
If Result < 0 Then
|
|
If err <> 0 Then
|
|
Msgbox "Fehler bei Abfrage:" & vbNewline & err.description, vbExclamation, DEFAULT_TITLE & " - IsOrderLocked"
|
|
Exit Function
|
|
End If
|
|
End If
|
|
|
|
If Result.RowCount > 0 Then
|
|
IsOrderLocked = Result.Value("C002")
|
|
End If
|
|
End Function |