TetraPak
This commit is contained in:
@@ -3090,7 +3090,8 @@ Public Class cDakosyNCTSOut004
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Shared Function fillNCTS_WithEXG(ByRef NCTS_OUT As cDakosyNCTSOut004, exg As cDakosyEXG, Optional ObjectName As String = "", Optional AutoTranslate As Boolean? = Nothing, Optional ForceTranslate As Boolean? = Nothing) As cDakosyNCTSOut004
|
||||
|
||||
Shared Function fillNCTS_WithEXG(ByRef NCTS_OUT As cDakosyNCTSOut004, exg As cDakosyEXG, Optional ObjectName As String = "", Optional AutoTranslate As Boolean? = Nothing, Optional ForceTranslate As Boolean? = Nothing, Optional VersLandAusVersender As Boolean = False, Optional BestLandAusEmpfaenger As Boolean = False) As cDakosyNCTSOut004
|
||||
|
||||
If NCTS_OUT Is Nothing Then
|
||||
NCTS_OUT = New DAKOSY_Worker.cDakosyNCTSOut004
|
||||
@@ -3129,12 +3130,18 @@ Public Class cDakosyNCTSOut004
|
||||
|
||||
'House Consignment
|
||||
HC.nctsHC_GrossMass = exg.exg_GrossMass
|
||||
HC.nctsHC_CountryOfDestination = exg.exg_CountryOfDestination
|
||||
'Versendungsland: zuerst EXG, alternativ Versenderadresse
|
||||
HC.nctsHC_CountryOfDispatch = If(exg.exg_CountryOfDispatch, "").Trim().ToUpperInvariant()
|
||||
|
||||
If String.IsNullOrWhiteSpace(HC.nctsHC_CountryOfDispatch) Then
|
||||
HC.nctsHC_CountryOfDispatch = If(exg.exg_Consignor_Country, "").Trim().ToUpperInvariant()
|
||||
'Versendungs- und Bestimmungsland aus EXG
|
||||
HC.nctsHC_CountryOfDispatch = exg.exg_CountryOfDispatch
|
||||
HC.nctsHC_CountryOfDestination = exg.exg_CountryOfDestination
|
||||
|
||||
'Optionale Übernahme aus Versender- bzw. Empfängeradresse
|
||||
If VersLandAusVersender AndAlso Not String.IsNullOrWhiteSpace(Convert.ToString(HC.nctsHC_Consignor_Country)) Then
|
||||
HC.nctsHC_CountryOfDispatch = HC.nctsHC_Consignor_Country
|
||||
End If
|
||||
|
||||
If BestLandAusEmpfaenger AndAlso Not String.IsNullOrWhiteSpace(Convert.ToString(HC.nctsHC_Consignee_Country)) Then
|
||||
HC.nctsHC_CountryOfDestination = HC.nctsHC_Consignee_Country
|
||||
End If
|
||||
|
||||
'UCR bewusst nicht übernehmen
|
||||
@@ -3205,10 +3212,9 @@ Public Class cDakosyNCTSOut004
|
||||
HC_ITEM.nctsHCCI_DeclarationType = DetermineTransitProcedure(EXG_POS.exgPos_RequestedProcedure, EXG_POS.exgPos_PreviousProcedure)
|
||||
|
||||
Debug.WriteLine($"NCTS Transit: Requested={EXG_POS.exgPos_RequestedProcedure}, Previous={EXG_POS.exgPos_PreviousProcedure}, Result={HC_ITEM.nctsHCCI_DeclarationType}")
|
||||
|
||||
End If
|
||||
|
||||
'Packstücke
|
||||
'Packstücke zunächst ohne Beipackverweise übernehmen
|
||||
If EXG_POS.exgPos_PACKAGING IsNot Nothing Then
|
||||
For Each EXG_PK In EXG_POS.exgPos_PACKAGING
|
||||
|
||||
@@ -3218,31 +3224,61 @@ Public Class cDakosyNCTSOut004
|
||||
HC_PK.nctsHCCIPK_TypeOfPackages = EXG_PK.exgPosPk_TypeOfPackages
|
||||
HC_PK.nctsHCCIPK_ShippingMarks = EXG_PK.exgPosPk_ShippingMarks
|
||||
|
||||
If Val(Convert.ToString(EXG_PK.exgPosPk_NumberOfPackages)) = 0 Then
|
||||
'Verweis auf erste Warenposition im selben House Consignment
|
||||
HC_PK.nctsHCCIPK_GoodsItemNumber = 1
|
||||
End If
|
||||
|
||||
HC_ITEM.nctsHCCI_PACKAGING.Add(HC_PK)
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
HC.nctsWP_CONSIGNMENT_ITEM.Add(HC_ITEM)
|
||||
|
||||
Next
|
||||
|
||||
'Beipackverweise erst nach vollständiger Erstellung aller Warenpositionen ermitteln
|
||||
For Each item In HC.nctsWP_CONSIGNMENT_ITEM
|
||||
For Each pk In item.nctsHCCI_PACKAGING
|
||||
|
||||
'Nur Packstücke mit expliziter Anzahl 0 sind Beipack-Kandidaten
|
||||
Dim packageCount As String = Convert.ToString(pk.nctsHCCIPK_NumberOfPackages).Trim()
|
||||
If packageCount <> "0" Then Continue For
|
||||
|
||||
Dim shippingMarks As String = Convert.ToString(pk.nctsHCCIPK_ShippingMarks).Trim()
|
||||
If shippingMarks = "" Then
|
||||
Debug.WriteLine("NCTS Beipack: Versandzeichen fehlen / EXG " & exg.exg_ObjectName)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim referencePosition As Integer = 0
|
||||
|
||||
'Erste Warenposition mit identischem Versandzeichen und Packstückanzahl > 0 suchen
|
||||
For i As Integer = 0 To HC.nctsWP_CONSIGNMENT_ITEM.Count - 1
|
||||
|
||||
Dim candidate = HC.nctsWP_CONSIGNMENT_ITEM(i)
|
||||
If candidate Is item Then Continue For
|
||||
|
||||
Dim matchingPK = candidate.nctsHCCI_PACKAGING.FirstOrDefault(
|
||||
Function(p) Val(Convert.ToString(p.nctsHCCIPK_NumberOfPackages)) > 0 AndAlso
|
||||
String.Equals(Convert.ToString(p.nctsHCCIPK_ShippingMarks).Trim(), shippingMarks, StringComparison.OrdinalIgnoreCase))
|
||||
|
||||
If matchingPK IsNot Nothing Then
|
||||
referencePosition = i + 1
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
If referencePosition > 0 Then
|
||||
pk.nctsHCCIPK_GoodsItemNumber = referencePosition
|
||||
Else
|
||||
Debug.WriteLine("NCTS Beipack: Keine Hauptpackposition für Versandzeichen '" & shippingMarks & "' gefunden / EXG " & exg.exg_ObjectName)
|
||||
End If
|
||||
|
||||
Next
|
||||
Next
|
||||
|
||||
NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Add(HC)
|
||||
|
||||
'Verfahrensart wird erst nach Zusammenführung aller EXG bestimmt
|
||||
'Positions-Verfahrensarten bleiben bis dahin erhalten
|
||||
'Dim declType As String = GetDeclarationType(NCTS_OUT.ncts_HOUSE_CONSIGNMENT)
|
||||
|
||||
'If declType <> "" Then
|
||||
' emptyAllDeclarationItems(NCTS_OUT.ncts_HOUSE_CONSIGNMENT)
|
||||
' NCTS_OUT.ncts_Declarationtype = declType
|
||||
'Else
|
||||
' NCTS_OUT.ncts_Declarationtype = "T-"
|
||||
'End If
|
||||
|
||||
'Kein SAVE_ALL: erfolgt nach Zusammenführung aller EXG-Anmeldungen
|
||||
|
||||
|
||||
Reference in New Issue
Block a user