Imports System.IO
Imports System.Xml
Imports DAKOSY_Worker
Imports DAKOSY_Worker.SumAVerwahrungsinfo_009
Imports Renci.SshNet

Public Class frmDYNachrichtenVerarbeitung
    Dim cntDatenEingelesen As Integer = 0
    Dim dsNichtErkannt As Integer = 0
    Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
    Dim allowClose = False
    '  Dim DY_PFAD = "C:\Users\DEVELOPER1\Desktop\test\TEST\"
    Public Event EV_FINISHED()
    Dim VERARBEITUNGS_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\"
    Dim ZIEL_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Ablage\"
    Dim ERROR_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_ERROR\"
    Dim BOX_VERSION = "10"

    Dim Dateiname = ""
    Public saveVerwahrung As Boolean = False
    Public sendMail As Boolean = False
    Public GESTELLUNG_TESTLAUF As Boolean = False

    Sub New()

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()

        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub
    Sub New(allowClose) 'autostart

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        Me.allowClose = allowClose
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub

    Sub initPfade()
        If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "" Then VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG"
        Me.VERARBEITUNGS_PFAD = DAKOSY_Worker.cDY_Paramter.GET_PARAM_ByName("VERARBEITUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
        'VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\TESTSYSTEM\Nachrichtendaten_Einarbeitung\"
        Me.ZIEL_PFAD = DAKOSY_Worker.cDY_Paramter.GET_PARAM_ByName("ZIEL_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
        'VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\TESTSYSTEM\Nachrichtendaten_Ablage\"
        Me.ERROR_PFAD = DAKOSY_Worker.cDY_Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
        'VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\TESTSYSTEM\Nachrichtendaten_ERROR\"

        If Not System.IO.Directory.Exists(VERARBEITUNGS_PFAD) Then System.IO.Directory.CreateDirectory(VERARBEITUNGS_PFAD)
        If Not System.IO.Directory.Exists(ZIEL_PFAD) Then System.IO.Directory.CreateDirectory(ZIEL_PFAD)
        If Not System.IO.Directory.Exists(ERROR_PFAD) Then System.IO.Directory.CreateDirectory(ERROR_PFAD)

        Me.BOX_VERSION = DAKOSY_Worker.cDY_Paramter.GET_PARAM_ByName("BOX_VERSION", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)

    End Sub


    Private Sub frmDYNachrichtenVerarbeitung_Load(sender As Object, e As EventArgs) Handles Me.Load
        initPfade()

        If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then lblTest.Text = "TEST"

        For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
            ListBox3.Items.Add(frmStartOptions.cut_file(d))
            Me.Refresh()
        Next
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Me.Enabled = False
        Try
            Label9.Visible = True
            Dim cnt = getNachrichtenDatenFromDakosy()
            Label9.Text = cnt & " Datensätze empfangen."

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

    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Me.Enabled = False
        Try
            Label5.Visible = True
            If ListBox3.Items.Count = 0 Then
                Label6.Text = "Keine Daten zum Einlesen vorhanden."
                Label6.Visible = True
                Exit Sub
            End If
            '-------------------------------------------------------------------------------------
            DatenEinlesen() '<<<<----------------------
            '-------------------------------------------------------------------------------------
            If dsNichtErkannt > 0 Then

                Label6.Text = dsNichtErkannt & " Datensätze nicht " & vbNewLine & "erkannt."
                Label6.Visible = True
            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
        Me.Enabled = True
        Label5.Text = cntDatenEingelesen & " Datensätze verarbeitet."

    End Sub

    Function getNachrichtenDatenFromDakosy() As Integer
        Dim cnt = 0
        Try
            Dim DY_server = ""
            Dim DY_name = ""
            Dim DY_pwd = ""
            Dim DY_port = ""
            Dim DY_PFAD_out = ""

            DAKOSY_Worker.cDakosyFunftions.getSFTPLoginData(DY_server, DY_name, DY_pwd, DY_port, "", DY_PFAD_out, "", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
            Dim ECDSA_host_keytype = "ecdsa-sha2-nistp256" ' AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI3RSVXoxHUFRiQHph842E8zKMuOrh2HkPh/kKaFy97xAORrYtiEAYL7sZ507RoIP689JbXTAOt2yu5/dse9yZo="
            Dim rsa_host_keytype = "ssh-rsa" ' AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI3RSVXoxHUFRiQHph842E8zKMuOrh2HkPh/kKaFy97xAORrYtiEAYL7sZ507RoIP689JbXTAOt2yu5/dse9yZo="
            Dim ECDSA_host_key As String = "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI3RSVXoxHUFRiQHph842E8zKMuOrh2HkPh/kKaFy97xAORrYtiEAYL7sZ507RoIP689JbXTAOt2yu5/dse9yZo="
            Dim SHA256_fingerprint = "KmghfUlqnv/XqRw+FPIdRlp0UYQv6iJf9unHUjHzG5w"
            Dim MD5_fingerprint = "cf:64:a2:08:e8:05:20:02:d8:4f:3b:74:6a:f2:43:06"

            'Dim privateKey As PrivateKeyFile = New PrivateKeyFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".ssh", "id_rsa"), "passphrase")
            'Dim sshClient As SshClient = New SshClient("192.168.0.1", 22, "user", privateKey)
            'sshClient.Connect()
            'Dim command As SshCommand = sshClient.CreateCommand("ls -la")
            'command.Execute()
            'Dim answer As String = command.Result


            Dim ConnectionInfo As New ConnectionInfo(DY_server, DY_port, DY_name, New PasswordAuthenticationMethod(DY_name, DY_pwd))


            Using client = New SftpClient(ConnectionInfo)
                client.Connect()



                'MsgBox(client.ListDirectory(DY_PFAD_out).Count)
                For Each f In client.ListDirectory(DY_PFAD_out)
                    If Not f.Name.StartsWith(".") And Not f.IsDirectory Then
                        'Temp. DownloadPfad
                        Dim destFilenameTMP = VERARBEITUNGS_PFAD + "." & If(System.IO.File.Exists(VERARBEITUNGS_PFAD & "." & f.Name), Now.ToString("yyMMdd_HHmmss.fff_"), "") & f.Name

                        'Datei herunterladen
                        Dim downloadFileStream As Stream = File.OpenWrite(destFilenameTMP)
                        client.DownloadFile(f.FullName, downloadFileStream)
                        If System.IO.File.Exists(destFilenameTMP) Then client.DeleteFile(f.FullName) 'Datei nach erfolgreichem Herunterladen vom Server löschen
                        downloadFileStream.Dispose()

                        'Gültiger Filename
                        Dim destFilename = VERARBEITUNGS_PFAD & If(System.IO.File.Exists(VERARBEITUNGS_PFAD & f.Name), Now.ToString("yyMMdd_HHmmss.fff_"), "") & f.Name
                        System.IO.File.Move(destFilenameTMP, destFilename) 'Datei umbenennen

                        Dim fi As FileInfo = New FileInfo(destFilename)
                        ListBox3.Items.Add(frmStartOptions.cut_file(fi.Name)) 'zur Liste hinzufügen
                        cnt += 1
                    End If
                Next
                client.Disconnect()
            End Using

        Catch ex As Exception
            If ex.Message.Contains("connection was aborted by the server") Then
                '  VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
                'Bei großen Datenmengen kann die Verbindung abbrechen -> nicht alle Elemente werden abgeholt
            Else

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

        Return cnt
    End Function





    ' Dim toEncodeAsBytes() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode)
    '  string returnValue            = System.Convert.ToBase64String(toEncodeAsBytes)
    Public Function stripNonValidXMLCharacters(ByVal textIn As String) As String
        Dim textOut As System.Text.StringBuilder = New System.Text.StringBuilder()
        Dim current As Char
        If textIn Is Nothing OrElse textIn = String.Empty Then Return String.Empty
        For i As Integer = 0 To textIn.Length - 1
            current = textIn(i)
            If (current = "9" OrElse current = "10" OrElse current = "13") OrElse ((current >= "32") AndAlso (current <= "55295")) OrElse ((current >= "57344") AndAlso (current <= "65533")) OrElse ((current >= "65536") AndAlso (current <= "1114111")) Then
                textOut.Append(current)
            End If
        Next

        Return textOut.ToString()
    End Function

    Public Function SanitizeXmlString(ByVal xml As String) As String
        If xml Is Nothing Then
            Throw New ArgumentNullException("xml")
        End If

        Dim buffer As System.Text.StringBuilder = New System.Text.StringBuilder(xml.Length)
        For Each c As Char In xml
            If IsLegalXmlChar(Asc(c)) Then
                buffer.Append(c)
            End If
        Next

        Return buffer.ToString()
    End Function

    Public Function IsLegalXmlChar(ByVal character As Integer) As Boolean
        Return (character = 9 OrElse character = 10 OrElse character = 13 OrElse (character >= 32 AndAlso character <= 55295) OrElse (character >= 57344 AndAlso character <= 65533) OrElse (character >= 65536 AndAlso character <= 1114111))
    End Function

    Private Function getFilesInOrder() As String()
        Dim myDirectory As New System.IO.DirectoryInfo(VERARBEITUNGS_PFAD)
        'Dim myfiles() As String = myDirectory.GetFiles.OrderBy(Function(x) x.LastWriteTime).Select(Function(x) x.FullName).Take(40).ToArray
        Dim myfiles() As String = myDirectory.GetFiles.OrderBy(Function(x) x.CreationTime).Select(Function(x) x.FullName).ToArray
        ' Dim myfiles As FileInfo() = myDirectory.GetFiles().OrderBy(Function(p) p.CreationTime).Select(Function(x) x.FullName).ToArray
        Return myfiles

    End Function

    Sub DatenEinlesen()

        VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL



        For Each d In getFilesInOrder() 'System.System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD,,)
            Try
                Console.WriteLine(d)
                Dateiname = d
                cWorker_NCTS.Dateiname = d
                If System.IO.File.Exists(d) Then


                    Dim found = False
                    Dim statusTMP As DAKOSY_Worker.cDakosy_Statusmeldungen = Nothing

                    Dim fi As FileInfo = New FileInfo(d)
                    Console.WriteLine(fi.Name)
                    If Not fi.Name.StartsWith(".") And Not fi.Name.StartsWith("lock_") Then
                        Console.WriteLine("Verarbeitung Datein ohne Punkt / lock")
                        d = frmStartOptions.lockFile(d)
                        fi = New FileInfo(d)
                        '   EDIFACT
                        ' If fi.Extension = ".edi" Then
                        Dim alreadyMoved = False
                        If fi.Extension = ".nlc" Then ' Or fi.Name.StartsWith("ZA") Then
                            If Not System.IO.Directory.Exists(VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\nlc\") Then System.IO.Directory.CreateDirectory(VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\nlc\")
                            frmStartOptions.moveFile(d, VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\ECHTSYSTEM\nlc\")
                            alreadyMoved = True
                            addDGVEinarbeitung("** NLC-Datei **", fi.Name)
                        ElseIf fi.Extension = ".edi" Then ' Or fi.Name.StartsWith("ZA") Then
                            Console.WriteLine("Verarbeitung Datein EDI")
                            Dim s As String = File.ReadAllText(d, System.Text.UTF8Encoding.Default)
                            If s.Contains("'") Then
                                Dim lines = s.Split("'")
                                For i = 0 To lines.Count - 1
                                    lines(i) = lines(i).Replace("?+", "|plus|").Replace("?:", "|dppkt|").Replace("?.", "|pkt|") ' Da '+' ein Splitter ist, wird ein '+' als Text wie folgt dargestellt: '?+', --> Ersezten
                                Next

                                'NCTS: Versandanmeldung
                                If Not found AndAlso cGetMsgType.isNCTS_Versandanmeldung(lines) Then
                                    Dim bezugsNr = cWorker_NCTS.readNCTS_Versandanmeldung(Me, lines)
                                    If bezugsNr <> "" Then addDGVEinarbeitung("NCTS: Versandanmeldung", bezugsNr) : found = True
                                End If

                                'EZA: FreierVerkehrAktVeredelUmwandlung
                                If Not found AndAlso cGetMsgType.isEZA_FreierVerkehrAktVeredelUmwandlung(lines) Then
                                    Dim bezugsNr = readEZA_FreierVerkehrAktVeredelUmwandlung(lines)
                                    If bezugsNr <> "" Then
                                        addDGVEinarbeitung("EZA: FreierVerkehr", bezugsNr) : found = True
                                        found = True
                                    End If
                                End If

                                'NCTS: Ankunftsanzeige
                                If Not found AndAlso cGetMsgType.isNCTS_Ankunftsanzeige(lines) Then
                                    Dim bezugsNr = cWorker_NCTS.readNCTS_Ankunftsanzeige(Me, lines)
                                    If bezugsNr <> "" Then addDGVEinarbeitung("NCTS: Ankunftsanzeige", bezugsNr) : found = True
                                End If


                            End If

                            'XML
                        ElseIf fi.Extension = ".xml" Then
                            Console.WriteLine("Verarbeitung Datein XML")
                            Dim xmlWriterSettings As XmlWriterSettings = New XmlWriterSettings With {.Encoding = System.Text.Encoding.UTF8, .CheckCharacters = True}

                            Dim doc As New XmlDocument()


                            Dim XML_Code = System.IO.File.ReadAllText(d, System.Text.UTF8Encoding.Default)

                            doc.LoadXml(SanitizeXmlString(XML_Code))

                            Dim VERSION As String = ""


                            '------------------------------------------------------------------------------------------------------------------------------
                            '                                                                  ATLAS
                            '------------------------------------------------------------------------------------------------------------------------------


                            '------------------------------------------
                            '------------------ NCTS ------------------
                            '------------------------------------------
                            '  VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW 'TEEEEESSSSTTT

                            'NCTS: Versandanmeldung ATLAS 9.1
                            If Not found AndAlso cGetMsgType.isNCTS_VersandanmeldungXML_DETPDD(doc) Then
                                If cWorker_NCTS.readNCTS_VersandanmeldungXML_DETPDD(Me, doc, statusTMP) <> "" Then found = True
                            End If

                            'NCTS: Versandanmeldung - alt
                            If Not found AndAlso cGetMsgType.isNCTS_VersandanmeldungXML(doc) Then
                                If cWorker_NCTS.readNCTS_VersandanmeldungXML(Me, doc, statusTMP) <> "" Then found = True
                            End If

                            'NCTS: Überlassungsmeldung ATLAS 9.1 --> Limit
                            If Not found AndAlso cGetMsgType.isNCTS_VersandanmeldungXML_DETPRH(doc) Then
                                If cWorker_NCTS.readNCTS_VersandanmeldungXML_DETPRH(Me, doc, statusTMP) <> "" Then found = True
                            End If


                            'NCTS: Ankunftsanzeige
                            If Not found AndAlso cGetMsgType.isNCTS_AnkunftsanzeigeXML(doc) Then
                                Select Case VERSION
                                    Case "XXXXX"
                                    Case Else : If cWorker_NCTS.readNCTS_AnkunftsanzeigeXML(doc) <> "" Then found = True
                                End Select
                            End If

                            'NCTS: Versandbestätigung
                            If Not found And cGetMsgType.isNCTS_Versandbestaetigung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "002"
                                        If cWorker_NCTS.readNCTS004_Versandbestaetigung002(Me, d) <> "" Then found = True 'NEU
                                        'If Not found Then If cWorker_NCTS.readNCTS_Versandbestaetigung002(Me, d) <> "" Then found = True 'WENN NOCH ALT 
                                    Case Else : If cWorker_NCTS.readNCTS_Versandbestaetigung(Me, d) <> "" Then found = True
                                End Select
                                ' If bezugsNr <> "" Then addDGVEinarbeitung("NCTS: Versandbestätigung", bezugsNr) : found = True
                            End If

                            'NCTS: Ueberlassungsmeldung
                            If Not found And cGetMsgType.isNCTS_Ueberlassungsmeldung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "009" : If cWorker_NCTS.readNCTS_Ueberlassungsmeldung009(Me, d, statusTMP, saveVerwahrung, sendMail, GESTELLUNG_TESTLAUF) <> "" Then found = True ' --> TEIL DER VERWAHRUNG - RECHTE SEITE
                                        If cWorker_NCTS.readNCTS004_Ueberlassungsmeldung008(Me, d, statusTMP) <> "" Then found = True
                                       ' If Not found Then If cWorker_NCTS.readNCTS_Ueberlassungsmeldung008(Me, d, statusTMP) <> "" Then found = True
                                    Case "007" : If cWorker_NCTS.readNCTS_Ueberlassungsmeldung007(Me, d, statusTMP) <> "" Then found = True ': MsgBox("005!")
                                    Case "006" : If cWorker_NCTS.readNCTS_Ueberlassungsmeldung006(Me, d, statusTMP) <> "" Then found = True ': MsgBox("005!")
                                    Case "005" : If cWorker_NCTS.readNCTS_Ueberlassungsmeldung005(Me, d, statusTMP) <> "" Then found = True ': MsgBox("005!")
                                    Case Else : If cWorker_NCTS.readNCTS_Ueberlassungsmeldung(Me, d, statusTMP) <> "" Then found = True
                                End Select
                            End If

                            'NCTS: AnrechnungReferenzbetraege
                            If Not found And cGetMsgType.isNCTS_AnrechnungReferenzbetraege(doc, VERSION) Then
                                Select Case VERSION
                                    Case "002"
                                        If cWorker_NCTS.readNCTS004_AnrechnungReferenzbetraege002(Me, d) <> "" Then found = True  'NEU
                                        ' If Not found Then If cWorker_NCTS.readNCTS_AnrechnungReferenzbetraege002(Me, d) <> "" Then found = True
                                    Case Else : If cWorker_NCTS.readNCTS_AnrechnungReferenzbetraege(Me, d) <> "" Then found = True
                                End Select
                            End If

                            'NCTS: Erledigungsmeldung
                            If Not found And cGetMsgType.isNCTS_Erledigungsmeldung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "003"
                                        If cWorker_NCTS.readNCTS004_Erledigungsmeldung003(Me, d) <> "" Then found = True  'NEU
                                        ' If Not found Then If cWorker_NCTS.readNCTS_Erledigungsmeldung003(Me, d) <> "" Then found = True
                                    Case Else : If cWorker_NCTS.readNCTS_Erledigungsmeldung(Me, d) <> "" Then found = True
                                End Select
                            End If

                            'NCTS: Ereignismitteilung
                            If Not found And cGetMsgType.isNCTS_Ereignismitteilung(doc, VERSION) Then
                                Select Case VERSION
                                    Case Else : If cWorker_NCTS.readNCTS_Ereignismitteilung(Me, d) <> "" Then found = True
                                End Select
                            End If

                            'NCTS: StatusmeldungNCTSDE
                            If Not found And cGetMsgType.isNCTS_StatusmeldungNCTSDE(doc, VERSION) Then
                                Select Case VERSION
                                    Case "003"
                                        If cWorker_NCTS.readNCTS004_StatusmeldungNCTSDE003(Me, d) <> "" Then found = True  'NEU
                                        ' If Not found Then If cWorker_NCTS.readNCTS_StatusmeldungNCTSDE003(Me, d) <> "" Then found = True
                                    Case Else : If cWorker_NCTS.readNCTS_StatusmeldungNCTSDE(Me, d) <> "" Then found = True
                                End Select
                            End If

                            'NCTS: UngueltigkeitSicherheitenNCTSDE
                            If Not found And cGetMsgType.isNCTS_UngueltigkeitSicherheitenNCTSDE(doc, VERSION) Then
                                Select Case VERSION
                                    Case "004"
                                        If cWorker_NCTS.readNCTS004_UngueltigkeitSicherheitenNCTSDE004(Me, d) <> "" Then found = True  'NEU
                                       ' If Not found Then If cWorker_NCTS.readNCTS_UngueltigkeitSicherheitenNCTSDE004(Me, d) <> "" Then found = True ': MsgBox("005!")
                                    Case "003" : If cWorker_NCTS.readNCTS_UngueltigkeitSicherheitenNCTSDE003(Me, d) <> "" Then found = True ': MsgBox("005!")
                                    Case Else : If cWorker_NCTS.readNCTS_UngueltigkeitSicherheitenNCTSDE(Me, d) <> "" Then found = True
                                End Select
                            End If


                            '------------------------------------------
                            '------------------ Verwahrung/ Gestellung (NCTS) ------------------
                            '------------------------------------------


                            'VW: UngueltigkeitSicherheitenNCTSDE
                            If Not found And cGetMsgType.isNCTS_SumAVerwahrungsinfo(doc, VERSION) Then
                                Select Case VERSION
                                    Case False
                                    Case Else : If cWorker_Verwahrung.readVW_SumAVerwahrungsinfo(Me, d, saveVerwahrung, sendMail, GESTELLUNG_TESTLAUF) <> "" Then found = True '--> TEIL DER VERWAHRUNG - LINKE SEITE
                                End Select
                            End If


                            If Not found And cGetMsgType.isSumAErledigungsinformation(doc, VERSION) Then
                                Select Case VERSION
                                    Case "005" : If cWorker_Verwahrung.readVW_SumAErledigungsinformation(Me, d, saveVerwahrung, sendMail, GESTELLUNG_TESTLAUF) <> "" Then found = True '--> TEIL DER VERWAHRUNG - RECHTE SEITE
                                    Case Else : If cWorker_Verwahrung.readVW_SumAErledigungsinformation(Me, d, saveVerwahrung, sendMail, GESTELLUNG_TESTLAUF) <> "" Then found = True '--> TEIL DER VERWAHRUNG - RECHTE SEITE
                                End Select
                            End If


                            'VW: SumAErledigungsinformationVorpapier
                            If Not found And cGetMsgType.isEZA_SumAErledigungsinformationVorpapier(doc, VERSION) Then
                                Select Case VERSION
                                    Case "005" : If cWorker_Verwahrung.readEZA_SumAErledigungsinformationVorpapier_005(Me, d, saveVerwahrung, sendMail, GESTELLUNG_TESTLAUF) <> "" Then found = True ' --> TEIL DER VERWAHRUNG - RECHTE SEITE
                                    Case "004" : If readEZA_SumAErledigungsinformationVorpapier_004(d) <> "" Then found = True
                                    Case Else : If readEZA_SumAErledigungsinformationVorpapier(d) <> "" Then found = True
                                End Select
                            End If


                            'VW: SumAErledigungsinformationCDXWare
                            If Not found And cGetMsgType.isEZA_SumAErledigungsinformationCDXWare(doc, VERSION) Then
                                Select Case VERSION
                                    Case False
                                    Case Else : If cWorker_Verwahrung.readEZA_SumAErledigungsinformationCDXWare007(Me, d, saveVerwahrung) <> "" Then found = True
                                End Select
                            End If

                            'VW: SumABekanntgabeMassnahme
                            If Not found And cGetMsgType.isNCTS_SumABekanntgabeMassnahme(doc, VERSION) Then
                                Select Case VERSION
                                    Case False
                                    Case Else : If cWorker_Verwahrung.readNCTS_SumAMassnahmenbekanntgabe(Me, d, saveVerwahrung) <> "" Then found = True
                                End Select
                            End If


                            '------------------------------------------
                            '------------------ EXPORT / Gestellung (AES) ------------------
                            '------------------------------------------


                            Console.WriteLine("EXG")
                            'AES: GEST
                            If Not found And cGetMsgType.isAES_DatenZumAusgang(doc, VERSION) Then
                                Console.WriteLine("isAES_DatenZumAusgang")
                                Try : frmStartOptions.copyFile(d, "\\datenarchiv\Datenarchiv\DAKOSY\ECHTSYSTEM\EXG\")
                                Catch : End Try

                                Select Case VERSION
                                    Case False
                                    Case Else : If cWorker_AES_EXG.readEZA_DatenZumAusgang_DataEXITDE_005(Me, d, saveVerwahrung) <> "" Then found = True
                                End Select
                            End If

                            'AES: Zoll Nachricht
                            If Not found And cGetMsgType.isAES_E_EXT_DAT(doc) Then
                                Try : frmStartOptions.copyFile(d, "\\datenarchiv\Datenarchiv\DAKOSY\ECHTSYSTEM\EXG\")
                                Catch : End Try
                                'Select Case VERSION
                                '    Case False
                                '    Case Else : If cWorker_AES_EXG.readEZA_DatenZumAusgang_DataEXITDE_005(Me, d, saveVerwahrung) <> "" Then found = True
                                'End Select
                            End If


                            'AES/EZA: Wiedervorlage zur Ausfuhr 
                            If Not found And cGetMsgType.isAES_E_EXP_FUP_DEXPFE(doc) Then
                                If readAES_E_EXP_FUP_DEXPFE(doc) <> "" Then found = True

                            End If


                            '

                            '------------------------------------------
                            '------------------ EZA ------------------
                            '------------------------------------------


                            'EZA: FreierVerkehrAktVeredelUmwandlung NEU XML
                            If Not found AndAlso cGetMsgType.isEZA_FreierVerkehrAktVeredelUmwandlungXML(doc) Then 'FCFCDC
                                Dim bezugsNr = readEZA_FreierVerkehrAktVeredelUmwandlungXML(doc)
                                If bezugsNr <> "" Then
                                    found = True
                                End If
                            End If
                            'EZA: FreierVerkehrAktVeredelUmwandlung NEU XML
                            If Not found AndAlso cGetMsgType.isEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD(doc) Then
                                Dim bezugsNr = readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD(doc)
                                If bezugsNr <> "" Then
                                    found = True
                                End If
                            End If
                            'EZA: FreierVerkehrAktVeredelUmwandlung NEU XML
                            If Not found AndAlso cGetMsgType.isEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE(doc) Then
                                Dim bezugsNr = readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE(doc, statusTMP)
                                If bezugsNr <> "" Then
                                    found = True
                                End If
                            End If

                            'EZA: FreierVerkehrAktVeredelUmwandlung NEU XML
                            If Not found AndAlso cGetMsgType.isEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF(doc) Then
                                Dim bezugsNr = readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF(doc, statusTMP)
                                If bezugsNr <> "" Then
                                    found = True
                                End If
                            End If

                            'EZA: EntscheidungAnmeldung
                            If Not found And cGetMsgType.isEZA_EntscheidungAnmeldung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "005" : If readEZA_EntscheidungAnmeldung_005(d) <> "" Then found = True
                                    Case "004" : If readEZA_EntscheidungAnmeldung_004(d) <> "" Then found = True
                                    Case Else : If readEZA_EntscheidungAnmeldung(d) <> "" Then found = True
                                End Select

                            End If

                            'EZA: SumAErledigungsinformationVorpapier ' --> TEIL DER VERWAHRUNG
                            '
                            '
                            '
                            '
                            '

                            'EZA: Abgabenbescheid
                            If Not found And cGetMsgType.isEZA_Abgabenbescheid(doc, VERSION) Then
                                Select Case VERSION
                                    Case "012" : If readEZA_Abgabenbescheid012(d, statusTMP) <> "" Then found = True
                                    Case "011" : If readEZA_Abgabenbescheid011(d, statusTMP) <> "" Then found = True
                                    Case "010" : If readEZA_Abgabenbescheid010(d, statusTMP) <> "" Then found = True
                                    Case "009" : If readEZA_Abgabenbescheid009(d, statusTMP) <> "" Then found = True
                                    Case "008" : If readEZA_Abgabenbescheid008(d) <> "" Then found = True
                                    Case Else : If readEZA_Abgabenbescheid(d) <> "" Then found = True
                                End Select
                            End If


                            'EZA: NichtAbschliessendeFestsetzung
                            If Not found And cGetMsgType.isEZA_NichtAbschliessendeFestsetzung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "005" : If readEZA_NichtAbschliessendeFestsetzung005(d) <> "" Then found = True
                                    Case "004" : If readEZA_NichtAbschliessendeFestsetzung004(d) <> "" Then found = True
                                    Case "003" : If readEZA_NichtAbschliessendeFestsetzung003(d) <> "" Then found = True
                                    Case Else : If readEZA_NichtAbschliessendeFestsetzung(d) <> "" Then found = True
                                End Select
                            End If

                            'EZA:  AbschliessendeFestsetzung
                            If Not found And cGetMsgType.isEZA_AbschliessendeFestsetzung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "006" : If readEZA_AbschliessendeFestsetzung006(d) <> "" Then found = True
                                    Case "005" : If readEZA_AbschliessendeFestsetzung005(d) <> "" Then found = True
                                    Case "004" : If readEZA_AbschliessendeFestsetzung004(d) <> "" Then found = True
                                    Case Else : If readEZA_AbschliessendeFestsetzung(d) <> "" Then found = True
                                End Select

                            End If

                            'EZA:  StornierungBescheid
                            If Not found And cGetMsgType.isEZA_StornierungBescheid(doc, VERSION) Then
                                Select Case VERSION
                                    Case "003" : If readEZA_StornierungBescheid_003(d) <> "" Then found = True
                                    Case "002" : If readEZA_StornierungBescheid_002(d) <> "" Then found = True
                                    Case Else : If readEZA_StornierungBescheid(d) <> "" Then found = True
                                End Select
                            End If

                            'EZA:  BefundVereinfachteZollanmeldung
                            If Not found And cGetMsgType.isEZA_BefundVereinfachteZollanmeldung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "007" : found = True : addDGVEinarbeitung("*EZA:  BefundVereinfachteZollanmeldung", "-")
                                    Case "006" : found = True : addDGVEinarbeitung("*EZA:  BefundVereinfachteZollanmeldung", "-")
                                    Case "007" : found = True : addDGVEinarbeitung("*EZA:  BefundVereinfachteZollanmeldung", "-")
                                    Case "008" : found = True : addDGVEinarbeitung("*EZA:  BefundVereinfachteZollanmeldung", "-")
                                    Case Else : found = True : addDGVEinarbeitung("*EZA:  BefundVereinfachteZollanmeldung", "-")
                                End Select


                            End If

                            'EZA:  MitteilungAbschreibung
                            If Not found And cGetMsgType.isEZA_MitteilungAbschreibung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "005" : found = True : addDGVEinarbeitung("*EZA:  MitteilungAbschreibung", "-")
                                    Case Else : found = True : addDGVEinarbeitung("*EZA:  MitteilungAbschreibung", "-")
                                End Select

                            End If

                            'EZA:  WeitergabeHauptzollamt
                            If Not found And cGetMsgType.isEZA_WeitergabeHauptzollamt(doc, VERSION) Then
                                Select Case VERSION
                                    Case "003" : found = True : addDGVEinarbeitung("*EZA:  WeitergabeHauptzollamt", "-")
                                    Case Else : found = True : addDGVEinarbeitung("*EZA:  WeitergabeHauptzollamt", "-")
                                End Select


                            End If


                            '------------------------------------------
                            '------------------ AES ------------------
                            '------------------------------------------

                            If Not found Then

                                '????? UeberlassungAusfuhr

                                Dim doc2 As New XmlDocument()
                                Dim XML_Code2 = System.IO.File.ReadAllText(d, System.Text.ASCIIEncoding.UTF8)
                                doc2.LoadXml(SanitizeXmlString(XML_Code2))

                                'AES: VollstaendigeAusfuhr
                                If Not found And cGetMsgType.isAES_DEXPDD(doc2) Then
                                    If readAES_DEXPDD(doc2) <> "" Then found = True
                                End If
                                'AES: VollstaendigeAusfuhr
                                If Not found And cGetMsgType.isAES_DEXPDE(doc2) Then
                                    If readAES_DEXPDE(doc2) <> "" Then found = True
                                End If

                                'AES: VollstaendigeAusfuhr 2023 ATLAS 9.1
                                If Not found And cGetMsgType.isAES_DEXPDF(doc2) Then
                                    If readAES_DEXPDF(doc2) <> "" Then found = True
                                End If

                                'AES: Statusmeldung
                                If Not found And cGetMsgType.isAES_DEXPSD(doc2) Then
                                    If readAES_DEXPSD(doc2) <> "" Then found = True
                                End If

                                'AES: DeliveryNotification
                                If Not found And cGetMsgType.isAES_DeliveryNotification(doc2) Then
                                    found = True
                                    addDGVEinarbeitung("*AES: DeliveryNotification", "-")
                                End If

                                '---------------------------------------------------------------------------------
                                '--------OLD----------------------------------------------------------------------
                                '---------------------------------------------------------------------------------
                                'AES: DEXPRE - Überlassung 2.3
                                If Not found And cGetMsgType.isAES_DEXPRD(doc2) Then
                                    If readAES_DEXPRD(doc2) <> "" Then found = True
                                End If

                                'AES: DEXPRE - Überlassung 2.4
                                If Not found And cGetMsgType.isAES_DEXPRE(doc2) Then
                                    If readAES_DEXPRE(doc2) <> "" Then found = True
                                End If
                                '---------------------------------------------------------------------------------
                                '---------------------------------------------------------------------------------
                                '---------------------------------------------------------------------------------



                                'AES: UeberlassungAusfuhr 
                                If Not found And cGetMsgType.isAES_UeberlassungAusfuhr(doc, VERSION) Then
                                    Select Case VERSION
                                        Case "007" : If readAES_UeberlassungAusfuhr_007(d) <> "" Then found = True
                                        Case "006" : If readAES_UeberlassungAusfuhr_006(d) <> "" Then found = True
                                    End Select
                                End If


                                'AES: BestaetigungAusfuhr 
                                If Not found And cGetMsgType.isAES_BestaetigungAusfuhr(doc, VERSION) Then
                                    Select Case VERSION
                                        Case "07" : If readAES_BestaetigungAusfuhr_007(d) <> "" Then found = True
                                        Case "006" : If readAES_BestaetigungAusfuhr_006(d) <> "" Then found = True
                                    End Select
                                End If



                                'AES: Error
                                If Not found And cGetMsgType.isAES_DEERRE(doc2) Then
                                    readAES_DEERRE(doc2)
                                    found = True
                                End If

                                'AES: DEXPNE - Mitteilung
                                If Not found And (cGetMsgType.isAES_DEXPNE(doc2) Or cGetMsgType.isAES_DEXPND(doc2)) Then
                                    found = True
                                    addDGVEinarbeitung("*AES: Mitteilung", "-")
                                End If

                                'AES: Storno
                                If Not found And cGetMsgType.isAES_DEXPCC(doc2) Then
                                    readAES_DEXPCC(doc2)
                                    found = True
                                    'kann sein, dass keine Bezugsnr gefunden, nur MRN...
                                End If

                            End If

                            '------------------------------------------
                            '------------------ Diverse ------------------
                            '------------------------------------------
                            'SONDERFALL: Betrifft div. Arten von Anmeldungen: GenerellesEreignis
                            If Not found And cGetMsgType.isNCTS_GenerellesEreignis(doc, VERSION) Then
                                Select Case VERSION
                                    Case "006" : If readNCTS_GenerellesEreignis_006(d, statusTMP) Then found = True
                                    Case "005" : If readNCTS_GenerellesEreignis_005(d, statusTMP) Then found = True
                                    Case Else : If readNCTS_GenerellesEreignis(d) Then found = True
                                End Select

                            End If

                            'SONDERFALL: Betrifft div. Arten von Anmeldungen: QuittungEingangsverarbeitung 
                            If Not found And cGetMsgType.isNCTS_QuittungEingangsverarbeitung(doc, VERSION) Then
                                Select Case VERSION
                                    Case "005" : If readNCTS_QuittungEingangsverarbeitung_005(d, statusTMP) Then found = True
                                        '  Case Else : If readNCTS_GenerellesEreignis(d) Then found = True
                                End Select

                            End If



                            '------------------------------------------------------------------------------------------------------------------------------
                            '                                                                  EZOLL
                            '------------------------------------------------------------------------------------------------------------------------------


                            '------------------------------------------
                            '------------------ NCTS ------------------
                            '------------------------------------------

                            'NCTS: TR100 Versandanmeldung
                            If Not found And cGetMsgType.isNCTS_AT_TR100_Versandanmeldung(doc) Then
                                If readNCTS_AT_TR100_Versandanmeldung(doc) <> "" Then found = True
                            End If



                            '------------------------------------------------------------------------------------------------------------------------------
                            '                                                                  VERAG
                            '------------------------------------------------------------------------------------------------------------------------------

                            'VERAG KD TEST
                            If Not found And cGetMsgType.isVERAG_KD(doc) Then
                                If readVERAG_KD(d) <> "" Then found = True
                                '  If bezugsNr <> "" Then addDGVEinarbeitung("NCTS: UngueltigkeitSicherheitenNCTSDE", bezugsNr) : found = True
                            End If


                            '   If found = False Then getString(doc)

                        End If

                        If True Then
                            If Not alreadyMoved Then
                                If found Then
                                    Dim dest = ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\"
                                    If Not System.IO.Directory.Exists(dest) Then System.IO.Directory.CreateDirectory(dest)
                                    Dim destFile = ""
                                    If frmStartOptions.moveFile(d, dest, destFile) Then ' dest: Filename wird angefügt 
                                        If statusTMP IsNot Nothing Then
                                            statusTMP.updatePfad(destFile)
                                        End If
                                    End If
                                Else
                                    Dim destErr = ERROR_PFAD & Now.ToString("yyyy_MM") & "\"
                                    If Not System.IO.Directory.Exists(destErr) Then System.IO.Directory.CreateDirectory(destErr)

                                    frmStartOptions.moveFile(d, destErr)
                                End If
                            End If

                        End If

                        Me.Refresh()
                        If found Then cntDatenEingelesen += 1 Else dsNichtErkannt += 1
                    End If
                End If
            Catch ex As Exception
                Console.WriteLine("ERROR" & ex.Message & ex.StackTrace)
                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            End Try
        Next
    End Sub



    Function getString(doc As XmlDocument) As Boolean
        If doc.HasChildNodes Then
            '  If doc.GetElementsByTagName("DakosyMessageInternal").Count > 0 Then
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            '  MsgBox(XmlString)
        End If
        Return False
    End Function



    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        Me.Close()
    End Sub

    Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
        Me.Close()
    End Sub




    Sub SaveAES_FirmaNL(ByRef AES_TMP As DAKOSY_Worker.cDakosyAES, division As String)

        If division <> "" Then
            If (AES_TMP.aes_firma Is Nothing OrElse AES_TMP.aes_firma = "") Or (AES_TMP.aes_niederlassung Is Nothing OrElse AES_TMP.aes_niederlassung = "") Then
                Select Case division
                    Case "SUW"
                        AES_TMP.aes_firma = "ATILLA"
                        AES_TMP.aes_niederlassung = "SUB"
                    Case "SUB"
                        AES_TMP.aes_firma = "VERAG"
                        AES_TMP.aes_niederlassung = "SUB"
                    Case "DUR"
                        AES_TMP.aes_firma = "DURMAZ"
                        AES_TMP.aes_niederlassung = "SBG"
                    Case "NKD"
                        AES_TMP.aes_firma = "VERAG"
                        AES_TMP.aes_niederlassung = "NKD"
                    Case "WAI"
                        AES_TMP.aes_firma = "VERAG"
                        AES_TMP.aes_niederlassung = "WAI"
                    Case "SBG"
                        AES_TMP.aes_firma = "VERAG"
                        AES_TMP.aes_niederlassung = "SBG"
                    Case "NEU"
                        AES_TMP.aes_firma = "VERAG"
                        AES_TMP.aes_niederlassung = "NEU"
                    Case "GLO"
                        AES_TMP.aes_firma = "IMEX"
                        AES_TMP.aes_niederlassung = "GLO"
                    Case "AMB"
                        AES_TMP.aes_firma = "AMBAR"
                        AES_TMP.aes_niederlassung = "AMBAR"
                    Case "IME"
                        AES_TMP.aes_firma = "IMEX"
                        AES_TMP.aes_niederlassung = "IMEX"
                    Case "UNAT", "ATSPED"
                        AES_TMP.aes_firma = "UNISPED"
                        AES_TMP.aes_niederlassung = "ATSP"
                End Select


                AES_TMP.SAVE()
            End If

        End If

        If If(AES_TMP.aes_firma, "") = "" And If(AES_TMP.aes_firma, "") = "" Then
            Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA 'Gehrt nur bei UNSPED
                Case "UNISPED"
                    AES_TMP.aes_firma = "UNISPED"
                    AES_TMP.aes_niederlassung = "ATSP"
            End Select
        End If

    End Sub


    Sub SaveEZA_FirmaNL(ByRef EZA_TMP As DAKOSY_Worker.cDakosyEZA, DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen, division As String, Optional ByRef firma As String = "", Optional ByRef nl As String = "")

        If division <> "" Then
            If (EZA_TMP.eza_firma Is Nothing OrElse EZA_TMP.eza_firma = "") Or (EZA_TMP.eza_niederlassung Is Nothing OrElse EZA_TMP.eza_niederlassung = "") Then
                Select Case division
                    Case "SUW"
                        EZA_TMP.eza_firma = "ATILLA"
                        EZA_TMP.eza_niederlassung = "SUB"
                    Case "SUB"
                        EZA_TMP.eza_firma = "VERAG"
                        EZA_TMP.eza_niederlassung = "SUB"
                    Case "DUR"
                        EZA_TMP.eza_firma = "DURMAZ"
                        EZA_TMP.eza_niederlassung = "SBG"
                    Case "NKD"
                        EZA_TMP.eza_firma = "VERAG"
                        EZA_TMP.eza_niederlassung = "NKD"
                    Case "WAI"
                        EZA_TMP.eza_firma = "VERAG"
                        EZA_TMP.eza_niederlassung = "WAI"
                    Case "SBG"
                        EZA_TMP.eza_firma = "VERAG"
                        EZA_TMP.eza_niederlassung = "SBG"
                    Case "NEU"
                        EZA_TMP.eza_firma = "VERAG"
                        EZA_TMP.eza_niederlassung = "NEU"
                    Case "GLO"
                        EZA_TMP.eza_firma = "IMEX"
                        EZA_TMP.eza_niederlassung = "GLO"
                    Case "AMB"
                        EZA_TMP.eza_firma = "AMBAR"
                        EZA_TMP.eza_niederlassung = "AMBAR"
                    Case "IME"
                        EZA_TMP.eza_firma = "IMEX"
                        EZA_TMP.eza_niederlassung = "IMX"
                    Case "UNAT", "ATSPED"
                        EZA_TMP.eza_firma = "UNISPED"
                        EZA_TMP.eza_niederlassung = "ATSP"
                End Select
                firma = If(EZA_TMP.eza_firma, "")
                nl = If(EZA_TMP.eza_niederlassung, "")


                EZA_TMP.SAVE()
            End If

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


        If If(EZA_TMP.eza_firma, "") = "" And If(EZA_TMP.eza_niederlassung, "") = "" Then
            Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA 'Gehrt nur bei UNSPED
                Case "UNISPED"
                    EZA_TMP.eza_firma = "UNISPED"
                    EZA_TMP.eza_niederlassung = "ATSP"
                    firma = EZA_TMP.eza_firma
                    nl = EZA_TMP.eza_niederlassung
            End Select

        End If
    End Sub

    Shared Sub setFirmaNL(iopartner As String, division As String, ByRef firma As String, ByRef nl As String)
        If division Is Nothing Then Exit Sub
        If division <> "" Then
            Select Case division
                Case "SUW"
                    firma = "ATILLA"
                    nl = "SUB"
                Case "SUB"
                    firma = "VERAG"
                    nl = "SUB"
                Case "DUR"
                    firma = "DURMAZ"
                    nl = "SBG"
                Case "NKD"
                    firma = "VERAG"
                    nl = "NKD"
                Case "WAI"
                    firma = "VERAG"
                    nl = "WAI"
                Case "SBG"
                    firma = "VERAG"
                    nl = "SBG"
                Case "NEU"
                    firma = "VERAG"
                    nl = "NEU"
                Case "GLO"
                    firma = "IMEX"
                    nl = "GLO"
                Case "AMB"
                    firma = "AMBAR"
                    nl = "AMBAR"
                Case "IME"
                    firma = "IMEX"
                    nl = "IMX"
                Case "UNAT", "ATSPED"
                    firma = "UNISPED"
                    nl = "ATSP"
            End Select


        End If

    End Sub



    Sub addDGVEinarbeitung(art, BezugsNr)

        dgvEinarbeitung.Rows.Add(art, BezugsNr)
        Try
            dgvEinarbeitung.FirstDisplayedScrollingRowIndex = dgvEinarbeitung.RowCount - 1
        Catch ex As Exception
        End Try
    End Sub


    Function getVerahrensartFromBezugsNr(bezugsNr) As String
        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
        If SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) FROM tblDakosy_NCTSOut004 WHERE ncts_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "NCTS"
        If SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) FROM tblDakosy_NCTSOut WHERE ncts_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "NCTS"
        If SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) FROM tblDakosy_EZA WHERE eza_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "EZA"
        Return ""
    End Function

    Function getStatusCheckTransID(transId As String, transDate As Date) As DAKOSY_Worker.cDakosy_Statusmeldungen
        getStatusCheckTransID = DAKOSY_Worker.cDakosy_Statusmeldungen.LOADByDakosyTransaktionsID(transId)
        If getStatusCheckTransID Is Nothing Then
            getStatusCheckTransID = New DAKOSY_Worker.cDakosy_Statusmeldungen
        End If
        getStatusCheckTransID.dySt_DakosyTransaktionsDatum = transDate
        getStatusCheckTransID.dySt_DakosyTransaktionsID = transId
    End Function

    Function saveDY_ZA(STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen, transID As String, ergtransDate As Date, art As String) As DAKOSY_Worker.cDakosy_Zollanmeldungen
        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = Nothing
        DY_TMP = DAKOSY_Worker.cDakosy_Zollanmeldungen.LOADByBezugsNr(STATUS.dySt_BezugsNr.ToString)
        If DY_TMP Is Nothing Then
            DY_TMP = New DAKOSY_Worker.cDakosy_Zollanmeldungen
            DY_TMP.dy_BezugsNr = STATUS.dySt_BezugsNr
            DY_TMP.dy_ART = art
            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, ergtransDate) Then
                DY_TMP.dy_Status = STATUS.dySt_status
            End If
            DY_TMP.SAVE()
            'Eintragen
        Else
            'Update  NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit
            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, ergtransDate) Then
                DY_TMP.UPDATE_Status(STATUS.dySt_status)
            End If

        End If


        'Status wir dnur upgedatet, wenn nicht schon ein neuerer Datensatz verarbeitet wurde!:






        'If DY_TMP.dy_AvisoId Is Nothing Or DY_TMP.dy_SendungsId Is Nothing Then
        'If getAVSIOFromBezugsNr(STATUS.dySt_BezugsNr, DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId) Then ' Lädt AVSIO
        'DY_TMP.SAVE() ' AVISOID/SendungsID speichern
        ' End If
        ' End If

        Return DY_TMP
    End Function
    Shared Function saveDY_ZA(dySt_BezugsNr As String, art As String) As DAKOSY_Worker.cDakosy_Zollanmeldungen
        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = Nothing
        DY_TMP = DAKOSY_Worker.cDakosy_Zollanmeldungen.LOADByBezugsNr(dySt_BezugsNr)
        If DY_TMP Is Nothing Then
            DY_TMP = New DAKOSY_Worker.cDakosy_Zollanmeldungen
            DY_TMP.dy_BezugsNr = dySt_BezugsNr
            DY_TMP.dy_ART = art
            ' DY_TMP.dy_Status = STATUS.dySt_status
            DY_TMP.SAVE()
            'Eintragen
        Else
            'Update
            ' DY_TMP.UPDATE_Status(STATUS.dySt_status)
        End If
        saveDY_ZA = DY_TMP
    End Function


    Function readNCTS_GenerellesEreignis(d As String) As Boolean
        Try


            Dim NCTS As DAKOSY_Worker.GenerellesEreignis.GenerellesEreignisGETyp = DAKOSY_Worker.GenerellesEreignis.GenerellesEreignisGETyp.LoadFromFile(d)
            Dim division = ""

            readNCTS_GenerellesEreignis = False
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    ElseIf NCTS.Transaktion.IODivision1 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision1
                    End If

                End If
                If NCTS.EinzelEreignisObjekt IsNot Nothing Then
                    For Each ge In NCTS.EinzelEreignisObjekt
                        If ge.ObjektIdentifizierung IsNot Nothing Then
                            If ge.ObjektIdentifizierung.ObjektName IsNot Nothing And ge.ObjektIdentifizierung.Ereignisgewichtung IsNot Nothing Then
                                ' ListBox4.Items.Add(ge.ObjektIdentifizierung.ObjektName)



                                Dim STATUS2 As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)

                                STATUS2.dySt_artMitteilung = "GE"
                                STATUS2.dySt_dyArt = "" '"NCTS" 'T1/T2
                                STATUS2.dySt_BezugsNr = ge.ObjektIdentifizierung.ObjektName
                                STATUS2.dySt_ergCode = "" 'erg.EreignisCode
                                STATUS2.dySt_ergMitteilung = "" 'erg.Ereignismitteilung
                                If ge.ObjektIdentifizierung.Ereignisgewichtung.Contains("OKAY") Then
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_07
                                Else
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_98
                                End If
                                readNCTS_GenerellesEreignis = True

                                Select Case getVerahrensartFromBezugsNr(ge.ObjektIdentifizierung.ObjektName)
                                    Case "NCTS"
                                        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                        Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                        If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                        cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                        STATUS2.dySt_dyArt = "NCTS"
                                    Case "EZA", ""
                                        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                        If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                        STATUS2.dySt_dyArt = "EZA"
                                End Select

                                STATUS2.SAVE()

                                'Nur wenn BezugsNr vorhanden:
                                If ge.KopfDaten IsNot Nothing Then
                                    For Each kopf In ge.KopfDaten
                                        If kopf.Ereignis IsNot Nothing Then
                                            If kopf.RegistrierNrATLAS IsNot Nothing Then
                                                'MsgBox(kopf.RegistrierNrATLAS)
                                                If kopf.RegistrierNrATLAS.StartsWith("ATA") Or kopf.RegistrierNrATLAS.StartsWith("ATC") Then 'EZA!
                                                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                                    STATUS.dySt_artMitteilung = "GE"
                                                    STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2
                                                    STATUS.dySt_BezugsNr = ge.ObjektIdentifizierung.ObjektName
                                                    STATUS.dySt_ergCode = "ATA"
                                                    STATUS.dySt_ergMitteilung = kopf.RegistrierNrATLAS
                                                    STATUS.dySt_ergZeitpunkt = ge.ObjektIdentifizierung.ZeitpunktEingang

                                                    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41

                                                    readNCTS_GenerellesEreignis = True
                                                    'Select Case getVerahrensartFromBezugsNr(ge.ObjektIdentifizierung.ObjektName)
                                                    '    Case "NCTS"
                                                    '        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                                    '        Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, kopf.RegistrierNrATLAS)
                                                    '        If DY_TMP2 IsNot Nothing Then STATUS.dySt_dyId = DY_TMP2.dy_Id
                                                    '        cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                                    '        STATUS.dySt_dyArt = "NCTS"
                                                    '    Case "EZA"
                                                    Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                                    Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, kopf.RegistrierNrATLAS)
                                                    If DY_TMP2 IsNot Nothing Then STATUS.dySt_dyId = DY_TMP2.dy_Id
                                                    SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                                    STATUS.dySt_dyArt = "EZA"
                                                    'End Select

                                                    STATUS.SAVE()

                                                End If
                                            End If
                                        End If


                                    Next

                                End If

                                addDGVEinarbeitung("** GenerellesEreignis **", ge.ObjektIdentifizierung.ObjektName)

                            End If
                        End If
                    Next
                End If
            End If



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

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



    Function readNCTS_GenerellesEreignis_005(d As String, ByRef STATUSTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As Boolean
        Try


            Dim NCTS As DAKOSY_Worker.GenerellesEreignis005.GenerellesEreignisGETyp = DAKOSY_Worker.GenerellesEreignis005.GenerellesEreignisGETyp.LoadFromFile(d)
            Dim division = ""

            readNCTS_GenerellesEreignis_005 = False
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    ElseIf NCTS.Transaktion.IODivision1 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision1
                    End If

                End If
                If NCTS.EinzelEreignisObjekt IsNot Nothing Then
                    For Each ge In NCTS.EinzelEreignisObjekt
                        If ge.ObjektIdentifizierung IsNot Nothing Then
                            If ge.ObjektIdentifizierung.ObjektName IsNot Nothing And ge.ObjektIdentifizierung.Ereignisgewichtung IsNot Nothing Then
                                ' ListBox4.Items.Add(ge.ObjektIdentifizierung.ObjektName)



                                Dim STATUS2 As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)

                                STATUS2.dySt_artMitteilung = "GE"
                                STATUS2.dySt_dyArt = "" '"NCTS" 'T1/T2
                                STATUS2.dySt_BezugsNr = ge.ObjektIdentifizierung.ObjektName
                                STATUS2.dySt_ergCode = "" 'erg.EreignisCode
                                STATUS2.dySt_ergMitteilung = "" 'erg.Ereignismitteilung
                                If ge.ObjektIdentifizierung.Ereignisgewichtung.Contains("OKAY") Then
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_07
                                ElseIf ge.ObjektIdentifizierung.Ereignisgewichtung.Contains("INFO") Then
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_40
                                Else
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_98
                                End If
                                readNCTS_GenerellesEreignis_005 = True

                                Select Case getVerahrensartFromBezugsNr(ge.ObjektIdentifizierung.ObjektName)
                                    Case "NCTS"
                                        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                        Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                        If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                        cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                        STATUS2.dySt_dyArt = "NCTS"


                                        '=====ATEZ BEREITSTELLUNG==========
                                        cWorker_NCTS.checkATEZ_Bereitstellung(DY_TMP2, d)
                                        '==================================
                                        '=====ATEZ BEREITSTELLUNG EZA==========
                                        cWorker_NCTS.checkATEZ_BereitstellungDHUB(DY_TMP2, d)
                                        '==================================
                                        '=====ATEZ IRU BEREITSTELLUNG==========
                                        cWorker_NCTS.checkATEZIRU_Bereitstellung(DY_TMP2, d)
                                        '==================================

                                    Case "EZA", ""
                                        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                        If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                        STATUS2.dySt_dyArt = "EZA"
                                End Select

                                STATUS2.SAVE()

                                'Nur wenn BezugsNr vorhanden:
                                If ge.KopfDaten IsNot Nothing Then
                                    For Each kopf In ge.KopfDaten
                                        If kopf.Ereignis IsNot Nothing Then
                                            If kopf.RegistrierNrATLAS IsNot Nothing Then
                                                'MsgBox(kopf.RegistrierNrATLAS)
                                                If True Then
                                                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                                    STATUS.dySt_artMitteilung = "GE"
                                                    STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2
                                                    STATUS.dySt_BezugsNr = ge.ObjektIdentifizierung.ObjektName
                                                    If kopf.RegistrierNrATLAS.StartsWith("ATA") Or kopf.RegistrierNrATLAS.StartsWith("ATC") Then
                                                        STATUS.dySt_ergCode = "ATA"
                                                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                                                    Else
                                                        STATUS.dySt_ergCode = "GE"
                                                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_40
                                                    End If

                                                    STATUS.dySt_ergMitteilung = kopf.RegistrierNrATLAS
                                                    STATUS.dySt_ergZeitpunkt = ge.ObjektIdentifizierung.ZeitpunktEingang


                                                    readNCTS_GenerellesEreignis_005 = True
                                                    Select Case getVerahrensartFromBezugsNr(ge.ObjektIdentifizierung.ObjektName)
                                                        Case "NCTS"
                                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                                            Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, kopf.RegistrierNrATLAS)
                                                            If DY_TMP2 IsNot Nothing Then STATUS.dySt_dyId = DY_TMP2.dy_Id
                                                            cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                                            STATUS.dySt_dyArt = "NCTS"


                                                        Case "EZA"
                                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                                            Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, kopf.RegistrierNrATLAS)
                                                            If DY_TMP2 IsNot Nothing Then STATUS.dySt_dyId = DY_TMP2.dy_Id
                                                            SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                                            STATUS.dySt_dyArt = "EZA"
                                                    End Select

                                                    STATUS.SAVE()

                                                End If
                                            End If
                                        End If


                                    Next

                                End If
                                STATUSTMP = STATUS2
                                addDGVEinarbeitung("** GenerellesEreignis **", ge.ObjektIdentifizierung.ObjektName)

                            End If
                        End If
                    Next
                End If
            End If



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

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

    Function readNCTS_GenerellesEreignis_006(d As String, ByRef STATUSTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As Boolean
        Try


            Dim NCTS As DAKOSY_Worker.GenerellesEreignis_006.GenerellesEreignisGETyp = DAKOSY_Worker.GenerellesEreignis_006.GenerellesEreignisGETyp.LoadFromFile(d)
            Dim division = ""

            readNCTS_GenerellesEreignis_006 = False
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    ElseIf NCTS.Transaktion.IODivision1 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision1
                    End If

                End If
                If NCTS.EinzelEreignisObjekt IsNot Nothing Then
                    For Each ge In NCTS.EinzelEreignisObjekt
                        If ge.ObjektIdentifizierung IsNot Nothing Then
                            If ge.ObjektIdentifizierung.ObjektName IsNot Nothing And ge.ObjektIdentifizierung.Ereignisgewichtung IsNot Nothing Then
                                ' ListBox4.Items.Add(ge.ObjektIdentifizierung.ObjektName)



                                Dim STATUS2 As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)

                                STATUS2.dySt_artMitteilung = "GE"
                                STATUS2.dySt_dyArt = "" '"NCTS" 'T1/T2
                                STATUS2.dySt_BezugsNr = ge.ObjektIdentifizierung.ObjektName
                                STATUS2.dySt_ergCode = "" 'erg.EreignisCode
                                STATUS2.dySt_ergMitteilung = "" 'erg.Ereignismitteilung
                                If ge.ObjektIdentifizierung.Ereignisgewichtung.Contains("OKAY") Then
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_07
                                ElseIf ge.ObjektIdentifizierung.Ereignisgewichtung.Contains("INFO") Then
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_40
                                Else
                                    STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_98
                                End If
                                readNCTS_GenerellesEreignis_006 = True

                                Select Case getVerahrensartFromBezugsNr(ge.ObjektIdentifizierung.ObjektName)
                                    Case "NCTS"
                                        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                        Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                        If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                        cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                        STATUS2.dySt_dyArt = "NCTS"


                                        '=====ATEZ BEREITSTELLUNG==========
                                        cWorker_NCTS.checkATEZ_Bereitstellung(DY_TMP2, d)
                                        '==================================

                                        '=====ATEZ BEREITSTELLUNG==========
                                        cWorker_NCTS.checkATEZ_BereitstellungDHUB(DY_TMP2, d)
                                        '==================================

                                        '=====ATEZ IRU BEREITSTELLUNG==========
                                        cWorker_NCTS.checkATEZIRU_Bereitstellung(DY_TMP2, d)
                                        '==================================

                                    Case "EZA", ""
                                        Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                        If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                        STATUS2.dySt_dyArt = "EZA"
                                End Select

                                STATUS2.SAVE()

                                'Nur wenn BezugsNr vorhanden:
                                If ge.KopfDaten IsNot Nothing Then
                                    For Each kopf In ge.KopfDaten
                                        If kopf.Ereignis IsNot Nothing Then
                                            If kopf.RegistrierNrATLAS IsNot Nothing Then
                                                'MsgBox(kopf.RegistrierNrATLAS)
                                                If True Then
                                                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                                    STATUS.dySt_artMitteilung = "GE"
                                                    STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2
                                                    STATUS.dySt_BezugsNr = ge.ObjektIdentifizierung.ObjektName
                                                    If kopf.RegistrierNrATLAS.StartsWith("ATA") Or kopf.RegistrierNrATLAS.StartsWith("ATC") Then
                                                        STATUS.dySt_ergCode = "ATA"
                                                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                                                    Else
                                                        STATUS.dySt_ergCode = "GE"
                                                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_40
                                                    End If

                                                    STATUS.dySt_ergMitteilung = kopf.RegistrierNrATLAS
                                                    STATUS.dySt_ergZeitpunkt = ge.ObjektIdentifizierung.ZeitpunktEingang


                                                    readNCTS_GenerellesEreignis_006 = True
                                                    Select Case getVerahrensartFromBezugsNr(ge.ObjektIdentifizierung.ObjektName)
                                                        Case "NCTS"
                                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                                            Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, kopf.RegistrierNrATLAS)
                                                            If DY_TMP2 IsNot Nothing Then STATUS.dySt_dyId = DY_TMP2.dy_Id
                                                            cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                                            STATUS.dySt_dyArt = "NCTS"


                                                        Case "EZA"
                                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                                            Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, kopf.RegistrierNrATLAS)
                                                            If DY_TMP2 IsNot Nothing Then STATUS.dySt_dyId = DY_TMP2.dy_Id
                                                            SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                                            STATUS.dySt_dyArt = "EZA"
                                                    End Select

                                                    STATUS.SAVE()

                                                End If
                                            End If
                                        End If


                                    Next

                                End If
                                STATUSTMP = STATUS2
                                addDGVEinarbeitung("** GenerellesEreignis **", ge.ObjektIdentifizierung.ObjektName)

                            End If
                        End If
                    Next
                End If
            End If



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

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

    Function readNCTS_QuittungEingangsverarbeitung_005(d As String, ByRef STATUSTMP As DAKOSY_Worker.cDakosy_Statusmeldungen) As Boolean
        Try


            Dim NCTS As DAKOSY_Worker.QuittungEingangsverarbeitung_005.QuittungEingangsverarbeitungBQTyp = DAKOSY_Worker.QuittungEingangsverarbeitung_005.QuittungEingangsverarbeitungBQTyp.LoadFromFile(d)
            Dim division = ""
            Dim BezugsNr = ""
            readNCTS_QuittungEingangsverarbeitung_005 = False
            If NCTS IsNot Nothing Then
                If NCTS.Transaktion IsNot Nothing Then
                    If NCTS.Transaktion.IODivision3 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision3
                    ElseIf NCTS.Transaktion.IODivision1 IsNot Nothing Then
                        division = NCTS.Transaktion.IODivision1
                    End If

                End If
                If NCTS.EinzelQuittung IsNot Nothing Then
                    For Each ge In NCTS.EinzelQuittung
                        If ge.Quittungsobjekt IsNot Nothing Then
                            If ge.Quittungsobjekt.QuittungTech IsNot Nothing AndAlso ge.Quittungsobjekt.QuittungTech.Count > 0 Then

                                If ge.Quittungsobjekt.QuittungTech(0).BezugsObjekt IsNot Nothing Then
                                    ' ListBox4.Items.Add(ge.ObjektIdentifizierung.ObjektName)



                                    Dim STATUS2 As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)

                                    STATUS2.dySt_artMitteilung = "QUITT"
                                    STATUS2.dySt_dyArt = "" '"NCTS" 'T1/T2
                                    STATUS2.dySt_BezugsNr = ge.Quittungsobjekt.QuittungTech(0).BezugsObjekt
                                    BezugsNr = ge.Quittungsobjekt.QuittungTech(0).BezugsObjekt
                                    STATUS2.dySt_ergCode = "" 'erg.EreignisCode
                                    STATUS2.dySt_ergMitteilung = "" 'erg.Ereignismitteilung
                                    If ge.Quittungsobjekt.QuittungTech(0).ErgebnisTech IsNot Nothing Then
                                        If ge.Quittungsobjekt.QuittungTech(0).ErgebnisTech.Contains("OKAY") Then
                                            STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_04
                                        ElseIf ge.Quittungsobjekt.QuittungTech(0).ErgebnisTech.Contains("INFO") Then
                                            STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_08
                                        Else
                                            STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_98
                                        End If
                                    Else
                                        STATUS2.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_98
                                    End If
                                    readNCTS_QuittungEingangsverarbeitung_005 = True

                                    Select Case getVerahrensartFromBezugsNr(ge.Quittungsobjekt.QuittungTech(0).BezugsObjekt)
                                        Case "NCTS"
                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "NCTS")
                                            Dim NCTS_TMP2 As DAKOSY_Worker.cDakosyNCTSOut = cWorker_NCTS.saveDY_NCTS(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                            If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                            cWorker_NCTS.SaveNCTS_FirmaNL(NCTS_TMP2, DY_TMP2, division)
                                            STATUS2.dySt_dyArt = getVerahrensartFromBezugsNr(ge.Quittungsobjekt.QuittungTech(0).BezugsObjekt)

                                        Case "EZA", ""
                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "EZA")
                                            Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
                                            If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                            SaveEZA_FirmaNL(EZA_TMP, DY_TMP2, division)
                                            STATUS2.dySt_dyArt = "EZA"
                                        Case "AES"
                                            Dim DY_TMP2 As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "AES")
                                            Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS2, DY_TMP2, NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit, "", "")
                                            If DY_TMP2 IsNot Nothing Then STATUS2.dySt_dyId = DY_TMP2.dy_Id
                                            SaveAES_FirmaNL(AES_TMP, division)
                                            STATUS2.dySt_dyArt = "AES"
                                    End Select

                                    STATUS2.SAVE()


                                    STATUSTMP = STATUS2
                                    addDGVEinarbeitung("** QuittungEingangsverarbeitung **", BezugsNr)

                                End If
                            End If


                            'If ge.Quittungsobjekt.QuittungFach IsNot Nothing Then

                            '    If ge.Quittungsobjekt.QuittungFach(0).BezugsObjektFach IsNot Nothing Then

                            '    End If
                            'End If


                            '=====ATEZ BEREITSTELLUNG==========
                            cWorker_NCTS.checkATEZ_BereitstellungBezugsNr(BezugsNr, d)
                            '==================================

                            '=====ATEZ BEREITSTELLUNG==========
                            cWorker_NCTS.checkATEZ_BereitstellungBezugsNrDHUB(BezugsNr, d)
                            '==================================
                            '=====ATEZ IRU BEREITSTELLUNG==========
                            cWorker_NCTS.checkATEZIRU_BereitstellungBezugsNr(BezugsNr, d)
                            '==================================

                        End If
                    Next
                End If
            End If



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

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


    Function saveDY_AES(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.cDakosyAES
        'EINTRAG IN tblDakosyAESOut
        Dim AES_TMP As DAKOSY_Worker.cDakosyAES = Nothing
        AES_TMP = DAKOSY_Worker.cDakosyAES.LOADByBezugsNr(STATUS.dySt_BezugsNr.ToString, False)
        If AES_TMP Is Nothing Then
            AES_TMP = New DAKOSY_Worker.cDakosyAES
            AES_TMP.aes_ObjectName = STATUS.dySt_BezugsNr
            If AES_TMP IsNot Nothing Then AES_TMP.aes_dyaAnmID = DY_TMP.dy_Id

            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, transDate) Then
                AES_TMP.aes_Status = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
                AES_TMP.aes_Status_KEWILL_Equivalent = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
            End If
            'AES_TMP.AES_Status_KEWILL_Equivalent = STATUS.dySt_status

            If ANR <> "" Then AES_TMP.aes_ANR = ANR
            If MRN <> "" Then AES_TMP.aes_MRN = MRN
            AES_TMP.SAVE()
            'Eintragen
        Else
            'Update     
            AES_TMP.UPDATE_Status(DY_TMP.dy_Status) 'weil der Status bereit überprüft wurde --> neuste TransaktionsID

            If ANR <> "" Then AES_TMP.aes_ANR = ANR : AES_TMP.SAVE()
            If MRN <> "" Then AES_TMP.aes_MRN = MRN : AES_TMP.SAVE()

        End If
        saveDY_AES = AES_TMP
    End Function

    Function saveDY_EZA(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.cDakosyEZA
        'EINTRAG IN tblDakosyNCTSOut
        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = Nothing
        EZA_TMP = DAKOSY_Worker.cDakosyEZA.LOADByBezugsNr(STATUS.dySt_BezugsNr.ToString, False)
        If EZA_TMP Is Nothing Then
            EZA_TMP = New DAKOSY_Worker.cDakosyEZA
            EZA_TMP.eza_ObjectName = STATUS.dySt_BezugsNr
            If EZA_TMP IsNot Nothing Then EZA_TMP.eza_dyaAnmID = DY_TMP.dy_Id

            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, transDate) Then
                EZA_TMP.eza_Status = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
                EZA_TMP.eza_Status_KEWILL_Equivalent = DY_TMP.dy_Status 'weil der Status bereit überprüft wurde --> neuste TransaktionsID
            End If
            'EZA_TMP.ncts_Status_KEWILL_Equivalent = STATUS.dySt_status

            If ANR <> "" Then EZA_TMP.eza_ANR = ANR
            If MRN <> "" Then EZA_TMP.eza_MRN = MRN
            EZA_TMP.SAVE()
            'Eintragen

        Else

            'Update     
            If DAKOSY_Worker.cDakosy_Statusmeldungen.isNewestTransaktion(STATUS.dySt_BezugsNr, transID, transDate) Then
                EZA_TMP.UPDATE_Status(STATUS.dySt_status)
            End If

            If ANR <> "" Then EZA_TMP.eza_ANR = ANR : EZA_TMP.SAVE()
            If MRN <> "" Then EZA_TMP.eza_MRN = MRN : EZA_TMP.SAVE()

        End If
        saveDY_EZA = EZA_TMP
    End Function




    Function readAES_DEXPDD(doc As XmlDocument) As String
        Try
            readAES_DEXPDD = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPDD>") Then
                Dim xmlDEXPDD = XmlString.Substring(XmlString.IndexOf("<DEXPDD>"), XmlString.IndexOf("</DEXPDD>") + 9 - XmlString.IndexOf("<DEXPDD>"))
                '  MsgBox(xmlDEXPDD)
                Dim p = Path.GetTempFileName

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



                    Dim DEXPDD As DAKOSY_Worker.DEXPDD.DEXPDD = DAKOSY_Worker.DEXPDD.DEXPDD.LoadFromFile(p)
                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPDD IsNot Nothing And DEXPDD.Header IsNot Nothing And DEXPDD.Header.LocalReferenceNumber IsNot Nothing Then
                        readAES_DEXPDD = DEXPDD.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readAES_DEXPDD, "AES")

                    Dim AES As DAKOSY_Worker.cDakosyAES = DAKOSY_Worker.cDakosyAES.LOADByBezugsNr(readAES_DEXPDD, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If AES Is Nothing Then AES = New DAKOSY_Worker.cDakosyAES
                    If DY_TMP IsNot Nothing Then AES.aes_dyaAnmID = DY_TMP.dy_Id

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


                    If DEXPDD IsNot Nothing Then

                        'Kopfdaten
                        If DEXPDD.Header IsNot Nothing Then
                            If DEXPDD.Header.Declaration IsNot Nothing Then
                                If DEXPDD.Header.Declaration.Type IsNot Nothing Then AES.aes_AnmeldeArtAusfuhrCode = DEXPDD.Header.Declaration.Type
                                If DEXPDD.Header.Declaration.Procedure IsNot Nothing Then AES.aes_AnmeldeArtVerfahrensCode = DEXPDD.Header.Declaration.Procedure
                                If DEXPDD.Header.Declaration.Variant IsNot Nothing Then AES.aes_AnmeldeArtUeberfuehrungCode = DEXPDD.Header.Declaration.Variant
                            End If
                            If DEXPDD.Header.MovementReferenceNumber IsNot Nothing Then AES.aes_MRN = DEXPDD.Header.MovementReferenceNumber
                            'If DEXPDD.Header.MessageVersion IsNot Nothing Then AES.aes_Trans_Version = DEXPDD.
                            If DEXPDD.Header.ExportCountry IsNot Nothing Then AES.aes_Ausfuhrland = DEXPDD.Header.ExportCountry
                            If DEXPDD.Header.DestinationCountry IsNot Nothing Then AES.aes_BestimmungslandCode = DEXPDD.Header.DestinationCountry
                            AES.aes_AnmeldedatumZeit = cEDI.isValidDateElseNothing(DEXPDD.Header.DeclarationDateTime)
                            AES.aes_MassgeblichesDatum = cEDI.isValidDateElseNothing(DEXPDD.Header.DecisiveDate)
                            AES.aes_DatumAusgang = cEDI.isValidDateElseNothing(DEXPDD.Header.ExitDate)
                            If DEXPDD.Header.SpecificCircumstanceIndicator IsNot Nothing Then AES.aes_BesondereUmstaende = DEXPDD.Header.SpecificCircumstanceIndicator
                            If DEXPDD.Header.TransportChargesPaymentMethod IsNot Nothing Then AES.aes_Zahlungsweisebefoerderungskosten = DEXPDD.Header.TransportChargesPaymentMethod

                            AES.aes_AdressdatenKonstellation = DEXPDD.Header.PartyConstellation ' PROBLEME?

                            AES.aes_ContainerIndikator = DEXPDD.Header.ContainerFlag ' ?
                            AES.aes_GesamtRohmasse = DEXPDD.Header.TotalGrossMassMeasure
                            If DEXPDD.Header.RegistrationNumber IsNot Nothing Then AES.aes_RegistriernummerFremdsystem = DEXPDD.Header.RegistrationNumber
                            If DEXPDD.Header.Annotation IsNot Nothing Then AES.aes_Vermerk = DEXPDD.Header.Annotation
                            If DEXPDD.Header.CommercialReferenceNumber IsNot Nothing Then AES.aes_KennnummerSendung = DEXPDD.Header.CommercialReferenceNumber

                            If DEXPDD.Header.LocalReferenceNumber IsNot Nothing Then
                                ' readAES_DEXPDD = DEXPDD.Header.LocalReferenceNumber
                                AES.aes_ObjectName = DEXPDD.Header.LocalReferenceNumber
                            End If
                            If DEXPDD.Header.GoodsItemQuantity IsNot Nothing Then AES.aes_AnzahlPositionen = DEXPDD.Header.GoodsItemQuantity
                            If DEXPDD.Header.CustomsAuthorization IsNot Nothing Then
                                If DEXPDD.Header.CustomsAuthorization.LocalClearanceOutwardProcessing IsNot Nothing Then AES.aes_BewiligungsnummerAnschreibeverfahren = DEXPDD.Header.CustomsAuthorization.LocalClearanceOutwardProcessing
                                If DEXPDD.Header.CustomsAuthorization.OutwardProcessing IsNot Nothing Then AES.aes_BewiligungsnummerPassiveVeredelung = DEXPDD.Header.CustomsAuthorization.OutwardProcessing
                                If DEXPDD.Header.CustomsAuthorization.TrustedExporter IsNot Nothing Then AES.aes_BewiligungsnummerVertrausenswuerdigerAusfuehrer = DEXPDD.Header.CustomsAuthorization.TrustedExporter
                                If DEXPDD.Header.CustomsAuthorization.AccreditedExporter IsNot Nothing Then AES.aes_BewiligungsnummerAusfuhr = DEXPDD.Header.CustomsAuthorization.AccreditedExporter
                            End If

                            If DEXPDD.Header.InlandTransportMeans IsNot Nothing Then
                                If DEXPDD.Header.InlandTransportMeans.Mode IsNot Nothing Then AES.aes_VerkehrszweigInland = DEXPDD.Header.InlandTransportMeans.Mode
                            End If

                            If DEXPDD.Header.DepartureTransportMeans IsNot Nothing Then
                                AES.aes_BefoerderungsmittelAbgangArtCode = DEXPDD.Header.DepartureTransportMeans.Type
                                If DEXPDD.Header.DepartureTransportMeans.Identity IsNot Nothing Then AES.aes_BefoerderungsmittelAbgangKennzeichen = DEXPDD.Header.DepartureTransportMeans.Identity
                                If DEXPDD.Header.DepartureTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelAbgangStaatCode = DEXPDD.Header.DepartureTransportMeans.Nationality
                            End If

                            If DEXPDD.Header.BorderTransportMeans IsNot Nothing Then
                                AES.aes_BefoerderungsmittelGrenzeArtCode = DEXPDD.Header.BorderTransportMeans.Type
                                If DEXPDD.Header.BorderTransportMeans.Mode IsNot Nothing Then AES.aes_VerkehrszweigGrenze = DEXPDD.Header.BorderTransportMeans.Mode
                                If DEXPDD.Header.BorderTransportMeans.Identity IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeKennzeichen = DEXPDD.Header.BorderTransportMeans.Identity
                                If DEXPDD.Header.BorderTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeStaatCode = DEXPDD.Header.BorderTransportMeans.Nationality
                                If DEXPDD.Header.BorderTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeStaatCode = DEXPDD.Header.BorderTransportMeans.Nationality
                            End If

                        End If

                        If True Then
                            'Ladeort
                            If DEXPDD.GoodsLoadingPlace IsNot Nothing Then
                                If DEXPDD.GoodsLoadingPlace.Identification IsNot Nothing Then
                                    If DEXPDD.GoodsLoadingPlace.Identification.ReferenceNumber IsNot Nothing Then AES.aes_LadeortOrtId = DEXPDD.GoodsLoadingPlace.Identification.ReferenceNumber
                                End If
                                If DEXPDD.GoodsLoadingPlace.Address IsNot Nothing Then
                                    If DEXPDD.GoodsLoadingPlace.Address.Line IsNot Nothing Then AES.aes_LadeortStrasse = DEXPDD.GoodsLoadingPlace.Address.Line
                                    If DEXPDD.GoodsLoadingPlace.Address.Postcode IsNot Nothing Then AES.aes_LadeortPLZ = DEXPDD.GoodsLoadingPlace.Address.Postcode
                                    If DEXPDD.GoodsLoadingPlace.Address.City IsNot Nothing Then AES.aes_LadeortOrt = DEXPDD.GoodsLoadingPlace.Address.City
                                    If DEXPDD.GoodsLoadingPlace.Address.Complement IsNot Nothing Then AES.aes_LadeortZusatz = DEXPDD.GoodsLoadingPlace.Address.Complement
                                End If
                            End If

                            If DEXPDD.ExportCustomsOffice IsNot Nothing Then
                                If DEXPDD.ExportCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusfuhrZollstelleID = DEXPDD.ExportCustomsOffice.ReferenceNumber
                            End If
                            'If DEXPDD.SupplementaryDeclarationCustomsOffice IsNot Nothing Then
                            'If DEXPDD.SupplementaryDeclarationCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusgangszollstelleID = DEXPDD.SupplementaryDeclarationCustomsOffice.ReferenceNumber
                            'End If
                            If DEXPDD.IntendedExitCustomsOffice IsNot Nothing Then
                                If DEXPDD.IntendedExitCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusgangszollstelleID = DEXPDD.IntendedExitCustomsOffice.ReferenceNumber
                            End If
                            If DEXPDD.ActualExitCustomsOffice IsNot Nothing Then
                                If DEXPDD.ActualExitCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_TatsaechlicheAusgangZollstelleID = DEXPDD.ActualExitCustomsOffice.ReferenceNumber
                            End If
                            If DEXPDD.Transaction IsNot Nothing Then
                                AES.aes_GeschaeftartCode = DEXPDD.Transaction.Type
                                AES.aes_Rechnungspreis = DEXPDD.Transaction.Type
                                If DEXPDD.Transaction.Currency IsNot Nothing Then AES.aes_Rechnungwaehrung = DEXPDD.Transaction.Currency
                            End If
                            If DEXPDD.SpecialFact IsNot Nothing Then
                                If DEXPDD.SpecialFact.Count > 0 Then AES.aes_BesondererTatbestand = DEXPDD.SpecialFact(0).Indicator 'Könnenn mehrere auftretetn
                            End If
                            If DEXPDD.Itinerary IsNot Nothing Then
                                If DEXPDD.Itinerary.Count > 0 Then AES.aes_BefoerderungsrouteLand1 = DEXPDD.Itinerary(0).Country
                                If DEXPDD.Itinerary.Count > 1 Then AES.aes_BefoerderungsrouteLand2 = DEXPDD.Itinerary(1).Country
                                If DEXPDD.Itinerary.Count > 2 Then AES.aes_BefoerderungsrouteLand3 = DEXPDD.Itinerary(2).Country
                                If DEXPDD.Itinerary.Count > 3 Then AES.aes_BefoerderungsrouteLand4 = DEXPDD.Itinerary(3).Country
                                If DEXPDD.Itinerary.Count > 4 Then AES.aes_BefoerderungsrouteLand5 = DEXPDD.Itinerary(4).Country
                                If DEXPDD.Itinerary.Count > 5 Then AES.aes_BefoerderungsrouteLand6 = DEXPDD.Itinerary(5).Country
                                If DEXPDD.Itinerary.Count > 6 Then AES.aes_BefoerderungsrouteLand7 = DEXPDD.Itinerary(6).Country
                                If DEXPDD.Itinerary.Count > 7 Then AES.aes_BefoerderungsrouteLand8 = DEXPDD.Itinerary(7).Country
                                If DEXPDD.Itinerary.Count > 8 Then AES.aes_BefoerderungsrouteLand9 = DEXPDD.Itinerary(8).Country
                                If DEXPDD.Itinerary.Count > 9 Then AES.aes_BefoerderungsrouteLand10 = DEXPDD.Itinerary(9).Country
                                If DEXPDD.Itinerary.Count > 10 Then AES.aes_BefoerderungsrouteLand11 = DEXPDD.Itinerary(10).Country
                                If DEXPDD.Itinerary.Count > 11 Then AES.aes_BefoerderungsrouteLand12 = DEXPDD.Itinerary(11).Country
                            End If

                            If DEXPDD.Seals IsNot Nothing Then
                                AES.aes_VerschlussArtCode = DEXPDD.Seals.Type
                                If DEXPDD.Seals.Number IsNot Nothing Then AES.aes_VerschlussAnzahl = DEXPDD.Seals.Number
                                If DEXPDD.Seals.Seal IsNot Nothing Then
                                    If DEXPDD.Seals.Seal.Count > 0 Then AES.aes_VerschlussZeichen1 = DEXPDD.Seals.Seal(0).Identity
                                    If DEXPDD.Seals.Seal.Count > 1 Then AES.aes_VerschlussZeichen2 = DEXPDD.Seals.Seal(1).Identity
                                    If DEXPDD.Seals.Seal.Count > 2 Then AES.aes_VerschlussZeichen3 = DEXPDD.Seals.Seal(2).Identity
                                    If DEXPDD.Seals.Seal.Count > 3 Then AES.aes_VerschlussZeichen4 = DEXPDD.Seals.Seal(3).Identity
                                    If DEXPDD.Seals.Seal.Count > 4 Then AES.aes_VerschlussZeichen5 = DEXPDD.Seals.Seal(4).Identity
                                    If DEXPDD.Seals.Seal.Count > 5 Then AES.aes_VerschlussZeichen6 = DEXPDD.Seals.Seal(5).Identity
                                    If DEXPDD.Seals.Seal.Count > 6 Then AES.aes_VerschlussZeichen7 = DEXPDD.Seals.Seal(6).Identity
                                    If DEXPDD.Seals.Seal.Count > 7 Then AES.aes_VerschlussZeichen8 = DEXPDD.Seals.Seal(7).Identity
                                    If DEXPDD.Seals.Seal.Count > 8 Then AES.aes_VerschlussZeichen9 = DEXPDD.Seals.Seal(8).Identity
                                    If DEXPDD.Seals.Seal.Count > 9 Then AES.aes_VerschlussZeichen10 = DEXPDD.Seals.Seal(9).Identity
                                    If DEXPDD.Seals.Seal.Count > 10 Then AES.aes_VerschlussZeichen11 = DEXPDD.Seals.Seal(10).Identity
                                    If DEXPDD.Seals.Seal.Count > 11 Then AES.aes_VerschlussZeichen12 = DEXPDD.Seals.Seal(11).Identity
                                End If
                            End If

                            If DEXPDD.PresentationPackingLoading IsNot Nothing Then
                                AES.aes_GestellungsfristAnfangDatumZeit = cEDI.isValidDateElseNothing(DEXPDD.PresentationPackingLoading.StartDateTime)
                                AES.aes_GestellungsfristEndeDatumZeit = cEDI.isValidDateElseNothing(DEXPDD.PresentationPackingLoading.EndDateTime)
                            End If

                            'Ausführer
                            If DEXPDD.Exporter IsNot Nothing Then
                                '  AES.Ausfuehrert = DEXPDD.Exporter.Class
                                If DEXPDD.Exporter.Identification IsNot Nothing Then
                                    If DEXPDD.Exporter.Identification.ReferenceNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerEORI = DEXPDD.Exporter.Identification.ReferenceNumber
                                    If DEXPDD.Exporter.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerNLNR = DEXPDD.Exporter.Identification.SubsidiaryNumber
                                End If
                                If DEXPDD.Exporter.Name IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerName = DEXPDD.Exporter.Name
                                If DEXPDD.Exporter.Address IsNot Nothing Then
                                    If DEXPDD.Exporter.Address.Line IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerStrasse = DEXPDD.Exporter.Address.Line
                                    If DEXPDD.Exporter.Address.City IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerOrt = DEXPDD.Exporter.Address.City
                                    If DEXPDD.Exporter.Address.Postcode IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerPLZ = DEXPDD.Exporter.Address.Postcode
                                    If DEXPDD.Exporter.Address.Country IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerLandCode = DEXPDD.Exporter.Address.Country
                                End If
                                If DEXPDD.Exporter.ContactPerson IsNot Nothing Then
                                    If DEXPDD.Exporter.ContactPerson.Position IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerStellung = DEXPDD.Exporter.ContactPerson.Position
                                    If DEXPDD.Exporter.ContactPerson.Name IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDD.Exporter.ContactPerson.Name
                                    If DEXPDD.Exporter.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerTelefonnummer = DEXPDD.Exporter.ContactPerson.PhoneNumber
                                    If DEXPDD.Exporter.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerTelefax = DEXPDD.Exporter.ContactPerson.FacsimileNumber
                                    If DEXPDD.Exporter.ContactPerson.MailAddress IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerEmail = DEXPDD.Exporter.ContactPerson.MailAddress
                                End If
                            End If


                            'Anmelder
                            If DEXPDD.Declarant IsNot Nothing Then
                                '  AES.anmeldert = DEXPDD.Declarant.Class
                                If DEXPDD.Declarant.Identification IsNot Nothing Then
                                    If DEXPDD.Declarant.Identification.ReferenceNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerEORI = DEXPDD.Declarant.Identification.ReferenceNumber
                                    If DEXPDD.Declarant.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerNLNR = DEXPDD.Declarant.Identification.SubsidiaryNumber
                                End If
                                If DEXPDD.Declarant.Name IsNot Nothing Then AES.aes_AnmelderTeilnehmerName = DEXPDD.Declarant.Name
                                If DEXPDD.Declarant.Address IsNot Nothing Then
                                    If DEXPDD.Declarant.Address.Line IsNot Nothing Then AES.aes_AnmelderTeilnehmerStrasse = DEXPDD.Declarant.Address.Line
                                    If DEXPDD.Declarant.Address.City IsNot Nothing Then AES.aes_AnmelderTeilnehmerOrt = DEXPDD.Declarant.Address.City
                                    If DEXPDD.Declarant.Address.Postcode IsNot Nothing Then AES.aes_AnmelderTeilnehmerPLZ = DEXPDD.Declarant.Address.Postcode
                                    If DEXPDD.Declarant.Address.Country IsNot Nothing Then AES.aes_AnmelderTeilnehmerLandCode = DEXPDD.Declarant.Address.Country
                                End If
                                If DEXPDD.Declarant.ContactPerson IsNot Nothing Then
                                    If DEXPDD.Declarant.ContactPerson.Position IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerStellung = DEXPDD.Declarant.ContactPerson.Position
                                    If DEXPDD.Declarant.ContactPerson.Name IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDD.Declarant.ContactPerson.Name
                                    If DEXPDD.Declarant.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerTelefonnummer = DEXPDD.Declarant.ContactPerson.PhoneNumber
                                    If DEXPDD.Declarant.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerTelefax = DEXPDD.Declarant.ContactPerson.FacsimileNumber
                                    If DEXPDD.Declarant.ContactPerson.MailAddress IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerEmail = DEXPDD.Declarant.ContactPerson.MailAddress
                                End If
                            End If


                            'Vertreter Anmelder
                            If DEXPDD.Representative IsNot Nothing Then
                                '  AES.anmeldert = DEXPDD.Representative.Class
                                If DEXPDD.Representative.Identification IsNot Nothing Then
                                    If DEXPDD.Representative.Identification.ReferenceNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerEORI = DEXPDD.Representative.Identification.ReferenceNumber
                                    If DEXPDD.Representative.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerNLNR = DEXPDD.Representative.Identification.SubsidiaryNumber
                                End If
                                If DEXPDD.Representative.Name IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerName = DEXPDD.Representative.Name
                                If DEXPDD.Representative.Address IsNot Nothing Then
                                    If DEXPDD.Representative.Address.Line IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerStrasse = DEXPDD.Representative.Address.Line
                                    If DEXPDD.Representative.Address.City IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerOrt = DEXPDD.Representative.Address.City
                                    If DEXPDD.Representative.Address.Postcode IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerPLZ = DEXPDD.Representative.Address.Postcode
                                    If DEXPDD.Representative.Address.Country IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerLandCode = DEXPDD.Representative.Address.Country
                                End If
                                If DEXPDD.Representative.ContactPerson IsNot Nothing Then
                                    If DEXPDD.Representative.ContactPerson.Position IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerStellung = DEXPDD.Representative.ContactPerson.Position
                                    If DEXPDD.Representative.ContactPerson.Name IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDD.Representative.ContactPerson.Name
                                    If DEXPDD.Representative.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerTelefonnummer = DEXPDD.Representative.ContactPerson.PhoneNumber
                                    If DEXPDD.Representative.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerTelefax = DEXPDD.Representative.ContactPerson.FacsimileNumber
                                    If DEXPDD.Representative.ContactPerson.MailAddress IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerEmail = DEXPDD.Representative.ContactPerson.MailAddress
                                End If
                            End If


                            'Subunternehmer
                            If DEXPDD.Contractor IsNot Nothing Then
                                '  AES.anmeldert = DEXPDD.Contractor.Class
                                If DEXPDD.Contractor.Identification IsNot Nothing Then
                                    If DEXPDD.Contractor.Identification.ReferenceNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerEORI = DEXPDD.Contractor.Identification.ReferenceNumber
                                    If DEXPDD.Contractor.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerNLNR = DEXPDD.Contractor.Identification.SubsidiaryNumber
                                End If
                                If DEXPDD.Contractor.Name IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerName = DEXPDD.Contractor.Name
                                If DEXPDD.Contractor.Address IsNot Nothing Then
                                    If DEXPDD.Contractor.Address.Line IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerStrasse = DEXPDD.Contractor.Address.Line
                                    If DEXPDD.Contractor.Address.City IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerOrt = DEXPDD.Contractor.Address.City
                                    If DEXPDD.Contractor.Address.Postcode IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerPLZ = DEXPDD.Contractor.Address.Postcode
                                    If DEXPDD.Contractor.Address.Country IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerLandCode = DEXPDD.Contractor.Address.Country
                                End If
                                If DEXPDD.Contractor.ContactPerson IsNot Nothing Then
                                    If DEXPDD.Contractor.ContactPerson.Position IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerStellung = DEXPDD.Contractor.ContactPerson.Position
                                    If DEXPDD.Contractor.ContactPerson.Name IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDD.Contractor.ContactPerson.Name
                                    If DEXPDD.Contractor.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerTelefonnummer = DEXPDD.Contractor.ContactPerson.PhoneNumber
                                    If DEXPDD.Contractor.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerTelefax = DEXPDD.Contractor.ContactPerson.FacsimileNumber
                                    If DEXPDD.Contractor.ContactPerson.MailAddress IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerEmail = DEXPDD.Contractor.ContactPerson.MailAddress
                                End If
                            End If

                            'Verfahrensinhaber
                            If DEXPDD.OutwardProcessingOwner IsNot Nothing Then
                                '  AES.anmeldert = DEXPDD.OutwardProcessingOwner.Class
                                If DEXPDD.OutwardProcessingOwner.Identification IsNot Nothing Then
                                    If DEXPDD.OutwardProcessingOwner.Identification.ReferenceNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerEORI = DEXPDD.OutwardProcessingOwner.Identification.ReferenceNumber
                                    AES.aes_VerfahrensinhaberPVTeilnehmerNLNR = DEXPDD.OutwardProcessingOwner.Identification.SubsidiaryNumber
                                End If

                                If DEXPDD.OutwardProcessingOwner.ContactPerson IsNot Nothing Then
                                    If DEXPDD.OutwardProcessingOwner.ContactPerson.Position IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerStellung = DEXPDD.OutwardProcessingOwner.ContactPerson.Position
                                    If DEXPDD.OutwardProcessingOwner.ContactPerson.Name IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDD.OutwardProcessingOwner.ContactPerson.Name
                                    If DEXPDD.OutwardProcessingOwner.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerTelefonnummer = DEXPDD.OutwardProcessingOwner.ContactPerson.PhoneNumber
                                    If DEXPDD.OutwardProcessingOwner.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerTelefax = DEXPDD.OutwardProcessingOwner.ContactPerson.FacsimileNumber
                                    If DEXPDD.OutwardProcessingOwner.ContactPerson.MailAddress IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerEmail = DEXPDD.OutwardProcessingOwner.ContactPerson.MailAddress
                                End If
                            End If

                            'Empfaenger
                            If DEXPDD.Consignee IsNot Nothing Then
                                '  AES.anmeldert = DEXPDD.Consignee.Class
                                If DEXPDD.Consignee.Identification IsNot Nothing Then
                                    If DEXPDD.Consignee.Identification.ReferenceNumber IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerEORI = DEXPDD.Consignee.Identification.ReferenceNumber
                                    If DEXPDD.Consignee.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerNLNR = DEXPDD.Consignee.Identification.SubsidiaryNumber
                                End If
                                If DEXPDD.Consignee.Name IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerName = DEXPDD.Consignee.Name
                                If DEXPDD.Consignee.Address IsNot Nothing Then
                                    If DEXPDD.Consignee.Address.Line IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerStrasse = DEXPDD.Consignee.Address.Line
                                    If DEXPDD.Consignee.Address.City IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerOrt = DEXPDD.Consignee.Address.City
                                    If DEXPDD.Consignee.Address.Postcode IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerPLZ = DEXPDD.Consignee.Address.Postcode
                                    If DEXPDD.Consignee.Address.Country IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerLandCode = DEXPDD.Consignee.Address.Country
                                End If
                            End If



                            'WAREN
                            AES.aes_WARENPOS.Clear()
                            If DEXPDD.GoodsItem IsNot Nothing Then
                                If DEXPDD.GoodsItem.Count > 0 Then
                                    For Each WP In DEXPDD.GoodsItem
                                        Dim AES_WP = New DAKOSY_Worker.cDakosy_AES_Warenposition
                                        If WP.SequenceNumber IsNot Nothing Then AES_WP.aesWP_PositionsNummer = WP.SequenceNumber
                                        If WP.GoodsDescription IsNot Nothing Then AES_WP.aesWP_Warenbezeichnung = WP.GoodsDescription
                                        If WP.CommercialReferenceNumber IsNot Nothing Then AES_WP.aesWP_KennungSendung = WP.CommercialReferenceNumber
                                        If WP.RegistrationNumber IsNot Nothing Then AES_WP.aesWP_RegisternummerFremdsystem = WP.RegistrationNumber
                                        If WP.Annotation IsNot Nothing Then AES_WP.aesWP_Vermerk = WP.Annotation
                                        AES_WP.aesWP_UrsprungsbundeslandCode = WP.OriginFederalState
                                        AES_WP.aesWP_Eigenmasse = WP.NetMass
                                        AES_WP.aesWP_Rohmasse = WP.GrossMass
                                        If WP.DangerousGoodsCode IsNot Nothing Then AES_WP.aesWP_Gefahrgutnummer = WP.DangerousGoodsCode
                                        If WP.TransportChargesPaymentMethod IsNot Nothing Then AES_WP.aesWP_ZahlungsweiseBefoerderungskosten = WP.TransportChargesPaymentMethod
                                        If WP.CommodityCode IsNot Nothing Then
                                            If WP.CommodityCode.CombinedNomenclatureCode IsNot Nothing Then AES_WP.aesWP_WarennummerKN8 = WP.CommodityCode.CombinedNomenclatureCode
                                            If WP.CommodityCode.TaricCode IsNot Nothing Then AES_WP.aesWP_WarennummerTARIC = WP.CommodityCode.TaricCode
                                            If WP.CommodityCode.TaricFirstAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerZusatz1 = WP.CommodityCode.TaricFirstAdditionalCode
                                            If WP.CommodityCode.TaricSecondAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerZusatz2 = WP.CommodityCode.TaricSecondAdditionalCode
                                            If WP.CommodityCode.NationalAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerNational = WP.CommodityCode.NationalAdditionalCode
                                        End If
                                        If WP.Procedure IsNot Nothing Then
                                            If WP.Procedure.RequestedProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenAngemeldetCode = WP.Procedure.RequestedProcedure
                                            If WP.Procedure.PreviousProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenVorangegangenCode = WP.Procedure.PreviousProcedure
                                            If WP.Procedure.AdditionalProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenNationalCode = WP.Procedure.AdditionalProcedure
                                            AES_WP.aesWP_AusfuhrerstattungVerfahrensCode = WP.Procedure.ExportRefundProcedure
                                        End If
                                        If WP.ForeignTradeStatistics IsNot Nothing Then
                                            AES_WP.aesWP_Menge = WP.ForeignTradeStatistics.SpecialUnitQuantity
                                            If WP.ForeignTradeStatistics.StatisticalValue IsNot Nothing Then AES_WP.aesWP_Wert = WP.ForeignTradeStatistics.StatisticalValue
                                        End If


                                        'Empfaenger
                                        If WP.Consignee IsNot Nothing Then
                                            '  AES_WP.anmeldert = WP.Consignee.Class
                                            If WP.Consignee.Identification IsNot Nothing Then
                                                If WP.Consignee.Identification.ReferenceNumber IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerEORI = WP.Consignee.Identification.ReferenceNumber
                                                If WP.Consignee.Identification.SubsidiaryNumber IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerNLNR = WP.Consignee.Identification.SubsidiaryNumber
                                            End If
                                            If WP.Consignee.Name IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerName = WP.Consignee.Name
                                            If WP.Consignee.Address IsNot Nothing Then
                                                If WP.Consignee.Address.Line IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerStrasse = WP.Consignee.Address.Line
                                                If WP.Consignee.Address.City IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerOrt = WP.Consignee.Address.City
                                                If WP.Consignee.Address.Postcode IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerPLZ = WP.Consignee.Address.Postcode
                                                If WP.Consignee.Address.Country IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerLandCode = WP.Consignee.Address.Country
                                            End If
                                        End If

                                        If WP.Container IsNot Nothing Then
                                            If WP.Container.Count > 0 Then AES_WP.aesWP_Containernummer1 = WP.Container(0).IdentificationNumber
                                            If WP.Container.Count > 1 Then AES_WP.aesWP_Containernummer2 = WP.Container(1).IdentificationNumber
                                            If WP.Container.Count > 2 Then AES_WP.aesWP_Containernummer3 = WP.Container(2).IdentificationNumber
                                            If WP.Container.Count > 3 Then AES_WP.aesWP_Containernummer4 = WP.Container(3).IdentificationNumber
                                        End If

                                        'PACKSTÜCKE
                                        AES_WP.aesWP_PACKSTUECKE.Clear()
                                        If WP.Package IsNot Nothing Then
                                            For Each PKST In WP.Package
                                                Dim AES_PKST = New DAKOSY_Worker.cDakosy_AES_WarenpositionPackstuecke
                                                If PKST.Quantity IsNot Nothing Then AES_PKST.aesWpPk_PackstueckeAnzahl = PKST.Quantity
                                                '  If PKST.SequenceNumber IsNot Nothing Then AES_PKST.nu = PKST.SequenceNumber
                                                If PKST.Kind IsNot Nothing Then AES_PKST.aesWpPk_Verpackungsart = PKST.Kind
                                                If PKST.MarksNumbers IsNot Nothing Then AES_PKST.aesWpPk_Kennzeichnung = PKST.MarksNumbers
                                                AES_WP.aesWP_PACKSTUECKE.Add(AES_PKST)
                                            Next
                                        End If


                                        'UNTERLAGEN
                                        AES_WP.aesWP_UNTERLAGEN.Clear()
                                        If WP.Document IsNot Nothing Then
                                            For Each UNT In WP.Document
                                                Dim AES_UNT = New DAKOSY_Worker.cDakosy_AES_WarenpositionUnterlagen
                                                If UNT.Qualifier IsNot Nothing Then AES_UNT.aesWpUl_QualifierCode = UNT.Qualifier
                                                If UNT.Type IsNot Nothing Then AES_UNT.aesWpUl_Typ = UNT.Type
                                                If UNT.ReferenceNumber IsNot Nothing Then AES_UNT.aesWpUl_ReferenzID = UNT.ReferenceNumber
                                                If UNT.Complement IsNot Nothing Then AES_UNT.aesWpUl_Zusatz = UNT.Complement
                                                If UNT.Detail IsNot Nothing Then AES_UNT.aesWpUl_Detail = UNT.Detail
                                                AES_UNT.aesWpUl_DatumAusstellung = cEDI.isValidDateElseNothing(UNT.IssuingDate)
                                                AES_UNT.aesWpUl_DatumEndeGueltigkeit = cEDI.isValidDateElseNothing(UNT.ExpiryDate)
                                                If UNT.WriteOffValue IsNot Nothing Then AES_UNT.aesWpUl_Wert = UNT.WriteOffValue
                                                AES_UNT.aesWpUl_Masseinheit = UNT.MeasurementUnit
                                                AES_UNT.aesWpUl_Abschreibungsmenge = UNT.WriteOffQuantity
                                                AES_WP.aesWP_UNTERLAGEN.Add(AES_UNT)
                                            Next
                                        End If
                                        AES.aes_WARENPOS.Add(AES_WP)
                                    Next

                                End If
                            End If

                        End If


                        If If(AES.aes_Status, 0) <= 5 Then AES.aes_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                        If If(AES.aes_Status_KEWILL_Equivalent, 0) <= 5 Then AES.aes_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                        If AES.SAVE_ALL() Then
                            If If(AES.aes_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                        End If

                    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

                    addDGVEinarbeitung("AES: AnmeldungAusfuhr", readAES_DEXPDD)

                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)
            readAES_DEXPDD = ""
        End Try
    End Function

    Function readAES_DEXPDE(doc As XmlDocument) As String
        Try
            readAES_DEXPDE = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPDE>") Then
                Dim xmlDEXPDE = XmlString.Substring(XmlString.IndexOf("<DEXPDE>"), XmlString.IndexOf("</DEXPDE>") + 9 - XmlString.IndexOf("<DEXPDE>"))
                '  MsgBox(xmlDEXPDE)
                Dim p = Path.GetTempFileName

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



                    Dim DEXPDE As DAKOSY_Worker.DEXPDE.DEXPDE = DAKOSY_Worker.DEXPDE.DEXPDE.LoadFromFile(p)


                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPDE IsNot Nothing And DEXPDE.Header IsNot Nothing And DEXPDE.Header.LocalReferenceNumber IsNot Nothing Then
                        readAES_DEXPDE = DEXPDE.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readAES_DEXPDE, "AES")

                    Dim AES As DAKOSY_Worker.cDakosyAES = DAKOSY_Worker.cDakosyAES.LOADByBezugsNr(readAES_DEXPDE, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If AES Is Nothing Then AES = New DAKOSY_Worker.cDakosyAES
                    If DY_TMP IsNot Nothing Then AES.aes_dyaAnmID = DY_TMP.dy_Id

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


                    If DEXPDE IsNot Nothing Then

                        'Kopfdaten
                        If DEXPDE.Header IsNot Nothing Then
                            If DEXPDE.Header.Declaration IsNot Nothing Then
                                If DEXPDE.Header.Declaration.Type IsNot Nothing Then AES.aes_AnmeldeArtAusfuhrCode = DEXPDE.Header.Declaration.Type
                                If DEXPDE.Header.Declaration.Procedure IsNot Nothing Then AES.aes_AnmeldeArtVerfahrensCode = DEXPDE.Header.Declaration.Procedure
                                If DEXPDE.Header.Declaration.Variant IsNot Nothing Then AES.aes_AnmeldeArtUeberfuehrungCode = DEXPDE.Header.Declaration.Variant
                            End If
                            If DEXPDE.Header.MovementReferenceNumber IsNot Nothing Then AES.aes_MRN = DEXPDE.Header.MovementReferenceNumber
                            'If DEXPDE.Header.MessageVersion IsNot Nothing Then AES.aes_Trans_Version = DEXPDE.
                            If DEXPDE.Header.ExportCountry IsNot Nothing Then AES.aes_Ausfuhrland = DEXPDE.Header.ExportCountry
                            If DEXPDE.Header.DestinationCountry IsNot Nothing Then AES.aes_BestimmungslandCode = DEXPDE.Header.DestinationCountry
                            AES.aes_AnmeldedatumZeit = cEDI.isValidDateElseNothing(DEXPDE.Header.DeclarationDateTime)
                            AES.aes_MassgeblichesDatum = cEDI.isValidDateElseNothing(DEXPDE.Header.DecisiveDate)
                            AES.aes_DatumAusgang = cEDI.isValidDateElseNothing(DEXPDE.Header.ExitDate)
                            If DEXPDE.Header.SpecificCircumstanceIndicator IsNot Nothing Then AES.aes_BesondereUmstaende = DEXPDE.Header.SpecificCircumstanceIndicator
                            If DEXPDE.Header.TransportChargesPaymentMethod IsNot Nothing Then AES.aes_Zahlungsweisebefoerderungskosten = DEXPDE.Header.TransportChargesPaymentMethod

                            AES.aes_AdressdatenKonstellation = DEXPDE.Header.PartyConstellation ' PROBLEME?

                            AES.aes_ContainerIndikator = DEXPDE.Header.ContainerFlag ' ?
                            AES.aes_GesamtRohmasse = DEXPDE.Header.TotalGrossMassMeasure
                            If DEXPDE.Header.RegistrationNumber IsNot Nothing Then AES.aes_RegistriernummerFremdsystem = DEXPDE.Header.RegistrationNumber
                            If DEXPDE.Header.Annotation IsNot Nothing Then AES.aes_Vermerk = DEXPDE.Header.Annotation
                            If DEXPDE.Header.CommercialReferenceNumber IsNot Nothing Then AES.aes_KennnummerSendung = DEXPDE.Header.CommercialReferenceNumber

                            If DEXPDE.Header.LocalReferenceNumber IsNot Nothing Then
                                ' readAES_DEXPDE = DEXPDE.Header.LocalReferenceNumber
                                AES.aes_ObjectName = DEXPDE.Header.LocalReferenceNumber
                            End If
                            If DEXPDE.Header.GoodsItemQuantity IsNot Nothing Then AES.aes_AnzahlPositionen = DEXPDE.Header.GoodsItemQuantity
                            If DEXPDE.Header.CustomsAuthorization IsNot Nothing Then
                                If DEXPDE.Header.CustomsAuthorization.LocalClearanceOutwardProcessing IsNot Nothing Then AES.aes_BewiligungsnummerAnschreibeverfahren = DEXPDE.Header.CustomsAuthorization.LocalClearanceOutwardProcessing
                                If DEXPDE.Header.CustomsAuthorization.OutwardProcessing IsNot Nothing Then AES.aes_BewiligungsnummerPassiveVeredelung = DEXPDE.Header.CustomsAuthorization.OutwardProcessing
                                ' If DEXPDE.Header.CustomsAuthorization.TrustedExporter IsNot Nothing Then AES.aes_BewiligungsnummerVertrausenswuerdigerAusfuehrer = DEXPDE.Header.CustomsAuthorization.TrustedExporter
                                If DEXPDE.Header.CustomsAuthorization.AccreditedExporter IsNot Nothing Then AES.aes_BewiligungsnummerAusfuhr = DEXPDE.Header.CustomsAuthorization.AccreditedExporter
                            End If

                            If DEXPDE.Header.InlandTransportMeans IsNot Nothing Then
                                If DEXPDE.Header.InlandTransportMeans.Mode IsNot Nothing Then AES.aes_VerkehrszweigInland = DEXPDE.Header.InlandTransportMeans.Mode
                            End If

                            If DEXPDE.Header.DepartureTransportMeans IsNot Nothing Then
                                AES.aes_BefoerderungsmittelAbgangArtCode = DEXPDE.Header.DepartureTransportMeans.Type
                                If DEXPDE.Header.DepartureTransportMeans.Identity IsNot Nothing Then AES.aes_BefoerderungsmittelAbgangKennzeichen = DEXPDE.Header.DepartureTransportMeans.Identity
                                If DEXPDE.Header.DepartureTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelAbgangStaatCode = DEXPDE.Header.DepartureTransportMeans.Nationality
                            End If

                            If DEXPDE.Header.BorderTransportMeans IsNot Nothing Then
                                AES.aes_BefoerderungsmittelGrenzeArtCode = DEXPDE.Header.BorderTransportMeans.Type
                                If DEXPDE.Header.BorderTransportMeans.Mode IsNot Nothing Then AES.aes_VerkehrszweigGrenze = DEXPDE.Header.BorderTransportMeans.Mode
                                If DEXPDE.Header.BorderTransportMeans.Identity IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeKennzeichen = DEXPDE.Header.BorderTransportMeans.Identity
                                If DEXPDE.Header.BorderTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeStaatCode = DEXPDE.Header.BorderTransportMeans.Nationality
                                If DEXPDE.Header.BorderTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeStaatCode = DEXPDE.Header.BorderTransportMeans.Nationality
                            End If

                        End If

                        If True Then


                            'Ladeort
                            If DEXPDE.GoodsLoadingPlace IsNot Nothing Then
                                If DEXPDE.GoodsLoadingPlace.Identification IsNot Nothing Then
                                    If DEXPDE.GoodsLoadingPlace.Identification.ReferenceNumber IsNot Nothing Then AES.aes_LadeortOrtId = DEXPDE.GoodsLoadingPlace.Identification.ReferenceNumber
                                End If
                                If DEXPDE.GoodsLoadingPlace.Address IsNot Nothing Then
                                    If DEXPDE.GoodsLoadingPlace.Address.Line IsNot Nothing Then AES.aes_LadeortStrasse = DEXPDE.GoodsLoadingPlace.Address.Line
                                    If DEXPDE.GoodsLoadingPlace.Address.Postcode IsNot Nothing Then AES.aes_LadeortPLZ = DEXPDE.GoodsLoadingPlace.Address.Postcode
                                    If DEXPDE.GoodsLoadingPlace.Address.City IsNot Nothing Then AES.aes_LadeortOrt = DEXPDE.GoodsLoadingPlace.Address.City
                                    If DEXPDE.GoodsLoadingPlace.Address.Complement IsNot Nothing Then AES.aes_LadeortZusatz = DEXPDE.GoodsLoadingPlace.Address.Complement
                                End If
                            End If

                            If DEXPDE.ExportCustomsOffice IsNot Nothing Then
                                If DEXPDE.ExportCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusfuhrZollstelleID = DEXPDE.ExportCustomsOffice.ReferenceNumber
                            End If
                            'If DEXPDE.SupplementaryDeclarationCustomsOffice IsNot Nothing Then
                            'If DEXPDE.SupplementaryDeclarationCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusgangszollstelleID = DEXPDE.SupplementaryDeclarationCustomsOffice.ReferenceNumber
                            'End If
                            If DEXPDE.IntendedExitCustomsOffice IsNot Nothing Then
                                If DEXPDE.IntendedExitCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusgangszollstelleID = DEXPDE.IntendedExitCustomsOffice.ReferenceNumber
                            End If
                            If DEXPDE.ActualExitCustomsOffice IsNot Nothing Then
                                If DEXPDE.ActualExitCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_TatsaechlicheAusgangZollstelleID = DEXPDE.ActualExitCustomsOffice.ReferenceNumber
                            End If
                            If DEXPDE.Transaction IsNot Nothing Then
                                AES.aes_GeschaeftartCode = DEXPDE.Transaction.Type
                                AES.aes_Rechnungspreis = DEXPDE.Transaction.Type
                                If DEXPDE.Transaction.Currency IsNot Nothing Then AES.aes_Rechnungwaehrung = DEXPDE.Transaction.Currency
                            End If
                            If DEXPDE.SpecialFact IsNot Nothing Then
                                If DEXPDE.SpecialFact.Count > 0 Then AES.aes_BesondererTatbestand = DEXPDE.SpecialFact(0).Indicator 'Könnenn mehrere auftretetn
                            End If

                            If DEXPDE.Itinerary IsNot Nothing Then
                                If DEXPDE.Itinerary.Count > 0 Then AES.aes_BefoerderungsrouteLand1 = DEXPDE.Itinerary(0).Country
                                If DEXPDE.Itinerary.Count > 1 Then AES.aes_BefoerderungsrouteLand2 = DEXPDE.Itinerary(1).Country
                                If DEXPDE.Itinerary.Count > 2 Then AES.aes_BefoerderungsrouteLand3 = DEXPDE.Itinerary(2).Country
                                If DEXPDE.Itinerary.Count > 3 Then AES.aes_BefoerderungsrouteLand4 = DEXPDE.Itinerary(3).Country
                                If DEXPDE.Itinerary.Count > 4 Then AES.aes_BefoerderungsrouteLand5 = DEXPDE.Itinerary(4).Country
                                If DEXPDE.Itinerary.Count > 5 Then AES.aes_BefoerderungsrouteLand6 = DEXPDE.Itinerary(5).Country
                                If DEXPDE.Itinerary.Count > 6 Then AES.aes_BefoerderungsrouteLand7 = DEXPDE.Itinerary(6).Country
                                If DEXPDE.Itinerary.Count > 7 Then AES.aes_BefoerderungsrouteLand8 = DEXPDE.Itinerary(7).Country
                                If DEXPDE.Itinerary.Count > 8 Then AES.aes_BefoerderungsrouteLand9 = DEXPDE.Itinerary(8).Country
                                If DEXPDE.Itinerary.Count > 9 Then AES.aes_BefoerderungsrouteLand10 = DEXPDE.Itinerary(9).Country
                                If DEXPDE.Itinerary.Count > 10 Then AES.aes_BefoerderungsrouteLand11 = DEXPDE.Itinerary(10).Country
                                If DEXPDE.Itinerary.Count > 11 Then AES.aes_BefoerderungsrouteLand12 = DEXPDE.Itinerary(11).Country
                            End If

                            If DEXPDE.Seals IsNot Nothing Then
                                AES.aes_VerschlussArtCode = DEXPDE.Seals.Type
                                If DEXPDE.Seals.Number IsNot Nothing Then AES.aes_VerschlussAnzahl = DEXPDE.Seals.Number
                                If DEXPDE.Seals.Seal IsNot Nothing Then
                                    If DEXPDE.Seals.Seal.Count > 0 Then AES.aes_VerschlussZeichen1 = DEXPDE.Seals.Seal(0).Identity
                                    If DEXPDE.Seals.Seal.Count > 1 Then AES.aes_VerschlussZeichen2 = DEXPDE.Seals.Seal(1).Identity
                                    If DEXPDE.Seals.Seal.Count > 2 Then AES.aes_VerschlussZeichen3 = DEXPDE.Seals.Seal(2).Identity
                                    If DEXPDE.Seals.Seal.Count > 3 Then AES.aes_VerschlussZeichen4 = DEXPDE.Seals.Seal(3).Identity
                                    If DEXPDE.Seals.Seal.Count > 4 Then AES.aes_VerschlussZeichen5 = DEXPDE.Seals.Seal(4).Identity
                                    If DEXPDE.Seals.Seal.Count > 5 Then AES.aes_VerschlussZeichen6 = DEXPDE.Seals.Seal(5).Identity
                                    If DEXPDE.Seals.Seal.Count > 6 Then AES.aes_VerschlussZeichen7 = DEXPDE.Seals.Seal(6).Identity
                                    If DEXPDE.Seals.Seal.Count > 7 Then AES.aes_VerschlussZeichen8 = DEXPDE.Seals.Seal(7).Identity
                                    If DEXPDE.Seals.Seal.Count > 8 Then AES.aes_VerschlussZeichen9 = DEXPDE.Seals.Seal(8).Identity
                                    If DEXPDE.Seals.Seal.Count > 9 Then AES.aes_VerschlussZeichen10 = DEXPDE.Seals.Seal(9).Identity
                                    If DEXPDE.Seals.Seal.Count > 10 Then AES.aes_VerschlussZeichen11 = DEXPDE.Seals.Seal(10).Identity
                                    If DEXPDE.Seals.Seal.Count > 11 Then AES.aes_VerschlussZeichen12 = DEXPDE.Seals.Seal(11).Identity
                                End If
                            End If

                            If DEXPDE.PresentationPackingLoading IsNot Nothing Then
                                AES.aes_GestellungsfristAnfangDatumZeit = cEDI.isValidDateElseNothing(DEXPDE.PresentationPackingLoading.StartDateTime)
                                AES.aes_GestellungsfristEndeDatumZeit = cEDI.isValidDateElseNothing(DEXPDE.PresentationPackingLoading.EndDateTime)
                            End If



                            'Ausführer
                            If DEXPDE.Exporter IsNot Nothing Then
                                '  AES.Ausfuehrert = DEXPDE.Exporter.Class
                                If DEXPDE.Exporter.Identification IsNot Nothing Then
                                    If DEXPDE.Exporter.Identification.ReferenceNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerEORI = DEXPDE.Exporter.Identification.ReferenceNumber
                                    If DEXPDE.Exporter.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerNLNR = DEXPDE.Exporter.Identification.SubsidiaryNumber
                                End If
                                If DEXPDE.Exporter.Name IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerName = DEXPDE.Exporter.Name
                                If DEXPDE.Exporter.Address IsNot Nothing Then
                                    If DEXPDE.Exporter.Address.Line IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerStrasse = DEXPDE.Exporter.Address.Line
                                    If DEXPDE.Exporter.Address.City IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerOrt = DEXPDE.Exporter.Address.City
                                    If DEXPDE.Exporter.Address.Postcode IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerPLZ = DEXPDE.Exporter.Address.Postcode
                                    If DEXPDE.Exporter.Address.Country IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerLandCode = DEXPDE.Exporter.Address.Country
                                End If
                                If DEXPDE.Exporter.ContactPerson IsNot Nothing Then
                                    If DEXPDE.Exporter.ContactPerson.Position IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerStellung = DEXPDE.Exporter.ContactPerson.Position
                                    If DEXPDE.Exporter.ContactPerson.Name IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDE.Exporter.ContactPerson.Name
                                    If DEXPDE.Exporter.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerTelefonnummer = DEXPDE.Exporter.ContactPerson.PhoneNumber
                                    If DEXPDE.Exporter.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerTelefax = DEXPDE.Exporter.ContactPerson.FacsimileNumber
                                    If DEXPDE.Exporter.ContactPerson.MailAddress IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerEmail = DEXPDE.Exporter.ContactPerson.MailAddress
                                End If
                            End If


                            'Anmelder
                            If DEXPDE.Declarant IsNot Nothing Then
                                '  AES.anmeldert = DEXPDE.Declarant.Class
                                If DEXPDE.Declarant.Identification IsNot Nothing Then
                                    If DEXPDE.Declarant.Identification.ReferenceNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerEORI = DEXPDE.Declarant.Identification.ReferenceNumber
                                    If DEXPDE.Declarant.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerNLNR = DEXPDE.Declarant.Identification.SubsidiaryNumber
                                End If
                                If DEXPDE.Declarant.Name IsNot Nothing Then AES.aes_AnmelderTeilnehmerName = DEXPDE.Declarant.Name
                                If DEXPDE.Declarant.Address IsNot Nothing Then
                                    If DEXPDE.Declarant.Address.Line IsNot Nothing Then AES.aes_AnmelderTeilnehmerStrasse = DEXPDE.Declarant.Address.Line
                                    If DEXPDE.Declarant.Address.City IsNot Nothing Then AES.aes_AnmelderTeilnehmerOrt = DEXPDE.Declarant.Address.City
                                    If DEXPDE.Declarant.Address.Postcode IsNot Nothing Then AES.aes_AnmelderTeilnehmerPLZ = DEXPDE.Declarant.Address.Postcode
                                    If DEXPDE.Declarant.Address.Country IsNot Nothing Then AES.aes_AnmelderTeilnehmerLandCode = DEXPDE.Declarant.Address.Country
                                End If
                                If DEXPDE.Declarant.ContactPerson IsNot Nothing Then
                                    If DEXPDE.Declarant.ContactPerson.Position IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerStellung = DEXPDE.Declarant.ContactPerson.Position
                                    If DEXPDE.Declarant.ContactPerson.Name IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDE.Declarant.ContactPerson.Name
                                    If DEXPDE.Declarant.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerTelefonnummer = DEXPDE.Declarant.ContactPerson.PhoneNumber
                                    If DEXPDE.Declarant.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerTelefax = DEXPDE.Declarant.ContactPerson.FacsimileNumber
                                    If DEXPDE.Declarant.ContactPerson.MailAddress IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerEmail = DEXPDE.Declarant.ContactPerson.MailAddress
                                End If
                            End If


                            'Vertreter Anmelder
                            If DEXPDE.Representative IsNot Nothing Then
                                '  AES.anmeldert = DEXPDE.Representative.Class
                                If DEXPDE.Representative.Identification IsNot Nothing Then
                                    If DEXPDE.Representative.Identification.ReferenceNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerEORI = DEXPDE.Representative.Identification.ReferenceNumber
                                    If DEXPDE.Representative.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerNLNR = DEXPDE.Representative.Identification.SubsidiaryNumber
                                End If
                                If DEXPDE.Representative.Name IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerName = DEXPDE.Representative.Name
                                If DEXPDE.Representative.Address IsNot Nothing Then
                                    If DEXPDE.Representative.Address.Line IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerStrasse = DEXPDE.Representative.Address.Line
                                    If DEXPDE.Representative.Address.City IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerOrt = DEXPDE.Representative.Address.City
                                    If DEXPDE.Representative.Address.Postcode IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerPLZ = DEXPDE.Representative.Address.Postcode
                                    If DEXPDE.Representative.Address.Country IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerLandCode = DEXPDE.Representative.Address.Country
                                End If
                                If DEXPDE.Representative.ContactPerson IsNot Nothing Then
                                    If DEXPDE.Representative.ContactPerson.Position IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerStellung = DEXPDE.Representative.ContactPerson.Position
                                    If DEXPDE.Representative.ContactPerson.Name IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDE.Representative.ContactPerson.Name
                                    If DEXPDE.Representative.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerTelefonnummer = DEXPDE.Representative.ContactPerson.PhoneNumber
                                    If DEXPDE.Representative.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerTelefax = DEXPDE.Representative.ContactPerson.FacsimileNumber
                                    If DEXPDE.Representative.ContactPerson.MailAddress IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerEmail = DEXPDE.Representative.ContactPerson.MailAddress
                                End If
                            End If


                            'Subunternehmer
                            If DEXPDE.Contractor IsNot Nothing Then
                                '  AES.anmeldert = DEXPDE.Contractor.Class
                                If DEXPDE.Contractor.Identification IsNot Nothing Then
                                    If DEXPDE.Contractor.Identification.ReferenceNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerEORI = DEXPDE.Contractor.Identification.ReferenceNumber
                                    If DEXPDE.Contractor.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerNLNR = DEXPDE.Contractor.Identification.SubsidiaryNumber
                                End If
                                If DEXPDE.Contractor.Name IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerName = DEXPDE.Contractor.Name
                                If DEXPDE.Contractor.Address IsNot Nothing Then
                                    If DEXPDE.Contractor.Address.Line IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerStrasse = DEXPDE.Contractor.Address.Line
                                    If DEXPDE.Contractor.Address.City IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerOrt = DEXPDE.Contractor.Address.City
                                    If DEXPDE.Contractor.Address.Postcode IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerPLZ = DEXPDE.Contractor.Address.Postcode
                                    If DEXPDE.Contractor.Address.Country IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerLandCode = DEXPDE.Contractor.Address.Country
                                End If
                                If DEXPDE.Contractor.ContactPerson IsNot Nothing Then
                                    If DEXPDE.Contractor.ContactPerson.Position IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerStellung = DEXPDE.Contractor.ContactPerson.Position
                                    If DEXPDE.Contractor.ContactPerson.Name IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDE.Contractor.ContactPerson.Name
                                    If DEXPDE.Contractor.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerTelefonnummer = DEXPDE.Contractor.ContactPerson.PhoneNumber
                                    If DEXPDE.Contractor.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerTelefax = DEXPDE.Contractor.ContactPerson.FacsimileNumber
                                    If DEXPDE.Contractor.ContactPerson.MailAddress IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerEmail = DEXPDE.Contractor.ContactPerson.MailAddress
                                End If
                            End If

                            'Verfahrensinhaber
                            If DEXPDE.OutwardProcessingOwner IsNot Nothing Then
                                '  AES.anmeldert = DEXPDE.OutwardProcessingOwner.Class
                                If DEXPDE.OutwardProcessingOwner.Identification IsNot Nothing Then
                                    If DEXPDE.OutwardProcessingOwner.Identification.ReferenceNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerEORI = DEXPDE.OutwardProcessingOwner.Identification.ReferenceNumber
                                    AES.aes_VerfahrensinhaberPVTeilnehmerNLNR = DEXPDE.OutwardProcessingOwner.Identification.SubsidiaryNumber
                                End If

                                If DEXPDE.OutwardProcessingOwner.ContactPerson IsNot Nothing Then
                                    If DEXPDE.OutwardProcessingOwner.ContactPerson.Position IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerStellung = DEXPDE.OutwardProcessingOwner.ContactPerson.Position
                                    If DEXPDE.OutwardProcessingOwner.ContactPerson.Name IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDE.OutwardProcessingOwner.ContactPerson.Name
                                    If DEXPDE.OutwardProcessingOwner.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerTelefonnummer = DEXPDE.OutwardProcessingOwner.ContactPerson.PhoneNumber
                                    If DEXPDE.OutwardProcessingOwner.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerTelefax = DEXPDE.OutwardProcessingOwner.ContactPerson.FacsimileNumber
                                    If DEXPDE.OutwardProcessingOwner.ContactPerson.MailAddress IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerEmail = DEXPDE.OutwardProcessingOwner.ContactPerson.MailAddress
                                End If
                            End If

                            'Empfaenger
                            If DEXPDE.Consignee IsNot Nothing Then
                                '  AES.anmeldert = DEXPDE.Consignee.Class
                                If DEXPDE.Consignee.Identification IsNot Nothing Then
                                    If DEXPDE.Consignee.Identification.ReferenceNumber IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerEORI = DEXPDE.Consignee.Identification.ReferenceNumber
                                    If DEXPDE.Consignee.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerNLNR = DEXPDE.Consignee.Identification.SubsidiaryNumber
                                End If
                                If DEXPDE.Consignee.Name IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerName = DEXPDE.Consignee.Name
                                If DEXPDE.Consignee.Address IsNot Nothing Then
                                    If DEXPDE.Consignee.Address.Line IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerStrasse = DEXPDE.Consignee.Address.Line
                                    If DEXPDE.Consignee.Address.City IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerOrt = DEXPDE.Consignee.Address.City
                                    If DEXPDE.Consignee.Address.Postcode IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerPLZ = DEXPDE.Consignee.Address.Postcode
                                    If DEXPDE.Consignee.Address.Country IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerLandCode = DEXPDE.Consignee.Address.Country
                                End If
                            End If


                            'WAREN
                            AES.aes_WARENPOS.Clear()
                            If DEXPDE.GoodsItem IsNot Nothing Then
                                If DEXPDE.GoodsItem.Count > 0 Then
                                    For Each WP In DEXPDE.GoodsItem
                                        Dim AES_WP = New DAKOSY_Worker.cDakosy_AES_Warenposition
                                        If WP.SequenceNumber IsNot Nothing Then AES_WP.aesWP_PositionsNummer = WP.SequenceNumber
                                        If WP.GoodsDescription IsNot Nothing Then AES_WP.aesWP_Warenbezeichnung = WP.GoodsDescription
                                        If WP.CommercialReferenceNumber IsNot Nothing Then AES_WP.aesWP_KennungSendung = WP.CommercialReferenceNumber
                                        If WP.RegistrationNumber IsNot Nothing Then AES_WP.aesWP_RegisternummerFremdsystem = WP.RegistrationNumber
                                        If WP.Annotation IsNot Nothing Then AES_WP.aesWP_Vermerk = WP.Annotation
                                        AES_WP.aesWP_UrsprungsbundeslandCode = WP.OriginFederalState
                                        AES_WP.aesWP_Eigenmasse = WP.NetMass
                                        AES_WP.aesWP_Rohmasse = WP.GrossMass
                                        If WP.DangerousGoodsCode IsNot Nothing Then AES_WP.aesWP_Gefahrgutnummer = WP.DangerousGoodsCode
                                        If WP.TransportChargesPaymentMethod IsNot Nothing Then AES_WP.aesWP_ZahlungsweiseBefoerderungskosten = WP.TransportChargesPaymentMethod
                                        If WP.CommodityCode IsNot Nothing Then
                                            If WP.CommodityCode.CombinedNomenclatureCode IsNot Nothing Then AES_WP.aesWP_WarennummerKN8 = WP.CommodityCode.CombinedNomenclatureCode
                                            If WP.CommodityCode.TaricCode IsNot Nothing Then AES_WP.aesWP_WarennummerTARIC = WP.CommodityCode.TaricCode
                                            If WP.CommodityCode.TaricFirstAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerZusatz1 = WP.CommodityCode.TaricFirstAdditionalCode
                                            If WP.CommodityCode.TaricSecondAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerZusatz2 = WP.CommodityCode.TaricSecondAdditionalCode
                                            If WP.CommodityCode.NationalAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerNational = WP.CommodityCode.NationalAdditionalCode
                                        End If
                                        If WP.Procedure IsNot Nothing Then
                                            If WP.Procedure.RequestedProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenAngemeldetCode = WP.Procedure.RequestedProcedure
                                            If WP.Procedure.PreviousProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenVorangegangenCode = WP.Procedure.PreviousProcedure
                                            If WP.Procedure.AdditionalProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenNationalCode = WP.Procedure.AdditionalProcedure
                                            AES_WP.aesWP_AusfuhrerstattungVerfahrensCode = WP.Procedure.ExportRefundProcedure
                                        End If
                                        If WP.ForeignTradeStatistics IsNot Nothing Then
                                            AES_WP.aesWP_Menge = WP.ForeignTradeStatistics.SpecialUnitQuantity
                                            If WP.ForeignTradeStatistics.StatisticalValue IsNot Nothing Then AES_WP.aesWP_Wert = WP.ForeignTradeStatistics.StatisticalValue
                                        End If


                                        'Empfaenger
                                        If WP.Consignee IsNot Nothing Then
                                            '  AES_WP.anmeldert = WP.Consignee.Class
                                            If WP.Consignee.Identification IsNot Nothing Then
                                                If WP.Consignee.Identification.ReferenceNumber IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerEORI = WP.Consignee.Identification.ReferenceNumber
                                                If WP.Consignee.Identification.SubsidiaryNumber IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerNLNR = WP.Consignee.Identification.SubsidiaryNumber
                                            End If
                                            If WP.Consignee.Name IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerName = WP.Consignee.Name
                                            If WP.Consignee.Address IsNot Nothing Then
                                                If WP.Consignee.Address.Line IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerStrasse = WP.Consignee.Address.Line
                                                If WP.Consignee.Address.City IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerOrt = WP.Consignee.Address.City
                                                If WP.Consignee.Address.Postcode IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerPLZ = WP.Consignee.Address.Postcode
                                                If WP.Consignee.Address.Country IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerLandCode = WP.Consignee.Address.Country
                                            End If
                                        End If

                                        If WP.Container IsNot Nothing Then
                                            If WP.Container.Count > 0 Then AES_WP.aesWP_Containernummer1 = WP.Container(0).IdentificationNumber
                                            If WP.Container.Count > 1 Then AES_WP.aesWP_Containernummer2 = WP.Container(1).IdentificationNumber
                                            If WP.Container.Count > 2 Then AES_WP.aesWP_Containernummer3 = WP.Container(2).IdentificationNumber
                                            If WP.Container.Count > 3 Then AES_WP.aesWP_Containernummer4 = WP.Container(3).IdentificationNumber
                                        End If

                                        'PACKSTÜCKE
                                        AES_WP.aesWP_PACKSTUECKE.Clear()
                                        If WP.Package IsNot Nothing Then
                                            For Each PKST In WP.Package
                                                Dim AES_PKST = New DAKOSY_Worker.cDakosy_AES_WarenpositionPackstuecke
                                                If PKST.Quantity IsNot Nothing Then AES_PKST.aesWpPk_PackstueckeAnzahl = PKST.Quantity
                                                '  If PKST.SequenceNumber IsNot Nothing Then AES_PKST.nu = PKST.SequenceNumber
                                                If PKST.Kind IsNot Nothing Then AES_PKST.aesWpPk_Verpackungsart = PKST.Kind
                                                If PKST.MarksNumbers IsNot Nothing Then AES_PKST.aesWpPk_Kennzeichnung = PKST.MarksNumbers
                                                AES_WP.aesWP_PACKSTUECKE.Add(AES_PKST)
                                            Next
                                        End If


                                        'UNTERLAGEN
                                        AES_WP.aesWP_UNTERLAGEN.Clear()
                                        If WP.Document IsNot Nothing Then
                                            For Each UNT In WP.Document
                                                Dim AES_UNT = New DAKOSY_Worker.cDakosy_AES_WarenpositionUnterlagen
                                                If UNT.Qualifier IsNot Nothing Then AES_UNT.aesWpUl_QualifierCode = UNT.Qualifier
                                                If UNT.Type IsNot Nothing Then AES_UNT.aesWpUl_Typ = UNT.Type
                                                If UNT.ReferenceNumber IsNot Nothing Then AES_UNT.aesWpUl_ReferenzID = UNT.ReferenceNumber
                                                If UNT.Complement IsNot Nothing Then AES_UNT.aesWpUl_Zusatz = UNT.Complement
                                                If UNT.Detail IsNot Nothing Then AES_UNT.aesWpUl_Detail = UNT.Detail
                                                AES_UNT.aesWpUl_DatumAusstellung = cEDI.isValidDateElseNothing(UNT.IssuingDate)
                                                AES_UNT.aesWpUl_DatumEndeGueltigkeit = cEDI.isValidDateElseNothing(UNT.ExpiryDate)
                                                If UNT.WriteOffValue IsNot Nothing Then AES_UNT.aesWpUl_Wert = UNT.WriteOffValue
                                                AES_UNT.aesWpUl_Masseinheit = UNT.MeasurementUnit
                                                AES_UNT.aesWpUl_Abschreibungsmenge = UNT.WriteOffQuantity
                                                AES_WP.aesWP_UNTERLAGEN.Add(AES_UNT)
                                            Next
                                        End If
                                        AES.aes_WARENPOS.Add(AES_WP)
                                    Next

                                End If
                            End If

                        End If
                        AES.aes_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                        AES.aes_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                        If AES.SAVE_ALL() Then
                            DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                        End If

                    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

                    addDGVEinarbeitung("AES: AnmeldungAusfuhr", readAES_DEXPDE)

                End Using

            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, Path.GetTempFileName & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readAES_DEXPDE = ""
        End Try
    End Function
    Function readAES_DEXPDF(doc As XmlDocument) As String
        Try
            readAES_DEXPDF = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPDF>") Then
                Dim xmlDEXPDF = XmlString.Substring(XmlString.IndexOf("<DEXPDF>"), XmlString.IndexOf("</DEXPDF>") + 9 - XmlString.IndexOf("<DEXPDF>"))
                '  MsgBox(xmlDEXPDF)
                Dim p = Path.GetTempFileName

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



                    Dim DEXPDF As DAKOSY_Worker.DEXPDF.DEXPDF = DAKOSY_Worker.DEXPDF.DEXPDF.LoadFromFile(p)


                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPDF IsNot Nothing And DEXPDF.ExportOperation IsNot Nothing And DEXPDF.ExportOperation.LRN IsNot Nothing Then
                        readAES_DEXPDF = DEXPDF.ExportOperation.LRN
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readAES_DEXPDF, "AES")

                    Dim AES As DAKOSY_Worker.cDakosyAES = DAKOSY_Worker.cDakosyAES.LOADByBezugsNr(readAES_DEXPDF, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If AES Is Nothing Then AES = New DAKOSY_Worker.cDakosyAES
                    If DY_TMP IsNot Nothing Then AES.aes_dyaAnmID = DY_TMP.dy_Id

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


                    If DEXPDF IsNot Nothing Then

                        'Kopfdaten
                        If DEXPDF.ExportOperation IsNot Nothing Then

                            If DEXPDF.ExportOperation.declarationType IsNot Nothing Then AES.aes_AnmeldeArtAusfuhrCode = DEXPDF.ExportOperation.declarationType

                            If DEXPDF.ExportOperation.LRN IsNot Nothing Then
                                ' readAES_DEXPDF = DEXPDF.Header.LocalReferenceNumber
                                AES.aes_ObjectName = DEXPDF.ExportOperation.LRN
                            End If
                        End If


                        'Kopfdaten
                        'If DEXPDF.ExportOperation IsNot Nothing Then

                        '    If DEXPDF.ExportOperation.declarationType IsNot Nothing Then AES.aes_AnmeldeArtAusfuhrCode = DEXPDF.ExportOperation.declarationType

                        '    If DEXPDF.ExportOperation.LRN IsNot Nothing Then
                        '        ' readAES_DEXPDF = DEXPDF.Header.LocalReferenceNumber
                        '        AES.aes_ObjectName = DEXPDF.ExportOperation.LRN
                        '    End If

                        '    '   If DEXPDF.ExportOperation.Declaration.Variant IsNot Nothing Then AES.aes_AnmeldeArtUeberfuehrungCode = DEXPDF.ExportOperation.Declaration.Variant


                        '    'If DEXPDF.Header.MessageVersion IsNot Nothing Then AES.aes_Trans_Version = DEXPDF.
                        '    If DEXPDF.ExportOperation.expo.ExportCountry IsNot Nothing Then AES.aes_Ausfuhrland = DEXPDF.Header.ExportCountry
                        '        If DEXPDF.Header.DestinationCountry IsNot Nothing Then AES.aes_BestimmungslandCode = DEXPDF.Header.DestinationCountry
                        '        AES.aes_AnmeldedatumZeit = cEDI.isValidDateElseNothing(DEXPDF.Header.DeclarationDateTime)
                        '        AES.aes_MassgeblichesDatum = cEDI.isValidDateElseNothing(DEXPDF.Header.DecisiveDate)
                        '        AES.aes_DatumAusgang = cEDI.isValidDateElseNothing(DEXPDF.Header.ExitDate)
                        '        If DEXPDF.Header.SpecificCircumstanceIndicator IsNot Nothing Then AES.aes_BesondereUmstaende = DEXPDF.Header.SpecificCircumstanceIndicator
                        '        If DEXPDF.Header.TransportChargesPaymentMethod IsNot Nothing Then AES.aes_Zahlungsweisebefoerderungskosten = DEXPDF.Header.TransportChargesPaymentMethod

                        '        AES.aes_AdressdatenKonstellation = DEXPDF.Header.PartyConstellation ' PROBLEME?

                        '        AES.aes_ContainerIndikator = DEXPDF.Header.ContainerFlag ' ?
                        '        AES.aes_GesamtRohmasse = DEXPDF.Header.TotalGrossMassMeasure
                        '    'If DEXPDF.Header.RegistrationNumber IsNot Nothing Then AES.aes_RegistriernummerFremdsystem = DEXPDF.Header.RegistrationNumber
                        '    'If DEXPDF.Header.Annotation IsNot Nothing Then AES.aes_Vermerk = DEXPDF.Header.Annotation
                        '    'If DEXPDF.Header.CommercialReferenceNumber IsNot Nothing Then AES.aes_KennnummerSendung = DEXPDF.Header.CommercialReferenceNumber


                        '    If DEXPDF.Header.GoodsItemQuantity IsNot Nothing Then AES.aes_AnzahlPositionen = DEXPDF.Header.GoodsItemQuantity
                        '        If DEXPDF.Header.CustomsAuthorization IsNot Nothing Then
                        '            If DEXPDF.Header.CustomsAuthorization.LocalClearanceOutwardProcessing IsNot Nothing Then AES.aes_BewiligungsnummerAnschreibeverfahren = DEXPDF.Header.CustomsAuthorization.LocalClearanceOutwardProcessing
                        '            If DEXPDF.Header.CustomsAuthorization.OutwardProcessing IsNot Nothing Then AES.aes_BewiligungsnummerPassiveVeredelung = DEXPDF.Header.CustomsAuthorization.OutwardProcessing
                        '            ' If DEXPDF.Header.CustomsAuthorization.TrustedExporter IsNot Nothing Then AES.aes_BewiligungsnummerVertrausenswuerdigerAusfuehrer = DEXPDF.Header.CustomsAuthorization.TrustedExporter
                        '            If DEXPDF.Header.CustomsAuthorization.AccreditedExporter IsNot Nothing Then AES.aes_BewiligungsnummerAusfuhr = DEXPDF.Header.CustomsAuthorization.AccreditedExporter
                        '        End If

                        '        If DEXPDF.Header.InlandTransportMeans IsNot Nothing Then
                        '            If DEXPDF.Header.InlandTransportMeans.Mode IsNot Nothing Then AES.aes_VerkehrszweigInland = DEXPDF.Header.InlandTransportMeans.Mode
                        '        End If

                        '        If DEXPDF.Header.DepartureTransportMeans IsNot Nothing Then
                        '            AES.aes_BefoerderungsmittelAbgangArtCode = DEXPDF.Header.DepartureTransportMeans.Type
                        '            If DEXPDF.Header.DepartureTransportMeans.Identity IsNot Nothing Then AES.aes_BefoerderungsmittelAbgangKennzeichen = DEXPDF.Header.DepartureTransportMeans.Identity
                        '            If DEXPDF.Header.DepartureTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelAbgangStaatCode = DEXPDF.Header.DepartureTransportMeans.Nationality
                        '        End If

                        '        If DEXPDF.Header.BorderTransportMeans IsNot Nothing Then
                        '            AES.aes_BefoerderungsmittelGrenzeArtCode = DEXPDF.Header.BorderTransportMeans.Type
                        '            If DEXPDF.Header.BorderTransportMeans.Mode IsNot Nothing Then AES.aes_VerkehrszweigGrenze = DEXPDF.Header.BorderTransportMeans.Mode
                        '            If DEXPDF.Header.BorderTransportMeans.Identity IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeKennzeichen = DEXPDF.Header.BorderTransportMeans.Identity
                        '            If DEXPDF.Header.BorderTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeStaatCode = DEXPDF.Header.BorderTransportMeans.Nationality
                        '            If DEXPDF.Header.BorderTransportMeans.Nationality IsNot Nothing Then AES.aes_BefoerderungsmittelGrenzeStaatCode = DEXPDF.Header.BorderTransportMeans.Nationality
                        '        End If

                        '    End If

                        '    If True Then


                        '    'Ladeort
                        '    If DEXPDF.GoodsLoadingPlace IsNot Nothing Then
                        '        If DEXPDF.GoodsLoadingPlace.Identification IsNot Nothing Then
                        '            If DEXPDF.GoodsLoadingPlace.Identification.ReferenceNumber IsNot Nothing Then AES.aes_LadeortOrtId = DEXPDF.GoodsLoadingPlace.Identification.ReferenceNumber
                        '        End If
                        '        If DEXPDF.GoodsLoadingPlace.Address IsNot Nothing Then
                        '            If DEXPDF.GoodsLoadingPlace.Address.Line IsNot Nothing Then AES.aes_LadeortStrasse = DEXPDF.GoodsLoadingPlace.Address.Line
                        '            If DEXPDF.GoodsLoadingPlace.Address.Postcode IsNot Nothing Then AES.aes_LadeortPLZ = DEXPDF.GoodsLoadingPlace.Address.Postcode
                        '            If DEXPDF.GoodsLoadingPlace.Address.City IsNot Nothing Then AES.aes_LadeortOrt = DEXPDF.GoodsLoadingPlace.Address.City
                        '            If DEXPDF.GoodsLoadingPlace.Address.Complement IsNot Nothing Then AES.aes_LadeortZusatz = DEXPDF.GoodsLoadingPlace.Address.Complement
                        '        End If
                        '    End If

                        '    If DEXPDF.ExportCustomsOffice IsNot Nothing Then
                        '        If DEXPDF.ExportCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusfuhrZollstelleID = DEXPDF.ExportCustomsOffice.ReferenceNumber
                        '    End If
                        '    'If DEXPDF.SupplementaryDeclarationCustomsOffice IsNot Nothing Then
                        '    'If DEXPDF.SupplementaryDeclarationCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusgangszollstelleID = DEXPDF.SupplementaryDeclarationCustomsOffice.ReferenceNumber
                        '    'End If
                        '    If DEXPDF.IntendedExitCustomsOffice IsNot Nothing Then
                        '        If DEXPDF.IntendedExitCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_AusgangszollstelleID = DEXPDF.IntendedExitCustomsOffice.ReferenceNumber
                        '    End If
                        '    If DEXPDF.ActualExitCustomsOffice IsNot Nothing Then
                        '        If DEXPDF.ActualExitCustomsOffice.ReferenceNumber IsNot Nothing Then AES.aes_TatsaechlicheAusgangZollstelleID = DEXPDF.ActualExitCustomsOffice.ReferenceNumber
                        '    End If
                        '    If DEXPDF.Transaction IsNot Nothing Then
                        '        AES.aes_GeschaeftartCode = DEXPDF.Transaction.Type
                        '        AES.aes_Rechnungspreis = DEXPDF.Transaction.Type
                        '        If DEXPDF.Transaction.Currency IsNot Nothing Then AES.aes_Rechnungwaehrung = DEXPDF.Transaction.Currency
                        '    End If
                        '    If DEXPDF.SpecialFact IsNot Nothing Then
                        '        If DEXPDF.SpecialFact.Count > 0 Then AES.aes_BesondererTatbestand = DEXPDF.SpecialFact(0).Indicator 'Könnenn mehrere auftretetn
                        '    End If

                        '    If DEXPDF.Itinerary IsNot Nothing Then
                        '        If DEXPDF.Itinerary.Count > 0 Then AES.aes_BefoerderungsrouteLand1 = DEXPDF.Itinerary(0).Country
                        '        If DEXPDF.Itinerary.Count > 1 Then AES.aes_BefoerderungsrouteLand2 = DEXPDF.Itinerary(1).Country
                        '        If DEXPDF.Itinerary.Count > 2 Then AES.aes_BefoerderungsrouteLand3 = DEXPDF.Itinerary(2).Country
                        '        If DEXPDF.Itinerary.Count > 3 Then AES.aes_BefoerderungsrouteLand4 = DEXPDF.Itinerary(3).Country
                        '        If DEXPDF.Itinerary.Count > 4 Then AES.aes_BefoerderungsrouteLand5 = DEXPDF.Itinerary(4).Country
                        '        If DEXPDF.Itinerary.Count > 5 Then AES.aes_BefoerderungsrouteLand6 = DEXPDF.Itinerary(5).Country
                        '        If DEXPDF.Itinerary.Count > 6 Then AES.aes_BefoerderungsrouteLand7 = DEXPDF.Itinerary(6).Country
                        '        If DEXPDF.Itinerary.Count > 7 Then AES.aes_BefoerderungsrouteLand8 = DEXPDF.Itinerary(7).Country
                        '        If DEXPDF.Itinerary.Count > 8 Then AES.aes_BefoerderungsrouteLand9 = DEXPDF.Itinerary(8).Country
                        '        If DEXPDF.Itinerary.Count > 9 Then AES.aes_BefoerderungsrouteLand10 = DEXPDF.Itinerary(9).Country
                        '        If DEXPDF.Itinerary.Count > 10 Then AES.aes_BefoerderungsrouteLand11 = DEXPDF.Itinerary(10).Country
                        '        If DEXPDF.Itinerary.Count > 11 Then AES.aes_BefoerderungsrouteLand12 = DEXPDF.Itinerary(11).Country
                        '    End If

                        '    If DEXPDF.Seals IsNot Nothing Then
                        '        AES.aes_VerschlussArtCode = DEXPDF.Seals.Type
                        '        If DEXPDF.Seals.Number IsNot Nothing Then AES.aes_VerschlussAnzahl = DEXPDF.Seals.Number
                        '        If DEXPDF.Seals.Seal IsNot Nothing Then
                        '            If DEXPDF.Seals.Seal.Count > 0 Then AES.aes_VerschlussZeichen1 = DEXPDF.Seals.Seal(0).Identity
                        '            If DEXPDF.Seals.Seal.Count > 1 Then AES.aes_VerschlussZeichen2 = DEXPDF.Seals.Seal(1).Identity
                        '            If DEXPDF.Seals.Seal.Count > 2 Then AES.aes_VerschlussZeichen3 = DEXPDF.Seals.Seal(2).Identity
                        '            If DEXPDF.Seals.Seal.Count > 3 Then AES.aes_VerschlussZeichen4 = DEXPDF.Seals.Seal(3).Identity
                        '            If DEXPDF.Seals.Seal.Count > 4 Then AES.aes_VerschlussZeichen5 = DEXPDF.Seals.Seal(4).Identity
                        '            If DEXPDF.Seals.Seal.Count > 5 Then AES.aes_VerschlussZeichen6 = DEXPDF.Seals.Seal(5).Identity
                        '            If DEXPDF.Seals.Seal.Count > 6 Then AES.aes_VerschlussZeichen7 = DEXPDF.Seals.Seal(6).Identity
                        '            If DEXPDF.Seals.Seal.Count > 7 Then AES.aes_VerschlussZeichen8 = DEXPDF.Seals.Seal(7).Identity
                        '            If DEXPDF.Seals.Seal.Count > 8 Then AES.aes_VerschlussZeichen9 = DEXPDF.Seals.Seal(8).Identity
                        '            If DEXPDF.Seals.Seal.Count > 9 Then AES.aes_VerschlussZeichen10 = DEXPDF.Seals.Seal(9).Identity
                        '            If DEXPDF.Seals.Seal.Count > 10 Then AES.aes_VerschlussZeichen11 = DEXPDF.Seals.Seal(10).Identity
                        '            If DEXPDF.Seals.Seal.Count > 11 Then AES.aes_VerschlussZeichen12 = DEXPDF.Seals.Seal(11).Identity
                        '        End If
                        '    End If

                        '    If DEXPDF.PresentationPackingLoading IsNot Nothing Then
                        '        AES.aes_GestellungsfristAnfangDatumZeit = cEDI.isValidDateElseNothing(DEXPDF.PresentationPackingLoading.StartDateTime)
                        '        AES.aes_GestellungsfristEndeDatumZeit = cEDI.isValidDateElseNothing(DEXPDF.PresentationPackingLoading.EndDateTime)
                        '    End If



                        '    'Ausführer
                        '    If DEXPDF.Exporter IsNot Nothing Then
                        '        '  AES.Ausfuehrert = DEXPDF.Exporter.Class
                        '        If DEXPDF.Exporter.Identification IsNot Nothing Then
                        '            If DEXPDF.Exporter.Identification.ReferenceNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerEORI = DEXPDF.Exporter.Identification.ReferenceNumber
                        '            If DEXPDF.Exporter.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerNLNR = DEXPDF.Exporter.Identification.SubsidiaryNumber
                        '        End If
                        '        If DEXPDF.Exporter.name IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerName = DEXPDF.Exporter.name
                        '        If DEXPDF.Exporter.Address IsNot Nothing Then
                        '            If DEXPDF.Exporter.Address.Line IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerStrasse = DEXPDF.Exporter.Address.Line
                        '            If DEXPDF.Exporter.Address.city IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerOrt = DEXPDF.Exporter.Address.city
                        '            If DEXPDF.Exporter.Address.postcode IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerPLZ = DEXPDF.Exporter.Address.postcode
                        '            If DEXPDF.Exporter.Address.country IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerLandCode = DEXPDF.Exporter.Address.country
                        '        End If
                        '        If DEXPDF.Exporter.ContactPerson IsNot Nothing Then
                        '            If DEXPDF.Exporter.ContactPerson.Position IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerStellung = DEXPDF.Exporter.ContactPerson.Position
                        '            If DEXPDF.Exporter.ContactPerson.Name IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDF.Exporter.ContactPerson.Name
                        '            If DEXPDF.Exporter.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerTelefonnummer = DEXPDF.Exporter.ContactPerson.PhoneNumber
                        '            If DEXPDF.Exporter.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerTelefax = DEXPDF.Exporter.ContactPerson.FacsimileNumber
                        '            If DEXPDF.Exporter.ContactPerson.MailAddress IsNot Nothing Then AES.aes_AusfuehrerTeilnehmerAnsprechpartnerEmail = DEXPDF.Exporter.ContactPerson.MailAddress
                        '        End If
                        '    End If


                        '    'Anmelder
                        '    If DEXPDF.Declarant IsNot Nothing Then
                        '        '  AES.anmeldert = DEXPDF.Declarant.Class
                        '        If DEXPDF.Declarant.Identification IsNot Nothing Then
                        '            If DEXPDF.Declarant.Identification.ReferenceNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerEORI = DEXPDF.Declarant.Identification.ReferenceNumber
                        '            If DEXPDF.Declarant.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerNLNR = DEXPDF.Declarant.Identification.SubsidiaryNumber
                        '        End If
                        '        If DEXPDF.Declarant.name IsNot Nothing Then AES.aes_AnmelderTeilnehmerName = DEXPDF.Declarant.name
                        '        If DEXPDF.Declarant.Address IsNot Nothing Then
                        '            If DEXPDF.Declarant.Address.Line IsNot Nothing Then AES.aes_AnmelderTeilnehmerStrasse = DEXPDF.Declarant.Address.Line
                        '            If DEXPDF.Declarant.Address.city IsNot Nothing Then AES.aes_AnmelderTeilnehmerOrt = DEXPDF.Declarant.Address.city
                        '            If DEXPDF.Declarant.Address.postcode IsNot Nothing Then AES.aes_AnmelderTeilnehmerPLZ = DEXPDF.Declarant.Address.postcode
                        '            If DEXPDF.Declarant.Address.country IsNot Nothing Then AES.aes_AnmelderTeilnehmerLandCode = DEXPDF.Declarant.Address.country
                        '        End If
                        '        If DEXPDF.Declarant.ContactPerson IsNot Nothing Then
                        '            If DEXPDF.Declarant.ContactPerson.Position IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerStellung = DEXPDF.Declarant.ContactPerson.Position
                        '            If DEXPDF.Declarant.ContactPerson.name IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDF.Declarant.ContactPerson.name
                        '            If DEXPDF.Declarant.ContactPerson.phoneNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerTelefonnummer = DEXPDF.Declarant.ContactPerson.phoneNumber
                        '            If DEXPDF.Declarant.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerTelefax = DEXPDF.Declarant.ContactPerson.FacsimileNumber
                        '            If DEXPDF.Declarant.ContactPerson.MailAddress IsNot Nothing Then AES.aes_AnmelderTeilnehmerAnsprechpartnerEmail = DEXPDF.Declarant.ContactPerson.MailAddress
                        '        End If
                        '    End If


                        '    'Vertreter Anmelder
                        '    If DEXPDF.Representative IsNot Nothing Then
                        '        '  AES.anmeldert = DEXPDF.Representative.Class
                        '        If DEXPDF.Representative.Identification IsNot Nothing Then
                        '            If DEXPDF.Representative.Identification.ReferenceNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerEORI = DEXPDF.Representative.Identification.ReferenceNumber
                        '            If DEXPDF.Representative.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerNLNR = DEXPDF.Representative.Identification.SubsidiaryNumber
                        '        End If
                        '        If DEXPDF.Representative.Name IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerName = DEXPDF.Representative.Name
                        '        If DEXPDF.Representative.Address IsNot Nothing Then
                        '            If DEXPDF.Representative.Address.Line IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerStrasse = DEXPDF.Representative.Address.Line
                        '            If DEXPDF.Representative.Address.City IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerOrt = DEXPDF.Representative.Address.City
                        '            If DEXPDF.Representative.Address.Postcode IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerPLZ = DEXPDF.Representative.Address.Postcode
                        '            If DEXPDF.Representative.Address.Country IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerLandCode = DEXPDF.Representative.Address.Country
                        '        End If
                        '        If DEXPDF.Representative.ContactPerson IsNot Nothing Then
                        '            If DEXPDF.Representative.ContactPerson.Position IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerStellung = DEXPDF.Representative.ContactPerson.Position
                        '            If DEXPDF.Representative.ContactPerson.name IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDF.Representative.ContactPerson.name
                        '            If DEXPDF.Representative.ContactPerson.phoneNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerTelefonnummer = DEXPDF.Representative.ContactPerson.phoneNumber
                        '            If DEXPDF.Representative.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerTelefax = DEXPDF.Representative.ContactPerson.FacsimileNumber
                        '            If DEXPDF.Representative.ContactPerson.MailAddress IsNot Nothing Then AES.aes_VertreterAnmelderTeilnehmerAnsprechpartnerEmail = DEXPDF.Representative.ContactPerson.MailAddress
                        '        End If
                        '    End If


                        '    'Subunternehmer
                        '    If DEXPDF.Contractor IsNot Nothing Then
                        '        '  AES.anmeldert = DEXPDF.Contractor.Class
                        '        If DEXPDF.Contractor.Identification IsNot Nothing Then
                        '            If DEXPDF.Contractor.Identification.ReferenceNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerEORI = DEXPDF.Contractor.Identification.ReferenceNumber
                        '            If DEXPDF.Contractor.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerNLNR = DEXPDF.Contractor.Identification.SubsidiaryNumber
                        '        End If
                        '        If DEXPDF.Contractor.Name IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerName = DEXPDF.Contractor.Name
                        '        If DEXPDF.Contractor.Address IsNot Nothing Then
                        '            If DEXPDF.Contractor.Address.Line IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerStrasse = DEXPDF.Contractor.Address.Line
                        '            If DEXPDF.Contractor.Address.City IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerOrt = DEXPDF.Contractor.Address.City
                        '            If DEXPDF.Contractor.Address.Postcode IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerPLZ = DEXPDF.Contractor.Address.Postcode
                        '            If DEXPDF.Contractor.Address.Country IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerLandCode = DEXPDF.Contractor.Address.Country
                        '        End If
                        '        If DEXPDF.Contractor.ContactPerson IsNot Nothing Then
                        '            If DEXPDF.Contractor.ContactPerson.Position IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerStellung = DEXPDF.Contractor.ContactPerson.Position
                        '            If DEXPDF.Contractor.ContactPerson.Name IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDF.Contractor.ContactPerson.Name
                        '            If DEXPDF.Contractor.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerTelefonnummer = DEXPDF.Contractor.ContactPerson.PhoneNumber
                        '            If DEXPDF.Contractor.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerTelefax = DEXPDF.Contractor.ContactPerson.FacsimileNumber
                        '            If DEXPDF.Contractor.ContactPerson.MailAddress IsNot Nothing Then AES.aes_SubunternehmerTeilnehmerAnsprechpartnerEmail = DEXPDF.Contractor.ContactPerson.MailAddress
                        '        End If
                        '    End If

                        '    'Verfahrensinhaber
                        '    If DEXPDF.OutwardProcessingOwner IsNot Nothing Then
                        '        '  AES.anmeldert = DEXPDF.OutwardProcessingOwner.Class
                        '        If DEXPDF.OutwardProcessingOwner.Identification IsNot Nothing Then
                        '            If DEXPDF.OutwardProcessingOwner.Identification.ReferenceNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerEORI = DEXPDF.OutwardProcessingOwner.Identification.ReferenceNumber
                        '            AES.aes_VerfahrensinhaberPVTeilnehmerNLNR = DEXPDF.OutwardProcessingOwner.Identification.SubsidiaryNumber
                        '        End If

                        '        If DEXPDF.OutwardProcessingOwner.ContactPerson IsNot Nothing Then
                        '            If DEXPDF.OutwardProcessingOwner.ContactPerson.Position IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerStellung = DEXPDF.OutwardProcessingOwner.ContactPerson.Position
                        '            If DEXPDF.OutwardProcessingOwner.ContactPerson.Name IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerSachbearbeiter = DEXPDF.OutwardProcessingOwner.ContactPerson.Name
                        '            If DEXPDF.OutwardProcessingOwner.ContactPerson.PhoneNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerTelefonnummer = DEXPDF.OutwardProcessingOwner.ContactPerson.PhoneNumber
                        '            If DEXPDF.OutwardProcessingOwner.ContactPerson.FacsimileNumber IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerTelefax = DEXPDF.OutwardProcessingOwner.ContactPerson.FacsimileNumber
                        '            If DEXPDF.OutwardProcessingOwner.ContactPerson.MailAddress IsNot Nothing Then AES.aes_VerfahrensinhaberPVTeilnehmerAnsprechpartnerEmail = DEXPDF.OutwardProcessingOwner.ContactPerson.MailAddress
                        '        End If
                        '    End If

                        '    'Empfaenger
                        '    If DEXPDF.Consignee IsNot Nothing Then
                        '        '  AES.anmeldert = DEXPDF.Consignee.Class
                        '        If DEXPDF.Consignee.Identification IsNot Nothing Then
                        '            If DEXPDF.Consignee.Identification.ReferenceNumber IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerEORI = DEXPDF.Consignee.Identification.ReferenceNumber
                        '            If DEXPDF.Consignee.Identification.SubsidiaryNumber IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerNLNR = DEXPDF.Consignee.Identification.SubsidiaryNumber
                        '        End If
                        '        If DEXPDF.Consignee.Name IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerName = DEXPDF.Consignee.Name
                        '        If DEXPDF.Consignee.Address IsNot Nothing Then
                        '            If DEXPDF.Consignee.Address.Line IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerStrasse = DEXPDF.Consignee.Address.Line
                        '            If DEXPDF.Consignee.Address.City IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerOrt = DEXPDF.Consignee.Address.City
                        '            If DEXPDF.Consignee.Address.Postcode IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerPLZ = DEXPDF.Consignee.Address.Postcode
                        '            If DEXPDF.Consignee.Address.Country IsNot Nothing Then AES.aes_EmpfaengerTeilnehmerLandCode = DEXPDF.Consignee.Address.Country
                        '        End If
                        '    End If


                        '    'WAREN
                        '    AES.aes_WARENPOS.Clear()
                        '    If DEXPDF.GoodsItem IsNot Nothing Then
                        '        If DEXPDF.GoodsItem.Count > 0 Then
                        '            For Each WP In DEXPDF.GoodsItem
                        '                Dim AES_WP = New DAKOSY_Worker.cDakosy_AES_Warenposition
                        '                If WP.SequenceNumber IsNot Nothing Then AES_WP.aesWP_PositionsNummer = WP.SequenceNumber
                        '                If WP.GoodsDescription IsNot Nothing Then AES_WP.aesWP_Warenbezeichnung = WP.GoodsDescription
                        '                If WP.CommercialReferenceNumber IsNot Nothing Then AES_WP.aesWP_KennungSendung = WP.CommercialReferenceNumber
                        '                If WP.RegistrationNumber IsNot Nothing Then AES_WP.aesWP_RegisternummerFremdsystem = WP.RegistrationNumber
                        '                If WP.Annotation IsNot Nothing Then AES_WP.aesWP_Vermerk = WP.Annotation
                        '                AES_WP.aesWP_UrsprungsbundeslandCode = WP.OriginFederalState
                        '                AES_WP.aesWP_Eigenmasse = WP.NetMass
                        '                AES_WP.aesWP_Rohmasse = WP.GrossMass
                        '                If WP.DangerousGoodsCode IsNot Nothing Then AES_WP.aesWP_Gefahrgutnummer = WP.DangerousGoodsCode
                        '                If WP.TransportChargesPaymentMethod IsNot Nothing Then AES_WP.aesWP_ZahlungsweiseBefoerderungskosten = WP.TransportChargesPaymentMethod
                        '                If WP.CommodityCode IsNot Nothing Then
                        '                    If WP.CommodityCode.CombinedNomenclatureCode IsNot Nothing Then AES_WP.aesWP_WarennummerKN8 = WP.CommodityCode.CombinedNomenclatureCode
                        '                    If WP.CommodityCode.TaricCode IsNot Nothing Then AES_WP.aesWP_WarennummerTARIC = WP.CommodityCode.TaricCode
                        '                    If WP.CommodityCode.TaricFirstAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerZusatz1 = WP.CommodityCode.TaricFirstAdditionalCode
                        '                    If WP.CommodityCode.TaricSecondAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerZusatz2 = WP.CommodityCode.TaricSecondAdditionalCode
                        '                    If WP.CommodityCode.NationalAdditionalCode IsNot Nothing Then AES_WP.aesWP_WarennummerNational = WP.CommodityCode.NationalAdditionalCode
                        '                End If
                        '                If WP.Procedure IsNot Nothing Then
                        '                    If WP.Procedure.RequestedProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenAngemeldetCode = WP.Procedure.RequestedProcedure
                        '                    If WP.Procedure.PreviousProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenVorangegangenCode = WP.Procedure.PreviousProcedure
                        '                    If WP.Procedure.AdditionalProcedure IsNot Nothing Then AES_WP.aesWP_VerfahrenNationalCode = WP.Procedure.AdditionalProcedure
                        '                    AES_WP.aesWP_AusfuhrerstattungVerfahrensCode = WP.Procedure.ExportRefundProcedure
                        '                End If
                        '                If WP.ForeignTradeStatistics IsNot Nothing Then
                        '                    AES_WP.aesWP_Menge = WP.ForeignTradeStatistics.SpecialUnitQuantity
                        '                    If WP.ForeignTradeStatistics.StatisticalValue IsNot Nothing Then AES_WP.aesWP_Wert = WP.ForeignTradeStatistics.StatisticalValue
                        '                End If


                        '                'Empfaenger
                        '                If WP.Consignee IsNot Nothing Then
                        '                    '  AES_WP.anmeldert = WP.Consignee.Class
                        '                    If WP.Consignee.Identification IsNot Nothing Then
                        '                        If WP.Consignee.Identification.ReferenceNumber IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerEORI = WP.Consignee.Identification.ReferenceNumber
                        '                        If WP.Consignee.Identification.SubsidiaryNumber IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerNLNR = WP.Consignee.Identification.SubsidiaryNumber
                        '                    End If
                        '                    If WP.Consignee.Name IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerName = WP.Consignee.Name
                        '                    If WP.Consignee.Address IsNot Nothing Then
                        '                        If WP.Consignee.Address.Line IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerStrasse = WP.Consignee.Address.Line
                        '                        If WP.Consignee.Address.City IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerOrt = WP.Consignee.Address.City
                        '                        If WP.Consignee.Address.Postcode IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerPLZ = WP.Consignee.Address.Postcode
                        '                        If WP.Consignee.Address.Country IsNot Nothing Then AES_WP.aesWP_EmpfaengerTeilnehmerLandCode = WP.Consignee.Address.Country
                        '                    End If
                        '                End If

                        '                If WP.Container IsNot Nothing Then
                        '                    If WP.Container.Count > 0 Then AES_WP.aesWP_Containernummer1 = WP.Container(0).IdentificationNumber
                        '                    If WP.Container.Count > 1 Then AES_WP.aesWP_Containernummer2 = WP.Container(1).IdentificationNumber
                        '                    If WP.Container.Count > 2 Then AES_WP.aesWP_Containernummer3 = WP.Container(2).IdentificationNumber
                        '                    If WP.Container.Count > 3 Then AES_WP.aesWP_Containernummer4 = WP.Container(3).IdentificationNumber
                        '                End If

                        '                'PACKSTÜCKE
                        '                AES_WP.aesWP_PACKSTUECKE.Clear()
                        '                If WP.Package IsNot Nothing Then
                        '                    For Each PKST In WP.Package
                        '                        Dim AES_PKST = New DAKOSY_Worker.cDakosy_AES_WarenpositionPackstuecke
                        '                        If PKST.Quantity IsNot Nothing Then AES_PKST.aesWpPk_PackstueckeAnzahl = PKST.Quantity
                        '                        '  If PKST.SequenceNumber IsNot Nothing Then AES_PKST.nu = PKST.SequenceNumber
                        '                        If PKST.Kind IsNot Nothing Then AES_PKST.aesWpPk_Verpackungsart = PKST.Kind
                        '                        If PKST.MarksNumbers IsNot Nothing Then AES_PKST.aesWpPk_Kennzeichnung = PKST.MarksNumbers
                        '                        AES_WP.aesWP_PACKSTUECKE.Add(AES_PKST)
                        '                    Next
                        '                End If


                        '                'UNTERLAGEN
                        '                AES_WP.aesWP_UNTERLAGEN.Clear()
                        '                If WP.Document IsNot Nothing Then
                        '                    For Each UNT In WP.Document
                        '                        Dim AES_UNT = New DAKOSY_Worker.cDakosy_AES_WarenpositionUnterlagen
                        '                        If UNT.Qualifier IsNot Nothing Then AES_UNT.aesWpUl_QualifierCode = UNT.Qualifier
                        '                        If UNT.Type IsNot Nothing Then AES_UNT.aesWpUl_Typ = UNT.Type
                        '                        If UNT.ReferenceNumber IsNot Nothing Then AES_UNT.aesWpUl_ReferenzID = UNT.ReferenceNumber
                        '                        If UNT.Complement IsNot Nothing Then AES_UNT.aesWpUl_Zusatz = UNT.Complement
                        '                        If UNT.Detail IsNot Nothing Then AES_UNT.aesWpUl_Detail = UNT.Detail
                        '                        AES_UNT.aesWpUl_DatumAusstellung = cEDI.isValidDateElseNothing(UNT.IssuingDate)
                        '                        AES_UNT.aesWpUl_DatumEndeGueltigkeit = cEDI.isValidDateElseNothing(UNT.ExpiryDate)
                        '                        If UNT.WriteOffValue IsNot Nothing Then AES_UNT.aesWpUl_Wert = UNT.WriteOffValue
                        '                        AES_UNT.aesWpUl_Masseinheit = UNT.MeasurementUnit
                        '                        AES_UNT.aesWpUl_Abschreibungsmenge = UNT.WriteOffQuantity
                        '                        AES_WP.aesWP_UNTERLAGEN.Add(AES_UNT)
                        '                    Next
                        '                End If
                        '                AES.aes_WARENPOS.Add(AES_WP)
                        '            Next

                        '  End If
                        ' End If

                        ' End If
                        AES.aes_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                        AES.aes_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                        If AES.SAVE_ALL() Then
                            DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                        End If

                    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

                    addDGVEinarbeitung("AES: AnmeldungAusfuhr", readAES_DEXPDF)

                End Using

            End If

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, Path.GetTempFileName & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readAES_DEXPDF = ""
        End Try
    End Function

    Function readAES_DEXPSD(doc As XmlDocument) As String
        Try
            readAES_DEXPSD = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPSD>") Then
                Dim xmlDEXPSD = XmlString.Substring(XmlString.IndexOf("<DEXPSD>"), XmlString.IndexOf("</DEXPSD>") + 9 - XmlString.IndexOf("<DEXPSD>"))
                '  MsgBox(xmlDEXPSD)
                Dim p = Path.GetTempFileName

                Dim messageID = ""
                Dim messageTstmp As Date = Now

                If XmlString.Contains("<MetaData>") Then
                    Dim MetaData = XmlString.Substring(XmlString.IndexOf("<MetaData>"), XmlString.IndexOf("</MetaData>") + 12 - XmlString.IndexOf("<MetaData>"))

                    If MetaData.Contains("<MessageId>") Then
                        messageID = MetaData.Substring(MetaData.IndexOf("<MessageId>") + 11, MetaData.IndexOf("</MessageId>") - MetaData.IndexOf("<MessageId>") - 11)
                    End If
                    If MetaData.Contains("<DateTime>") Then
                        Dim d = MetaData.Substring(MetaData.IndexOf("<DateTime>") + 10, 29)
                        If IsDate(d) Then
                            messageTstmp = d
                        End If
                        'messageTstmp = MetaData.Substring(MetaData.IndexOf("<MessageId>"), MetaData.IndexOf("</DateTime>") + 11 - MetaData.IndexOf("</DateTime>"))
                    End If
                End If
                Using outputFile As New StreamWriter(p) ', False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDEXPSD)
                    outputFile.Close()

                    Dim MRN = ""
                    Dim Reason = ""
                    Dim STATUS_Code = ""

                    Dim DEXPSD As DAKOSY_Worker.DEXPSD.DEXPSD = DAKOSY_Worker.DEXPSD.DEXPSD.LoadFromFile(p)
                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPSD IsNot Nothing And DEXPSD.Header IsNot Nothing And DEXPSD.Header.LocalReferenceNumber IsNot Nothing Then
                        readAES_DEXPSD = DEXPSD.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If



                    If DEXPSD IsNot Nothing Then

                        'Kopfdaten
                        If DEXPSD.Header IsNot Nothing Then
                            If DEXPSD.Header.MovementReferenceNumber IsNot Nothing Then
                                MRN = DEXPSD.Header.MovementReferenceNumber
                            End If

                            '  If DEXPSD.Header.ExportStatus IsNot Nothing Then
                            'Stat

                            Select Case DEXPSD.Header.ExportStatus
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item10 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_10 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item11 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_11 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item12 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_12 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item13 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_13
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item15 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_15
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item16 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_16
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item17 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_17 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item18 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_18 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item30 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_30
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item31 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_31
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item32 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_32 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item33 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_33 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item35 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_35 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item36 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_36 '
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item37 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_37
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item38 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_38
                                Case DAKOSY_Worker.DEXPSD.DEXPSDHeaderExportStatus.Item39 : STATUS_Code = DAKOSY_Worker.cDY_Statusliste.S_39
                            End Select

                            ' 10:       Vorankündigung entgegengenommen
                            ' 11    	Anmeldung entgegengenommen, Antrag nach §12(4) AWV abgelehnt
                            ' 12:       Anmeldung entgegengenommen
                            ' 13    	Anmeldung nicht angenommen
                            ' 15    	Anmeldung nicht überlassen
                            ' 16    	Anmeldung angenommen, ergänzende Anmeldung wird erwartet
                            ' 17    	Anmeldung angenommen, ergänzende oder vollständige Anmeldung liegt vor
                            ' 18:       Vorankündigung abgewiesen
                            ' 30    	Vorgang überlassen, ergänzende Anmeldung wird erwartet
                            ' 31    	Vorgang überlassen, ergänzende oder vollständige Anmeldung liegt vor
                            ' 32    	Ausgang ganz oder teilweise bestätigt, ergänzende Anmeldung wird erwartet
                            ' 33    	Ausgang ganz oder teilweise bestätigt, ergänzende oder vollständige Anmeldung liegt vor
                            ' 35:       Vorgang erledigt
                            ' 36:       Ausgang untersagt
                            ' 37    	Vorgang geschlossen - keine weitere Bearbeitung vorgesehen
                            ' 38:       Vorgang ungültig / storniert
                            ' 39    	Vorgang unter Klärung


                            If DEXPSD.Header.Reason IsNot Nothing Then
                                Reason = DEXPSD.Header.Reason
                            End If


                        End If

                    End If

                    If readAES_DEXPSD <> "" And MRN <> "" Then 'BEZUGSNR vorhanden

                        Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(messageID, messageTstmp)
                        STATUS.dySt_BezugsNr = readAES_DEXPSD
                        STATUS.dySt_artMitteilung = "STA"
                        STATUS.dySt_dyArt = "AES"

                        STATUS.dySt_status = STATUS_Code
                        STATUS.dySt_ergCode = "TSTMP"
                        STATUS.dySt_ergMitteilung = Reason
                        ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                        'EINTRAG IN tblDakosy_Zollanmeldungen
                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, messageID, messageTstmp, "AES")
                        Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, messageID, messageTstmp, , MRN)


                        '      SaveNCTS_FirmaNL(NCTS_TMP, division)


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

                        addDGVEinarbeitung("AES: Statusmeldung", STATUS.dySt_BezugsNr)

                    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


                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)
            readAES_DEXPSD = ""
        End Try
    End Function

    Function readAES_DEXPRD(doc As XmlDocument) As String
        Try
            readAES_DEXPRD = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPRD>") Then
                Dim xmlDEXPRD = XmlString.Substring(XmlString.IndexOf("<DEXPRD>"), XmlString.IndexOf("</DEXPRD>") + 9 - XmlString.IndexOf("<DEXPRD>"))
                '  MsgBox(xmlDEXPRD)
                Dim p = Path.GetTempFileName

                Dim messageID = ""
                Dim messageTstmp As Date = Now

                If XmlString.Contains("<MetaData>") Then
                    Dim MetaData = XmlString.Substring(XmlString.IndexOf("<MetaData>"), XmlString.IndexOf("</MetaData>") + 12 - XmlString.IndexOf("<MetaData>"))

                    If MetaData.Contains("<MessageId>") Then
                        messageID = MetaData.Substring(MetaData.IndexOf("<MessageId>") + 11, MetaData.IndexOf("</MessageId>") - MetaData.IndexOf("<MessageId>") - 11)
                    End If
                    If MetaData.Contains("<DateTime>") Then
                        Dim d = MetaData.Substring(MetaData.IndexOf("<DateTime>") + 10, 29)
                        If IsDate(d) Then
                            messageTstmp = d
                        End If
                        'messageTstmp = MetaData.Substring(MetaData.IndexOf("<MessageId>"), MetaData.IndexOf("</DateTime>") + 11 - MetaData.IndexOf("</DateTime>"))
                    End If
                End If
                Using outputFile As New StreamWriter(p) ', False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDEXPRD)
                    outputFile.Close()

                    Dim MRN = ""
                    Dim Reason = ""
                    Dim STATUS_Code = ""

                    Dim DEXPRD As DAKOSY_Worker.DEXPRD.DEXPRD = DAKOSY_Worker.DEXPRD.DEXPRD.LoadFromFile(p)
                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPRD IsNot Nothing And DEXPRD.Header IsNot Nothing And DEXPRD.Header.LocalReferenceNumber IsNot Nothing Then
                        readAES_DEXPRD = DEXPRD.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If



                    If DEXPRD IsNot Nothing Then

                        'Kopfdaten
                        If DEXPRD.Header IsNot Nothing Then
                            If DEXPRD.Header.MovementReferenceNumber IsNot Nothing Then
                                MRN = DEXPRD.Header.MovementReferenceNumber
                            End If

                            '  If DEXPRD.Header.ExportStatus IsNot Nothing Then
                            'Stat




                        End If

                    End If

                    If readAES_DEXPRD <> "" And MRN <> "" Then 'BEZUGSNR vorhanden

                        Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(messageID, messageTstmp)
                        STATUS.dySt_BezugsNr = readAES_DEXPRD
                        STATUS.dySt_artMitteilung = "UEA"
                        STATUS.dySt_dyArt = "AES"

                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                        STATUS.dySt_ergCode = "TSTMP"
                        ' STATUS.dySt_ergMitteilung = Reason
                        ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                        'EINTRAG IN tblDakosy_Zollanmeldungen
                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, messageID, messageTstmp, "AES")
                        ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        '  If If(AES_TMP.aes_firma, "") = "IMEX" Then AES_TMP.insertIntoSpedBuch(DY_TMP)
                        AES_TMP.insertIntoSpedBuch(DY_TMP)

                        'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG


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

                        addDGVEinarbeitung("AES: Überlassung", STATUS.dySt_BezugsNr)

                    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


                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)
            readAES_DEXPRD = ""
        End Try
    End Function




    Function readAES_UeberlassungAusfuhr_006(d) As String
        Try

            Dim AES As DAKOSY_Worker.UeberlassungAusfuhr_006.UeberlassungAusfuhrERTyp = DAKOSY_Worker.UeberlassungAusfuhr_006.UeberlassungAusfuhrERTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readAES_UeberlassungAusfuhr_006 = ""
            If AES IsNot Nothing Then

                If AES.Transaktion IsNot Nothing Then
                    If AES.Transaktion.IODivision3 IsNot Nothing Then
                        division = AES.Transaktion.IODivision3
                    ElseIf AES.Transaktion.IODivision1 IsNot Nothing Then
                        division = AES.Transaktion.IODivision1
                    End If
                End If

                If AES.EinzelUeberlassung IsNot Nothing AndAlso AES.EinzelUeberlassung.Count > 0 Then
                    If AES.EinzelUeberlassung(0).ObjektIdentifizierung IsNot Nothing Then
                        If AES.EinzelUeberlassung(0).ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readAES_UeberlassungAusfuhr_006 = AES.EinzelUeberlassung(0).ObjektIdentifizierung.ObjektName
                        End If
                        zp = AES.EinzelUeberlassung(0).ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If AES.EinzelUeberlassung(0).KopfDaten IsNot Nothing Then
                        ' If AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If AES.EinzelUeberlassung(0).KopfDaten.MovementReferenceNumber IsNot Nothing Then
                            regNR = AES.EinzelUeberlassung(0).KopfDaten.MovementReferenceNumber
                        End If
                    End If
                End If
            End If
            ' AES.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readAES_UeberlassungAusfuhr_006 <> "" And regNR <> "" Then 'BEZUGSNR vorhanden

                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit))
                STATUS.dySt_BezugsNr = readAES_UeberlassungAusfuhr_006
                STATUS.dySt_artMitteilung = "UEA"
                STATUS.dySt_dyArt = "AES"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                ' STATUS.dySt_ergMitteilung = Reason
                ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), "AES")
                ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , regNR)

                Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), , regNR)

                'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG
                AES_TMP.insertIntoSpedBuch(DY_TMP)

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

                addDGVEinarbeitung("AES: Überlassung", 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)
            readAES_UeberlassungAusfuhr_006 = ""
        End Try
    End Function


    Function readAES_UeberlassungAusfuhr_007(d) As String
        Try

            Dim AES As DAKOSY_Worker.UeberlassungAusfuhr_007.UeberlassungAusfuhrERTyp = DAKOSY_Worker.UeberlassungAusfuhr_007.UeberlassungAusfuhrERTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readAES_UeberlassungAusfuhr_007 = ""
            If AES IsNot Nothing Then

                If AES.Transaktion IsNot Nothing Then
                    If AES.Transaktion.IODivision3 IsNot Nothing Then
                        division = AES.Transaktion.IODivision3
                    ElseIf AES.Transaktion.IODivision1 IsNot Nothing Then
                        division = AES.Transaktion.IODivision1
                    End If
                End If

                If AES.EinzelUeberlassung IsNot Nothing AndAlso AES.EinzelUeberlassung.Count > 0 Then
                    If AES.EinzelUeberlassung(0).ObjektIdentifizierung IsNot Nothing Then
                        If AES.EinzelUeberlassung(0).ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readAES_UeberlassungAusfuhr_007 = AES.EinzelUeberlassung(0).ObjektIdentifizierung.ObjektName
                        End If
                        zp = AES.EinzelUeberlassung(0).ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If AES.EinzelUeberlassung(0).KopfDaten IsNot Nothing Then
                        ' If AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If AES.EinzelUeberlassung(0).KopfDaten.MovementReferenceNumber IsNot Nothing Then
                            regNR = AES.EinzelUeberlassung(0).KopfDaten.MovementReferenceNumber
                        End If
                    End If
                End If
            End If
            ' AES.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readAES_UeberlassungAusfuhr_007 <> "" And regNR <> "" Then 'BEZUGSNR vorhanden

                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit))
                STATUS.dySt_BezugsNr = readAES_UeberlassungAusfuhr_007
                STATUS.dySt_artMitteilung = "UEA"
                STATUS.dySt_dyArt = "AES"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                ' STATUS.dySt_ergMitteilung = Reason
                ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), "AES")
                ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , regNR)

                Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), , regNR)

                'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG
                AES_TMP.insertIntoSpedBuch(DY_TMP)

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

                addDGVEinarbeitung("AES: Überlassung", 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)
            readAES_UeberlassungAusfuhr_007 = ""
        End Try
    End Function

    Function readAES_BestaetigungAusfuhr_006(d) As String
        Try

            Dim AES As DAKOSY_Worker.BestaetigungAusfuhr_006.BestaetigungAusfuhrENTyp = DAKOSY_Worker.BestaetigungAusfuhr_006.BestaetigungAusfuhrENTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readAES_BestaetigungAusfuhr_006 = ""
            If AES IsNot Nothing Then

                If AES.Transaktion IsNot Nothing Then
                    If AES.Transaktion.IODivision3 IsNot Nothing Then
                        division = AES.Transaktion.IODivision3
                    ElseIf AES.Transaktion.IODivision1 IsNot Nothing Then
                        division = AES.Transaktion.IODivision1
                    End If
                End If

                If AES.EinzelBestaetigung IsNot Nothing AndAlso AES.EinzelBestaetigung.Count > 0 Then
                    If AES.EinzelBestaetigung(0).ObjektIdentifizierung IsNot Nothing Then
                        If AES.EinzelBestaetigung(0).ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readAES_BestaetigungAusfuhr_006 = AES.EinzelBestaetigung(0).ObjektIdentifizierung.ObjektName
                        End If
                        zp = AES.EinzelBestaetigung(0).ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If AES.EinzelBestaetigung(0).KopfDaten IsNot Nothing Then
                        ' If AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If AES.EinzelBestaetigung(0).KopfDaten.MovementReferenceNumber IsNot Nothing Then
                            regNR = AES.EinzelBestaetigung(0).KopfDaten.MovementReferenceNumber
                        End If
                    End If
                End If
            End If
            ' AES.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readAES_BestaetigungAusfuhr_006 <> "" And regNR <> "" Then 'BEZUGSNR vorhanden

                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit))
                STATUS.dySt_BezugsNr = readAES_BestaetigungAusfuhr_006
                STATUS.dySt_artMitteilung = "BST"
                STATUS.dySt_dyArt = "AES"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                ' STATUS.dySt_ergMitteilung = Reason
                ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), "AES")
                ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , regNR)

                Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), , regNR)

                'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG
                AES_TMP.insertIntoSpedBuch(DY_TMP)

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

                addDGVEinarbeitung("AES: BestätigunAusfuhr", 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)
            readAES_BestaetigungAusfuhr_006 = ""
        End Try
    End Function
    Function readAES_BestaetigungAusfuhr_007(d) As String
        Try

            Dim AES As DAKOSY_Worker.BestaetigungAusfuhr_007.BestaetigungAusfuhrENTyp = DAKOSY_Worker.BestaetigungAusfuhr_007.BestaetigungAusfuhrENTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readAES_BestaetigungAusfuhr_007 = ""
            If AES IsNot Nothing Then

                If AES.Transaktion IsNot Nothing Then
                    If AES.Transaktion.IODivision3 IsNot Nothing Then
                        division = AES.Transaktion.IODivision3
                    ElseIf AES.Transaktion.IODivision1 IsNot Nothing Then
                        division = AES.Transaktion.IODivision1
                    End If
                End If

                If AES.EinzelBestaetigung IsNot Nothing AndAlso AES.EinzelBestaetigung.Count > 0 Then
                    If AES.EinzelBestaetigung(0).ObjektIdentifizierung IsNot Nothing Then
                        If AES.EinzelBestaetigung(0).ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readAES_BestaetigungAusfuhr_007 = AES.EinzelBestaetigung(0).ObjektIdentifizierung.ObjektName
                        End If
                        zp = AES.EinzelBestaetigung(0).ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If AES.EinzelBestaetigung(0).KopfDaten IsNot Nothing Then
                        ' If AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = AES.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If AES.EinzelBestaetigung(0).KopfDaten.MovementReferenceNumber IsNot Nothing Then
                            regNR = AES.EinzelBestaetigung(0).KopfDaten.MovementReferenceNumber
                        End If
                    End If
                End If
            End If
            ' AES.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readAES_BestaetigungAusfuhr_007 <> "" And regNR <> "" Then 'BEZUGSNR vorhanden

                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit))
                STATUS.dySt_BezugsNr = readAES_BestaetigungAusfuhr_007
                STATUS.dySt_artMitteilung = "BST"
                STATUS.dySt_dyArt = "AES"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergCode = "TSTMP"
                ' STATUS.dySt_ergMitteilung = Reason
                ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), "AES")
                ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , regNR)

                Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, AES.Transaktion.IOReferenz, If(zp, AES.Transaktion.IODatumZeit), , regNR)

                'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG
                AES_TMP.insertIntoSpedBuch(DY_TMP)

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

                addDGVEinarbeitung("AES: BestätigunAusfuhr", 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)
            readAES_BestaetigungAusfuhr_007 = ""
        End Try
    End Function
    Function readAES_DEXPRE(doc As XmlDocument) As String
        Try
            readAES_DEXPRE = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPRE>") Then
                Dim xmlDEXPRE = XmlString.Substring(XmlString.IndexOf("<DEXPRE>"), XmlString.IndexOf("</DEXPRE>") + 9 - XmlString.IndexOf("<DEXPRE>"))
                '  MsgBox(xmlDEXPRE)
                Dim p = Path.GetTempFileName

                Dim messageID = ""
                Dim messageTstmp As Date = Now

                If XmlString.Contains("<MetaData>") Then
                    Dim MetaData = XmlString.Substring(XmlString.IndexOf("<MetaData>"), XmlString.IndexOf("</MetaData>") + 12 - XmlString.IndexOf("<MetaData>"))

                    If MetaData.Contains("<MessageId>") Then
                        messageID = MetaData.Substring(MetaData.IndexOf("<MessageId>") + 11, MetaData.IndexOf("</MessageId>") - MetaData.IndexOf("<MessageId>") - 11)
                    End If
                    If MetaData.Contains("<DateTime>") Then
                        Dim d = MetaData.Substring(MetaData.IndexOf("<DateTime>") + 10, 29)
                        If IsDate(d) Then
                            messageTstmp = d
                        End If
                        'messageTstmp = MetaData.Substring(MetaData.IndexOf("<MessageId>"), MetaData.IndexOf("</DateTime>") + 11 - MetaData.IndexOf("</DateTime>"))
                    End If
                End If
                Using outputFile As New StreamWriter(p) ', False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDEXPRE)
                    outputFile.Close()

                    Dim MRN = ""
                    Dim Reason = ""
                    Dim STATUS_Code = ""

                    Dim DEXPRE As DAKOSY_Worker.DEXPRE.DEXPRE = DAKOSY_Worker.DEXPRE.DEXPRE.LoadFromFile(p)
                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPRE IsNot Nothing And DEXPRE.Header IsNot Nothing And DEXPRE.Header.LocalReferenceNumber IsNot Nothing Then
                        readAES_DEXPRE = DEXPRE.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If



                    If DEXPRE IsNot Nothing Then

                        'Kopfdaten
                        If DEXPRE.Header IsNot Nothing Then
                            If DEXPRE.Header.MovementReferenceNumber IsNot Nothing Then
                                MRN = DEXPRE.Header.MovementReferenceNumber
                            End If

                            '  If DEXPRE.Header.ExportStatus IsNot Nothing Then
                            'Stat




                        End If

                    End If

                    If readAES_DEXPRE <> "" And MRN <> "" Then 'BEZUGSNR vorhanden

                        Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(messageID, messageTstmp)
                        STATUS.dySt_BezugsNr = readAES_DEXPRE
                        STATUS.dySt_artMitteilung = "UEA"
                        STATUS.dySt_dyArt = "AES"

                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                        STATUS.dySt_ergCode = "TSTMP"
                        ' STATUS.dySt_ergMitteilung = Reason
                        ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                        'EINTRAG IN tblDakosy_Zollanmeldungen
                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, messageID, messageTstmp, "AES")
                        ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG
                        AES_TMP.insertIntoSpedBuch(DY_TMP)

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

                        addDGVEinarbeitung("AES: Überlassung", STATUS.dySt_BezugsNr)

                    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


                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)
            readAES_DEXPRE = ""
        End Try
    End Function
    Function readAES_DEXPCC(doc As XmlDocument) As String
        Try
            readAES_DEXPCC = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEXPCC>") Then
                Dim xmlDEXPCC = XmlString.Substring(XmlString.IndexOf("<DEXPCC>"), XmlString.IndexOf("</DEXPCC>") + 9 - XmlString.IndexOf("<DEXPCC>"))
                '  MsgBox(xmlDEXPCC)
                Dim p = Path.GetTempFileName

                Dim messageID = ""
                Dim messageTstmp As Date = Now

                If XmlString.Contains("<MetaData>") Then
                    Dim MetaData = XmlString.Substring(XmlString.IndexOf("<MetaData>"), XmlString.IndexOf("</MetaData>") + 12 - XmlString.IndexOf("<MetaData>"))

                    If MetaData.Contains("<MessageId>") Then
                        messageID = MetaData.Substring(MetaData.IndexOf("<MessageId>") + 11, MetaData.IndexOf("</MessageId>") - MetaData.IndexOf("<MessageId>") - 11)
                    End If
                    If MetaData.Contains("<DateTime>") Then
                        Dim d = MetaData.Substring(MetaData.IndexOf("<DateTime>") + 10, 29)
                        If IsDate(d) Then
                            messageTstmp = d
                        End If
                        'messageTstmp = MetaData.Substring(MetaData.IndexOf("<MessageId>"), MetaData.IndexOf("</DateTime>") + 11 - MetaData.IndexOf("</DateTime>"))
                    End If
                End If
                Using outputFile As New StreamWriter(p) ', False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDEXPCC)
                    outputFile.Close()

                    Dim MRN = ""
                    Dim Reason = ""
                    Dim STATUS_Code = ""

                    Dim DEXPCC As DAKOSY_Worker.DEXPCC.DEXPCC = DAKOSY_Worker.DEXPCC.DEXPCC.LoadFromFile(p)
                    '  Dim AES As New DAKOSY_Worker.cDakosyAES



                    If DEXPCC IsNot Nothing And DEXPCC.Header IsNot Nothing And DEXPCC.Header.MovementReferenceNumber IsNot Nothing Then
                        MRN = DEXPCC.Header.MovementReferenceNumber
                        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                        readAES_DEXPCC = SQL.getValueTxtBySql("SELECT isnull(aes_ObjectName,'')  FROM [tblDakosy_AES] WHERE [aes_MRN] ='" & MRN & "' ", "FMZOLL")
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If



                    If DEXPCC IsNot Nothing Then

                        'Kopfdaten
                        If DEXPCC.Header IsNot Nothing Then
                            If DEXPCC.Header.MovementReferenceNumber IsNot Nothing Then
                                MRN = DEXPCC.Header.MovementReferenceNumber
                            End If

                            '  If DEXPCC.Header.ExportStatus IsNot Nothing Then
                            'Stat




                        End If

                    End If

                    If readAES_DEXPCC <> "" And MRN <> "" Then 'BEZUGSNR vorhanden

                        Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(messageID, messageTstmp)
                        STATUS.dySt_BezugsNr = readAES_DEXPCC
                        STATUS.dySt_artMitteilung = "STORNO"
                        STATUS.dySt_dyArt = "AES"

                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_80
                        STATUS.dySt_ergCode = "TSTMP"
                        ' STATUS.dySt_ergMitteilung = Reason
                        ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                        'EINTRAG IN tblDakosy_Zollanmeldungen
                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, messageID, messageTstmp, "AES")
                        ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG


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


                    End If

                    addDGVEinarbeitung("AES: Storno", readAES_DEXPCC)

                    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


                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)
            readAES_DEXPCC = ""
        End Try
    End Function


    Function readAES_DEERRE(doc As XmlDocument) As String
        Try
            readAES_DEERRE = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<DEERRE>") Then
                Dim xmlDEERRE = XmlString.Substring(XmlString.IndexOf("<DEERRE>"), XmlString.IndexOf("</DEERRE>") + 9 - XmlString.IndexOf("<DEERRE>"))
                '  MsgBox(xmlDEERRE)
                Dim p = Path.GetTempFileName

                Dim messageID = ""
                Dim messageTstmp As Date = Now

                If XmlString.Contains("<MetaData>") Then
                    Dim MetaData = XmlString.Substring(XmlString.IndexOf("<MetaData>"), XmlString.IndexOf("</MetaData>") + 12 - XmlString.IndexOf("<MetaData>"))

                    If MetaData.Contains("<MessageId>") Then
                        messageID = MetaData.Substring(MetaData.IndexOf("<MessageId>") + 11, MetaData.IndexOf("</MessageId>") - MetaData.IndexOf("<MessageId>") - 11)
                    End If
                    If MetaData.Contains("<DateTime>") Then
                        Dim d = MetaData.Substring(MetaData.IndexOf("<DateTime>") + 10, 29)
                        If IsDate(d) Then
                            messageTstmp = d
                        End If
                        'messageTstmp = MetaData.Substring(MetaData.IndexOf("<MessageId>"), MetaData.IndexOf("</DateTime>") + 11 - MetaData.IndexOf("</DateTime>"))
                    End If
                End If
                Using outputFile As New StreamWriter(p) ', False, System.Text.Encoding.Default)
                    outputFile.Write(xmlDEERRE)
                    outputFile.Close()

                    Dim MRN = ""
                    Dim Reason = ""
                    Dim STATUS_Code = ""

                    Dim DEERRE As DAKOSY_Worker.DEERRE.DEERRE = DAKOSY_Worker.DEERRE.DEERRE.LoadFromFile(p)
                    '  Dim AES As New DAKOSY_Worker.cDakosyAES




                    If DEERRE IsNot Nothing Then

                        'Kopfdaten
                        If DEERRE.Header IsNot Nothing Then


                            If DEERRE.Header.LocalReferenceNumber IsNot Nothing Then
                                readAES_DEERRE = DEERRE.Header.LocalReferenceNumber
                            ElseIf DEERRE.Header.MovementReferenceNumber IsNot Nothing Then
                                MRN = DEERRE.Header.MovementReferenceNumber
                                Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                                readAES_DEERRE = SQL.getValueTxtBySql("SELECT isnull(aes_ObjectName,'')  FROM [tblDakosy_AES] WHERE [aes_MRN] ='" & MRN & "' ", "FMZOLL")
                            End If
                            If readAES_DEERRE = "" Then
                                addDGVEinarbeitung("AES: Fehler", "")
                                Return "" 'Keine Bezugsnummer
                            End If
                        End If

                    End If

                    If readAES_DEERRE <> "" And MRN <> "" Then 'BEZUGSNR vorhanden

                        Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(messageID, messageTstmp)
                        STATUS.dySt_BezugsNr = readAES_DEERRE
                        STATUS.dySt_artMitteilung = "ERR"
                        STATUS.dySt_dyArt = "AES"

                        STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_90
                        STATUS.dySt_ergCode = "TSTMP"
                        ' STATUS.dySt_ergMitteilung = Reason
                        ' If tstmp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = tstmp
                        'EINTRAG IN tblDakosy_Zollanmeldungen
                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, messageID, messageTstmp, "AES")
                        ' Dim NCTS_TMP As DAKOSY_Worker.cDakosyNCTSOut = saveDY_NCTS(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        Dim AES_TMP As DAKOSY_Worker.cDakosyAES = saveDY_AES(STATUS, DY_TMP, messageID, messageTstmp, , MRN)

                        'SaveAES_FirmaNL(AES_TMP, "") 'KEINE NIEDERLASSUNG


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

                        addDGVEinarbeitung("AES: Fehler", STATUS.dySt_BezugsNr)

                    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


                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)
            readAES_DEERRE = ""
        End Try
    End Function




    Function readVERAG_KD(d) As String
        Try
            readVERAG_KD = ""
            Dim NCTS As DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORT = DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORT.LoadFromFile(d)
            Dim ANR = ""
            Dim tstmp As Object = Nothing
            Dim grund As String = ""
            Dim sicherheit As String = ""


            For Each k In NCTS.KundenDaten
                readVERAG_KD = k.KundenNr
                '      MsgBox(k.Adresse.LandKz)
            Next
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            readVERAG_KD = ""
        End Try
    End Function



    Private Sub dgvEinarbeitung_SelectionChanged(sender As Object, e As EventArgs) Handles dgvEinarbeitung.SelectionChanged
        dgvEinarbeitung.ClearSelection()

    End Sub




    Function readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD(doc As XmlDocument) As String
        Try
            readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<FCFCDD>") Then
                Dim xmlFCFCDD = XmlString.Substring(XmlString.IndexOf("<FCFCDD>"), XmlString.IndexOf("</FCFCDD>") + 9 - XmlString.IndexOf("<FCFCDD>"))
                '  MsgBox(xmlFCFCDD)
                Dim p = Path.GetTempFileName

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



                    Dim FCFCDD As DAKOSY_Worker.FCFCDD.FCFCDD = DAKOSY_Worker.FCFCDD.FCFCDD.LoadFromFile(p)
                    '  Dim EZA As New DAKOSY_Worker.cDakosyEZA



                    If FCFCDD IsNot Nothing And FCFCDD.Header IsNot Nothing And FCFCDD.Header.LocalReferenceNumber IsNot Nothing Then
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD = FCFCDD.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If


                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD, "EZA")

                    Dim EZA As DAKOSY_Worker.cDakosyEZA = DAKOSY_Worker.cDakosyEZA.LOADByBezugsNr(readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If EZA Is Nothing Then EZA = New DAKOSY_Worker.cDakosyEZA
                    If DY_TMP IsNot Nothing Then EZA.eza_dyaAnmID = DY_TMP.dy_Id

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


                    If FCFCDD IsNot Nothing Then
                        EZA.eza_ObjectName = readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD

                        If FCFCDD.MetaData IsNot Nothing Then
                            If FCFCDD.MetaData.Preparation IsNot Nothing Then EZA.eza_Trans_DatumZeit = CDate(FCFCDD.MetaData.Preparation.Date).ToShortDateString
                        End If


                        If FCFCDD.Header IsNot Nothing Then

                            EZA.eza_VersendungsLandCode = FCFCDD.Header.DepartureCountry
                            EZA.eza_FinanzamtAnmelder = FCFCDD.Header.TaxOffice
                            EZA.eza_UstIdAnmelder = FCFCDD.Header.TaxNumber

                            EZA.eza_Warenort = FCFCDD.Header.GoodsLocation
                            EZA.eza_Ausstellungsort = FCFCDD.Header.DeclarationPlace


                            EZA.eza_ZollrechtlicherStatus = FCFCDD.Header.CustomsGoodsStatus
                            EZA.eza_Zahlungsart = FCFCDD.Header.PaymentMethod
                            EZA.eza_AnmelderistEmpfaenger = FCFCDD.Header.DeclarantIsConsigneeFlag
                            EZA.eza_VertretungsVerhaeltnisCode = FCFCDD.Header.RepresentativeRelationshipFlag
                            EZA.eza_Vorsteuerabzug = FCFCDD.Header.InputTaxDeductionFlag
                            EZA.eza_ZusatzangabenAnmeldung = FCFCDD.Header.AdditionalInformation

                            ' EZA.eza_VerfahrenBeantragtCode
                        End If

                    End If

                    If FCFCDD.Body IsNot Nothing Then
                        If FCFCDD.Body.ForeignTradeStatistics IsNot Nothing Then

                            EZA.eza_ArtGeschaeftCode = FCFCDD.Body.ForeignTradeStatistics.TransactionType
                            EZA.eza_Bestimmungsland = FCFCDD.Body.ForeignTradeStatistics.DestinationCountry
                            EZA.eza_Bestimmungsbundesland = FCFCDD.Body.ForeignTradeStatistics.DestinationFederalState

                            If FCFCDD.Body.ForeignTradeStatistics.EntryCustomsOffice IsNot Nothing Then
                                EZA.eza_Eingangszollstelle = FCFCDD.Body.ForeignTradeStatistics.EntryCustomsOffice.ReferenceNumber
                            End If

                            EZA.eza_Statistikstatus = FCFCDD.Body.ForeignTradeStatistics.GoodsStatus
                            EZA.eza_DV1Kz = FCFCDD.Body.CustomsValueFlag
                            EZA.eza_GesamtRohmasse = FCFCDD.Body.ForeignTradeStatistics.TotalGrossMassMeasure

                        End If

                        If FCFCDD.Body.PaymentTransaction IsNot Nothing Then
                            EZA.eza_Rechnungswaehrung = FCFCDD.Body.PaymentTransaction.CurrencyCode
                            EZA.eza_Rechnungspreis = FCFCDD.Body.PaymentTransaction.Amount

                        End If

                        If FCFCDD.Body.CustomsValue IsNot Nothing Then
                            If FCFCDD.Body.CustomsValue.RestrictionOrCondition IsNot Nothing Then EZA.eza_DV1EinschraenkungenKz = FCFCDD.Body.CustomsValue.RestrictionOrCondition.RestrictionFlag
                            EZA.eza_DV1FruehereEntscheidungen = FCFCDD.Body.CustomsValue.FormerDecisions

                            If FCFCDD.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1Verbundenheit = FCFCDD.Body.CustomsValue.Affiliation.Type
                            If FCFCDD.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1VerbungenheitEinzelheiten = FCFCDD.Body.CustomsValue.Affiliation.Description
                            If FCFCDD.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenUmstand = FCFCDD.Body.CustomsValue.LicenseFee.Description
                            If FCFCDD.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenKz = FCFCDD.Body.CustomsValue.LicenseFee.LicenseFeeFlag
                        End If

                        If FCFCDD.Body.Document IsNot Nothing AndAlso FCFCDD.Body.Document.Count > 0 Then
                            For Each docTMP In FCFCDD.Body.Document
                                Dim UNTERLAGE As New DAKOSY_Worker.cDakosy_EZA_Unterlagen
                                UNTERLAGE.ezaUl_Art = docTMP.Type
                                UNTERLAGE.ezaUl_Nummer = docTMP.ReferenceNumber
                                UNTERLAGE.ezaUl_Bereich = docTMP.Division
                                UNTERLAGE.ezaUl_DatumAusstellung = CDate(docTMP.IssuingDate).ToShortDateString

                                EZA.eza_UNTERLAGEN.Add(UNTERLAGE)
                            Next

                        End If

                        '  EZA.eza_DV1Verbundenheit = cEDI.getSimpleLine("GIS+904:::", lines, Nothing)???
                        '  EZA.eza_BewilligungsIDZLAVUV = cEDI.getSimpleLine("RFF+AEM:", lines) '?

                        'Vorpapier
                        If FCFCDD.PreviousAdministrativeReferences IsNot Nothing Then
                            EZA.eza_VorpapierArtCode = FCFCDD.PreviousAdministrativeReferences.Type
                            If FCFCDD.PreviousAdministrativeReferences.PreviousAdministrativeReference IsNot Nothing Then EZA.eza_VorpapierNr = FCFCDD.PreviousAdministrativeReferences.PreviousAdministrativeReference.ReferenceNumber
                        End If

                        'Beförderungsmittel Grenze
                        If FCFCDD.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDD.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDD.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDD.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDD.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDD.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDD.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDD.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDD.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDD.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDD.ArrivalTransportMeans IsNot Nothing Then
                            EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = FCFCDD.ArrivalTransportMeans.Identity
                        End If

                        'Ansprechpartenr
                        If FCFCDD.ContactPerson IsNot Nothing Then
                            EZA.eza_AnmeldenderBearbeiterName = FCFCDD.ContactPerson.Name
                            EZA.eza_AnmeldenderBearbeiterEMail = FCFCDD.ContactPerson.MailAddress
                            EZA.eza_AnmeldenderBearbeiterStellung = FCFCDD.ContactPerson.Position
                            EZA.eza_AnmeldenderBearbeiterTel = FCFCDD.ContactPerson.PhoneNumber
                            Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & EZA.eza_AnmeldenderBearbeiterName.ToString.Replace("'", "") & "'", "ADMIN")
                            If SB_Tmp <> "" Then
                                EZA.eza_Bearbeiter = SB_Tmp
                            ElseIf isAtez(EZA.eza_ObjectName) Then
                                EZA.eza_Bearbeiter = "VERIMEX"
                            Else
                                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & EZA.eza_AnmeldenderBearbeiterName & " 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



                        'Anmleder
                        If FCFCDD.Declarant IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "DT"
                            If FCFCDD.Declarant.Name IsNot Nothing Then
                                If FCFCDD.Declarant.Name.ToString.Length > 40 Then
                                    If FCFCDD.Declarant.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDD.Declarant.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDD.Declarant.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDD.Declarant.Name.ToString.Substring(80, FCFCDD.Declarant.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Declarant.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDD.Declarant.Name.ToString.Substring(40, FCFCDD.Declarant.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Declarant.Name
                                End If
                            End If
                            If FCFCDD.Declarant.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Declarant.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Declarant.Identification.SubsidiaryNumber
                            End If
                            If FCFCDD.Declarant.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDD.Declarant.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDD.Declarant.Address.City
                                ADR.ezaAd_PLZ = FCFCDD.Declarant.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDD.Declarant.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If



                        'Vertreter
                        If FCFCDD.Representative IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CB"
                            If FCFCDD.Representative.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Representative.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Representative.Identification.SubsidiaryNumber
                                EZA.eza_ADRESSEN.Add(ADR)
                            End If
                        End If


                        'Empfänger
                        If FCFCDD.Body IsNot Nothing AndAlso FCFCDD.Body.Consignee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CN"
                            If FCFCDD.Body.Consignee.Name IsNot Nothing Then
                                If FCFCDD.Body.Consignee.Name.ToString.Length > 40 Then
                                    If FCFCDD.Body.Consignee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDD.Body.Consignee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDD.Body.Consignee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDD.Body.Consignee.Name.ToString.Substring(80, FCFCDD.Body.Consignee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.Consignee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDD.Body.Consignee.Name.ToString.Substring(40, FCFCDD.Body.Consignee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.Consignee.Name
                                End If
                            End If
                            If FCFCDD.Body.Consignee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Body.Consignee.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Body.Consignee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDD.Body.Consignee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDD.Body.Consignee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDD.Body.Consignee.Address.City
                                ADR.ezaAd_PLZ = FCFCDD.Body.Consignee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDD.Body.Consignee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If





                        'Erwerber
                        If FCFCDD.Body IsNot Nothing AndAlso FCFCDD.Body.Acquirer IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "UC"
                            If FCFCDD.Body.Acquirer.Name IsNot Nothing Then
                                If FCFCDD.Body.Acquirer.Name.ToString.Length > 40 Then
                                    If FCFCDD.Body.Acquirer.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDD.Body.Acquirer.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDD.Body.Acquirer.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDD.Body.Acquirer.Name.ToString.Substring(80, FCFCDD.Body.Acquirer.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.Acquirer.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDD.Body.Acquirer.Name.ToString.Substring(40, FCFCDD.Body.Acquirer.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.Acquirer.Name
                                End If
                            End If
                            If FCFCDD.Body.Acquirer.TaxNumber IsNot Nothing Then
                                ADR.ezaAd_UStIDAnmelder = FCFCDD.Body.Acquirer.TaxNumber
                            End If

                            If FCFCDD.Body.Acquirer.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Body.Acquirer.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Body.Acquirer.Identification.SubsidiaryNumber
                            End If
                            If FCFCDD.Body.Acquirer.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDD.Body.Acquirer.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDD.Body.Acquirer.Address.City
                                ADR.ezaAd_PLZ = FCFCDD.Body.Acquirer.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDD.Body.Acquirer.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Versender/Ausführer
                        If FCFCDD.Body IsNot Nothing AndAlso FCFCDD.Body.Consignor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CZ"
                            If FCFCDD.Body.Consignor.Name IsNot Nothing Then
                                If FCFCDD.Body.Consignor.Name.ToString.Length > 40 Then
                                    If FCFCDD.Body.Consignor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDD.Body.Consignor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDD.Body.Consignor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDD.Body.Consignor.Name.ToString.Substring(80, FCFCDD.Body.Consignor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.Consignor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDD.Body.Consignor.Name.ToString.Substring(40, FCFCDD.Body.Consignor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.Consignor.Name
                                End If
                            End If
                            If FCFCDD.Body.Consignor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Body.Consignor.Identification.ReferenceNumber
                                '  ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Body.Consignor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDD.Body.Consignor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDD.Body.Consignor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDD.Body.Consignor.Address.City
                                ADR.ezaAd_PLZ = FCFCDD.Body.Consignor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDD.Body.Consignor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Verkäufer
                        If FCFCDD.Body IsNot Nothing AndAlso FCFCDD.Body.CustomsValue IsNot Nothing AndAlso FCFCDD.Body.CustomsValue.Vendor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "SE"
                            If FCFCDD.Body.CustomsValue.Vendor.Name IsNot Nothing Then
                                If FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Length > 40 Then
                                    If FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Substring(80, FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Substring(40, FCFCDD.Body.CustomsValue.Vendor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.CustomsValue.Vendor.Name
                                End If
                            End If
                            If FCFCDD.Body.CustomsValue.Vendor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Body.CustomsValue.Vendor.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Body.CustomsValue.Vendor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDD.Body.CustomsValue.Vendor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDD.Body.CustomsValue.Vendor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDD.Body.CustomsValue.Vendor.Address.City
                                ADR.ezaAd_PLZ = FCFCDD.Body.CustomsValue.Vendor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDD.Body.CustomsValue.Vendor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Käufer
                        If FCFCDD.Body IsNot Nothing AndAlso FCFCDD.Body.CustomsValue IsNot Nothing AndAlso FCFCDD.Body.CustomsValue.Vendee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "BY"
                            If FCFCDD.Body.CustomsValue.Vendee.Name IsNot Nothing Then
                                If FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Length > 40 Then
                                    If FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Substring(80, FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Substring(40, FCFCDD.Body.CustomsValue.Vendee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDD.Body.CustomsValue.Vendee.Name
                                End If
                            End If
                            If FCFCDD.Body.CustomsValue.Vendee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDD.Body.CustomsValue.Vendee.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDD.Body.CustomsValue.Vendee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDD.Body.CustomsValue.Vendee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDD.Body.CustomsValue.Vendee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDD.Body.CustomsValue.Vendee.Address.City
                                ADR.ezaAd_PLZ = FCFCDD.Body.CustomsValue.Vendee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDD.Body.CustomsValue.Vendee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If
                    End If




                    ''Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+PQ++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "PQ"))


                    ''Vertr. Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AG++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AG"))

                    ''Rechnung
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AA++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AA"))

                    ''Postfachadresse
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AAP++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AAP"))
                    ''--

                    'AUFSCHUB
                    If FCFCDD.DutyDefermentApproval IsNot Nothing AndAlso FCFCDD.DutyDefermentApproval.Count > 0 Then
                        For Each TMP In FCFCDD.DutyDefermentApproval
                            Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            If TMP.DutyDefermentApplicant IsNot Nothing AndAlso TMP.DutyDefermentApplicant.Identification IsNot Nothing Then
                                AUFSCHUB.ezaAfb_AufschubnehmerEORI = TMP.DutyDefermentApplicant.Identification.ReferenceNumber
                            End If


                            AUFSCHUB.ezaAfb_AufschuBIN = TMP.AuthorisationNumber
                            AUFSCHUB.ezaAfb_HZA = TMP.AccountPrefix
                            AUFSCHUB.ezaAfb_KontoNr = TMP.AccountNumber
                            AUFSCHUB.ezaAfb_Aufschubart = TMP.Type
                            AUFSCHUB.ezaAfb_ArtAufschubantrag = TMP.ApplicationType
                            EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                        Next

                    End If


                    'Lieferbedingungen
                    If FCFCDD.Body.DeliveryTerms IsNot Nothing Then
                        EZA.eza_LieferbedingungCode = FCFCDD.Body.DeliveryTerms.Code
                        EZA.eza_LieferbedingungText = FCFCDD.Body.DeliveryTerms.Description
                        EZA.eza_LieferbedingungOrt = FCFCDD.Body.DeliveryTerms.Place
                        EZA.eza_LieferbedingungSchluessel = FCFCDD.Body.DeliveryTerms.Key
                    End If


                    ' ###################################################
                    'POSITIONEN
                    ' ###################################################

                    If FCFCDD.Body IsNot Nothing AndAlso FCFCDD.Body.GoodsItem IsNot Nothing AndAlso FCFCDD.Body.GoodsItem.Count > 0 Then
                        For Each GOODSITEM In FCFCDD.Body.GoodsItem
                            Dim POS As New DAKOSY_Worker.cDakosy_EZA_Warenposition


                            POS.ezaWP_PositionsNummer = GOODSITEM.SequenceNumber
                            If GOODSITEM.CommodityCode IsNot Nothing Then POS.ezaWP_WarennummerEZT = GOODSITEM.CommodityCode.CommodityCode
                            If GOODSITEM.Procedure IsNot Nothing Then POS.ezaWP_AnmeldeVErfahren = GOODSITEM.Procedure.RequestedPreviousProcedure

                            POS.ezaWP_AbgabensteuerungKz = GOODSITEM.CessionManagementFlag
                            POS.ezaWP_Warenbezeichnung = GOODSITEM.GoodsDescription
                            POS.ezaWP_PositionsZusatz = GOODSITEM.SupplementaryInformation

                            If GOODSITEM.CustomsValue IsNot Nothing Then
                                POS.ezaWP_OrtVerbringens = GOODSITEM.CustomsValue.DestinationPlace
                                POS.ezaWP_AbflughafenIATACode = GOODSITEM.CustomsValue.DepartureAirport
                                If GOODSITEM.CustomsValue.NetPrice IsNot Nothing Then
                                    '  POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.CurrencyCode
                                    POS.ezaWP_KursVereinbartKz = GOODSITEM.CustomsValue.NetPrice.CurrencyRateAgreedFlag
                                    POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.Value
                                    'POS.ezaWP_KursDatum= GOODSITEM.CustomsValue.NetPrice.CurrencyRate
                                    'POS.ezaWP_KursDatum = GOODSITEM.CustomsValue.NetPrice.
                                End If


                                If GOODSITEM.ForeignTradeStatistics IsNot Nothing Then
                                    POS.ezaWP_Rohmasse = GOODSITEM.ForeignTradeStatistics.GrossMassMeasure
                                    If GOODSITEM.ForeignTradeStatistics.Amount IsNot Nothing Then
                                        POS.ezaWP_AHStatMengeQualifier = GOODSITEM.ForeignTradeStatistics.Amount.Qualifier
                                        POS.ezaWP_AHStatMengeMasseinheit = GOODSITEM.ForeignTradeStatistics.Amount.MeasurementUnit
                                        POS.ezaWP_AHStatMenge = GOODSITEM.ForeignTradeStatistics.Amount.Quantity
                                        POS.ezaWP_AHStatWert = GOODSITEM.ForeignTradeStatistics.Quantity
                                    End If
                                End If

                                POS.ezaWP_UrsprungslandCode = GOODSITEM.OriginCountry
                                POS.ezaWP_Eigenmasse = GOODSITEM.NetMassMeasure

                                ' POS.ezaWP_BeguenstigungBenatragtCode = Bedingun.
                                POS.ezaWP_BedingungCode = GOODSITEM.Condition
                                'POS.ezaWP_EUCode = GOODSITEM.EUCode

                                'If GOODSITEM.Assessment IsNot Nothing Then

                                '    POS.ezaWP_Zollwert = GOODSITEM.Assessment.Amount.
                                '    POS.ezaWP_KostenEUSt = GOODSITEM.Assessment.TaxCosts
                                '    POS.ezaWP_VeredelungWertsteigerung = GOODSITEM.Assessment.OutwardProcessingFee
                                'End If


                                ''Packstücke
                                If GOODSITEM.Package IsNot Nothing Then
                                    POS.ezaWP_PackstueckArt = GOODSITEM.Package.Kind
                                    POS.ezaWP_PackstueckZeichen = GOODSITEM.Package.MarksNumbers
                                    POS.ezaWP_PackstueckAnzahl = GOODSITEM.Package.Quantity
                                End If

                                ''Packstücke
                                'If GOODSITEM.Package IsNot Nothing AndAlso GOODSITEM.Package.Count > 0 Then
                                '    For Each PCK In GOODSITEM.Package
                                '        Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                                '        If PCK.DutyDefermentApplicant IsNot Nothing AndAlso PCK.DutyDefermentApplicant.Identification IsNot Nothing Then
                                '            AUFSCHUB.ezaAfb_AufschubnehmerEORI = PCK.DutyDefermentApplicant.Identification.ReferenceNumber
                                '        End If
                                '        AUFSCHUB.ezaAfb_AufschuBIN = PCK.AuthorisationNumber
                                '        AUFSCHUB.ezaAfb_KontoNr = PCK.AccountNumber
                                '        AUFSCHUB.ezaAfb_Aufschubart = PCK.Type
                                '        AUFSCHUB.ezaAfb_ArtAufschubantrag = PCK.ApplicationType
                                '        EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                                '    Next

                                'End If


                                'Preisart
                                '-

                                POS.ezaWP_Artikelpreis = GOODSITEM.InvoiceAmount
                                'Zusatzcode
                                If GOODSITEM.SupplementaryCodes IsNot Nothing AndAlso GOODSITEM.SupplementaryCodes.Count > 0 Then
                                    Dim cnt = 0
                                    For Each s In GOODSITEM.SupplementaryCodes
                                        If cnt = 0 Then POS.ezaWP_WarennummerZusatzCode1 = s.Code
                                        If cnt = 1 Then POS.ezaWP_WarennummerZusatzCode2 = s.Code
                                        If cnt = 2 Then POS.ezaWP_WarennummerZusatzCode3 = s.Code
                                        If cnt = 3 Then POS.ezaWP_WarennummerZusatzCode4 = s.Code
                                        If cnt = 4 Then POS.ezaWP_WarennummerZusatzCode5 = s.Code
                                        If cnt = 5 Then POS.ezaWP_WarennummerZusatzCode6 = s.Code
                                        If cnt = 6 Then POS.ezaWP_WarennummerZusatzCode7 = s.Code
                                        If cnt = 7 Then POS.ezaWP_WarennummerZusatzCode8 = s.Code
                                        If cnt = 8 Then POS.ezaWP_WarennummerZusatzCode9 = s.Code
                                        If cnt = 9 Then POS.ezaWP_WarennummerZusatzCode10 = s.Code
                                        cnt += 1
                                    Next
                                End If

                                'Abgabenminderung
                                '-

                                'Sonderfalldaten
                                If GOODSITEM.SpecialCase IsNot Nothing AndAlso GOODSITEM.SpecialCase.Count > 0 Then
                                    For Each s In GOODSITEM.SpecialCase
                                        Dim SA As New DAKOSY_Worker.cDakosy_EZA_WarenpositionSonderfalldaten
                                        SA.ezaWpSfd_SonderabgabenGruppeCode = s.Group
                                        SA.ezaWpSfd_AnwendungArt = s.ApplicationType
                                        SA.ezaWpSfd_SatzBetragFaktor = s.RateOrAmountOrFactor
                                        POS.ezaWP_SONDERFALLDATEN.Add(SA)
                                    Next
                                End If



                                'Verbrauchsteuer
                                If GOODSITEM.ExciseDuty IsNot Nothing AndAlso GOODSITEM.ExciseDuty.Count > 0 Then
                                    For Each s In GOODSITEM.ExciseDuty
                                        Dim VS As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVerbrauchssteuer
                                        VS.ezaWpVs_VerbrauchsteuerCode = s.Code
                                        VS.ezaWpVs_VerbrauchssteuerWertbasis = s.Value
                                        'VS.ezaWpVs_VerbrauchssteuerMenge = s.DegreePercentage
                                        If s.Amount IsNot Nothing Then
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.Quantity
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitQualifier = s.Amount.Qualifier
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.MeasurementUnit
                                        End If
                                        POS.ezaWP_VERBRAUCHSSTEUER.Add(VS)
                                    Next
                                End If

                                If GOODSITEM.PreferentialTreatment IsNot Nothing Then
                                    POS.ezaWP_BeguenstigungBenatragtCode = GOODSITEM.PreferentialTreatment.RequestedPreferentialTreatment
                                    If GOODSITEM.PreferentialTreatment.Declaration IsNot Nothing AndAlso GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity IsNot Nothing Then
                                        POS.ezaWP_BeguenstigungsMengeMasseinheitCode = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.MeasurementUnit
                                        POS.ezaWP_BeguenstigungsMengeMenge = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Quantity
                                        POS.ezaWP_BeguenstigungsMengeQualifier = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Qualifier
                                    End If
                                End If


                                'Unterlagen
                                If GOODSITEM.Document IsNot Nothing AndAlso GOODSITEM.Document.Count > 0 Then
                                    For Each s In GOODSITEM.Document
                                        Dim UL As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen
                                        UL.ezaWpUl_Bereich = s.Division
                                        UL.ezaWpUl_VorlageKz = s.AtHandFlag
                                        If s.WriteOff IsNot Nothing Then
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheitQualifier = s.WriteOff.Qualifier
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheit = s.WriteOff.MeasurementUnit
                                            UL.ezaWpUl_AbschreibungsMenge = s.WriteOff.Quantity

                                        End If
                                        UL.ezaWpUl_Art = s.Type
                                        UL.ezaWpUl_Nummer = s.ReferenceNumber
                                        UL.ezaWpUl_DatumAusstellung = CDate(s.IssuingDate).ToShortDateString
                                        POS.ezaWP_UNTERLAGEN.Add(UL)
                                    Next
                                End If
                            End If
                            EZA.eza_WARENPOS.Add(POS)

                        Next

                    End If


                    If If(EZA.eza_Status, 0) <= 5 Then EZA.eza_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    If If(EZA.eza_Status_KEWILL_Equivalent, 0) <= 5 Then EZA.eza_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05



                    If EZA.SAVE_ALL() Then
                        If If(EZA.eza_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                    Else
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD = ""
                    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

                    addDGVEinarbeitung("EZA: FreierVerkehrAktVeredelUmwandlung", readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD)

                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)
            readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDD = ""
        End Try
    End Function


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

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



                    Dim FCFCDE As DAKOSY_Worker.FCFCDE.FCFCDE = DAKOSY_Worker.FCFCDE.FCFCDE.LoadFromFile(p)
                    '  Dim EZA As New DAKOSY_Worker.cDakosyEZA



                    If FCFCDE IsNot Nothing And FCFCDE.Header IsNot Nothing And FCFCDE.Header.LocalReferenceNumber IsNot Nothing Then
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE = FCFCDE.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If


                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE, "EZA")

                    Dim EZA As DAKOSY_Worker.cDakosyEZA = DAKOSY_Worker.cDakosyEZA.LOADByBezugsNr(readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If EZA Is Nothing Then EZA = New DAKOSY_Worker.cDakosyEZA
                    If DY_TMP IsNot Nothing Then EZA.eza_dyaAnmID = DY_TMP.dy_Id

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


                    If FCFCDE IsNot Nothing Then
                        EZA.eza_ObjectName = readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE

                        If FCFCDE.MetaData IsNot Nothing Then
                            If FCFCDE.MetaData.Preparation IsNot Nothing Then EZA.eza_Trans_DatumZeit = CDate(FCFCDE.MetaData.Preparation.Date).ToShortDateString
                        End If


                        If FCFCDE.Header IsNot Nothing Then

                            EZA.eza_VersendungsLandCode = FCFCDE.Header.DepartureCountry
                            EZA.eza_FinanzamtAnmelder = FCFCDE.Header.TaxOffice
                            'EZA.eza_UstIdAnmelder = FCFCDE.Header.TaxNumber

                            EZA.eza_Warenort = FCFCDE.Header.GoodsLocation
                            EZA.eza_Ausstellungsort = FCFCDE.Header.DeclarationPlace


                            EZA.eza_ZollrechtlicherStatus = FCFCDE.Header.CustomsGoodsStatus
                            EZA.eza_Zahlungsart = FCFCDE.Header.PaymentMethod
                            EZA.eza_AnmelderistEmpfaenger = FCFCDE.Header.DeclarantIsConsigneeFlag
                            EZA.eza_VertretungsVerhaeltnisCode = FCFCDE.Header.RepresentativeRelationshipFlag
                            EZA.eza_Vorsteuerabzug = FCFCDE.Header.InputTaxDeductionFlag
                            EZA.eza_ZusatzangabenAnmeldung = FCFCDE.Header.AdditionalInformation

                            ' EZA.eza_VerfahrenBeantragtCode
                        End If

                    End If

                    If FCFCDE.Body IsNot Nothing Then
                        If FCFCDE.Body.ForeignTradeStatistics IsNot Nothing Then

                            EZA.eza_ArtGeschaeftCode = FCFCDE.Body.ForeignTradeStatistics.TransactionType
                            EZA.eza_Bestimmungsland = FCFCDE.Body.ForeignTradeStatistics.DestinationCountry
                            EZA.eza_Bestimmungsbundesland = FCFCDE.Body.ForeignTradeStatistics.DestinationFederalState

                            If FCFCDE.Body.ForeignTradeStatistics.EntryCustomsOffice IsNot Nothing Then
                                EZA.eza_Eingangszollstelle = FCFCDE.Body.ForeignTradeStatistics.EntryCustomsOffice.ReferenceNumber
                            End If

                            EZA.eza_Statistikstatus = FCFCDE.Body.ForeignTradeStatistics.GoodsStatus
                            EZA.eza_DV1Kz = FCFCDE.Body.CustomsValueFlag
                            EZA.eza_GesamtRohmasse = FCFCDE.Body.ForeignTradeStatistics.TotalGrossMassMeasure

                        End If

                        If FCFCDE.Body.PaymentTransaction IsNot Nothing Then
                            EZA.eza_Rechnungswaehrung = FCFCDE.Body.PaymentTransaction.CurrencyCode
                            EZA.eza_Rechnungspreis = FCFCDE.Body.PaymentTransaction.Amount

                        End If

                        If FCFCDE.Body.CustomsValue IsNot Nothing Then
                            If FCFCDE.Body.CustomsValue.RestrictionOrCondition IsNot Nothing Then EZA.eza_DV1EinschraenkungenKz = FCFCDE.Body.CustomsValue.RestrictionOrCondition.RestrictionFlag
                            EZA.eza_DV1FruehereEntscheidungen = FCFCDE.Body.CustomsValue.FormerDecisions

                            If FCFCDE.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1Verbundenheit = FCFCDE.Body.CustomsValue.Affiliation.Type
                            If FCFCDE.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1VerbungenheitEinzelheiten = FCFCDE.Body.CustomsValue.Affiliation.Description
                            If FCFCDE.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenUmstand = FCFCDE.Body.CustomsValue.LicenseFee.Description
                            If FCFCDE.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenKz = FCFCDE.Body.CustomsValue.LicenseFee.LicenseFeeFlag
                        End If

                        If FCFCDE.Body.Document IsNot Nothing AndAlso FCFCDE.Body.Document.Count > 0 Then
                            For Each docTMP In FCFCDE.Body.Document
                                Dim UNTERLAGE As New DAKOSY_Worker.cDakosy_EZA_Unterlagen
                                UNTERLAGE.ezaUl_Art = docTMP.Type
                                UNTERLAGE.ezaUl_Nummer = docTMP.ReferenceNumber
                                UNTERLAGE.ezaUl_Bereich = docTMP.Division
                                UNTERLAGE.ezaUl_DatumAusstellung = CDate(docTMP.IssuingDate).ToShortDateString

                                EZA.eza_UNTERLAGEN.Add(UNTERLAGE)
                            Next

                        End If

                        '  EZA.eza_DV1Verbundenheit = cEDI.getSimpleLine("GIS+904:::", lines, Nothing)???
                        '  EZA.eza_BewilligungsIDZLAVUV = cEDI.getSimpleLine("RFF+AEM:", lines) '?

                        'Vorpapier
                        If FCFCDE.PreviousAdministrativeReferences IsNot Nothing Then
                            EZA.eza_VorpapierArtCode = FCFCDE.PreviousAdministrativeReferences.Type
                            If FCFCDE.PreviousAdministrativeReferences.PreviousAdministrativeReference IsNot Nothing Then EZA.eza_VorpapierNr = FCFCDE.PreviousAdministrativeReferences.PreviousAdministrativeReference.ReferenceNumber
                        End If

                        'Beförderungsmittel Grenze
                        If FCFCDE.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDE.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDE.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDE.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDE.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDE.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDE.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDE.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDE.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDE.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDE.ArrivalTransportMeans IsNot Nothing Then
                            EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = FCFCDE.ArrivalTransportMeans.Identity
                        End If

                        'Ansprechpartenr
                        If FCFCDE.ContactPerson IsNot Nothing Then
                            EZA.eza_AnmeldenderBearbeiterName = FCFCDE.ContactPerson.Name
                            EZA.eza_AnmeldenderBearbeiterEMail = FCFCDE.ContactPerson.MailAddress
                            EZA.eza_AnmeldenderBearbeiterStellung = FCFCDE.ContactPerson.Position
                            EZA.eza_AnmeldenderBearbeiterTel = FCFCDE.ContactPerson.PhoneNumber
                            Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & EZA.eza_AnmeldenderBearbeiterName & "'", "ADMIN")
                            If SB_Tmp <> "" Then
                                EZA.eza_Bearbeiter = SB_Tmp
                            ElseIf isAtez(EZA.eza_ObjectName) Then
                                EZA.eza_Bearbeiter = "VERIMEX"
                            Else
                                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & EZA.eza_AnmeldenderBearbeiterName & " 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



                        'Anmleder
                        If FCFCDE.Declarant IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "DT"
                            If FCFCDE.Declarant.Name IsNot Nothing Then
                                If FCFCDE.Declarant.Name.ToString.Length > 40 Then
                                    If FCFCDE.Declarant.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDE.Declarant.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDE.Declarant.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDE.Declarant.Name.ToString.Substring(80, FCFCDE.Declarant.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Declarant.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDE.Declarant.Name.ToString.Substring(40, FCFCDE.Declarant.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Declarant.Name
                                End If
                            End If
                            If FCFCDE.Declarant.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDE.Declarant.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDE.Declarant.Identification.SubsidiaryNumber
                            End If
                            If FCFCDE.Declarant.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDE.Declarant.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDE.Declarant.Address.City
                                ADR.ezaAd_PLZ = FCFCDE.Declarant.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDE.Declarant.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If



                        'Vertreter
                        If FCFCDE.Representative IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CB"
                            If FCFCDE.Representative.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDE.Representative.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDE.Representative.Identification.SubsidiaryNumber
                                EZA.eza_ADRESSEN.Add(ADR)
                            End If
                        End If


                        'Empfänger
                        If FCFCDE.Body IsNot Nothing AndAlso FCFCDE.Body.Consignee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CN"
                            If FCFCDE.Body.Consignee.Name IsNot Nothing Then
                                If FCFCDE.Body.Consignee.Name.ToString.Length > 40 Then
                                    If FCFCDE.Body.Consignee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDE.Body.Consignee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDE.Body.Consignee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDE.Body.Consignee.Name.ToString.Substring(80, FCFCDE.Body.Consignee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.Consignee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDE.Body.Consignee.Name.ToString.Substring(40, FCFCDE.Body.Consignee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.Consignee.Name
                                End If
                            End If
                            If FCFCDE.Body.Consignee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDE.Body.Consignee.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDE.Body.Consignee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDE.Body.Consignee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDE.Body.Consignee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDE.Body.Consignee.Address.City
                                ADR.ezaAd_PLZ = FCFCDE.Body.Consignee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDE.Body.Consignee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Erwerber -->  NEU!!! = zusätzl. Steuerl. Angaben
                        If FCFCDE.Body IsNot Nothing AndAlso FCFCDE.Body.AdditionalDutyReferences IsNot Nothing AndAlso FCFCDE.Body.AdditionalDutyReferences.Count > 0 AndAlso FCFCDE.Body.AdditionalDutyReferences(0).DutyInterestedParty IsNot Nothing Then

                            For Each ADDREF In FCFCDE.Body.AdditionalDutyReferences
                                If ADDREF.ReferenceNumber IsNot Nothing Then
                                    If ADDREF.ReferenceNumber.ToString.StartsWith("FR2") Then 'ERWERBER

                                        Dim UIDNR = ADDREF.ReferenceNumber.Substring(3) ' ohne FR2
                                        Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                                        ADR.ezaAd_AdressTyp = "UC" 'ERWERBER
                                        If ADDREF.DutyInterestedParty.Name IsNot Nothing Then
                                            If ADDREF.DutyInterestedParty.Name.ToString.Length > 40 Then
                                                If ADDREF.DutyInterestedParty.Name.ToString.Length > 80 Then
                                                    ADR.ezaAd_NameFirma1 = ADDREF.DutyInterestedParty.Name.ToString.Substring(0, 40)
                                                    ADR.ezaAd_NameFirma2 = ADDREF.DutyInterestedParty.Name.ToString.Substring(40, 40)
                                                    ADR.ezaAd_NameFirma3 = ADDREF.DutyInterestedParty.Name.ToString.Substring(80, ADDREF.DutyInterestedParty.Name.ToString.Length - 80)
                                                End If
                                                ADR.ezaAd_NameFirma1 = ADDREF.DutyInterestedParty.Name.ToString.Substring(0, 40)
                                                ADR.ezaAd_NameFirma2 = ADDREF.DutyInterestedParty.Name.ToString.Substring(40, ADDREF.DutyInterestedParty.Name.ToString.Length - 40)
                                            Else
                                                ADR.ezaAd_NameFirma1 = ADDREF.DutyInterestedParty.Name
                                            End If
                                        End If

                                        ADR.ezaAd_UStIDAnmelder = UIDNR
                                        EZA.eza_UstIdAnmelder = UIDNR

                                        If ADDREF.DutyInterestedParty.Identification IsNot Nothing Then
                                            ADR.ezaAd_TeilnehmerEORI = ADDREF.DutyInterestedParty.Identification.ReferenceNumber
                                            'ADR.ezaAd_TeilnehmerNLNR = ADDREF.DutyInterestedParty.Identification.ReferenceNumber
                                        End If
                                        If ADDREF.DutyInterestedParty.Address IsNot Nothing Then
                                            ADR.ezaAd_StrasseHausNr1 = ADDREF.DutyInterestedParty.Address.Line
                                            ADR.ezaAd_StrasseHausNr2 = Nothing
                                            ADR.ezaAd_Ort = ADDREF.DutyInterestedParty.Address.City
                                            ADR.ezaAd_PLZ = ADDREF.DutyInterestedParty.Address.Postcode
                                            ADR.ezaAd_LandCode = ADDREF.DutyInterestedParty.Address.Country
                                        End If
                                        EZA.eza_ADRESSEN.Add(ADR)



                                    ElseIf ADDREF.ReferenceNumber.ToString.StartsWith("FR2") Then 'ERWERBER
                                        'Fiskalvertreter
                                    End If
                                End If
                            Next


                        End If


                        'Versender/Ausführer
                        If FCFCDE.Body IsNot Nothing AndAlso FCFCDE.Body.Consignor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CZ"
                            If FCFCDE.Body.Consignor.Name IsNot Nothing Then
                                If FCFCDE.Body.Consignor.Name.ToString.Length > 40 Then
                                    If FCFCDE.Body.Consignor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDE.Body.Consignor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDE.Body.Consignor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDE.Body.Consignor.Name.ToString.Substring(80, FCFCDE.Body.Consignor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.Consignor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDE.Body.Consignor.Name.ToString.Substring(40, FCFCDE.Body.Consignor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.Consignor.Name
                                End If
                            End If
                            If FCFCDE.Body.Consignor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDE.Body.Consignor.Identification.ReferenceNumber
                                '  ADR.ezaAd_TeilnehmerNLNR = FCFCDE.Body.Consignor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDE.Body.Consignor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDE.Body.Consignor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDE.Body.Consignor.Address.City
                                ADR.ezaAd_PLZ = FCFCDE.Body.Consignor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDE.Body.Consignor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Verkäufer
                        If FCFCDE.Body IsNot Nothing AndAlso FCFCDE.Body.CustomsValue IsNot Nothing AndAlso FCFCDE.Body.CustomsValue.Vendor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "SE"
                            If FCFCDE.Body.CustomsValue.Vendor.Name IsNot Nothing Then
                                If FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Length > 40 Then
                                    If FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Substring(80, FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Substring(40, FCFCDE.Body.CustomsValue.Vendor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.CustomsValue.Vendor.Name
                                End If
                            End If
                            If FCFCDE.Body.CustomsValue.Vendor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDE.Body.CustomsValue.Vendor.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDE.Body.CustomsValue.Vendor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDE.Body.CustomsValue.Vendor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDE.Body.CustomsValue.Vendor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDE.Body.CustomsValue.Vendor.Address.City
                                ADR.ezaAd_PLZ = FCFCDE.Body.CustomsValue.Vendor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDE.Body.CustomsValue.Vendor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Käufer
                        If FCFCDE.Body IsNot Nothing AndAlso FCFCDE.Body.CustomsValue IsNot Nothing AndAlso FCFCDE.Body.CustomsValue.Vendee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "BY"
                            If FCFCDE.Body.CustomsValue.Vendee.Name IsNot Nothing Then
                                If FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Length > 40 Then
                                    If FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Substring(80, FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Substring(40, FCFCDE.Body.CustomsValue.Vendee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDE.Body.CustomsValue.Vendee.Name
                                End If
                            End If
                            If FCFCDE.Body.CustomsValue.Vendee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDE.Body.CustomsValue.Vendee.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDE.Body.CustomsValue.Vendee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDE.Body.CustomsValue.Vendee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDE.Body.CustomsValue.Vendee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDE.Body.CustomsValue.Vendee.Address.City
                                ADR.ezaAd_PLZ = FCFCDE.Body.CustomsValue.Vendee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDE.Body.CustomsValue.Vendee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If
                    End If




                    ''Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+PQ++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "PQ"))


                    ''Vertr. Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AG++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AG"))

                    ''Rechnung
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AA++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AA"))

                    ''Postfachadresse
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AAP++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AAP"))
                    ''--

                    'AUFSCHUB
                    If FCFCDE.DutyDefermentApproval IsNot Nothing AndAlso FCFCDE.DutyDefermentApproval.Count > 0 Then
                        For Each TMP In FCFCDE.DutyDefermentApproval
                            Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            If TMP.DutyDefermentApplicant IsNot Nothing AndAlso TMP.DutyDefermentApplicant.Identification IsNot Nothing Then
                                AUFSCHUB.ezaAfb_AufschubnehmerEORI = TMP.DutyDefermentApplicant.Identification.ReferenceNumber
                            End If


                            AUFSCHUB.ezaAfb_AufschuBIN = TMP.AuthorisationNumber
                            AUFSCHUB.ezaAfb_HZA = TMP.AccountPrefix
                            AUFSCHUB.ezaAfb_KontoNr = TMP.AccountNumber
                            AUFSCHUB.ezaAfb_Aufschubart = TMP.Type
                            AUFSCHUB.ezaAfb_ArtAufschubantrag = TMP.ApplicationType
                            EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                        Next

                    End If


                    'Lieferbedingungen
                    If FCFCDE.Body.DeliveryTerms IsNot Nothing Then
                        EZA.eza_LieferbedingungCode = FCFCDE.Body.DeliveryTerms.Code
                        EZA.eza_LieferbedingungText = FCFCDE.Body.DeliveryTerms.Description
                        EZA.eza_LieferbedingungOrt = FCFCDE.Body.DeliveryTerms.Place
                        EZA.eza_LieferbedingungSchluessel = FCFCDE.Body.DeliveryTerms.Key
                    End If


                    ' ###################################################
                    'POSITIONEN
                    ' ###################################################

                    If FCFCDE.Body IsNot Nothing AndAlso FCFCDE.Body.GoodsItem IsNot Nothing AndAlso FCFCDE.Body.GoodsItem.Count > 0 Then
                        For Each GOODSITEM In FCFCDE.Body.GoodsItem
                            Dim POS As New DAKOSY_Worker.cDakosy_EZA_Warenposition


                            POS.ezaWP_PositionsNummer = GOODSITEM.SequenceNumber
                            If GOODSITEM.CommodityCode IsNot Nothing Then POS.ezaWP_WarennummerEZT = GOODSITEM.CommodityCode.CommodityCode
                            If GOODSITEM.Procedure IsNot Nothing Then POS.ezaWP_AnmeldeVErfahren = GOODSITEM.Procedure.RequestedPreviousProcedure

                            POS.ezaWP_AbgabensteuerungKz = GOODSITEM.CessionManagementFlag
                            POS.ezaWP_Warenbezeichnung = GOODSITEM.GoodsDescription
                            POS.ezaWP_PositionsZusatz = GOODSITEM.SupplementaryInformation

                            If GOODSITEM.CustomsValue IsNot Nothing Then
                                POS.ezaWP_OrtVerbringens = GOODSITEM.CustomsValue.DestinationPlace
                                POS.ezaWP_AbflughafenIATACode = GOODSITEM.CustomsValue.DepartureAirport
                                If GOODSITEM.CustomsValue.NetPrice IsNot Nothing Then
                                    '  POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.CurrencyCode
                                    POS.ezaWP_KursVereinbartKz = GOODSITEM.CustomsValue.NetPrice.CurrencyRateAgreedFlag
                                    POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.Value
                                    'POS.ezaWP_KursDatum= GOODSITEM.CustomsValue.NetPrice.CurrencyRate
                                    'POS.ezaWP_KursDatum = GOODSITEM.CustomsValue.NetPrice.
                                End If


                                If GOODSITEM.ForeignTradeStatistics IsNot Nothing Then
                                    POS.ezaWP_Rohmasse = GOODSITEM.ForeignTradeStatistics.GrossMassMeasure
                                    If GOODSITEM.ForeignTradeStatistics.Amount IsNot Nothing Then
                                        POS.ezaWP_AHStatMengeQualifier = GOODSITEM.ForeignTradeStatistics.Amount.Qualifier
                                        POS.ezaWP_AHStatMengeMasseinheit = GOODSITEM.ForeignTradeStatistics.Amount.MeasurementUnit
                                        POS.ezaWP_AHStatMenge = GOODSITEM.ForeignTradeStatistics.Amount.Quantity
                                        POS.ezaWP_AHStatWert = GOODSITEM.ForeignTradeStatistics.Quantity
                                    End If
                                End If

                                POS.ezaWP_UrsprungslandCode = GOODSITEM.OriginCountry
                                POS.ezaWP_Eigenmasse = GOODSITEM.NetMassMeasure

                                ' POS.ezaWP_BeguenstigungBenatragtCode = Bedingun.
                                POS.ezaWP_BedingungCode = GOODSITEM.Condition
                                'POS.ezaWP_EUCode = GOODSITEM.EUCode

                                'If GOODSITEM.Assessment IsNot Nothing Then

                                '    POS.ezaWP_Zollwert = GOODSITEM.Assessment.Amount.
                                '    POS.ezaWP_KostenEUSt = GOODSITEM.Assessment.TaxCosts
                                '    POS.ezaWP_VeredelungWertsteigerung = GOODSITEM.Assessment.OutwardProcessingFee
                                'End If


                                ''Packstücke
                                If GOODSITEM.Package IsNot Nothing Then
                                    POS.ezaWP_PackstueckArt = GOODSITEM.Package.Kind
                                    POS.ezaWP_PackstueckZeichen = GOODSITEM.Package.MarksNumbers
                                    POS.ezaWP_PackstueckAnzahl = GOODSITEM.Package.Quantity
                                End If

                                ''Packstücke
                                'If GOODSITEM.Package IsNot Nothing AndAlso GOODSITEM.Package.Count > 0 Then
                                '    For Each PCK In GOODSITEM.Package
                                '        Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                                '        If PCK.DutyDefermentApplicant IsNot Nothing AndAlso PCK.DutyDefermentApplicant.Identification IsNot Nothing Then
                                '            AUFSCHUB.ezaAfb_AufschubnehmerEORI = PCK.DutyDefermentApplicant.Identification.ReferenceNumber
                                '        End If
                                '        AUFSCHUB.ezaAfb_AufschuBIN = PCK.AuthorisationNumber
                                '        AUFSCHUB.ezaAfb_KontoNr = PCK.AccountNumber
                                '        AUFSCHUB.ezaAfb_Aufschubart = PCK.Type
                                '        AUFSCHUB.ezaAfb_ArtAufschubantrag = PCK.ApplicationType
                                '        EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                                '    Next

                                'End If


                                'Preisart
                                '-

                                POS.ezaWP_Artikelpreis = GOODSITEM.InvoiceAmount
                                'Zusatzcode
                                If GOODSITEM.SupplementaryCodes IsNot Nothing AndAlso GOODSITEM.SupplementaryCodes.Count > 0 Then
                                    Dim cnt = 0
                                    For Each s In GOODSITEM.SupplementaryCodes
                                        If cnt = 0 Then POS.ezaWP_WarennummerZusatzCode1 = s.Code
                                        If cnt = 1 Then POS.ezaWP_WarennummerZusatzCode2 = s.Code
                                        If cnt = 2 Then POS.ezaWP_WarennummerZusatzCode3 = s.Code
                                        If cnt = 3 Then POS.ezaWP_WarennummerZusatzCode4 = s.Code
                                        If cnt = 4 Then POS.ezaWP_WarennummerZusatzCode5 = s.Code
                                        If cnt = 5 Then POS.ezaWP_WarennummerZusatzCode6 = s.Code
                                        If cnt = 6 Then POS.ezaWP_WarennummerZusatzCode7 = s.Code
                                        If cnt = 7 Then POS.ezaWP_WarennummerZusatzCode8 = s.Code
                                        If cnt = 8 Then POS.ezaWP_WarennummerZusatzCode9 = s.Code
                                        If cnt = 9 Then POS.ezaWP_WarennummerZusatzCode10 = s.Code
                                        cnt += 1
                                    Next
                                End If

                                'Abgabenminderung
                                '-

                                'Sonderfalldaten
                                If GOODSITEM.SpecialCase IsNot Nothing AndAlso GOODSITEM.SpecialCase.Count > 0 Then
                                    For Each s In GOODSITEM.SpecialCase
                                        Dim SA As New DAKOSY_Worker.cDakosy_EZA_WarenpositionSonderfalldaten
                                        SA.ezaWpSfd_SonderabgabenGruppeCode = s.Group
                                        SA.ezaWpSfd_AnwendungArt = s.ApplicationType
                                        SA.ezaWpSfd_SatzBetragFaktor = s.RateOrAmountOrFactor
                                        POS.ezaWP_SONDERFALLDATEN.Add(SA)
                                    Next
                                End If



                                'Verbrauchsteuer
                                If GOODSITEM.ExciseDuty IsNot Nothing AndAlso GOODSITEM.ExciseDuty.Count > 0 Then
                                    For Each s In GOODSITEM.ExciseDuty
                                        Dim VS As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVerbrauchssteuer
                                        VS.ezaWpVs_VerbrauchsteuerCode = s.Code
                                        VS.ezaWpVs_VerbrauchssteuerWertbasis = s.Value
                                        'VS.ezaWpVs_VerbrauchssteuerMenge = s.DegreePercentage
                                        If s.Amount IsNot Nothing Then
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.Quantity
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitQualifier = s.Amount.Qualifier
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.MeasurementUnit
                                        End If
                                        POS.ezaWP_VERBRAUCHSSTEUER.Add(VS)
                                    Next
                                End If

                                If GOODSITEM.PreferentialTreatment IsNot Nothing Then
                                    POS.ezaWP_BeguenstigungBenatragtCode = GOODSITEM.PreferentialTreatment.RequestedPreferentialTreatment
                                    If GOODSITEM.PreferentialTreatment.Declaration IsNot Nothing AndAlso GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity IsNot Nothing Then
                                        POS.ezaWP_BeguenstigungsMengeMasseinheitCode = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.MeasurementUnit
                                        POS.ezaWP_BeguenstigungsMengeMenge = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Quantity
                                        POS.ezaWP_BeguenstigungsMengeQualifier = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Qualifier
                                    End If
                                End If


                                'Unterlagen
                                If GOODSITEM.Document IsNot Nothing AndAlso GOODSITEM.Document.Count > 0 Then
                                    For Each s In GOODSITEM.Document
                                        Dim UL As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen
                                        UL.ezaWpUl_Bereich = s.Division
                                        UL.ezaWpUl_VorlageKz = s.AtHandFlag
                                        If s.WriteOff IsNot Nothing Then
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheitQualifier = s.WriteOff.Qualifier
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheit = s.WriteOff.MeasurementUnit
                                            UL.ezaWpUl_AbschreibungsMenge = s.WriteOff.Quantity

                                        End If
                                        UL.ezaWpUl_Art = s.Type
                                        UL.ezaWpUl_Nummer = s.ReferenceNumber
                                        UL.ezaWpUl_DatumAusstellung = CDate(s.IssuingDate).ToShortDateString
                                        POS.ezaWP_UNTERLAGEN.Add(UL)
                                    Next
                                End If
                            End If
                            EZA.eza_WARENPOS.Add(POS)

                        Next

                    End If


                    If If(EZA.eza_Status, 0) <= 5 Then EZA.eza_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    If If(EZA.eza_Status_KEWILL_Equivalent, 0) <= 5 Then EZA.eza_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05



                    If EZA.SAVE_ALL() Then
                        If If(EZA.eza_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05,,,, statusTMP)
                    Else
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE = ""
                    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

                    addDGVEinarbeitung("EZA: FreierVerkehrAktVeredelUmwandlung", readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE)

                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)
            readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDE = ""
        End Try
    End Function

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

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



                    Dim FCFCDF As DAKOSY_Worker.FCFCDF.FCFCDF = DAKOSY_Worker.FCFCDF.FCFCDF.LoadFromFile(p)
                    '  Dim EZA As New DAKOSY_Worker.cDakosyEZA



                    If FCFCDF IsNot Nothing And FCFCDF.Header IsNot Nothing And FCFCDF.Header.LRN IsNot Nothing Then
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF = FCFCDF.Header.LRN
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If


                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF, "EZA")

                    Dim EZA As DAKOSY_Worker.cDakosyEZA = DAKOSY_Worker.cDakosyEZA.LOADByBezugsNr(readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If EZA Is Nothing Then EZA = New DAKOSY_Worker.cDakosyEZA
                    If DY_TMP IsNot Nothing Then EZA.eza_dyaAnmID = DY_TMP.dy_Id

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


                    If FCFCDF IsNot Nothing Then
                        EZA.eza_ObjectName = readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF

                        If FCFCDF.MetaData IsNot Nothing Then
                            If FCFCDF.MetaData.Preparation IsNot Nothing Then EZA.eza_Trans_DatumZeit = CDate(FCFCDF.MetaData.Preparation.Date).ToShortDateString
                        End If


                        If FCFCDF.Header IsNot Nothing Then

                            EZA.eza_VersendungsLandCode = FCFCDF.Header.DepartureCountry
                            EZA.eza_FinanzamtAnmelder = FCFCDF.Header.TaxOffice
                            'EZA.eza_UstIdAnmelder = FCFCDF.Header.TaxNumber

                            EZA.eza_Warenort = FCFCDF.Header.GoodsLocation
                            EZA.eza_Ausstellungsort = FCFCDF.Header.DeclarationPlace


                            EZA.eza_ZollrechtlicherStatus = FCFCDF.Header.CustomsGoodsStatus
                            EZA.eza_Zahlungsart = FCFCDF.Header.PaymentMethod
                            EZA.eza_AnmelderistEmpfaenger = FCFCDF.Header.DeclarantIsConsigneeFlag
                            EZA.eza_VertretungsVerhaeltnisCode = FCFCDF.Header.RepresentativeRelationshipFlag
                            EZA.eza_Vorsteuerabzug = FCFCDF.Header.InputTaxDeductionFlag
                            EZA.eza_ZusatzangabenAnmeldung = FCFCDF.Header.AdditionalInformation

                            ' EZA.eza_VerfahrenBeantragtCode
                        End If

                    End If

                    If FCFCDF.Body IsNot Nothing Then
                        If FCFCDF.Body.ForeignTradeStatistics IsNot Nothing Then

                            EZA.eza_ArtGeschaeftCode = FCFCDF.Body.ForeignTradeStatistics.TransactionType
                            EZA.eza_Bestimmungsland = FCFCDF.Body.ForeignTradeStatistics.DestinationCountry
                            EZA.eza_Bestimmungsbundesland = FCFCDF.Body.ForeignTradeStatistics.DestinationFederalState

                            If FCFCDF.Body.ForeignTradeStatistics.EntryCustomsOffice IsNot Nothing Then
                                EZA.eza_Eingangszollstelle = FCFCDF.Body.ForeignTradeStatistics.EntryCustomsOffice.ReferenceNumber
                            End If

                            EZA.eza_Statistikstatus = FCFCDF.Body.ForeignTradeStatistics.GoodsStatus
                            EZA.eza_DV1Kz = FCFCDF.Body.CustomsValueFlag
                            EZA.eza_GesamtRohmasse = FCFCDF.Body.ForeignTradeStatistics.TotalGrossMassMeasure

                        End If

                        If FCFCDF.Body.PaymentTransaction IsNot Nothing Then
                            EZA.eza_Rechnungswaehrung = FCFCDF.Body.PaymentTransaction.CurrencyCode
                            EZA.eza_Rechnungspreis = FCFCDF.Body.PaymentTransaction.Amount

                        End If

                        If FCFCDF.Body.CustomsValue IsNot Nothing Then
                            If FCFCDF.Body.CustomsValue.RestrictionOrCondition IsNot Nothing Then EZA.eza_DV1EinschraenkungenKz = FCFCDF.Body.CustomsValue.RestrictionOrCondition.RestrictionFlag
                            EZA.eza_DV1FruehereEntscheidungen = FCFCDF.Body.CustomsValue.FormerDecisions

                            If FCFCDF.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1Verbundenheit = FCFCDF.Body.CustomsValue.Affiliation.Type
                            If FCFCDF.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1VerbungenheitEinzelheiten = FCFCDF.Body.CustomsValue.Affiliation.Description
                            If FCFCDF.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenUmstand = FCFCDF.Body.CustomsValue.LicenseFee.Description
                            If FCFCDF.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenKz = FCFCDF.Body.CustomsValue.LicenseFee.LicenseFeeFlag
                        End If

                        If FCFCDF.Body.Document IsNot Nothing AndAlso FCFCDF.Body.Document.Count > 0 Then
                            For Each docTMP In FCFCDF.Body.Document
                                Dim UNTERLAGE As New DAKOSY_Worker.cDakosy_EZA_Unterlagen
                                UNTERLAGE.ezaUl_Art = docTMP.Type
                                UNTERLAGE.ezaUl_Nummer = docTMP.ReferenceNumber
                                UNTERLAGE.ezaUl_Bereich = docTMP.Division
                                UNTERLAGE.ezaUl_DatumAusstellung = CDate(docTMP.IssuingDate).ToShortDateString

                                EZA.eza_UNTERLAGEN.Add(UNTERLAGE)
                            Next

                        End If

                        '  EZA.eza_DV1Verbundenheit = cEDI.getSimpleLine("GIS+904:::", lines, Nothing)???
                        '  EZA.eza_BewilligungsIDZLAVUV = cEDI.getSimpleLine("RFF+AEM:", lines) '?

                        'Vorpapier
                        If FCFCDF.PreviousAdministrativeReferences IsNot Nothing Then
                            EZA.eza_VorpapierArtCode = FCFCDF.PreviousAdministrativeReferences.Type
                            If FCFCDF.PreviousAdministrativeReferences.PreviousAdministrativeReference IsNot Nothing Then EZA.eza_VorpapierNr = FCFCDF.PreviousAdministrativeReferences.PreviousAdministrativeReference.ReferenceNumber
                        End If

                        'Beförderungsmittel Grenze
                        If FCFCDF.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDF.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDF.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDF.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDF.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDF.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDF.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDF.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDF.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDF.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDF.ArrivalTransportMeans IsNot Nothing Then
                            EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = FCFCDF.ArrivalTransportMeans.Identity
                        End If

                        'Ansprechpartenr
                        If FCFCDF.ContactPerson IsNot Nothing Then
                            EZA.eza_AnmeldenderBearbeiterName = FCFCDF.ContactPerson.Name
                            EZA.eza_AnmeldenderBearbeiterEMail = FCFCDF.ContactPerson.MailAddress
                            EZA.eza_AnmeldenderBearbeiterStellung = FCFCDF.ContactPerson.Position
                            EZA.eza_AnmeldenderBearbeiterTel = FCFCDF.ContactPerson.PhoneNumber
                            Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & EZA.eza_AnmeldenderBearbeiterName & "'", "ADMIN")
                            If SB_Tmp <> "" Then
                                EZA.eza_Bearbeiter = SB_Tmp
                            ElseIf isAtez(EZA.eza_ObjectName) Then
                                EZA.eza_Bearbeiter = "VERIMEX"
                            Else
                                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & EZA.eza_AnmeldenderBearbeiterName & " 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



                        'Anmleder
                        If FCFCDF.Declarant IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "DT"
                            If FCFCDF.Declarant.Name IsNot Nothing Then
                                If FCFCDF.Declarant.Name.ToString.Length > 40 Then
                                    If FCFCDF.Declarant.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDF.Declarant.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDF.Declarant.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDF.Declarant.Name.ToString.Substring(80, FCFCDF.Declarant.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Declarant.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDF.Declarant.Name.ToString.Substring(40, FCFCDF.Declarant.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Declarant.Name
                                End If
                            End If
                            If FCFCDF.Declarant.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDF.Declarant.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDF.Declarant.Identification.SubsidiaryNumber
                            End If
                            If FCFCDF.Declarant.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDF.Declarant.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDF.Declarant.Address.City
                                ADR.ezaAd_PLZ = FCFCDF.Declarant.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDF.Declarant.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If



                        'Vertreter
                        If FCFCDF.Representative IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CB"
                            If FCFCDF.Representative.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDF.Representative.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDF.Representative.Identification.SubsidiaryNumber
                                EZA.eza_ADRESSEN.Add(ADR)
                            End If
                        End If


                        'Empfänger
                        If FCFCDF.Body IsNot Nothing AndAlso FCFCDF.Body.Consignee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CN"
                            If FCFCDF.Body.Consignee.Name IsNot Nothing Then
                                If FCFCDF.Body.Consignee.Name.ToString.Length > 40 Then
                                    If FCFCDF.Body.Consignee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDF.Body.Consignee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDF.Body.Consignee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDF.Body.Consignee.Name.ToString.Substring(80, FCFCDF.Body.Consignee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.Consignee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDF.Body.Consignee.Name.ToString.Substring(40, FCFCDF.Body.Consignee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.Consignee.Name
                                End If
                            End If
                            If FCFCDF.Body.Consignee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDF.Body.Consignee.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDF.Body.Consignee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDF.Body.Consignee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDF.Body.Consignee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDF.Body.Consignee.Address.City
                                ADR.ezaAd_PLZ = FCFCDF.Body.Consignee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDF.Body.Consignee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If



                        'Erwerber -->  NEU!!! = zusätzl. Steuerl. Angaben
                        If FCFCDF.Body IsNot Nothing AndAlso FCFCDF.Body.AdditionalDutyReferences IsNot Nothing AndAlso FCFCDF.Body.AdditionalDutyReferences.Count > 0 AndAlso FCFCDF.Body.AdditionalDutyReferences(0).DutyInterestedParty IsNot Nothing Then

                            For Each ADDREF In FCFCDF.Body.AdditionalDutyReferences
                                If ADDREF.ReferenceNumber IsNot Nothing Then
                                    If ADDREF.ReferenceNumber.ToString.StartsWith("FR2") Then 'ERWERBER

                                        Dim UIDNR = ADDREF.ReferenceNumber.Substring(3) ' ohne FR2
                                        Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                                        ADR.ezaAd_AdressTyp = "UC" 'ERWERBER
                                        If ADDREF.DutyInterestedParty.Name IsNot Nothing Then
                                            If ADDREF.DutyInterestedParty.Name.ToString.Length > 40 Then
                                                If ADDREF.DutyInterestedParty.Name.ToString.Length > 80 Then
                                                    ADR.ezaAd_NameFirma1 = ADDREF.DutyInterestedParty.Name.ToString.Substring(0, 40)
                                                    ADR.ezaAd_NameFirma2 = ADDREF.DutyInterestedParty.Name.ToString.Substring(40, 40)
                                                    ADR.ezaAd_NameFirma3 = ADDREF.DutyInterestedParty.Name.ToString.Substring(80, ADDREF.DutyInterestedParty.Name.ToString.Length - 80)
                                                End If
                                                ADR.ezaAd_NameFirma1 = ADDREF.DutyInterestedParty.Name.ToString.Substring(0, 40)
                                                ADR.ezaAd_NameFirma2 = ADDREF.DutyInterestedParty.Name.ToString.Substring(40, ADDREF.DutyInterestedParty.Name.ToString.Length - 40)
                                            Else
                                                ADR.ezaAd_NameFirma1 = ADDREF.DutyInterestedParty.Name
                                            End If
                                        End If

                                        ADR.ezaAd_UStIDAnmelder = UIDNR
                                        EZA.eza_UstIdAnmelder = UIDNR

                                        If ADDREF.DutyInterestedParty.Identification IsNot Nothing Then
                                            ADR.ezaAd_TeilnehmerEORI = ADDREF.DutyInterestedParty.Identification.ReferenceNumber
                                            'ADR.ezaAd_TeilnehmerNLNR = ADDREF.DutyInterestedParty.Identification.ReferenceNumber
                                        End If
                                        If ADDREF.DutyInterestedParty.Address IsNot Nothing Then
                                            ADR.ezaAd_StrasseHausNr1 = ADDREF.DutyInterestedParty.Address.Line
                                            ADR.ezaAd_StrasseHausNr2 = Nothing
                                            ADR.ezaAd_Ort = ADDREF.DutyInterestedParty.Address.City
                                            ADR.ezaAd_PLZ = ADDREF.DutyInterestedParty.Address.Postcode
                                            ADR.ezaAd_LandCode = ADDREF.DutyInterestedParty.Address.Country
                                        End If
                                        EZA.eza_ADRESSEN.Add(ADR)


                                    End If
                                End If
                            Next


                        End If

                        'Versender/Ausführer
                        If FCFCDF.Body IsNot Nothing AndAlso FCFCDF.Body.Consignor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CZ"
                            If FCFCDF.Body.Consignor.Name IsNot Nothing Then
                                If FCFCDF.Body.Consignor.Name.ToString.Length > 40 Then
                                    If FCFCDF.Body.Consignor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDF.Body.Consignor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDF.Body.Consignor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDF.Body.Consignor.Name.ToString.Substring(80, FCFCDF.Body.Consignor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.Consignor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDF.Body.Consignor.Name.ToString.Substring(40, FCFCDF.Body.Consignor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.Consignor.Name
                                End If
                            End If
                            If FCFCDF.Body.Consignor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDF.Body.Consignor.Identification.ReferenceNumber
                                '  ADR.ezaAd_TeilnehmerNLNR = FCFCDF.Body.Consignor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDF.Body.Consignor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDF.Body.Consignor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDF.Body.Consignor.Address.City
                                ADR.ezaAd_PLZ = FCFCDF.Body.Consignor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDF.Body.Consignor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Verkäufer
                        If FCFCDF.Body IsNot Nothing AndAlso FCFCDF.Body.CustomsValue IsNot Nothing AndAlso FCFCDF.Body.CustomsValue.Vendor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "SE"
                            If FCFCDF.Body.CustomsValue.Vendor.Name IsNot Nothing Then
                                If FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Length > 40 Then
                                    If FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Substring(80, FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Substring(40, FCFCDF.Body.CustomsValue.Vendor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.CustomsValue.Vendor.Name
                                End If
                            End If
                            If FCFCDF.Body.CustomsValue.Vendor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDF.Body.CustomsValue.Vendor.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDF.Body.CustomsValue.Vendor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDF.Body.CustomsValue.Vendor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDF.Body.CustomsValue.Vendor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDF.Body.CustomsValue.Vendor.Address.City
                                ADR.ezaAd_PLZ = FCFCDF.Body.CustomsValue.Vendor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDF.Body.CustomsValue.Vendor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Käufer
                        If FCFCDF.Body IsNot Nothing AndAlso FCFCDF.Body.CustomsValue IsNot Nothing AndAlso FCFCDF.Body.CustomsValue.Vendee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "BY"
                            If FCFCDF.Body.CustomsValue.Vendee.Name IsNot Nothing Then
                                If FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Length > 40 Then
                                    If FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Substring(80, FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Substring(40, FCFCDF.Body.CustomsValue.Vendee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDF.Body.CustomsValue.Vendee.Name
                                End If
                            End If
                            If FCFCDF.Body.CustomsValue.Vendee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDF.Body.CustomsValue.Vendee.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDF.Body.CustomsValue.Vendee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDF.Body.CustomsValue.Vendee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDF.Body.CustomsValue.Vendee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDF.Body.CustomsValue.Vendee.Address.City
                                ADR.ezaAd_PLZ = FCFCDF.Body.CustomsValue.Vendee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDF.Body.CustomsValue.Vendee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If
                    End If




                    ''Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+PQ++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "PQ"))


                    ''Vertr. Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AG++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AG"))

                    ''Rechnung
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AA++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AA"))

                    ''Postfachadresse
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AAP++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AAP"))
                    ''--

                    'AUFSCHUB
                    If FCFCDF.DutyDefermentApproval IsNot Nothing AndAlso FCFCDF.DutyDefermentApproval.Count > 0 Then
                        For Each TMP In FCFCDF.DutyDefermentApproval
                            Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            If TMP.DutyDefermentApplicant IsNot Nothing AndAlso TMP.DutyDefermentApplicant.Identification IsNot Nothing Then
                                AUFSCHUB.ezaAfb_AufschubnehmerEORI = TMP.DutyDefermentApplicant.Identification.ReferenceNumber
                            End If


                            AUFSCHUB.ezaAfb_AufschuBIN = TMP.AuthorisationNumber
                            AUFSCHUB.ezaAfb_HZA = TMP.AccountPrefix
                            AUFSCHUB.ezaAfb_KontoNr = TMP.AccountNumber
                            AUFSCHUB.ezaAfb_Aufschubart = TMP.Type
                            AUFSCHUB.ezaAfb_ArtAufschubantrag = TMP.ApplicationType
                            EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                        Next

                    End If


                    'Lieferbedingungen
                    If FCFCDF.Body.DeliveryTerms IsNot Nothing Then
                        EZA.eza_LieferbedingungCode = FCFCDF.Body.DeliveryTerms.Code
                        EZA.eza_LieferbedingungText = FCFCDF.Body.DeliveryTerms.Description
                        EZA.eza_LieferbedingungOrt = FCFCDF.Body.DeliveryTerms.Place
                        EZA.eza_LieferbedingungSchluessel = FCFCDF.Body.DeliveryTerms.Key
                    End If


                    ' ###################################################
                    'POSITIONEN
                    ' ###################################################

                    If FCFCDF.Body IsNot Nothing AndAlso FCFCDF.Body.GoodsItem IsNot Nothing AndAlso FCFCDF.Body.GoodsItem.Count > 0 Then
                        For Each GOODSITEM In FCFCDF.Body.GoodsItem
                            Dim POS As New DAKOSY_Worker.cDakosy_EZA_Warenposition


                            POS.ezaWP_PositionsNummer = GOODSITEM.SequenceNumber
                            If GOODSITEM.CommodityCode IsNot Nothing Then POS.ezaWP_WarennummerEZT = GOODSITEM.CommodityCode.CommodityCode
                            If GOODSITEM.Procedure IsNot Nothing Then POS.ezaWP_AnmeldeVErfahren = GOODSITEM.Procedure.RequestedPreviousProcedure

                            POS.ezaWP_AbgabensteuerungKz = GOODSITEM.CessionManagementFlag
                            POS.ezaWP_Warenbezeichnung = GOODSITEM.GoodsDescription
                            POS.ezaWP_PositionsZusatz = GOODSITEM.SupplementaryInformation

                            If GOODSITEM.CustomsValue IsNot Nothing Then
                                POS.ezaWP_OrtVerbringens = GOODSITEM.CustomsValue.DestinationPlace
                                POS.ezaWP_AbflughafenIATACode = GOODSITEM.CustomsValue.DepartureAirport
                                If GOODSITEM.CustomsValue.NetPrice IsNot Nothing Then
                                    '  POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.CurrencyCode
                                    POS.ezaWP_KursVereinbartKz = GOODSITEM.CustomsValue.NetPrice.CurrencyRateAgreedFlag
                                    POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.Value
                                    'POS.ezaWP_KursDatum= GOODSITEM.CustomsValue.NetPrice.CurrencyRate
                                    'POS.ezaWP_KursDatum = GOODSITEM.CustomsValue.NetPrice.
                                End If


                                If GOODSITEM.ForeignTradeStatistics IsNot Nothing Then
                                    POS.ezaWP_Rohmasse = GOODSITEM.ForeignTradeStatistics.GrossMassMeasure
                                    If GOODSITEM.ForeignTradeStatistics.Amount IsNot Nothing Then
                                        POS.ezaWP_AHStatMengeQualifier = GOODSITEM.ForeignTradeStatistics.Amount.Qualifier
                                        POS.ezaWP_AHStatMengeMasseinheit = GOODSITEM.ForeignTradeStatistics.Amount.MeasurementUnit
                                        POS.ezaWP_AHStatMenge = GOODSITEM.ForeignTradeStatistics.Amount.Quantity
                                        POS.ezaWP_AHStatWert = GOODSITEM.ForeignTradeStatistics.Quantity
                                    End If
                                End If

                                POS.ezaWP_UrsprungslandCode = GOODSITEM.OriginCountry
                                POS.ezaWP_Eigenmasse = GOODSITEM.NetMassMeasure

                                ' POS.ezaWP_BeguenstigungBenatragtCode = Bedingun.
                                POS.ezaWP_BedingungCode = GOODSITEM.Condition
                                'POS.ezaWP_EUCode = GOODSITEM.EUCode

                                'If GOODSITEM.Assessment IsNot Nothing Then

                                '    POS.ezaWP_Zollwert = GOODSITEM.Assessment.Amount.
                                '    POS.ezaWP_KostenEUSt = GOODSITEM.Assessment.TaxCosts
                                '    POS.ezaWP_VeredelungWertsteigerung = GOODSITEM.Assessment.OutwardProcessingFee
                                'End If


                                ''Packstücke
                                If GOODSITEM.Package IsNot Nothing Then
                                    POS.ezaWP_PackstueckArt = GOODSITEM.Package.Kind
                                    POS.ezaWP_PackstueckZeichen = GOODSITEM.Package.MarksNumbers
                                    POS.ezaWP_PackstueckAnzahl = GOODSITEM.Package.Quantity
                                End If

                                ''Packstücke
                                'If GOODSITEM.Package IsNot Nothing AndAlso GOODSITEM.Package.Count > 0 Then
                                '    For Each PCK In GOODSITEM.Package
                                '        Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                                '        If PCK.DutyDefermentApplicant IsNot Nothing AndAlso PCK.DutyDefermentApplicant.Identification IsNot Nothing Then
                                '            AUFSCHUB.ezaAfb_AufschubnehmerEORI = PCK.DutyDefermentApplicant.Identification.ReferenceNumber
                                '        End If
                                '        AUFSCHUB.ezaAfb_AufschuBIN = PCK.AuthorisationNumber
                                '        AUFSCHUB.ezaAfb_KontoNr = PCK.AccountNumber
                                '        AUFSCHUB.ezaAfb_Aufschubart = PCK.Type
                                '        AUFSCHUB.ezaAfb_ArtAufschubantrag = PCK.ApplicationType
                                '        EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                                '    Next

                                'End If


                                'Preisart
                                '-

                                POS.ezaWP_Artikelpreis = GOODSITEM.InvoiceAmount
                                'Zusatzcode
                                If GOODSITEM.SupplementaryCodes IsNot Nothing AndAlso GOODSITEM.SupplementaryCodes.Count > 0 Then
                                    Dim cnt = 0
                                    For Each s In GOODSITEM.SupplementaryCodes
                                        If cnt = 0 Then POS.ezaWP_WarennummerZusatzCode1 = s.Code
                                        If cnt = 1 Then POS.ezaWP_WarennummerZusatzCode2 = s.Code
                                        If cnt = 2 Then POS.ezaWP_WarennummerZusatzCode3 = s.Code
                                        If cnt = 3 Then POS.ezaWP_WarennummerZusatzCode4 = s.Code
                                        If cnt = 4 Then POS.ezaWP_WarennummerZusatzCode5 = s.Code
                                        If cnt = 5 Then POS.ezaWP_WarennummerZusatzCode6 = s.Code
                                        If cnt = 6 Then POS.ezaWP_WarennummerZusatzCode7 = s.Code
                                        If cnt = 7 Then POS.ezaWP_WarennummerZusatzCode8 = s.Code
                                        If cnt = 8 Then POS.ezaWP_WarennummerZusatzCode9 = s.Code
                                        If cnt = 9 Then POS.ezaWP_WarennummerZusatzCode10 = s.Code
                                        cnt += 1
                                    Next
                                End If

                                'Abgabenminderung
                                '-

                                'Sonderfalldaten
                                If GOODSITEM.SpecialCase IsNot Nothing AndAlso GOODSITEM.SpecialCase.Count > 0 Then
                                    For Each s In GOODSITEM.SpecialCase
                                        Dim SA As New DAKOSY_Worker.cDakosy_EZA_WarenpositionSonderfalldaten
                                        SA.ezaWpSfd_SonderabgabenGruppeCode = s.Group
                                        SA.ezaWpSfd_AnwendungArt = s.ApplicationType
                                        SA.ezaWpSfd_SatzBetragFaktor = s.RateOrAmountOrFactor
                                        POS.ezaWP_SONDERFALLDATEN.Add(SA)
                                    Next
                                End If



                                'Verbrauchsteuer
                                If GOODSITEM.ExciseDuty IsNot Nothing AndAlso GOODSITEM.ExciseDuty.Count > 0 Then
                                    For Each s In GOODSITEM.ExciseDuty
                                        Dim VS As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVerbrauchssteuer
                                        VS.ezaWpVs_VerbrauchsteuerCode = s.Code
                                        VS.ezaWpVs_VerbrauchssteuerWertbasis = s.Value
                                        'VS.ezaWpVs_VerbrauchssteuerMenge = s.DegreePercentage
                                        If s.Amount IsNot Nothing Then
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.Quantity
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitQualifier = s.Amount.Qualifier
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.MeasurementUnit
                                        End If
                                        POS.ezaWP_VERBRAUCHSSTEUER.Add(VS)
                                    Next
                                End If

                                If GOODSITEM.PreferentialTreatment IsNot Nothing Then
                                    POS.ezaWP_BeguenstigungBenatragtCode = GOODSITEM.PreferentialTreatment.RequestedPreferentialTreatment
                                    If GOODSITEM.PreferentialTreatment.Declaration IsNot Nothing AndAlso GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity IsNot Nothing Then
                                        POS.ezaWP_BeguenstigungsMengeMasseinheitCode = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.MeasurementUnit
                                        POS.ezaWP_BeguenstigungsMengeMenge = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Quantity
                                        POS.ezaWP_BeguenstigungsMengeQualifier = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Qualifier
                                    End If
                                End If


                                'Unterlagen
                                If GOODSITEM.Document IsNot Nothing AndAlso GOODSITEM.Document.Count > 0 Then
                                    For Each s In GOODSITEM.Document
                                        Dim UL As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen
                                        UL.ezaWpUl_Bereich = s.Division
                                        UL.ezaWpUl_VorlageKz = s.AtHandFlag
                                        If s.WriteOff IsNot Nothing Then
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheitQualifier = s.WriteOff.Qualifier
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheit = s.WriteOff.MeasurementUnit
                                            UL.ezaWpUl_AbschreibungsMenge = s.WriteOff.Quantity

                                        End If
                                        UL.ezaWpUl_Art = s.Type
                                        UL.ezaWpUl_Nummer = s.ReferenceNumber
                                        UL.ezaWpUl_DatumAusstellung = CDate(s.IssuingDate).ToShortDateString
                                        POS.ezaWP_UNTERLAGEN.Add(UL)
                                    Next
                                End If
                            End If
                            EZA.eza_WARENPOS.Add(POS)

                        Next

                    End If


                    If If(EZA.eza_Status, 0) <= 5 Then EZA.eza_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    If If(EZA.eza_Status_KEWILL_Equivalent, 0) <= 5 Then EZA.eza_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05



                    If EZA.SAVE_ALL() Then
                        If If(EZA.eza_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05,,,, statusTMP)
                    Else
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF = ""
                    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

                    addDGVEinarbeitung("EZA: FreierVerkehrAktVeredelUmwandlung", readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF)

                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)
            readEZA_FreierVerkehrAktVeredelUmwandlungXML_FCFCDF = ""
        End Try
    End Function

    Function readAES_E_EXP_FUP_DEXPFE(doc As XmlDocument) As String
        Try
            Dim xmlDoc As New XmlDocument()
            ' xmlDoc.LoadXml(xmlContent)
            If doc.GetElementsByTagName("LRN").Count > 0 Then

                Dim LRN = doc.GetElementsByTagName("LRN")(0).InnerText
                readAES_E_EXP_FUP_DEXPFE = LRN


                If LRN.Replace("-", "/").Contains("/") AndAlso LRN.Length >= 13 Then
                    Dim split = LRN.Replace("-", "/").Split("/")
                    If split(0).Length = 4 AndAlso split(1).Length >= 8 Then
                        ' LRN passt vom Format!, suche nach DY_ANM:
                        Dim dy_id As String = ""
                        If LRN.ToString.Length > 15 Then
                            dy_id = SQL.getValueTxtBySql("SELECT isnull(dy_Id,-1)  FROM  tblDakosy_Zollanmeldungen  where [dy_BezugsNr]='" & LRN.ToString.Trim & "'", "FMZOLL")
                            If dy_id = "" Then
                                dy_id = SQL.getValueTxtBySql("SELECT isnull(dy_Id,-1)  FROM  tblDakosy_Zollanmeldungen  where '" & LRN.ToString.Trim & "' LIKE [dy_BezugsNr] +'%'  and LEN(dy_BezugsNr)>=13", "FMZOLL")
                            End If
                        Else
                            dy_id = SQL.getValueTxtBySql("SELECT isnull(dy_Id,-1)  FROM   tblDakosy_Zollanmeldungen   where [dy_BezugsNr]='" & LRN.ToString.Trim & "'", "FMZOLL")
                        End If

                        '-------------------------------------------
                        If IsNumeric(dy_id) AndAlso dy_id > 0 Then
                            '-------------------------------------------
                            ' DY Anmeldung gefunden
                            '-------------------------------------------
                            Dim DY_ANM = New cDakosy_Zollanmeldungen(dy_id)
                            Dim AES_TMP = cDakosyAES.LOADByAnmIDFull(dy_id, False)
                            If DY_ANM IsNot Nothing AndAlso DY_ANM.dy_AvisoId IsNot Nothing AndAlso DY_ANM.dy_SendungsId IsNot Nothing Then



                                If True Then
                                    'Benachrichtigung
                                    Try
                                        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                                        Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_ANM.dy_SendungsId & "'", "AVISO", -1)
                                        Dim art = "B"

                                        'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_ANM.dy_SendungsId & "'", "AVISO", -1)
                                            art = "B"
                                        End If

                                        'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_ANM.dy_AvisoId & "'", "AVISO", -1)
                                            art = "B"
                                        End If

                                        'Wenn Benutzer des LKWs nicht online, Team...
                                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                            sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_ANM.dy_SendungsId & "'", "AVISO", -1)
                                            art = "T"
                                        End If

                                        'Wenn TEAM  nicht gefunden, Firma...
                                        If sendToID <= 0 Then
                                            If AES_TMP IsNot Nothing AndAlso AES_TMP.aes_firma IsNot Nothing AndAlso AES_TMP.aes_firma <> "" Then
                                                sendToID = AES_TMP.aes_firma
                                                art = "F"
                                            End If
                                        End If
                                        If sendToID = "" Then sendToID = "VERAG" 'DEFAULT
                                        'Wenn gefunden
                                        If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then

                                            Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_ANM.dy_AvisoId & "'", "AVISO", -1)

                                            If IsNumeric(statusAVISO) Then
                                                Select Case CInt(statusAVISO)

                                                    'Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben,,VERAG_PROG_ALLGEMEIN.cGlobal.erfasst    Nue
                                                    '  Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                                    'Nicht
                                                    Case Else
                                                        Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.AES_NachfrageVerbleib
                                                        VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_ANM.dy_AvisoId, DY_ANM.dy_SendungsId, code, art, sendToID, "ZOLL: Nachfrage Verbleib", 1, , "Nachfrage Verbleib",,, If(AES_TMP IsNot Nothing, If(AES_TMP.aes_firma, ""), ""))
                                                        VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_ANM.dy_SendungsId, DY_ANM.dy_AvisoId, "ZOLL: Nachfrage Verbleib", 127,,, True, "ZOLL")

                                                End Select
                                            End If
                                        End If

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

                                    End Try
                                End If


                            End If
                        End If


                    End If

                    Return LRN

                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)
        End Try
        Return ""
    End Function
    Function readEZA_FreierVerkehrAktVeredelUmwandlungXML(doc As XmlDocument) As String
        Try
            readEZA_FreierVerkehrAktVeredelUmwandlungXML = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            doc.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<FCFCDC>") Then
                Dim xmlFCFCDC = XmlString.Substring(XmlString.IndexOf("<FCFCDC>"), XmlString.IndexOf("</FCFCDC>") + 9 - XmlString.IndexOf("<FCFCDC>"))
                '  MsgBox(xmlFCFCDC)
                Dim p = Path.GetTempFileName

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



                    Dim FCFCDC As DAKOSY_Worker.FCFCDC.FCFCDC = DAKOSY_Worker.FCFCDC.FCFCDC.LoadFromFile(p)
                    '  Dim EZA As New DAKOSY_Worker.cDakosyEZA



                    If FCFCDC IsNot Nothing And FCFCDC.Header IsNot Nothing And FCFCDC.Header.LocalReferenceNumber IsNot Nothing Then
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML = FCFCDC.Header.LocalReferenceNumber
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If


                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readEZA_FreierVerkehrAktVeredelUmwandlungXML, "EZA")

                    Dim EZA As DAKOSY_Worker.cDakosyEZA = DAKOSY_Worker.cDakosyEZA.LOADByBezugsNr(readEZA_FreierVerkehrAktVeredelUmwandlungXML, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
                    If EZA Is Nothing Then EZA = New DAKOSY_Worker.cDakosyEZA
                    If DY_TMP IsNot Nothing Then EZA.eza_dyaAnmID = DY_TMP.dy_Id

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


                    If FCFCDC IsNot Nothing Then
                        EZA.eza_ObjectName = readEZA_FreierVerkehrAktVeredelUmwandlungXML

                        If FCFCDC.MetaData IsNot Nothing Then
                            If FCFCDC.MetaData.Preparation IsNot Nothing Then EZA.eza_Trans_DatumZeit = CDate(FCFCDC.MetaData.Preparation.Date).ToShortDateString
                        End If


                        If FCFCDC.Header IsNot Nothing Then

                            EZA.eza_VersendungsLandCode = FCFCDC.Header.DepartureCountry
                            EZA.eza_FinanzamtAnmelder = FCFCDC.Header.TaxOffice
                            EZA.eza_UstIdAnmelder = FCFCDC.Header.TaxNumber

                            EZA.eza_Warenort = FCFCDC.Header.GoodsLocation
                            EZA.eza_Ausstellungsort = FCFCDC.Header.DeclarationPlace


                            EZA.eza_ZollrechtlicherStatus = FCFCDC.Header.CustomsGoodsStatus
                            EZA.eza_Zahlungsart = FCFCDC.Header.PaymentMethod
                            EZA.eza_AnmelderistEmpfaenger = FCFCDC.Header.DeclarantIsConsigneeFlag
                            EZA.eza_VertretungsVerhaeltnisCode = FCFCDC.Header.RepresentativeRelationshipFlag
                            EZA.eza_Vorsteuerabzug = FCFCDC.Header.InputTaxDeductionFlag
                            EZA.eza_ZusatzangabenAnmeldung = FCFCDC.Header.AdditionalInformation

                            ' EZA.eza_VerfahrenBeantragtCode
                        End If

                    End If

                    If FCFCDC.Body IsNot Nothing Then
                        If FCFCDC.Body.ForeignTradeStatistics IsNot Nothing Then

                            EZA.eza_ArtGeschaeftCode = FCFCDC.Body.ForeignTradeStatistics.TransactionType
                            EZA.eza_Bestimmungsland = FCFCDC.Body.ForeignTradeStatistics.DestinationCountry
                            EZA.eza_Bestimmungsbundesland = FCFCDC.Body.ForeignTradeStatistics.DestinationFederalState

                            If FCFCDC.Body.ForeignTradeStatistics.EntryCustomsOffice IsNot Nothing Then
                                EZA.eza_Eingangszollstelle = FCFCDC.Body.ForeignTradeStatistics.EntryCustomsOffice.ReferenceNumber
                            End If

                            EZA.eza_Statistikstatus = FCFCDC.Body.ForeignTradeStatistics.GoodsStatus
                            EZA.eza_DV1Kz = FCFCDC.Body.CustomsValueFlag
                            EZA.eza_GesamtRohmasse = FCFCDC.Body.ForeignTradeStatistics.TotalGrossMassMeasure

                        End If

                        If FCFCDC.Body.PaymentTransaction IsNot Nothing Then
                            EZA.eza_Rechnungswaehrung = FCFCDC.Body.PaymentTransaction.CurrencyCode
                            EZA.eza_Rechnungspreis = FCFCDC.Body.PaymentTransaction.Amount

                        End If

                        If FCFCDC.Body.CustomsValue IsNot Nothing Then
                            If FCFCDC.Body.CustomsValue.RestrictionOrCondition IsNot Nothing Then EZA.eza_DV1EinschraenkungenKz = FCFCDC.Body.CustomsValue.RestrictionOrCondition.RestrictionFlag
                            EZA.eza_DV1FruehereEntscheidungen = FCFCDC.Body.CustomsValue.FormerDecisions

                            If FCFCDC.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1Verbundenheit = FCFCDC.Body.CustomsValue.Affiliation.Type
                            If FCFCDC.Body.CustomsValue.Affiliation IsNot Nothing Then EZA.eza_DV1VerbungenheitEinzelheiten = FCFCDC.Body.CustomsValue.Affiliation.Description
                            If FCFCDC.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenUmstand = FCFCDC.Body.CustomsValue.LicenseFee.Description
                            If FCFCDC.Body.CustomsValue.LicenseFee IsNot Nothing Then EZA.eza_DV1LizenzgebuehrenKz = FCFCDC.Body.CustomsValue.LicenseFee.LicenseFeeFlag
                        End If

                        If FCFCDC.Body.Document IsNot Nothing AndAlso FCFCDC.Body.Document.Count > 0 Then
                            For Each docTMP In FCFCDC.Body.Document
                                Dim UNTERLAGE As New DAKOSY_Worker.cDakosy_EZA_Unterlagen
                                UNTERLAGE.ezaUl_Art = docTMP.Type
                                UNTERLAGE.ezaUl_Nummer = docTMP.ReferenceNumber
                                UNTERLAGE.ezaUl_Bereich = docTMP.Division
                                UNTERLAGE.ezaUl_DatumAusstellung = CDate(docTMP.IssuingDate).ToShortDateString

                                EZA.eza_UNTERLAGEN.Add(UNTERLAGE)
                            Next

                        End If

                        '  EZA.eza_DV1Verbundenheit = cEDI.getSimpleLine("GIS+904:::", lines, Nothing)???
                        '  EZA.eza_BewilligungsIDZLAVUV = cEDI.getSimpleLine("RFF+AEM:", lines) '?

                        'Vorpapier
                        If FCFCDC.PreviousAdministrativeReferences IsNot Nothing Then
                            EZA.eza_VorpapierArtCode = FCFCDC.PreviousAdministrativeReferences.Type
                            If FCFCDC.PreviousAdministrativeReferences.PreviousAdministrativeReference IsNot Nothing Then EZA.eza_VorpapierNr = FCFCDC.PreviousAdministrativeReferences.PreviousAdministrativeReference.ReferenceNumber
                        End If

                        'Beförderungsmittel Grenze
                        If FCFCDC.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDC.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDC.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDC.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDC.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDC.BorderTransportMeans IsNot Nothing Then
                            EZA.eza_BeförderungsmittelGrenzeArt = FCFCDC.BorderTransportMeans.Type
                            EZA.eza_VerkehrszweigGrenze = FCFCDC.BorderTransportMeans.Mode
                            EZA.eza_BeförderungsmittelGrenze = FCFCDC.BorderTransportMeans.Information
                            EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = FCFCDC.BorderTransportMeans.Nationality
                        End If

                        'Beförderungsmittel Inland
                        If FCFCDC.ArrivalTransportMeans IsNot Nothing Then
                            EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = FCFCDC.ArrivalTransportMeans.Identity
                        End If

                        'Ansprechpartenr
                        If FCFCDC.ContactPerson IsNot Nothing Then
                            EZA.eza_AnmeldenderBearbeiterName = FCFCDC.ContactPerson.Name
                            EZA.eza_AnmeldenderBearbeiterEMail = FCFCDC.ContactPerson.MailAddress
                            EZA.eza_AnmeldenderBearbeiterStellung = FCFCDC.ContactPerson.Position
                            EZA.eza_AnmeldenderBearbeiterTel = FCFCDC.ContactPerson.PhoneNumber
                            Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & EZA.eza_AnmeldenderBearbeiterName & "'", "ADMIN")
                            If SB_Tmp <> "" Then
                                EZA.eza_Bearbeiter = SB_Tmp
                            ElseIf isAtez(EZA.eza_ObjectName) Then
                                EZA.eza_Bearbeiter = "VERIMEX"
                            Else
                                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & EZA.eza_AnmeldenderBearbeiterName & " 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



                        'Anmleder
                        If FCFCDC.Declarant IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "DT"
                            If FCFCDC.Declarant.Name IsNot Nothing Then
                                If FCFCDC.Declarant.Name.ToString.Length > 40 Then
                                    If FCFCDC.Declarant.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDC.Declarant.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDC.Declarant.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDC.Declarant.Name.ToString.Substring(80, FCFCDC.Declarant.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Declarant.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDC.Declarant.Name.ToString.Substring(40, FCFCDC.Declarant.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Declarant.Name
                                End If
                            End If
                            If FCFCDC.Declarant.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Declarant.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Declarant.Identification.SubsidiaryNumber
                            End If
                            If FCFCDC.Declarant.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDC.Declarant.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDC.Declarant.Address.City
                                ADR.ezaAd_PLZ = FCFCDC.Declarant.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDC.Declarant.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If



                        'Vertreter
                        If FCFCDC.Representative IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CB"
                            If FCFCDC.Representative.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Representative.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Representative.Identification.SubsidiaryNumber
                                EZA.eza_ADRESSEN.Add(ADR)
                            End If
                        End If


                        'Empfänger
                        If FCFCDC.Body IsNot Nothing AndAlso FCFCDC.Body.Consignee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CN"
                            If FCFCDC.Body.Consignee.Name IsNot Nothing Then
                                If FCFCDC.Body.Consignee.Name.ToString.Length > 40 Then
                                    If FCFCDC.Body.Consignee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDC.Body.Consignee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDC.Body.Consignee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDC.Body.Consignee.Name.ToString.Substring(80, FCFCDC.Body.Consignee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.Consignee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDC.Body.Consignee.Name.ToString.Substring(40, FCFCDC.Body.Consignee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.Consignee.Name
                                End If
                            End If
                            If FCFCDC.Body.Consignee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Body.Consignee.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Body.Consignee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDC.Body.Consignee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDC.Body.Consignee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDC.Body.Consignee.Address.City
                                ADR.ezaAd_PLZ = FCFCDC.Body.Consignee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDC.Body.Consignee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Erwerber
                        If FCFCDC.Body IsNot Nothing AndAlso FCFCDC.Body.Acquirer IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "UC"
                            If FCFCDC.Body.Acquirer.Name IsNot Nothing Then
                                If FCFCDC.Body.Acquirer.Name.ToString.Length > 40 Then
                                    If FCFCDC.Body.Acquirer.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDC.Body.Acquirer.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDC.Body.Acquirer.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDC.Body.Acquirer.Name.ToString.Substring(80, FCFCDC.Body.Acquirer.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.Acquirer.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDC.Body.Acquirer.Name.ToString.Substring(40, FCFCDC.Body.Acquirer.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.Acquirer.Name
                                End If
                            End If
                            If FCFCDC.Body.Acquirer.TaxNumber IsNot Nothing Then
                                ADR.ezaAd_UStIDAnmelder = FCFCDC.Body.Acquirer.TaxNumber
                            End If

                            If FCFCDC.Body.Acquirer.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Body.Acquirer.Identification.ReferenceNumber
                                ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Body.Acquirer.Identification.SubsidiaryNumber
                            End If
                            If FCFCDC.Body.Acquirer.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDC.Body.Acquirer.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDC.Body.Acquirer.Address.City
                                ADR.ezaAd_PLZ = FCFCDC.Body.Acquirer.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDC.Body.Acquirer.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Versender/Ausführer
                        If FCFCDC.Body IsNot Nothing AndAlso FCFCDC.Body.Consignor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "CZ"
                            If FCFCDC.Body.Consignor.Name IsNot Nothing Then
                                If FCFCDC.Body.Consignor.Name.ToString.Length > 40 Then
                                    If FCFCDC.Body.Consignor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDC.Body.Consignor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDC.Body.Consignor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDC.Body.Consignor.Name.ToString.Substring(80, FCFCDC.Body.Consignor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.Consignor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDC.Body.Consignor.Name.ToString.Substring(40, FCFCDC.Body.Consignor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.Consignor.Name
                                End If
                            End If
                            If FCFCDC.Body.Consignor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Body.Consignor.Identification.ReferenceNumber
                                '  ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Body.Consignor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDC.Body.Consignor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDC.Body.Consignor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDC.Body.Consignor.Address.City
                                ADR.ezaAd_PLZ = FCFCDC.Body.Consignor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDC.Body.Consignor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Verkäufer
                        If FCFCDC.Body IsNot Nothing AndAlso FCFCDC.Body.CustomsValue IsNot Nothing AndAlso FCFCDC.Body.CustomsValue.Vendor IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "SE"
                            If FCFCDC.Body.CustomsValue.Vendor.Name IsNot Nothing Then
                                If FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Length > 40 Then
                                    If FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Substring(80, FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Substring(40, FCFCDC.Body.CustomsValue.Vendor.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.CustomsValue.Vendor.Name
                                End If
                            End If
                            If FCFCDC.Body.CustomsValue.Vendor.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Body.CustomsValue.Vendor.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Body.CustomsValue.Vendor.Identification.SubsidiaryNumber
                            End If
                            If FCFCDC.Body.CustomsValue.Vendor.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDC.Body.CustomsValue.Vendor.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDC.Body.CustomsValue.Vendor.Address.City
                                ADR.ezaAd_PLZ = FCFCDC.Body.CustomsValue.Vendor.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDC.Body.CustomsValue.Vendor.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If

                        'Käufer
                        If FCFCDC.Body IsNot Nothing AndAlso FCFCDC.Body.CustomsValue IsNot Nothing AndAlso FCFCDC.Body.CustomsValue.Vendee IsNot Nothing Then
                            Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
                            ADR.ezaAd_AdressTyp = "BY"
                            If FCFCDC.Body.CustomsValue.Vendee.Name IsNot Nothing Then
                                If FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Length > 40 Then
                                    If FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Length > 80 Then
                                        ADR.ezaAd_NameFirma1 = FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                        ADR.ezaAd_NameFirma2 = FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Substring(40, 40)
                                        ADR.ezaAd_NameFirma3 = FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Substring(80, FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Length - 80)
                                    End If
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Substring(0, 40)
                                    ADR.ezaAd_NameFirma2 = FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Substring(40, FCFCDC.Body.CustomsValue.Vendee.Name.ToString.Length - 40)
                                Else
                                    ADR.ezaAd_NameFirma1 = FCFCDC.Body.CustomsValue.Vendee.Name
                                End If
                            End If
                            If FCFCDC.Body.CustomsValue.Vendee.Identification IsNot Nothing Then
                                ADR.ezaAd_TeilnehmerEORI = FCFCDC.Body.CustomsValue.Vendee.Identification.ReferenceNumber
                                'ADR.ezaAd_TeilnehmerNLNR = FCFCDC.Body.CustomsValue.Vendee.Identification.SubsidiaryNumber
                            End If
                            If FCFCDC.Body.CustomsValue.Vendee.Address IsNot Nothing Then
                                ADR.ezaAd_StrasseHausNr1 = FCFCDC.Body.CustomsValue.Vendee.Address.Line
                                ADR.ezaAd_StrasseHausNr2 = Nothing
                                ADR.ezaAd_Ort = FCFCDC.Body.CustomsValue.Vendee.Address.City
                                ADR.ezaAd_PLZ = FCFCDC.Body.CustomsValue.Vendee.Address.Postcode
                                ADR.ezaAd_LandCode = FCFCDC.Body.CustomsValue.Vendee.Address.Country
                            End If
                            EZA.eza_ADRESSEN.Add(ADR)
                        End If
                    End If




                    ''Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+PQ++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "PQ"))


                    ''Vertr. Zollwertanmelder
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AG++", lines, , False))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AG"))

                    ''Rechnung
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AA++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AA"))

                    ''Postfachadresse
                    'ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AAP++", lines))
                    'If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AAP"))
                    ''--

                    'AUFSCHUB
                    If FCFCDC.DutyDefermentApproval IsNot Nothing AndAlso FCFCDC.DutyDefermentApproval.Count > 0 Then
                        For Each TMP In FCFCDC.DutyDefermentApproval
                            Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            If TMP.DutyDefermentApplicant IsNot Nothing AndAlso TMP.DutyDefermentApplicant.Identification IsNot Nothing Then
                                AUFSCHUB.ezaAfb_AufschubnehmerEORI = TMP.DutyDefermentApplicant.Identification.ReferenceNumber
                            End If


                            AUFSCHUB.ezaAfb_AufschuBIN = TMP.AuthorisationNumber
                            AUFSCHUB.ezaAfb_HZA = TMP.AccountPrefix
                            AUFSCHUB.ezaAfb_KontoNr = TMP.AccountNumber
                            AUFSCHUB.ezaAfb_Aufschubart = TMP.Type
                            AUFSCHUB.ezaAfb_ArtAufschubantrag = TMP.ApplicationType
                            EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                        Next

                    End If


                    'Lieferbedingungen
                    If FCFCDC.Body.DeliveryTerms IsNot Nothing Then
                        EZA.eza_LieferbedingungCode = FCFCDC.Body.DeliveryTerms.Code
                        EZA.eza_LieferbedingungText = FCFCDC.Body.DeliveryTerms.Description
                        EZA.eza_LieferbedingungOrt = FCFCDC.Body.DeliveryTerms.Place
                        EZA.eza_LieferbedingungSchluessel = FCFCDC.Body.DeliveryTerms.Key
                    End If


                    ' ###################################################
                    'POSITIONEN
                    ' ###################################################

                    If FCFCDC.Body IsNot Nothing AndAlso FCFCDC.Body.GoodsItem IsNot Nothing AndAlso FCFCDC.Body.GoodsItem.Count > 0 Then
                        For Each GOODSITEM In FCFCDC.Body.GoodsItem
                            Dim POS As New DAKOSY_Worker.cDakosy_EZA_Warenposition


                            POS.ezaWP_PositionsNummer = GOODSITEM.SequenceNumber
                            If GOODSITEM.CommodityCode IsNot Nothing Then POS.ezaWP_WarennummerEZT = GOODSITEM.CommodityCode.CommodityCode
                            If GOODSITEM.Procedure IsNot Nothing Then POS.ezaWP_AnmeldeVErfahren = GOODSITEM.Procedure.RequestedPreviousProcedure

                            POS.ezaWP_AbgabensteuerungKz = GOODSITEM.CessionManagementFlag
                            POS.ezaWP_Warenbezeichnung = GOODSITEM.GoodsDescription
                            POS.ezaWP_PositionsZusatz = GOODSITEM.SupplementaryInformation

                            If GOODSITEM.CustomsValue IsNot Nothing Then
                                POS.ezaWP_OrtVerbringens = GOODSITEM.CustomsValue.DestinationPlace
                                POS.ezaWP_AbflughafenIATACode = GOODSITEM.CustomsValue.DepartureAirport
                                If GOODSITEM.CustomsValue.NetPrice IsNot Nothing Then
                                    '  POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.CurrencyCode
                                    POS.ezaWP_KursVereinbartKz = GOODSITEM.CustomsValue.NetPrice.CurrencyRateAgreedFlag
                                    POS.ezaWP_KursBetragVereinbart = GOODSITEM.CustomsValue.NetPrice.Value
                                    'POS.ezaWP_KursDatum= GOODSITEM.CustomsValue.NetPrice.CurrencyRate
                                    'POS.ezaWP_KursDatum = GOODSITEM.CustomsValue.NetPrice.
                                End If


                                If GOODSITEM.ForeignTradeStatistics IsNot Nothing Then
                                    POS.ezaWP_Rohmasse = GOODSITEM.ForeignTradeStatistics.GrossMassMeasure
                                    If GOODSITEM.ForeignTradeStatistics.Amount IsNot Nothing Then
                                        POS.ezaWP_AHStatMengeQualifier = GOODSITEM.ForeignTradeStatistics.Amount.Qualifier
                                        POS.ezaWP_AHStatMengeMasseinheit = GOODSITEM.ForeignTradeStatistics.Amount.MeasurementUnit
                                        POS.ezaWP_AHStatMenge = GOODSITEM.ForeignTradeStatistics.Amount.Quantity
                                        POS.ezaWP_AHStatWert = GOODSITEM.ForeignTradeStatistics.Quantity
                                    End If
                                End If

                                POS.ezaWP_UrsprungslandCode = GOODSITEM.OriginCountry
                                POS.ezaWP_Eigenmasse = GOODSITEM.NetMassMeasure

                                ' POS.ezaWP_BeguenstigungBenatragtCode = Bedingun.
                                POS.ezaWP_BedingungCode = GOODSITEM.Condition
                                POS.ezaWP_EUCode = GOODSITEM.EUCode

                                'If GOODSITEM.Assessment IsNot Nothing Then

                                '    POS.ezaWP_Zollwert = GOODSITEM.Assessment.Amount.
                                '    POS.ezaWP_KostenEUSt = GOODSITEM.Assessment.TaxCosts
                                '    POS.ezaWP_VeredelungWertsteigerung = GOODSITEM.Assessment.OutwardProcessingFee
                                'End If


                                ''Packstücke
                                If GOODSITEM.Package IsNot Nothing Then
                                    POS.ezaWP_PackstueckArt = GOODSITEM.Package.Kind
                                    POS.ezaWP_PackstueckZeichen = GOODSITEM.Package.MarksNumbers
                                    POS.ezaWP_PackstueckAnzahl = GOODSITEM.Package.Quantity
                                End If

                                ''Packstücke
                                'If GOODSITEM.Package IsNot Nothing AndAlso GOODSITEM.Package.Count > 0 Then
                                '    For Each PCK In GOODSITEM.Package
                                '        Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                                '        If PCK.DutyDefermentApplicant IsNot Nothing AndAlso PCK.DutyDefermentApplicant.Identification IsNot Nothing Then
                                '            AUFSCHUB.ezaAfb_AufschubnehmerEORI = PCK.DutyDefermentApplicant.Identification.ReferenceNumber
                                '        End If
                                '        AUFSCHUB.ezaAfb_AufschuBIN = PCK.AuthorisationNumber
                                '        AUFSCHUB.ezaAfb_KontoNr = PCK.AccountNumber
                                '        AUFSCHUB.ezaAfb_Aufschubart = PCK.Type
                                '        AUFSCHUB.ezaAfb_ArtAufschubantrag = PCK.ApplicationType
                                '        EZA.eza_AUFSCHUB.Add(AUFSCHUB)
                                '    Next

                                'End If


                                'Preisart
                                '-

                                POS.ezaWP_Artikelpreis = GOODSITEM.InvoiceAmount
                                'Zusatzcode
                                If GOODSITEM.SupplementaryCodes IsNot Nothing AndAlso GOODSITEM.SupplementaryCodes.Count > 0 Then
                                    Dim cnt = 0
                                    For Each s In GOODSITEM.SupplementaryCodes
                                        If cnt = 0 Then POS.ezaWP_WarennummerZusatzCode1 = s.Code
                                        If cnt = 1 Then POS.ezaWP_WarennummerZusatzCode2 = s.Code
                                        If cnt = 2 Then POS.ezaWP_WarennummerZusatzCode3 = s.Code
                                        If cnt = 3 Then POS.ezaWP_WarennummerZusatzCode4 = s.Code
                                        If cnt = 4 Then POS.ezaWP_WarennummerZusatzCode5 = s.Code
                                        If cnt = 5 Then POS.ezaWP_WarennummerZusatzCode6 = s.Code
                                        If cnt = 6 Then POS.ezaWP_WarennummerZusatzCode7 = s.Code
                                        If cnt = 7 Then POS.ezaWP_WarennummerZusatzCode8 = s.Code
                                        If cnt = 8 Then POS.ezaWP_WarennummerZusatzCode9 = s.Code
                                        If cnt = 9 Then POS.ezaWP_WarennummerZusatzCode10 = s.Code
                                        cnt += 1
                                    Next
                                End If

                                'Abgabenminderung
                                '-

                                'Sonderfalldaten
                                If GOODSITEM.SpecialCase IsNot Nothing AndAlso GOODSITEM.SpecialCase.Count > 0 Then
                                    For Each s In GOODSITEM.SpecialCase
                                        Dim SA As New DAKOSY_Worker.cDakosy_EZA_WarenpositionSonderfalldaten
                                        SA.ezaWpSfd_SonderabgabenGruppeCode = s.Group
                                        SA.ezaWpSfd_AnwendungArt = s.ApplicationType
                                        SA.ezaWpSfd_SatzBetragFaktor = s.RateOrAmountOrFactor
                                        POS.ezaWP_SONDERFALLDATEN.Add(SA)
                                    Next
                                End If



                                'Verbrauchsteuer
                                If GOODSITEM.ExciseDuty IsNot Nothing AndAlso GOODSITEM.ExciseDuty.Count > 0 Then
                                    For Each s In GOODSITEM.ExciseDuty
                                        Dim VS As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVerbrauchssteuer
                                        VS.ezaWpVs_VerbrauchsteuerCode = s.Code
                                        VS.ezaWpVs_VerbrauchssteuerWertbasis = s.Value
                                        'VS.ezaWpVs_VerbrauchssteuerMenge = s.DegreePercentage
                                        If s.Amount IsNot Nothing Then
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.Quantity
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitQualifier = s.Amount.Qualifier
                                            VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = s.Amount.MeasurementUnit
                                        End If
                                        POS.ezaWP_VERBRAUCHSSTEUER.Add(VS)
                                    Next
                                End If

                                If GOODSITEM.PreferentialTreatment IsNot Nothing Then
                                    POS.ezaWP_BeguenstigungBenatragtCode = GOODSITEM.PreferentialTreatment.RequestedPreferentialTreatment
                                    If GOODSITEM.PreferentialTreatment.Declaration IsNot Nothing AndAlso GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity IsNot Nothing Then
                                        POS.ezaWP_BeguenstigungsMengeMasseinheitCode = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.MeasurementUnit
                                        POS.ezaWP_BeguenstigungsMengeMenge = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Quantity
                                        POS.ezaWP_BeguenstigungsMengeQualifier = GOODSITEM.PreferentialTreatment.Declaration.PreferentialTreatmentQuantity.Qualifier
                                    End If
                                End If


                                'Unterlagen
                                If GOODSITEM.Document IsNot Nothing AndAlso GOODSITEM.Document.Count > 0 Then
                                    For Each s In GOODSITEM.Document
                                        Dim UL As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen
                                        UL.ezaWpUl_Bereich = s.Division
                                        UL.ezaWpUl_VorlageKz = s.AtHandFlag
                                        If s.WriteOff IsNot Nothing Then
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheitQualifier = s.WriteOff.Qualifier
                                            UL.ezaWpUl_AbschreibungsMengeMasseinheit = s.WriteOff.MeasurementUnit
                                            UL.ezaWpUl_AbschreibungsMenge = s.WriteOff.Quantity

                                        End If
                                        UL.ezaWpUl_Art = s.Type
                                        UL.ezaWpUl_Nummer = s.ReferenceNumber
                                        UL.ezaWpUl_DatumAusstellung = CDate(s.IssuingDate).ToShortDateString
                                        POS.ezaWP_UNTERLAGEN.Add(UL)
                                    Next
                                End If
                            End If
                            EZA.eza_WARENPOS.Add(POS)

                        Next

                        'TODO: SET_FIRMA
                        tryGetFirmaNiederlassung(EZA.eza_firma, EZA.eza_niederlassung, (EZA.eza_AnmeldenderBearbeiterEMail, "").ToString, EZA.eza_ObjectName)

                    End If


                    If If(EZA.eza_Status, 0) <= 5 Then EZA.eza_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                    If If(EZA.eza_Status_KEWILL_Equivalent, 0) <= 5 Then EZA.eza_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05




                    If EZA.SAVE_ALL() Then
                        If If(EZA.eza_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                    Else
                        readEZA_FreierVerkehrAktVeredelUmwandlungXML = ""
                    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

                    addDGVEinarbeitung("EZA: FreierVerkehrAktVeredelUmwandlung", readEZA_FreierVerkehrAktVeredelUmwandlungXML)

                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)
            readEZA_FreierVerkehrAktVeredelUmwandlungXML = ""
        End Try
    End Function



    Function readEZA_FreierVerkehrAktVeredelUmwandlung(lines()) As String
        Try

            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim seeErrLine = 0
            Dim bezugsNr = ""
            Dim cntDurchgangsZst = 0
            '  Dim cntRoute = 0

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

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

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

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

            EZA.eza_ObjectName = bezugsNr

            Dim CST = cEDI.getValuesFromLine(cEDI.getSimpleLine("CST++", lines, Nothing))
            If CST.Length > 0 Then : End If ' Anz Pos
            If CST.Length > 1 Then EZA.eza_ArtGeschaeftCode = CST(1)
            '   If CST.Length > 2 Then EZA.eza_AnmeldungArt = CST(2)
            'If CST.Length > 3 Then EZA. = CST(3) Vorz.eiNgabe
            ' BGM+ Anmeldeart??


            EZA.eza_Ausstellungsort = cEDI.getSimpleLine("LOC+44+:::", lines, Nothing)
            EZA.eza_VersendungsLandCode = cEDI.getSimpleLine("LOC+113+", lines, Nothing)
            EZA.eza_Bestimmungsland = cEDI.getSimpleLine("LOC+28+", lines, Nothing) '28
            EZA.eza_FinanzamtAnmelder = cEDI.getSimpleLine("LOC+2+", lines, Nothing)
            EZA.eza_UstIdAnmelder = cEDI.getSimpleLine("RFF+VA:", lines, Nothing)

            EZA.eza_Bestimmungsbundesland = cEDI.getSimpleLine("LOC+47+", lines, Nothing)


            EZA.eza_Eingangszollstelle = cEDI.getSimpleLine("LOC+41+", lines, Nothing)
            EZA.eza_Warenort = cEDI.getSimpleLine("LOC+14+:::", lines, Nothing)
            If True Then


                EZA.eza_Rechnungswaehrung = cEDI.getSimpleLine("MOA+169::", lines, Nothing)
                Dim RechnugnspreisTmp = cEDI.getSubValues(cEDI.getSimpleLine("MOA+128:", lines))
                If RechnugnspreisTmp.Length > 0 AndAlso IsNumeric(RechnugnspreisTmp(0)) Then EZA.eza_Rechnungspreis = RechnugnspreisTmp(0)
                'If RechnugnspreisTmp.Length > 1 Then EZA.eza_Rechnungswaehrung = cEDI.getSimpleLine("MOA+169::", lines, Nothing)


                'MOA+128:
                ' MOA+169::
                EZA.eza_Trans_DatumZeit = getEDIDatum(cEDI.getSimpleLine("DTM+137:", lines, Nothing))


                EZA.eza_ZollrechtlicherStatus = cEDI.getSimpleLine("GIS+902:::", lines, Nothing)
                EZA.eza_Zahlungsart = cEDI.getSimpleLine("GIS+900:::", lines, Nothing)

                EZA.eza_Statistikstatus = cEDI.getSimpleLine("GIS+901:::", lines, Nothing)
                EZA.eza_VertretungsVerhaeltnisCode = cEDI.getSimpleLine("GIS+903:::", lines, Nothing)
                EZA.eza_AnmelderistEmpfaenger = cEDI.getSimpleLine("GIS+911:::", lines, Nothing)
                EZA.eza_Vorsteuerabzug = cEDI.getSimpleLine("GIS+913:::", lines, Nothing)
                EZA.eza_DV1Kz = cEDI.getSimpleLine("GIS+927:::", lines, Nothing)

                ' EZA.ContainerKZ = cEDI.getSimpleLine("GIS+928:::", lines,nothing)
                EZA.eza_DV1Verbundenheit = cEDI.getSimpleLine("GIS+904:::", lines, Nothing)
                EZA.eza_DV1EinschraenkungenKz = cEDI.getSimpleLine("GIS+905:::", lines, Nothing)
                EZA.eza_DV1LizenzgebuehrenKz = cEDI.getSimpleLine("GIS+907:::", lines, Nothing)
                EZA.eza_DV1Vertretungsverhaeltnis = cEDI.getSimpleLine("GIS+909:::", lines, Nothing)
                EZA.eza_DV1BedingungenLeistungenKz = cEDI.getSimpleLine("GIS+912:::", lines, Nothing)
                EZA.eza_GesamtRohmasse = cEDI.getSimpleLine("MEA+AAE+G+KGM:", lines, Nothing)

                'EZA.eza_DV1Einschraenkungen = cEDI.getSimpleLine("FTX+ABC+++", lines)
                Dim FruehereEntscheidungen = cEDI.getSubValues(cEDI.getSimpleLine("FTX+AAH+++", lines))
                If FruehereEntscheidungen.Length = 1 Then
                    EZA.eza_DV1FruehereEntscheidungen = FruehereEntscheidungen(0)
                ElseIf FruehereEntscheidungen.Length > 1 Then
                    EZA.eza_DV1FruehereEntscheidungen = FruehereEntscheidungen(0) & " " & FruehereEntscheidungen(1)
                End If

                Dim VerbungenheitEinzelheiten = cEDI.getSubValues(cEDI.getSimpleLine("FTX+AAK+++", lines))
                If VerbungenheitEinzelheiten.Length = 1 Then
                    EZA.eza_DV1VerbungenheitEinzelheiten = VerbungenheitEinzelheiten(0)
                ElseIf VerbungenheitEinzelheiten.Length > 1 Then
                    EZA.eza_DV1VerbungenheitEinzelheiten = VerbungenheitEinzelheiten(0) & " " & VerbungenheitEinzelheiten(1)
                End If

                Dim LizenzgebuehrenUmstand = cEDI.getSubValues(cEDI.getSimpleLine("FTX+AAX+++", lines))
                If LizenzgebuehrenUmstand.Length = 1 Then
                    EZA.eza_DV1LizenzgebuehrenUmstand = LizenzgebuehrenUmstand(0)
                ElseIf LizenzgebuehrenUmstand.Length > 1 Then
                    EZA.eza_DV1LizenzgebuehrenUmstand = LizenzgebuehrenUmstand(0) & " " & LizenzgebuehrenUmstand(1)
                End If


                Dim ZusatzangabenAnmeldung = cEDI.getSubValues(cEDI.getSimpleLine("FTX+AAX+++", lines))
                If ZusatzangabenAnmeldung.Length = 1 Then
                    EZA.eza_ZusatzangabenAnmeldung = ZusatzangabenAnmeldung(0)
                ElseIf ZusatzangabenAnmeldung.Length > 1 Then
                    For Each s In ZusatzangabenAnmeldung
                        EZA.eza_ZusatzangabenAnmeldung &= s & " "
                    Next
                    EZA.eza_ZusatzangabenAnmeldung = EZA.eza_ZusatzangabenAnmeldung.ToString.Trim
                End If


                Dim Vorpapier = cEDI.getSubValues(cEDI.getSimpleLine("RFF+", lines))
                If Vorpapier.Length > 1 Then EZA.eza_VorpapierNr = Vorpapier(1)
                If Vorpapier.Length > 3 Then EZA.eza_VorpapierArtCode = Vorpapier(3)

                EZA.eza_BewilligungsIDZLAVUV = cEDI.getSimpleLine("RFF+AEM:", lines) '?

                'EZA.UIDnr = cEDI.getSimpleLine("RFF+VA:", lines)

                ' 	Beförderungsmittel Grenze
                Dim Transport = cEDI.getValuesFromLine(cEDI.getSimpleLine("TDT+11", lines))
                If Transport.Length > 2 Then EZA.eza_VerkehrszweigGrenze = Transport(2)
                If Transport.Length > 7 Then
                    Dim subTmp = cEDI.getSubValues(Transport(7))
                    If subTmp.Length > 0 Then EZA.eza_BeförderungsmittelGrenzeArt = subTmp(0)
                    If subTmp.Length > 4 Then EZA.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = subTmp(4)
                End If

                ' 	Beförderungsmittel Inland
                Dim Transport2 = cEDI.getValuesFromLine(cEDI.getSimpleLine("TDT+13", lines))
                If Transport2.Length > 2 Then EZA.eza_VerkehrszweigInland = Transport2(2)
                If Transport2.Length > 3 Then
                    Dim subTmp = cEDI.getSubValues(Transport2(3))
                    'If subTmp.Length > 1 Then EZA.Beschreibung? = subTmp(1)
                End If
                If Transport2.Length > 7 Then
                    Dim subTmp = cEDI.getSubValues(Transport2(7))
                    If subTmp.Length > 3 Then EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = subTmp(3)
                End If


                'Vorpapier:
                Dim cnt = 0

                For Each l In lines
                    If l.ToString.StartsWith("UNS+D") Then Exit For 'Nächstes Segment -->Abbruch
                    If l.ToString.StartsWith("DOC+916:::") Then
                        Dim UNTERLAGE As New DAKOSY_Worker.cDakosy_EZA_Unterlagen
                        Dim Ul = cEDI.getValuesFromLine(l)
                        If Ul.Length > 0 Then UNTERLAGE.ezaUl_Art = Ul(0)
                        If Ul.Length > 1 Then
                            Dim subTmp = cEDI.getSubValues(Ul(1))
                            If subTmp.Length > 0 Then UNTERLAGE.ezaUl_Nummer = subTmp(0)
                            If subTmp.Length > 1 Then UNTERLAGE.ezaUl_Bereich = subTmp(1)
                        End If
                        If lines.Length > cnt + 1 AndAlso lines(cnt + 1).ToString.StartsWith("DTM+182:") Then
                            EZA.eza_Trans_DatumZeit = getEDIDatum(lines(cnt + 1).ToString.Replace("DTM+182:", ""))
                        End If
                        EZA.eza_UNTERLAGEN.Add(UNTERLAGE)
                    End If
                    cnt += 1
                Next

                ' 	 	Ansprechpartner
                Dim AnsprechpTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+PK++", lines))
                If AnsprechpTMP.Length > 0 Then
                    EZA.eza_AnmeldenderBearbeiterName = AnsprechpTMP(0) '?
                    Dim SB_Tmp = SQL.getValueTxtBySql("SELECT  isnull([mit_DAKOSY_SB],'')  FROM [tblMitarbeiter] where [mit_DAKOSY_SBFull]='" & AnsprechpTMP(0) & "' or  REPLACE([mit_DAKOSY_SBFull], ' ', '') = '" & AnsprechpTMP(0) & "'", "ADMIN")
                    If SB_Tmp <> "" Then
                        EZA.eza_Bearbeiter = SB_Tmp
                    ElseIf isAtez(EZA.eza_ObjectName) Then
                        EZA.eza_Bearbeiter = "VERIMEX"
                    Else
                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Sachbearbeiter für MA " & AnsprechpTMP(0) & " 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 AnsprechpTMP.Length > 1 Then EZA.eza_AnmeldenderBearbeiterStellung = AnsprechpTMP(1) '?


                Dim ADRTMP() As String
                'Anmelder
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+DT++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "DT"))

                'Vertreter
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+CB++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "CB"))

                'Empfänger
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+CN++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "CN"))

                'Erwerber
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+UC++", lines, , False))
                If ADRTMP.Length > 0 Then
                    Dim ADR As DAKOSY_Worker.cDakosy_EZA_Adressen = (getEZAAresseFromLine(ADRTMP, "UC"))
                    If lines(cEDI.getSimpleLineNumber("NAD+UC++", lines) + 1).ToString.StartsWith("RFF+VA:") Then
                        ADR.ezaAd_UStIDAnmelder = lines(cEDI.getSimpleLineNumber("NAD+UC++", lines) + 1).replace("RFF+VA:", "")
                    End If
                    EZA.eza_ADRESSEN.Add(ADR)
                End If

                'Verkäufer
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+SE++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "SE"))

                'Käufer
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+BY++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "BY"))

                'Zollwertanmelder
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+PQ++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "PQ"))


                'Vertr. Zollwertanmelder
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AG++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AG"))


                'Versender/Ausführer
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+CZ++", lines, , False))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "CZ"))



                'Rechnung
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AA++", lines))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AA"))

                'Postfachadresse
                ADRTMP = cEDI.getValuesFromLine(cEDI.getSimpleLine("NAD+AAP++", lines))
                If ADRTMP.Length > 0 Then EZA.eza_ADRESSEN.Add(getEZAAresseFromLine(ADRTMP, "AAP"))
                '--

                'Aufschub:
                cnt = 0
                For Each l In lines
                    If l.ToString.StartsWith("UNS+D") Then Exit For 'Nächstes Segment -->Abbruch
                    If l.ToString.StartsWith("NAD+PR++") Then
                        Dim AUFSCHUB As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                        Dim Ul = cEDI.getValuesFromLine(l.ToString.Replace("NAD+PR++", ""))
                        If Ul.Length > 0 Then AUFSCHUB.ezaAfb_AufschubnehmerEORI = Ul(0)
                        If Ul.Length > 1 Then
                            Dim subTmp = cEDI.getSubValues(Ul(1))
                            If subTmp.Length > 0 Then AUFSCHUB.ezaAfb_AufschuBIN = subTmp(0)
                            ' If subTmp.Length > 1 Then AUFSCHUB.ezaAfb_ArtAufschubantrag = subTmp(1)'?????
                        End If
                        If lines.Length > cnt + 1 AndAlso lines(cnt + 1).ToString.StartsWith("RFF+ABI:") Then
                            Dim subTmp = cEDI.getSubValues(lines(cnt + 1).ToString.Replace("RFF+ABI:", ""))
                            If subTmp.Length > 0 Then AUFSCHUB.ezaAfb_KontoNr = subTmp(0)
                            If subTmp.Length > 1 Then AUFSCHUB.ezaAfb_Aufschubart = subTmp(1)
                            If subTmp.Length > 2 Then AUFSCHUB.ezaAfb_ArtAufschubantrag = subTmp(2)
                        End If
                        EZA.eza_AUFSCHUB.Add(AUFSCHUB)


                    End If
                    cnt += 1
                Next



                'Lieferbedingungen
                ' 	Beförderungsmittel Grenze
                Dim LieferbedingungenTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("TOD+", lines))
                If LieferbedingungenTmp.Length > 0 Then
                    'EZA.eza_LieferbedingungCode = LieferbedingungenTmp(0)
                    EZA.eza_LieferbedingungSchluessel = LieferbedingungenTmp(0)
                    If LieferbedingungenTmp.Length > 2 Then
                        Dim subTmp = cEDI.getSubValues(LieferbedingungenTmp(2))
                        If subTmp.Length > 0 Then EZA.eza_LieferbedingungCode = subTmp(0)
                        If subTmp.Length > 3 Then EZA.eza_LieferbedingungText = subTmp(3)
                        If subTmp.Length > 4 Then EZA.eza_LieferbedingungText &= " " & subTmp(4)

                    End If
                    If lines(cEDI.getSimpleLineNumber("TOD+", lines) + 1).ToString.StartsWith("LOC+1+:::") Then
                        EZA.eza_LieferbedingungOrt = lines(cEDI.getSimpleLineNumber("TOD+", lines) + 1).replace("LOC+1+:::", "")
                    End If
                End If


                'EZA. = cEDI.getSimpleLine("AUT+", lines, Nothing)



                ' GesamtBetrag ????
                'Dim GesamtBetragTmp = cEDI.getSubValues(LieferbedingungenTmp(2))
                ' If GesamtBetragTmp.Length > 0 Then EZA.eza_GesamtBetrag = subTmp(0)
                ' If GesamtBetragTmp.Length > 1 Then EZA.eza_GesamtBetragWaehrung = subTmp(1)

                ' ###################################################
                'POSITIONEN
                ' ###################################################

                Dim SEGMENT_POSITIONEN = cEDI.SpltSEGMENT(cEDI.getSEGMENT(lines, "UNS+D", "UNS+"), "CST+")

                For Each SEG In SEGMENT_POSITIONEN
                    If SEG.Count > 1 Then

                        Dim POS As New DAKOSY_Worker.cDakosy_EZA_Warenposition


                        Dim posTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("CST+", SEG))

                        If posTmp.Length > 0 Then POS.ezaWP_PositionsNummer = posTmp(0)
                        If posTmp.Length > 1 Then POS.ezaWP_WarennummerEZT = posTmp(1)
                        If posTmp.Length > 2 Then POS.ezaWP_AnmeldeVErfahren = posTmp(2)
                        If posTmp.Length > 3 Then POS.ezaWP_AbgabensteuerungKz = posTmp(3)


                        Dim WarenbezTmp = cEDI.getSubValues(cEDI.getSimpleLine("FTX+AAA+++", SEG))
                        If WarenbezTmp.Length > 0 Then POS.ezaWP_Warenbezeichnung = WarenbezTmp(0)
                        If WarenbezTmp.Length > 1 Then POS.ezaWP_Warenbezeichnung &= "" & WarenbezTmp(1)
                        If WarenbezTmp.Length > 2 Then POS.ezaWP_Warenbezeichnung &= "" & WarenbezTmp(2)
                        If WarenbezTmp.Length > 3 Then POS.ezaWP_Warenbezeichnung &= "" & WarenbezTmp(3)


                        Dim PosZuastzTmp = cEDI.getSubValues(cEDI.getSimpleLine("FTX+ACB+++", SEG))
                        If PosZuastzTmp.Length > 0 Then POS.ezaWP_PositionsZusatz = PosZuastzTmp(0)
                        If PosZuastzTmp.Length > 1 Then POS.ezaWP_PositionsZusatz &= PosZuastzTmp(1)


                        POS.ezaWP_OrtVerbringens = cEDI.getSimpleLine("LOC+135+:::", SEG, Nothing)
                        POS.ezaWP_AbflughafenIATACode = cEDI.getSimpleLine("LOC+5+", SEG, Nothing)
                        POS.ezaWP_UrsprungslandCode = cEDI.getSimpleLine("LOC+27+", SEG, Nothing)
                        POS.ezaWP_Eigenmasse = cEDI.getSimpleLine("MEA+WT+AAL+KGM:", SEG, Nothing)
                        POS.ezaWP_Rohmasse = cEDI.getSimpleLine("MEA+WT+G+KGM:", SEG, Nothing)


                        Dim statTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("MEA+AAR+", SEG))
                        If statTmp.Length > 0 Then POS.ezaWP_AHStatMengeQualifier = statTmp(0)
                        If statTmp.Length > 1 Then
                            ' Dim subTmp = cEDI.getSubValues(statTmp(1))
                            ' If subTmp.Length > 0 Then EZA.masseinheit = subTmp(0)
                            ' If subTmp.Length > 1 Then EZA.statMenge = subTmp(1)
                        End If

                        ' Dim gehaltsangTmp = cEDI.getSubValues(cEDI.getSimpleLine("MEA+AAF++", SEG))
                        '  If gehaltsangTmp.Length > 0 Then EZA.gehaltsang = gehaltsangTmp(0)
                        '  If gehaltsangTmp.Length > 1 Then EZA.statMenge = gehaltsangTmp(1)

                        'Packstücke
                        Dim PackstkTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("PAC+", SEG))
                        If PackstkTmp.Length > 0 AndAlso IsNumeric(PackstkTmp(0)) Then POS.ezaWP_PackstueckAnzahl = PackstkTmp(0)
                        If PackstkTmp.Length > 2 Then POS.ezaWP_PackstueckArt = PackstkTmp(2)
                        PackstkTmp = cEDI.getSubValues(cEDI.getSimpleLine("PCI++", SEG))
                        If PackstkTmp.Length > 0 Then POS.ezaWP_PackstueckZeichen = PackstkTmp(0)
                        If PackstkTmp.Length > 1 Then POS.ezaWP_PackstueckZeichen &= PackstkTmp(1)


                        'Preisart
                        cnt = 0
                        For Each s In SEG
                            If s = "RFF+ABU" Then Exit For ' segmatspliter?
                            If s.ToString.StartsWith("MOA+146") Then Exit For ' anderes MOA
                            If s.ToString.StartsWith("MOA+") Then
                                statTmp = cEDI.getSubValues(s.Replace("MOA+", ""))
                                Dim preisart As String = If(statTmp.Length > 0, statTmp(0), Nothing)
                                Dim wert As Double = If(statTmp.Length > 1, statTmp(1), Nothing)
                                If cnt = 0 Then POS.ezaWP_BesondereWertangabe_PreisartCode1 = preisart : POS.ezaWP_BesondereWertangabe_Wert1 = wert
                                If cnt = 1 Then POS.ezaWP_BesondereWertangabe_PreisartCode2 = preisart : POS.ezaWP_BesondereWertangabe_Wert2 = wert
                                If cnt = 2 Then POS.ezaWP_BesondereWertangabe_PreisartCode3 = preisart : POS.ezaWP_BesondereWertangabe_Wert3 = wert
                                If cnt = 3 Then POS.ezaWP_BesondereWertangabe_PreisartCode4 = preisart : POS.ezaWP_BesondereWertangabe_Wert4 = wert
                                If cnt = 4 Then POS.ezaWP_BesondereWertangabe_PreisartCode5 = preisart : POS.ezaWP_BesondereWertangabe_Wert5 = wert
                                cnt += 1
                            End If
                        Next


                        POS.ezaWP_Artikelpreis = cEDI.getSimpleLine("MOA+146:", lines, Nothing)

                        'Zusatzcode
                        cnt = 0
                        For Each s In SEG
                            If s.ToString.StartsWith("RFF+ACD:") Then
                                Dim zusatzTmp = s.Replace("RFF+ACD:", "")
                                If cnt = 0 Then POS.ezaWP_WarennummerZusatzCode1 = zusatzTmp
                                If cnt = 1 Then POS.ezaWP_WarennummerZusatzCode2 = zusatzTmp
                                If cnt = 2 Then POS.ezaWP_WarennummerZusatzCode3 = zusatzTmp
                                If cnt = 3 Then POS.ezaWP_WarennummerZusatzCode4 = zusatzTmp
                                If cnt = 4 Then POS.ezaWP_WarennummerZusatzCode5 = zusatzTmp
                                If cnt = 5 Then POS.ezaWP_WarennummerZusatzCode6 = zusatzTmp
                                If cnt = 6 Then POS.ezaWP_WarennummerZusatzCode7 = zusatzTmp
                                If cnt = 7 Then POS.ezaWP_WarennummerZusatzCode8 = zusatzTmp
                                If cnt = 8 Then POS.ezaWP_WarennummerZusatzCode9 = zusatzTmp
                                If cnt = 9 Then POS.ezaWP_WarennummerZusatzCode10 = zusatzTmp
                                cnt += 1
                            End If
                        Next


                        'POS.kontigentnr = cEDI.getSimpleLine("RFF+ABJ:", lines, Nothing)
                        POS.ezaWP_BeguenstigungBenatragtCode = cEDI.getSimpleLine("GIS+916:::", lines, Nothing)
                        POS.ezaWP_BedingungCode = cEDI.getSimpleLine("GIS+906:::", lines, Nothing)
                        POS.ezaWP_EUCode = cEDI.getSimpleLine("GIS+993:::", lines, Nothing)



                        'Abgabenminderung
                        cnt = 0
                        Dim cntSeg = 0
                        For Each s In SEG
                            If s.ToString.StartsWith("TAX+7+") AndAlso Not s.ToString.StartsWith("TAX+7+:::") Then
                                Dim zusatzTmp = s.Replace("TAX+7+", "")
                                Dim Abgabenminderung_MinderungsbetragTmp = Nothing
                                If SEG.Length > cntSeg + 1 AndAlso SEG(cntSeg + 1).ToString.StartsWith("MOA+226:") Then Abgabenminderung_MinderungsbetragTmp = SEG(cntSeg + 1).ToString.Replace("MOA+226:", "")
                                If cnt = 0 Then POS.ezaWP_Abgabenminderung_AbgabengruppeCode1 = zusatzTmp : POS.ezaWP_Abgabenminderung_Minderungsbetrag1 = Abgabenminderung_MinderungsbetragTmp
                                If cnt = 1 Then POS.ezaWP_Abgabenminderung_AbgabengruppeCode2 = zusatzTmp : POS.ezaWP_Abgabenminderung_Minderungsbetrag2 = Abgabenminderung_MinderungsbetragTmp
                                If cnt = 2 Then POS.ezaWP_Abgabenminderung_AbgabengruppeCode3 = zusatzTmp : POS.ezaWP_Abgabenminderung_Minderungsbetrag3 = Abgabenminderung_MinderungsbetragTmp
                                cnt += 1
                            End If
                            cntSeg += 1
                        Next


                        For Each s In SEG
                            If s.ToString.StartsWith("TAX+5+") Then
                                Dim SA As New DAKOSY_Worker.cDakosy_EZA_WarenpositionSonderfalldaten
                                Dim SonderfalleingabeTmp = cEDI.getValuesFromLine(s)
                                If SonderfalleingabeTmp.Length > 0 Then SA.ezaWpSfd_SonderabgabenGruppeCode = SonderfalleingabeTmp(0)
                                If SonderfalleingabeTmp.Length > 1 Then SA.ezaWpSfd_AnwendungArt = SonderfalleingabeTmp(1)
                                If SonderfalleingabeTmp.Length > 3 Then
                                    Dim subTmp = cEDI.getSubValues(SonderfalleingabeTmp(3))
                                    If subTmp.Length > 4 Then SA.ezaWpSfd_SatzBetragFaktor = subTmp(4)
                                End If
                                POS.ezaWP_SONDERFALLDATEN.Add(SA)
                            End If
                        Next



                        'Nach GIR Spliten
                        Dim SEGMENT_GIR = cEDI.getSEGMENT(SEG, "GIR+1+0", "GIR+")
                        If SEGMENT_GIR.Count > 0 Then
                            POS.ezaWP_AHStatWert = cEDI.getSimpleLine("MOA+123:", SEGMENT_GIR, Nothing)
                            POS.ezaWP_Zollwert = cEDI.getSimpleLine("MOA+43:", SEGMENT_GIR, Nothing)
                            POS.ezaWP_VeredelungWertsteigerung = cEDI.getSimpleLine("MOA+393:", SEGMENT_GIR, Nothing)
                            POS.ezaWP_KostenEUSt = cEDI.getSimpleLine("MOA+139:", SEGMENT_GIR, Nothing)
                        End If





                        'Verbrauchsteuer 
                        For Each SEG_GIR In cEDI.SpltSEGMENT(cEDI.getSEGMENT(SEG, "GIR+3+0", "GIR+"), "GIR+3+0")


                            Dim VS As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVerbrauchssteuer

                            Dim GewTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("MEA+CHW+", SEG_GIR))
                            If GewTmp.Length > 0 Then VS.ezaWpVs_VerbrauchssteuerMasseinheitQualifier = GewTmp(0)
                            If GewTmp.Length > 1 Then
                                Dim subTmp = cEDI.getSubValues(GewTmp(1))
                                If subTmp.Length > 0 Then VS.ezaWpVs_VerbrauchssteuerMasseinheitCode = subTmp(0)
                                If subTmp.Length > 1 Then VS.ezaWpVs_VerbrauchssteuerMenge = subTmp(1)
                            End If

                            VS.ezaWpVs_GradProzent = cEDI.getSimpleLine("MEA+AAF++P1:", SEG_GIR, Nothing)

                            Dim StTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("TAX+7+:::", SEG_GIR))
                            If StTmp.Length > 0 Then VS.ezaWpVs_VerbrauchsteuerCode = StTmp(0)
                            'If StTmp.Length > 3 Then VS.Tabak?= StTmp(3)
                            VS.ezaWpVs_VerbrauchssteuerWertbasis = cEDI.getSimpleLine("MOA+124:", SEG_GIR, Nothing)

                            POS.ezaWP_VERBRAUCHSSTEUER.Add(VS)
                        Next


                        'BeguenstigungsMengeMenge
                        Dim BmTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("MEA+AAK+", SEG))
                        If BmTmp.Length > 0 Then POS.ezaWP_BeguenstigungsMengeQualifier = BmTmp(0)
                        If BmTmp.Length > 1 Then
                            Dim subTmp = cEDI.getSubValues(BmTmp(1))
                            If subTmp.Length > 0 Then POS.ezaWP_BeguenstigungsMengeMasseinheitCode = subTmp(0)
                            If subTmp.Length > 1 Then POS.ezaWP_BeguenstigungsMengeMenge = subTmp(1)

                        End If




                        'Nach GIR Spliten  	D.V.1-Angaben
                        SEGMENT_GIR = cEDI.getSEGMENT(SEG, "GIR+4+0", "GIR+")
                        If SEGMENT_GIR.Count > 0 Then
                            Dim subTmp = cEDI.getSubValues(cEDI.getSimpleLine("MOA+23:", SEG))
                            If subTmp.Length > 0 Then POS.ezaWP_KursBetragVereinbart = subTmp(0)
                            'If subTmp.Length >1 Then POS.ezaWP_KursBetragVereinbart = subTmp(1)
                            If subTmp.Length > 2 Then POS.ezaWP_KursVereinbartKz = subTmp(2)

                        End If



                        'Abzug/Hinzurechnungen
                        For Each SEG_GIR In cEDI.SpltSEGMENT(cEDI.getSEGMENT(SEG, "GIR+7+001", "GIR+"), "GIR+7+001")
                            'Nicht vorgesehen...
                        Next



                        'Unterlagen 
                        For Each SEG_GIR In cEDI.SpltSEGMENT(cEDI.getSEGMENT(SEG, "GIR+9+", "GIR+8+0"), "GIR+9+")
                            If SEG_GIR.Count > 1 Then

                                'Nicht vorgesehen...
                                Dim UL As New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen

                                UL.ezaWpUl_Bereich = cEDI.getSimpleLine("GIR+9+", SEG_GIR, Nothing)
                                UL.ezaWpUl_VorlageKz = cEDI.getSimpleLine("GIS+984:::", SEG_GIR, Nothing)


                                Dim GewTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("MEA+AAK+", SEG_GIR))
                                If GewTmp.Length > 0 Then UL.ezaWpUl_AbschreibungsMengeMasseinheitQualifier = GewTmp(0)
                                If GewTmp.Length > 1 Then
                                    Dim subTmp = cEDI.getSubValues(GewTmp(1))
                                    If subTmp.Length > 0 Then UL.ezaWpUl_AbschreibungsMengeMasseinheit = subTmp(0)
                                    If subTmp.Length > 1 Then UL.ezaWpUl_AbschreibungsMenge = subTmp(1)
                                End If
                                Dim ArtTmp = cEDI.getValuesFromLine(cEDI.getSimpleLine("DOC+:::", SEG_GIR))
                                If ArtTmp.Length > 0 Then UL.ezaWpUl_Art = ArtTmp(0)
                                If ArtTmp.Length > 1 Then UL.ezaWpUl_Nummer = ArtTmp(1)

                                If cEDI.getSimpleLine("DTM+125:", SEG_GIR) <> "" Then
                                    UL.ezaWpUl_DatumAusstellung = getEDIDatum(cEDI.getSimpleLine("DTM+125:", SEG_GIR))
                                End If
                                POS.ezaWP_UNTERLAGEN.Add(UL)
                            End If
                        Next
                        ' Luftfracht Nicht umgesetzt...

                        If False Then




                            'Nach GIR Spliten
                            SEGMENT_GIR = cEDI.getSEGMENT(SEG, "GIR+3+0", "GIR+")
                            If SEGMENT_GIR.Count > 0 Then
                                'MEA+CHW+

                                'Zusatzcode
                                cnt = 0
                                For Each s In SEGMENT_GIR
                                    If s.ToString.StartsWith("MEA+CHW+") Then
                                        Dim WarenmengeTmp = ""
                                        Dim WarenMasseinheitTmp = ""
                                        Dim WarenQualifierTmp = ""

                                        Dim GewTmp = cEDI.getValuesFromLine(s)
                                        If GewTmp.Length > 0 Then WarenQualifierTmp = GewTmp(0)
                                        If GewTmp.Length > 1 Then
                                            Dim subTmp = cEDI.getSubValues(GewTmp(1))
                                            If subTmp.Length > 0 Then WarenMasseinheitTmp = subTmp(0)
                                            If subTmp.Length > 1 Then WarenmengeTmp = subTmp(1)
                                        End If

                                        If cnt = 0 Then POS.ezaWP_Warenmenge1 = WarenmengeTmp : POS.ezaWP_WarenMasseinheit1 = WarenMasseinheitTmp : POS.ezaWP_WarenQualifier1 = WarenQualifierTmp
                                        If cnt = 1 Then POS.ezaWP_Warenmenge2 = WarenmengeTmp : POS.ezaWP_WarenMasseinheit2 = WarenMasseinheitTmp : POS.ezaWP_WarenQualifier2 = WarenQualifierTmp
                                        If cnt = 2 Then POS.ezaWP_Warenmenge3 = WarenmengeTmp : POS.ezaWP_WarenMasseinheit3 = WarenMasseinheitTmp : POS.ezaWP_WarenQualifier3 = WarenQualifierTmp
                                        If cnt = 3 Then POS.ezaWP_Warenmenge4 = WarenmengeTmp : POS.ezaWP_WarenMasseinheit4 = WarenMasseinheitTmp : POS.ezaWP_WarenQualifier4 = WarenQualifierTmp
                                        If cnt = 4 Then POS.ezaWP_Warenmenge5 = WarenmengeTmp : POS.ezaWP_WarenMasseinheit5 = WarenMasseinheitTmp : POS.ezaWP_WarenQualifier5 = WarenQualifierTmp

                                        cnt += 1
                                    End If
                                Next

                            End If


                        End If

                        EZA.eza_WARENPOS.Add(POS)
                    End If
                Next

                If EZA.eza_WARENPOS.Count > 0 Then
                    EZA.eza_VerfahrenBeantragtCode = EZA.eza_WARENPOS(0).ezaWP_AnmeldeVErfahren

                    If If(EZA.eza_VerfahrenBeantragtCode, "").length > 2 Then
                        EZA.eza_VerfahrenBeantragtCode = EZA.eza_VerfahrenBeantragtCode.ToString.Substring(0, 2)
                    End If
                End If



                ' ###################################################

                'If If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("@imex") Then
                '    EZA.eza_firma = "IMEX"
                '    EZA.eza_niederlassung = "IMEX"
                '    'GLOBAL--> EORI
                'ElseIf If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("@ambar") Then
                '    EZA.eza_firma = "AMBAR"
                '    EZA.eza_niederlassung = "AMBAR"
                '    'GLOBAL--> EORI
                'ElseIf If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("atilla@verag.ag") Or If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("@atilla") Then
                '    EZA.eza_firma = "ATILLA"
                '    EZA.eza_niederlassung = "SUB"
                '    'GLOBAL--> EORI
                'ElseIf If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("@durmaz") Then
                '    EZA.eza_firma = "DURMAZ"
                '    EZA.eza_niederlassung = "SBG"
                '    'GLOBAL--> EORI
                'ElseIf If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("@verag") Then
                '    EZA.eza_firma = "VERAG"
                '    '   EZA.eza_niederlassung = "IMEX"
                '    'GLOBAL--> EORI

                'ElseIf If(EZA.eza_AnmeldenderBearbeiterEMail, "").ToString.Contains("@unisped") Then
                '    EZA.eza_firma = "UNISPED"
                '    EZA.eza_niederlassung = "ATSP"
                'End If


                tryGetFirmaNiederlassung(EZA.eza_firma, EZA.eza_niederlassung, (EZA.eza_AnmeldenderBearbeiterEMail, "").ToString, bezugsNr)

            End If



            If If(EZA.eza_Status, 0) <= 5 Then EZA.eza_Status = DAKOSY_Worker.cDY_Statusliste.S_05
            If If(EZA.eza_Status_KEWILL_Equivalent, 0) <= 5 Then EZA.eza_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05



            If EZA.SAVE_ALL() Then
                If If(EZA.eza_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

    Public Shared Sub tryGetNCTSBasicData(ByRef NCTS_new As DAKOSY_Worker.cDakosyNCTSOut)
        Try
            Dim WP_LIST_old As List(Of DAKOSY_Worker.cDakosy_NCTSOut_Warenposition) = DAKOSY_Worker.cDakosyNCTSOut.get_Warenposition(NCTS_new.ncts_Id)
            If WP_LIST_old IsNot Nothing And NCTS_new IsNot Nothing Then
                If WP_LIST_old IsNot Nothing And NCTS_new.ncts_WARENPOS IsNot Nothing Then
                    For Each POS In NCTS_new.ncts_WARENPOS
                        If WP_LIST_old.Count > NCTS_new.ncts_WARENPOS.IndexOf(POS) Then
                            ' MsgBox(POS.nctsWP_KdRefNr & " --- " & WP_LIST_old(NCTS_new.ncts_WARENPOS.IndexOf(POS)).nctsWP_KdRefNr)
                            POS.nctsWP_KdRefNr = WP_LIST_old(NCTS_new.ncts_WARENPOS.IndexOf(POS)).nctsWP_KdRefNr
                        End If
                    Next
                End If
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
        End Try
    End Sub

    Public Shared Sub tryGetNCTS004BasicData(ByRef NCTS_new As DAKOSY_Worker.cDakosyNCTSOut004)
        'Try
        '    Dim WP_LIST_old As List(Of DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem) = DAKOSY_Worker.cDakosyNCTSOut.get_Warenposition(NCTS_new.ncts_Id)
        '    If WP_LIST_old IsNot Nothing And NCTS_new IsNot Nothing Then
        '        If WP_LIST_old IsNot Nothing And NCTS_new.ncts_WARENPOS IsNot Nothing Then
        '            For Each POS In NCTS_new.ncts_WARENPOS
        '                If WP_LIST_old.Count > NCTS_new.ncts_WARENPOS.IndexOf(POS) Then
        '                    ' MsgBox(POS.nctsWP_KdRefNr & " --- " & WP_LIST_old(NCTS_new.ncts_WARENPOS.IndexOf(POS)).nctsWP_KdRefNr)
        '                    POS.nctsWP_KdRefNr = WP_LIST_old(NCTS_new.ncts_WARENPOS.IndexOf(POS)).nctsWP_KdRefNr
        '                End If
        '            Next
        '        End If
        '    End If
        'Catch ex As Exception
        '    VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
        'End Try
    End Sub





    Public Shared Sub tryGetFirmaNiederlassung(ByRef firma As String, ByRef niederlassung As String, Mail As String, BezugsNr As String)
        If Mail.Contains("@imex") Then
            firma = "IMEX"
            niederlassung = "IMEX"
        ElseIf Mail.Contains("@ambar") Then
            firma = "AMBAR"
            niederlassung = "AMBAR"
        ElseIf Mail.Contains("atilla@verag.ag") Or Mail.Contains("@atilla") Then

            If BezugsNr <> "" Then ' VERIMEX --> wenn keine Bezugsnummer, dann bei anderem Satus..

                '----------------------------------------------------------------------------
                'VERIMEX!!!! --> Arbeitet bim T1 Vorschreiben mit ATILLA Benutzer
                Dim verimex = False
                If firma = "" Then
                    If BezugsNr <> "" And BezugsNr.Length > 4 Then
                        Select Case BezugsNr.Substring(0, 4)
                            Case "5501", "4803", "5003", "5103", "5303", "4805", "4811", "7001", "5601"
                                verimex = True
                        End Select
                    End If
                End If
                '----------------------------------------------------------------------------

                If Not verimex Then
                    firma = "ATILLA"
                    niederlassung = "SUB"
                End If
            End If
        ElseIf Mail.Contains("@durmaz") Then
            firma = "DURMAZ"
            niederlassung = "SBG"
        ElseIf Mail.Contains("@verag") Then
            firma = "VERAG"
        ElseIf Mail.Contains("@unisped") Then
            firma = "UNISPED"
            niederlassung = "ATSP"
        End If

        If firma = "" Then
            Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA 'Gehrt nur bei UNSPED
                Case "UNISPED"
                    firma = "UNISPED"
                    niederlassung = "ATSP"

            End Select
        End If

        If firma = "" Then
            If BezugsNr <> "" And BezugsNr.Length > 4 Then
                Select Case BezugsNr.Substring(0, 4)
                    Case "5501"
                        firma = "IMEX"
                        'niederlassung = "IMEX"
                    Case "5701"
                        firma = "AMBAR"
                        niederlassung = "AMBAR"
                    Case "4801", "4802"
                        firma = "ATILLA"
                        niederlassung = "SUB"
                    'Case "4801"
                    '    firma = "DURMAZ"
                    '    niederlassung = "SBG"
                    Case "4803", "5003", "5103", "5303", "4805", "4811", "7001"
                        firma = "VERAG"
                    Case "5601"
                        firma = "UNISPED"
                        niederlassung = "ATSP"
                End Select
            End If
        End If
    End Sub


    Function getEZAAresseFromLine(AdressTMP, typ) As DAKOSY_Worker.cDakosy_EZA_Adressen
        Dim ADR As New DAKOSY_Worker.cDakosy_EZA_Adressen
        ADR.ezaAd_AdressTyp = typ
        If AdressTMP.Length > 0 Then
            Dim subTmp2 = cEDI.getSubValues(AdressTMP(0))
            If subTmp2.Length > 0 Then ADR.ezaAd_TeilnehmerEORI = cEDI.getValueReplaced(subTmp2(0))
            If subTmp2.Length > 1 Then ADR.ezaAd_TeilnehmerNLNR = cEDI.getValueReplaced(subTmp2(1))
            If AdressTMP.Length > 1 Then
                Dim subTmp = cEDI.getSubValues(AdressTMP(1))
                If subTmp.Length > 0 Then ADR.ezaAd_NameFirma1 = cEDI.getValueReplaced(subTmp(0))
                If subTmp.Length > 1 Then ADR.ezaAd_NameFirma2 = cEDI.getValueReplaced(subTmp(1))
                If subTmp.Length > 2 Then ADR.ezaAd_NameFirma3 = cEDI.getValueReplaced(subTmp(2))
            End If
            If AdressTMP.Length > 2 Then
                Dim subTmp = cEDI.getSubValues(AdressTMP(2))
                If subTmp.Length > 0 Then ADR.ezaAd_StrasseHausNr1 = cEDI.getValueReplaced(subTmp(0))
                If subTmp.Length > 1 Then ADR.ezaAd_StrasseHausNr2 = cEDI.getValueReplaced(subTmp(1))
            End If

            If AdressTMP.Length > 3 Then ADR.ezaAd_Ort = cEDI.getValueReplaced(AdressTMP(3))
            If AdressTMP.Length > 5 Then ADR.ezaAd_PLZ = cEDI.getValueReplaced(AdressTMP(5))
            If AdressTMP.Length > 6 Then ADR.ezaAd_LandCode = cEDI.getValueReplaced(AdressTMP(6))

        End If
        Return ADR
    End Function
    Function getEDIDatum(dat) As String
        Try
            dat = dat.Replace(":102", "")
            If dat <> "" AndAlso IsNumeric(dat) Then
                Dim oDate = DateTime.ParseExact(dat, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
                Return oDate.ToShortDateString
            End If
        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler")
        End Try
        Return Nothing
    End Function

    Function readEZA_EntscheidungAnmeldung(d) As String
        Try

            Dim EZA As DAKOSY_Worker.EntscheidungAnmeldung.EntscheidungAnmeldungRLTyp = DAKOSY_Worker.EntscheidungAnmeldung.EntscheidungAnmeldungRLTyp.LoadFromFile(d)
            Dim anr = ""
            Dim regNr = ""
            Dim details = ""
            Dim zoellner = ""
            Dim zp As Object = Nothing

            Dim division = ""

            'Dim annahmeKz As Object = Nothing
            'Dim ueberlassungKz As Object = Nothing
            'Dim RueckgabeKz As Object = Nothing
            'Dim anordnungKz As Object = Nothing

            readEZA_EntscheidungAnmeldung = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelEntscheidungAnmeldung IsNot Nothing Then
                    If EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_EntscheidungAnmeldung = EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelEntscheidungAnmeldung.KopfDaten IsNot Nothing Then
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.ArbeitsnummerVorzeitigeAnmeldung IsNot Nothing Then
                            regNr = EZA.EinzelEntscheidungAnmeldung.KopfDaten.ArbeitsnummerVorzeitigeAnmeldung
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.Registriernummer IsNot Nothing Then
                            anr = EZA.EinzelEntscheidungAnmeldung.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten IsNot Nothing Then
                            details = EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll IsNot Nothing Then
                            zoellner = EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll
                        End If
                    End If
                    'If EZA.EinzelEntscheidungAnmeldung.Position IsNot Nothing Then

                    'End If

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

            If readEZA_EntscheidungAnmeldung <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_EntscheidungAnmeldung
                STATUS.dySt_artMitteilung = "EA"
                STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2


                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                STATUS.dySt_ergZeitpunkt = zp
                STATUS.dySt_ergZoellner = zoellner
                STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                If DY_TMP.dy_Status <> DAKOSY_Worker.cDY_Statusliste.S_60 Then 'Wenn beretis auf 60, dann wird kiene Änderung mehr vorgenommen!

                    If anr <> "" Then
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), anr)
                        STATUS.dySt_ergCode = "ANR"
                        STATUS.dySt_ergMitteilung = anr
                    ElseIf regNr <> "" Then
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), , regNr)
                        STATUS.dySt_ergCode = "REGNR"
                        STATUS.dySt_ergMitteilung = regNr
                    Else
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                    End If


                    SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                    If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                End If

                STATUS.SAVE()

                addDGVEinarbeitung("EZA: EntscheidungAnmeldung", 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)
            readEZA_EntscheidungAnmeldung = ""
        End Try
    End Function
    Function readEZA_EntscheidungAnmeldung_004(d) As String
        Try

            Dim EZA As DAKOSY_Worker.EntscheidungAnmeldung_004.EntscheidungAnmeldungRLTyp = DAKOSY_Worker.EntscheidungAnmeldung_004.EntscheidungAnmeldungRLTyp.LoadFromFile(d)
            Dim anr = ""
            Dim regNr = ""
            Dim details = ""
            Dim zoellner = ""
            Dim zp As Object = Nothing

            Dim division = ""

            Dim TXT_DokBeschau = ""
            Dim TXT_Rückweisung = ""
            Dim TXT_Mitteilung = ""
            Dim TXT_Mitteilung_Zollbeamter = ""
            'Dim annahmeKz As Object = Nothing
            'Dim ueberlassungKz As Object = Nothing
            'Dim RueckgabeKz As Object = Nothing
            'Dim anordnungKz As Object = Nothing

            readEZA_EntscheidungAnmeldung_004 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If

                End If

                If EZA.EinzelEntscheidungAnmeldung IsNot Nothing Then
                    If EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_EntscheidungAnmeldung_004 = EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelEntscheidungAnmeldung.KopfDaten IsNot Nothing Then
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.ArbeitsnummerVorzeitigeAnmeldung IsNot Nothing Then
                            regNr = EZA.EinzelEntscheidungAnmeldung.KopfDaten.ArbeitsnummerVorzeitigeAnmeldung
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.Registriernummer IsNot Nothing Then
                            anr = EZA.EinzelEntscheidungAnmeldung.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten IsNot Nothing Then
                            details = EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll IsNot Nothing Then
                            zoellner = EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll
                        End If
                    End If

                    'POS __> DOKUMENTENBSCHAU
                    If EZA.EinzelEntscheidungAnmeldung.Position IsNot Nothing Then

                        For Each POS In EZA.EinzelEntscheidungAnmeldung.Position
                            If POS.AnordnungKz IsNot Nothing Then
                                '0 = Keine Beschau. 1 = Volle Gesamtbeschau. 2 = Stichprobenweise Mengenbeschau. 3 = Stichprobenweise Beschaffenheitsbeschau. 4 = Dokumentenprüfung 5= Durchleuchtung 9 = Andere. (Codeliste A1410

                                Dim BeschauBez
                                Select Case POS.AnordnungKz
                                    Case 0 : BeschauBez = "Keine Beschau"
                                    Case 1 : BeschauBez = "Volle Gesamtbeschau"
                                    Case 2 : BeschauBez = "Stichprobenweise Mengenbeschau"
                                    Case 3 : BeschauBez = "Stichprobenweise Beschaffenheitsbeschau"
                                    Case 4 : BeschauBez = "Dokumentenprüfung"
                                    Case 5 : BeschauBez = "Durchleuchtung"
                                    Case 9 : BeschauBez = "Andere"
                                    Case Else : BeschauBez = "Unbekannt"
                                End Select

                                Select Case POS.AnordnungKz
                                    Case "0" '--> keine Beschau
                                    Case "4" '--> Dokumentenprüfung
                                        TXT_DokBeschau &= POS.Positionsnummer & ": Dokumentenprüfung" & If(POS.MitteilungTeilnehmerBeschau IsNot Nothing, " (" & POS.MitteilungTeilnehmerBeschau & ")", "") & vbNewLine
                                        'MitteilungTeilnehmerBeschau
                                    Case Else '--> andere Beschau
                                        TXT_DokBeschau &= POS.Positionsnummer & ": " & BeschauBez & If(POS.MitteilungTeilnehmerBeschau IsNot Nothing, " (" & POS.MitteilungTeilnehmerBeschau & ")", "") & vbNewLine
                                        'MitteilungTeilnehmerBeschau
                                End Select
                            End If
                            If POS.RueckgabeKz IsNot Nothing Then
                                If POS.RueckgabeKz = "J" Then
                                    TXT_Rückweisung &= POS.Positionsnummer & ": Rückweisung " & vbNewLine
                                End If
                            End If

                        Next
                    End If

                    If EZA.EinzelEntscheidungAnmeldung.KopfDaten IsNot Nothing Then

                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten IsNot Nothing Then
                            TXT_Mitteilung &= "Text: " & EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten

                            If EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll IsNot Nothing Then
                                TXT_Mitteilung_Zollbeamter &= " (" & EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll & ")"
                            End If
                            TXT_Mitteilung &= vbNewLine
                        End If
                    End If

                    'End If

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


            If readEZA_EntscheidungAnmeldung_004 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_EntscheidungAnmeldung_004
                STATUS.dySt_artMitteilung = "EA"
                STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2


                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                STATUS.dySt_ergZeitpunkt = zp
                STATUS.dySt_ergZoellner = zoellner
                STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = Nothing

                If DY_TMP.dy_Status <> DAKOSY_Worker.cDY_Statusliste.S_60 Then 'Wenn beretis auf 60, dann wird kiene Änderung mehr vorgenommen!

                    If anr <> "" Then
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), anr)
                        STATUS.dySt_ergCode = "ANR"
                        STATUS.dySt_ergMitteilung = anr
                    ElseIf regNr <> "" Then
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), , regNr)
                        STATUS.dySt_ergCode = "REGNR"
                        STATUS.dySt_ergMitteilung = regNr
                    Else
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                    End If

                    SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                    If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                End If

                STATUS.SAVE()

                addDGVEinarbeitung("EZA: EntscheidungAnmeldung", STATUS.dySt_BezugsNr)




                If TXT_DokBeschau <> "" Then
                    'Benachrichtigung
                    Try
                        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                        Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                        Dim art = "B"

                        'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer des LKWs nicht online, Team...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "T"
                        End If

                        'Wenn TEAM  nicht gefunden, Firma...
                        If sendToID <= 0 Then
                            If EZA_TMP IsNot Nothing AndAlso EZA_TMP.eza_firma IsNot Nothing AndAlso EZA_TMP.eza_firma <> "" Then
                                sendToID = EZA_TMP.eza_firma
                                art = "F"
                            End If
                        End If

                        'Wenn gefunden
                        If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then

                            Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)

                            If IsNumeric(statusAVISO) Then
                                Select Case CInt(statusAVISO)

                             'Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben,,VERAG_PROG_ALLGEMEIN.cGlobal.erfasst    Nue
                                    Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                        'Nicht
                                    Case Else
                                        Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.ZOLL_Dokumentenbeschau
                                        Dim BenText = (TXT_DokBeschau & vbNewLine & TXT_Mitteilung).Trim
                                        VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, code, art, sendToID, "ZOLL: (Dokument)Beschau", 1, , (TXT_DokBeschau & vbNewLine & TXT_Mitteilung).Trim,,, If(EZA_TMP IsNot Nothing, If(EZA_TMP.eza_firma, ""), ""))
                                        VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, BenText, 124,,, True, "ZOLL")
                                End Select


                            End If
                        End If

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

                    End Try
                End If

                If TXT_Rückweisung <> "" Then

                    'Benachrichtigung
                    Try
                        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                        Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                        Dim art = "B"

                        'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer des LKWs nicht online, Team...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "T"
                        End If

                        'Wenn TEAM  nicht gefunden, Firma...
                        If sendToID <= 0 Then
                            If EZA_TMP IsNot Nothing AndAlso EZA_TMP.eza_firma IsNot Nothing AndAlso EZA_TMP.eza_firma <> "" Then
                                sendToID = EZA_TMP.eza_firma
                                art = "F"
                            End If
                        End If

                        'Wenn gefunden
                        If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then
                            Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                            ' Dim GrenzstelleAVISO = SQL.DLookup("Grenzstelle", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO")
                            ' If GrenzstelleAVISO = "???" Then 'lt. ML 27.03.-> für alle freigeben
                            If IsNumeric(statusAVISO) Then
                                Select Case CInt(statusAVISO)

                                    Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                        'Nicht
                                    Case Else
                                        Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.ZOLL_Rueckweisung
                                        Dim BenText = (TXT_Rückweisung & vbNewLine & TXT_Mitteilung).Trim
                                        VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, code, art, sendToID, "ZOLL: Rückweisung", 1, , BenText,,, If(EZA_TMP IsNot Nothing, If(EZA_TMP.eza_firma, ""), ""))
                                        VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, BenText, 125,,, True, "ZOLL")
                                End Select
                                ' End If
                            End If
                        End If

                    Catch ex As Exception
                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "TXT_Rückweisung - Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)

                    End Try
                End If


                'Nur Mitteilung - keine Beschau, RW...
                If TXT_Mitteilung <> "" And TXT_Rückweisung = "" And TXT_DokBeschau = "" Then
                    Select Case TXT_Mitteilung.Replace("Text: ", "").Replace(".", "").Trim.ToLower
                        Case "entgegengenommen"
                        Case "Zollanmeldung entgegengenommen"
                        Case "0"
                        Case "eingegangen"
                        Case Else

                            'Benachrichtigung
                            Try
                                Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                                Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                                Dim art = "B"

                                'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                                If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                    sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                                    art = "B"
                                End If

                                'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                                If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                    sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                                    art = "B"
                                End If

                                'Wenn Benutzer des LKWs nicht online, Team...
                                If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                    sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                                    art = "T"
                                End If

                                'Wenn TEAM  nicht gefunden, Firma...
                                If sendToID <= 0 Then
                                    If EZA_TMP IsNot Nothing AndAlso EZA_TMP.eza_firma IsNot Nothing AndAlso EZA_TMP.eza_firma <> "" Then
                                        sendToID = EZA_TMP.eza_firma
                                        art = "F"
                                    End If
                                End If

                                'Wenn gefunden
                                If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then
                                    '    If sendToID = 153 Or sendToID = 174 Then '--> NUR TOBI/MATHIAS!!
                                    Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                                    'Dim GrenzstelleAVISO = SQL.DLookup("Grenzstelle", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO")
                                    'If GrenzstelleAVISO = "???" Then  'lt. ML 27.03.-> für alle freigeben
                                    If IsNumeric(statusAVISO) Then
                                        Select Case CInt(statusAVISO)

                                            Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                                'Nicht
                                            Case Else
                                                Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.ZOLL_Mitteilung
                                                Dim BenText = (TXT_Mitteilung & TXT_Mitteilung_Zollbeamter).Trim
                                                VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, code, art, sendToID, "ZOLL: Mitteilung", 1, , BenText,,, If(EZA_TMP IsNot Nothing, If(EZA_TMP.eza_firma, ""), ""))
                                                VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, BenText, 125,,, True, "ZOLL")
                                        End Select
                                        '  End If
                                        '      End If
                                    End If
                                End If

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

                            End Try
                    End Select

                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)
            readEZA_EntscheidungAnmeldung_004 = ""
        End Try
    End Function
    Function readEZA_EntscheidungAnmeldung_005(d) As String
        Try

            Dim EZA As DAKOSY_Worker.EntscheidungAnmeldung_005.EntscheidungAnmeldungRLTyp = DAKOSY_Worker.EntscheidungAnmeldung_005.EntscheidungAnmeldungRLTyp.LoadFromFile(d)
            Dim anr = ""
            Dim regNr = ""
            Dim details = ""
            Dim zoellner = ""
            Dim zp As Object = Nothing

            Dim division = ""

            Dim TXT_DokBeschau = ""
            Dim TXT_Rückweisung = ""
            Dim TXT_Mitteilung = ""
            Dim TXT_Mitteilung_Zollbeamter = ""
            'Dim annahmeKz As Object = Nothing
            'Dim ueberlassungKz As Object = Nothing
            'Dim RueckgabeKz As Object = Nothing
            'Dim anordnungKz As Object = Nothing

            readEZA_EntscheidungAnmeldung_005 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If

                End If

                If EZA.EinzelEntscheidungAnmeldung IsNot Nothing Then
                    If EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_EntscheidungAnmeldung_005 = EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelEntscheidungAnmeldung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelEntscheidungAnmeldung.KopfDaten IsNot Nothing Then
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.ArbeitsnummerVorzeitigeAnmeldung IsNot Nothing Then
                            regNr = EZA.EinzelEntscheidungAnmeldung.KopfDaten.ArbeitsnummerVorzeitigeAnmeldung
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.Registriernummer IsNot Nothing Then
                            anr = EZA.EinzelEntscheidungAnmeldung.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten IsNot Nothing Then
                            details = EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten
                        End If
                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll IsNot Nothing Then
                            zoellner = EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll
                        End If
                    End If

                    'POS __> DOKUMENTENBSCHAU
                    If EZA.EinzelEntscheidungAnmeldung.Position IsNot Nothing Then

                        For Each POS In EZA.EinzelEntscheidungAnmeldung.Position
                            If POS.AnordnungKz IsNot Nothing Then
                                '0 = Keine Beschau. 1 = Volle Gesamtbeschau. 2 = Stichprobenweise Mengenbeschau. 3 = Stichprobenweise Beschaffenheitsbeschau. 4 = Dokumentenprüfung 5= Durchleuchtung 9 = Andere. (Codeliste A1410
                                Select Case POS.AnordnungKz
                                    Case "4" '--> Dokumentenprüfung
                                        TXT_DokBeschau &= POS.Positionsnummer & ": Dokumentenprüfung" & If(POS.MitteilungTeilnehmerBeschau IsNot Nothing, " (" & POS.MitteilungTeilnehmerBeschau & ")", "") & vbNewLine
                                        'MitteilungTeilnehmerBeschau
                                End Select
                            End If
                            If POS.RueckgabeKz IsNot Nothing Then
                                If POS.RueckgabeKz = "J" Then
                                    TXT_Rückweisung &= POS.Positionsnummer & ": Rückweisung " & vbNewLine
                                End If
                            End If

                        Next
                    End If

                    If EZA.EinzelEntscheidungAnmeldung.KopfDaten IsNot Nothing Then

                        If EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten IsNot Nothing Then
                            TXT_Mitteilung &= "Text: " & EZA.EinzelEntscheidungAnmeldung.KopfDaten.MitteilungTeilnehmerGestellungsmodalitaeten

                            If EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll IsNot Nothing Then
                                TXT_Mitteilung_Zollbeamter &= " (" & EZA.EinzelEntscheidungAnmeldung.KopfDaten.BearbeiterZoll & ")"
                            End If
                            TXT_Mitteilung &= vbNewLine
                        End If
                    End If

                    'End If

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


            If readEZA_EntscheidungAnmeldung_005 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_EntscheidungAnmeldung_005
                STATUS.dySt_artMitteilung = "EA"
                STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2


                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_41
                STATUS.dySt_ergZeitpunkt = zp
                STATUS.dySt_ergZoellner = zoellner
                STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = Nothing

                If DY_TMP.dy_Status <> DAKOSY_Worker.cDY_Statusliste.S_60 Then 'Wenn beretis auf 60, dann wird kiene Änderung mehr vorgenommen!

                    If anr <> "" Then
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), anr)
                        STATUS.dySt_ergCode = "ANR"
                        STATUS.dySt_ergMitteilung = anr
                    ElseIf regNr <> "" Then
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), , regNr)
                        STATUS.dySt_ergCode = "REGNR"
                        STATUS.dySt_ergMitteilung = regNr
                    Else
                        EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                    End If

                    SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                    If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                End If

                STATUS.SAVE()

                addDGVEinarbeitung("EZA: EntscheidungAnmeldung", STATUS.dySt_BezugsNr)




                If TXT_DokBeschau <> "" Then
                    'Benachrichtigung
                    Try
                        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                        Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                        Dim art = "B"

                        'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer des LKWs nicht online, Team...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "T"
                        End If

                        'Wenn TEAM  nicht gefunden, Firma...
                        If sendToID <= 0 Then
                            If EZA_TMP IsNot Nothing AndAlso EZA_TMP.eza_firma IsNot Nothing AndAlso EZA_TMP.eza_firma <> "" Then
                                sendToID = EZA_TMP.eza_firma
                                art = "F"
                            End If
                        End If

                        'Wenn gefunden
                        If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then

                            Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)

                            If IsNumeric(statusAVISO) Then
                                Select Case CInt(statusAVISO)

                             'Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben,,VERAG_PROG_ALLGEMEIN.cGlobal.erfasst    Nue
                                    Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                        'Nicht
                                    Case Else
                                        Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.ZOLL_Dokumentenbeschau
                                        Dim BenText = (TXT_DokBeschau & vbNewLine & TXT_Mitteilung).Trim
                                        VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, code, art, sendToID, "ZOLL: (Dokument)Beschau", 1, , BenText,,, If(EZA_TMP IsNot Nothing, If(EZA_TMP.eza_firma, ""), ""))
                                        VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, BenText, 124,,, True, "ZOLL")
                                End Select
                            End If
                            End If


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

                    End Try
                End If

                If TXT_Rückweisung <> "" Then

                    'Benachrichtigung
                    Try
                        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                        Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                        Dim art = "B"

                        'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                            art = "B"
                        End If

                        'Wenn Benutzer des LKWs nicht online, Team...
                        If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                            sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                            art = "T"
                        End If

                        'Wenn TEAM  nicht gefunden, Firma...
                        If sendToID <= 0 Then
                            If EZA_TMP IsNot Nothing AndAlso EZA_TMP.eza_firma IsNot Nothing AndAlso EZA_TMP.eza_firma <> "" Then
                                sendToID = EZA_TMP.eza_firma
                                art = "F"
                            End If
                        End If

                        'Wenn gefunden
                        If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then
                            Dim statusAVISO As Integer = statusAVISO = CInt(SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1))
                            ' Dim GrenzstelleAVISO = SQL.DLookup("Grenzstelle", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO")
                            ' If GrenzstelleAVISO = "???" Then 'lt. ML 27.03.-> für alle freigeben
                            Select Case statusAVISO
                                Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                    'Nicht
                                Case Else
                                    Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.ZOLL_Rueckweisung
                                    Dim BenText = (TXT_Rückweisung & vbNewLine & TXT_Mitteilung).Trim
                                    VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, code, art, sendToID, "ZOLL: Rückweisung", 1, , BenText,,, If(EZA_TMP IsNot Nothing, If(EZA_TMP.eza_firma, ""), ""))
                                    VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, BenText, 125,,, True, "ZOLL")
                            End Select
                            ' End If
                        End If

                    Catch ex As Exception
                        VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "TXT_Rückweisung - Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)

                    End Try
                End If


                'Nur Mitteilung - keine Beschau, RW...
                If TXT_Mitteilung <> "" And TXT_Rückweisung = "" And TXT_DokBeschau = "" Then
                    Select Case TXT_Mitteilung.Replace("Text: ", "").Replace(".", "").Trim.ToLower
                        Case "entgegengenommen"
                        Case "Zollanmeldung entgegengenommen"
                        Case "0"
                        Case "eingegangen"
                        Case Else

                            'Benachrichtigung
                            Try
                                Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
                                Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                                Dim art = "B"

                                'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
                                If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                    sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                                    art = "B"
                                End If

                                'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
                                If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                    sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                                    art = "B"
                                End If

                                'Wenn Benutzer des LKWs nicht online, Team...
                                If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
                                    sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & DY_TMP.dy_SendungsId & "'", "AVISO", -1)
                                    art = "T"
                                End If

                                'Wenn TEAM  nicht gefunden, Firma...
                                If sendToID <= 0 Then
                                    If EZA_TMP IsNot Nothing AndAlso EZA_TMP.eza_firma IsNot Nothing AndAlso EZA_TMP.eza_firma <> "" Then
                                        sendToID = EZA_TMP.eza_firma
                                        art = "F"
                                    End If
                                End If

                                'Wenn gefunden
                                If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then
                                    '    If sendToID = 153 Or sendToID = 174 Then '--> NUR TOBI/MATHIAS!!
                                    Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO", -1)
                                    'Dim GrenzstelleAVISO = SQL.DLookup("Grenzstelle", "Aviso", "AvisoID='" & DY_TMP.dy_AvisoId & "'", "AVISO")
                                    'If GrenzstelleAVISO = "???" Then  'lt. ML 27.03.-> für alle freigeben
                                    If IsNumeric(statusAVISO) Then
                                        Select Case CInt(statusAVISO)
                                            Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
                                                'Nicht
                                            Case Else
                                                Dim code = VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.ZOLL_Mitteilung
                                                Dim BenText = (TXT_Mitteilung & TXT_Mitteilung_Zollbeamter).Trim
                                                VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, code, art, sendToID, "ZOLL: Mitteilung", 1, , BenText,,, If(EZA_TMP IsNot Nothing, If(EZA_TMP.eza_firma, ""), ""))
                                                VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, BenText, 126,,, True, "ZOLL")
                                        End Select
                                    End If
                                    '  End If
                                    '      End If
                                End If

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

                            End Try
                    End Select

                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)
            readEZA_EntscheidungAnmeldung_005 = ""
        End Try
    End Function



    Function readEZA_SumAErledigungsinformationVorpapier(d) As String
        Try

            Dim EZA As DAKOSY_Worker.SumAErledigungsinformationVorpapier.SumAErledigungsinformationVorpapierSIVRPTyp = DAKOSY_Worker.SumAErledigungsinformationVorpapier.SumAErledigungsinformationVorpapierSIVRPTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_SumAErledigungsinformationVorpapier = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelSumAErledigungsinformation IsNot Nothing Then
                    If EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_SumAErledigungsinformationVorpapier = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ZeitpunktNachrichteneingang
                    End If
                    If EZA.EinzelSumAErledigungsinformation.KopfDaten IsNot Nothing Then
                        If EZA.EinzelSumAErledigungsinformation.KopfDaten.ArtErledigung IsNot Nothing Then
                            ART = EZA.EinzelSumAErledigungsinformation.KopfDaten.ArtErledigung
                        End If
                        If EZA.EinzelSumAErledigungsinformation.KopfDaten.RegNrATLASWeitereNachweise IsNot Nothing Then
                            regNR = EZA.EinzelSumAErledigungsinformation.KopfDaten.RegNrATLASWeitereNachweise
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_SumAErledigungsinformationVorpapier <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_SumAErledigungsinformationVorpapier
                STATUS.dySt_artMitteilung = "EVP"
                STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_42 '???
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    STATUS.dySt_ergCode = "ART"
                    If ART <> "" Then STATUS.dySt_ergMitteilung = ART
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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

                addDGVEinarbeitung("EZA: Erledigungsinformation-Vorpapier", 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)
            readEZA_SumAErledigungsinformationVorpapier = ""
        End Try
    End Function

    Function readEZA_SumAErledigungsinformationVorpapier_004(d) As String
        Try

            Dim EZA As DAKOSY_Worker.SumAErledigungsinformationVorpapier_004.SumAErledigungsinformationVorpapierSIVRPTyp = DAKOSY_Worker.SumAErledigungsinformationVorpapier_004.SumAErledigungsinformationVorpapierSIVRPTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_SumAErledigungsinformationVorpapier_004 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelSumAErledigungsinformation IsNot Nothing Then
                    If EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_SumAErledigungsinformationVorpapier_004 = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ZeitpunktNachrichteneingang
                    End If
                    If EZA.EinzelSumAErledigungsinformation.KopfDaten IsNot Nothing Then
                        If EZA.EinzelSumAErledigungsinformation.KopfDaten.ArtErledigung IsNot Nothing Then
                            ART = EZA.EinzelSumAErledigungsinformation.KopfDaten.ArtErledigung
                        End If
                        If EZA.EinzelSumAErledigungsinformation.KopfDaten.RegNrATLASWeitereNachweise IsNot Nothing Then
                            regNR = EZA.EinzelSumAErledigungsinformation.KopfDaten.RegNrATLASWeitereNachweise
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_SumAErledigungsinformationVorpapier_004 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_SumAErledigungsinformationVorpapier_004
                STATUS.dySt_artMitteilung = "EVP"
                STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_42 '???
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    STATUS.dySt_ergCode = "ART"
                    If ART <> "" Then STATUS.dySt_ergMitteilung = ART
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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

                addDGVEinarbeitung("EZA: Erledigungsinformation-Vorpapier", 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)
            readEZA_SumAErledigungsinformationVorpapier_004 = ""
        End Try
    End Function



    Function readEZA_NichtAbschliessendeFestsetzung(d) As String
        Try

            Dim EZA As DAKOSY_Worker.NichtAbschliessendeFestsetzung.NichtAbschliessendeFestsetzungTAXNTyp = DAKOSY_Worker.NichtAbschliessendeFestsetzung.NichtAbschliessendeFestsetzungTAXNTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_NichtAbschliessendeFestsetzung = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelNichtAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_NichtAbschliessendeFestsetzung = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_NichtAbschliessendeFestsetzung <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_NichtAbschliessendeFestsetzung
                STATUS.dySt_artMitteilung = "NAF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_56
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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

                addDGVEinarbeitung("EZA: Nicht-abschließende Festsetzung", 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)
            readEZA_NichtAbschliessendeFestsetzung = ""
        End Try
    End Function

    Function readEZA_NichtAbschliessendeFestsetzung003(d) As String
        Try

            Dim EZA As DAKOSY_Worker.NichtAbschliessendeFestsetzung_003.NichtAbschliessendeFestsetzungTAXNTyp = DAKOSY_Worker.NichtAbschliessendeFestsetzung_003.NichtAbschliessendeFestsetzungTAXNTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_NichtAbschliessendeFestsetzung003 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelNichtAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_NichtAbschliessendeFestsetzung003 = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_NichtAbschliessendeFestsetzung003 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_NichtAbschliessendeFestsetzung003
                STATUS.dySt_artMitteilung = "NAF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_56
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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

                addDGVEinarbeitung("EZA: Nicht-abschließende Festsetzung", 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)
            readEZA_NichtAbschliessendeFestsetzung003 = ""
        End Try
    End Function


    Function readEZA_NichtAbschliessendeFestsetzung004(d) As String
        Try

            Dim EZA As DAKOSY_Worker.NichtAbschliessendeFestsetzung_004.NichtAbschliessendeFestsetzungTAXNTyp = DAKOSY_Worker.NichtAbschliessendeFestsetzung_004.NichtAbschliessendeFestsetzungTAXNTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_NichtAbschliessendeFestsetzung004 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelNichtAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_NichtAbschliessendeFestsetzung004 = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_NichtAbschliessendeFestsetzung004 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_NichtAbschliessendeFestsetzung004
                STATUS.dySt_artMitteilung = "NAF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_56
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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

                addDGVEinarbeitung("EZA: Nicht-abschließende Festsetzung", 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)
            readEZA_NichtAbschliessendeFestsetzung004 = ""
        End Try
    End Function

    Function readEZA_NichtAbschliessendeFestsetzung005(d) As String
        Try

            Dim EZA As DAKOSY_Worker.NichtAbschliessendeFestsetzung_005.NichtAbschliessendeFestsetzungTAXNTyp = DAKOSY_Worker.NichtAbschliessendeFestsetzung_005.NichtAbschliessendeFestsetzungTAXNTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_NichtAbschliessendeFestsetzung005 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelNichtAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_NichtAbschliessendeFestsetzung005 = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelNichtAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelNichtAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_NichtAbschliessendeFestsetzung005 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_NichtAbschliessendeFestsetzung005
                STATUS.dySt_artMitteilung = "NAF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_56
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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


                '=====ATEZ BEREITSTELLUNG==========
                cWorker_NCTS.checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================


                addDGVEinarbeitung("EZA: Nicht-abschließende Festsetzung", 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)
            readEZA_NichtAbschliessendeFestsetzung005 = ""
        End Try
    End Function


    Function readEZA_StornierungBescheid(d) As String
        Try

            Dim EZA As DAKOSY_Worker.StornierungBescheid.StornierungBescheidREVTyp = DAKOSY_Worker.StornierungBescheid.StornierungBescheidREVTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""
            Dim grund = ""
            Dim zoellner = ""

            readEZA_StornierungBescheid = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelStornierungBescheid IsNot Nothing Then
                    If EZA.EinzelStornierungBescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_StornierungBescheid = EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelStornierungBescheid.KopfDaten IsNot Nothing Then
                        'If EZA.EinzelStornierungBescheid.KopfDaten.StornierteRegistrierNr IsNot Nothing Then
                        '   regNR = EZA.EinzelStornierungBescheid.KopfDaten.StornierteRegistrierNr
                        'End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.RegistrierNrNeu IsNot Nothing Then
                            regNR = EZA.EinzelStornierungBescheid.KopfDaten.RegistrierNrNeu
                        End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.StornierungGrund IsNot Nothing Then
                            grund = EZA.EinzelStornierungBescheid.KopfDaten.StornierungGrund
                        End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.ZollBearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelStornierungBescheid.KopfDaten.ZollBearbeiter
                        End If

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

            If readEZA_StornierungBescheid <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_StornierungBescheid
                STATUS.dySt_artMitteilung = "STORNO"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_57
                STATUS.dySt_ergZeitpunkt = zp


                STATUS.dySt_ergZoellner = zoellner
                STATUS.dySt_ergDetails = grund
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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


                '=====ATEZ BEREITSTELLUNG==========
                cWorker_NCTS.checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================


                addDGVEinarbeitung("EZA: Stornierung Bescheid", 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)
            readEZA_StornierungBescheid = ""
        End Try
    End Function

    Function readEZA_StornierungBescheid_002(d) As String
        Try

            Dim EZA As DAKOSY_Worker.StornierungBescheid_002.StornierungBescheidREVTyp = DAKOSY_Worker.StornierungBescheid_002.StornierungBescheidREVTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""
            Dim grund = ""
            Dim zoellner = ""

            readEZA_StornierungBescheid_002 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelStornierungBescheid IsNot Nothing Then
                    If EZA.EinzelStornierungBescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_StornierungBescheid_002 = EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelStornierungBescheid.KopfDaten IsNot Nothing Then
                        'If EZA.EinzelStornierungBescheid.KopfDaten.StornierteRegistrierNr IsNot Nothing Then
                        '   regNR = EZA.EinzelStornierungBescheid.KopfDaten.StornierteRegistrierNr
                        'End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.RegistrierNrNeu IsNot Nothing Then
                            regNR = EZA.EinzelStornierungBescheid.KopfDaten.RegistrierNrNeu
                        End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.StornierungGrund IsNot Nothing Then
                            grund = EZA.EinzelStornierungBescheid.KopfDaten.StornierungGrund
                        End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.ZollBearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelStornierungBescheid.KopfDaten.ZollBearbeiter
                        End If

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

            If readEZA_StornierungBescheid_002 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_StornierungBescheid_002
                STATUS.dySt_artMitteilung = "STORNO"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_57
                STATUS.dySt_ergZeitpunkt = zp


                STATUS.dySt_ergZoellner = zoellner
                STATUS.dySt_ergDetails = grund
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

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

                addDGVEinarbeitung("EZA: Stornierung Bescheid", 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)
            readEZA_StornierungBescheid_002 = ""
        End Try
    End Function


    Function readEZA_StornierungBescheid_003(d) As String
        Try

            Dim EZA As DAKOSY_Worker.StornierungBescheid_003.StornierungBescheidREVTyp = DAKOSY_Worker.StornierungBescheid_003.StornierungBescheidREVTyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""
            Dim grund = ""
            Dim zoellner = ""

            readEZA_StornierungBescheid_003 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelStornierungBescheid IsNot Nothing Then
                    If EZA.EinzelStornierungBescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_StornierungBescheid_003 = EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelStornierungBescheid.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelStornierungBescheid.KopfDaten IsNot Nothing Then
                        'If EZA.EinzelStornierungBescheid.KopfDaten.StornierteRegistrierNr IsNot Nothing Then
                        '   regNR = EZA.EinzelStornierungBescheid.KopfDaten.StornierteRegistrierNr
                        'End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.RegistrierNrNeu IsNot Nothing Then
                            regNR = EZA.EinzelStornierungBescheid.KopfDaten.RegistrierNrNeu
                        End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.StornierungGrund IsNot Nothing Then
                            grund = EZA.EinzelStornierungBescheid.KopfDaten.StornierungGrund
                        End If
                        If EZA.EinzelStornierungBescheid.KopfDaten.ZollBearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelStornierungBescheid.KopfDaten.ZollBearbeiter
                        End If

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

            If readEZA_StornierungBescheid_003 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_StornierungBescheid_003
                STATUS.dySt_artMitteilung = "STORNO"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_57
                STATUS.dySt_ergZeitpunkt = zp


                STATUS.dySt_ergZoellner = zoellner
                STATUS.dySt_ergDetails = grund
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA




                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)


                ' ----------------------------------------------------------------------------------------------------------------------
                ' STORNO -> Benachrichtigung + Vermerk 
                If DY_TMP.dy_SendungsId > 0 AndAlso DY_TMP.dy_AvisoId > 0 Then
                    frmStartOptions.insertBenachrichtigung_BearbeitendeEinheit(DY_TMP.dy_AvisoId, DY_TMP.dy_SendungsId, EZA_TMP.eza_firma, 10, "ZOLL: Storno", "ZOLL: Storno " & STATUS.dySt_BezugsNr, 0)
                    VERAG_PROG_ALLGEMEIN.cVermerkeDAL.insertSendungsVermerk(DY_TMP.dy_SendungsId, DY_TMP.dy_AvisoId, "ZOLL: Storno " & STATUS.dySt_BezugsNr, 128,,, True, "ZOLL")
                End If
                ' ----------------------------------------------------------------------------------------------------------------------

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

                addDGVEinarbeitung("EZA: Stornierung Bescheid", 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)
            readEZA_StornierungBescheid_003 = ""
        End Try
    End Function


    Function readEZA_AbschliessendeFestsetzung(d) As String
        Try

            Dim EZA As DAKOSY_Worker.AbschliessendeFestsetzung.AbschliessendeFestsetzungTAXATyp = DAKOSY_Worker.AbschliessendeFestsetzung.AbschliessendeFestsetzungTAXATyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_AbschliessendeFestsetzung = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_AbschliessendeFestsetzung = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_AbschliessendeFestsetzung <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_AbschliessendeFestsetzung
                STATUS.dySt_artMitteilung = "AF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If


                'Anmlededatum setzen
                EZA_TMP.eza_Anmeldedatum = zp
                EZA_TMP.SAVE()

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                'If If(EZA_TMP.eza_firma, "") = "IMEX" Then EZA_TMP.insertIntoSpedBuch(DY_TMP)
                EZA_TMP.insertIntoSpedBuch(DY_TMP)

                addDGVEinarbeitung("EZA: Abschließende Festsetzung", 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)
            readEZA_AbschliessendeFestsetzung = ""
        End Try
    End Function


    Function readEZA_AbschliessendeFestsetzung004(d) As String
        Try

            Dim EZA As DAKOSY_Worker.AbschliessendeFestsetzung_004.AbschliessendeFestsetzungTAXATyp = DAKOSY_Worker.AbschliessendeFestsetzung_004.AbschliessendeFestsetzungTAXATyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_AbschliessendeFestsetzung004 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_AbschliessendeFestsetzung004 = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_AbschliessendeFestsetzung004 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_AbschliessendeFestsetzung004
                STATUS.dySt_artMitteilung = "AF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA


                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                'Anmlededatum setzen
                EZA_TMP.eza_Anmeldedatum = zp
                EZA_TMP.SAVE()

                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                'If If(EZA_TMP.eza_firma, "") = "IMEX" Then EZA_TMP.insertIntoSpedBuch(DY_TMP)
                EZA_TMP.insertIntoSpedBuch(DY_TMP)

                addDGVEinarbeitung("EZA: Abschließende Festsetzung", 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)
            readEZA_AbschliessendeFestsetzung004 = ""
        End Try
    End Function


    Function readEZA_AbschliessendeFestsetzung005(d) As String
        Try

            Dim EZA As DAKOSY_Worker.AbschliessendeFestsetzung_005.AbschliessendeFestsetzungTAXATyp = DAKOSY_Worker.AbschliessendeFestsetzung_005.AbschliessendeFestsetzungTAXATyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_AbschliessendeFestsetzung005 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_AbschliessendeFestsetzung005 = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_AbschliessendeFestsetzung005 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_AbschliessendeFestsetzung005
                STATUS.dySt_artMitteilung = "AF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA


                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If

                'Anmlededatum setzen
                EZA_TMP.eza_Anmeldedatum = zp
                EZA_TMP.SAVE()


                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                'If If(EZA_TMP.eza_firma, "") = "IMEX" Then EZA_TMP.insertIntoSpedBuch(DY_TMP)
                EZA_TMP.insertIntoSpedBuch(DY_TMP)

                addDGVEinarbeitung("EZA: Abschließende Festsetzung", 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)
            readEZA_AbschliessendeFestsetzung005 = ""
        End Try
    End Function

    Function readEZA_AbschliessendeFestsetzung006(d) As String
        Try

            Dim EZA As DAKOSY_Worker.AbschliessendeFestsetzung_006.AbschliessendeFestsetzungTAXATyp = DAKOSY_Worker.AbschliessendeFestsetzung_006.AbschliessendeFestsetzungTAXATyp.LoadFromFile(d)
            Dim ART = ""
            '   Dim details = ""

            Dim zp As Object = Nothing
            Dim regNR = ""
            Dim division = ""

            readEZA_AbschliessendeFestsetzung006 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbschliessendeFestsetzung IsNot Nothing Then
                    If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_AbschliessendeFestsetzung006 = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbschliessendeFestsetzung.ObjektIdentifizierung.ZeitpunktEingang
                    End If
                    If EZA.EinzelAbschliessendeFestsetzung.KopfDaten IsNot Nothing Then
                        ' If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung IsNot Nothing Then
                        'ART = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.ArtErledigung
                        ' End If
                        If EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr IsNot Nothing Then
                            regNR = EZA.EinzelAbschliessendeFestsetzung.KopfDaten.RegistrierNr
                        End If
                    End If
                End If
            End If
            ' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.

            If readEZA_AbschliessendeFestsetzung006 <> "" Then 'BEZUGSNR vorhanden
                Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
                STATUS.dySt_BezugsNr = readEZA_AbschliessendeFestsetzung006
                STATUS.dySt_artMitteilung = "AF"
                STATUS.dySt_dyArt = "EZA"

                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                STATUS.dySt_ergZeitpunkt = zp


                ' STATUS.dySt_ergDetails = details
                'EINTRAG IN tblDakosy_Zollanmeldungen
                Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
                Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA


                '???????? REGNR
                If regNR <> "" Then
                    STATUS.dySt_ergCode = "REGNr"
                    STATUS.dySt_ergMitteilung = regNR
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
                Else
                    EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                End If
                EZA_TMP.loadAll()

                'Anmlededatum setzen
                EZA_TMP.eza_Anmeldedatum = zp
                EZA_TMP.SAVE()


                SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)

                If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
                STATUS.SAVE()
                'If If(EZA_TMP.eza_firma, "") = "IMEX" Then EZA_TMP.insertIntoSpedBuch(DY_TMP)
                EZA_TMP.insertIntoSpedBuch(DY_TMP)

                '=====IMPORT IN VERAG DATENMODELL==========
                Dim IMP As New DAKOSY_Worker.cImporter_DakosyToVERAG
                IMP.ImportDakosyEZA(EZA_TMP, False, True)
                '==================================

                '=====ATEZ BEREITSTELLUNG==========
                cWorker_NCTS.checkATEZ_BereitstellungDHUB(DY_TMP, d)
                '==================================


                addDGVEinarbeitung("EZA: Abschließende Festsetzung", 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)
            readEZA_AbschliessendeFestsetzung006 = ""
        End Try
    End Function

    Function readEZA_Abgabenbescheid(d) As String
        Try
            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim EZA As DAKOSY_Worker.Abgabenbescheid.AbgabenbescheidEinfuhrTAXTyp = DAKOSY_Worker.Abgabenbescheid.AbgabenbescheidEinfuhrTAXTyp.LoadFromFile(d)
            Dim regNr = ""
            Dim regDat = ""
            Dim details = ""
            Dim zoellner = ""
            Dim erledigung = ""
            Dim zp As Object = Nothing
            Dim EDIFACTNachrichtenNr = ""

            Dim division = ""

            readEZA_Abgabenbescheid = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbgabenbescheid IsNot Nothing Then

                    'Vorgezogen, damit firma/NL erkannt wird
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)


                    If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_Abgabenbescheid = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ZeitpunktEingang
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr IsNot Nothing Then
                            EDIFACTNachrichtenNr = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr
                        End If
                    End If

                    If EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer IsNot Nothing Then
                            regNr = EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz IsNot Nothing Then
                            erledigung = EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz
                        End If
                        ' If EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum IsNot Nothing Then
                        regDat = EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum
                        'End If



                    End If

                    If readEZA_Abgabenbescheid <> "" Then 'BEZUGSNR vorhanden
                        STATUS.dySt_BezugsNr = readEZA_Abgabenbescheid
                        STATUS.dySt_artMitteilung = "AB"
                        STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                        Select Case erledigung
                            Case "0" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "1" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "2" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "3" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_99 'unwirksam
                            Case "4" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                            Case "5" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "6" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "7" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_68 'Abgabe HZS
                            Case "8" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_61 'Erledigung außerhalb d. SB
                        End Select

                        STATUS.dySt_ergCode = "REGNr"
                        STATUS.dySt_ergMitteilung = regNr
                        STATUS.dySt_ergZeitpunkt = zp
                        STATUS.dySt_ergZoellner = zoellner
                        STATUS.dySt_ergDetails = details
                        'EINTRAG IN tblDakosy_Zollanmeldungen

                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA

                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")

                        If regNr <> "" Then
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        Else
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                        End If


                        Dim firma = ""
                        Dim nl = ""
                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division, firma, nl)

                        ' ------------------------------------------------------------------------------
                        ' wenn nicht abschliebender Abgabenbescheid --> Infomail an die Zollbüros!
                        Select Case erledigung
                            Case "4"
                                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Dim MailTo = "eu@verag.ag"
                                Select Case EZA_TMP.eza_firma
                                    Case "IMEX" : MailTo = "info@imex-group.at"
                                    Case "UNISPED" : MailTo = "office@unisped.at"
                                    Case "ATILLA" : MailTo = "atilla@verag.ag"
                                    Case "VERAG"
                                        Select Case EZA_TMP.eza_niederlassung
                                            Case "WAI" : MailTo = "waidhaus@verag.com"
                                            Case "SBG" : MailTo = "de@verag.ag"
                                        End Select
                                End Select
                                VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                                                                "Meldung über <b>nicht abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                                                                 , True, True)
                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()

                                'Case "5"
                                '    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                '    Dim MailTo = "al@verag.ag"

                                '    VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                '                                               "Meldung über <b>abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                '                                                     , True, True)
                            Case "5", "6"
                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()

                        End Select
                        ' ------------------------------------------------------------------------------

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

                        If EZA IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                            InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, readEZA_Abgabenbescheid, regDat, firma, nl, EDIFACTNachrichtenNr)
                        End If


                        'Status aktualisieren
                        saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)

                        EZA_TMP.insertIntoSpedBuch(DY_TMP)


                        addDGVEinarbeitung("EZA: Abgabenbescheid", STATUS.dySt_BezugsNr)
                    End If


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


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


    Function readEZA_Abgabenbescheid008(d) As String
        Try
            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim EZA As DAKOSY_Worker.Abgabenbescheid_008.AbgabenbescheidEinfuhrTAXTyp = DAKOSY_Worker.Abgabenbescheid_008.AbgabenbescheidEinfuhrTAXTyp.LoadFromFile(d)
            Dim regNr = ""
            Dim regDat = ""
            Dim details = ""
            Dim zoellner = ""
            Dim erledigung = ""
            Dim zp As Object = Nothing
            Dim EDIFACTNachrichtenNr = ""
            Dim AUFSCHUB As List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub) = Nothing
            Dim division = ""

            readEZA_Abgabenbescheid008 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbgabenbescheid IsNot Nothing Then

                    'Vorgezogen, damit firma/NL erkannt wird
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)


                    If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_Abgabenbescheid008 = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ZeitpunktEingang
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr IsNot Nothing Then
                            EDIFACTNachrichtenNr = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr
                        End If
                    End If

                    If EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer IsNot Nothing Then
                            regNr = EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz IsNot Nothing Then
                            erledigung = EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz
                        End If
                        ' If EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum IsNot Nothing Then
                        regDat = EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum
                        'End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt.Count > 0 Then
                            Dim a As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            AUFSCHUB = New List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub)
                            For Each ABG In EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt
                                a.ezaAfb_ArtAufschubantrag = ABG.ArtAufschubAntrag
                                a.ezaAfb_AufschubnehmerEORI = ABG.AufschubnehmerTIN
                                a.ezaAfb_HZA = ABG.KennBuchstabenAufschub
                                a.ezaAfb_KontoNr = ABG.AufschubkontoNr
                                If ABG.Faelligkeit > CDate("01.01.2000") Then a.ezaAfb_Faelligkeit = ABG.Faelligkeit
                                a.ezaAfb_Zahlungsart = ABG.Zahlungsart
                                a.ezaAfb_Abgabenbetrag = ABG.Abgabenbetrag
                                a.ezaAfb_AbgabeArt = ABG.AbgabeArt
                                a.AufschubnehmerName = ABG.AufschubnehmerName

                                'Select Case AbgabeArt
                                '    Case "B0000" 'EUST
                                '    Case "B0000" 'EUST
                                'End Select
                            Next
                            AUFSCHUB.Add(a)
                        End If




                    End If

                    If readEZA_Abgabenbescheid008 <> "" Then 'BEZUGSNR vorhanden
                        STATUS.dySt_BezugsNr = readEZA_Abgabenbescheid008
                        STATUS.dySt_artMitteilung = "AB"
                        STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                        Select Case erledigung
                            Case "0" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "1" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "2" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "3" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_99 'unwirksam
                            Case "4" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                            Case "5" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "6" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "7" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_68 'Abgabe HZS
                            Case "8" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_61 'Erledigung außerhalb d. SB
                        End Select

                        STATUS.dySt_ergCode = "REGNr"
                        STATUS.dySt_ergMitteilung = regNr
                        STATUS.dySt_ergZeitpunkt = zp
                        STATUS.dySt_ergZoellner = zoellner
                        STATUS.dySt_ergDetails = details
                        'EINTRAG IN tblDakosy_Zollanmeldungen

                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA




                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")

                        If regNr <> "" Then
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        Else
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                        End If


                        Dim firma = ""
                        Dim nl = ""
                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division, firma, nl)


                        If AUFSCHUB IsNot Nothing And EZA_TMP IsNot Nothing Then
                            EZA_TMP.eza_AUFSCHUB.Clear()
                            For Each a In AUFSCHUB
                                a.ezaAfb_EZAId = EZA_TMP.eza_Id
                            Next
                            EZA_TMP.eza_AUFSCHUB = AUFSCHUB
                            EZA_TMP.SAVE_Aufschub()

                            cVERAG_out_eza.copyFileFTP_VERAGEZA_DY(EZA_TMP, DY_TMP) ' SCHNITTSTELLE FTP BEREITSTELLEN
                            'RAISE-API-EVENT/TRIGGER ?? 
                        End If

                        ' ------------------------------------------------------------------------------
                        ' wenn nicht abschliebender Abgabenbescheid --> Infomail an die Zollbüros!
                        Select Case erledigung
                            Case "4"
                                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Dim MailTo = "eu@verag.ag"
                                Select Case EZA_TMP.eza_firma
                                    Case "IMEX" : MailTo = "info@imex-group.at"
                                    Case "ATILLA" : MailTo = "atilla@verag.ag"
                                    Case "UNISPED" : MailTo = "office@unisped.at"
                                    Case "VERAG"
                                        Select Case EZA_TMP.eza_niederlassung
                                            Case "WAI" : MailTo = "waidhaus@verag.com"
                                            Case "SBG" : MailTo = "de@verag.ag"
                                        End Select
                                End Select
                                VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid008,
                                                                                "Meldung über <b>nicht abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid008 & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                                                                 , True, True)


                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()




                                'Case "5"
                                '    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                '    Dim MailTo = "al@verag.ag"

                                '    VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                '                                               "Meldung über <b>abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                '                                                     , True, True)
                            Case "5", "6"
                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()


                        End Select
                        ' ------------------------------------------------------------------------------

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

                        If EZA IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                            InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, readEZA_Abgabenbescheid008, regDat, firma, nl, EDIFACTNachrichtenNr)
                        End If


                        'Status aktualisieren
                        saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)

                        EZA_TMP.insertIntoSpedBuch(DY_TMP)


                        addDGVEinarbeitung("EZA: Abgabenbescheid", STATUS.dySt_BezugsNr)
                    End If


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


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


    Function readEZA_Abgabenbescheid009(d, ByRef statusTMP) As String
        Try
            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim EZA As DAKOSY_Worker.Abgabenbescheid_009.AbgabenbescheidEinfuhrTAXTyp = DAKOSY_Worker.Abgabenbescheid_009.AbgabenbescheidEinfuhrTAXTyp.LoadFromFile(d)
            Dim regNr = ""
            Dim regDat = ""
            Dim details = ""
            Dim zoellner = ""
            Dim erledigung = ""
            Dim zp As Object = Nothing
            Dim EDIFACTNachrichtenNr = ""
            Dim AUFSCHUB As List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub) = Nothing
            Dim division = ""

            readEZA_Abgabenbescheid009 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbgabenbescheid IsNot Nothing Then

                    'Vorgezogen, damit firma/NL erkannt wird
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)


                    If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_Abgabenbescheid009 = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ZeitpunktEingang
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr IsNot Nothing Then
                            EDIFACTNachrichtenNr = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr
                        End If
                    End If

                    If EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter
                        End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer IsNot Nothing Then
                            regNr = EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz IsNot Nothing Then
                            erledigung = EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz
                        End If
                        ' If EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum IsNot Nothing Then
                        regDat = EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum
                        'End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt.Count > 0 Then
                            Dim a As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            AUFSCHUB = New List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub)
                            For Each ABG In EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt
                                a.ezaAfb_ArtAufschubantrag = ABG.ArtAufschubAntrag
                                a.ezaAfb_AufschubnehmerEORI = ABG.AufschubnehmerTIN
                                a.ezaAfb_HZA = ABG.KennBuchstabenAufschub
                                a.ezaAfb_KontoNr = ABG.AufschubkontoNr
                                If ABG.Faelligkeit > CDate("01.01.2000") Then a.ezaAfb_Faelligkeit = ABG.Faelligkeit
                                a.ezaAfb_Zahlungsart = ABG.Zahlungsart
                                a.ezaAfb_Abgabenbetrag = ABG.Abgabenbetrag
                                a.ezaAfb_AbgabeArt = ABG.AbgabeArt
                                a.AufschubnehmerName = ABG.AufschubnehmerName

                                'Select Case AbgabeArt
                                '    Case "B0000" 'EUST
                                '    Case "B0000" 'EUST
                                'End Select
                            Next
                            AUFSCHUB.Add(a)
                        End If



                    End If

                    If readEZA_Abgabenbescheid009 <> "" Then 'BEZUGSNR vorhanden
                        STATUS.dySt_BezugsNr = readEZA_Abgabenbescheid009
                        STATUS.dySt_artMitteilung = "AB"
                        STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                        Select Case erledigung
                            Case "0" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "1" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "2" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "3" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_99 'unwirksam
                            Case "4" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                            Case "5" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "6" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "7" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_68 'Abgabe HZS
                            Case "8" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_61 'Erledigung außerhalb d. SB
                        End Select

                        STATUS.dySt_ergCode = "REGNr"
                        STATUS.dySt_ergMitteilung = regNr
                        STATUS.dySt_ergZeitpunkt = zp
                        STATUS.dySt_ergZoellner = zoellner
                        STATUS.dySt_ergDetails = details
                        'EINTRAG IN tblDakosy_Zollanmeldungen

                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA



                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")

                        If regNr <> "" Then
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        Else
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                        End If


                        Dim firma = ""
                        Dim nl = ""
                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division, firma, nl)

                        If AUFSCHUB IsNot Nothing And EZA_TMP IsNot Nothing Then
                            EZA_TMP.eza_AUFSCHUB.Clear()
                            For Each a In AUFSCHUB
                                a.ezaAfb_EZAId = EZA_TMP.eza_Id
                            Next
                            EZA_TMP.eza_AUFSCHUB = AUFSCHUB
                            EZA_TMP.SAVE_Aufschub()

                            cVERAG_out_eza.copyFileFTP_VERAGEZA_DY(EZA_TMP, DY_TMP) ' SCHNITTSTELLE FTP BEREITSTELLEN
                            'RAISE-API-EVENT/TRIGGER ?? 
                        End If

                        ' ------------------------------------------------------------------------------
                        ' wenn nicht abschliebender Abgabenbescheid --> Infomail an die Zollbüros!
                        Select Case erledigung
                            Case "4"
                                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Dim MailTo = "eu@verag.ag"
                                Select Case EZA_TMP.eza_firma
                                    Case "IMEX" : MailTo = "info@imex-group.at"
                                    Case "ATILLA" : MailTo = "atilla@verag.ag"
                                    Case "UNISPED" : MailTo = "office@unisped.at"
                                    Case "VERAG"
                                        Select Case EZA_TMP.eza_niederlassung
                                            Case "WAI" : MailTo = "waidhaus@verag.com"
                                            Case "SBG" : MailTo = "de@verag.ag"
                                        End Select
                                End Select
                                VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid009,
                                                                                "Meldung über <b>nicht abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid009 & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                                                                 , True, True)



                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()


                                'Case "5"
                                '    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                '    Dim MailTo = "al@verag.ag"

                                '    VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                '                                               "Meldung über <b>abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                '                                                     , True, True)
                            Case "5", "6"


                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()


                        End Select
                        ' ------------------------------------------------------------------------------

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

                        If EZA IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                            InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, readEZA_Abgabenbescheid009, regDat, firma, nl, EDIFACTNachrichtenNr)
                        End If


                        'Status aktualisieren
                        saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        statusTMP = STATUS
                        EZA_TMP.insertIntoSpedBuch(DY_TMP)


                        addDGVEinarbeitung("EZA: Abgabenbescheid", STATUS.dySt_BezugsNr)
                    End If


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


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



    Function readEZA_Abgabenbescheid010(d, ByRef statusTMP) As String
        Try
            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim EZA As DAKOSY_Worker.Abgabenbescheid_010.AbgabenbescheidEinfuhrTAXTyp = DAKOSY_Worker.Abgabenbescheid_010.AbgabenbescheidEinfuhrTAXTyp.LoadFromFile(d)
            Dim regNr = ""
            Dim regDat = ""
            Dim details = ""
            Dim zoellner = ""
            Dim erledigung = ""
            Dim zp As Object = Nothing
            Dim EDIFACTNachrichtenNr = ""
            Dim AUFSCHUB As List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub) = Nothing
            Dim division = ""

            readEZA_Abgabenbescheid010 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbgabenbescheid IsNot Nothing Then

                    'Vorgezogen, damit firma/NL erkannt wird
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)


                    If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_Abgabenbescheid010 = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ZeitpunktEingang
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr IsNot Nothing Then
                            EDIFACTNachrichtenNr = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr
                        End If
                    End If

                    If EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter
                        End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer IsNot Nothing Then
                            regNr = EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz IsNot Nothing Then
                            erledigung = EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz
                        End If
                        ' If EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum IsNot Nothing Then
                        regDat = EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum
                        'End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt.Count > 0 Then
                            Dim a As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            AUFSCHUB = New List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub)
                            For Each ABG In EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt
                                a.ezaAfb_ArtAufschubantrag = ABG.ArtAufschubAntrag
                                a.ezaAfb_AufschubnehmerEORI = ABG.AufschubnehmerTIN
                                a.ezaAfb_HZA = ABG.KennBuchstabenAufschub
                                a.ezaAfb_KontoNr = ABG.AufschubkontoNr
                                If ABG.Faelligkeit > CDate("01.01.2000") Then a.ezaAfb_Faelligkeit = ABG.Faelligkeit
                                a.ezaAfb_Zahlungsart = ABG.Zahlungsart
                                a.ezaAfb_Abgabenbetrag = ABG.Abgabenbetrag
                                a.ezaAfb_AbgabeArt = ABG.AbgabeArt
                                a.AufschubnehmerName = ABG.AufschubnehmerName
                                'Select Case AbgabeArt
                                '    Case "B0000" 'EUST
                                '    Case "B0000" 'EUST
                                'End Select
                            Next
                            AUFSCHUB.Add(a)
                        End If



                    End If

                    If readEZA_Abgabenbescheid010 <> "" Then 'BEZUGSNR vorhanden
                        STATUS.dySt_BezugsNr = readEZA_Abgabenbescheid010
                        STATUS.dySt_artMitteilung = "AB"
                        STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                        Select Case erledigung
                            Case "0" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "1" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "2" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "3" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_99 'unwirksam
                            Case "4" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                            Case "5" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "6" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "7" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_68 'Abgabe HZS
                            Case "8" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_61 'Erledigung außerhalb d. SB
                        End Select

                        STATUS.dySt_ergCode = "REGNr"
                        STATUS.dySt_ergMitteilung = regNr
                        STATUS.dySt_ergZeitpunkt = zp
                        STATUS.dySt_ergZoellner = zoellner
                        STATUS.dySt_ergDetails = details
                        'EINTRAG IN tblDakosy_Zollanmeldungen

                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA



                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")

                        If regNr <> "" Then
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        Else
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                        End If


                        Dim firma = ""
                        Dim nl = ""
                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division, firma, nl)

                        If AUFSCHUB IsNot Nothing And EZA_TMP IsNot Nothing Then
                            EZA_TMP.eza_AUFSCHUB.Clear()
                            For Each a In AUFSCHUB
                                a.ezaAfb_EZAId = EZA_TMP.eza_Id
                            Next
                            EZA_TMP.eza_AUFSCHUB = AUFSCHUB
                            EZA_TMP.SAVE_Aufschub()

                            cVERAG_out_eza.copyFileFTP_VERAGEZA_DY(EZA_TMP, DY_TMP) ' SCHNITTSTELLE FTP BEREITSTELLEN
                            'RAISE-API-EVENT/TRIGGER ?? 
                        End If

                        ' ------------------------------------------------------------------------------
                        ' wenn nicht abschliebender Abgabenbescheid --> Infomail an die Zollbüros!
                        Select Case erledigung
                            Case "4"
                                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Dim MailTo = "eu@verag.ag"
                                Select Case EZA_TMP.eza_firma
                                    Case "IMEX" : MailTo = "info@imex-group.at"
                                    Case "ATILLA" : MailTo = "atilla@verag.ag"
                                    Case "UNISPED" : MailTo = "office@unisped.at"
                                    Case "VERAG"
                                        Select Case EZA_TMP.eza_niederlassung
                                            Case "WAI" : MailTo = "waidhaus@verag.com"
                                            Case "SBG" : MailTo = "de@verag.ag"
                                        End Select
                                End Select
                                VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid010,
                                                                                "Meldung über <b>nicht abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid010 & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                                                                 , True, True)


                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()


                                'Case "5"
                                '    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                '    Dim MailTo = "al@verag.ag"

                                '    VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                '                                               "Meldung über <b>abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                '                                                     , True, True)
                            Case "5", "6"


                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()


                        End Select
                        ' ------------------------------------------------------------------------------

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

                        If EZA IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                            InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, readEZA_Abgabenbescheid010, regDat, firma, nl, EDIFACTNachrichtenNr)
                        End If


                        'Status aktualisieren
                        saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        statusTMP = STATUS
                        EZA_TMP.insertIntoSpedBuch(DY_TMP)


                        addDGVEinarbeitung("EZA: Abgabenbescheid", STATUS.dySt_BezugsNr)
                    End If


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


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


    Function readEZA_Abgabenbescheid011(d, ByRef statusTMP) As String
        Try
            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim EZA As DAKOSY_Worker.Abgabenbescheid_011.AbgabenbescheidEinfuhrTAXTyp = DAKOSY_Worker.Abgabenbescheid_011.AbgabenbescheidEinfuhrTAXTyp.LoadFromFile(d)
            Dim regNr = ""
            Dim regDat = ""
            Dim details = ""
            Dim zoellner = ""
            Dim erledigung = ""
            Dim zp As Object = Nothing
            Dim EDIFACTNachrichtenNr = ""
            Dim AUFSCHUB As List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub) = Nothing
            Dim division = ""

            readEZA_Abgabenbescheid011 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbgabenbescheid IsNot Nothing Then

                    'Vorgezogen, damit firma/NL erkannt wird
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)


                    If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_Abgabenbescheid011 = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ZeitpunktEingang
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr IsNot Nothing Then
                            EDIFACTNachrichtenNr = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr
                        End If
                    End If

                    If EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter
                        End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer IsNot Nothing Then
                            regNr = EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz IsNot Nothing Then
                            erledigung = EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz
                        End If
                        ' If EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum IsNot Nothing Then
                        regDat = EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum
                        'End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt.Count > 0 Then
                            Dim a As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                            AUFSCHUB = New List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub)
                            For Each ABG In EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt
                                a.ezaAfb_ArtAufschubantrag = ABG.ArtAufschubAntrag
                                a.ezaAfb_AufschubnehmerEORI = ABG.AufschubnehmerTIN
                                a.ezaAfb_HZA = ABG.KennBuchstabenAufschub
                                a.ezaAfb_KontoNr = ABG.AufschubkontoNr
                                If ABG.Faelligkeit > CDate("01.01.2000") Then a.ezaAfb_Faelligkeit = ABG.Faelligkeit
                                a.ezaAfb_Zahlungsart = ABG.Zahlungsart
                                a.ezaAfb_Abgabenbetrag = ABG.Abgabenbetrag
                                a.ezaAfb_AbgabeArt = ABG.AbgabeArt
                                a.AufschubnehmerName = ABG.AufschubnehmerName
                                'Select Case AbgabeArt
                                '    Case "B0000" 'EUST
                                '    Case "B0000" 'EUST
                                'End Select
                            Next
                            AUFSCHUB.Add(a)
                        End If



                    End If

                    If readEZA_Abgabenbescheid011 <> "" Then 'BEZUGSNR vorhanden
                        STATUS.dySt_BezugsNr = readEZA_Abgabenbescheid011
                        STATUS.dySt_artMitteilung = "AB"
                        STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2

                        Select Case erledigung
                            Case "0" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "1" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "2" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                            Case "3" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_99 'unwirksam
                            Case "4" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                            Case "5" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "6" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                            Case "7" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_68 'Abgabe HZS
                            Case "8" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_61 'Erledigung außerhalb d. SB
                        End Select

                        STATUS.dySt_ergCode = "REGNr"
                        STATUS.dySt_ergMitteilung = regNr
                        STATUS.dySt_ergZeitpunkt = zp
                        STATUS.dySt_ergZoellner = zoellner
                        STATUS.dySt_ergDetails = details
                        'EINTRAG IN tblDakosy_Zollanmeldungen

                        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA



                        Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")

                        If regNr <> "" Then
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        Else
                            EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                        End If


                        Dim firma = ""
                        Dim nl = ""
                        SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division, firma, nl)

                        If AUFSCHUB IsNot Nothing And EZA_TMP IsNot Nothing Then
                            EZA_TMP.eza_AUFSCHUB.Clear()
                            For Each a In AUFSCHUB
                                a.ezaAfb_EZAId = EZA_TMP.eza_Id
                            Next
                            EZA_TMP.eza_AUFSCHUB = AUFSCHUB
                            EZA_TMP.SAVE_Aufschub()

                            cVERAG_out_eza.copyFileFTP_VERAGEZA_DY(EZA_TMP, DY_TMP) ' SCHNITTSTELLE FTP BEREITSTELLEN
                            'RAISE-API-EVENT/TRIGGER ?? 
                        End If

                        ' ------------------------------------------------------------------------------
                        ' wenn nicht abschliebender Abgabenbescheid --> Infomail an die Zollbüros!
                        Select Case erledigung
                            Case "4"
                                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Dim MailTo = "eu@verag.ag"
                                Select Case EZA_TMP.eza_firma
                                    Case "IMEX" : MailTo = "info@imex-group.at"
                                    Case "ATILLA" : MailTo = "atilla@verag.ag"
                                    Case "UNISPED" : MailTo = "office@unisped.at"
                                    Case "VERAG"
                                        Select Case EZA_TMP.eza_niederlassung
                                            Case "WAI" : MailTo = "waidhaus@verag.com"
                                            Case "SBG" : MailTo = "de@verag.ag"
                                        End Select
                                End Select
                                VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid011,
                                                                                "Meldung über <b>nicht abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid011 & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                                                                 , True, True)

                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()
                                'Case "5"
                                '    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                '    Dim MailTo = "al@verag.ag"

                                '    VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                '                                               "Meldung über <b>abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                '                                                     , True, True)
                            Case "5", "6"


                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()

                        End Select
                        ' ------------------------------------------------------------------------------

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

                        If EZA IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                            InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, readEZA_Abgabenbescheid011, regDat, firma, nl, EDIFACTNachrichtenNr)
                        End If


                        'Status aktualisieren
                        saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        statusTMP = STATUS
                        EZA_TMP.insertIntoSpedBuch(DY_TMP)


                        addDGVEinarbeitung("EZA: Abgabenbescheid", STATUS.dySt_BezugsNr)
                    End If


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


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

    Function readEZA_Abgabenbescheid012(d, ByRef statusTMP) As String
        Try
            'VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW

            Dim EZA As DAKOSY_Worker.Abgabenbescheid_012.AbgabenbescheidEinfuhrTAXTyp = DAKOSY_Worker.Abgabenbescheid_012.AbgabenbescheidEinfuhrTAXTyp.LoadFromFile(d)
            Dim regNr = ""
            Dim regDat = ""
            Dim details = ""
            Dim zoellner = ""
            Dim erledigung = ""
            Dim zp As Object = Nothing
            Dim EDIFACTNachrichtenNr = ""
            Dim AUFSCHUB As List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub) = Nothing
            Dim AUFSCHUB_POS As List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub) = Nothing

            Dim division = ""

            readEZA_Abgabenbescheid012 = ""
            If EZA IsNot Nothing Then

                If EZA.Transaktion IsNot Nothing Then
                    If EZA.Transaktion.IODivision3 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision3
                    ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
                        division = EZA.Transaktion.IODivision1
                    End If
                End If

                If EZA.EinzelAbgabenbescheid IsNot Nothing Then

                    'Vorgezogen, damit firma/NL erkannt wird
                    Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)


                    If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName IsNot Nothing Then
                            readEZA_Abgabenbescheid012 = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ObjektName
                        End If
                        zp = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.ZeitpunktEingang
                        If EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr IsNot Nothing Then
                            EDIFACTNachrichtenNr = EZA.EinzelAbgabenbescheid.ObjektIdentifizierung.EDIFACTNachrichtenNr
                        End If
                    End If

                    If EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                        If EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter IsNot Nothing Then
                            zoellner = EZA.EinzelAbgabenbescheid.KopfDaten.Bearbeiter
                        End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer IsNot Nothing Then
                            regNr = EZA.EinzelAbgabenbescheid.KopfDaten.Registriernummer
                        End If
                        If EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz IsNot Nothing Then
                            erledigung = EZA.EinzelAbgabenbescheid.KopfDaten.ErledigungKopfKz
                        End If
                        ' If EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum IsNot Nothing Then
                        regDat = EZA.EinzelAbgabenbescheid.KopfDaten.Registrierdatum
                        'End If

                        If EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt.Count > 0 Then
                            AUFSCHUB = New List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub)
                            For Each ABG In EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt
                                Dim a As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                                a.ezaAfb_ArtAufschubantrag = ABG.ArtAufschubAntrag
                                a.ezaAfb_AufschubnehmerEORI = ABG.AufschubnehmerTIN
                                a.ezaAfb_HZA = ABG.KennBuchstabenAufschub
                                a.ezaAfb_KontoNr = ABG.AufschubkontoNr
                                If ABG.Faelligkeit > CDate("01.01.2000") Then a.ezaAfb_Faelligkeit = ABG.Faelligkeit
                                a.ezaAfb_Zahlungsart = ABG.Zahlungsart
                                a.ezaAfb_Abgabenbetrag = ABG.Abgabenbetrag
                                a.ezaAfb_AbgabeArt = ABG.AbgabeArt
                                a.AufschubnehmerName = ABG.AufschubnehmerName
                                'Select Case AbgabeArt
                                '    Case "B0000" 'EUST
                                '    Case "B0000" 'EUST
                                'End Select
                                AUFSCHUB.Add(a)
                            Next

                        End If
                    End If


                    AUFSCHUB_POS = New List(Of DAKOSY_Worker.cDakosy_EZA_Aufschub)
                    If EZA.EinzelAbgabenbescheid.Position IsNot Nothing Then
                        For Each EZA_POS In EZA.EinzelAbgabenbescheid.Position

                            If EZA_POS.Abgaben IsNot Nothing Then
                                For Each ABG In EZA_POS.Abgaben
                                    Dim a As New DAKOSY_Worker.cDakosy_EZA_Aufschub
                                    a.ezaAfb_PositionsNummer = EZA_POS.PositionsNr
                                    a.ezaAfb_Abgabenbetrag = ABG.Abgabenbetrag
                                    a.ezaAfb_AbgabeArt = ABG.AbgabeArt
                                    If ABG.EinzelAbgabenSatz IsNot Nothing And ABG.EinzelAbgabenSatz.Count = 1 Then
                                        a.[ezaAfb_Prozentsatz] = ABG.EinzelAbgabenSatz(0).Abgabensatz
                                    End If


                                    AUFSCHUB_POS.Add(a)
                                Next
                            End If
                        Next

                    End If

                    If readEZA_Abgabenbescheid012 <> "" Then 'BEZUGSNR vorhanden
                            STATUS.dySt_BezugsNr = readEZA_Abgabenbescheid012
                            STATUS.dySt_artMitteilung = "AB"
                            STATUS.dySt_dyArt = "EZA" '"EZA" 'T1/T2
                            '  MsgBox(erledigung)

                            Select Case erledigung
                                Case "0" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                                Case "1" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                                Case "2" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_69 'ungültig
                                Case "3" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_99 'unwirksam
                                Case "4" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Case "5" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                                Case "6" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_60
                                Case "7" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_68 'Abgabe HZS
                                Case "8" : STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_61 'Erledigung außerhalb d. SB
                            End Select

                            STATUS.dySt_ergCode = "REGNr"
                            STATUS.dySt_ergMitteilung = regNr
                            STATUS.dySt_ergZeitpunkt = zp
                            STATUS.dySt_ergZoellner = zoellner
                            STATUS.dySt_ergDetails = details
                            'EINTRAG IN tblDakosy_Zollanmeldungen

                            Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA



                            Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")

                            If regNr <> "" Then
                                EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                            Else
                                EZA_TMP = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
                            End If
                            EZA_TMP.loadAll()

                            Dim firma = ""
                            Dim nl = ""
                            SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division, firma, nl)

                            If AUFSCHUB IsNot Nothing And EZA_TMP IsNot Nothing Then
                                EZA_TMP.eza_AUFSCHUB.Clear()
                                For Each a In AUFSCHUB
                                    a.ezaAfb_EZAId = EZA_TMP.eza_Id
                                Next
                                EZA_TMP.eza_AUFSCHUB = AUFSCHUB
                                EZA_TMP.SAVE_Aufschub()


                                cVERAG_out_eza.copyFileFTP_VERAGEZA_DY(EZA_TMP, DY_TMP) ' SCHNITTSTELLE FTP BEREITSTELLEN

                                'RAISE-API-EVENT/TRIGGER ?? 
                                'Aufschub nach Position speichern!
                                If AUFSCHUB_POS IsNot Nothing And EZA_TMP IsNot Nothing Then
                                    ' EZA_TMP.eza_AUFSCHUB.Clear()
                                    For Each a In AUFSCHUB_POS
                                        a.ezaAfb_EZAId = EZA_TMP.eza_Id
                                        EZA_TMP.eza_AUFSCHUB.Add(a)
                                    Next
                                    EZA_TMP.SAVE_Aufschub()

                                End If
                            End If



                            ' ------------------------------------------------------------------------------
                            ' wenn nicht abschliebender Abgabenbescheid --> Infomail an die Zollbüros!
                            Select Case erledigung
                            Case "4"
                                STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                Dim MailTo = "eu@verag.ag"
                                Select Case EZA_TMP.eza_firma
                                    Case "IMEX" : MailTo = "info@imex-group.at"
                                    Case "ATILLA" : MailTo = "atilla@verag.ag"
                                    Case "UNISPED" : MailTo = "office@unisped.at"
                                    Case "VERAG"
                                        Select Case EZA_TMP.eza_niederlassung
                                            Case "WAI" : MailTo = "waidhaus@verag.com"
                                            Case "SBG" : MailTo = "de@verag.ag"
                                        End Select
                                End Select
                                VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid012,
                                                                                "Meldung über <b>nicht abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid012 & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                                                                 , True, True)

                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()
                                'Case "5"
                                '    STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_55 'nicht abschleißender Bescheid
                                '    Dim MailTo = "al@verag.ag"

                                '    VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, "MITTEILUNG ZOLL: Nicht abschließender Abgebenbescheid - " & readEZA_Abgabenbescheid,
                                '                                               "Meldung über <b>abschließenden Abgabenbescheid</b> bei der Bezugsnummer: <b>" & readEZA_Abgabenbescheid & "</b><br><br>Firma: " & EZA_TMP.eza_firma & "Niederlassung: " & EZA_TMP.eza_niederlassung & "<br><br>Automatisch generiertes E-Mail.",
                                '                                                     , True, True)
                            Case "5", "6"


                                'Anmlededatum setzen
                                EZA_TMP.eza_Anmeldedatum = zp
                                EZA_TMP.SAVE()

                        End Select
                        ' ------------------------------------------------------------------------------

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

                        If EZA IsNot Nothing AndAlso EZA.EinzelAbgabenbescheid.KopfDaten IsNot Nothing Then
                            InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, readEZA_Abgabenbescheid012, regDat, firma, nl, EDIFACTNachrichtenNr)
                        End If


                        'Status aktualisieren
                        saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNr)
                        statusTMP = STATUS
                        EZA_TMP.insertIntoSpedBuch(DY_TMP)



                        '=====IMPORT IN VERAG DATENMODELL==========
                        Dim IMP As New DAKOSY_Worker.cImporter_DakosyToVERAG
                        IMP.ImportDakosyEZA(EZA_TMP, False, True)
                        '==================================


                        '=====ATEZ BEREITSTELLUNG==========
                        cWorker_NCTS.checkATEZ_BereitstellungDHUB(DY_TMP, d)
                        '==================================

                        addDGVEinarbeitung("EZA: Abgabenbescheid", STATUS.dySt_BezugsNr)
                    End If


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


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


    Function InsertAbgaben(EZA, division, STATUS, DY_TMP, regNr, Bezugsnummer, regDat, firma, nl, EDIFACTNachrichtenNr)
        Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA = saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit, regNr)
        If EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt IsNot Nothing Then
            For Each A In EZA.EinzelAbgabenbescheid.KopfDaten.AbgabenNachArt
                Dim LeistungsNr = 0

                If A.AbgabeArt IsNot Nothing Then
                    '    If A.Zahlungsart = "A" Then 'Nur wenn Zahlungsart=...?
                    If (If(A.KennBuchstabenAufschub, "").Trim = "M" And
                        (CInt(A.AufschubkontoNr) = 6128 Or
                        CInt(A.AufschubkontoNr) = 6136 Or
                        CInt(A.AufschubkontoNr) = 2718 Or
                        CInt(A.AufschubkontoNr) = 2719 Or
                         CInt(A.AufschubkontoNr) = 6145 Or
                         CInt(A.AufschubkontoNr) = 6146 Or
                         CInt(A.AufschubkontoNr) = 6077 Or
                         CInt(A.AufschubkontoNr) = 6078 Or
                         CInt(A.AufschubkontoNr) = 1994)) Or
                         (If(A.KennBuchstabenAufschub, "").Trim = "MS" And CInt(A.AufschubkontoNr) = 1566) Then '_>TEST   Or CInt(A.AufschubkontoNr) = 678010 

                        Select Case A.AbgabeArt.ToString
                            Case "A0000", "10100" : LeistungsNr = 60 ' ZOLL
                            Case "B0000", "20000" : LeistungsNr = 20 ' EUST
                            Case Else : LeistungsNr = 10 'Diverse Zollvorschreibungen
                        End Select

                        '    MsgBox("- " & A.Abgabenbetrag)

                        Dim ABGABEN As New VERAG_PROG_ALLGEMEIN.cAbgaben
                        ABGABEN.Belegart = A.AbgabeArt
                        ABGABEN.Betrag = A.Abgabenbetrag
                        ABGABEN.Status = Nothing
                        ABGABEN.LeistungsNr = LeistungsNr
                        ABGABEN.Bezugsnummer = Bezugsnummer
                        ABGABEN.Registriernummer = regNr
                        ABGABEN.AOFD = A.KennBuchstabenAufschub
                        ABGABEN.AKTO = A.AufschubkontoNr
                        ABGABEN.Fälligkeitsdatum = A.Faelligkeit
                        ABGABEN.Mandant = If(firma.ToString.Length > 4, firma.ToString.Substring(0, 4), firma)
                        ABGABEN.Niederlassung = If(nl.ToString.Length > 3, nl.ToString.Substring(0, 3), nl)
                        ABGABEN.Abfertigungsdatum = regDat
                        ABGABEN.Übernahmedatum = Now
                        ABGABEN.Eingabedatum = regDat


                        If If(ABGABEN.Bezugsnummer, "").ToString.Length > 35 Then ABGABEN.Bezugsnummer = ABGABEN.Bezugsnummer.ToString.Substring(0, 35)
                        If If(ABGABEN.Registriernummer, "").ToString.Length > 21 Then ABGABEN.Registriernummer = ABGABEN.Registriernummer.ToString.Substring(0, 21)


                        If Not VERAG_PROG_ALLGEMEIN.cAbgaben.EXISTS(ABGABEN.LeistungsNr, ABGABEN.Betrag, ABGABEN.Registriernummer, ABGABEN.AOFD, ABGABEN.AKTO, ABGABEN.Fälligkeitsdatum) Then

                            Dim errHInweis = "ATC: " & ABGABEN.Registriernummer & " - BezugsNr: " & ABGABEN.Bezugsnummer
                            ABGABEN.SAVE(errHInweis)
                        End If
                        'Aufschub - Überwachung:
                        Select Case CInt(A.AufschubkontoNr)
                            Case 6128 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 1, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum)
                            Case 2718 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 8, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum)
                            Case 1994 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 10, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'Global
                            Case 6136 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 11, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'VERAG EUST
                            Case 2719 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 12, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'IMEX EUST
                            Case 6145 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 14, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'UNISPED(DE) ZOLL
                            Case 6146 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 15, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'UNISPED(DE) EUST
                            Case 6078 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 16, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'UNISPED ZOLL
                            Case 6077 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 17, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'UNISPED EUST
                            Case 1566 : tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag, 27, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum) 'KARACA
                                'UNISPED Case XXX: tryToInsertProgramm(ABGABEN.Eingabedatum, ABGABEN.Betrag,XXX, EDIFACTNachrichtenNr, ABGABEN.Registriernummer, 0, ABGABEN.Fälligkeitsdatum)

                                'Case 2718 : VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMailTEST("al@verag.ag", "AUFSCHUB IMEX: " & ABGABEN.Betrag, "AUFSCHUB IMEX: " & ABGABEN.Betrag & vbNewLine & ABGABEN.Bezugsnummer)
                        End Select


                        'If CInt(A.AufschubkontoNr) = 6128 Then 'Nur bei ZOLL    ' --> TEST: Or CInt(A.AufschubkontoNr) = 678010
                        '    AtlasAufschubDatenEinlesen.tryToInsertProgramm(regDat, A.Abgabenbetrag, "1", "DY", regNr, "")
                        'End If



                    End If
                    ' End If
                End If
            Next
        End If
    End Function


    Shared Function tryToInsertProgramm(brgak_datum, brgak_betrag, brgak_brgaktoId, brgak_filename, brgak_atc, brgak_fileline, brgak_faelligkeitsdatum) As Boolean

        Dim sql As String = " begin tran" &
                            " if Not exists (select * from tblBrgAufschub with (updlock,serializable) where brgak_filename = @brgak_filename AND  brgak_fileline=@brgak_fileline ) " &
                                   " begin " &
                                   " INSERT INTO tblBrgAufschub " &
                                   " (brgak_datum, brgak_betrag, brgak_brgaktoId, brgak_filename, brgak_atc,brgak_fileline,brgak_faelligkeitsdatum) VALUES " &
                                   " (@brgak_datum, @brgak_betrag, @brgak_brgaktoId, @brgak_filename, @brgak_atc,@brgak_fileline,@brgak_faelligkeitsdatum) " &
                                " End " &
                                " commit tran "
        '(brgak_fileline='' OR ... )

        ' " ELSE " &
        '    " begin " &
        '       " UPDATE tblBrgAufschub " &
        '      " SET brgak_datum=@brgak_datum, brgak_betrag=@brgak_betrag, brgak_brgaktoId=@brgak_brgaktoId, brgak_filename=@brgak_filename, brgak_atc=@brgak_atc,brgak_fileline=@brgak_fileline " &
        '     " WHERE brgak_filename = @brgak_filename AND (brgak_fileline='' OR brgak_fileline=@brgak_fileline)" &
        '  " End " &



        Dim cn As System.Data.SqlClient.SqlConnection = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionADMIN

        'Dim cn As New System.Data.SqlClient.SqlConnection()
        'cn.ConnectionString = "Data Source=SQLGUIDE01.verag.ost.dmn;Initial Catalog=ADMIN;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$;"
        'cn.Open()
        Using cn
            Using cmd As New System.Data.SqlClient.SqlCommand(sql, cn)
                cmd.Parameters.AddWithValue("@brgak_datum", brgak_datum)
                cmd.Parameters.AddWithValue("@brgak_betrag", brgak_betrag)
                cmd.Parameters.AddWithValue("@brgak_brgaktoId", brgak_brgaktoId)
                cmd.Parameters.AddWithValue("@brgak_filename", brgak_filename)
                cmd.Parameters.AddWithValue("@brgak_atc", brgak_atc)
                cmd.Parameters.AddWithValue("@brgak_fileline", brgak_fileline)
                cmd.Parameters.AddWithValue("@brgak_faelligkeitsdatum", brgak_faelligkeitsdatum)
                Try
                    cmd.ExecuteNonQuery()

                    ''Lösche File: --> vom ALTEN ATLAS
                    'Try
                    '    System.IO.File.Delete(frmRoutineManager.PathATLAS & "\" & brgak_filename)
                    'Catch ex As Exception
                    '    writeLog("ERROR", "Fehler beim Löschen der Aufschub-Datei: " & ex.Message)
                    'End Try
                    Return True
                Catch ex As System.Data.SqlClient.SqlException
                    writeLog("ERROR", "Fehler beim Schreiben in die Datenbank: " & ex.Message)
                End Try
            End Using
        End Using
        cn.Close()
        Return False
    End Function


    Function readNCTS_AT_TR100_Versandanmeldung(dXML As XmlDocument) As String
        Try
            Return ""
            readNCTS_AT_TR100_Versandanmeldung = ""
            Dim sw = New StringWriter()
            Dim xw = New XmlTextWriter(sw)
            dXML.WriteTo(xw)
            Dim XmlString = sw.ToString()
            If XmlString.Contains("<Message>") Then
                Dim xmlAT = XmlString.Substring(XmlString.IndexOf("<Message>"), XmlString.IndexOf("</Message>") + 10 - XmlString.IndexOf("<Message>")).Replace("</Message>", "").Replace("<Message>", "").Trim
                '  MsgBox(xmlDEXPSD)
                Dim pFile = Path.GetTempFileName

                Dim messageID = ""
                Dim messageTstmp As Date = Now

                If XmlString.Contains("<MetaData>") Then
                    Dim MetaData = XmlString.Substring(XmlString.IndexOf("<MetaData>"), XmlString.IndexOf("</MetaData>") + 12 - XmlString.IndexOf("<MetaData>"))

                    If MetaData.Contains("<MessageId>") Then
                        messageID = MetaData.Substring(MetaData.IndexOf("<MessageId>") + 11, MetaData.IndexOf("</MessageId>") - MetaData.IndexOf("<MessageId>") - 11)
                    End If
                    If MetaData.Contains("<DateTime>") Then
                        Dim d = MetaData.Substring(MetaData.IndexOf("<DateTime>") + 10, 29)
                        If IsDate(d) Then
                            messageTstmp = d
                        End If
                        'messageTstmp = MetaData.Substring(MetaData.IndexOf("<MessageId>"), MetaData.IndexOf("</DateTime>") + 11 - MetaData.IndexOf("</DateTime>"))
                    End If
                End If
                Using outputFile As New StreamWriter(pFile) ', False, System.Text.Encoding.Default)
                    outputFile.Write(xmlAT)
                    outputFile.Close()

                    Dim MRN = ""
                    Dim Reason = ""
                    Dim STATUS_Code = ""

                    '    MsgBox(xmlAT)
                    '
                    readNCTS_AT_TR100_Versandanmeldung = ""
                    Dim EZOLL_NCTS As DAKOSY_Worker.TR100.Msg = DAKOSY_Worker.TR100.Msg.LoadFromFile(pFile)


                    If EZOLL_NCTS IsNot Nothing And EZOLL_NCTS.Refs IsNot Nothing AndAlso EZOLL_NCTS.Refs.LRN IsNot Nothing Then
                        readNCTS_AT_TR100_Versandanmeldung = EZOLL_NCTS.Refs.LRN
                    Else
                        Return "" 'Keine Bezugsnummer
                    End If

                    Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = saveDY_ZA(readNCTS_AT_TR100_Versandanmeldung, "EZA")

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

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


                    If EZOLL_NCTS IsNot Nothing Then


                        'If EZOLL_NCTS.MsgSdr IsNot Nothing Then NCTS.AbsenderKennung = EZOLL_NCTS.MsgSdr
                        'If EZOLL_NCTS.MsgRcp IsNot Nothing Then NCTS.EmpfaengerKennung = EZOLL_NCTS.MsgRcp
                        If EZOLL_NCTS.PrepDT IsNot Nothing Then NCTS.nctsAt_Erstellung = EZOLL_NCTS.PrepDT
                        'If EZOLL_NCTS.ICRef IsNot Nothing Then NCTS.DatenaustauschKontrollReferenz = EZOLL_NCTS.ICRef
                        '------------ If EZOLL_NCTS.Appl IsNot Nothing Then NCTS = EZOLL_NCTS.MsgSdr
                        '------------ If EZOLL_NCTS.Test IsNot Nothing Then NCTS.XXX = EZOLL_NCTS.MsgSdr
                        If EZOLL_NCTS.Refs IsNot Nothing Then
                            If EZOLL_NCTS.Refs.LRN IsNot Nothing Then NCTS.nctsAt_LRN = EZOLL_NCTS.Refs.LRN
                        End If
                        If EZOLL_NCTS.UCRs IsNot Nothing Then
                            For Each U In EZOLL_NCTS.UCRs
                                '.... eindeutige Sendungsnummern
                            Next
                        End If

                        If EZOLL_NCTS.Hea IsNot Nothing Then
                            If EZOLL_NCTS.Hea.DecTy IsNot Nothing Then NCTS.nctsAt_ArtAnmeldung = EZOLL_NCTS.Hea.DecTy

                            'If EZOLL_NCTS.Hea.TotItem IsNot Nothing Then NCTS.anz= EZOLL_NCTS.Hea.TotItem ' anzhal Pos
                            If EZOLL_NCTS.Hea.TotPack IsNot Nothing Then NCTS.nctsAt_GesamtAnzahlPackstuecke = EZOLL_NCTS.Hea.TotPack
                            If EZOLL_NCTS.Hea.TotGross IsNot Nothing Then NCTS.nctsAt_GesamtRohmasse = EZOLL_NCTS.Hea.TotGross
                            If EZOLL_NCTS.Hea.DepLNG IsNot Nothing Then NCTS.nctsAt_AbgangSprachCode = EZOLL_NCTS.Hea.DepLNG
                            If EZOLL_NCTS.Hea.NCTSLNG IsNot Nothing Then NCTS.nctsAt_BegleitdokumentSprachCode = EZOLL_NCTS.Hea.NCTSLNG
                            NCTS.nctsAt_KzVereinfachtesVerfahren = EZOLL_NCTS.Hea.Simp
                            If EZOLL_NCTS.Hea.AuthID IsNot Nothing Then NCTS.nctsAt_BewilligungsnummerVersender = EZOLL_NCTS.Hea.AuthID
                            NCTS.nctsAt_Befoerderungsmittel_Datenverfügbarkeitsindikator = EZOLL_NCTS.Hea.TransDat
                            If EZOLL_NCTS.Hea.SecInd IsNot Nothing Then NCTS.nctsAt_SumA_KzSumASicherheit = EZOLL_NCTS.Hea.SecInd
                            If EZOLL_NCTS.Hea.SpecCirc IsNot Nothing Then NCTS.nctsAt_SumA_BesondereUmstaende = EZOLL_NCTS.Hea.SpecCirc
                            If EZOLL_NCTS.Hea.TransPayTy IsNot Nothing Then NCTS.nctsAt_SumA_BefoerderungskostenZahlungsweise = EZOLL_NCTS.Hea.TransPayTy
                            If EZOLL_NCTS.Hea.ComRef IsNot Nothing Then NCTS.nctsAt_GeschaeftsReferenznummer = EZOLL_NCTS.Hea.ComRef
                            If EZOLL_NCTS.Hea.ConvRef IsNot Nothing Then NCTS.nctsAt_NummerDerBefoerderung = EZOLL_NCTS.Hea.ConvRef
                            If EZOLL_NCTS.Hea.DecDT IsNot Nothing Then NCTS.nctsAt_AnmeldungAnzeigeDatum = EZOLL_NCTS.Hea.DecDT
                            If EZOLL_NCTS.Hea.DecPlc IsNot Nothing Then NCTS.nctsAt_AnmeldungAnzeigeOrt = EZOLL_NCTS.Hea.DecPlc
                            If EZOLL_NCTS.Hea.DecPlcLNG IsNot Nothing Then NCTS.nctsAt_AnmeldungAnzeigeSprachCode = EZOLL_NCTS.Hea.DecPlcLNG

                        End If


                        If EZOLL_NCTS.Locs IsNot Nothing Then
                            If EZOLL_NCTS.Locs.Disp IsNot Nothing Then NCTS.nctsAt_VersendungsLandCode = EZOLL_NCTS.Locs.Disp
                            If EZOLL_NCTS.Locs.Dest IsNot Nothing Then NCTS.nctsAt_BestimmungslandCode = EZOLL_NCTS.Locs.Dest
                            If EZOLL_NCTS.Locs.GdsLocCd IsNot Nothing Then NCTS.nctsAt_WarenartCode = EZOLL_NCTS.Locs.GdsLocCd
                            If EZOLL_NCTS.Locs.GdsLocAuth IsNot Nothing Then NCTS.nctsAt_ZugelassenerWarenortCode = EZOLL_NCTS.Locs.GdsLocAuth
                            If EZOLL_NCTS.Locs.LoadPlcCd IsNot Nothing Then NCTS.nctsAt_SumA_Ladeort = EZOLL_NCTS.Locs.LoadPlcCd
                            If EZOLL_NCTS.Locs.CustPlc IsNot Nothing Then NCTS.nctsAt_Amtsplatz = EZOLL_NCTS.Locs.CustPlc
                            If EZOLL_NCTS.Locs.UnloadPlc IsNot Nothing Then NCTS.nctsAt_SumA_Entladeort = EZOLL_NCTS.Locs.UnloadPlc
                            If EZOLL_NCTS.Locs.UnloadPlcLNG IsNot Nothing Then NCTS.nctsAt_SumA_EntladeortSprachCode = EZOLL_NCTS.Locs.UnloadPlcLNG

                        End If


                        If EZOLL_NCTS.Transp IsNot Nothing Then
                            If EZOLL_NCTS.Transp.InMo IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_VerkehrszweigInland = EZOLL_NCTS.Transp.InMo
                            If EZOLL_NCTS.Transp.BordMo IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_VerkehrszweigGrenzueberschreitent = EZOLL_NCTS.Transp.BordMo
                            If EZOLL_NCTS.Transp.DepTy IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_ArtAbgang = EZOLL_NCTS.Transp.DepTy
                            If EZOLL_NCTS.Transp.DepIdnt IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_KennzeichenAbgang = EZOLL_NCTS.Transp.DepIdnt
                            If EZOLL_NCTS.Transp.DepIdntLNG IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_KennzeichenAbgangSprachCode = EZOLL_NCTS.Transp.DepIdntLNG
                            If EZOLL_NCTS.Transp.DepNat IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_SttaszugehoerigkeitAbgangCode = EZOLL_NCTS.Transp.DepNat


                            If EZOLL_NCTS.Transp.CrossTy IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_ArtGrenzueberschreitung = EZOLL_NCTS.Transp.CrossTy
                            If EZOLL_NCTS.Transp.CrossIdnt IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_KennzeichenGrenzueberschreitend = EZOLL_NCTS.Transp.CrossIdnt
                            If EZOLL_NCTS.Transp.CrossIdntLNG IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_KennzeichenGrenzueberschreitendSprachCode = EZOLL_NCTS.Transp.CrossIdntLNG
                            If EZOLL_NCTS.Transp.CrossIdntNat IsNot Nothing Then NCTS.nctsAt_Befoerderungsmittel_StaatszugehoerigkeitGrenzueberschreitendCode = EZOLL_NCTS.Transp.CrossIdntNat

                            NCTS.nctsAt_Container = EZOLL_NCTS.Transp.ContInd

                        End If

                        'Hauptverpflichteter
                        If EZOLL_NCTS.PrincTra IsNot Nothing Then
                            If EZOLL_NCTS.PrincTra.Na IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_Name = EZOLL_NCTS.PrincTra.Na
                            If EZOLL_NCTS.PrincTra.Strt IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_StrasseHausnummer = EZOLL_NCTS.PrincTra.Strt
                            If EZOLL_NCTS.PrincTra.Pst IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_PLZ = EZOLL_NCTS.PrincTra.Pst
                            If EZOLL_NCTS.PrincTra.Cty IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_Ort = EZOLL_NCTS.PrincTra.Cty
                            If EZOLL_NCTS.PrincTra.Ctry IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_Land = EZOLL_NCTS.PrincTra.Ctry
                            If EZOLL_NCTS.PrincTra.LNG IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_SprachCode = EZOLL_NCTS.PrincTra.LNG
                            If EZOLL_NCTS.PrincTra.TIN IsNot Nothing Then NCTS.nctsAt_Hauptverpflichteter_TIN = EZOLL_NCTS.PrincTra.TIN
                        End If

                        'Versender
                        If EZOLL_NCTS.ConorTra IsNot Nothing Then
                            If EZOLL_NCTS.ConorTra.Na IsNot Nothing Then NCTS.nctsAt_Versender_Name = EZOLL_NCTS.ConorTra.Na
                            If EZOLL_NCTS.ConorTra.Strt IsNot Nothing Then NCTS.nctsAt_Versender_StrasseHausnummer = EZOLL_NCTS.ConorTra.Strt
                            If EZOLL_NCTS.ConorTra.Pst IsNot Nothing Then NCTS.nctsAt_Versender_PLZ = EZOLL_NCTS.ConorTra.Pst
                            If EZOLL_NCTS.ConorTra.Cty IsNot Nothing Then NCTS.nctsAt_Versender_Ort = EZOLL_NCTS.ConorTra.Cty
                            If EZOLL_NCTS.ConorTra.Ctry IsNot Nothing Then NCTS.nctsAt_Versender_Land = EZOLL_NCTS.ConorTra.Ctry
                            If EZOLL_NCTS.ConorTra.LNG IsNot Nothing Then NCTS.nctsAt_versender_SprachCode = EZOLL_NCTS.ConorTra.LNG
                            If EZOLL_NCTS.ConorTra.TIN IsNot Nothing Then NCTS.nctsAt_Versender_TIN = EZOLL_NCTS.ConorTra.TIN
                        End If

                        'Empfänger
                        If EZOLL_NCTS.ConeeTra IsNot Nothing Then
                            If EZOLL_NCTS.ConeeTra.Na IsNot Nothing Then NCTS.nctsAt_Empfaenger_Name = EZOLL_NCTS.ConeeTra.Na
                            If EZOLL_NCTS.ConeeTra.Strt IsNot Nothing Then NCTS.nctsAt_Empfaenger_StrasseHausnummer = EZOLL_NCTS.ConeeTra.Strt
                            If EZOLL_NCTS.ConeeTra.Pst IsNot Nothing Then NCTS.nctsAt_Empfaenger_PLZ = EZOLL_NCTS.ConeeTra.Pst
                            If EZOLL_NCTS.ConeeTra.Cty IsNot Nothing Then NCTS.nctsAt_Empfaenger_Ort = EZOLL_NCTS.ConeeTra.Cty
                            If EZOLL_NCTS.ConeeTra.Ctry IsNot Nothing Then NCTS.nctsAt_Empfaenger_Land = EZOLL_NCTS.ConeeTra.Ctry
                            If EZOLL_NCTS.ConeeTra.LNG IsNot Nothing Then NCTS.nctsAt_empfaenger_SprachCode = EZOLL_NCTS.ConeeTra.LNG
                            If EZOLL_NCTS.ConeeTra.TIN IsNot Nothing Then NCTS.nctsAt_Empfaenger_TIN = EZOLL_NCTS.ConeeTra.TIN
                        End If


                        If EZOLL_NCTS.ConorSecTra IsNot Nothing Then
                            If EZOLL_NCTS.ConorSecTra.Na IsNot Nothing Then NCTS.nctsAt_SumA_Versender_Name = EZOLL_NCTS.ConorSecTra.Na
                            If EZOLL_NCTS.ConorSecTra.Strt IsNot Nothing Then NCTS.nctsAt_SumA_Versender_StrasseHausnummer = EZOLL_NCTS.ConorSecTra.Strt
                            If EZOLL_NCTS.ConorSecTra.Pst IsNot Nothing Then NCTS.nctsAt_SumA_Versender_PLZ = EZOLL_NCTS.ConorSecTra.Pst
                            If EZOLL_NCTS.ConorSecTra.Cty IsNot Nothing Then NCTS.nctsAt_SumA_Versender_Ort = EZOLL_NCTS.ConorSecTra.Cty
                            If EZOLL_NCTS.ConorSecTra.Ctry IsNot Nothing Then NCTS.nctsAt_SumA_Versender_Land = EZOLL_NCTS.ConorSecTra.Ctry
                            If EZOLL_NCTS.ConorSecTra.LNG IsNot Nothing Then NCTS.nctsAt_SumA_Versender_SprachCode = EZOLL_NCTS.ConorSecTra.LNG
                            If EZOLL_NCTS.ConorSecTra.TIN IsNot Nothing Then NCTS.nctsAt_SumA_Versender_TIN = EZOLL_NCTS.ConorSecTra.TIN
                        End If


                        If EZOLL_NCTS.ConeeSecTra IsNot Nothing Then
                            If EZOLL_NCTS.ConeeSecTra.Na IsNot Nothing Then NCTS.nctsAt_SumA_Empfaenger_Name = EZOLL_NCTS.ConeeSecTra.Na
                            If EZOLL_NCTS.ConeeSecTra.Strt IsNot Nothing Then NCTS.nctsAt_SumA_Empfaenger_StrasseHausnummer = EZOLL_NCTS.ConeeSecTra.Strt
                            If EZOLL_NCTS.ConeeSecTra.Pst IsNot Nothing Then NCTS.nctsAt_SumA_Empfaenger_PLZ = EZOLL_NCTS.ConeeSecTra.Pst
                            If EZOLL_NCTS.ConeeSecTra.Cty IsNot Nothing Then NCTS.nctsAt_SumA_Empfaenger_Ort = EZOLL_NCTS.ConeeSecTra.Cty
                            If EZOLL_NCTS.ConeeSecTra.Ctry IsNot Nothing Then NCTS.nctsAt_SumA_Empfaenger_Land = EZOLL_NCTS.ConeeSecTra.Ctry
                            If EZOLL_NCTS.ConeeSecTra.LNG IsNot Nothing Then NCTS.nctsAt_SumA_empfaenger_SprachCode = EZOLL_NCTS.ConeeSecTra.LNG
                            If EZOLL_NCTS.ConeeSecTra.TIN IsNot Nothing Then NCTS.nctsAt_SumA_Empfaenger_TIN = EZOLL_NCTS.ConeeSecTra.TIN
                        End If




                        If EZOLL_NCTS.CarrTra IsNot Nothing Then
                            If EZOLL_NCTS.CarrTra.Na IsNot Nothing Then NCTS.nctsAt_SumA_Befoerderer_Name = EZOLL_NCTS.CarrTra.Na
                            If EZOLL_NCTS.CarrTra.Strt IsNot Nothing Then NCTS.nctsAt_SumA_Befoerderer_StrasseHausnummer = EZOLL_NCTS.CarrTra.Strt
                            If EZOLL_NCTS.CarrTra.Pst IsNot Nothing Then NCTS.nctsAt_SumA_Befoerderer_PLZ = EZOLL_NCTS.CarrTra.Pst
                            If EZOLL_NCTS.CarrTra.Cty IsNot Nothing Then NCTS.nctsAt_SumA_Befoerderer_Ort = EZOLL_NCTS.CarrTra.Cty
                            If EZOLL_NCTS.CarrTra.Ctry IsNot Nothing Then NCTS.nctsAt_SumA_Befoerderer_Land = EZOLL_NCTS.CarrTra.Ctry
                            If EZOLL_NCTS.CarrTra.LNG IsNot Nothing Then NCTS.nctsAt_SumA_befoerderer_SprachCode = EZOLL_NCTS.CarrTra.LNG
                            If EZOLL_NCTS.CarrTra.TIN IsNot Nothing Then NCTS.nctsAt_SumA_Befoerderer_TIN = EZOLL_NCTS.CarrTra.TIN
                        End If


                        If EZOLL_NCTS.AuthCsgeeTrad IsNot Nothing Then
                            If EZOLL_NCTS.AuthCsgeeTrad.TIN IsNot Nothing Then NCTS.nctsAt_ZugelassenerEmpfaenger_TIN = EZOLL_NCTS.AuthCsgeeTrad.TIN
                        End If


                        If EZOLL_NCTS.DesTra IsNot Nothing Then
                            If EZOLL_NCTS.DesTra.TIN IsNot Nothing Then NCTS.nctsAt_Wirtschaftsbeteiligter_TIN = EZOLL_NCTS.DesTra.TIN
                        End If

                        If EZOLL_NCTS.Represent IsNot Nothing Then
                            If EZOLL_NCTS.Represent.RIN IsNot Nothing Then NCTS.nctsAt_Vertreter_RIN = EZOLL_NCTS.Represent.RIN
                        End If

                        If EZOLL_NCTS.Grtee IsNot Nothing AndAlso EZOLL_NCTS.Grtee.Count > 0 Then
                            'NOCH EINE UNTERETTILEUNG?????????????
                            NCTS.nctsAt_SICHERHEITSANGABEN = New List(Of DAKOSY_Worker.cDakosy_NCTSOutAT_Sicherheitsangaben)

                            For Each GRTEE In EZOLL_NCTS.Grtee
                                Dim G As New DAKOSY_Worker.cDakosy_NCTSOutAT_Sicherheitsangaben
                                If GRTEE.GTy IsNot Nothing Then G.nctsSA_Typ = GRTEE.GTy
                                If GRTEE.GrteeRef IsNot Nothing Then
                                    G.nctsAt_SICHERHEITSANGABEN_BEZUG = New List(Of DAKOSY_Worker.cDakosy_NCTSOutAT_SicherheitsangabenBezug)
                                    For Each REF In GRTEE.GrteeRef
                                        Dim GB As New DAKOSY_Worker.cDakosy_NCTSOutAT_SicherheitsangabenBezug
                                        If REF.GRN IsNot Nothing Then GB.nctsSAb_GRN = REF.GRN
                                        If REF.OGR IsNot Nothing Then GB.nctsSAb_AndereGarantieRef = REF.OGR
                                        If REF.Acc IsNot Nothing Then GB.nctsSAb_Zugriffcode = REF.Acc
                                        If REF.GTIN IsNot Nothing Then GB.nctsSAb_TIN = REF.GTIN
                                        If REF.GVal IsNot Nothing Then GB.nctsSAb_AbgabenBetrag = REF.GVal
                                        If REF.Curr IsNot Nothing Then GB.nctsSAb_Waehrung = REF.Curr
                                        If REF.VaLimEC IsNot Nothing Then
                                            GB.nctsSAb_NichtGueltigFuerEU = REF.VaLimEC.NValEC
                                        End If
                                        If REF.VaLimNEC IsNot Nothing Then
                                            If REF.VaLimNEC.Count > 0 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien1 = REF.VaLimNEC(0).NVal
                                            If REF.VaLimNEC.Count > 1 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien2 = REF.VaLimNEC(1).NVal
                                            If REF.VaLimNEC.Count > 2 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien3 = REF.VaLimNEC(2).NVal
                                            If REF.VaLimNEC.Count > 3 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien4 = REF.VaLimNEC(3).NVal
                                            If REF.VaLimNEC.Count > 4 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien5 = REF.VaLimNEC(4).NVal
                                            If REF.VaLimNEC.Count > 5 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien6 = REF.VaLimNEC(5).NVal
                                            If REF.VaLimNEC.Count > 6 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien7 = REF.VaLimNEC(6).NVal
                                            If REF.VaLimNEC.Count > 7 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien8 = REF.VaLimNEC(7).NVal
                                            If REF.VaLimNEC.Count > 8 Then GB.nctsSAb_NichtGueltigFuerAndVertragsParteien9 = REF.VaLimNEC(8).NVal

                                        End If

                                        G.nctsAt_SICHERHEITSANGABEN_BEZUG.Add(GB)
                                    Next
                                End If
                            Next

                        End If


                        If EZOLL_NCTS.DepCO IsNot Nothing Then
                            If EZOLL_NCTS.DepCO.Ref IsNot Nothing Then NCTS.nctsAt_AbgangsDienststellennummer = EZOLL_NCTS.DepCO.Ref
                        End If


                        If EZOLL_NCTS.TranCO IsNot Nothing Then
                            If EZOLL_NCTS.TranCO.Count > 0 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer1 = EZOLL_NCTS.TranCO(0).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft1 = EZOLL_NCTS.TranCO(0).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 1 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer2 = EZOLL_NCTS.TranCO(1).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft2 = EZOLL_NCTS.TranCO(1).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 2 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer3 = EZOLL_NCTS.TranCO(2).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft3 = EZOLL_NCTS.TranCO(2).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 3 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer4 = EZOLL_NCTS.TranCO(3).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft4 = EZOLL_NCTS.TranCO(3).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 4 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer5 = EZOLL_NCTS.TranCO(4).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft5 = EZOLL_NCTS.TranCO(4).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 5 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer6 = EZOLL_NCTS.TranCO(5).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft6 = EZOLL_NCTS.TranCO(5).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 6 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer7 = EZOLL_NCTS.TranCO(6).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft7 = EZOLL_NCTS.TranCO(6).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 7 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer8 = EZOLL_NCTS.TranCO(7).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft8 = EZOLL_NCTS.TranCO(7).TranArrDT
                            If EZOLL_NCTS.TranCO.Count > 8 Then NCTS.nctsAt_DurchgangszollstelleDienststellnummer9 = EZOLL_NCTS.TranCO(8).Ref : NCTS.nctsAt_DurchgangszollstelleDienststelleAnkunft9 = EZOLL_NCTS.TranCO(8).TranArrDT
                        End If

                        'WARENPOSITIONEN
                        If EZOLL_NCTS.GdsItem IsNot Nothing AndAlso EZOLL_NCTS.GdsItem.Count > 0 Then
                            NCTS.nctsAt_WARENPOS = New List(Of DAKOSY_Worker.cDakosy_NCTSOutAT_Warenposition)
                            For Each GDS In EZOLL_NCTS.GdsItem
                                Dim W As New DAKOSY_Worker.cDakosy_NCTSOutAT_Warenposition
                                If GDS.ItNr IsNot Nothing Then W.nctsWP_PositionsNummer = GDS.ItNr
                                If GDS.Dec IsNot Nothing Then W.nctsWP_ArtAnmeldungPositionCode = GDS.Dec
                                If GDS.ComCd IsNot Nothing Then W.nctsWP_Warennummer = GDS.ComCd
                                If GDS.GdsDes IsNot Nothing Then W.nctsWP_Warenbezeichnung = GDS.GdsDes
                                If GDS.LNG IsNot Nothing Then W.nctsWP_WarenbezeichnungSprachCode = GDS.LNG
                                If GDS.Gross IsNot Nothing Then W.nctsWP_Rohmasse = GDS.Gross
                                If GDS.Net IsNot Nothing Then W.nctsWP_Eigenmasse = GDS.Net
                                If GDS.TransPayTy IsNot Nothing Then W.nctsWP_SumABefoerderungskostenZahlungsweise = GDS.TransPayTy
                                If GDS.ComRef IsNot Nothing Then W.nctsWP_GeschaeftsReferenzNummer = GDS.ComRef
                                If GDS.UNDangCd IsNot Nothing Then W.nctsWP_SumAUNGefahrgutnummer = GDS.UNDangCd
                                If GDS.Locs IsNot Nothing Then
                                    If GDS.Locs.Disp IsNot Nothing Then W.nctsWP_VersendungslandPositionCode = GDS.Locs.Disp
                                    If GDS.Locs.Dest IsNot Nothing Then W.nctsWP_BestimmungslandPositionCode = GDS.Locs.Dest
                                End If

                                'Versender
                                If GDS.ConorTra IsNot Nothing Then
                                    If GDS.ConorTra.Na IsNot Nothing Then W.nctsWP_Versender_Name = GDS.ConorTra.Na
                                    If GDS.ConorTra.Strt IsNot Nothing Then W.nctsWP_Versender_StrasseHausnummer = GDS.ConorTra.Strt
                                    If GDS.ConorTra.Pst IsNot Nothing Then W.nctsWP_Versender_PLZ = GDS.ConorTra.Pst
                                    If GDS.ConorTra.Cty IsNot Nothing Then W.nctsWP_Versender_Ort = GDS.ConorTra.Cty
                                    If GDS.ConorTra.Ctry IsNot Nothing Then W.nctsWP_Versender_Land = GDS.ConorTra.Ctry
                                    If GDS.ConorTra.LNG IsNot Nothing Then W.nctsWP_versender_SprachCode = GDS.ConorTra.LNG
                                    If GDS.ConorTra.TIN IsNot Nothing Then W.nctsWP_Versender_TIN = GDS.ConorTra.TIN
                                End If

                                'Empfänger
                                If GDS.ConeeTra IsNot Nothing Then
                                    If GDS.ConeeTra.Na IsNot Nothing Then W.nctsWP_Empfaenger_Name = GDS.ConeeTra.Na
                                    If GDS.ConeeTra.Strt IsNot Nothing Then W.nctsWP_Empfaenger_StrasseHausnummer = GDS.ConeeTra.Strt
                                    If GDS.ConeeTra.Pst IsNot Nothing Then W.nctsWP_Empfaenger_PLZ = GDS.ConeeTra.Pst
                                    If GDS.ConeeTra.Cty IsNot Nothing Then W.nctsWP_Empfaenger_Ort = GDS.ConeeTra.Cty
                                    If GDS.ConeeTra.Ctry IsNot Nothing Then W.nctsWP_Empfaenger_Land = GDS.ConeeTra.Ctry
                                    If GDS.ConeeTra.LNG IsNot Nothing Then W.nctsWP_empfaenger_SprachCode = GDS.ConeeTra.LNG
                                    If GDS.ConeeTra.TIN IsNot Nothing Then W.nctsWP_Empfaenger_TIN = GDS.ConeeTra.TIN
                                End If

                                'SumA Versender
                                If GDS.ConorSecTra IsNot Nothing Then
                                    If GDS.ConorSecTra.Na IsNot Nothing Then W.nctsWP_SumAVersender_Name = GDS.ConorSecTra.Na
                                    If GDS.ConorSecTra.Strt IsNot Nothing Then W.nctsWP_SumAVersender_StrasseHausnummer = GDS.ConorSecTra.Strt
                                    If GDS.ConorSecTra.Pst IsNot Nothing Then W.nctsWP_SumAVersender_PLZ = GDS.ConorSecTra.Pst
                                    If GDS.ConorSecTra.Cty IsNot Nothing Then W.nctsWP_SumAVersender_Ort = GDS.ConorSecTra.Cty
                                    If GDS.ConorSecTra.Ctry IsNot Nothing Then W.nctsWP_SumAVersender_Land = GDS.ConorSecTra.Ctry
                                    If GDS.ConorSecTra.LNG IsNot Nothing Then W.nctsWP_SumAversender_SprachCode = GDS.ConorSecTra.LNG
                                    If GDS.ConorSecTra.TIN IsNot Nothing Then W.nctsWP_SumAVersender_TIN = GDS.ConorSecTra.TIN
                                End If

                                'SumA Empfänger
                                If GDS.ConeeSecTra IsNot Nothing Then
                                    If GDS.ConeeSecTra.Na IsNot Nothing Then W.nctsWP_SumAEmpfaenger_Name = GDS.ConeeSecTra.Na
                                    If GDS.ConeeSecTra.Strt IsNot Nothing Then W.nctsWP_SumAEmpfaenger_StrasseHausnummer = GDS.ConeeSecTra.Strt
                                    If GDS.ConeeSecTra.Pst IsNot Nothing Then W.nctsWP_SumAEmpfaenger_PLZ = GDS.ConeeSecTra.Pst
                                    If GDS.ConeeSecTra.Cty IsNot Nothing Then W.nctsWP_SumAEmpfaenger_Ort = GDS.ConeeSecTra.Cty
                                    If GDS.ConeeSecTra.Ctry IsNot Nothing Then W.nctsWP_SumAEmpfaenger_Land = GDS.ConeeSecTra.Ctry
                                    If GDS.ConeeSecTra.LNG IsNot Nothing Then W.nctsWP_SumAempfaenger_SprachCode = GDS.ConeeSecTra.LNG
                                    If GDS.ConeeSecTra.TIN IsNot Nothing Then W.nctsWP_SumAEmpfaenger_TIN = GDS.ConeeSecTra.TIN
                                End If


                                If GDS.Pack IsNot Nothing AndAlso GDS.Pack.Count > 0 Then
                                    W.nctsWP_PACKSTUECKE = New List(Of DAKOSY_Worker.cDakosy_NCTSOutAT_WarenpositionPackstuecke)
                                    For Each PACK In GDS.Pack
                                        Dim P As New DAKOSY_Worker.cDakosy_NCTSOutAT_WarenpositionPackstuecke
                                        If PACK.Mark IsNot Nothing Then P.nctsWpPk_ZeichenNummern = PACK.Mark
                                        If PACK.LNG IsNot Nothing Then P.nctsWpPk_SprachCode = PACK.LNG
                                        If PACK.Kind IsNot Nothing Then P.nctsWpPk_Verpackungsart = PACK.Kind
                                        If PACK.Nr IsNot Nothing Then P.nctsWpPk_PackstueckeAnzahl = PACK.Nr
                                        If PACK.Piec IsNot Nothing Then P.nctsWpPk_Nummer = PACK.Piec

                                        W.nctsWP_PACKSTUECKE.Add(P)
                                    Next

                                End If

                                If GDS.SupplUnt IsNot Nothing Then
                                    'BesondereMaßeinheit
                                End If

                                If GDS.PrevAdmRef IsNot Nothing AndAlso GDS.PrevAdmRef.Count > 0 Then
                                    W.nctsWP_VORPAPIERE = New List(Of DAKOSY_Worker.cDakosy_NCTSOutAT_WarenpositionVorpapier)
                                    For Each PREV In GDS.PrevAdmRef
                                        Dim V As New DAKOSY_Worker.cDakosy_NCTSOutAT_WarenpositionVorpapier
                                        If PREV.PDTy IsNot Nothing Then V.nctsWpVp_VorpapierArt = PREV.PDTy
                                        If PREV.DRef IsNot Nothing Then V.nctsWpVp_Referenz = PREV.DRef
                                        If PREV.LNG IsNot Nothing Then V.nctsWpVp_SprachCode = PREV.LNG
                                        If PREV.CInf IsNot Nothing Then V.nctsWpVp_ErgaenzendeInfo = PREV.CInf
                                        If PREV.InfoLNG IsNot Nothing Then V.nctsWpVp_ErgaenzendeInfoSprachCode = PREV.InfoLNG

                                        W.nctsWP_VORPAPIERE.Add(V)
                                    Next

                                End If

                                If GDS.DocCerts IsNot Nothing AndAlso GDS.DocCerts.Count > 0 Then
                                    W.nctsWP_UNTERLAGEN = New List(Of DAKOSY_Worker.cDakosy_NCTSOutAT_WarenpositionVorgelegteUnterlagen)
                                    For Each doc In GDS.DocCerts
                                        Dim U As New DAKOSY_Worker.cDakosy_NCTSOutAT_WarenpositionVorgelegteUnterlagen
                                        If doc.DocCd IsNot Nothing Then U.nctsWpUl_Typ = doc.DocCd
                                        If doc.DTy IsNot Nothing Then U.nctsWpUl_TypBezeichnung = doc.DTy
                                        If doc.RefLNG IsNot Nothing Then U.nctsWpUl_ReferenzSprachcode = doc.RefLNG
                                        If doc.DRef IsNot Nothing Then U.nctsWpUl_Referenz = doc.DRef
                                        If doc.IssD IsNot Nothing Then U.nctsWpUl_Ausstellungsdatum = doc.IssD
                                        If doc.IssCtry IsNot Nothing Then U.nctsWpUl_AusstellungsLand = doc.IssCtry
                                        If doc.Na IsNot Nothing Then U.nctsWpUl_Name = doc.Na
                                        If doc.Strt IsNot Nothing Then U.nctsWpUl_StrasseHausnummer = doc.Strt
                                        If doc.Pst IsNot Nothing Then U.nctsWpUl_PLZ = doc.Pst
                                        If doc.Cty IsNot Nothing Then U.nctsWpUl_Ort = doc.Cty
                                        If doc.Ctry IsNot Nothing Then U.nctsWpUl_Land = doc.Ctry
                                        If doc.LNG IsNot Nothing Then U.nctsWpUl_SprachCode = doc.LNG
                                        If doc.DTIN IsNot Nothing Then U.nctsWpUl_DokumentenTIN = doc.DTIN
                                        If doc.UidVid IsNot Nothing Then U.nctsWpUl_DokumentenUID = doc.UidVid
                                        If doc.IssAdm IsNot Nothing Then U.nctsWpUl_Ausstellungsbehoerde = doc.IssAdm
                                        If doc.ValD IsNot Nothing Then U.nctsWpUl_EndeGueltigkeit = doc.ValD
                                        If doc.MaxValD IsNot Nothing Then U.nctsWpUl_EndeGueltigkeitMax = doc.MaxValD
                                        If doc.CInf IsNot Nothing Then U.nctsWpUl_ErgaenzendeInfo = doc.CInf
                                        If doc.InfoLNG IsNot Nothing Then U.nctsWpUl_ErgaenzendeInfoSprachCode = doc.InfoLNG

                                        W.nctsWP_UNTERLAGEN.Add(U)
                                    Next
                                End If

                                If GDS.SGI IsNot Nothing Then
                                    If GDS.SGI.Count > 0 Then W.nctsWP_SensibleWarenCode1 = GDS.SGI(0).SGCd : W.nctsWP_SensibleWarenMenge1 = GDS.SGI(0).Quant
                                    If GDS.SGI.Count > 1 Then W.nctsWP_SensibleWarenCode2 = GDS.SGI(1).SGCd : W.nctsWP_SensibleWarenMenge2 = GDS.SGI(1).Quant
                                    If GDS.SGI.Count > 2 Then W.nctsWP_SensibleWarenCode3 = GDS.SGI(2).SGCd : W.nctsWP_SensibleWarenMenge3 = GDS.SGI(2).Quant
                                    If GDS.SGI.Count > 3 Then W.nctsWP_SensibleWarenCode4 = GDS.SGI(3).SGCd : W.nctsWP_SensibleWarenMenge4 = GDS.SGI(3).Quant
                                    If GDS.SGI.Count > 4 Then W.nctsWP_SensibleWarenCode5 = GDS.SGI(4).SGCd : W.nctsWP_SensibleWarenMenge5 = GDS.SGI(4).Quant
                                    If GDS.SGI.Count > 5 Then W.nctsWP_SensibleWarenCode6 = GDS.SGI(5).SGCd : W.nctsWP_SensibleWarenMenge6 = GDS.SGI(5).Quant
                                    If GDS.SGI.Count > 6 Then W.nctsWP_SensibleWarenCode7 = GDS.SGI(6).SGCd : W.nctsWP_SensibleWarenMenge7 = GDS.SGI(6).Quant
                                    If GDS.SGI.Count > 7 Then W.nctsWP_SensibleWarenCode8 = GDS.SGI(7).SGCd : W.nctsWP_SensibleWarenMenge8 = GDS.SGI(7).Quant
                                    If GDS.SGI.Count > 8 Then W.nctsWP_SensibleWarenCode9 = GDS.SGI(8).SGCd : W.nctsWP_SensibleWarenMenge9 = GDS.SGI(8).Quant
                                End If

                                If GDS.SpecMent IsNot Nothing AndAlso GDS.SpecMent.Count > 0 Then
                                    W.nctsWP_ZUSATZANGABEN = New List(Of DAKOSY_Worker.cDakosy_AES_WarenpositionZusatzangaben)
                                    For Each SPEC In GDS.SpecMent
                                        Dim Z As New DAKOSY_Worker.cDakosy_AES_WarenpositionZusatzangaben
                                        If SPEC.Inf IsNot Nothing Then Z.nctsWpZa_ZusaetzlicheInformation = SPEC.Inf
                                        If SPEC.LNG IsNot Nothing Then Z.nctsWpZa_ZusaetzlicheInformationSprachCode = SPEC.LNG
                                        If SPEC.Cd IsNot Nothing Then Z.nctsWpZa_Code = SPEC.Cd
                                        Z.nctsWpZa_AusfuhrAusEU = SPEC.ExEC
                                        If SPEC.ExCtry IsNot Nothing Then Z.nctsWpZa_AusfuhrLand = SPEC.ExCtry

                                        W.nctsWP_ZUSATZANGABEN.Add(Z)
                                    Next
                                End If
                            Next
                        End If

                        If EZOLL_NCTS.Seals IsNot Nothing Then
                            If EZOLL_NCTS.Seals.SNr IsNot Nothing Then NCTS.nctsAt_Verschluss_Anzahl = EZOLL_NCTS.Seals.SNr
                            If EZOLL_NCTS.Seals.ID IsNot Nothing Then
                                If EZOLL_NCTS.Seals.ID.Count > 0 Then NCTS.nctsAt_Verschluss_Zeichen1 = EZOLL_NCTS.Seals.ID(0).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode1 = EZOLL_NCTS.Seals.ID(0).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 1 Then NCTS.nctsAt_Verschluss_Zeichen2 = EZOLL_NCTS.Seals.ID(1).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode2 = EZOLL_NCTS.Seals.ID(1).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 2 Then NCTS.nctsAt_Verschluss_Zeichen3 = EZOLL_NCTS.Seals.ID(2).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode3 = EZOLL_NCTS.Seals.ID(2).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 3 Then NCTS.nctsAt_Verschluss_Zeichen4 = EZOLL_NCTS.Seals.ID(3).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode4 = EZOLL_NCTS.Seals.ID(3).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 4 Then NCTS.nctsAt_Verschluss_Zeichen5 = EZOLL_NCTS.Seals.ID(4).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode5 = EZOLL_NCTS.Seals.ID(4).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 5 Then NCTS.nctsAt_Verschluss_Zeichen6 = EZOLL_NCTS.Seals.ID(5).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode6 = EZOLL_NCTS.Seals.ID(5).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 6 Then NCTS.nctsAt_Verschluss_Zeichen7 = EZOLL_NCTS.Seals.ID(6).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode7 = EZOLL_NCTS.Seals.ID(6).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 7 Then NCTS.nctsAt_Verschluss_Zeichen8 = EZOLL_NCTS.Seals.ID(7).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode8 = EZOLL_NCTS.Seals.ID(7).LNG
                                If EZOLL_NCTS.Seals.ID.Count > 8 Then NCTS.nctsAt_Verschluss_Zeichen9 = EZOLL_NCTS.Seals.ID(8).Idnt : NCTS.nctsAt_Verschluss_ZeichenSprachCode9 = EZOLL_NCTS.Seals.ID(8).LNG
                            End If
                        End If

                        If EZOLL_NCTS.CtrlRslt IsNot Nothing Then

                            If EZOLL_NCTS.CtrlRslt.ResCd IsNot Nothing Then NCTS.nctsAt_KontrolleErgebnisCode = EZOLL_NCTS.CtrlRslt.ResCd
                            If EZOLL_NCTS.CtrlRslt.DLimit IsNot Nothing Then NCTS.nctsAt_Gestellungsfrist = EZOLL_NCTS.CtrlRslt.DLimit

                        End If

                        If EZOLL_NCTS.Itin IsNot Nothing Then
                            If EZOLL_NCTS.Itin.Count > 0 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand1 = EZOLL_NCTS.Itin(0).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 1 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand2 = EZOLL_NCTS.Itin(1).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 2 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand3 = EZOLL_NCTS.Itin(2).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 3 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand4 = EZOLL_NCTS.Itin(3).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 4 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand5 = EZOLL_NCTS.Itin(4).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 5 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand6 = EZOLL_NCTS.Itin(5).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 6 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand7 = EZOLL_NCTS.Itin(6).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 7 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand8 = EZOLL_NCTS.Itin(7).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 8 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand9 = EZOLL_NCTS.Itin(8).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 9 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand10 = EZOLL_NCTS.Itin(9).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 10 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand11 = EZOLL_NCTS.Itin(10).RoutCtry
                            If EZOLL_NCTS.Itin.Count > 11 Then NCTS.nctsAt_SumA_BefoerderungsrouteLand12 = EZOLL_NCTS.Itin(11).RoutCtry
                        End If





                        If If(NCTS.nctsAt_Status, 0) <= 5 Then NCTS.nctsAt_Status = DAKOSY_Worker.cDY_Statusliste.S_05
                        If If(NCTS.nctsAt_Status_KEWILL_Equivalent, 0) <= 5 Then NCTS.nctsAt_Status_KEWILL_Equivalent = DAKOSY_Worker.cDY_Statusliste.S_05
                        If NCTS.SAVE_ALL() Then
                            If If(NCTS.nctsAt_Status, 0) <= 5 Then DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_TMP, DAKOSY_Worker.cDY_Statusliste.S_05)
                        End If


                        addDGVEinarbeitung("NCTS AT: Versandanmeldung", readNCTS_AT_TR100_Versandanmeldung)

                    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)
            readNCTS_AT_TR100_Versandanmeldung = ""
        End Try
    End Function




    Private Sub frmDYNachrichtenVerarbeitung_Shown(sender As Object, e As EventArgs) Handles Me.Shown

        If allowClose Then ' AUTOMATIK
            Try
                'Daten von Server laden:
                '  Me.Refresh()
                '   Me.Enabled = False
                ' Label9.Visible = True
                '    Dim cnt = getNachrichtenDatenFromDakosy()
                getNachrichtenDatenFromDakosy()
                '  Label9.Text = cnt & " Datensätze empfangen."
                '   Label5.Visible = True
                '  Me.Refresh()

                'Daten einlesen:
                DatenEinlesen()
                If dsNichtErkannt > 0 Then
                    ' Label6.Text = dsNichtErkannt & " Datensätze nicht " & vbNewLine & "erkannt."
                    '     Label6.Visible = True
                End If
                '  Me.Refresh()
                RaiseEvent EV_FINISHED() 'Steigt hier schon aus
                System.Threading.Thread.Sleep(2000)
            Catch ex As Exception
                VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
            End Try
            Me.Enabled = True
            Me.Dispose()
            Me.Close()
        End If
    End Sub

    Private Sub pnl_Paint(sender As Object, e As PaintEventArgs) Handles pnl.Paint

    End Sub

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

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

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

    End Function

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

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

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

    End Function
End Class

