8
0
2024-01-24 16:42:38 +01:00

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