469 lines
22 KiB
VB.net
469 lines
22 KiB
VB.net
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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 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
|
|
MsgBox(ex2.Message & ex2.StackTrace)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
End Class
|