Imports Renci.SshNet Imports System.IO Public Class cDakosyFunftions Shared Function send_Data_To_Dakosy_FTP(file, dySt_BezugsNr, dy_Id, FRIMA_DY) Try If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_DakosyZA_Senden", "AVISO") Then MsgBox("Sie haben keine Sendeberechtigung.") Return False End If If Not IO.File.Exists(file) Then Return False Dim F As New System.IO.FileInfo(file) Dim DY_server = "" Dim DY_name = "" Dim DY_pwd = "" Dim DY_port = "" Dim DY_PFAD_IN = "" Dim DY_PFAD_IN_KD = "" getSFTPLoginData(DY_server, DY_name, DY_pwd, DY_port, DY_PFAD_IN, "", DY_PFAD_IN_KD, FRIMA_DY) Dim ConnectionInfo As New ConnectionInfo(DY_server, DY_port, DY_name, New PasswordAuthenticationMethod(DY_name, DY_pwd)) Using client = New SftpClient(ConnectionInfo) client.Connect() 'client.Create(file, file) client.ChangeDirectory(DY_PFAD_IN) If IO.File.Exists(file) Then 'MsgBox(file) Using uplfileStream = System.IO.File.OpenRead(file) client.UploadFile(uplfileStream, "." & F.Name, True) client.RenameFile("." & F.Name, F.Name) End Using client.Disconnect() Else MsgBox("Sendedatei nicht gefunden!") End If End Using Dim STATUS As New DAKOSY_Worker.cDakosy_Statusmeldungen STATUS.dySt_BezugsNr = dySt_BezugsNr STATUS.dySt_artMitteilung = "VERAG_SND" STATUS.dySt_dyArt = "" '"NCTS" 'T1/T2 STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_03 'STATUS.dySt_ergCode = "ANR" STATUS.dySt_ergCode = "SND" STATUS.dySt_ergMitteilung = "An Dakosy gesendet" STATUS.dySt_ergZeitpunkt = Now STATUS.dySt_dyId = dy_Id STATUS.SAVE() Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Return False End Try End Function Shared Function send_Data_To_Dakosy_FTP_file(file, FRIMA_DY, Optional misc = False) Try If Not IO.File.Exists(file) Then Return False Dim F As New System.IO.FileInfo(file) Dim DY_server = "" Dim DY_name = "" Dim DY_pwd = "" Dim DY_port = "" Dim DY_PFAD_IN = "" Dim DY_PFAD_IN_KD = "" If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "" Then VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" If FRIMA_DY = "" Then FRIMA_DY = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA getSFTPLoginData(DY_server, DY_name, DY_pwd, DY_port, DY_PFAD_IN, "", DY_PFAD_IN_KD, FRIMA_DY) Dim ConnectionInfo As New ConnectionInfo(DY_server, DY_port, DY_name, New PasswordAuthenticationMethod(DY_name, DY_pwd)) Using client = New SftpClient(ConnectionInfo) client.Connect() 'client.Create(file, file) If misc Then client.ChangeDirectory(DY_PFAD_IN_KD) 'DY_PFAD_IN.Replace("gebox", "misc")) Else client.ChangeDirectory(DY_PFAD_IN) End If If IO.File.Exists(file) Then 'MsgBox(file) Using uplfileStream = System.IO.File.OpenRead(file) client.UploadFile(uplfileStream, "." & F.Name, True) client.RenameFile("." & F.Name, F.Name) End Using client.Disconnect() Else MsgBox("Sendedatei nicht gefunden!") End If End Using Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Return False End Try End Function Shared Sub getSFTPLoginData(ByRef DY_server, ByRef DY_name, ByRef DY_pwd, ByRef DY_port, ByRef DY_PFAD_IN, ByRef DY_PFAD_OUT, ByRef DY_PFAD_IN_KD, FIRMA_DY) If False Then 'VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then DY_server = cDY_Paramter.GET_PARAM_ByName("FTP_TEST_SERVER", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_name = cDY_Paramter.GET_PARAM_ByName("FTP_TEST_NAME", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_pwd = cDY_Paramter.GET_PARAM_ByName("FTP_TEST_PASSWORD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_port = cDY_Paramter.GET_PARAM_ByName("FTP_TEST_PORT", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_PFAD_IN = cDY_Paramter.GET_PARAM_ByName("DY_PFAD_IN", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_PFAD_OUT = cDY_Paramter.GET_PARAM_ByName("DY_PFAD_OUT", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) If DY_PFAD_IN = "" Then DY_PFAD_IN = "in/test/gebox/" If DY_PFAD_OUT = "" Then DY_PFAD_OUT = "out/test/" DY_PFAD_IN_KD = cDY_Paramter.GET_PARAM_ByName("DY_PFAD_IN_KD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) Else DY_server = cDY_Paramter.GET_PARAM_ByName("FTP_PROD_SERVER", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_name = cDY_Paramter.GET_PARAM_ByName("FTP_PROD_NAME", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_pwd = cDY_Paramter.GET_PARAM_ByName("FTP_PROD_PASSWORD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_port = cDY_Paramter.GET_PARAM_ByName("FTP_PROD_PORT", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_PFAD_IN = cDY_Paramter.GET_PARAM_ByName("DY_PFAD_IN", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) DY_PFAD_OUT = cDY_Paramter.GET_PARAM_ByName("DY_PFAD_OUT", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) If DY_PFAD_IN = "" Then DY_PFAD_IN = "in/prod/gebox/" If DY_PFAD_OUT = "" Then DY_PFAD_OUT = "out/prod/" DY_PFAD_IN_KD = cDY_Paramter.GET_PARAM_ByName("DY_PFAD_IN_KD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, FIRMA_DY) End If End Sub Shared Function getKDData() As DataTable Dim sqlstr = "SELECT TOP 999 * " sqlstr &= " ,(SELECT TOP 1 [Länderverzeichnis für die Außenhandelsstatistik].LandKz AS LandKzISO2 FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel" sqlstr &= " WHERE Währungstabelle.LandKz=[Adressen].LandKz) as LandKzISO2" sqlstr &= " FROM [Kunden] inner join Adressen on AdressenNr=KundenNr" sqlstr &= " where DakosyExport Is null And EORITIN Is Not null" 'sqlstr &= " and KundenNrZentrale=KundenNr " sqlstr &= " and Auswahl='A' " sqlstr &= " order by Kunden.[Geändert am] desc" ' MsgBox(sqlstr) Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.loadDgvBySql(sqlstr, "FMZOLL") End Function Shared Function getKDDataByKdNr(KdNR As Integer) As DataTable Dim sqlstr = "SELECT TOP 1 * " sqlstr &= " ,(SELECT TOP 1 [Länderverzeichnis für die Außenhandelsstatistik].LandKz AS LandKzISO2 FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN Währungstabelle ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = Währungstabelle.Währungsschlüssel" sqlstr &= " WHERE Währungstabelle.LandKz=[Adressen].LandKz) as LandKzISO2" sqlstr &= " FROM [Kunden] inner join Adressen on AdressenNr=KundenNr" sqlstr &= " where " '/*DakosyExport Is null And EORITIN Is Not null */" sqlstr &= " KundenNr='" & KdNR & "' " sqlstr &= " order by Kunden.[Geändert am] desc" ' MsgBox(sqlstr) Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.loadDgvBySql(sqlstr, "FMZOLL") End Function Shared Function updateKdDakosyExportDate(KdNR As Integer) As Boolean Dim sqlstr = "update [Kunden] SET [DakosyExport]=getDate() WHERE KundenNr='" & KdNR & "' " Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.doSQL(sqlstr, "FMZOLL") End Function Shared Function sendData(Optional defaultFolder As String = "") ', Optional Dakosy_Mandant As String = "VERG") Dim Dakosy_Mandant = "VERG" Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "UNISPED" : Dakosy_Mandant = "UNAT" 'Case Else ' Dakosy_Mandant = "VERG" End Select Dim dt = DAKOSY_Worker.cDakosyFunftions.getKDData If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then Dim saveFile = "" If DAKOSY_Worker.cDakosyFunftions.generateVERAGKdData(dt, getDefaultFolder_SEND, saveFile, Dakosy_Mandant) Then If cDakosyFunftions.send_Data_To_Dakosy_FTP_file(saveFile, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, True) Then For Each ROW As DataRow In dt.Rows updateKdDakosyExportDate(ROW("KundenNr")) Next Return True End If End If End If Return False End Function Shared Function sendDataByKdNr(KdNr As Integer, Optional defaultFolder As String = "") ', Optional Dakosy_Mandant As String = "VERG") Dim Dakosy_Mandant = "VERG" Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "UNISPED" : Dakosy_Mandant = "UNAT" 'Case Else ' Dakosy_Mandant = "VERG" End Select 'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" Then ' MsgBox("Übertrag derzeit nicht möglich!") ' Return False 'End If Dim dt = DAKOSY_Worker.cDakosyFunftions.getKDDataByKdNr(KdNr) If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then Dim saveFile = "" If DAKOSY_Worker.cDakosyFunftions.generateVERAGKdData(dt, getDefaultFolder_SEND, saveFile, Dakosy_Mandant) Then If cDakosyFunftions.send_Data_To_Dakosy_FTP_file(saveFile, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, True) Then updateKdDakosyExportDate(KdNr) Return True End If End If End If Return False End Function Shared Function getDefaultFolder_SEND() As String Try getDefaultFolder_SEND = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir(False) & "DAKOSY\" & If(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TESTSYSTEM", "ECHTSYSTEM") & "\Ausgang_Kundendaten\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\" ' Path.GetTempPath If Not IO.Directory.Exists(getDefaultFolder_SEND) Then IO.Directory.CreateDirectory(getDefaultFolder_SEND) End If Catch ex As Exception Try getDefaultFolder_SEND = "C:\TEMP\" ' Path.GetTempPath If Not IO.Directory.Exists(getDefaultFolder_SEND) Then IO.Directory.CreateDirectory(getDefaultFolder_SEND) End If Catch ex2 As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) getDefaultFolder_SEND = "" End Try End Try End Function Shared Function generateVERAGKdData(dt As DataTable, path As String, ByRef saveFile As String, Optional Dakosy_Mandant As String = "VERG") As Boolean Return generateVERAGKdData_V2(dt, path, saveFile, Dakosy_Mandant) 'Alle mit V2 '--------------------- If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" Then Return generateVERAGKdData_V2(dt, path, saveFile, Dakosy_Mandant) Select Case Dakosy_Mandant Case "UNAT" : Return generateVERAGKdData_V2(dt, path, saveFile, Dakosy_Mandant) Case Else : Return generateVERAGKdData_V1(dt, path, saveFile, Dakosy_Mandant) End Select End Function Shared Function generateVERAGKdData_V1(dt As DataTable, path As String, ByRef saveFile As String, Optional Dakosy_Mandant As String = "VERG") As Boolean Try Dim Interface_VERSION = "003" Dim XML As New DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORT For Each ROW As DataRow In dt.Rows Dim KD As New DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDaten KD.Dakosy_Mandant = Dakosy_Mandant KD.KundenNr = ROW("KundenNr") KD.EORI = ROW("EORITIN") If ROW("EORITIN_NL") Is DBNull.Value OrElse If(ROW("EORITIN_NL"), "") = "" Then KD.EORI_Niederlassung = "0000" Else KD.EORI_Niederlassung = ROW("EORITIN_NL") End If If ROW("Ordnungsbegriff") IsNot DBNull.Value Then KD.Kurzname = ROW("Ordnungsbegriff") If ROW("Name 1") IsNot DBNull.Value Then KD.Name1 = ROW("Name 1") If ROW("Name 2") IsNot DBNull.Value Then KD.Name2 = ROW("Name 2") If ROW("UstIdKz") IsNot DBNull.Value And ("UstIdNr") IsNot DBNull.Value Then KD.UID_Nr = ROW("UstIdKz") & ROW("UstIdNr") KD.Adresse = New DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenAdresse If ROW("Straße") IsNot DBNull.Value Then KD.Adresse.Strasse = ROW("Straße") If ROW("PLZ") IsNot DBNull.Value Then KD.Adresse.Plz = ROW("PLZ") If ROW("Ort") IsNot DBNull.Value Then KD.Adresse.Ort = ROW("Ort") If ROW("LandKz") IsNot DBNull.Value Then KD.Adresse.LandKz = ROW("LandKzISO2") KD.Kontakt = New DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenKontakt If ROW("E-Mail") IsNot DBNull.Value Then KD.Kontakt.EMail = ROW("E-Mail") If ROW("Telefon") IsNot DBNull.Value Then KD.Kontakt.Tel = ROW("Telefon") If ROW("Telefax") IsNot DBNull.Value Then KD.Kontakt.Fax = ROW("Telefax") If ROW("Ansprechpartner") IsNot DBNull.Value Then KD.Kontakt.Ansprechpartner = If(ROW("Anrede") IsNot DBNull.Value, ROW("Anrede") & " ", "") & ROW("Ansprechpartner") Dim KD_AKTO = VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten.LOAD_ListAufschubKTOByKdNr(KD.KundenNr) If KD_AKTO IsNot Nothing Then Dim AKTOLIST = New List(Of VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenAufschub) For Each KTO In KD_AKTO If If(KTO.kdAkto_bin, "").ToString.Trim <> String.Empty And If(KTO.kdAkto_eori, "").ToString.Trim <> String.Empty And If(KTO.kdAkto_hauptzollamt, "").ToString.Trim <> String.Empty And If(KTO.kdAkto_kontonummer, "").ToString.Trim <> String.Empty Then Dim AUFSCH As New DAKOSY_Worker.VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenAufschub Select Case KTO.kdAkto_art Case "10" : AUFSCH.Art = VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenAufschubArt.Item10 Case "15" : AUFSCH.Art = VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenAufschubArt.Item15 Case "20" : AUFSCH.Art = VERAG_KundenStamm_Export.VERAG_Kundenstamm_IMPORTKundenDatenAufschubArt.Item20 End Select AUFSCH.BIN = KTO.kdAkto_bin AUFSCH.EORI = KTO.kdAkto_eori If KTO.kdAkto_eoriNL IsNot Nothing Then AUFSCH.EORI_Niederlassung = KTO.kdAkto_eoriNL Else AUFSCH.EORI_Niederlassung = "0000" AUFSCH.Hauptzollamt = KTO.kdAkto_hauptzollamt AUFSCH.KontoNr = KTO.kdAkto_kontonummer AKTOLIST.Add(AUFSCH) If AKTOLIST.Count = 2 Then Exit For 'max. 2 Aufschub End If Next If AKTOLIST.Count > 0 Then KD.Aufschubkonten = AKTOLIST End If XML.KundenDaten.Add(KD) Next Dim saveDir = path If Not IO.Directory.Exists(saveDir) Then IO.Directory.CreateDirectory(saveDir) End If Dim counter = 1 While IO.File.Exists(saveDir & "VERAG_KD_" & counter.ToString("D4") & ".xml") counter += 1 End While saveFile = saveDir & "VERAG_KD_" & counter.ToString("D4") & ".xml" XML.SaveToFile(saveFile) Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Return False End Try End Function Shared Function generateVERAGKdData_V2(dt As DataTable, path As String, ByRef saveFile As String, Optional Dakosy_Mandant As String = "VERG") As Boolean Try 'Dim Interface_VERSION = "003" Dim XML As New DAKOSY_Worker.VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORT Dim TRANS As New DAKOSY_Worker.VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTTransaktion TRANS.Version = "002" TRANS.IOPartner = Dakosy_Mandant Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "IMEX" : TRANS.IODivision1 = "IMEX" Case "UNISPED" : TRANS.IODivision1 = "UNAT" : TRANS.IOPartner = "UNAT" Case "ATILLA" : TRANS.IODivision1 = "ATIL" Case Else TRANS.IODivision1 = "VERG" End Select XML.Transaktion = TRANS For Each ROW As DataRow In dt.Rows Dim KD As New DAKOSY_Worker.VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDaten KD.Dakosy_Mandant = Dakosy_Mandant KD.KundenNr = ROW("KundenNr") KD.EORI = ROW("EORITIN") If ROW("EORITIN_NL") Is DBNull.Value OrElse If(ROW("EORITIN_NL"), "") = "" Then KD.EORI_Niederlassung = "0000" Else KD.EORI_Niederlassung = ROW("EORITIN_NL") End If If ROW("Ordnungsbegriff") IsNot DBNull.Value Then KD.Kurzname = ROW("Ordnungsbegriff") If ROW("Name 1") IsNot DBNull.Value Then KD.Name1 = ROW("Name 1") If ROW("Name 2") IsNot DBNull.Value Then KD.Name2 = ROW("Name 2") If ROW("UstIdKz") IsNot DBNull.Value And ("UstIdNr") IsNot DBNull.Value Then KD.UID_Nr = ROW("UstIdKz") & ROW("UstIdNr") KD.Adresse = New DAKOSY_Worker.VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenAdresse If ROW("Straße") IsNot DBNull.Value Then KD.Adresse.Strasse = ROW("Straße") If ROW("PLZ") IsNot DBNull.Value Then KD.Adresse.Plz = ROW("PLZ") If ROW("Ort") IsNot DBNull.Value Then KD.Adresse.Ort = ROW("Ort") If ROW("LandKz") IsNot DBNull.Value Then KD.Adresse.LandKz = ROW("LandKzISO2") KD.Kontakt = New DAKOSY_Worker.VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenKontakt If ROW("E-Mail") IsNot DBNull.Value Then KD.Kontakt.EMail = ROW("E-Mail") If ROW("Telefon") IsNot DBNull.Value Then KD.Kontakt.Tel = ROW("Telefon") If ROW("Telefax") IsNot DBNull.Value Then KD.Kontakt.Fax = ROW("Telefax") If ROW("Ansprechpartner") IsNot DBNull.Value Then KD.Kontakt.Ansprechpartner = If(ROW("Anrede") IsNot DBNull.Value, ROW("Anrede") & " ", "") & ROW("Ansprechpartner") Dim KD_AKTO = VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten.LOAD_ListAufschubKTOByKdNr(KD.KundenNr) If KD_AKTO IsNot Nothing Then Dim AKTOLIST = New List(Of VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenAufschub) For Each KTO In KD_AKTO If If(KTO.kdAkto_bin, "").ToString.Trim <> String.Empty And If(KTO.kdAkto_eori, "").ToString.Trim <> String.Empty And If(KTO.kdAkto_hauptzollamt, "").ToString.Trim <> String.Empty And If(KTO.kdAkto_kontonummer, "").ToString.Trim <> String.Empty Then Dim AUFSCH As New DAKOSY_Worker.VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenAufschub Select Case KTO.kdAkto_art Case "10" : AUFSCH.Art = VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenAufschubArt.Item10 Case "15" : AUFSCH.Art = VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenAufschubArt.Item15 Case "20" : AUFSCH.Art = VERAG_KundenStamm_Export_V2.VERAG_Kundenstamm_IMPORTKundenDatenAufschubArt.Item20 End Select AUFSCH.BIN = KTO.kdAkto_bin AUFSCH.EORI = KTO.kdAkto_eori If KTO.kdAkto_eoriNL IsNot Nothing Then AUFSCH.EORI_Niederlassung = KTO.kdAkto_eoriNL Else AUFSCH.EORI_Niederlassung = "0000" AUFSCH.Hauptzollamt = KTO.kdAkto_hauptzollamt AUFSCH.KontoNr = KTO.kdAkto_kontonummer AKTOLIST.Add(AUFSCH) If AKTOLIST.Count = 2 Then Exit For 'max. 2 Aufschub End If Next If AKTOLIST.Count > 0 Then KD.Aufschubkonten = AKTOLIST End If XML.KundenDaten.Add(KD) Next Dim saveDir = path If Not IO.Directory.Exists(saveDir) Then IO.Directory.CreateDirectory(saveDir) End If Dim counter = 1 While IO.File.Exists(saveDir & "VERAG_KD_" & counter.ToString("D4") & ".xml") counter += 1 End While saveFile = saveDir & "VERAG_KD_" & counter.ToString("D4") & ".xml" XML.SaveToFile(saveFile) Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Return False End Try End Function End Class