Imports System.Globalization
Imports System.IO
Imports System.Xml
Imports DAKOSY_Worker
Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Spreadsheet
Imports iTextSharp.text.pdf
Imports VERAG_PROG_ALLGEMEIN

Public Class cWorker_NCTS
    Public Shared Dateiname = ""

    Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL



    Public Shared Function readNCTS_VersandanmeldungXML(FORM As frmDYNachrichtenVerarbeitung, doc As XmlDocument, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            readNCTS_VersandanmeldungXML = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DETUDC>") Then
                Dim xmlDETUDC = XmlString.Substring(XmlString.IndexOf("<DETUDC>"), XmlString.IndexOf("</DETUDC>") + 9 - XmlString.IndexOf("<DETUDC>"))
                '  MsgBox(xmlDETUDC)
                Dim p = Path.GetTempFileName

                Using outputFile As New StreamWriter(p, False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDETUDC)
                    outputFile.Close()


                    Dim AnsprechpTMP_Email = ""
                    Dim DETUDC As DAKOSY_Worker.DETUDC.DETUDC = DAKOSY_Worker.DETUDC.DETUDC.LoadFromFile(p)
                    '  Dim NCTS As New DAKOSY_Worker.cDakosyNCTS



                    If DETUDC IsNot Nothing AndAlso DETUDC.Header IsNot Nothing AndAlso DETUDC.Header.LocalReferenceNumber IsNot Nothing AndAlso DETUDC.Header.LocalReferenceNumber <> "" Then
                        readNCTS_VersandanmeldungXML = DETUDC.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = frmDYNachrichtenVerarbeitung.saveDY_ZA(readNCTS_VersandanmeldungXML, "NCTS")

                    Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut = DAKOSY_Worker.cDakosyNCTSOut.LOADByBezugsNr(readNCTS_VersandanmeldungXML, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

                    If NCTS Is Nothing Then NCTS = New DAKOSY_Worker.cDakosyNCTSOut
                    If DY_TMP IsNot Nothing Then NCTS.ncts_dyaAnmID = DY_TMP.dy_Id

                    NCTS.ncts_ObjectName = readNCTS_VersandanmeldungXML
                    If DY_TMP.dy_AvisoId Is Nothing Then
                        DY_TMP.tryFindAviso()
                        DY_TMP.SAVE()
                    End If

                    If DETUDC IsNot Nothing Then


                        If DETUDC.Header IsNot Nothing Then
                            NCTS.ncts_VersendungsLandCode = DETUDC.Header.DepartureCountry
                            NCTS.ncts_BestimmungslandCode = DETUDC.Header.DestinationCountry

                            NCTS.ncts_SumA_Ladeort = DETUDC.Header.LoadingPlace
                            NCTS.ncts_SumA_Entladeort = DETUDC.Header.UnloadingPlace
                            If getDatumXMLNothing(DETUDC.Header.PresentationDate.Date) IsNot Nothing Then
                                NCTS.ncts_Wiedergestellungsdatum = CDate(getDatumXMLNothing(DETUDC.Header.PresentationDate.Date))
                            End If
                            NCTS.ncts_GesamtRohmasse = DETUDC.Header.TotalGrossMassMeasure
                            NCTS.ncts_SumA_BesondereUmstaende = DETUDC.Header.SpecificCircumstanceIndicator
                            NCTS.ncts_SumA_BefoerderungskostenZahlungsweise = DETUDC.Header.TransportChargesPaymentMethod
                            NCTS.ncts_SumA_KennnummerSendung = DETUDC.Header.CommercialReferenceNumber
                            NCTS.ncts_KzVereinfachtesVerfahren = DETUDC.Header.SimplifiedProcedureFlag
                            NCTS.ncts_SumA_KzSumASicherheit = DETUDC.Header.SecurityFlag

                            If DETUDC.Header.Declaration IsNot Nothing Then NCTS.ncts_ArtAnmeldung = DETUDC.Header.Declaration.Type
                            ' MsgBox(DETUDC.Header.MessageVersion) 'NCTS.ncts_Trans_Version = DETUDC.Header.MessageVersion    NUMERIC
                        End If
                        If True Then

                            If DETUDC.Packages IsNot Nothing Then
                                NCTS.ncts_GesamtAnzahlPackstuecke = DETUDC.Packages.Quantity
                            End If
                            If DETUDC.AuthorisedConsignee IsNot Nothing AndAlso DETUDC.AuthorisedConsignee.Identification IsNot Nothing Then
                                NCTS.ncts_ZugelassenerEmpfaenger_EORI = DETUDC.AuthorisedConsignee.Identification.ReferenceNumber
                            End If

                            'VERSCHLÜSSE
                            If DETUDC.Seals IsNot Nothing Then
                                NCTS.ncts_Verschluss_ArtCode = DETUDC.Seals.Type
                                NCTS.ncts_Verschluss_Anzahl = DETUDC.Seals.Number
                                If DETUDC.Seals.Seal IsNot Nothing AndAlso DETUDC.Seals.Seal.Count > 0 Then
                                    Dim cntTmp = 0
                                    For Each SEAL In DETUDC.Seals.Seal
                                        If cntTmp = 0 Then NCTS.ncts_Verschluss_Zeichen1 = SEAL.Identity
                                        If cntTmp = 1 Then NCTS.ncts_Verschluss_Zeichen2 = SEAL.Identity
                                        If cntTmp = 2 Then NCTS.ncts_Verschluss_Zeichen3 = SEAL.Identity
                                        If cntTmp = 3 Then NCTS.ncts_Verschluss_Zeichen4 = SEAL.Identity
                                        If cntTmp = 4 Then NCTS.ncts_Verschluss_Zeichen5 = SEAL.Identity
                                        If cntTmp = 5 Then NCTS.ncts_Verschluss_Zeichen6 = SEAL.Identity
                                        If cntTmp = 6 Then NCTS.ncts_Verschluss_Zeichen7 = SEAL.Identity
                                        If cntTmp = 7 Then NCTS.ncts_Verschluss_Zeichen8 = SEAL.Identity
                                        If cntTmp = 8 Then NCTS.ncts_Verschluss_Zeichen9 = SEAL.Identity
                                        If cntTmp = 9 Then NCTS.ncts_Verschluss_Zeichen10 = SEAL.Identity
                                        If cntTmp = 10 Then NCTS.ncts_Verschluss_Zeichen11 = SEAL.Identity
                                        If cntTmp = 11 Then NCTS.ncts_Verschluss_Zeichen12 = SEAL.Identity
                                        If cntTmp = 12 Then NCTS.ncts_Verschluss_Zeichen13 = SEAL.Identity
                                        If cntTmp = 13 Then NCTS.ncts_Verschluss_Zeichen14 = SEAL.Identity
                                        If cntTmp = 14 Then NCTS.ncts_Verschluss_Zeichen15 = SEAL.Identity
                                        If cntTmp = 15 Then NCTS.ncts_Verschluss_Zeichen16 = SEAL.Identity
                                        cntTmp += 1
                                    Next
                                End If
                            End If


                            'BefoerderungsrouteLand
                            If DETUDC.Itinerary IsNot Nothing Then
                                If DETUDC.Itinerary IsNot Nothing AndAlso DETUDC.Itinerary.Count > 0 Then
                                    Dim cntTmp = 0
                                    For Each Route In DETUDC.Itinerary
                                        If cntTmp = 0 Then NCTS.ncts_SumA_BefoerderungsrouteLand1 = Route.Country
                                        If cntTmp = 1 Then NCTS.ncts_SumA_BefoerderungsrouteLand2 = Route.Country
                                        If cntTmp = 2 Then NCTS.ncts_SumA_BefoerderungsrouteLand3 = Route.Country
                                        If cntTmp = 3 Then NCTS.ncts_SumA_BefoerderungsrouteLand4 = Route.Country
                                        If cntTmp = 4 Then NCTS.ncts_SumA_BefoerderungsrouteLand5 = Route.Country
                                        If cntTmp = 5 Then NCTS.ncts_SumA_BefoerderungsrouteLand6 = Route.Country
                                        If cntTmp = 6 Then NCTS.ncts_SumA_BefoerderungsrouteLand7 = Route.Country
                                        If cntTmp = 7 Then NCTS.ncts_SumA_BefoerderungsrouteLand8 = Route.Country
                                        If cntTmp = 8 Then NCTS.ncts_SumA_BefoerderungsrouteLand9 = Route.Country
                                        If cntTmp = 9 Then NCTS.ncts_SumA_BefoerderungsrouteLand10 = Route.Country
                                        If cntTmp = 10 Then NCTS.ncts_SumA_BefoerderungsrouteLand11 = Route.Country
                                        If cntTmp = 11 Then NCTS.ncts_SumA_BefoerderungsrouteLand12 = Route.Country
                                        cntTmp += 1
                                    Next
                                End If
                            End If


                            'Durchgangszollstelle
                            If DETUDC.TransitCustomsOffice IsNot Nothing Then
                                If DETUDC.TransitCustomsOffice IsNot Nothing AndAlso DETUDC.TransitCustomsOffice.Count > 0 Then
                                    Dim cntTmp = 0
                                    For Each DZST In DETUDC.TransitCustomsOffice
                                        If cntTmp = 0 Then NCTS.ncts_DurchgangszollstelleDienststellnummer1 = DZST.ReferenceNumber
                                        If cntTmp = 1 Then NCTS.ncts_DurchgangszollstelleDienststellnummer2 = DZST.ReferenceNumber
                                        If cntTmp = 2 Then NCTS.ncts_DurchgangszollstelleDienststellnummer3 = DZST.ReferenceNumber
                                        If cntTmp = 3 Then NCTS.ncts_DurchgangszollstelleDienststellnummer4 = DZST.ReferenceNumber
                                        If cntTmp = 4 Then NCTS.ncts_DurchgangszollstelleDienststellnummer5 = DZST.ReferenceNumber
                                        If cntTmp = 5 Then NCTS.ncts_DurchgangszollstelleDienststellnummer6 = DZST.ReferenceNumber
                                        If cntTmp = 6 Then NCTS.ncts_DurchgangszollstelleDienststellnummer7 = DZST.ReferenceNumber
                                        If cntTmp = 7 Then NCTS.ncts_DurchgangszollstelleDienststellnummer8 = DZST.ReferenceNumber
                                        If cntTmp = 8 Then NCTS.ncts_DurchgangszollstelleDienststellnummer9 = DZST.ReferenceNumber
                                        cntTmp += 1
                                    Next
                                End If
                            End If

                            If DETUDC.ProcedureOwner IsNot Nothing Then
                                If DETUDC.ProcedureOwner.ContactPerson IsNot Nothing Then
                                    Dim AnsprechpTMP = DETUDC.ProcedureOwner.ContactPerson.Name
                                    If AnsprechpTMP <> "" Then
                                        Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & AnsprechpTMP & "' or  REPLACE([mit_DAKOSY_SBFull], ' ', '') = '" & AnsprechpTMP & "'", "ADMIN")
                                        If SB_Tmp <> "" Then
                                            NCTS.ncts_Bearbeiter = SB_Tmp
                                        Else
                                            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & AnsprechpTMP & " konnte nicht ermittelt werden!", "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'", System.Reflection.MethodInfo.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
                                        End If
                                    End If
                                    If DETUDC.ProcedureOwner.ContactPerson.MailAddress IsNot Nothing Then
                                        AnsprechpTMP_Email = DETUDC.ProcedureOwner.ContactPerson.MailAddress


                                        'If AnsprechpTMP_Email.Contains("@imex") Then
                                        '    NCTS.ncts_firma = "IMEX"
                                        '    NCTS.ncts_niederlassung = "IMEX"
                                        '    'GLOBAL--> EORI
                                        'ElseIf AnsprechpTMP_Email.Contains("@ambar") Then
                                        '    NCTS.ncts_firma = "AMBAR"
                                        '    NCTS.ncts_niederlassung = "AMBAR"
                                        'ElseIf AnsprechpTMP_Email.Contains("atilla@verag.ag") Or AnsprechpTMP_Email.Contains("@atilla") Then
                                        '    NCTS.ncts_firma = "ATILLA"
                                        '    NCTS.ncts_niederlassung = "SUB"
                                        'ElseIf AnsprechpTMP_Email.Contains("@durmaz") Then
                                        '    NCTS.ncts_firma = "DURMAZ"
                                        '    NCTS.ncts_niederlassung = "SBG"
                                        '    'GLOBAL--> EORI
                                        'ElseIf AnsprechpTMP_Email.Contains("@verag") Then
                                        '    NCTS.ncts_firma = "VERAG"
                                        '    '   EZA.eza_niederlassung = "IMEX"
                                        '    'GLOBAL--> EORI
                                        'ElseIf AnsprechpTMP_Email.Contains("@unisped") Then
                                        '    NCTS.ncts_firma = "UNISPED"
                                        '    NCTS.ncts_niederlassung = "ATSP"
                                        '    'GLOBAL--> EORI
                                        'End If
                                    End If
                                End If
                            End If

                            ' 	 	Ansprechpartner

                            'Dim AnsprechpStellungTMP = cEDI.getSimpleLine("RFF+ACD:", lines)

                            If DETUDC.MetaData IsNot Nothing Then
                                If DETUDC.MetaData.Preparation IsNot Nothing Then
                                    If getDatumXMLNothing(DETUDC.MetaData.Preparation.Date) IsNot Nothing Then
                                        NCTS.ncts_Trans_DatumZeit = CDate(getDatumXMLNothing(DETUDC.MetaData.Preparation.Date))
                                    End If
                                End If

                                If DETUDC.MetaData.InterchangeSender IsNot Nothing AndAlso DETUDC.MetaData.InterchangeSender.Identification IsNot Nothing Then
                                    NCTS.ncts_NachrichtenSenderTIN = DETUDC.MetaData.InterchangeSender.Identification.ReferenceNumber
                                    NCTS.ncts_NachrichtenSenderNLNR = DETUDC.MetaData.InterchangeSender.Identification.SubsidiaryNumber

                                End If
                                If DETUDC.MetaData.InterchangeRecipient IsNot Nothing AndAlso DETUDC.MetaData.InterchangeRecipient.Identification IsNot Nothing Then
                                    NCTS.ncts_NachrichtenempfaengerDST = DETUDC.MetaData.InterchangeRecipient.Identification.ReferenceNumber
                                End If
                            End If

                            If DETUDC.DepartureCustomsOffice IsNot Nothing Then NCTS.ncts_AbgangsDienststellennummer = DETUDC.DepartureCustomsOffice.ReferenceNumber
                            If DETUDC.DestinationCustomsOffice IsNot Nothing Then NCTS.ncts_BestimmungsstelleDienststellennummer = DETUDC.DestinationCustomsOffice.ReferenceNumber

                            'Hauptverpflichteter
                            If DETUDC.SecurityConsignor IsNot Nothing Then
                                NCTS.ncts_Hauptverpflichteter_Name = DETUDC.SecurityConsignor.Name
                                If DETUDC.SecurityConsignor.Address IsNot Nothing Then
                                    NCTS.ncts_Hauptverpflichteter_StrasseHausnummer = DETUDC.SecurityConsignor.Address.Line
                                    NCTS.ncts_Hauptverpflichteter_Ort = DETUDC.SecurityConsignor.Address.City
                                    NCTS.ncts_Hauptverpflichteter_PLZ = DETUDC.SecurityConsignor.Address.Postcode
                                    NCTS.ncts_Hauptverpflichteter_Land = DETUDC.SecurityConsignor.Address.Country
                                End If
                                If DETUDC.SecurityConsignor.Identification IsNot Nothing Then
                                    NCTS.ncts_Hauptverpflichteter_EORI = DETUDC.SecurityConsignor.Identification.ReferenceNumber
                                    NCTS.ncts_Hauptverpflichteter_NLNR = DETUDC.SecurityConsignor.Identification.SubsidiaryNumber
                                End If
                            End If

                        End If
                        If DETUDC.Body IsNot Nothing Then
                            ' 	 	Versender
                            If DETUDC.Body.Consignor IsNot Nothing Then
                                NCTS.ncts_Versender_Name = DETUDC.Body.Consignor.Name
                                If DETUDC.Body.Consignor.Address IsNot Nothing Then
                                    NCTS.ncts_Versender_StrasseHausnummer = DETUDC.Body.Consignor.Address.Line
                                    NCTS.ncts_Versender_Ort = DETUDC.Body.Consignor.Address.City
                                    NCTS.ncts_Versender_PLZ = DETUDC.Body.Consignor.Address.Postcode
                                    NCTS.ncts_Versender_Land = DETUDC.Body.Consignor.Address.Country
                                End If
                                If DETUDC.Body.Consignor.Identification IsNot Nothing Then
                                    NCTS.ncts_Versender_EORI = DETUDC.Body.Consignor.Identification.ReferenceNumber
                                    NCTS.ncts_Versender_NLNR = DETUDC.Body.Consignor.Identification.SubsidiaryNumber
                                End If
                            End If
                            ' 	 	Empfänger
                            If DETUDC.Body.Consignee IsNot Nothing Then
                                NCTS.ncts_Empfaenger_Name = DETUDC.Body.Consignee.Name
                                If DETUDC.Body.Consignee.Address IsNot Nothing Then
                                    NCTS.ncts_Empfaenger_StrasseHausnummer = DETUDC.Body.Consignee.Address.Line
                                    NCTS.ncts_Empfaenger_Ort = DETUDC.Body.Consignee.Address.City
                                    NCTS.ncts_Empfaenger_PLZ = DETUDC.Body.Consignee.Address.Postcode
                                    NCTS.ncts_Empfaenger_Land = DETUDC.Body.Consignee.Address.Country
                                End If
                                If DETUDC.Body.Consignee.Identification IsNot Nothing Then
                                    NCTS.ncts_Empfaenger_EORI = DETUDC.Body.Consignee.Identification.ReferenceNumber
                                    NCTS.ncts_Empfaenger_NLNR = DETUDC.Body.Consignee.Identification.SubsidiaryNumber
                                End If
                            End If

                        End If


                        ' 	 	Empfänger
                        If DETUDC.Carrier IsNot Nothing Then
                            NCTS.ncts_SumA_Befoerderer_Name = DETUDC.Carrier.Name
                            If DETUDC.Carrier.Address IsNot Nothing Then
                                NCTS.ncts_SumA_Befoerderer_StrasseHausnummer = DETUDC.Carrier.Address.Line
                                NCTS.ncts_SumA_Befoerderer_Ort = DETUDC.Carrier.Address.City
                                NCTS.ncts_SumA_Befoerderer_PLZ = DETUDC.Carrier.Address.Postcode
                                NCTS.ncts_SumA_Befoerderer_Land = DETUDC.Carrier.Address.Country
                            End If
                            If DETUDC.Carrier.Identification IsNot Nothing Then
                                NCTS.ncts_SumA_Befoerderer_EORI = DETUDC.Carrier.Identification.ReferenceNumber
                                NCTS.ncts_SumA_Befoerderer_NLNR = DETUDC.Carrier.Identification.SubsidiaryNumber
                            End If
                        End If


                        If DETUDC.DepartureTransportMeans IsNot Nothing Then
                            NCTS.ncts_Befoerderungsmittel_KennzeichenAbgang = DETUDC.DepartureTransportMeans.Identity
                            NCTS.ncts_Befoerderungsmittel_SttaszugehoerigkeitAbgangCode = DETUDC.DepartureTransportMeans.Nationality
                        End If

                        If DETUDC.BorderTransportMeans IsNot Nothing Then
                            NCTS.ncts_Befoerderungsmittel_KennzeichenGrenzueberschreitend = DETUDC.BorderTransportMeans.Identity
                            NCTS.ncts_Befoerderungsmittel_StaatszugehoerigkeitGrenzueberschreitendCode = DETUDC.BorderTransportMeans.Nationality
                            NCTS.ncts_Befoerderungsmittel_ArtGrenzueberschreitung = DETUDC.BorderTransportMeans.Type
                            NCTS.ncts_Befoerderungsmittel_VerkehrszweigGrenzueberschreitent = DETUDC.BorderTransportMeans.Mode
                        End If


                        'POSITIONEN
                        If DETUDC.Body IsNot Nothing AndAlso DETUDC.Body.GoodsItem IsNot Nothing AndAlso DETUDC.Body.GoodsItem.Count > 0 Then
                            NCTS.ncts_WARENPOS.Clear()

                            For Each GOODSITEM In DETUDC.Body.GoodsItem
                                Dim WP As New DAKOSY_Worker.cDakosy_NCTSOut_Warenposition

                                WP.nctsWP_PositionsNummer = GOODSITEM.SequenceNumber
                                If GOODSITEM.CommodityCode IsNot Nothing Then WP.nctsWP_Warennummer = GOODSITEM.CommodityCode.CommodityCode
                                If GOODSITEM.Declaration IsNot Nothing Then WP.nctsWP_ArtAnmeldungPositionCode = GOODSITEM.Declaration.Type

                                WP.nctsWP_Rohmasse = GOODSITEM.GrossMassMeasure
                                WP.nctsWP_Eigenmasse = GOODSITEM.NetMassMeasure
                                WP.nctsWP_Warenbezeichnung = GOODSITEM.GoodsDescription

                                'Damit nicht zu lang:
                                If WP.nctsWP_Warenbezeichnung IsNot Nothing AndAlso WP.nctsWP_Warenbezeichnung.length > 280 Then
                                    WP.nctsWP_Warenbezeichnung = WP.nctsWP_Warenbezeichnung.substring(0, 280)
                                End If

                                WP.nctsWP_Eigenmasse = GOODSITEM.NetMassMeasure
                                WP.nctsWP_BestimmungslandPositionCode = GOODSITEM.DestinationCountry
                                WP.nctsWP_VersendungslandPositionCode = GOODSITEM.DepartureCountry


                                If GOODSITEM.Package IsNot Nothing AndAlso GOODSITEM.Package.Count > 0 Then
                                    For Each PACKAGE In GOODSITEM.Package
                                        Dim PST = New DAKOSY_Worker.cDakosy_NCTSOut_WarenpositionPackstuecke()
                                        PST.nctsWpPk_PackstueckeAnzahl = PACKAGE.Quantity
                                        PST.nctsWpPk_Verpackungsart = PACKAGE.Kind
                                        PST.nctsWpPk_ZeichenNummern = PACKAGE.MarksNumbers
                                        WP.nctsWP_PACKSTUECKE.Add(PST)
                                    Next
                                End If


                                If GOODSITEM.Document IsNot Nothing AndAlso GOODSITEM.Document.Count > 0 Then
                                    For Each ULdoc In GOODSITEM.Document
                                        Dim UL = New DAKOSY_Worker.cDakosy_NCTSOut_WarenpositionVorgelegteUnterlagen()
                                        UL.nctsWpUl_Referenz = ULdoc.ReferenceNumber
                                        UL.nctsWpUl_Typ = ULdoc.Type
                                        UL.nctsWpUl_Zusatz = ULdoc.Complement
                                        WP.nctsWP_UNTERLAGEN.Add(UL)
                                    Next
                                End If


                                NCTS.ncts_WARENPOS.Add(WP)
                            Next
                        End If


                        If DETUDC.Guarantees IsNot Nothing AndAlso DETUDC.Guarantees IsNot Nothing AndAlso DETUDC.Guarantees.Count > 0 Then
                            For Each GUARANTEE In DETUDC.Guarantees
                                Dim SA As New DAKOSY_Worker.cDakosy_NCTSOut_Sicherheitsangaben

                                SA.nctsSA_AbgabenBetrag = GUARANTEE.Amount
                                SA.nctsSA_ArtCode = GUARANTEE.Type
                                SA.nctsSA_BezeichnungBescheinigun = GUARANTEE.Certificate

                                If GUARANTEE.NCTS IsNot Nothing Then
                                    SA.nctsSA_GRN = GUARANTEE.NCTS.GuaranteeReferenceNumber
                                    SA.nctsSA_TIN = GUARANTEE.NCTS.Identification.ReferenceNumber
                                    SA.nctsSA_Zugriffcode = GUARANTEE.NCTS.AccessCode.Code

                                End If
                                NCTS.ncts_SICHERHEITSANGABEN.Add(SA)
                            Next
                        End If

                        '-------------------------------------------

                    End If

                    If DETUDC.ProcedureOwner IsNot Nothing Then
                        If DETUDC.ProcedureOwner.ContactPerson IsNot Nothing Then
                            Dim AnsprechpTMP = DETUDC.ProcedureOwner.ContactPerson.Name
                            If AnsprechpTMP <> "" Then
                                Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & AnsprechpTMP & "' or  REPLACE([mit_DAKOSY_SBFull], ' ', '') = '" & AnsprechpTMP & "'", "ADMIN")
                                If SB_Tmp <> "" Then
                                    NCTS.ncts_Bearbeiter = SB_Tmp
                                Else
                                    VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & AnsprechpTMP & " konnte nicht ermittelt werden!", "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'", System.Reflection.MethodInfo.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
                                End If
                            End If
                        End If
                    End If


                    frmDYNachrichtenVerarbeitung.tryGetNCTSBasicData(NCTS) 'Versuchen Daten aus der Vorerfassung zu laden - ansonsten werden diese überschrieben!

                    frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS.ncts_firma, NCTS.ncts_niederlassung, If(AnsprechpTMP_Email, "").ToString, readNCTS_VersandanmeldungXML)


                    If If(NCTS.ncts_Status, 0) <= 5 Then NCTS.ncts_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    ' If If(NCTS.ncts_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.ncts_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                    NCTS.ncts_Status_KEWILL_Equivalent = NCTS.ncts_Status

                    If NCTS.SAVE_ALL() Then
                        If If(NCTS.ncts_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05,,,, statusTMP)
                    Else
                        readNCTS_VersandanmeldungXML = ""
                    End If


                    Try
                        System.IO.File.Delete(p)
                    Catch ex As Exception
                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
                    End Try

                    FORM.addDGVEinarbeitung("NCTS: Versandanmeldung", readNCTS_VersandanmeldungXML)

                End Using

            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_VersandanmeldungXML = ""
        End Try
    End Function

    Public Shared Function readNCTS_VersandanmeldungXML_DETPDD(FORM As frmDYNachrichtenVerarbeitung, doc As XmlDocument, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            readNCTS_VersandanmeldungXML_DETPDD = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DETPDD>") Then
                Dim xmlDETPDD = XmlString.Substring(XmlString.IndexOf("<DETPDD>"), XmlString.IndexOf("</DETPDD>") + 9 - XmlString.IndexOf("<DETPDD>"))
                '  MsgBox(xmlDETPDD)
                Dim p = Path.GetTempFileName

                Using outputFile As New StreamWriter(p, False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDETPDD)
                    outputFile.Close()


                    Dim AnsprechpTMP_Email = ""
                    Dim DETPDD As DAKOSY_Worker.DETPDD.DETPDD = DAKOSY_Worker.DETPDD.DETPDD.LoadFromFile(p)
                    '  Dim NCTS As New DAKOSY_Worker.cDakosyNCTS



                    If DETPDD IsNot Nothing AndAlso DETPDD.TransitOperation IsNot Nothing AndAlso DETPDD.TransitOperation.LRN IsNot Nothing AndAlso DETPDD.TransitOperation.LRN <> "" Then
                        readNCTS_VersandanmeldungXML_DETPDD = DETPDD.TransitOperation.LRN
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = frmDYNachrichtenVerarbeitung.saveDY_ZA(readNCTS_VersandanmeldungXML_DETPDD, "NCTS")

                    Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut004 = DAKOSY_Worker.cDakosyNCTSOut004.LOADByBezugsNr(readNCTS_VersandanmeldungXML_DETPDD, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

                    If NCTS Is Nothing Then NCTS = New DAKOSY_Worker.cDakosyNCTSOut004
                    If DY_TMP IsNot Nothing Then NCTS.ncts_dyaAnmID = DY_TMP.dy_Id

                    NCTS.ncts_ObjectName = readNCTS_VersandanmeldungXML_DETPDD

                    If DY_TMP.dy_AvisoId Is Nothing Then
                        DY_TMP.tryFindAviso()
                        DY_TMP.SAVE()
                    End If

                    If DETPDD IsNot Nothing Then


                        If DETPDD.TransitOperation IsNot Nothing Then
                            If getDatumXMLNothing(DETPDD.TransitOperation.limitDate.Date) IsNot Nothing Then
                                NCTS.ncts_LimitDate = CDate(getDatumXMLNothing(DETPDD.TransitOperation.limitDate.Date))
                            End If
                            NCTS.ncts_SpecificCircomstanceIndicator = DETPDD.TransitOperation.specificCircumstanceIndicator
                            NCTS.ncts_ReductedDatasetIndicator = DETPDD.TransitOperation.reducedDatasetIndicator
                            NCTS.ncts_Security = DETPDD.TransitOperation.security
                            If DETPDD.TransitOperation.declarationType IsNot Nothing Then NCTS.ncts_Declarationtype = DETPDD.TransitOperation.declarationType
                        End If

                        If DETPDD.Consignment IsNot Nothing Then
                            NCTS.ncts_CountryOfDispatch = DETPDD.Consignment.countryOfDispatch
                            NCTS.ncts_CountryOfDestination = DETPDD.Consignment.countryOfDestination

                            If DETPDD.Consignment.PlaceOfLoading IsNot Nothing Then
                                NCTS.ncts_PlaceOfLoading_Country = DETPDD.Consignment.PlaceOfLoading.country
                                NCTS.ncts_PlaceOfLoading_Location = DETPDD.Consignment.PlaceOfLoading.location
                            End If
                            If DETPDD.Consignment.PlaceOfUnloading IsNot Nothing Then
                                NCTS.ncts_PlaceOfUnLoading_Country = DETPDD.Consignment.PlaceOfUnloading.country
                                NCTS.ncts_PlaceOfUnLoading_Location = DETPDD.Consignment.PlaceOfUnloading.location
                            End If

                            NCTS.ncts_GrossMass = DETPDD.Consignment.grossMass
                            If DETPDD.Consignment.TransportCharges IsNot Nothing Then
                                'NCTS.ncts_TransportCharges = DETPDD.Consignment.TransportCharges.methodOfPayment
                            End If

                            'Dim PkCnt = 0
                            'If DETPDD.Consignment.HouseConsignment IsNot Nothing Then
                            '    For Each HC In DETPDD.Consignment.HouseConsignment
                            '        If HC.ConsignmentItem IsNot Nothing Then
                            '            For Each HCCI In HC.ConsignmentItem
                            '                If HCCI.Packaging IsNot Nothing Then
                            '                    For Each PK In HCCI.Packaging
                            '                        If PK.numberOfPackages IsNot Nothing Then PkCnt += PK.numberOfPackages
                            '                    Next

                            '                End If
                            '            Next
                            '        End If
                            '    Next
                            'End If
                            '' NCTS.ncts_GesamtAnzahlPackstuecke = PkCnt


                            If DETPDD.Consignment.TransportEquipment IsNot Nothing Then
                                For Each TE In DETPDD.Consignment.TransportEquipment
                                    Dim NCTS_TE = New cDakosy_NCTSOut004_TransportEquipment

                                    NCTS_TE.nctsTE_NumberOfSeals = TE.numberOfSeals
                                    NCTS_TE.nctsTE_ContainerIdentificationNumber = TE.containerIdentificationNumber

                                    'NCTS_TE.nctsTE_GoodsReference = TE.GoodsReference


                                    Dim cntTmp = 0
                                    For Each SEAL In TE.Seal
                                        If cntTmp = 0 Then NCTS_TE.nctsTE_Seal_1 = SEAL.identifier
                                        If cntTmp = 1 Then NCTS_TE.nctsTE_Seal_2 = SEAL.identifier
                                        If cntTmp = 2 Then NCTS_TE.nctsTE_Seal_3 = SEAL.identifier
                                        If cntTmp = 3 Then NCTS_TE.nctsTE_Seal_4 = SEAL.identifier
                                        If cntTmp = 4 Then NCTS_TE.nctsTE_Seal_5 = SEAL.identifier
                                        If cntTmp = 5 Then NCTS_TE.nctsTE_Seal_6 = SEAL.identifier
                                        If cntTmp = 6 Then NCTS_TE.nctsTE_Seal_7 = SEAL.identifier
                                        If cntTmp = 7 Then NCTS_TE.nctsTE_Seal_8 = SEAL.identifier
                                        If cntTmp = 8 Then NCTS_TE.nctsTE_Seal_9 = SEAL.identifier
                                        If cntTmp = 9 Then NCTS_TE.nctsTE_Seal_10 = SEAL.identifier
                                        If cntTmp = 10 Then NCTS_TE.nctsTE_Seal_11 = SEAL.identifier
                                        If cntTmp = 11 Then NCTS_TE.nctsTE_Seal_12 = SEAL.identifier
                                        If cntTmp = 12 Then NCTS_TE.nctsTE_Seal_13 = SEAL.identifier
                                        If cntTmp = 13 Then NCTS_TE.nctsTE_Seal_14 = SEAL.identifier
                                        If cntTmp = 14 Then NCTS_TE.nctsTE_Seal_15 = SEAL.identifier
                                        cntTmp += 1
                                    Next
                                    NCTS.ncts_TRANSPORTEQUIPMENT.Add(NCTS_TE)
                                Next


                            End If


                            If DETPDD.Consignment.CountryOfRoutingOfConsignment IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each RT In DETPDD.Consignment.CountryOfRoutingOfConsignment

                                    If cntTmp = 0 Then NCTS.ncts_CountryOfRoutingOfConsignment_1 = RT.country
                                    If cntTmp = 1 Then NCTS.ncts_CountryOfRoutingOfConsignment_2 = RT.country
                                    If cntTmp = 2 Then NCTS.ncts_CountryOfRoutingOfConsignment_3 = RT.country
                                    If cntTmp = 3 Then NCTS.ncts_CountryOfRoutingOfConsignment_4 = RT.country
                                    If cntTmp = 4 Then NCTS.ncts_CountryOfRoutingOfConsignment_5 = RT.country
                                    If cntTmp = 5 Then NCTS.ncts_CountryOfRoutingOfConsignment_6 = RT.country
                                    If cntTmp = 6 Then NCTS.ncts_CountryOfRoutingOfConsignment_7 = RT.country
                                    If cntTmp = 7 Then NCTS.ncts_CountryOfRoutingOfConsignment_8 = RT.country
                                    If cntTmp = 8 Then NCTS.ncts_CountryOfRoutingOfConsignment_9 = RT.country
                                    If cntTmp = 9 Then NCTS.ncts_CountryOfRoutingOfConsignment_10 = RT.country
                                    If cntTmp = 10 Then NCTS.ncts_CountryOfRoutingOfConsignment_11 = RT.country
                                    If cntTmp = 11 Then NCTS.ncts_CountryOfRoutingOfConsignment_12 = RT.country
                                    If cntTmp = 12 Then NCTS.ncts_CountryOfRoutingOfConsignment_13 = RT.country
                                    If cntTmp = 13 Then NCTS.ncts_CountryOfRoutingOfConsignment_14 = RT.country
                                    If cntTmp = 14 Then NCTS.ncts_CountryOfRoutingOfConsignment_15 = RT.country
                                    cntTmp += 1
                                Next


                            End If




                            If DETPDD.Consignment.PreviousDocument IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each S In DETPDD.Consignment.PreviousDocument

                                    If cntTmp = 0 Then NCTS.ncts_PreviousDocument_1_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_1_Type = S.type : NCTS.ncts_PreviousDocument_1_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 1 Then NCTS.ncts_PreviousDocument_2_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_2_Type = S.type : NCTS.ncts_PreviousDocument_2_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 2 Then NCTS.ncts_PreviousDocument_3_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_3_Type = S.type : NCTS.ncts_PreviousDocument_3_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 3 Then NCTS.ncts_PreviousDocument_4_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_4_Type = S.type : NCTS.ncts_PreviousDocument_4_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 4 Then NCTS.ncts_PreviousDocument_5_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_5_Type = S.type : NCTS.ncts_PreviousDocument_5_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 5 Then NCTS.ncts_PreviousDocument_6_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_6_Type = S.type : NCTS.ncts_PreviousDocument_6_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 6 Then NCTS.ncts_PreviousDocument_7_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_7_Type = S.type : NCTS.ncts_PreviousDocument_7_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 7 Then NCTS.ncts_PreviousDocument_8_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_8_Type = S.type : NCTS.ncts_PreviousDocument_8_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 8 Then NCTS.ncts_PreviousDocument_9_ReferenceNumber = S.referenceNumber : NCTS.ncts_PreviousDocument_9_Type = S.type : NCTS.ncts_PreviousDocument_9_ComplementOfInformation = S.complementOfInformation

                                    cntTmp += 1
                                Next
                            End If



                            If DETPDD.Consignment.SupportingDocument IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each S In DETPDD.Consignment.SupportingDocument

                                    If cntTmp = 0 Then NCTS.ncts_SupportingDocument_1_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_1_Type = S.type : NCTS.ncts_SupportingDocument_1_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_1_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 1 Then NCTS.ncts_SupportingDocument_2_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_2_Type = S.type : NCTS.ncts_SupportingDocument_2_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_2_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 2 Then NCTS.ncts_SupportingDocument_3_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_3_Type = S.type : NCTS.ncts_SupportingDocument_3_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_3_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 3 Then NCTS.ncts_SupportingDocument_4_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_4_Type = S.type : NCTS.ncts_SupportingDocument_4_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_4_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 4 Then NCTS.ncts_SupportingDocument_5_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_5_Type = S.type : NCTS.ncts_SupportingDocument_5_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_5_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 5 Then NCTS.ncts_SupportingDocument_6_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_6_Type = S.type : NCTS.ncts_SupportingDocument_6_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_6_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 6 Then NCTS.ncts_SupportingDocument_7_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_7_Type = S.type : NCTS.ncts_SupportingDocument_7_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_7_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 7 Then NCTS.ncts_SupportingDocument_8_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_8_Type = S.type : NCTS.ncts_SupportingDocument_8_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_8_ComplementOfInformation = S.complementOfInformation
                                    If cntTmp = 8 Then NCTS.ncts_SupportingDocument_9_ReferenceNumber = S.referenceNumber : NCTS.ncts_SupportingDocument_9_Type = S.type : NCTS.ncts_SupportingDocument_9_DocumentLineItemNumber = S.documentLineItemNumber : NCTS.ncts_SupportingDocument_9_ComplementOfInformation = S.complementOfInformation

                                    cntTmp += 1
                                Next
                            End If


                            If DETPDD.Consignment.TransportDocument IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each S In DETPDD.Consignment.TransportDocument

                                    If cntTmp = 0 Then NCTS.ncts_TransportDocument_1_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_1_Type = S.type
                                    If cntTmp = 1 Then NCTS.ncts_TransportDocument_2_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_2_Type = S.type
                                    If cntTmp = 2 Then NCTS.ncts_TransportDocument_3_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_3_Type = S.type
                                    If cntTmp = 3 Then NCTS.ncts_TransportDocument_4_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_4_Type = S.type
                                    If cntTmp = 4 Then NCTS.ncts_TransportDocument_5_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_5_Type = S.type
                                    If cntTmp = 5 Then NCTS.ncts_TransportDocument_6_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_6_Type = S.type
                                    If cntTmp = 6 Then NCTS.ncts_TransportDocument_7_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_7_Type = S.type
                                    If cntTmp = 7 Then NCTS.ncts_TransportDocument_8_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_8_Type = S.type
                                    If cntTmp = 8 Then NCTS.ncts_TransportDocument_9_ReferenceNumber = S.referenceNumber : NCTS.ncts_TransportDocument_9_Type = S.type

                                    cntTmp += 1
                                Next
                            End If

                            If DETPDD.Consignment.AdditionalReference IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each S In DETPDD.Consignment.AdditionalReference

                                    If cntTmp = 0 Then NCTS.ncts_AdditionalReference_1_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_1_Type = S.type
                                    If cntTmp = 1 Then NCTS.ncts_AdditionalReference_2_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_2_Type = S.type
                                    If cntTmp = 2 Then NCTS.ncts_AdditionalReference_3_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_3_Type = S.type
                                    If cntTmp = 3 Then NCTS.ncts_AdditionalReference_4_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_4_Type = S.type
                                    If cntTmp = 4 Then NCTS.ncts_AdditionalReference_5_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_5_Type = S.type
                                    If cntTmp = 5 Then NCTS.ncts_AdditionalReference_6_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_6_Type = S.type
                                    If cntTmp = 6 Then NCTS.ncts_AdditionalReference_7_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_7_Type = S.type
                                    If cntTmp = 7 Then NCTS.ncts_AdditionalReference_8_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_8_Type = S.type
                                    If cntTmp = 8 Then NCTS.ncts_AdditionalReference_9_ReferenceNumber = S.referenceNumber : NCTS.ncts_AdditionalReference_9_Type = S.type

                                    cntTmp += 1
                                Next
                            End If


                            If DETPDD.Consignment.AdditionalInformation IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each S In DETPDD.Consignment.AdditionalInformation

                                    If cntTmp = 0 Then NCTS.ncts_AdditionalInformation_1_Code = S.code : NCTS.ncts_AdditionalInformation_1_Text = S.text
                                    If cntTmp = 1 Then NCTS.ncts_AdditionalInformation_2_Code = S.code : NCTS.ncts_AdditionalInformation_2_Text = S.text
                                    If cntTmp = 2 Then NCTS.ncts_AdditionalInformation_3_Code = S.code : NCTS.ncts_AdditionalInformation_3_Text = S.text
                                    If cntTmp = 3 Then NCTS.ncts_AdditionalInformation_4_Code = S.code : NCTS.ncts_AdditionalInformation_4_Text = S.text
                                    If cntTmp = 4 Then NCTS.ncts_AdditionalInformation_5_Code = S.code : NCTS.ncts_AdditionalInformation_5_Text = S.text
                                    If cntTmp = 5 Then NCTS.ncts_AdditionalInformation_6_Code = S.code : NCTS.ncts_AdditionalInformation_6_Text = S.text
                                    If cntTmp = 6 Then NCTS.ncts_AdditionalInformation_7_Code = S.code : NCTS.ncts_AdditionalInformation_7_Text = S.text
                                    If cntTmp = 7 Then NCTS.ncts_AdditionalInformation_8_Code = S.code : NCTS.ncts_AdditionalInformation_8_Text = S.text
                                    If cntTmp = 8 Then NCTS.ncts_AdditionalInformation_9_Code = S.code : NCTS.ncts_AdditionalInformation_9_Text = S.text

                                    cntTmp += 1
                                Next
                            End If



                        End If



                        If DETPDD.CustomsOfficeOfTransitDeclared IsNot Nothing Then
                            Dim cntTmp = 0
                            For Each CST In DETPDD.CustomsOfficeOfTransitDeclared

                                If cntTmp = 0 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_1_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_1_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 1 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_2_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_2_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 2 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_3_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_3_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 3 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_4_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_4_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 4 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_5_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_5_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 5 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_6_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_6_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 6 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_7_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_7_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 7 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_8_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_8_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))
                                If cntTmp = 8 Then NCTS.ncts_CustomsOfficeOfTransitDeclared_9_RefNumber = CST.referenceNumber : NCTS.ncts_CustomsOfficeOfTransitDeclared_9_ArravialDateTime = (getDatumXMLNothing(CST.arrivalDateAndTimeEstimated))

                                cntTmp += 1
                            Next


                        End If




                        If DETPDD.HolderOfTheTransitProcedure IsNot Nothing Then
                            If DETPDD.HolderOfTheTransitProcedure.ContactPerson IsNot Nothing Then
                                Dim AnsprechpTMP = DETPDD.HolderOfTheTransitProcedure.ContactPerson.name
                                If AnsprechpTMP <> "" Then
                                    Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & AnsprechpTMP & "' or  REPLACE([mit_DAKOSY_SBFull], ' ', '') = '" & AnsprechpTMP & "'", "ADMIN")
                                    If SB_Tmp <> "" Then
                                        NCTS.ncts_Bearbeiter = SB_Tmp
                                    ElseIf isAtez(NCTS.ncts_ObjectName) Then
                                        NCTS.ncts_Bearbeiter = "VERIMEX"
                                    Else
                                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & AnsprechpTMP & " konnte nicht ermittelt werden!", "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'", System.Reflection.MethodInfo.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
                                    End If
                                End If
                                If DETPDD.HolderOfTheTransitProcedure.ContactPerson.eMailAddress IsNot Nothing Then
                                    AnsprechpTMP_Email = DETPDD.HolderOfTheTransitProcedure.ContactPerson.eMailAddress


                                End If
                            End If
                        End If

                        If getDatumXMLNothing(DETPDD.preparationDateAndTime) IsNot Nothing Then
                            NCTS.ncts_Trans_DatumZeit = CDate(getDatumXMLNothing(DETPDD.preparationDateAndTime))
                        End If



                        If DETPDD.MessageSender IsNot Nothing Then


                            NCTS.ncts_NachrichtenSenderTIN = DETPDD.MessageSender.identificationNumber
                            NCTS.ncts_NachrichtenSenderNLNR = DETPDD.MessageSender.subsidiaryNumber


                        End If

                        If DETPDD.CustomsOfficeOfDeparture IsNot Nothing Then NCTS.ncts_CustomsOfficeOfDeparture = DETPDD.CustomsOfficeOfDeparture.referenceNumber
                        If DETPDD.CustomsOfficeOfDestinationDeclared IsNot Nothing Then NCTS.ncts_CustomsOfficeOfDestinationDeclared = DETPDD.CustomsOfficeOfDestinationDeclared.referenceNumber


                        'Hauptverpflichteter
                        If DETPDD.HolderOfTheTransitProcedure IsNot Nothing Then
                            NCTS.ncts_HolderOfTheTransitProcedure_Name = DETPDD.HolderOfTheTransitProcedure.name
                            If DETPDD.HolderOfTheTransitProcedure.Address IsNot Nothing Then
                                NCTS.ncts_HolderOfTheTransitProcedure_StreetNumber = DETPDD.HolderOfTheTransitProcedure.Address.streetAndNumber
                                NCTS.ncts_HolderOfTheTransitProcedure_City = DETPDD.HolderOfTheTransitProcedure.Address.city
                                NCTS.ncts_HolderOfTheTransitProcedure_Postcode = DETPDD.HolderOfTheTransitProcedure.Address.postcode
                                NCTS.ncts_HolderOfTheTransitProcedure_Country = DETPDD.HolderOfTheTransitProcedure.Address.country
                            End If

                            NCTS.ncts_HolderOfTheTransitProcedure_IdentificationNumber = DETPDD.HolderOfTheTransitProcedure.identificationNumber
                            NCTS.ncts_HolderOfTheTransitProcedure_TIRHolderIdentificationNumber = DETPDD.HolderOfTheTransitProcedure.TIRHolderIdentificationNumber
                            If DETPDD.HolderOfTheTransitProcedure.ContactPerson IsNot Nothing Then
                                NCTS.ncts_HolderOfTheTransitProcedure_ContactPerson_Name = DETPDD.HolderOfTheTransitProcedure.ContactPerson.name
                                NCTS.ncts_HolderOfTheTransitProcedure_ContactPerson_PhoneNumber = DETPDD.HolderOfTheTransitProcedure.ContactPerson.phoneNumber
                                NCTS.ncts_HolderOfTheTransitProcedure_ContactPerson_EMailAddress = DETPDD.HolderOfTheTransitProcedure.ContactPerson.eMailAddress
                            End If
                        End If



                        If DETPDD.Consignment IsNot Nothing Then

                            'absender
                            If DETPDD.Consignment.Consignor IsNot Nothing Then
                                NCTS.ncts_Consignor_Name = DETPDD.Consignment.Consignor.name
                                If DETPDD.Consignment.Consignor.Address IsNot Nothing Then
                                    NCTS.ncts_Consignor_StreetNumber = DETPDD.Consignment.Consignor.Address.streetAndNumber
                                    NCTS.ncts_Consignor_City = DETPDD.Consignment.Consignor.Address.city
                                    NCTS.ncts_Consignor_Postcode = DETPDD.Consignment.Consignor.Address.postcode
                                    NCTS.ncts_Consignor_Country = DETPDD.Consignment.Consignor.Address.country
                                End If

                                NCTS.ncts_Consignor_IdentificationNumber = DETPDD.Consignment.Consignor.identificationNumber
                                NCTS.ncts_Consignor_SubsidiaryNumber = DETPDD.Consignment.Consignor.subsidiaryNumber
                                If DETPDD.Consignment.Consignor.ContactPerson IsNot Nothing Then
                                    NCTS.ncts_Consignor_ContactPerson_Name = DETPDD.Consignment.Consignor.ContactPerson.name
                                    NCTS.ncts_Consignor_ContactPerson_PhoneNumber = DETPDD.Consignment.Consignor.ContactPerson.phoneNumber
                                    NCTS.ncts_Consignor_ContactPerson_EMailAddress = DETPDD.Consignment.Consignor.ContactPerson.eMailAddress
                                End If
                            End If



                            'Empfänger
                            If DETPDD.Consignment.Consignee IsNot Nothing Then
                                NCTS.ncts_Consignee_Name = DETPDD.Consignment.Consignee.name
                                If DETPDD.Consignment.Consignee.Address IsNot Nothing Then
                                    NCTS.ncts_Consignee_StreetNumber = DETPDD.Consignment.Consignee.Address.streetAndNumber
                                    NCTS.ncts_Consignee_City = DETPDD.Consignment.Consignee.Address.city
                                    NCTS.ncts_Consignee_Postcode = DETPDD.Consignment.Consignee.Address.postcode
                                    NCTS.ncts_Consignee_Country = DETPDD.Consignment.Consignee.Address.country
                                End If

                                NCTS.ncts_Consignee_IdentificationNumber = DETPDD.Consignment.Consignee.identificationNumber
                                NCTS.ncts_Consignee_SubsidiaryNumber = DETPDD.Consignment.Consignee.subsidiaryNumber
                                If DETPDD.Consignment.Consignee.ContactPerson IsNot Nothing Then
                                    NCTS.ncts_Consignee_ContactPerson_Name = DETPDD.Consignment.Consignee.ContactPerson.name
                                    NCTS.ncts_Consignee_ContactPerson_PhoneNumber = DETPDD.Consignment.Consignee.ContactPerson.phoneNumber
                                    NCTS.ncts_Consignee_ContactPerson_EMailAddress = DETPDD.Consignment.Consignee.ContactPerson.eMailAddress
                                End If
                            End If


                            'Carrier
                            If DETPDD.Consignment.Carrier IsNot Nothing Then
                                NCTS.ncts_Carrier_IdentificationNumber = DETPDD.Consignment.Carrier.identificationNumber
                                NCTS.ncts_Carrier_SubsidiaryNumber = DETPDD.Consignment.Carrier.subsidiaryNumber
                                If DETPDD.Consignment.Carrier.ContactPerson IsNot Nothing Then
                                    NCTS.ncts_Carrier_ContactPerson_Name = DETPDD.Consignment.Carrier.ContactPerson.name
                                    NCTS.ncts_Carrier_ContactPerson_PhoneNumber = DETPDD.Consignment.Carrier.ContactPerson.phoneNumber
                                    NCTS.ncts_Carrier_ContactPerson_EMailAddress = DETPDD.Consignment.Carrier.ContactPerson.eMailAddress
                                End If
                            End If




                            If DETPDD.Consignment.DepartureTransportMeans IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each BM In DETPDD.Consignment.DepartureTransportMeans

                                    If cntTmp = 0 Then NCTS.ncts_DepartureTransportMeans_1_IdentificationNumber = BM.identificationNumber : NCTS.ncts_DepartureTransportMeans_1_Nationality = BM.nationality : NCTS.ncts_DepartureTransportMeans_1_TypeOfIdentification = BM.typeOfIdentification
                                    If cntTmp = 1 Then NCTS.ncts_DepartureTransportMeans_2_IdentificationNumber = BM.identificationNumber : NCTS.ncts_DepartureTransportMeans_2_Nationality = BM.nationality : NCTS.ncts_DepartureTransportMeans_2_TypeOfIdentification = BM.typeOfIdentification
                                    If cntTmp = 2 Then NCTS.ncts_DepartureTransportMeans_3_IdentificationNumber = BM.identificationNumber : NCTS.ncts_DepartureTransportMeans_3_Nationality = BM.nationality : NCTS.ncts_DepartureTransportMeans_3_TypeOfIdentification = BM.typeOfIdentification
                                    If cntTmp = 3 Then NCTS.ncts_DepartureTransportMeans_4_IdentificationNumber = BM.identificationNumber : NCTS.ncts_DepartureTransportMeans_4_Nationality = BM.nationality : NCTS.ncts_DepartureTransportMeans_4_TypeOfIdentification = BM.typeOfIdentification

                                    cntTmp += 1
                                Next
                            End If

                            If DETPDD.Consignment.ActiveBorderTransportMeans IsNot Nothing Then
                                Dim cntTmp = 0
                                For Each BM In DETPDD.Consignment.ActiveBorderTransportMeans

                                    If cntTmp = 0 Then NCTS.ncts_ActiveBorderTransportMeans_1_IdentificationNumber = BM.identificationNumber : NCTS.ncts_ActiveBorderTransportMeans_1_Nationality = BM.nationality : NCTS.ncts_ActiveBorderTransportMeans_1_TypeOfIdentification = BM.typeOfIdentification
                                    If cntTmp = 1 Then NCTS.ncts_ActiveBorderTransportMeans_2_IdentificationNumber = BM.identificationNumber : NCTS.ncts_ActiveBorderTransportMeans_2_Nationality = BM.nationality : NCTS.ncts_ActiveBorderTransportMeans_2_TypeOfIdentification = BM.typeOfIdentification
                                    If cntTmp = 2 Then NCTS.ncts_ActiveBorderTransportMeans_3_IdentificationNumber = BM.identificationNumber : NCTS.ncts_ActiveBorderTransportMeans_3_Nationality = BM.nationality : NCTS.ncts_ActiveBorderTransportMeans_3_TypeOfIdentification = BM.typeOfIdentification
                                    If cntTmp = 3 Then NCTS.ncts_ActiveBorderTransportMeans_4_IdentificationNumber = BM.identificationNumber : NCTS.ncts_ActiveBorderTransportMeans_4_Nationality = BM.nationality : NCTS.ncts_ActiveBorderTransportMeans_4_TypeOfIdentification = BM.typeOfIdentification

                                    cntTmp += 1
                                Next


                            End If


                            NCTS.ncts_InlandModeOfTransport = DETPDD.Consignment.inlandModeOfTransport
                            NCTS.ncts_ModeOfTransportAtTheBorder = DETPDD.Consignment.modeOfTransportAtTheBorder

                        End If




                        If DETPDD.Consignment IsNot Nothing Then
                            If DETPDD.Consignment.HouseConsignment IsNot Nothing Then
                                NCTS.ncts_HOUSE_CONSIGNMENT.Clear()

                                For Each HC In DETPDD.Consignment.HouseConsignment


                                    Dim NCTS_HC As New DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment

                                    ' NCTS_HC.= sequenceNumber
                                    NCTS_HC.nctsHC_CountryOfDispatch = HC.countryOfDispatch
                                    NCTS_HC.nctsHC_CountryOfDestination = HC.countryOfDestination

                                    NCTS_HC.nctsHC_GrossMass = HC.grossMass
                                    NCTS_HC.nctsHC_ReferenceNumberUCR = HC.referenceNumberUCR





                                    'absender
                                    If HC.Consignor IsNot Nothing Then
                                        NCTS_HC.nctsHC_Consignor_Name = HC.Consignor.name
                                        If HC.Consignor.Address IsNot Nothing Then
                                            NCTS_HC.nctsHC_Consignor_StreetNumber = HC.Consignor.Address.streetAndNumber
                                            NCTS_HC.nctsHC_Consignor_City = HC.Consignor.Address.city
                                            NCTS_HC.nctsHC_Consignor_Postcode = HC.Consignor.Address.postcode
                                            NCTS_HC.nctsHC_Consignor_Country = HC.Consignor.Address.country
                                        End If

                                        NCTS_HC.nctsHC_Consignor_IdentificationNumber = HC.Consignor.identificationNumber
                                        NCTS_HC.nctsHC_Consignor_SubsidiaryNumber = HC.Consignor.subsidiaryNumber
                                        If HC.Consignor.ContactPerson IsNot Nothing Then
                                            NCTS_HC.nctsHC_Consignor_ContactPerson_Name = HC.Consignor.ContactPerson.name
                                            NCTS_HC.nctsHC_Consignor_ContactPerson_PhoneNumber = HC.Consignor.ContactPerson.phoneNumber
                                            NCTS_HC.nctsHC_Consignor_ContactPerson_EMailAddress = HC.Consignor.ContactPerson.eMailAddress
                                        End If
                                    End If



                                    'Empfänger
                                    If HC.Consignee IsNot Nothing Then
                                        NCTS_HC.nctsHC_Consignee_Name = HC.Consignee.name
                                        If HC.Consignee.Address IsNot Nothing Then
                                            NCTS_HC.nctsHC_Consignee_StreetNumber = HC.Consignee.Address.streetAndNumber
                                            NCTS_HC.nctsHC_Consignee_City = HC.Consignee.Address.city
                                            NCTS_HC.nctsHC_Consignee_Postcode = HC.Consignee.Address.postcode
                                            NCTS_HC.nctsHC_Consignee_Country = HC.Consignee.Address.country
                                        End If

                                        NCTS_HC.nctsHC_Consignee_IdentificationNumber = HC.Consignee.identificationNumber
                                        NCTS_HC.nctsHC_Consignee_SubsidiaryNumber = HC.Consignee.subsidiaryNumber
                                        If HC.Consignee.ContactPerson IsNot Nothing Then
                                            NCTS_HC.nctsHC_Consignee_ContactPerson_Name = HC.Consignee.ContactPerson.name
                                            NCTS_HC.nctsHC_Consignee_ContactPerson_PhoneNumber = HC.Consignee.ContactPerson.phoneNumber
                                            NCTS_HC.nctsHC_Consignee_ContactPerson_EMailAddress = HC.Consignee.ContactPerson.eMailAddress
                                        End If
                                    End If


                                    'Zusätzlicher Wirtschaftsbeteiligter in der Lieferkette
                                    If HC.AdditionalSupplyChainActor IsNot Nothing Then
                                        Dim cntTmp = 0
                                        For Each AD In HC.AdditionalSupplyChainActor

                                            If cntTmp = 0 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_1_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_1_Role = AD.role
                                            If cntTmp = 1 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_2_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_2_Role = AD.role
                                            If cntTmp = 2 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_3_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_3_Role = AD.role
                                            If cntTmp = 3 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_4_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_4_Role = AD.role
                                            If cntTmp = 4 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_5_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_5_Role = AD.role
                                            If cntTmp = 5 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_6_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_6_Role = AD.role
                                            If cntTmp = 6 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_7_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_7_Role = AD.role
                                            If cntTmp = 7 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_8_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_8_Role = AD.role
                                            If cntTmp = 8 Then NCTS_HC.nctsHC_AdditionalSupplyChainActor_9_IdentificationNumber = AD.identificationNumber : NCTS_HC.nctsHC_AdditionalSupplyChainActor_9_Role = AD.role

                                            cntTmp += 1
                                        Next


                                    End If




                                    'DOCS, SUPP....




                                    If HC.ConsignmentItem IsNot Nothing Then
                                        For Each HCCI In HC.ConsignmentItem

                                            Dim NCTS_HCCI As New DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem



                                            'WP.nctsWP_PositionsNummer = GOODSITEM.SequenceNumber
                                            If HCCI.Commodity IsNot Nothing Then
                                                If HCCI.Commodity.CommodityCode IsNot Nothing AndAlso HCCI.Commodity.CommodityCode.harmonizedSystemSubHeadingCode IsNot Nothing Then NCTS_HCCI.nctsHCCI_CommodityCode = HCCI.Commodity.CommodityCode.harmonizedSystemSubHeadingCode
                                                If HCCI.Commodity.GoodsMeasure IsNot Nothing Then
                                                    NCTS_HCCI.nctsHCCI_NetMass = HCCI.Commodity.GoodsMeasure.netMass
                                                    NCTS_HCCI.nctsHCCI_GrossMass = HCCI.Commodity.GoodsMeasure.grossMass
                                                End If
                                                NCTS_HCCI.nctsHCCI_DescriptionOfGoods = HCCI.Commodity.descriptionOfGoods
                                                NCTS_HCCI.nctsHCCI_CusCode = HCCI.Commodity.cusCode
                                            End If
                                            NCTS_HCCI.nctsHCCI_DeclarationType = HCCI.declarationType
                                            NCTS_HCCI.nctsHCCI_CountryOfDestination = HCCI.countryOfDestination
                                            NCTS_HCCI.nctsHCCI_CountryOfDispatch = HCCI.countryOfDispatch



                                            ''Damit nicht zu lang:
                                            'If WP.nctsWP_Warenbezeichnung IsNot Nothing AndAlso WP.nctsWP_Warenbezeichnung.length > 280 Then
                                            '    WP.nctsWP_Warenbezeichnung = WP.nctsWP_Warenbezeichnung.substring(0, 280)
                                            'End If




                                            'Empfänger
                                            If HCCI.Consignee IsNot Nothing Then
                                                NCTS_HCCI.nctsHCCI_Consignor_Name = HCCI.Consignee.name
                                                If HCCI.Consignee.Address IsNot Nothing Then
                                                    NCTS_HCCI.nctsHCCI_Consignor_StreetNumber = HCCI.Consignee.Address.streetAndNumber
                                                    NCTS_HCCI.nctsHCCI_Consignor_City = HCCI.Consignee.Address.city
                                                    NCTS_HCCI.nctsHCCI_Consignor_Postcode = HCCI.Consignee.Address.postcode
                                                    NCTS_HCCI.nctsHCCI_Consignor_Country = HCCI.Consignee.Address.country
                                                End If

                                                NCTS_HCCI.nctsHCCI_Consignor_IdentificationNumber = HCCI.Consignee.identificationNumber
                                                NCTS_HCCI.nctsHCCI_Consignor_SubsidiaryNumber = HCCI.Consignee.subsidiaryNumber
                                                If HCCI.Consignee.ContactPerson IsNot Nothing Then
                                                    NCTS_HCCI.nctsHCCI_Consignor_ContactPerson_Name = HCCI.Consignee.ContactPerson.name
                                                    NCTS_HCCI.nctsHCCI_Consignor_ContactPerson_PhoneNumber = HCCI.Consignee.ContactPerson.phoneNumber
                                                    NCTS_HCCI.nctsHCCI_Consignor_ContactPerson_EMailAddress = HCCI.Consignee.ContactPerson.eMailAddress
                                                End If
                                            End If





                                            If HCCI.PreviousDocument IsNot Nothing Then
                                                Dim cntTmp = 0
                                                For Each S In HCCI.PreviousDocument

                                                    If cntTmp = 0 Then NCTS_HCCI.nctsHCCI_PreviousDocument_1_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_1_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_1_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 1 Then NCTS_HCCI.nctsHCCI_PreviousDocument_2_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_2_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_2_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 2 Then NCTS_HCCI.nctsHCCI_PreviousDocument_3_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_3_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_3_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 3 Then NCTS_HCCI.nctsHCCI_PreviousDocument_4_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_4_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_4_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 4 Then NCTS_HCCI.nctsHCCI_PreviousDocument_5_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_5_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_5_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 5 Then NCTS_HCCI.nctsHCCI_PreviousDocument_6_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_6_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_6_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 6 Then NCTS_HCCI.nctsHCCI_PreviousDocument_7_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_7_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_7_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 7 Then NCTS_HCCI.nctsHCCI_PreviousDocument_8_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_8_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_8_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 8 Then NCTS_HCCI.nctsHCCI_PreviousDocument_9_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_PreviousDocument_9_Type = S.type : NCTS_HCCI.nctsHCCI_PreviousDocument_9_ComplementOfInformation = S.complementOfInformation

                                                    cntTmp += 1
                                                Next
                                            End If



                                            If HCCI.SupportingDocument IsNot Nothing Then
                                                Dim cntTmp = 0
                                                For Each S In HCCI.SupportingDocument

                                                    If cntTmp = 0 Then NCTS_HCCI.nctsHCCI_SupportingDocument_1_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_1_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_1_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 1 Then NCTS_HCCI.nctsHCCI_SupportingDocument_2_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_2_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_2_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 2 Then NCTS_HCCI.nctsHCCI_SupportingDocument_3_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_3_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_3_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 3 Then NCTS_HCCI.nctsHCCI_SupportingDocument_4_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_4_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_4_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 4 Then NCTS_HCCI.nctsHCCI_SupportingDocument_5_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_5_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_5_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 5 Then NCTS_HCCI.nctsHCCI_SupportingDocument_6_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_6_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_6_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 6 Then NCTS_HCCI.nctsHCCI_SupportingDocument_7_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_7_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_7_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 7 Then NCTS_HCCI.nctsHCCI_SupportingDocument_8_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_8_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_8_ComplementOfInformation = S.complementOfInformation
                                                    If cntTmp = 8 Then NCTS_HCCI.nctsHCCI_SupportingDocument_9_ReferenceNumber = S.referenceNumber : NCTS_HCCI.nctsHCCI_SupportingDocument_9_Type = S.type : NCTS_HCCI.nctsHCCI_SupportingDocument_9_ComplementOfInformation = S.complementOfInformation

                                                    cntTmp += 1
                                                Next
                                            End If





                                            If HCCI.Packaging IsNot Nothing Then
                                                For Each PC In HCCI.Packaging
                                                    Dim NCTS_PK As New DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem_Packaging


                                                    NCTS_PK.nctsHCCIPK_TypeOfPackages = PC.typeOfPackages
                                                    NCTS_PK.nctsHCCIPK_NumberOfPackages = PC.numberOfPackages
                                                    NCTS_PK.nctsHCCIPK_ShippingMarks = PC.shippingMarks
                                                    'NCTS_PK.nctsHCCIPK_GoodsItemNumber = PC.PackageReference.goodsItemNumber 'ARRAY



                                                    NCTS_HCCI.nctsHCCI_PACKAGING.Add(NCTS_PK)
                                                Next
                                            End If
                                            NCTS_HC.nctsWP_CONSIGNMENT_ITEM.Add(NCTS_HCCI)
                                        Next
                                    End If
                                    NCTS.ncts_HOUSE_CONSIGNMENT.Add(NCTS_HC)

                                Next
                            End If
                        End If




                        '-------------------------------------------

                        If DETPDD.Guarantee IsNot Nothing AndAlso DETPDD.Guarantee IsNot Nothing AndAlso DETPDD.Guarantee.Count > 0 Then
                            For Each GRT_M In DETPDD.Guarantee

                                For Each GRT In GRT_M.GuaranteeReference
                                    Dim NCTS_GRT As New DAKOSY_Worker.cDakosy_NCTSOut004_Guarantee


                                    NCTS_GRT.nctsGRT_Type = GRT_M.guaranteeType
                                    NCTS_GRT.nctsGRT_OtherGuaranteeReference = GRT_M.otherGuaranteeReference
                                    NCTS_GRT.nctsGRT_AmountToBeCovered = GRT.amountToBeCovered
                                    NCTS_GRT.nctsGRT_AccessCode = GRT.accessCode
                                    NCTS_GRT.nctsGRT_GRN = GRT.GRN
                                    NCTS_GRT.nctsGRT_Currency = GRT.currency


                                    NCTS.ncts_GUARANTEE.Add(NCTS_GRT)
                                Next
                            Next
                        End If

                        '-------------------------------------------



                    End If



                    frmDYNachrichtenVerarbeitung.tryGetNCTS004BasicData(NCTS) 'Versuchen Daten aus der Vorerfassung zu laden - ansonsten werden diese überschrieben!

                    frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS.ncts_firma, NCTS.ncts_niederlassung, If(AnsprechpTMP_Email, "").ToString, readNCTS_VersandanmeldungXML_DETPDD)


                    If If(NCTS.ncts_Status, 0) <= 5 Then NCTS.ncts_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    ' If If(NCTS.ncts_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.ncts_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                    NCTS.ncts_Status_KEWILL_Equivalent = NCTS.ncts_Status





                    If NCTS.SAVE_ALL() Then
                        If If(NCTS.ncts_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05,,,, statusTMP)
                    Else
                        readNCTS_VersandanmeldungXML_DETPDD = ""
                    End If


                    Try
                        System.IO.File.Delete(p)
                    Catch ex As Exception
                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
                    End Try

                    FORM.addDGVEinarbeitung("NCTS: Versandanmeldung", readNCTS_VersandanmeldungXML_DETPDD)

                End Using

            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_VersandanmeldungXML_DETPDD = ""
        End Try
    End Function

    Public Shared Function readNCTS_VersandanmeldungXML_DETPRH(FORM As frmDYNachrichtenVerarbeitung, doc As XmlDocument, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            readNCTS_VersandanmeldungXML_DETPRH = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DETPRH>") Then
                Dim xmlDETPRH = XmlString.Substring(XmlString.IndexOf("<DETPRH>"), XmlString.IndexOf("</DETPRH>") + 9 - XmlString.IndexOf("<DETPRH>"))
                '  MsgBox(xmlDETPRH)
                Dim p = Path.GetTempFileName

                Using outputFile As New StreamWriter(p, False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDETPRH)
                    outputFile.Close()


                    Dim AnsprechpTMP_Email = ""
                    Dim DETPRH As DAKOSY_Worker.DETPRH.DETPRH = DAKOSY_Worker.DETPRH.DETPRH.LoadFromFile(p)
                    '  Dim NCTS As New DAKOSY_Worker.cDakosyNCTS



                    If DETPRH IsNot Nothing AndAlso DETPRH.TransitOperation IsNot Nothing AndAlso DETPRH.TransitOperation.LRN IsNot Nothing AndAlso DETPRH.TransitOperation.LRN <> "" Then
                        readNCTS_VersandanmeldungXML_DETPRH = DETPRH.TransitOperation.LRN
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = frmDYNachrichtenVerarbeitung.saveDY_ZA(readNCTS_VersandanmeldungXML_DETPRH, "NCTS")

                    Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut004 = DAKOSY_Worker.cDakosyNCTSOut004.LOADByBezugsNr(readNCTS_VersandanmeldungXML_DETPRH, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

                    If NCTS Is Nothing Then NCTS = New DAKOSY_Worker.cDakosyNCTSOut004
                    If DY_TMP IsNot Nothing Then NCTS.ncts_dyaAnmID = DY_TMP.dy_Id

                    NCTS.ncts_ObjectName = readNCTS_VersandanmeldungXML_DETPRH

                    If DY_TMP.dy_AvisoId Is Nothing Then
                        DY_TMP.tryFindAviso()
                        DY_TMP.SAVE()
                    End If

                    If DETPRH IsNot Nothing Then


                        If DETPRH.TransitOperation IsNot Nothing Then
                            If getDatumXMLNothing(DETPRH.TransitOperation.limitDate.Date) IsNot Nothing Then
                                NCTS.ncts_LimitDate = CDate(getDatumXMLNothing(DETPRH.TransitOperation.limitDate.Date))
                            End If
                        End If
                    End If


                    frmDYNachrichtenVerarbeitung.tryGetNCTS004BasicData(NCTS) 'Versuchen Daten aus der Vorerfassung zu laden - ansonsten werden diese überschrieben!

                    frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS.ncts_firma, NCTS.ncts_niederlassung, If(AnsprechpTMP_Email, "").ToString, readNCTS_VersandanmeldungXML_DETPRH)


                    If If(NCTS.ncts_Status, 0) <= 50 Then NCTS.ncts_Status = DAKOSY_Worker.cDY_Statusliste.S_50
                    ' If If(NCTS.ncts_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.ncts_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                    NCTS.ncts_Status_KEWILL_Equivalent = NCTS.ncts_Status




                    If NCTS.SAVE() Then
                        If If(NCTS.ncts_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_50,,,, statusTMP)
                    Else
                        readNCTS_VersandanmeldungXML_DETPRH = ""
                    End If


                    Try
                        System.IO.File.Delete(p)
                    Catch ex As Exception
                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
                    End Try

                    FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung ZOLL DETPRH", readNCTS_VersandanmeldungXML_DETPRH)

                End Using

            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_VersandanmeldungXML_DETPRH = ""
        End Try
    End Function


    Shared Function getDatumXMLNothing(dateTmp) As Object
        If dateTmp IsNot Nothing AndAlso dateTmp.ToString.Trim <> "" AndAlso IsDate(dateTmp) Then
            Dim datum As Date = CDate(dateTmp).ToShortDateString()
            If datum > CDate("01.01.2000") Then
                Return datum
            End If
        End If
        Return Nothing
    End Function



    Shared Function readNCTS_Versandanmeldung(FORM As frmDYNachrichtenVerarbeitung, lines() As String) As String
        Try
            Dim seeErrLine = 0
            Dim bezugsNr = ""
            Dim cntDurchgangsZst = 0
            '  Dim cntRoute = 0

            For Each l In lines
                If l.StartsWith("RFF+ABE:") Then
                    bezugsNr = cEDI.getValueReplaced(l.Replace("RFF+ABE:", ""))
                    Exit For
                End If
            Next

            If bezugsNr = "" Then Return ""
            Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(bezugsNr, "NCTS")

            Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut = DAKOSY_Worker.cDakosyNCTSOut.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
            If NCTS Is Nothing Then NCTS = New DAKOSY_Worker.cDakosyNCTSOut
            If DY_TMP IsNot Nothing Then NCTS.ncts_dyaAnmID = DY_TMP.dy_Id

            If DY_TMP.dy_AvisoId Is Nothing Then
                DY_TMP.tryFindAviso()
                DY_TMP.SAVE()
            End If
            ' LOAD bezugsNr


            NCTS.ncts_VersendungsLandCode = cEDI.getSimpleLine("LOC+35+", lines)
            NCTS.ncts_BestimmungslandCode = cEDI.getSimpleLine("LOC+36+", lines)

            NCTS.ncts_SumA_Ladeort = cEDI.getSimpleLine("LOC+5+", lines)
            NCTS.ncts_SumA_Entladeort = cEDI.getSimpleLine("LOC+11+:::", lines)

            Try
                Dim wgdat = cEDI.getSimpleLine("DTM+150:", lines).Replace(":102", "")
                If wgdat <> "" AndAlso IsNumeric(wgdat) Then
                    Dim oDate = DateTime.ParseExact(wgdat, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
                    NCTS.ncts_Wiedergestellungsdatum = oDate.ToShortDateString
                End If
            Catch ex As Exception
                'sendERRORperMail("---------------- WiedergestellungsDatum Fehler ----------------" & vbNewLine & vbNewLine & ex.Message, ex.StackTrace)
                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler")
            End Try

            NCTS.ncts_SumA_Entladeort = cEDI.getValueReplaced(cEDI.getSimpleLine("LOC+11+:::", lines))


            'NCTS.anzahlPos = cEDI.getSimpleLine("CNT+5:", lines)
            NCTS.ncts_GesamtAnzahlPackstuecke = cEDI.isLeerNothingDblPunktKomma(cEDI.getSimpleLine("CNT+11:", lines))
            NCTS.ncts_GesamtRohmasse = cEDI.isLeerNothingDblPunktKomma(cEDI.getSimpleLine("MEA+WT+AAD+KGM:", lines))
            NCTS.ncts_ZugelassenerEmpfaenger_EORI = cEDI.getSimpleLine("NAD+AU+", lines)

            'Bef.
            NCTS.ncts_SumA_BefoerderungskostenZahlungsweise = cEDI.getSimpleLine("GIS+900:::", lines, Nothing)
            NCTS.ncts_SumA_BesondereUmstaende = cEDI.getSimpleLine("GIS+801:::", lines, Nothing)
            NCTS.ncts_SumA_KennnummerSendung = cEDI.getSimpleLine("FTX+UCN+++", lines, Nothing)

            'VereinfachtesVerfahren 
            If cEDI.getSimpleLine("GIS+1:119", lines, Nothing) IsNot Nothing Then NCTS.ncts_KzVereinfachtesVerfahren = True
            If cEDI.getSimpleLine("GIS+0:119", lines, Nothing) IsNot Nothing Then NCTS.ncts_KzVereinfachtesVerfahren = False

            'SumASicherheit
            If cEDI.getSimpleLine("GIS+1:110", lines, Nothing) IsNot Nothing Then NCTS.ncts_SumA_KzSumASicherheit = True
            If cEDI.getSimpleLine("GIS+0:110", lines, Nothing) IsNot Nothing Then NCTS.ncts_SumA_KzSumASicherheit = False

            'VERSCHLÜSSE
            NCTS.ncts_Verschluss_ArtCode = cEDI.getSimpleLine("RFF+SN:", lines)
            NCTS.ncts_Verschluss_Anzahl = cEDI.isLeerNothingDbl(cEDI.getSimpleLine("CNT+16:", lines))
            'Zeichen
            Dim Verschluesse As New List(Of String)
            For Each l In lines
                If l.StartsWith("SEL+0+:::") Then
                    Verschluesse.Add(cEDI.getValueReplaced(l.Replace("SEL+0+:::", "")))
                End If
            Next
            NCTS.ncts_Verschluss_Zeichen1 = If(Verschluesse.Count > 0, Verschluesse(0), Nothing)
            NCTS.ncts_Verschluss_Zeichen2 = If(Verschluesse.Count > 1, Verschluesse(1), Nothing)
            NCTS.ncts_Verschluss_Zeichen3 = If(Verschluesse.Count > 2, Verschluesse(2), Nothing)
            NCTS.ncts_Verschluss_Zeichen4 = If(Verschluesse.Count > 3, Verschluesse(3), Nothing)
            NCTS.ncts_Verschluss_Zeichen5 = If(Verschluesse.Count > 4, Verschluesse(4), Nothing)
            NCTS.ncts_Verschluss_Zeichen6 = If(Verschluesse.Count > 5, Verschluesse(5), Nothing)
            NCTS.ncts_Verschluss_Zeichen7 = If(Verschluesse.Count > 6, Verschluesse(6), Nothing)
            NCTS.ncts_Verschluss_Zeichen8 = If(Verschluesse.Count > 7, Verschluesse(7), Nothing)
            NCTS.ncts_Verschluss_Zeichen9 = If(Verschluesse.Count > 8, Verschluesse(8), Nothing)
            NCTS.ncts_Verschluss_Zeichen10 = If(Verschluesse.Count > 9, Verschluesse(9), Nothing)
            NCTS.ncts_Verschluss_Zeichen11 = If(Verschluesse.Count > 10, Verschluesse(10), Nothing)
            NCTS.ncts_Verschluss_Zeichen12 = If(Verschluesse.Count > 11, Verschluesse(11), Nothing)
            NCTS.ncts_Verschluss_Zeichen13 = If(Verschluesse.Count > 12, Verschluesse(12), Nothing)
            NCTS.ncts_Verschluss_Zeichen14 = If(Verschluesse.Count > 13, Verschluesse(13), Nothing)
            NCTS.ncts_Verschluss_Zeichen15 = If(Verschluesse.Count > 14, Verschluesse(14), Nothing)
            NCTS.ncts_Verschluss_Zeichen16 = If(Verschluesse.Count > 15, Verschluesse(15), Nothing)


            'BefoerderungsrouteLand
            Dim Route As New List(Of String)
            For Each l In lines
                If l.StartsWith("EQD+CH+:::") Then
                    Route.Add(cEDI.getValueReplaced(l.Replace("EQD+CH+:::", "")))
                End If
            Next
            NCTS.ncts_SumA_BefoerderungsrouteLand1 = If(Route.Count > 0, Route(0), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand2 = If(Route.Count > 1, Route(1), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand3 = If(Route.Count > 2, Route(2), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand4 = If(Route.Count > 3, Route(3), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand5 = If(Route.Count > 4, Route(4), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand6 = If(Route.Count > 5, Route(5), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand7 = If(Route.Count > 6, Route(6), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand8 = If(Route.Count > 7, Route(7), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand9 = If(Route.Count > 8, Route(8), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand10 = If(Route.Count > 9, Route(9), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand11 = If(Route.Count > 10, Route(10), Nothing)
            NCTS.ncts_SumA_BefoerderungsrouteLand12 = If(Route.Count > 11, Route(11), Nothing)


            ' 	Durchgangszollstelle
            Dim DurchgangsZst As New List(Of String)
            For Each l In lines
                If l.StartsWith("LOC+50+") Then
                    DurchgangsZst.Add(cEDI.getValueReplaced(l.Replace("LOC+50+", "")))
                End If
            Next
            NCTS.ncts_DurchgangszollstelleDienststellnummer1 = If(DurchgangsZst.Count > 0, DurchgangsZst(0), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer2 = If(DurchgangsZst.Count > 1, DurchgangsZst(1), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer3 = If(DurchgangsZst.Count > 2, DurchgangsZst(2), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer4 = If(DurchgangsZst.Count > 3, DurchgangsZst(3), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer5 = If(DurchgangsZst.Count > 4, DurchgangsZst(4), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer6 = If(DurchgangsZst.Count > 5, DurchgangsZst(5), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer7 = If(DurchgangsZst.Count > 6, DurchgangsZst(6), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer8 = If(DurchgangsZst.Count > 7, DurchgangsZst(7), Nothing)
            NCTS.ncts_DurchgangszollstelleDienststellnummer9 = If(DurchgangsZst.Count > 8, DurchgangsZst(8), Nothing)


            ' 	 	Ansprechpartner
            Dim AnsprechpTMP = cEDI.getSimpleLine("CTA+CC+:", lines)
            If AnsprechpTMP <> "" Then
                Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & AnsprechpTMP & "' or  REPLACE([mit_DAKOSY_SBFull], ' ', '') = '" & AnsprechpTMP & "'", "ADMIN")
                If SB_Tmp <> "" Then
                    NCTS.ncts_Bearbeiter = SB_Tmp
                ElseIf isAtez(NCTS.ncts_ObjectName) Then
                    NCTS.ncts_Bearbeiter = "VERIMEX"
                Else

                    VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & AnsprechpTMP & " konnte nicht ermittelt werden!", "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'", System.Reflection.MethodInfo.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
                End If
            End If
            'Dim AnsprechpStellungTMP = cEDI.getSimpleLine("RFF+ACD:", lines)




            Dim cnt = 0
            For cnt = 0 To lines.Count - 1
                Dim l As String = lines(cnt)

                'UNB+UNOC:3+
                'DE1234567:1111+DE001234+051222:0750+123456789ABCDE++TUF++++1'

                If l.StartsWith("UNB+UNOC:3+") Then
                    Dim split = l.Replace("UNB+UNOC:3+", "").Split("+")
                    If split.Length > 2 Then
                        'NCTS.ncts_Trans_DatumZeit = split(2)
                        'Dim split2 = split(2).Split(":")
                        Try
                            Dim dt As DateTime = DateTime.ParseExact(split(2), "yyMMdd:HHmm", CultureInfo.InvariantCulture)
                            NCTS.ncts_Trans_DatumZeit = dt
                        Catch ex As Exception
                            NCTS.ncts_Trans_DatumZeit = Nothing
                        End Try

                        'If split2.Length > 0 Then NCTS.ncts_Trans_DatumZeit = split2(0)

                    End If

                    If split.Length > 0 Then
                        If split(0).Contains(":") Then
                            Dim sp = split(0).Split(":")
                            NCTS.ncts_NachrichtenSenderTIN = sp(0)
                            NCTS.ncts_NachrichtenSenderNLNR = sp(1)
                        Else
                            NCTS.ncts_NachrichtenSenderTIN = split(0)
                        End If
                    End If
                    If split.Length > 1 Then
                        NCTS.ncts_NachrichtenempfaengerDST = split(1)
                    End If


                    '  If NCTS.ncts_NachrichtenSenderNLNR IsNot Nothing Then
                    'Select Case NCTS.ncts_NachrichtenSenderTIN
                    '      Case "ATEOS1000000199"
                    ' If NCTS.ncts_NachrichtenSenderNLNR IsNot Nothing Then
                    'Select Case NCTS.ncts_NachrichtenSenderNLNR
                    '     Case "0001"
                    'NCTS.ncts_firma = "ATILLA"
                    'NCTS.ncts_niederlassung = "SUB"
                    ' End Select
                    'End If
                    '   End Select
                    'End If
                End If

                If l.StartsWith("RFF+ABE:") Then
                    NCTS.ncts_ObjectName = cEDI.getValueReplaced(l.Replace("RFF+ABE:", ""))
                End If



                ' 	Art der Anmeldung
                If l.StartsWith("BGM+") Then
                    Dim bgm_split1 = l.Replace("BGM+", "").Split("+")
                    If bgm_split1.Length > 0 Then
                        Dim bgm_split = bgm_split1(0).Replace("BGM+", "").Split(":")
                        If bgm_split.Length > 3 Then NCTS.ncts_ArtAnmeldung = bgm_split(3)
                    End If
                    If bgm_split1.Length > 1 Then
                        Dim bgm_split = bgm_split1(0).Replace("BGM+", "").Split(":")
                        If bgm_split.Length > 1 Then
                            If IsNumeric(bgm_split(1)) Then NCTS.ncts_Trans_Version = bgm_split(1)
                        End If
                    End If
                End If


                ' 	AbgangsDienststelle
                If l.StartsWith("LOC+118+") Then
                    NCTS.ncts_AbgangsDienststellennummer = l.Replace("LOC+118+", "")
                End If

                ' 	AbgangsDienststelle
                If l.StartsWith("LOC+118+") Then
                    NCTS.ncts_AbgangsDienststellennummer = l.Replace("LOC+118+", "")
                End If

                ' 	Bestimmungsdienststelle
                If l.StartsWith("LOC+45+") Then
                    NCTS.ncts_BestimmungsstelleDienststellennummer = l.Replace("LOC+45+", "")
                End If





                'NAD+AF+2+ITTR0000000000152:0000
                ' 	 	Hauptverpflichteter
                If l.StartsWith("NAD+AF+") Then
                    Dim hpf = l.Replace("NAD+AF+", "")
                    Dim hpf_split = hpf.Split("+")
                    If hpf_split.Length > 1 Then
                        If hpf_split(1).Contains(":") Then
                            Dim hpf_split2 = hpf_split(1).Split(":")
                            NCTS.ncts_Hauptverpflichteter_EORI = hpf_split2(0)
                            NCTS.ncts_Hauptverpflichteter_NLNR = hpf_split2(1)
                        Else
                            NCTS.ncts_Hauptverpflichteter_EORI = hpf_split(1)
                        End If
                    End If
                    If hpf_split.Length > 2 Then NCTS.ncts_Hauptverpflichteter_Name = cutLength(cEDI.getValueReplaced(hpf_split(2)), 35)
                    If hpf_split.Length > 3 Then NCTS.ncts_Hauptverpflichteter_StrasseHausnummer = cutLength(cEDI.getValueReplaced(hpf_split(3)), 35)
                    If hpf_split.Length > 4 Then NCTS.ncts_Hauptverpflichteter_Ort = cutLength(cEDI.getValueReplaced(hpf_split(4)), 35)
                    If hpf_split.Length > 6 Then NCTS.ncts_Hauptverpflichteter_PLZ = cEDI.getValueReplaced(hpf_split(6))
                    If hpf_split.Length > 7 Then NCTS.ncts_Hauptverpflichteter_Land = cEDI.getValueReplaced(hpf_split(7)) 'C0008
                End If


                ' 	 	Versender
                If l.StartsWith("NAD+CZ+") Then
                    Dim hpf = l.Replace("NAD+CZ+", "")
                    Dim hpf_split = hpf.Split("+")
                    If hpf_split.Length > 1 Then
                        If hpf_split(1).Contains(":") Then
                            Dim hpf_split2 = hpf_split(1).Split(":")
                            NCTS.ncts_Versender_EORI = hpf_split2(0)
                            NCTS.ncts_Versender_NLNR = hpf_split2(1)
                        Else
                            NCTS.ncts_Versender_EORI = hpf_split(1)
                        End If
                    End If

                    'MsgBox(hpf_split(7))
                    If hpf_split.Length > 2 Then NCTS.ncts_Versender_Name = cutLength(cEDI.getValueReplaced(hpf_split(2)), 35)
                    If hpf_split.Length > 3 Then NCTS.ncts_Versender_StrasseHausnummer = cutLength(cEDI.getValueReplaced(hpf_split(3)), 35)
                    If hpf_split.Length > 4 Then NCTS.ncts_Versender_Ort = cutLength(cEDI.getValueReplaced(hpf_split(4)), 35)
                    If hpf_split.Length > 6 Then NCTS.ncts_Versender_PLZ = cEDI.getValueReplaced(hpf_split(6))
                    If hpf_split.Length > 7 Then NCTS.ncts_Versender_Land = cEDI.getValueReplaced(hpf_split(7))

                End If


                ' 	 	Empfänger
                If l.StartsWith("NAD+CN+") Then
                    Dim hpf = l.Replace("NAD+CN+", "")
                    Dim hpf_split = hpf.Split("+")
                    If hpf_split.Length > 1 Then
                        If hpf_split(1).Contains(":") Then
                            Dim hpf_split2 = hpf_split(1).Split(":")
                            NCTS.ncts_Empfaenger_EORI = hpf_split2(0)
                            NCTS.ncts_Empfaenger_NLNR = hpf_split2(1)
                        Else
                            NCTS.ncts_Empfaenger_EORI = hpf_split(1)
                        End If
                    End If
                    If hpf_split.Length > 2 Then NCTS.ncts_Empfaenger_Name = cutLength(cEDI.getValueReplaced(hpf_split(2)), 35)
                    If hpf_split.Length > 3 Then NCTS.ncts_Empfaenger_StrasseHausnummer = cutLength(cEDI.getValueReplaced(hpf_split(3)), 35)
                    If hpf_split.Length > 4 Then NCTS.ncts_Empfaenger_Ort = cutLength(cEDI.getValueReplaced(hpf_split(4)), 35)
                    If hpf_split.Length > 6 Then NCTS.ncts_Empfaenger_PLZ = cEDI.getValueReplaced(hpf_split(6))
                    If hpf_split.Length > 7 Then NCTS.ncts_Empfaenger_Land = cEDI.getValueReplaced(hpf_split(7))

                End If



                'NAD+GA+0++EMINOS LOJISTIK ULUSLAR ARASI TASI+B.HAYRETT??N PA??A MAH.1993 SK.PAPATY+ESENYURT/ISTANBUL++34000+TR'
                ' 	 	Beförderer
                If l.StartsWith("NAD+GA+") Then 'If l.StartsWith("   ") Then
                    Dim hpf = l.Replace("NAD+GA+", "")
                    Dim hpf_split = hpf.Split("+")
                    If hpf_split.Length > 1 Then
                        If hpf_split(1).Contains(":") Then
                            Dim hpf_split2 = hpf_split(1).Split(":")
                            NCTS.ncts_SumA_Befoerderer_EORI = hpf_split2(0)
                            NCTS.ncts_SumA_Befoerderer_NLNR = hpf_split2(1)
                        Else
                            NCTS.ncts_SumA_Befoerderer_EORI = hpf_split(1)
                        End If
                    End If

                    If hpf_split.Length > 2 Then NCTS.ncts_SumA_Befoerderer_Name = cutLength(cEDI.getValueReplaced(hpf_split(2)), 35)
                    If hpf_split.Length > 3 Then NCTS.ncts_SumA_Befoerderer_StrasseHausnummer = cutLength(cEDI.getValueReplaced(hpf_split(3)), 35)
                    If hpf_split.Length > 4 Then NCTS.ncts_SumA_Befoerderer_Ort = cutLength(cEDI.getValueReplaced(hpf_split(4)), 35)
                    If hpf_split.Length > 6 Then NCTS.ncts_SumA_Befoerderer_PLZ = cEDI.getValueReplaced(hpf_split(6))
                    If hpf_split.Length > 7 Then NCTS.ncts_SumA_Befoerderer_Land = cEDI.getValueReplaced(hpf_split(7))
                End If




                'Kennzeichen Abgang
                If l.StartsWith("TDT+12") Then
                    Dim str = l.Replace("TDT+12", "")
                    If str.Contains("+") Then
                        Dim split = str.Split("+")
                        If split.Length > 7 Then
                            Dim split2 = split(7).Split(":")
                            If split2.Length > 3 Then NCTS.ncts_Befoerderungsmittel_KennzeichenAbgang = cEDI.getValueReplaced(split2(3))
                            If split2.Length > 4 Then NCTS.ncts_Befoerderungsmittel_SttaszugehoerigkeitAbgangCode = split2(4)
                        End If
                    End If
                End If

                'Kennzeichen Grenze
                If l.StartsWith("TDT+11") Then
                    Dim str = l.Replace("TDT+11", "")
                    If str.Contains("+") Then
                        Dim split = str.Split("+")
                        If split.Length > 2 Then
                            If IsNumeric(split(2)) Then NCTS.ncts_Befoerderungsmittel_VerkehrszweigGrenzueberschreitent = cEDI.getValueReplaced(split(2))
                        End If
                        If split.Length > 3 Then
                            Dim split2 = split(3).Split(":")
                            If split2.Length > 1 AndAlso IsNumeric(split2(1)) Then NCTS.ncts_Befoerderungsmittel_ArtGrenzueberschreitung = split2(1)
                        End If
                        If split.Length > 7 Then
                            Dim split2 = split(7).Split(":")
                            If split2.Length > 3 Then NCTS.ncts_Befoerderungsmittel_KennzeichenGrenzueberschreitend = cEDI.getValueReplaced(split2(3))
                            If split2.Length > 4 Then NCTS.ncts_Befoerderungsmittel_StaatszugehoerigkeitGrenzueberschreitendCode = split2(4)
                        End If
                    End If
                End If

                '   NCTS.ncts_Befoerderungsmittel_KennzeichenAbgang = Split(1)

                '____________




                'POSITIONEN
                If l.StartsWith("CST+") Then
                    Dim WP As New DAKOSY_Worker.cDakosy_NCTSOut_Warenposition
                    Dim wp_str = l.Replace("CST+", "")
                    If wp_str.Contains("+") Then
                        Dim wp_split = wp_str.Split("+")
                        If wp_split.Length > 0 Then WP.nctsWP_PositionsNummer = cEDI.isLeerNothingDbl(wp_split(0))
                        If wp_split.Length > 1 Then WP.nctsWP_Warennummer = cEDI.getValueReplaced(wp_split(1))
                        If wp_split.Length > 5 Then WP.nctsWP_ArtAnmeldungPositionCode = wp_split(5)

                    End If
                    PosAuslesen(WP, lines, cnt)
                    NCTS.ncts_WARENPOS.Add(WP) 'Hinzufügen
                End If



                'sicherheitsangaben
                If l.StartsWith("RFF+ABL:") Then
                    Dim SA As New DAKOSY_Worker.cDakosy_NCTSOut_Sicherheitsangaben
                    Dim sa_str = l.Replace("RFF+ABL:", "")
                    If sa_str.Contains(":") Then
                        Dim sa_split = sa_str.Split(":")
                        If sa_split.Length > 0 Then SA.nctsSA_AbgabenBetrag = If(IsNumeric(sa_split(0)), CDbl(sa_split(0).Replace(".", ",")), Nothing)
                        If sa_split.Length > 1 Then SA.nctsSA_ArtCode = sa_split(1)
                        If sa_split.Length > 2 Then SA.nctsSA_BezeichnungBescheinigun = cEDI.getValueReplaced(sa_split(2))
                    End If
                    If lines.Count > (cnt + 1) Then 'wenn noch eine Zeile existiert
                        If lines(cnt + 1).ToString.StartsWith("PAC") Then 'und diese mit PAC startet
                            Dim pac = lines(cnt + 1).ToString
                            Dim pac_split = pac.Split("+")
                            If pac_split.Length > 2 Then SA.nctsSA_Zugriffcode = cEDI.getValueReplaced(pac_split(2))
                            If pac_split.Length > 3 AndAlso pac_split(3).Contains(":") Then
                                Dim pac_split2 = pac_split(3).Split(":")
                                If pac_split2.Length > 3 Then SA.nctsSA_Zugriffcode = cEDI.getValueReplaced(pac_split2(3))
                            End If
                            If pac_split.Length > 4 AndAlso pac_split(4).Contains(":") Then
                                Dim pac_split2 = pac_split(4).Split(":")
                                If pac_split2.Length > 1 Then SA.nctsSA_GRN = pac_split2(1)
                                If pac_split2.Length > 3 Then SA.nctsSA_TIN = pac_split2(3)
                            End If
                        End If
                    End If
                    ' MsgBox(SA.nctsSA_GRN)
                    NCTS.ncts_SICHERHEITSANGABEN.Add(SA) 'Hinzufügen
                End If



            Next




            For Each l In lines
                If l.StartsWith("COM+") Then

                    frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS.ncts_firma, NCTS.ncts_niederlassung, l, "")

                    'If l.Contains("@imex") Then
                    '    NCTS.ncts_firma = "IMEX"
                    '    NCTS.ncts_niederlassung = "IMEX"
                    '    'GLOBAL--> EORI
                    'ElseIf l.Contains("@ambar") Then
                    '    NCTS.ncts_firma = "AMBAR"
                    '    NCTS.ncts_niederlassung = "AMBAR"

                    'ElseIf l.Contains("atilla@verag.ag") Or l.Contains("@atilla") Then
                    '    NCTS.ncts_firma = "ATILLA"
                    '    NCTS.ncts_niederlassung = "SUB"
                    'ElseIf l.Contains("@durmaz") Then
                    '    NCTS.ncts_firma = "DURMAZ"
                    '    NCTS.ncts_niederlassung = "SBG"


                    '    'GLOBAL--> EORI
                    'ElseIf l.Contains("@verag") Then
                    '    NCTS.ncts_firma = "VERAG"
                    '    '   EZA.eza_niederlassung = "IMEX"
                    '    'GLOBAL--> EORI

                    'ElseIf l.Contains("@unisped") Then
                    '    NCTS.ncts_firma = "UNISPED"
                    '    NCTS.ncts_niederlassung = "ATSP"
                    'End If
                End If
            Next


            If If(NCTS.ncts_Status, 0) <= 5 Then NCTS.ncts_Status = DAKOSY_Worker.cDY_Statusliste.S_05
            If If(NCTS.ncts_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.ncts_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05


            If NCTS.SAVE_ALL("Datei: " & Dateiname) Then
                If If(NCTS.ncts_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                Return bezugsNr
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)

        End Try
        Return ""
    End Function




    Shared Function readNCTS_AnkunftsanzeigeXML(doc As XmlDocument) As String
        Try
            readNCTS_AnkunftsanzeigeXML = "ANKUNFTSANZEIGE_" & Now.ToString("ddMMyy_HHmmss.sss")
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DETBAE>") Then
                Dim xmlDETBAE = XmlString.Substring(XmlString.IndexOf("<DETBAE>"), XmlString.IndexOf("</DETBAE>") + 9 - XmlString.IndexOf("<DETBAE>"))
                '  MsgBox(xmlDETBAE)
                Dim p = Path.GetTempFileName

                Using outputFile As New StreamWriter(p, False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDETBAE)
                    outputFile.Close()



                    Dim DETBAE As DAKOSY_Worker.DETBAE.DETBAE = DAKOSY_Worker.DETBAE.DETBAE.LoadFromFile(p)
                    '  Dim NCTS As New DAKOSY_Worker.cDakosyNCTS


                    'If DETBAE IsNot Nothing AndAlso DETBAE.Header IsNot Nothing AndAlso DETBAE.Header.LocalReferenceNumber IsNot Nothing AndAlso DETBAE.Header.LocalReferenceNumber <> "" Then
                    '    readNCTS_AnkunftsanzeigeXML = DETBAE.Header.LocalReferenceNumber
                    'Else
                    '    Return "" 'Keine Bezugsnummer
                    'End If


                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = frmDYNachrichtenVerarbeitung.saveDY_ZA(readNCTS_AnkunftsanzeigeXML, "NCTS")

                    Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut = DAKOSY_Worker.cDakosyNCTSOut.LOADByBezugsNr(readNCTS_AnkunftsanzeigeXML, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If NCTS Is Nothing Then NCTS = New DAKOSY_Worker.cDakosyNCTSOut
                    If DY_TMP IsNot Nothing Then NCTS.ncts_dyaAnmID = DY_TMP.dy_Id

                    If DY_TMP.dy_AvisoId Is Nothing Then
                        DY_TMP.tryFindAviso()
                        DY_TMP.SAVE()
                    End If
                    ' LOAD bezugsNr
                    Dim AnsprechpTMP_Email = ""

                    If DETBAE IsNot Nothing Then

                        If DETBAE.AuthorisedConsignee IsNot Nothing And DETBAE.AuthorisedConsignee.ContactPerson IsNot Nothing Then

                            Dim AnsprechpTMP = DETBAE.AuthorisedConsignee.ContactPerson.Name
                            If AnsprechpTMP <> "" Then
                                Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & AnsprechpTMP & "' or  REPLACE([mit_DAKOSY_SBFull], ' ', '') = '" & AnsprechpTMP & "'", "ADMIN")
                                If SB_Tmp <> "" Then
                                    NCTS.ncts_Bearbeiter = SB_Tmp
                                ElseIf isAtez(NCTS.ncts_ObjectName) Then
                                    NCTS.ncts_Bearbeiter = "VERIMEX"
                                Else
                                    VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & AnsprechpTMP & " konnte nicht ermittelt werden!", "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'", System.Reflection.MethodInfo.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
                                End If
                            End If


                            If DETBAE.AuthorisedConsignee.ContactPerson.MailAddress IsNot Nothing Then
                                AnsprechpTMP_Email = DETBAE.AuthorisedConsignee.ContactPerson.MailAddress

                            End If

                            frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS.ncts_firma, NCTS.ncts_niederlassung, If(AnsprechpTMP_Email, "").ToString, "")

                        Else
                            'Return "" 'Keine Bezugsnummer
                        End If
                    End If

                    'If If(NCTS.ncts_Status, 0) <= 5 Then NCTS.ncts_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    'If If(NCTS.ncts_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.ncts_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05


                    If NCTS.SAVE_ALL("Datei: " & Dateiname) Then
                        If If(NCTS.ncts_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)

                    End If

                End Using
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            Return ""
        End Try

    End Function

    Shared Function readNCTS_Ankunftsanzeige(FORM As frmDYNachrichtenVerarbeitung, lines() As String) As String
        Try
            Dim seeErrLine = 0
            Dim bezugsNr = ""
            Dim cntDurchgangsZst = 0
            '  Dim cntRoute = 0

            For Each l In lines
                If l.StartsWith("RFF+ABE:") Then
                    bezugsNr = cEDI.getValueReplaced(l.Replace("RFF+ABE:", ""))
                    Exit For
                End If
            Next

            If bezugsNr = "" Then Return ""
            Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = frmDYNachrichtenVerarbeitung.saveDY_ZA(bezugsNr, "NCTS")

            Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut = DAKOSY_Worker.cDakosyNCTSOut.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
            If NCTS Is Nothing Then NCTS = New DAKOSY_Worker.cDakosyNCTSOut
            If DY_TMP IsNot Nothing Then NCTS.ncts_dyaAnmID = DY_TMP.dy_Id

            If DY_TMP.dy_AvisoId Is Nothing Then
                DY_TMP.tryFindAviso()
                DY_TMP.SAVE()
            End If
            ' LOAD bezugsNr


            'NCTS.ncts_VersendungsLandCode = cEDI.getSimpleLine("LOC+35+", lines)
            'NCTS.ncts_BestimmungslandCode = cEDI.getSimpleLine("LOC+36+", lines)


            'Try
            '    Dim wgdat = cEDI.getSimpleLine("DTM+150:", lines).Replace(":102", "")
            '    If wgdat <> "" AndAlso IsNumeric(wgdat) Then
            '        Dim oDate = DateTime.ParseExact(wgdat, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
            '        NCTS.ncts_Wiedergestellungsdatum = oDate.ToShortDateString
            '    End If
            'Catch ex As Exception
            '   VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler")
            'End Try



            Dim cnt = 0
            For cnt = 0 To lines.Count - 1
                Dim l As String = lines(cnt)

                'If l.StartsWith("RFF+ABE:") Then
                '    NCTS.ncts_ObjectName = cEDI.getValueReplaced(l.Replace("RFF+ABE:", ""))
                'End If 
            Next




            'For Each l In lines
            '    If l.StartsWith("COM+") Then

            '        If l.Contains("@imex-group.at") Then
            '            NCTS.ncts_firma = "IMEX"
            '            NCTS.ncts_niederlassung = "IMEX"
            '            'GLOBAL--> EORI
            '        ElseIf l.Contains("atilla@verag.ag") Then
            '            NCTS.ncts_firma = "ATILLA"
            '            NCTS.ncts_niederlassung = "SUB"

            '            'GLOBAL--> EORI
            '        ElseIf l.Contains("@verag.ag") Then
            '            NCTS.ncts_firma = "VERAG"
            '            '   EZA.eza_niederlassung = "IMEX"
            '            'GLOBAL--> EORI

            '        End If
            '    End If
            'Next



            'If If(NCTS.ncts_Status, 0) <= 5 Then NCTS.ncts_Status = DAKOSY_Worker.cDY_Statusliste.S_05
            'If If(NCTS.ncts_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.ncts_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05


            If NCTS.SAVE("Datei: " & Dateiname) Then
                If If(NCTS.ncts_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                Return bezugsNr
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)

        End Try
        Return ""
    End Function


    Shared Function cutLength(s, length)
        If s.length > 35 Then s = s.Substring(0, length)
        Return s
    End Function
    Shared Sub PosAuslesen(ByVal POS As DAKOSY_Worker.cDakosy_NCTSOut_Warenposition, linesTMP() As String, cnt As Integer)
        Dim lines = getPOS(cnt, linesTMP)
        POS.nctsWP_Rohmasse = cEDI.isLeerNothingDblPunktKomma(cEDI.getSimpleLine("MEA+WT+AAB+KGM:", lines))
        POS.nctsWP_Eigenmasse = cEDI.isLeerNothingDblPunktKomma(cEDI.getSimpleLine("MEA+WT+AAA+KGM:", lines))

        Dim vorpapierCnt = 0
        For Each l In lines
            'POS. = cEDI.getSimpleLine("FTX+UCN+++", lines) FTX+AAA+++
            If l.StartsWith("FTX+AAA+++") Then
                Dim wb = l.Replace("FTX+AAA+++", "")
                If wb.ToString.Contains(":") Then
                    Dim split = wb.Split(":")
                    If split.Length > 0 Then POS.nctsWP_Warenbezeichnung = cEDI.getValueReplaced(split(0))
                    If split.Length > 1 Then POS.nctsWP_Warenbezeichnung &= cEDI.getValueReplaced(split(1))
                    If split.Length > 2 Then POS.nctsWP_Warenbezeichnung &= cEDI.getValueReplaced(split(2))
                    If split.Length > 3 Then POS.nctsWP_Warenbezeichnung &= cEDI.getValueReplaced(split(3))
                Else
                    POS.nctsWP_Warenbezeichnung = cEDI.getValueReplaced(wb)
                End If
                'Damit nicht zu lang:
                If POS.nctsWP_Warenbezeichnung IsNot Nothing AndAlso POS.nctsWP_Warenbezeichnung.length > 280 Then
                    POS.nctsWP_Warenbezeichnung = POS.nctsWP_Warenbezeichnung.substring(0, 280)
                End If
            End If
            If l.StartsWith("PAC+") Then
                Dim PST = New DAKOSY_Worker.cDakosy_NCTSOut_WarenpositionPackstuecke()
                Dim pac = l.Replace("PAC+", "")
                If pac.ToString.Contains("+") Then
                    Dim split = pac.Split("+")
                    If split.Length > 0 Then PST.nctsWpPk_PackstueckeAnzahl = cEDI.isLeerNothingDblPunktKomma(split(0))
                    If split.Length > 2 Then PST.nctsWpPk_Verpackungsart &= split(2)
                Else
                    PST.nctsWpPk_PackstueckeAnzahl = pac
                End If
                POS.nctsWP_PACKSTUECKE.Add(PST)
            End If
        Next
    End Sub


    Shared Function getPOS(cnt, linesTMP()) As String()
        Dim l As New List(Of String)
        For i = cnt + 1 To linesTMP.Length - 1
            If linesTMP(i).StartsWith("CST+") Then Exit For ' neue POS
            If linesTMP(i).StartsWith("UNS") Then Exit For ' nächstes Element
            l.Add(linesTMP(i))
        Next
        Return l.ToArray
    End Function



    Shared Function readNCTS_Versandbestaetigung(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.VersandbestaetigungNCTSDE.VersandbestaetigungMCTyp = DAKOSY_Worker.VersandbestaetigungNCTSDE.VersandbestaetigungMCTyp.LoadFromFile(d)
            Dim anr = ""
            Dim zp As Object = Nothing

            Dim division = ""

            readNCTS_Versandbestaetigung = ""
            If NCTS IsNot Nothing Then

                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If

                If NCTS.EinzelVersandbestaetigung IsNot Nothing Then
                    If NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Versandbestaetigung = NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If NCTS.EinzelVersandbestaetigung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelVersandbestaetigung.KopfDaten.ANR IsNot Nothing Then
                            anr = NCTS.EinzelVersandbestaetigung.KopfDaten.ANR
                            ' MsgBox(anr)
                        End If
                    End If
                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Versandbestaetigung <> "" And anr <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Versandbestaetigung
                STATUS.dySt_artMitteilung = "VB"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                STATUS.dySt_ergCode = "ANR"
                STATUS.dySt_ergMitteilung = anr
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), anr)




                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: Versandbestätigung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Versandbestaetigung = ""
        End Try
    End Function

    Shared Function readNCTS_Versandbestaetigung002(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.VersandbestaetigungNCTSDE_002.VersandbestaetigungMCTyp = DAKOSY_Worker.VersandbestaetigungNCTSDE_002.VersandbestaetigungMCTyp.LoadFromFile(d)
            Dim anr = ""
            Dim zp As Object = Nothing

            Dim division = ""

            readNCTS_Versandbestaetigung002 = ""
            If NCTS IsNot Nothing Then

                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If

                If NCTS.EinzelVersandbestaetigung IsNot Nothing Then
                    If NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Versandbestaetigung002 = NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If NCTS.EinzelVersandbestaetigung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelVersandbestaetigung.KopfDaten.ANR IsNot Nothing Then
                            anr = NCTS.EinzelVersandbestaetigung.KopfDaten.ANR
                            ' MsgBox(anr)
                        End If
                    End If
                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Versandbestaetigung002 <> "" And anr <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Versandbestaetigung002
                STATUS.dySt_artMitteilung = "VB"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                STATUS.dySt_ergCode = "ANR"
                STATUS.dySt_ergMitteilung = anr
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), anr)




                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: Versandbestätigung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Versandbestaetigung002 = ""
        End Try
    End Function
    Shared Function readNCTS004_Versandbestaetigung002(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.VersandbestaetigungNCTSDE_002.VersandbestaetigungMCTyp = DAKOSY_Worker.VersandbestaetigungNCTSDE_002.VersandbestaetigungMCTyp.LoadFromFile(d)
            Dim anr = ""
            Dim zp As Object = Nothing
            Dim division = ""

            readNCTS004_Versandbestaetigung002 = ""
            If NCTS IsNot Nothing Then

                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If

                If NCTS.EinzelVersandbestaetigung IsNot Nothing Then
                    If NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS004_Versandbestaetigung002 = NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = NCTS.EinzelVersandbestaetigung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If NCTS.EinzelVersandbestaetigung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelVersandbestaetigung.KopfDaten.ANR IsNot Nothing Then
                            anr = NCTS.EinzelVersandbestaetigung.KopfDaten.ANR
                            ' MsgBox(anr)
                        End If
                    End If
                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS004_Versandbestaetigung002 <> "" Then 'And anr <> "" Then 'BEZUGSNR vorhanden

                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS004_Versandbestaetigung002
                STATUS.dySt_artMitteilung = "VB"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                STATUS.dySt_ergCode = "ANR"
                STATUS.dySt_ergMitteilung = anr
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), anr)



                SaveNCTS004_FirmaNL(NCTS_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: Versandbestätigung", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS004_Versandbestaetigung002 = ""
        End Try
    End Function



    Shared Function saveDY_NCTS(STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen, DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, transID As String, transDate As Date, Optional ANR As String = "", Optional MRN As String = "") As DAKOSY_Worker.cDakosyNCTSOut
        'EINTRAG IN tblDakosyNCTSOut
        Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = Nothing
        NCTS_TMP = DAKOSY_Worker.cDakosyNCTSOut.LOADByBezugsNr(STATUS.dySt_BezugsNr.ToString, False)
        If NCTS_TMP Is Nothing Then
            NCTS_TMP = New DAKOSY_Worker.cDakosyNCTSOut
            NCTS_TMP.ncts_ObjectName = STATUS.dySt_BezugsNr
            If NCTS_TMP IsNot Nothing Then NCTS_TMP.ncts_dyaAnmID = DY_TMP.dy_Id

            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, transDate) Then
                NCTS_TMP.ncts_Status = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
                NCTS_TMP.ncts_Status_KEWILL_Equivalent = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
            End If
            'NCTS_TMP.ncts_Status_KEWILL_Equivalent = STATUS.dySt_status
            If ANR <> "" Or MRN <> "" Then
                If ANR <> "" Then NCTS_TMP.ncts_ANR = ANR
                If MRN <> "" Then NCTS_TMP.ncts_MRN = MRN
            End If
            NCTS_TMP.SAVE()
            'Eintragen
        Else
            'Update     
            NCTS_TMP.UPDATE_Status(DY_TMP.dy_Status) 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
            If ANR <> "" Or MRN <> "" Then
                If ANR <> "" Then NCTS_TMP.ncts_ANR = ANR : NCTS_TMP.SAVE()
                If MRN <> "" Then NCTS_TMP.ncts_MRN = MRN : NCTS_TMP.SAVE()
            End If
        End If
        saveDY_NCTS = NCTS_TMP
    End Function

    Shared Function saveDY_NCTS004(STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen, DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, transID As String, transDate As Date, Optional ANR As String = "", Optional MRN As String = "", Optional loadAll As Boolean = False) As DAKOSY_Worker.cDakosyNCTSOut004
        'EINTRAG IN tblDakosyNCTSOut
        Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = Nothing
        NCTS_TMP = DAKOSY_Worker.cDakosyNCTSOut004.LOADByBezugsNr(STATUS.dySt_BezugsNr.ToString, loadAll)
        If NCTS_TMP Is Nothing Then
            NCTS_TMP = New DAKOSY_Worker.cDakosyNCTSOut004
            NCTS_TMP.ncts_ObjectName = STATUS.dySt_BezugsNr
            If NCTS_TMP IsNot Nothing Then NCTS_TMP.ncts_dyaAnmID = DY_TMP.dy_Id

            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, transDate) Then
                NCTS_TMP.ncts_Status = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
                NCTS_TMP.ncts_Status_KEWILL_Equivalent = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
            End If
            'NCTS_TMP.ncts_Status_KEWILL_Equivalent = STATUS.dySt_status
            If ANR <> "" Or MRN <> "" Then
                If ANR <> "" Then NCTS_TMP.ncts_ANR = ANR
                If MRN <> "" Then NCTS_TMP.ncts_MRN = MRN
            End If
            NCTS_TMP.SAVE()
            'Eintragen
        Else
            'Update     
            NCTS_TMP.UPDATE_Status(DY_TMP.dy_Status) 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
            If ANR <> "" Or MRN <> "" Then
                If ANR <> "" Then NCTS_TMP.ncts_ANR = ANR : NCTS_TMP.SAVE()
                If MRN <> "" Then NCTS_TMP.ncts_MRN = MRN : NCTS_TMP.SAVE()
            End If
        End If
        saveDY_NCTS004 = NCTS_TMP
    End Function

    Shared Sub SaveNCTS_FirmaNL(ByRef NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut, DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, division As String)

        If division <> "" Then
            If (NCTS_TMP.ncts_firma Is Nothing OrElse NCTS_TMP.ncts_firma = "") Or (NCTS_TMP.ncts_niederlassung Is Nothing OrElse NCTS_TMP.ncts_niederlassung = "") Then
                Select Case division
                    Case "SUW"
                        'VERIMEX!!!! --> Arbeitet bim T1 Vorschreiben mit ATILLA Benutzer
                        frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS_TMP.ncts_firma, NCTS_TMP.ncts_niederlassung, "", NCTS_TMP.ncts_ObjectName)

                        If If(NCTS_TMP.ncts_firma, "") = "" Then NCTS_TMP.ncts_firma = "ATILLA"
                        If If(NCTS_TMP.ncts_niederlassung, "") = "" Then NCTS_TMP.ncts_niederlassung = "SUB"
                    Case "SUB"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "SUB"
                    Case "DUR"
                        NCTS_TMP.ncts_firma = "ATILLA"
                        NCTS_TMP.ncts_niederlassung = "SBG"
                    Case "NKD"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "NKD"
                    Case "WAI"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "WAI"
                    Case "SBG"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "SBG"
                    Case "IME"
                        NCTS_TMP.ncts_firma = "IMEX"
                        NCTS_TMP.ncts_niederlassung = "SUB"
                    Case "GLO"
                        NCTS_TMP.ncts_firma = "IMEX"
                        NCTS_TMP.ncts_niederlassung = "GLO"
                    Case "AMB"
                        NCTS_TMP.ncts_firma = "AMBAR"
                        NCTS_TMP.ncts_niederlassung = "AMBAR"
                    Case "NEU"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "NEU"
                    Case "ATSP", "ATSPED"
                        NCTS_TMP.ncts_firma = "UNISPED"
                        NCTS_TMP.ncts_niederlassung = "ATSP"
                End Select
                NCTS_TMP.SAVE()
            End If

        End If
        If DY_TMP.dy_AvisoId Is Nothing Then
            DY_TMP.tryFindAviso()
            DY_TMP.SAVE()
        End If
    End Sub



    Shared Sub SaveNCTS004_FirmaNL(ByRef NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004, DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, division As String)

        If division <> "" Then
            If (NCTS_TMP.ncts_firma Is Nothing OrElse NCTS_TMP.ncts_firma = "") Or (NCTS_TMP.ncts_niederlassung Is Nothing OrElse NCTS_TMP.ncts_niederlassung = "") Then
                Select Case division
                    Case "SUW"
                        'VERIMEX!!!! --> Arbeitet bim T1 Vorschreiben mit ATILLA Benutzer
                        frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(NCTS_TMP.ncts_firma, NCTS_TMP.ncts_niederlassung, "", NCTS_TMP.ncts_ObjectName)

                        If If(NCTS_TMP.ncts_firma, "") = "" Then NCTS_TMP.ncts_firma = "ATILLA"
                        If If(NCTS_TMP.ncts_niederlassung, "") = "" Then NCTS_TMP.ncts_niederlassung = "SUB"
                    Case "SUB"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "SUB"
                    Case "DUR"
                        NCTS_TMP.ncts_firma = "ATILLA"
                        NCTS_TMP.ncts_niederlassung = "SBG"
                    Case "NKD"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "NKD"
                    Case "WAI"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "WAI"
                    Case "SBG"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "SBG"
                    Case "IME"
                        NCTS_TMP.ncts_firma = "IMEX"
                        NCTS_TMP.ncts_niederlassung = "SUB"
                    Case "GLO"
                        NCTS_TMP.ncts_firma = "IMEX"
                        NCTS_TMP.ncts_niederlassung = "GLO"
                    Case "AMB"
                        NCTS_TMP.ncts_firma = "AMBAR"
                        NCTS_TMP.ncts_niederlassung = "AMBAR"
                    Case "NEU"
                        NCTS_TMP.ncts_firma = "VERAG"
                        NCTS_TMP.ncts_niederlassung = "NEU"
                    Case "ATSP", "ATSPED"
                        NCTS_TMP.ncts_firma = "UNISPED"
                        NCTS_TMP.ncts_niederlassung = "ATSP"
                End Select
                NCTS_TMP.SAVE()
            End If

        End If
        If DY_TMP.dy_AvisoId Is Nothing Then
            DY_TMP.tryFindAviso()
            DY_TMP.SAVE()
        End If
    End Sub








    Shared Function readNCTS_StatusmeldungNCTSDE(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.StatusmeldungNCTSDE.StatusmeldungMSTyp = DAKOSY_Worker.StatusmeldungNCTSDE.StatusmeldungMSTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim status_DY As String = ""

            Dim EntgegennahmeDatumZeit As Object = Nothing
            Dim EntscheidungAnnahmeDatumZeit As Object = Nothing
            Dim EntscheidungUeberlassungDatumZeit As Object = Nothing
            Dim EntscheidungStornierungDatumZeit As Object = Nothing
            Dim ZeitpunktAnrechnungReferenzbetraege As Object = Nothing
            readNCTS_StatusmeldungNCTSDE = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If

                If NCTS.EinzelStatusmeldung IsNot Nothing Then
                    If NCTS.EinzelStatusmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelStatusmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_StatusmeldungNCTSDE = NCTS.EinzelStatusmeldung.ObjektIdentifizierung.ObjektName

                        End If
                    End If
                    If NCTS.EinzelStatusmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelStatusmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelStatusmeldung.KopfDaten.MRN
                        End If

                        If NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit '00:00:00
                        End If


                        If NCTS.EinzelStatusmeldung.KopfDaten.EntgegennahmeDatumZeit > "01.01.2000" Then
                            EntgegennahmeDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntgegennahmeDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungAnnahmeDatumZeit > "01.01.2000" Then
                            EntscheidungAnnahmeDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungAnnahmeDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungUeberlassungDatumZeit > "01.01.2000" Then
                            EntscheidungUeberlassungDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungUeberlassungDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungStornierungDatumZeit > "01.01.2000" Then
                            EntscheidungStornierungDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungStornierungDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.ZeitpunktAnrechnungReferenzbetraege > "01.01.2000" Then
                            ZeitpunktAnrechnungReferenzbetraege = NCTS.EinzelStatusmeldung.KopfDaten.ZeitpunktAnrechnungReferenzbetraege '00:00:00
                        End If

                        'tstmp = NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit '00:00:00
                        If NCTS.EinzelStatusmeldung.KopfDaten.Grund IsNot Nothing Then grund = NCTS.EinzelStatusmeldung.KopfDaten.Grund
                        status_DY = NCTS.EinzelStatusmeldung.KopfDaten.StatusUeberwachung

                        If NCTS.EinzelStatusmeldung.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelStatusmeldung.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If


            If readNCTS_StatusmeldungNCTSDE <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_StatusmeldungNCTSDE
                STATUS.dySt_artMitteilung = "STAT"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                Select Case status_DY
                    Case "13", "14", "15", "16", "31", "34", "35", "37", "38" : tstmp = If(EntscheidungAnnahmeDatumZeit, tstmp)
                    Case "15", "31", "34", "35", "37", "38" : tstmp = If(EntscheidungUeberlassungDatumZeit, tstmp)
                    Case "38" : tstmp = If(EntscheidungStornierungDatumZeit, tstmp)
                    Case "34", "35", "37", "38" : tstmp = If(ZeitpunktAnrechnungReferenzbetraege, tstmp)
                End Select
                Select Case status_DY
                    Case "13" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_13
                    Case "14" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_14
                    Case "16" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_16
                    Case "31" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_31
                    Case "38" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_38
                    Case "39" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_39
                    Case Else
                        STATUS.dySt_status = -1
                        'UNBEKANNT ?????
                End Select
                STATUS.dySt_ergCode = "DY_" & status_DY
                STATUS.dySt_ergMitteilung = MRN & grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, , "") 'MRN)


                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()


                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================



                FORM.addDGVEinarbeitung("NCTS: StatusmeldungNCTSDE", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_StatusmeldungNCTSDE = ""
        End Try
    End Function



    Shared Function readNCTS_StatusmeldungNCTSDE003(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.StatusmeldungNCTSDE_003.StatusmeldungMSTyp = DAKOSY_Worker.StatusmeldungNCTSDE_003.StatusmeldungMSTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim status_DY As String = ""

            Dim EntgegennahmeDatumZeit As Object = Nothing
            Dim EntscheidungAnnahmeDatumZeit As Object = Nothing
            Dim EntscheidungUeberlassungDatumZeit As Object = Nothing
            Dim EntscheidungStornierungDatumZeit As Object = Nothing
            Dim ZeitpunktAnrechnungReferenzbetraege As Object = Nothing
            readNCTS_StatusmeldungNCTSDE003 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If

                If NCTS.EinzelStatusmeldung IsNot Nothing Then
                    If NCTS.EinzelStatusmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelStatusmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_StatusmeldungNCTSDE003 = NCTS.EinzelStatusmeldung.ObjektIdentifizierung.ObjektName

                        End If
                    End If
                    If NCTS.EinzelStatusmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelStatusmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelStatusmeldung.KopfDaten.MRN
                        End If

                        If NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit '00:00:00
                        End If


                        If NCTS.EinzelStatusmeldung.KopfDaten.EntgegennahmeDatumZeit > "01.01.2000" Then
                            EntgegennahmeDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntgegennahmeDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungAnnahmeDatumZeit > "01.01.2000" Then
                            EntscheidungAnnahmeDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungAnnahmeDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungUeberlassungDatumZeit > "01.01.2000" Then
                            EntscheidungUeberlassungDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungUeberlassungDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungStornierungDatumZeit > "01.01.2000" Then
                            EntscheidungStornierungDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungStornierungDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.ZeitpunktAnrechnungReferenzbetraege > "01.01.2000" Then
                            ZeitpunktAnrechnungReferenzbetraege = NCTS.EinzelStatusmeldung.KopfDaten.ZeitpunktAnrechnungReferenzbetraege '00:00:00
                        End If

                        'tstmp = NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit '00:00:00
                        If NCTS.EinzelStatusmeldung.KopfDaten.Grund IsNot Nothing Then grund = NCTS.EinzelStatusmeldung.KopfDaten.Grund
                        status_DY = NCTS.EinzelStatusmeldung.KopfDaten.StatusUeberwachung

                        If NCTS.EinzelStatusmeldung.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelStatusmeldung.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If


            If readNCTS_StatusmeldungNCTSDE003 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_StatusmeldungNCTSDE003
                STATUS.dySt_artMitteilung = "STAT"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                Select Case status_DY
                    Case "13", "14", "15", "16", "31", "34", "35", "37", "38" : tstmp = If(EntscheidungAnnahmeDatumZeit, tstmp)
                    Case "15", "31", "34", "35", "37", "38" : tstmp = If(EntscheidungUeberlassungDatumZeit, tstmp)
                    Case "38" : tstmp = If(EntscheidungStornierungDatumZeit, tstmp)
                    Case "34", "35", "37", "38" : tstmp = If(ZeitpunktAnrechnungReferenzbetraege, tstmp)
                End Select
                Select Case status_DY
                    Case "13" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_13
                    Case "14" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_14
                    Case "16" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_16
                    Case "31" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_31
                    Case "38" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_38
                    Case "39" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_39
                    Case Else
                        STATUS.dySt_status = -1
                        'UNBEKANNT ?????
                End Select
                STATUS.dySt_ergCode = "DY_" & status_DY
                STATUS.dySt_ergMitteilung = MRN & grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, , "") 'MRN)


                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: StatusmeldungNCTSDE", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_StatusmeldungNCTSDE003 = ""
        End Try
    End Function




    Shared Function readNCTS004_StatusmeldungNCTSDE003(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.StatusmeldungNCTSDE_003.StatusmeldungMSTyp = DAKOSY_Worker.StatusmeldungNCTSDE_003.StatusmeldungMSTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim status_DY As String = ""

            Dim EntgegennahmeDatumZeit As Object = Nothing
            Dim EntscheidungAnnahmeDatumZeit As Object = Nothing
            Dim EntscheidungUeberlassungDatumZeit As Object = Nothing
            Dim EntscheidungStornierungDatumZeit As Object = Nothing
            Dim ZeitpunktAnrechnungReferenzbetraege As Object = Nothing
            readNCTS004_StatusmeldungNCTSDE003 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If

                If NCTS.EinzelStatusmeldung IsNot Nothing Then
                    If NCTS.EinzelStatusmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelStatusmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS004_StatusmeldungNCTSDE003 = NCTS.EinzelStatusmeldung.ObjektIdentifizierung.ObjektName

                        End If
                    End If
                    If NCTS.EinzelStatusmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelStatusmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelStatusmeldung.KopfDaten.MRN
                        End If

                        If NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit '00:00:00
                        End If


                        If NCTS.EinzelStatusmeldung.KopfDaten.EntgegennahmeDatumZeit > "01.01.2000" Then
                            EntgegennahmeDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntgegennahmeDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungAnnahmeDatumZeit > "01.01.2000" Then
                            EntscheidungAnnahmeDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungAnnahmeDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungUeberlassungDatumZeit > "01.01.2000" Then
                            EntscheidungUeberlassungDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungUeberlassungDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungStornierungDatumZeit > "01.01.2000" Then
                            EntscheidungStornierungDatumZeit = NCTS.EinzelStatusmeldung.KopfDaten.EntscheidungStornierungDatumZeit '00:00:00
                        End If
                        If NCTS.EinzelStatusmeldung.KopfDaten.ZeitpunktAnrechnungReferenzbetraege > "01.01.2000" Then
                            ZeitpunktAnrechnungReferenzbetraege = NCTS.EinzelStatusmeldung.KopfDaten.ZeitpunktAnrechnungReferenzbetraege '00:00:00
                        End If

                        'tstmp = NCTS.EinzelStatusmeldung.KopfDaten.WeiterverarbeitungAusserhalbATLASDatumZeit '00:00:00
                        If NCTS.EinzelStatusmeldung.KopfDaten.Grund IsNot Nothing Then grund = NCTS.EinzelStatusmeldung.KopfDaten.Grund
                        status_DY = NCTS.EinzelStatusmeldung.KopfDaten.StatusUeberwachung

                        If NCTS.EinzelStatusmeldung.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelStatusmeldung.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If


            If readNCTS004_StatusmeldungNCTSDE003 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS004_StatusmeldungNCTSDE003
                STATUS.dySt_artMitteilung = "STAT"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                Select Case status_DY
                    Case "13", "14", "15", "16", "31", "34", "35", "37", "38" : tstmp = If(EntscheidungAnnahmeDatumZeit, tstmp)
                    Case "15", "31", "34", "35", "37", "38" : tstmp = If(EntscheidungUeberlassungDatumZeit, tstmp)
                    Case "38" : tstmp = If(EntscheidungStornierungDatumZeit, tstmp)
                    Case "34", "35", "37", "38" : tstmp = If(ZeitpunktAnrechnungReferenzbetraege, tstmp)
                End Select
                Select Case status_DY
                    Case "13" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_13
                    Case "14" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_14
                    Case "16" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_16
                    Case "31" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_31
                    Case "38" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_38
                    Case "39" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_39
                    Case Else
                        STATUS.dySt_status = -1
                        'UNBEKANNT ?????
                End Select
                STATUS.dySt_ergCode = "DY_" & status_DY
                STATUS.dySt_ergMitteilung = MRN & grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, , "") 'MRN)


                SaveNCTS004_FirmaNL(NCTS_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: StatusmeldungNCTSDE", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS004_StatusmeldungNCTSDE003 = ""
        End Try
    End Function







    Shared Function readNCTS_Ueberlassungsmeldung(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            readNCTS_Ueberlassungsmeldung = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ueberlassungsmeldung = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.
                    End If

                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Ueberlassungsmeldung <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Ueberlassungsmeldung
                STATUS.dySt_artMitteilung = "UEM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                STATUS.dySt_ergCode = "MRN"
                STATUS.dySt_ergMitteilung = MRN
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN)

                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)
                SaveNCTS_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                statusTMP = STATUS


                ' BEREITSTELLUNG DER DATEN AN FREMDSYSTEME
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP)


                NCTS_TMP.insertIntoSpedBuch(DY_TMP)

                FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ueberlassungsmeldung = ""
        End Try
    End Function



    Shared Function readNCTS_UngueltigkeitSicherheitenNCTSDE(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE.UngueltigkeitSicherheitenMITyp = DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE.UngueltigkeitSicherheitenMITyp.LoadFromFile(d)
            Dim ANR = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim sicherheit As String = ""

            readNCTS_UngueltigkeitSicherheitenNCTSDE = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelUngueltigkeitSicherheiten IsNot Nothing Then
                    If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_UngueltigkeitSicherheitenNCTSDE = NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer IsNot Nothing Then
                            ANR = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer
                        End If
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit
                        End If
                        grund = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Grund

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit IsNot Nothing Then
                            For Each s In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit
                                If s.GRN IsNot Nothing Then
                                    sicherheit &= s.GRN & " "
                                End If
                            Next
                        End If

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If

            sicherheit = sicherheit.Trim

            If readNCTS_UngueltigkeitSicherheitenNCTSDE <> "" And ANR <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_UngueltigkeitSicherheitenNCTSDE
                STATUS.dySt_artMitteilung = "UNG"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_15
                STATUS.dySt_ergCode = "UN"
                STATUS.dySt_ergMitteilung = grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), ANR)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: UngueltigkeitSicherheitenNCTSDE", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_UngueltigkeitSicherheitenNCTSDE = ""
        End Try
    End Function

    Shared Function readNCTS_UngueltigkeitSicherheitenNCTSDE003(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE_003.UngueltigkeitSicherheitenMITyp = DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE_003.UngueltigkeitSicherheitenMITyp.LoadFromFile(d)
            Dim ANR = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim sicherheit As String = ""

            readNCTS_UngueltigkeitSicherheitenNCTSDE003 = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelUngueltigkeitSicherheiten IsNot Nothing Then
                    If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_UngueltigkeitSicherheitenNCTSDE003 = NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer IsNot Nothing Then
                            ANR = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer
                        End If
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit
                        End If
                        grund = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Grund

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit IsNot Nothing Then
                            For Each s In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit
                                If s.GRN IsNot Nothing Then
                                    sicherheit &= s.GRN & " "
                                End If
                            Next
                        End If

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If

            sicherheit = sicherheit.Trim

            If readNCTS_UngueltigkeitSicherheitenNCTSDE003 <> "" And ANR <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_UngueltigkeitSicherheitenNCTSDE003
                STATUS.dySt_artMitteilung = "UNG"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_15
                STATUS.dySt_ergCode = "UN"
                STATUS.dySt_ergMitteilung = grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), ANR)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: UngueltigkeitSicherheitenNCTSDE_003", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_UngueltigkeitSicherheitenNCTSDE003 = ""
        End Try
    End Function

    Shared Function readNCTS_UngueltigkeitSicherheitenNCTSDE004(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE_004.UngueltigkeitSicherheitenMITyp = DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE_004.UngueltigkeitSicherheitenMITyp.LoadFromFile(d)
            Dim ANR = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim sicherheit As String = ""

            readNCTS_UngueltigkeitSicherheitenNCTSDE004 = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelUngueltigkeitSicherheiten IsNot Nothing Then
                    If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_UngueltigkeitSicherheitenNCTSDE004 = NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer IsNot Nothing Then
                            ANR = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer
                        End If
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit
                        End If
                        grund = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Grund

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit IsNot Nothing Then
                            For Each s In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit
                                If s.GRN IsNot Nothing Then
                                    sicherheit &= s.GRN & " "
                                End If
                            Next
                        End If

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If

            sicherheit = sicherheit.Trim

            If readNCTS_UngueltigkeitSicherheitenNCTSDE004 <> "" And ANR <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_UngueltigkeitSicherheitenNCTSDE004
                STATUS.dySt_artMitteilung = "UNG"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_15
                STATUS.dySt_ergCode = "UN"
                STATUS.dySt_ergMitteilung = grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), ANR)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: UngueltigkeitSicherheitenNCTSDE_004", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_UngueltigkeitSicherheitenNCTSDE004 = ""
        End Try
    End Function

    Shared Function readNCTS004_UngueltigkeitSicherheitenNCTSDE004(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE_004.UngueltigkeitSicherheitenMITyp = DAKOSY_Worker.UngueltigkeitSicherheitenNCTSDE_004.UngueltigkeitSicherheitenMITyp.LoadFromFile(d)
            Dim ANR = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim sicherheit As String = ""

            readNCTS004_UngueltigkeitSicherheitenNCTSDE004 = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelUngueltigkeitSicherheiten IsNot Nothing Then
                    If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS004_UngueltigkeitSicherheitenNCTSDE004 = NCTS.EinzelUngueltigkeitSicherheiten.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer IsNot Nothing Then
                            ANR = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Arbeitsnummer
                        End If
                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit > "01.01.2000" Then
                            tstmp = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.ZeitpunktUngueltigkeitUnwirksamkeit
                        End If
                        grund = NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Grund

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit IsNot Nothing Then
                            For Each s In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Sicherheit
                                If s.GRN IsNot Nothing Then
                                    sicherheit &= s.GRN & " "
                                End If
                            Next
                        End If

                        If NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung IsNot Nothing Then
                            For Each F In NCTS.EinzelUngueltigkeitSicherheiten.KopfDaten.Fehlermeldung
                                '???
                            Next
                        End If
                    End If


                End If
            End If

            sicherheit = sicherheit.Trim

            If readNCTS004_UngueltigkeitSicherheitenNCTSDE004 <> "" And ANR <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS004_UngueltigkeitSicherheitenNCTSDE004
                STATUS.dySt_artMitteilung = "UNG"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_15
                STATUS.dySt_ergCode = "UN"
                STATUS.dySt_ergMitteilung = grund
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), ANR)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                FORM.addDGVEinarbeitung("NCTS: UngueltigkeitSicherheitenNCTSDE_004", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS004_UngueltigkeitSicherheitenNCTSDE004 = ""
        End Try
    End Function


    Shared Function readNCTS_Erledigungsmeldung(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.ErledigungsmeldungNCTSDE.ErledigungsmeldungMOTyp = DAKOSY_Worker.ErledigungsmeldungNCTSDE.ErledigungsmeldungMOTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            readNCTS_Erledigungsmeldung = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelErledigungsmeldung IsNot Nothing Then
                    If NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Erledigungsmeldung = NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelErledigungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelErledigungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelErledigungsmeldung.KopfDaten.MRN
                        End If
                        If NCTS.EinzelErledigungsmeldung.KopfDaten.ZeitpunktErledigung > "01.01.2000" Then
                            tstmp = NCTS.EinzelErledigungsmeldung.KopfDaten.ZeitpunktErledigung
                        End If
                    End If
                End If
            End If

            If readNCTS_Erledigungsmeldung <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Erledigungsmeldung
                STATUS.dySt_artMitteilung = "EM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                'Gestellung eintragen, falls nochnicht geschehen
                If Not NCTS_TMP.ncts_Gestellt Then
                    NCTS_TMP.ncts_Gestellt = True
                    NCTS_TMP.SAVE()
                End If

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=======BEREITSTELLUNG DER DATEN AN FREMDSYSTEME=======
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP)
                '======================================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Erledigungsmeldung", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Erledigungsmeldung = ""
        End Try
    End Function


    Shared Function readNCTS_Erledigungsmeldung003(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.ErledigungsmeldungNCTSDE_003.ErledigungsmeldungMOTyp = DAKOSY_Worker.ErledigungsmeldungNCTSDE_003.ErledigungsmeldungMOTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            readNCTS_Erledigungsmeldung003 = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelErledigungsmeldung IsNot Nothing Then
                    If NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Erledigungsmeldung003 = NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelErledigungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelErledigungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelErledigungsmeldung.KopfDaten.MRN
                        End If
                        If NCTS.EinzelErledigungsmeldung.KopfDaten.ZeitpunktErledigung > "01.01.2000" Then
                            tstmp = NCTS.EinzelErledigungsmeldung.KopfDaten.ZeitpunktErledigung
                        End If
                    End If
                End If
            End If

            If readNCTS_Erledigungsmeldung003 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Erledigungsmeldung003
                STATUS.dySt_artMitteilung = "EM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                'Gestellung eintragen, falls nochnicht geschehen
                If Not NCTS_TMP.ncts_Gestellt Then
                    NCTS_TMP.ncts_Gestellt = True
                    NCTS_TMP.SAVE()
                End If

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=======BEREITSTELLUNG DER DATEN AN FREMDSYSTEME=======
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP)
                '======================================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '====================================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Erledigungsmeldung 003", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Erledigungsmeldung003 = ""
        End Try
    End Function

    Shared Function readNCTS004_Erledigungsmeldung003(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.ErledigungsmeldungNCTSDE_003.ErledigungsmeldungMOTyp = DAKOSY_Worker.ErledigungsmeldungNCTSDE_003.ErledigungsmeldungMOTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            readNCTS004_Erledigungsmeldung003 = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelErledigungsmeldung IsNot Nothing Then
                    If NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS004_Erledigungsmeldung003 = NCTS.EinzelErledigungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelErledigungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelErledigungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelErledigungsmeldung.KopfDaten.MRN
                        End If
                        If NCTS.EinzelErledigungsmeldung.KopfDaten.ZeitpunktErledigung > "01.01.2000" Then
                            tstmp = NCTS.EinzelErledigungsmeldung.KopfDaten.ZeitpunktErledigung
                        End If
                    End If
                End If
            End If

            If readNCTS004_Erledigungsmeldung003 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS004_Erledigungsmeldung003
                STATUS.dySt_artMitteilung = "EM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                NCTS_TMP.ncts_Erledigung = tstmp
                'Gestellung eintragen, falls nochnicht geschehen
                If Not NCTS_TMP.ncts_Gestellt Then
                    NCTS_TMP.ncts_Gestellt = True
                End If
                NCTS_TMP.SAVE()

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=======BEREITSTELLUNG DER DATEN AN FREMDSYSTEME=======
                cVERAG_out_ncts.copyFileFTP_VERAGncts004_DY(NCTS_TMP, DY_TMP)
                '======================================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Erledigungsmeldung 003", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS004_Erledigungsmeldung003 = ""
        End Try
    End Function


    Shared Function readNCTS_Ereignismitteilung(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try

            Dim NCTS As DAKOSY_Worker.EreignismitteilungNCTSDE_001.EreignismitteilungMETyp = DAKOSY_Worker.EreignismitteilungNCTSDE_001.EreignismitteilungMETyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            readNCTS_Ereignismitteilung = ""
            If NCTS IsNot Nothing Then
                If NCTS.EinzelEreignismitteilung IsNot Nothing Then
                    If NCTS.EinzelEreignismitteilung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelEreignismitteilung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ereignismitteilung = NCTS.EinzelEreignismitteilung.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelEreignismitteilung.TransitOperation IsNot Nothing Then
                        If NCTS.EinzelEreignismitteilung.TransitOperation.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelEreignismitteilung.TransitOperation.MRN
                        End If
                    End If
                    If NCTS.EinzelEreignismitteilung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelEreignismitteilung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            tstmp = NCTS.EinzelEreignismitteilung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                End If
            End If

            If readNCTS_Ereignismitteilung <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Ereignismitteilung
                STATUS.dySt_artMitteilung = "EGM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                NCTS_TMP.ncts_Erledigung = tstmp
                'Gestellung eintragen, falls nochnicht geschehen
                If Not NCTS_TMP.ncts_Gestellt Then
                    NCTS_TMP.ncts_Gestellt = True
                End If
                NCTS_TMP.SAVE()

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=======BEREITSTELLUNG DER DATEN AN FREMDSYSTEME=======
                cVERAG_out_ncts.copyFileFTP_VERAGncts004_DY(NCTS_TMP, DY_TMP)
                '======================================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================
                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Ereignismitteilung001", STATUS.dySt_BezugsNr)
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ereignismitteilung = ""
        End Try
    End Function

    Shared Function readNCTS_Ueberlassungsmeldung005(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            '  Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_005.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_005.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            readNCTS_Ueberlassungsmeldung005 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ueberlassungsmeldung005 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.
                    End If

                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Ueberlassungsmeldung005 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Ueberlassungsmeldung005
                STATUS.dySt_artMitteilung = "UEM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                STATUS.dySt_ergCode = "MRN"
                STATUS.dySt_ergMitteilung = MRN
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN)

                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)
                SaveNCTS_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                statusTMP = STATUS
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP)
                ' If If(NCTS_TMP.ncts_firma, "") = "IMEX" Then

                NCTS_TMP.insertIntoSpedBuch(DY_TMP)



                FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ueberlassungsmeldung005 = ""
        End Try
    End Function


    Shared Function readNCTS_Ueberlassungsmeldung006(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            '  Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_006.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_006.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            Dim Verschluss_Art = ""
            Dim Verschluss_Anzahl = 0
            Dim Verschluss_Zeichen As New List(Of String)

            readNCTS_Ueberlassungsmeldung006 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ueberlassungsmeldung006 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.

                        'Verschluesse
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse IsNot Nothing Then
                            If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl > 0 Then
                                Verschluss_Art = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Art
                                Verschluss_Anzahl = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl
                                If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen IsNot Nothing Then
                                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen.Count > 0 Then
                                        For Each z In NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen
                                            Verschluss_Zeichen.Add(z)
                                        Next
                                    End If
                                End If
                            End If
                        End If
                    End If

                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Ueberlassungsmeldung006 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Ueberlassungsmeldung006
                STATUS.dySt_artMitteilung = "UEM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                STATUS.dySt_ergCode = "MRN"
                STATUS.dySt_ergMitteilung = MRN
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN)

                If Verschluss_Anzahl > 0 Then
                    NCTS_TMP.ncts_Verschluss_Anzahl = Verschluss_Anzahl
                    NCTS_TMP.ncts_Verschluss_ArtCode = Verschluss_Art
                    NCTS_TMP.ncts_Verschluss_Zeichen1 = If(Verschluss_Zeichen.Count > 0, Verschluss_Zeichen(0), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen2 = If(Verschluss_Zeichen.Count > 1, Verschluss_Zeichen(1), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen3 = If(Verschluss_Zeichen.Count > 2, Verschluss_Zeichen(2), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen4 = If(Verschluss_Zeichen.Count > 3, Verschluss_Zeichen(3), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen5 = If(Verschluss_Zeichen.Count > 4, Verschluss_Zeichen(4), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen6 = If(Verschluss_Zeichen.Count > 5, Verschluss_Zeichen(5), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen7 = If(Verschluss_Zeichen.Count > 6, Verschluss_Zeichen(6), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen8 = If(Verschluss_Zeichen.Count > 7, Verschluss_Zeichen(7), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen9 = If(Verschluss_Zeichen.Count > 8, Verschluss_Zeichen(8), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen10 = If(Verschluss_Zeichen.Count > 9, Verschluss_Zeichen(9), Nothing)
                    NCTS_TMP.SAVE()
                End If

                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)
                SaveNCTS_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                statusTMP = STATUS
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP)
                ' If If(NCTS_TMP.ncts_firma, "") = "IMEX" Then

                NCTS_TMP.insertIntoSpedBuch(DY_TMP)



                FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ueberlassungsmeldung006 = ""
        End Try
    End Function
    Shared Function readNCTS_Ueberlassungsmeldung007(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            '  Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_007.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_007.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            Dim Verschluss_Art = ""
            Dim Verschluss_Anzahl = 0
            Dim Verschluss_Zeichen As New List(Of String)


            readNCTS_Ueberlassungsmeldung007 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ueberlassungsmeldung007 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.

                        'Verschluesse
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse IsNot Nothing Then
                            If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl > 0 Then
                                Verschluss_Art = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Art
                                Verschluss_Anzahl = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl
                                If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen IsNot Nothing Then
                                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen.Count > 0 Then
                                        For Each z In NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen
                                            Verschluss_Zeichen.Add(z)
                                        Next
                                    End If
                                End If
                            End If
                        End If

                    End If

                End If


            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Ueberlassungsmeldung007 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Ueberlassungsmeldung007
                STATUS.dySt_artMitteilung = "UEM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                STATUS.dySt_ergCode = "MRN"
                STATUS.dySt_ergMitteilung = MRN
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN)

                If Verschluss_Anzahl > 0 Then
                    NCTS_TMP.ncts_Verschluss_Anzahl = Verschluss_Anzahl
                    NCTS_TMP.ncts_Verschluss_ArtCode = Verschluss_Art
                    NCTS_TMP.ncts_Verschluss_Zeichen1 = If(Verschluss_Zeichen.Count > 0, Verschluss_Zeichen(0), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen2 = If(Verschluss_Zeichen.Count > 1, Verschluss_Zeichen(1), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen3 = If(Verschluss_Zeichen.Count > 2, Verschluss_Zeichen(2), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen4 = If(Verschluss_Zeichen.Count > 3, Verschluss_Zeichen(3), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen5 = If(Verschluss_Zeichen.Count > 4, Verschluss_Zeichen(4), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen6 = If(Verschluss_Zeichen.Count > 5, Verschluss_Zeichen(5), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen7 = If(Verschluss_Zeichen.Count > 6, Verschluss_Zeichen(6), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen8 = If(Verschluss_Zeichen.Count > 7, Verschluss_Zeichen(7), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen9 = If(Verschluss_Zeichen.Count > 8, Verschluss_Zeichen(8), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen10 = If(Verschluss_Zeichen.Count > 9, Verschluss_Zeichen(9), Nothing)
                    NCTS_TMP.SAVE()
                End If
                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)
                SaveNCTS_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                statusTMP = STATUS
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP) 'VERAG SCHNITTSTELLE
                ' If If(NCTS_TMP.ncts_firma, "") = "IMEX" Then

                NCTS_TMP.insertIntoSpedBuch(DY_TMP)


                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================
                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ueberlassungsmeldung007 = ""
        End Try
    End Function
    Shared Function readNCTS_Ueberlassungsmeldung008(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            '  Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_008.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_008.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            Dim Verschluss_Art = ""
            Dim Verschluss_Anzahl = 0
            Dim Verschluss_Zeichen As New List(Of String)


            readNCTS_Ueberlassungsmeldung008 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ueberlassungsmeldung008 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.

                        'Verschluesse
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse IsNot Nothing Then
                            If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl > 0 Then
                                Verschluss_Art = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Art
                                Verschluss_Anzahl = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl
                                If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen IsNot Nothing Then
                                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen.Count > 0 Then
                                        For Each z In NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen
                                            Verschluss_Zeichen.Add(z)
                                        Next
                                    End If
                                End If
                            End If
                        End If

                    End If

                End If


            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_Ueberlassungsmeldung008 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_Ueberlassungsmeldung008
                STATUS.dySt_artMitteilung = "UEM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                STATUS.dySt_ergCode = "MRN"
                STATUS.dySt_ergMitteilung = MRN
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN)

                If Verschluss_Anzahl > 0 Then
                    NCTS_TMP.ncts_Verschluss_Anzahl = Verschluss_Anzahl
                    NCTS_TMP.ncts_Verschluss_ArtCode = Verschluss_Art
                    NCTS_TMP.ncts_Verschluss_Zeichen1 = If(Verschluss_Zeichen.Count > 0, Verschluss_Zeichen(0), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen2 = If(Verschluss_Zeichen.Count > 1, Verschluss_Zeichen(1), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen3 = If(Verschluss_Zeichen.Count > 2, Verschluss_Zeichen(2), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen4 = If(Verschluss_Zeichen.Count > 3, Verschluss_Zeichen(3), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen5 = If(Verschluss_Zeichen.Count > 4, Verschluss_Zeichen(4), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen6 = If(Verschluss_Zeichen.Count > 5, Verschluss_Zeichen(5), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen7 = If(Verschluss_Zeichen.Count > 6, Verschluss_Zeichen(6), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen8 = If(Verschluss_Zeichen.Count > 7, Verschluss_Zeichen(7), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen9 = If(Verschluss_Zeichen.Count > 8, Verschluss_Zeichen(8), Nothing)
                    NCTS_TMP.ncts_Verschluss_Zeichen10 = If(Verschluss_Zeichen.Count > 9, Verschluss_Zeichen(9), Nothing)
                    NCTS_TMP.SAVE()
                End If
                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)
                SaveNCTS_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                statusTMP = STATUS
                cVERAG_out_ncts.copyFileFTP_VERAGncts_DY(NCTS_TMP, DY_TMP) 'VERAG SCHNITTSTELLE
                ' If If(NCTS_TMP.ncts_firma, "") = "IMEX" Then

                NCTS_TMP.insertIntoSpedBuch(DY_TMP)


                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================
                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ueberlassungsmeldung008 = ""
        End Try
    End Function
    Shared Function readNCTS004_Ueberlassungsmeldung008(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As String
        Try
            '  Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_008.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_008.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            Dim Verschluss_Art = ""
            Dim Verschluss_Anzahl = 0
            Dim Verschluss_Zeichen As New List(Of String)


            readNCTS004_Ueberlassungsmeldung008 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS004_Ueberlassungsmeldung008 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.
                        If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing Then
                            If NCTS.EinzelUeberlassungsmeldung.TransitOperation.AdditionalInformation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails IsNot Nothing Then
                                For Each a In NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails
                                    If a.Key = "LimitDate" Then
                                        Wiedergestellungsdatum = DateTime.ParseExact(a.Value, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)

                                    End If
                                Next
                            End If
                        End If
                        'Verschluesse
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse IsNot Nothing Then
                            If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl > 0 Then
                                Verschluss_Art = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Art
                                Verschluss_Anzahl = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl
                                If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen IsNot Nothing Then
                                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen.Count > 0 Then
                                        For Each z In NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen
                                            Verschluss_Zeichen.Add(z)
                                        Next
                                    End If
                                End If
                            End If
                        End If

                    End If





                End If

            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS004_Ueberlassungsmeldung008 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS004_Ueberlassungsmeldung008
                STATUS.dySt_artMitteilung = "UEM"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                STATUS.dySt_ergCode = "MRN"
                STATUS.dySt_ergMitteilung = MRN
                STATUS.dySt_ergZeitpunkt = zp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN, True)


                NCTS_TMP.ncts_Eroeffnung = zp
                NCTS_TMP.SAVE()

                '------------------------------------------------------------------------------------------------------------------------------
                'GARANTIE ÜBERSCHREIBEN:
                If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee.Count > 0 Then
                    NCTS_TMP.ncts_GUARANTEE.Clear()

                    For Each GRT_M In NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee

                        For Each GRT In GRT_M.GuaranteeReference
                            Dim NCTS_GRT As New DAKOSY_Worker.cDakosy_NCTSOut004_Guarantee


                            NCTS_GRT.nctsGRT_Type = GRT_M.GuaranteeType
                            NCTS_GRT.nctsGRT_OtherGuaranteeReference = GRT_M.OtherGuaranteeReference
                            NCTS_GRT.nctsGRT_AmountToBeCovered = GRT.AmountToBeCovered
                            'NCTS_GRT.nctsGRT_AccessCode = GRT.accessCode
                            NCTS_GRT.nctsGRT_GRN = GRT.GRN
                            NCTS_GRT.nctsGRT_Currency = GRT.Currency
                            NCTS_TMP.ncts_GUARANTEE.Add(NCTS_GRT)

                        Next
                    Next
                    NCTS_TMP.SAVE_Guarantee()
                End If
                '------------------------------------------------------------------------------------------------------------------------------

                'For Each TE In NCTS_TMP.ncts_TRANSPORTEQUIPMENT
                '    If TE.nctsTE_NumberOfSeals > 0 Then

                '    End If
                'Next

                'If Verschluss_Anzahl > 0 Then
                '    NCTS_TMP.ncts_Verschluss_Anzahl = Verschluss_Anzahl
                '    NCTS_TMP.ncts_Verschluss_ArtCode = Verschluss_Art
                '    NCTS_TMP.ncts_Verschluss_Zeichen1 = If(Verschluss_Zeichen.Count > 0, Verschluss_Zeichen(0), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen2 = If(Verschluss_Zeichen.Count > 1, Verschluss_Zeichen(1), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen3 = If(Verschluss_Zeichen.Count > 2, Verschluss_Zeichen(2), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen4 = If(Verschluss_Zeichen.Count > 3, Verschluss_Zeichen(3), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen5 = If(Verschluss_Zeichen.Count > 4, Verschluss_Zeichen(4), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen6 = If(Verschluss_Zeichen.Count > 5, Verschluss_Zeichen(5), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen7 = If(Verschluss_Zeichen.Count > 6, Verschluss_Zeichen(6), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen8 = If(Verschluss_Zeichen.Count > 7, Verschluss_Zeichen(7), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen9 = If(Verschluss_Zeichen.Count > 8, Verschluss_Zeichen(8), Nothing)
                '    NCTS_TMP.ncts_Verschluss_Zeichen10 = If(Verschluss_Zeichen.Count > 9, Verschluss_Zeichen(9), Nothing)
                '    NCTS_TMP.SAVE()
                'End If


                SaveNCTS004_FirmaNL(NCTS_TMP, DY_TMP, division)
                SaveNCTS004_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                statusTMP = STATUS
                cVERAG_out_ncts.copyFileFTP_VERAGncts004_DY(NCTS_TMP, DY_TMP) 'VERAG SCHNITTSTELLE
                ' If If(NCTS_TMP.ncts_firma, "") = "IMEX" Then

                NCTS_TMP.insertIntoSpedBuch(DY_TMP)


                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================
                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS004_Ueberlassungsmeldung008 = ""
        End Try
    End Function
    Shared Function readNCTS_Ueberlassungsmeldung009(FORM As frmDYNachrichtenVerarbeitung, d As String, ByRef statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen, saveVerwahrung As Boolean, sendMail As Boolean, testlauf As Boolean) As String
        Try
            'Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp = DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp.LoadFromFile(d)
            Dim MRN = ""
            Dim division = ""
            Dim Wiedergestellungsdatum As Object = Nothing
            '  Dim bearbeiter = ""
            Dim zp As Object = Nothing
            Dim Verschluss_Art = ""
            Dim Verschluss_Anzahl = 0
            Dim Verschluss_Zeichen As New List(Of String)
            Dim posErledigung As New DataTable


            readNCTS_Ueberlassungsmeldung009 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelUeberlassungsmeldung IsNot Nothing Then
                    If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_Ueberlassungsmeldung009 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        If NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
                            zp = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang
                        End If
                    End If
                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelUeberlassungsmeldung.KopfDaten.MRN
                        End If


                        Wiedergestellungsdatum = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Wiedergestellungsdatum
                        '      bearbeiter=NCTS.EinzelUeberlassungsmeldung.KopfDaten.

                        If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing Then

                            If NCTS.EinzelUeberlassungsmeldung.TransitOperation.HouseConsignment IsNot Nothing Then

                                For Each HC In NCTS.EinzelUeberlassungsmeldung.TransitOperation.HouseConsignment
                                    If HC.ConsignmentItem IsNot Nothing Then
                                        For Each CI In HC.ConsignmentItem
                                            If CI.ProcedureTransference IsNot Nothing Then
                                                If CI.ProcedureTransference.SummaryDeclaration IsNot Nothing Then
                                                    If CI.ProcedureTransference.SummaryDeclaration.SummaryDeclarationGoodsReference IsNot Nothing Then
                                                        For Each SDGR In CI.ProcedureTransference.SummaryDeclaration.SummaryDeclarationGoodsReference


                                                            If SDGR.SequenceNumber IsNot Nothing AndAlso posErledigung IsNot Nothing Then
                                                                If Not posErledigung.Columns.Contains("LaufendeNummer") Then
                                                                    posErledigung.Columns.Add("LaufendeNummer", GetType(String))
                                                                    posErledigung.Columns.Add("IDRegNrSumA", GetType(String))
                                                                    posErledigung.Columns.Add("IDRegNrSumAPos", GetType(String))
                                                                    posErledigung.Columns.Add("StueckzahlErledigte", GetType(String))
                                                                End If

                                                                Dim ro As DataRow = posErledigung.NewRow
                                                                ro("LaufendeNummer") = SDGR.SequenceNumber 'Laufende Nummer der Position innerhalb des Beendigungsanteils SumA. Es handelt sich hier nicht um die Positionsnummer im Quellverfahren SumA. Diese ist ggf. im Feld "[Position SumA] Positionsnummer" eingetragen
                                                                ro("IDRegNrSumA") = SDGR.RegistrationNumber 'MRN des SumA-Vorgangs, der ganz oder teilweise erledigt werden soll.
                                                                ro("IDRegNrSumAPos") = SDGR.GoodsItemNumber 'Nummer der Position des Zugangs zum Quellverfahren Vorübergehende Verwahrung
                                                                ro("StueckzahlErledigte") = SDGR.NumberOfPackages 'Anzahl der zu erledigenden Packstücke oder bei unverpackten Waren die Anzahl der in der Anmeldung erfassten Gegenstände
                                                                posErledigung.Rows.Add(ro)
                                                            End If




                                                        Next
                                                    End If
                                                End If
                                            End If
                                        Next
                                    End If

                                Next

                            End If



                            If NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate.ToString <> "" Then 'Sollte mit Version 009 hier enthalten sein!
                                Try
                                    Wiedergestellungsdatum = DateTime.ParseExact(NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture)
                                    If NCTS.EinzelUeberlassungsmeldung.TransitOperation.AdditionalInformation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails IsNot Nothing Then
                                        For Each a In NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails
                                            If a.Key = "LimitDate" Then
                                                Wiedergestellungsdatum = DateTime.ParseExact(a.Value, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture)

                                            End If
                                        Next
                                    End If
                                Catch ex As Exception
                                    Wiedergestellungsdatum = DateTime.ParseExact(NCTS.EinzelUeberlassungsmeldung.TransitOperation.LimitDate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
                                    If NCTS.EinzelUeberlassungsmeldung.TransitOperation.AdditionalInformation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails IsNot Nothing Then
                                        For Each a In NCTS.EinzelUeberlassungsmeldung.TransitOperation.ApplicationInternalData.AdditionalDetails
                                            If a.Key = "LimitDate" Then
                                                Wiedergestellungsdatum = DateTime.ParseExact(a.Value, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)

                                            End If
                                        Next
                                    End If
                                End Try

                            End If
                        End If
                        'Verschluesse
                        If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse IsNot Nothing Then
                            If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl > 0 Then
                                Verschluss_Art = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Art
                                Verschluss_Anzahl = NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Anzahl
                                If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen IsNot Nothing Then
                                    If NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen.Count > 0 Then
                                        For Each z In NCTS.EinzelUeberlassungsmeldung.KopfDaten.Verschluesse.Zeichen
                                            Verschluss_Zeichen.Add(z)
                                        Next
                                    End If
                                End If
                            End If
                        End If

                    End If
                End If


                'End If
                ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

                If saveVerwahrung Then
                    'saveVerwahrungsAusgang(MRN, posErledigung, NCTS, sendMail, testlauf)
                    cWorker_Verwahrung.saveVerwahrungsAusgang(MRN, posErledigung, "", zp, sendMail, testlauf, True, "T1")
                End If


                If readNCTS_Ueberlassungsmeldung009 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                    STATUS.dySt_BezugsNr = readNCTS_Ueberlassungsmeldung009
                    STATUS.dySt_artMitteilung = "UEM"
                    STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_50
                    STATUS.dySt_ergCode = "MRN"
                    STATUS.dySt_ergMitteilung = MRN
                    STATUS.dySt_ergZeitpunkt = zp
                    'EINTRAG IN tblDakosy_Zollanmeldungen
                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
                    Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), , MRN, True)


                    NCTS_TMP.ncts_Eroeffnung = zp
                    NCTS_TMP.SAVE()

                    '------------------------------------------------------------------------------------------------------------------------------
                    'GARANTIE ÜBERSCHREIBEN:
                    'If NCTS.EinzelUeberlassungsmeldung.TransitOperation IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee IsNot Nothing AndAlso NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee.Count > 0 Then
                    '    NCTS_TMP.ncts_GUARANTEE.Clear()

                    '    For Each GRT_M In NCTS.EinzelUeberlassungsmeldung.TransitOperation.Guarantee

                    '        For Each GRT In GRT_M.GuaranteeReference
                    '            Dim NCTS_GRT As New DAKOSY_Worker.cDakosy_NCTSOut004_Guarantee


                    '            NCTS_GRT.nctsGRT_Type = GRT_M.GuaranteeType
                    '            NCTS_GRT.nctsGRT_OtherGuaranteeReference = GRT_M.OtherGuaranteeReference
                    '            NCTS_GRT.nctsGRT_AmountToBeCovered = GRT.AmountToBeCovered
                    '            'NCTS_GRT.nctsGRT_AccessCode = GRT.accessCode
                    '            NCTS_GRT.nctsGRT_GRN = GRT.GRN
                    '            NCTS_GRT.nctsGRT_Currency = GRT.Currency
                    '            NCTS_TMP.ncts_GUARANTEE.Add(NCTS_GRT)

                    '        Next
                    '    Next
                    '    NCTS_TMP.SAVE_Guarantee()
                    'End If
                    '------------------------------------------------------------------------------------------------------------------------------

                    'For Each TE In NCTS_TMP.ncts_TRANSPORTEQUIPMENT
                    '    If TE.nctsTE_NumberOfSeals > 0 Then

                    '    End If
                    'Next

                    'If Verschluss_Anzahl > 0 Then
                    '    NCTS_TMP.ncts_Verschluss_Anzahl = Verschluss_Anzahl
                    '    NCTS_TMP.ncts_Verschluss_ArtCode = Verschluss_Art
                    '    NCTS_TMP.ncts_Verschluss_Zeichen1 = If(Verschluss_Zeichen.Count > 0, Verschluss_Zeichen(0), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen2 = If(Verschluss_Zeichen.Count > 1, Verschluss_Zeichen(1), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen3 = If(Verschluss_Zeichen.Count > 2, Verschluss_Zeichen(2), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen4 = If(Verschluss_Zeichen.Count > 3, Verschluss_Zeichen(3), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen5 = If(Verschluss_Zeichen.Count > 4, Verschluss_Zeichen(4), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen6 = If(Verschluss_Zeichen.Count > 5, Verschluss_Zeichen(5), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen7 = If(Verschluss_Zeichen.Count > 6, Verschluss_Zeichen(6), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen8 = If(Verschluss_Zeichen.Count > 7, Verschluss_Zeichen(7), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen9 = If(Verschluss_Zeichen.Count > 8, Verschluss_Zeichen(8), Nothing)
                    '    NCTS_TMP.ncts_Verschluss_Zeichen10 = If(Verschluss_Zeichen.Count > 9, Verschluss_Zeichen(9), Nothing)
                    '    NCTS_TMP.SAVE()
                    'End If


                    SaveNCTS004_FirmaNL(NCTS_TMP, DY_TMP, division)
                    SaveNCTS004_WGDAT(NCTS_TMP, Wiedergestellungsdatum)

                    If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                    STATUS.SAVE()
                    statusTMP = STATUS
                    cVERAG_out_ncts.copyFileFTP_VERAGncts004_DY(NCTS_TMP, DY_TMP) 'VERAG SCHNITTSTELLE
                    ' If If(NCTS_TMP.ncts_firma, "") = "IMEX" Then

                    NCTS_TMP.insertIntoSpedBuch(DY_TMP)


                    '=====ATEZ BEREITSTELLUNG==========
                    checkATEZ_Bereitstellung(DY_TMP, d)
                    '==================================
                    '=====ATEZ BEREITSTELLUNG==========
                    checkATEZ_BereitstellungDHUB(DY_TMP, d)
                    '==================================
                    '=====ATEZ IRU BEREITSTELLUNG==========
                    checkATEZIRU_Bereitstellung(DY_TMP, d)
                    '==================================

                    FORM.addDGVEinarbeitung("NCTS: Überlassungsmeldung", STATUS.dySt_BezugsNr)
                End If
            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_Ueberlassungsmeldung009 = ""
        End Try
    End Function

    Shared Sub SaveNCTS_WGDAT(ByRef NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut, WGDAT As Object)

        If WGDAT IsNot Nothing AndAlso IsDate(WGDAT) Then
            NCTS_TMP.ncts_Wiedergestellungsdatum = CDate(WGDAT)
            NCTS_TMP.SAVE()
        End If
    End Sub
    Shared Sub SaveNCTS004_WGDAT(ByRef NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004, WGDAT As Object)

        If WGDAT IsNot Nothing AndAlso IsDate(WGDAT) AndAlso CDate(WGDAT) > "01.01.2000" Then
            NCTS_TMP.ncts_LimitDate = CDate(WGDAT)
            NCTS_TMP.SAVE()
        End If
    End Sub

    Shared Sub checkATEZ_Bereitstellung(DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, filePath As String)
        If DY_TMP Is Nothing Then Exit Sub
        Dim ATEZ = VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_DATA.LOAD_ByBezugsNr(DY_TMP.dy_BezugsNr)
        If (DY_TMP.dy_BezugsNr.Contains("ATEZ") Or DY_TMP.dy_BezugsNr.Contains("PLH")) OrElse (ATEZ IsNot Nothing AndAlso ATEZ.hasEntry) Then
            '   If ATEZ.status IsNot Nothing Then
            'If ATEZ.status < 40 Then
            Dim fio As New System.IO.FileInfo(filePath)
            FileCopy(filePath, "\\ftps.verag.ag\FTP\ATEZ\OUT\" & fio.Name.Replace("lock_", ""))
            'End If
            '  End If
        End If
    End Sub

    Shared Sub checkATEZ_BereitstellungDHUB(DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, filePath As String)
        If DY_TMP Is Nothing Then Exit Sub
        Dim ATEZ = VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_DATA.LOAD_ByBezugsNr(DY_TMP.dy_BezugsNr)
        If DY_TMP.dy_BezugsNr.Contains("DHUB") Then
            '   If ATEZ.status IsNot Nothing Then
            'If ATEZ.status < 40 Then
            Dim fio As New System.IO.FileInfo(filePath)
            FileCopy(filePath, "\\ftps.verag.ag\FTP\ATEZ\OUT\DAKOSY_DeclarantHub\" & fio.Name.Replace("lock_", ""))
            'End If
            '  End If
        End If
    End Sub

    Shared Sub checkATEZIRU_Bereitstellung(DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, filePath As String, Optional Division3 As String = "")
        If DY_TMP Is Nothing Then Exit Sub

        checkATEZIRU_BereitstellungBezugsNr(DY_TMP.dy_BezugsNr, filePath, Division3)

    End Sub

    Shared Sub checkATEZIRU_BereitstellungBezugsNr(dy_BezugsNr As String, filePath As String, Optional Division3 As String = "")
        If dy_BezugsNr = "" Then Exit Sub

        If (dy_BezugsNr.Contains("IRU0")) OrElse Division3 = "IRU" Then

            Try

                If Not System.IO.File.Exists(filePath) Then

                    VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Senden an ATEZ FTP (IRU-NCTS-File). File existert nicht.", "" & vbNewLine & "Datei: " & filePath, System.Reflection.MethodInfo.GetCurrentMethod.Name)
                    Exit Sub
                End If
                Dim F As New System.IO.FileInfo(filePath)

                Dim DY_server = "sftp-01.singlewindow.io"
                Dim DY_name = "VERAG"
                Dim DY_pwd = "5P1PYOr1"
                Dim DY_port = "22"
                Dim DY_PFAD_IN = "/"
                Dim DY_PFAD_IN_KD = ""

                If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
                    DY_server = "sftp-01.singlewindow.io"
                    DY_name = "VERAG-TEST"
                    DY_pwd = "A1ZDTK99"
                End If

                'getSFTPLoginData(DY_server, DY_name, DY_pwd, DY_port, DY_PFAD_IN, "", DY_PFAD_IN_KD, FRIMA_DY)

                Dim ConnectionInfo As New Renci.SshNet.ConnectionInfo(DY_server, DY_port, DY_name, New Renci.SshNet.PasswordAuthenticationMethod(DY_name, DY_pwd))
                Using client = New Renci.SshNet.SftpClient(ConnectionInfo)
                    client.Connect()
                    If DY_PFAD_IN <> "" Then client.ChangeDirectory(DY_PFAD_IN)
                    Using uplfileStream = System.IO.File.OpenRead(filePath)
                        client.UploadFile(uplfileStream, "." & F.Name, True)
                        client.RenameFile("." & F.Name, F.Name)
                    End Using
                    client.Disconnect()
                End Using


            Catch ex As Exception
                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Senden an ATEZ FTP (IRU-NCTS-File). " & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
                Exit Sub
            End Try


        End If
    End Sub



    Shared Sub checkATEZ_BereitstellungBezugsNr(dy_BezugsNr As String, filePath As String)
        If dy_BezugsNr = "" Then Exit Sub
        Dim ATEZ = VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_DATA.LOAD_ByBezugsNr(dy_BezugsNr)
        If (dy_BezugsNr.Contains("ATEZ") Or dy_BezugsNr.Contains("PLH")) OrElse (ATEZ IsNot Nothing AndAlso ATEZ.hasEntry) Then
            '   If ATEZ.status IsNot Nothing Then
            'If ATEZ.status < 40 Then
            Dim fio As New System.IO.FileInfo(filePath)
            FileCopy(filePath, "\\ftps.verag.ag\FTP\ATEZ\OUT\" & fio.Name.Replace("lock_", ""))
            'End If
            '  End If
        End If
    End Sub


    Shared Sub checkATEZ_BereitstellungBezugsNrDHUB(dy_BezugsNr As String, filePath As String)
        If dy_BezugsNr = "" Then Exit Sub
        Dim ATEZ = VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_DATA.LOAD_ByBezugsNr(dy_BezugsNr)
        If dy_BezugsNr.Contains("DHUB") Then
            '   If ATEZ.status IsNot Nothing Then
            'If ATEZ.status < 40 Then
            Dim fio As New System.IO.FileInfo(filePath)
            FileCopy(filePath, "\\ftps.verag.ag\FTP\ATEZ\OUT\DAKOSY_DeclarantHub\" & fio.Name.Replace("lock_", ""))
            'End If
            '  End If
        End If
    End Sub
    'Shared Sub checkATEZIRU_BereitstellungBezugsNr(dy_BezugsNr As String, filePath As String)
    '    If dy_BezugsNr = "" Then Exit Sub
    '    Dim ATEZ = VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_DATA.LOAD_ByBezugsNr(dy_BezugsNr)
    '    If (dy_BezugsNr.Contains("IRU0")) Then
    '        '  Dim fio As New IO.FileInfo(filePath)
    '        '  FileCopy(filePath, "\\ftps.verag.ag\FTP\ATEZ\OUT\" & fio.Name.Replace("lock_", ""))

    '        Try

    '            If Not System.IO.File.Exists(filePath) Then

    '                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Senden an ATEZ FTP (IRU-NCTS-File). File existert nicht.", "" & vbNewLine & "Datei: " & filePath, System.Reflection.MethodInfo.GetCurrentMethod.Name)
    '                Exit Sub
    '            End If
    '            Dim F As New System.IO.FileInfo(filePath)

    '            'Dim DY_server = "91.93.197.91"
    '            'Dim DY_name = "Verag"
    '            'Dim DY_pwd = "5P1PYOr1"
    '            ''Dim DY_name = "Verag-test"
    '            ''Dim DY_pwd = "A1ZDTK99"
    '            'Dim DY_port = "22"
    '            'Dim DY_PFAD_IN = ""
    '            'Dim DY_PFAD_IN_KD = ""


    '            Dim DY_server = "sftp-01.singlewindow.io"
    '            Dim DY_name = "IRU-TEST"
    '            Dim DY_pwd = "T1AF58OP"
    '            'Dim DY_name = "Verag-test"
    '            'Dim DY_pwd = "A1ZDTK99"
    '            Dim DY_port = "22"
    '            Dim DY_PFAD_IN = "/TIR/DE/OUT"
    '            Dim DY_PFAD_IN_KD = ""

    '            'getSFTPLoginData(DY_server, DY_name, DY_pwd, DY_port, DY_PFAD_IN, "", DY_PFAD_IN_KD, FRIMA_DY)

    '            Dim ConnectionInfo As New Renci.SshNet.ConnectionInfo(DY_server, DY_port, DY_name, New Renci.SshNet.PasswordAuthenticationMethod(DY_name, DY_pwd))
    '            Using client = New Renci.SshNet.SftpClient(ConnectionInfo)
    '                client.Connect()
    '                If DY_PFAD_IN <> "" Then client.ChangeDirectory(DY_PFAD_IN)
    '                Using uplfileStream = System.IO.File.OpenRead(filePath)
    '                    client.UploadFile(uplfileStream, "." & F.Name, True)
    '                    client.RenameFile("." & F.Name, F.Name)
    '                End Using
    '                client.Disconnect()
    '            End Using


    '        Catch ex As Exception
    '            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Senden an ATEZ FTP (IRU-NCTS-File). " & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
    '            Exit Sub
    '        End Try


    '    End If
    'End Sub


    Shared Sub checkATEZ_Bereitstellung_VBD(dy_BezugsNr As String, filePath As String)
        'If DY_TMP Is Nothing Then Exit Sub
        Dim ATEZ = VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_DATA.LOAD_ByBezugsNr(dy_BezugsNr)
        If ATEZ IsNot Nothing AndAlso ATEZ.hasEntry Then
            '   If ATEZ.status IsNot Nothing Then
            'If ATEZ.status < 40 Then

            Dim NCTS = cDakosyNCTSOut004.LOADByBezugsNr(dy_BezugsNr, False)
            If NCTS IsNot Nothing Then

                Dim fio As New System.IO.FileInfo(filePath)
                FileCopy(filePath, "\\ftps.verag.ag\FTP\ATEZ\OUT\PDF\" & If(NCTS.ncts_MRN, fio.Name.Replace("lock_", "")))
            End If
            'End If
            '  End If
        End If
    End Sub



    Shared Function readNCTS_AnrechnungReferenzbetraege(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try
            Dim NCTS As DAKOSY_Worker.AnrechnungReferenzbetraegeNCTSDE.AnrechnungReferenzbetraegeMATyp = DAKOSY_Worker.AnrechnungReferenzbetraegeNCTSDE.AnrechnungReferenzbetraegeMATyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            Dim division = ""
            readNCTS_AnrechnungReferenzbetraege = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelAnrechnungReferenzbetraege IsNot Nothing Then
                    If NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_AnrechnungReferenzbetraege = NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.MRN
                            If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.ZeitpunktAnrechnungReferenzbetraege > "01.01.2000" Then
                                tstmp = NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.ZeitpunktAnrechnungReferenzbetraege
                            End If
                        End If
                    End If
                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_AnrechnungReferenzbetraege <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_AnrechnungReferenzbetraege
                STATUS.dySt_artMitteilung = "AR"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_53
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = MRN
                ' STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)

                'Gestellung eintragen
                NCTS_TMP.ncts_Gestellt = True
                NCTS_TMP.ncts_GestelltAm = tstmp
                NCTS_TMP.SAVE()

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: AnrechnungReferenzbetäege", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_AnrechnungReferenzbetraege = ""
        End Try
    End Function



    Shared Function readNCTS_AnrechnungReferenzbetraege002(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try
            Dim NCTS As DAKOSY_Worker.AnrechnungReferenzbetraegeNCTSDE_002.AnrechnungReferenzbetraegeMATyp = DAKOSY_Worker.AnrechnungReferenzbetraegeNCTSDE_002.AnrechnungReferenzbetraegeMATyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            Dim division = ""
            readNCTS_AnrechnungReferenzbetraege002 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelAnrechnungReferenzbetraege IsNot Nothing Then
                    If NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS_AnrechnungReferenzbetraege002 = NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.MRN
                            If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.ZeitpunktAnrechnungReferenzbetraege > "01.01.2000" Then
                                tstmp = NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.ZeitpunktAnrechnungReferenzbetraege
                            End If
                        End If
                    End If
                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS_AnrechnungReferenzbetraege002 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS_AnrechnungReferenzbetraege002
                STATUS.dySt_artMitteilung = "AR"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_53
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = MRN
                ' STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                SaveNCTS_FirmaNL(NCTS_TMP, DY_TMP, division)

                'Gestellung eintragen
                NCTS_TMP.ncts_Gestellt = True
                NCTS_TMP.ncts_GestelltAm = tstmp
                NCTS_TMP.SAVE()

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: AnrechnungReferenzbetäege", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS_AnrechnungReferenzbetraege002 = ""
        End Try
    End Function

    Shared Function readNCTS004_AnrechnungReferenzbetraege002(FORM As frmDYNachrichtenVerarbeitung, d As String) As String
        Try
            Dim NCTS As DAKOSY_Worker.AnrechnungReferenzbetraegeNCTSDE_002.AnrechnungReferenzbetraegeMATyp = DAKOSY_Worker.AnrechnungReferenzbetraegeNCTSDE_002.AnrechnungReferenzbetraegeMATyp.LoadFromFile(d)
            Dim MRN = ""
            Dim tstmp As Object = Nothing
            Dim division = ""
            readNCTS004_AnrechnungReferenzbetraege002 = ""
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    End If
                End If
                If NCTS.EinzelAnrechnungReferenzbetraege IsNot Nothing Then
                    If NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung IsNot Nothing Then
                        If NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readNCTS004_AnrechnungReferenzbetraege002 = NCTS.EinzelAnrechnungReferenzbetraege.ObjektIdentifizierung.ObjektName
                        End If
                    End If
                    If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten IsNot Nothing Then
                        If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.MRN IsNot Nothing Then
                            MRN = NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.MRN
                            If NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.ZeitpunktAnrechnungReferenzbetraege > "01.01.2000" Then
                                tstmp = NCTS.EinzelAnrechnungReferenzbetraege.KopfDaten.ZeitpunktAnrechnungReferenzbetraege
                            End If
                        End If
                    End If
                End If
            End If
            ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readNCTS004_AnrechnungReferenzbetraege002 <> "" And MRN <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readNCTS004_AnrechnungReferenzbetraege002
                STATUS.dySt_artMitteilung = "AR"
                STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_53
                STATUS.dySt_ergCode = "TSTMP"
                STATUS.dySt_ergMitteilung = MRN
                ' STATUS.dySt_ergMitteilung = ""
                If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), "NCTS")
                Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut004 = saveDY_NCTS004(STATUS, DY_TMP, NCTS.Transaktion.IOReferenz, If(tstmp, NCTS.Transaktion.IODatumZeit), , MRN)

                SaveNCTS004_FirmaNL(NCTS_TMP, DY_TMP, division)

                'Gestellung eintragen
                NCTS_TMP.ncts_Gestellt = True
                NCTS_TMP.ncts_GestelltAm = tstmp
                NCTS_TMP.ncts_Ankunft = tstmp
                NCTS_TMP.SAVE()

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_Bereitstellung(DY_TMP, d)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================
                '=====ATEZ IRU BEREITSTELLUNG==========
                checkATEZIRU_Bereitstellung(DY_TMP, d)
                '==================================

                FORM.addDGVEinarbeitung("NCTS: AnrechnungReferenzbetäege", STATUS.dySt_BezugsNr)
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readNCTS004_AnrechnungReferenzbetraege002 = ""
        End Try
    End Function

    Shared Function isAtez(bezugsNr As String) As Boolean
        Dim atez As Boolean = False

        If bezugsNr <> "" AndAlso bezugsNr.Length > 4 AndAlso bezugsNr.Substring(bezugsNr.Length - 4, 4) = "ATEZ" Then
            atez = True
        End If

        Return atez

    End Function

End Class
