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

73 lines
3.2 KiB
Plaintext

' UpdateOrderDataBeforeDelNote()
' ----------------------------------------------------------------------------
' Vor der Erstellung des Lieferscheins, können hier noch
' Werte in der Datenstruktur korrigiert werden.
'
' Beispiel: Versandkosten in Package-Artikeln
'
' Returns: -
' ----------------------------------------------------------------------------
' 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: 08.03.2021 / JJ
' Version Date / Editor: 24.06.2021 / MP
' Version Number: 4.0.0.0
Sub UpdateOrderDataBeforeDelNote()
Dim MacroAmountFaktor
Dim MacroComplete
Dim MacroAmountScanned
For OrderArrayIndex = 0 To Ubound(ORDER_ARTICLE_DATA, 2)
If DEBUG_ON = True Then
AddDebugLine "Current ORDER_ARTICLE_DATA values for Index: " & OrderArrayIndex
AddDebugLine "LineNumber: " & vbTab & ORDER_ARTICLE_DATA(INDEX_LINE_NUMBER, OrderArrayIndex)
AddDebugLine "ArticleNumber: " & vbTab & ORDER_ARTICLE_DATA(INDEX_ARTICLE_NUMBER, OrderArrayIndex)
AddDebugLine "MacroFlag: " & vbTab & ORDER_ARTICLE_DATA(INDEX_MACRO_FLAG, OrderArrayIndex)
AddDebugLine "ProductGroup: " & vbTab & ORDER_ARTICLE_DATA(INDEX_ARTICLE_GROUP, OrderArrayIndex)
AddDebugLine "AmountOrdered: " & vbTab & ORDER_ARTICLE_DATA(INDEX_AMOUNT_ORDERED, OrderArrayIndex)
AddDebugLine "AmountDelivered: " & vbTab & ORDER_ARTICLE_DATA(INDEX_AMOUNT_DELIVERED, OrderArrayIndex)
AddDebugLine "AmountScanned: " & vbTab & ORDER_ARTICLE_DATA(INDEX_AMOUNT_SCANNED, OrderArrayIndex)
ShowDebugBox "UpdateOrderDataBeforeDelNote"
End If
MacroFlag = CInt(ORDER_ARTICLE_DATA(INDEX_MACRO_FLAG, OrderArrayIndex))
' Wenn Macro-Artikel nur zum Teil ausgeliefert werden,
' müssen die Anteile Nicht-scannbarer Artikel entsprechend reduziert werden.
If MacroFlag = 1 Then
MacroAmount = Cint(ORDER_ARTICLE_DATA(INDEX_AMOUNT_ORDERED, OrderArrayIndex)) - Cint(ORDER_ARTICLE_DATA(INDEX_AMOUNT_DELIVERED, OrderArrayIndex))
MacroAmountScannend = Cint(ORDER_ARTICLE_DATA(INDEX_AMOUNT_SCANNED, OrderArrayIndex))
If MacroAmount > MacroAmountScannend Then
MacroComplete = False
If MacroAmount > 0 Then
MacroAmountFaktor = MacroAmountScannend / MacroAmount
End If
Else
MacroComplete = True
MacroAmountFaktor = 1
End If
ElseIf MacroFlag = 2 And MacroComplete = False Then
ProductGroup = Cint(ORDER_ARTICLE_DATA(INDEX_ARTICLE_GROUP, OrderArrayIndex))
' Wir müssen nur etwas tun, wenn ein Faktor < 1 (=100%) ermittelt wurde,
' da die Artikel der ProductGroup aus den EXCLUDED_ARTICLEGROUPS ja bereits vollständig initialisiert werden.
If CheckArticleGroupIsRelevant(ORDER_ARTICLE_DATA(INDEX_ARTICLE_GROUP, OrderArrayIndex)) = False And MacroAmountFaktor < 1 Then
ProductAmount = Cint(ORDER_ARTICLE_DATA(INDEX_AMOUNT_ORDERED, OrderArrayIndex)) - Cint(ORDER_ARTICLE_DATA(INDEX_AMOUNT_DELIVERED, OrderArrayIndex))
ProductAmount = Round(ProductAmount * MacroAmountFaktor)
ORDER_ARTICLE_DATA(INDEX_AMOUNT_SCANNED, OrderArrayIndex) = ProductAmount
End If
End If
Next
End Sub