97 lines
3.6 KiB
Plaintext
97 lines
3.6 KiB
Plaintext
' UpdateArticleRow(RowNumber: Integer)
|
|
' ----------------------------------------------------------------------------
|
|
' Trägt die gescannte Menge eines Artikel in das Grid ein
|
|
' - Ändert die Farbe, abhängig von Gesamtmenge und Gescannte Menge
|
|
' - Überprüft, ob der Artikel in der Gescannten Menge auf Lager liegt
|
|
'
|
|
' Returns: UpdateArticleRow : Boolean
|
|
' ----------------------------------------------------------------------------
|
|
' 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: 01.09.2021 / JJ
|
|
' Version Date / Editor: 25.03.2021 / MP
|
|
' Version Number: 4.0.0.0
|
|
|
|
' Aktualisiert den Wert COLUMN_MACRO_ARTICLE_SCAN_FLAG für den aktuellen
|
|
' MacroIndex
|
|
Sub UpdateMacroArticleRow(MacroArticleLineNumber)
|
|
For MacroArrayIndex = 0 To UBound(MACRO_ARTICLE_LIST): Do
|
|
If MACRO_ARTICLE_LIST(COLUMN_MACRO_ARTICLE_LINE_NUMBER, MacroArrayIndex) = MacroArticleLineNumber Then
|
|
MACRO_ARTICLE_LIST(COLUMN_MACRO_ARTICLE_SCAN_FLAG, MacroArrayIndex) = True
|
|
Exit For
|
|
End If
|
|
Loop While False: Next
|
|
End Sub
|
|
|
|
Function UpdateArticleRow(RowNumber)
|
|
Set mywin = CWLStart.CurrentModule.Windows.Item(WINDOW_ID)
|
|
Set Grid = mywin.Controls.Item(GRID_ID).Grid
|
|
Set amountBox = mywin.Controls.Item(AMOUNT_INPUT)
|
|
|
|
' Bereits gescannte, Gesamt und Anzahl zu Scannen auslesen
|
|
ArticleNumber = Grid.GetCellValue(RowNumber, COLUMN_ARTICLENUMBER)
|
|
Total = Cint(Grid.GetCellValue(RowNumber, COLUMN_TOTAL))
|
|
Scanned = Cint(Grid.GetCellValue(RowNumber, COLUMN_SCANNED))
|
|
ScannedAmount = Cint(amountBox.Contents)
|
|
MacroFlag = Cint(Grid.GetCellValue(RowNumber, COLUMN_MACRO_FLAG))
|
|
MacroArticleLineNumber = Cint(Grid.GetCellValue(RowNumber, COLUMN_MACRO_LINE_NUMBER))
|
|
|
|
' Standard Rückgabewert setzen
|
|
UpdateArticleRow = True
|
|
|
|
' Aktuellen Lagerstand abfragen
|
|
StockedAmount = GetWinLineStockedAmount(ArticleNumber, False)
|
|
|
|
' Neue bereits gescannte berechnen
|
|
NewScanned = Scanned + ScannedAmount
|
|
|
|
If DEBUG_ON = True Then
|
|
AddDebugLine "Total " & Total
|
|
AddDebugLine "Scanned: " & Scanned
|
|
AddDebugLine "NewScanned: " & NewScanned
|
|
AddDebugLine "StockedAmount: " & StockedAmount
|
|
|
|
ShowDebugBox "UpdateArticleRow"
|
|
End If
|
|
|
|
' Zeilenfarbe anpassen:
|
|
' GRÜN: Komplett gescannt
|
|
' GELB: Teilweise gescannt
|
|
If NewScanned > StockedAmount Then
|
|
Message = ""
|
|
Message = Message & "Der Artikel ist nur in der Menge " & StockedAmount & " vorhanden." & vbNewline
|
|
Message = Message & "Der Scan wird abgebrochen!"
|
|
Msgbox Message, vbExclamation, DEFAULT_TITLE
|
|
|
|
Elseif NewScanned = Total Then
|
|
If MacroFlag = 2 Then
|
|
Grid.SetLineColor RowNumber, COLOR_PACKAGE_GREEN
|
|
UpdateMacroArticleRow(MacroArticleLineNumber)
|
|
ReduceSubMacroCounterInDuplList ArticleNumber, MacroArticleLineNumber
|
|
Else
|
|
Grid.SetLineColor RowNumber, COLOR_GREEN
|
|
End If
|
|
Grid.SetCellValue RowNumber, COLUMN_SCANNED, NewScanned
|
|
|
|
ReduceCounterInDuplList ArticleNumber, MacroFlag
|
|
|
|
Elseif NewScanned < Total Then
|
|
If MacroFlag = 2 Then
|
|
Grid.SetLineColor RowNumber, COLOR_PACKAGE_YELLOW
|
|
UpdateMacroArticleRow(MacroArticleLineNumber)
|
|
Else
|
|
Grid.SetLineColor RowNumber, COLOR_YELLOW
|
|
End If
|
|
Grid.SetCellValue RowNumber, COLUMN_SCANNED, NewScanned
|
|
Else
|
|
Message = ""
|
|
Message = Message & "Die eingegebene Menge überschreitet die Gesamtanzahl oder" & vbNewline
|
|
Message = Message & "der Artikel wurde bereits vollständig gescannt!"
|
|
Msgbox Message, vbExclamation, DEFAULT_TITLE
|
|
|
|
UpdateArticleRow = False
|
|
End If
|
|
End Function |