Deserialize EXG

This commit is contained in:
2026-10-15 21:31:09 +02:00
parent 718134608e
commit eec4e8e3dd
3 changed files with 84 additions and 11 deletions

View File

@@ -1615,7 +1615,8 @@ Public Class cDakosyNCTSOut004
'Transaktion: 'Transaktion:
XML.Transaktion = New VersandanmeldungNCTSDE_004.TransaktionNCTSTyp XML.Transaktion = New VersandanmeldungNCTSDE_004.TransaktionNCTSTyp
XML.Transaktion.IOPartner = "UNAT" ' cDakosyFunftions.getIOPartner(cDY.ncts_firma, Art) 'If(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "VERA", "VERG") ' XML.Transaktion.IOPartner = "UNAT" ' cDakosyFunftions.getIOPartner(cDY.ncts_firma, Art) 'If(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "VERA", "VERG")
XML.Transaktion.IOPartner = cDakosyFunftions.getIOPartner(cDY.ncts_firma, Art) 'If(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "VERA", "VERG")
XML.Transaktion.IODatumZeit = Now XML.Transaktion.IODatumZeit = Now
XML.Transaktion.IOReferenz = cDY.ncts_Trans_Referenz XML.Transaktion.IOReferenz = cDY.ncts_Trans_Referenz
'If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then XML.Transaktion.IODivision3 = cDakosyFunftions.getDivision(cDY.ncts_firma, Art) '"SUW" 'If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then XML.Transaktion.IODivision3 = cDakosyFunftions.getDivision(cDY.ncts_firma, Art) '"SUW"
@@ -1886,22 +1887,26 @@ Public Class cDakosyNCTSOut004
End If End If
If XML.Transaktion.IOPartner = "UNAT" Then If XML.Transaktion.IOPartner = "UNAT" Then
'Ansprechpartner Inhaber Versandverfahren (Inhaber selbst bleibt unverändert) 'Inhaber aus DAKOSY-Stammreferenz beibehalten, nur Kontakt ergänzen
If XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure IsNot Nothing Then If XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure Is Nothing Then
Dim holder = XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure = New VersandanmeldungNCTSDE_004.HolderOfTheTransitProcedureVAType
If holder.ContactPerson Is Nothing Then holder.ContactPerson = New VersandanmeldungNCTSDE_004.ContactPersonVAType
holder.ContactPerson.Name = If(String.IsNullOrWhiteSpace(cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_Name), VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.Fullname, cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_Name)
holder.ContactPerson.PhoneNumber = If(String.IsNullOrWhiteSpace(cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_PhoneNumber), getTelefon(), cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_PhoneNumber)
holder.ContactPerson.EMailAddress = If(String.IsNullOrWhiteSpace(cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_EMailAddress), If(String.IsNullOrWhiteSpace(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email), getDefaultMail_FIRMA(), VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email), cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_EMailAddress)
End If End If
Dim holder = XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure
If holder.ContactPerson Is Nothing Then holder.ContactPerson = New VersandanmeldungNCTSDE_004.ContactPersonVAType
holder.ContactPerson.Name = If(String.IsNullOrWhiteSpace(cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_Name), VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.Fullname, cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_Name)
holder.ContactPerson.PhoneNumber = If(String.IsNullOrWhiteSpace(cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_PhoneNumber), getTelefon(), cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_PhoneNumber)
holder.ContactPerson.EMailAddress = If(String.IsNullOrWhiteSpace(cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_EMailAddress), If(String.IsNullOrWhiteSpace(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email), getDefaultMail_FIRMA(), VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email), cDY.ncts_HolderOfTheTransitProcedure_ContactPerson_EMailAddress)
End If End If
'Vertreter Inhaber Versandverfahren 'Vertreter Inhaber Versandverfahren
If cDY.ncts_Representative_IdentificationNumber IsNot Nothing Then If cDY.ncts_Representative_IdentificationNumber IsNot Nothing Then
XML.EinzelVersandanmeldung.TransitOperation.Representative = New VersandanmeldungNCTSDE_004.RepresentativeVAType XML.EinzelVersandanmeldung.TransitOperation.Representative = New VersandanmeldungNCTSDE_004.RepresentativeVAType
@@ -2974,6 +2979,37 @@ Public Class cDakosyNCTSOut004
Next Next
End If End If
'========================================================================================================================
'Einheitliche Versender/Empfänger auf Kopfebene zusammenfassen
Dim transit = XML.EinzelVersandanmeldung.TransitOperation
If transit.HouseConsignment IsNot Nothing AndAlso transit.HouseConsignment.Count > 0 Then
Dim houses = transit.HouseConsignment
Dim firstConsignor = houses(0).Consignor
Dim firstConsignee = houses(0).Consignee
Dim sameConsignor As Boolean = firstConsignor IsNot Nothing AndAlso houses.All(Function(h) SameNCTSParty(firstConsignor, h.Consignor))
Dim sameConsignee As Boolean = firstConsignee IsNot Nothing AndAlso houses.All(Function(h) SameNCTSParty(firstConsignee, h.Consignee))
If sameConsignor Then
transit.Consignor = firstConsignor
For Each h In houses
h.Consignor = Nothing
Next
End If
If sameConsignee Then
transit.Consignee = firstConsignee
For Each h In houses
h.Consignee = Nothing
Next
End If
End If
'========================================================================================================================
Dim saveDir = StartupPath & "\Dakosy_SEND\" Dim saveDir = StartupPath & "\Dakosy_SEND\"
If Not System.IO.Directory.Exists(saveDir) Then If Not System.IO.Directory.Exists(saveDir) Then
System.IO.Directory.CreateDirectory(saveDir) System.IO.Directory.CreateDirectory(saveDir)
@@ -2993,6 +3029,30 @@ Public Class cDakosyNCTSOut004
Return False Return False
End Function End Function
Private Shared Function SameNCTSParty(a As VersandanmeldungNCTSDE_004.AddressVA1Type, b As VersandanmeldungNCTSDE_004.AddressVA1Type) As Boolean
If a Is Nothing OrElse b Is Nothing Then Return False
Dim eoriA As String = If(a.IdentificationNumber, "").Trim().ToUpperInvariant()
Dim eoriB As String = If(b.IdentificationNumber, "").Trim().ToUpperInvariant()
If eoriA <> "" AndAlso eoriB <> "" Then
Return eoriA = eoriB
End If
'Wenn nur eine EORI vorhanden ist, keine automatische Gleichsetzung
If eoriA <> eoriB Then Return False
Dim norm As Func(Of String, String) = Function(s) String.Join(" ", If(s, "").Trim().ToUpperInvariant().Split(New Char() {" "c, ControlChars.Tab}, StringSplitOptions.RemoveEmptyEntries))
If norm(a.Name) = "" OrElse norm(b.Name) = "" Then Return False
Return norm(a.Name) = norm(b.Name) AndAlso
norm(a.StreetAndNumber) = norm(b.StreetAndNumber) AndAlso
norm(a.Postcode) = norm(b.Postcode) AndAlso
norm(a.City) = norm(b.City) AndAlso
norm(a.Country) = norm(b.Country)
End Function
Private Shared Function getTelefon() As String Private Shared Function getTelefon() As String
Dim defaultDW = "200" Dim defaultDW = "200"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA

View File

@@ -245,6 +245,12 @@ Public Class cImporter_DakosyToVERAG
item.zaItem_PackageColli = (wp.ezaWP_PackstueckAnzahl) item.zaItem_PackageColli = (wp.ezaWP_PackstueckAnzahl)
item.zaItem_PackageType = wp.ezaWP_PackstueckArt item.zaItem_PackageType = wp.ezaWP_PackstueckArt
Dim packageNumber As Integer
item.Packages.Add(New cVERAG_CustomsDeclarations_ItemPackage With {
.zaPkg_Type = item.zaItem_PackageType,
.zaPkg_Number = If(Integer.TryParse(item.zaItem_PackageColli, packageNumber), CType(packageNumber, Integer?), Nothing),
.zaPkg_Marks = item.zaItem_PackageMark
})
item.zaItem_GrossMass = ToNullableDecimal(wp.ezaWP_Rohmasse) item.zaItem_GrossMass = ToNullableDecimal(wp.ezaWP_Rohmasse)
item.zaItem_NetMass = ToNullableDecimal(wp.ezaWP_Eigenmasse) item.zaItem_NetMass = ToNullableDecimal(wp.ezaWP_Eigenmasse)

View File

@@ -11,7 +11,14 @@ Public Class cWorker_AES_EXG
Shared Function readEZA_DatenZumAusgang_DataEXITDE_005(FORM As frmDYNachrichtenVerarbeitung, d As String, saveVerwahrung As Boolean) As String Shared Function readEZA_DatenZumAusgang_DataEXITDE_005(FORM As frmDYNachrichtenVerarbeitung, d As String, saveVerwahrung As Boolean) As String
Try Try
Dim VWI As DAKOSY_Worker.DataEXITDE.DatenZumAusgangXDTyp = DAKOSY_Worker.DataEXITDE.DatenZumAusgangXDTyp.LoadFromFile(d)
Dim VWI As DAKOSY_Worker.DataEXITDE.DatenZumAusgangXDTyp
Using fs As New System.IO.FileStream(d, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
VWI = DAKOSY_Worker.DataEXITDE.DatenZumAusgangXDTyp.Deserialize(fs)
End Using
Dim MRN = "" Dim MRN = ""
Dim RegistriernummerATLAS = "" Dim RegistriernummerATLAS = ""
Dim ankungsdatum As Object = Nothing Dim ankungsdatum As Object = Nothing