Deserialize EXG
This commit is contained in:
@@ -1615,7 +1615,8 @@ Public Class cDakosyNCTSOut004
|
||||
|
||||
'Transaktion:
|
||||
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.IOReferenz = cDY.ncts_Trans_Referenz
|
||||
'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
|
||||
|
||||
|
||||
|
||||
If XML.Transaktion.IOPartner = "UNAT" Then
|
||||
|
||||
'Ansprechpartner Inhaber Versandverfahren (Inhaber selbst bleibt unverändert)
|
||||
If XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure IsNot Nothing Then
|
||||
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)
|
||||
'Inhaber aus DAKOSY-Stammreferenz beibehalten, nur Kontakt ergänzen
|
||||
If XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure Is Nothing Then
|
||||
XML.EinzelVersandanmeldung.TransitOperation.HolderOfTheTransitProcedure = New VersandanmeldungNCTSDE_004.HolderOfTheTransitProcedureVAType
|
||||
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
|
||||
|
||||
|
||||
|
||||
'Vertreter Inhaber Versandverfahren
|
||||
If cDY.ncts_Representative_IdentificationNumber IsNot Nothing Then
|
||||
XML.EinzelVersandanmeldung.TransitOperation.Representative = New VersandanmeldungNCTSDE_004.RepresentativeVAType
|
||||
@@ -2974,6 +2979,37 @@ Public Class cDakosyNCTSOut004
|
||||
Next
|
||||
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\"
|
||||
If Not System.IO.Directory.Exists(saveDir) Then
|
||||
System.IO.Directory.CreateDirectory(saveDir)
|
||||
@@ -2993,6 +3029,30 @@ Public Class cDakosyNCTSOut004
|
||||
Return False
|
||||
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
|
||||
Dim defaultDW = "200"
|
||||
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
||||
|
||||
Reference in New Issue
Block a user