' 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