73 lines
3.2 KiB
Plaintext
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 |