diff --git a/SDL/My Project/Resources.Designer.vb b/SDL/My Project/Resources.Designer.vb
index 9e3c7974..11b8f540 100644
--- a/SDL/My Project/Resources.Designer.vb
+++ b/SDL/My Project/Resources.Designer.vb
@@ -1134,6 +1134,26 @@ Namespace My.Resources
End Get
End Property
+ '''
+ ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
+ '''
+ Friend ReadOnly Property KVI_report() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("KVI_report", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
+ '''
+ Friend ReadOnly Property KVI_report_general() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("KVI_report_general", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
'''
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''
diff --git a/SDL/My Project/Resources.resx b/SDL/My Project/Resources.resx
index 4593efdf..dbff307c 100644
--- a/SDL/My Project/Resources.resx
+++ b/SDL/My Project/Resources.resx
@@ -976,4 +976,10 @@
..\Resources\VERAG_CBAM_Report_Template.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ ..\Resources\KVI_report.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\KVI_report_general.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/SDL/Resources/KVI_report.xlsx b/SDL/Resources/KVI_report.xlsx
new file mode 100644
index 00000000..1f276e66
Binary files /dev/null and b/SDL/Resources/KVI_report.xlsx differ
diff --git a/SDL/Resources/KVI_report_general.xlsx b/SDL/Resources/KVI_report_general.xlsx
new file mode 100644
index 00000000..8498e850
Binary files /dev/null and b/SDL/Resources/KVI_report_general.xlsx differ
diff --git a/SDL/Resources/RG_ZF_NEW.xlsx b/SDL/Resources/RG_ZF_NEW.xlsx
index b753d892..a3b66a3d 100644
Binary files a/SDL/Resources/RG_ZF_NEW.xlsx and b/SDL/Resources/RG_ZF_NEW.xlsx differ
diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj
index e808055c..47ba8bbd 100644
--- a/SDL/SDL.vbproj
+++ b/SDL/SDL.vbproj
@@ -4971,6 +4971,8 @@
+
+
Always
diff --git a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.Designer.vb b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.Designer.vb
index d70292d7..41baef2e 100644
--- a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.Designer.vb
+++ b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.Designer.vb
@@ -64,6 +64,7 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.dgvLKW = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
Me.pnlOpt = New System.Windows.Forms.Panel()
Me.Panel3 = New System.Windows.Forms.Panel()
+ Me.Button2 = New System.Windows.Forms.Button()
Me.cbxSpedBerichtBar = New System.Windows.Forms.CheckBox()
Me.Label31 = New System.Windows.Forms.Label()
Me.Button8 = New System.Windows.Forms.Button()
@@ -93,6 +94,7 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.cboHandlingssatz = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
Me.KundenauswertungenToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
+ Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem()
Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ZFSteyrZeitraumAuswählenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
@@ -209,7 +211,6 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.Label45 = New System.Windows.Forms.Label()
Me.cboFilialeHandling = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.SplitContainer = New System.Windows.Forms.SplitContainer()
- Me.Button2 = New System.Windows.Forms.Button()
Me.cntxtCntxtSpeditionsbuch.SuspendLayout()
Me.pnlRechts.SuspendLayout()
CType(Me.DataGridView, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -802,6 +803,19 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.Panel3.Size = New System.Drawing.Size(386, 186)
Me.Panel3.TabIndex = 95
'
+ 'Button2
+ '
+ Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat
+ Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
+ Me.Button2.Location = New System.Drawing.Point(308, 159)
+ Me.Button2.Margin = New System.Windows.Forms.Padding(0)
+ Me.Button2.Name = "Button2"
+ Me.Button2.Size = New System.Drawing.Size(62, 25)
+ Me.Button2.TabIndex = 93
+ Me.Button2.Text = "Jahr"
+ Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ Me.Button2.UseVisualStyleBackColor = True
+ '
'cbxSpedBerichtBar
'
Me.cbxSpedBerichtBar.AutoSize = True
@@ -1172,25 +1186,32 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.KundenauswertungenToolStripMenuItem1})
Me.MenuStrip1.Location = New System.Drawing.Point(322, 156)
Me.MenuStrip1.Name = "MenuStrip1"
- Me.MenuStrip1.Size = New System.Drawing.Size(163, 27)
+ Me.MenuStrip1.Size = New System.Drawing.Size(283, 27)
Me.MenuStrip1.TabIndex = 89
Me.MenuStrip1.Text = "Kundenauswertungen"
'
'KundenauswertungenToolStripMenuItem1
'
Me.KundenauswertungenToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
- Me.KundenauswertungenToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem, Me.ZFSteyrZeitraumAuswählenToolStripMenuItem, Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem, Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem})
+ Me.KundenauswertungenToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem2, Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem, Me.ZFSteyrZeitraumAuswählenToolStripMenuItem, Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem, Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem})
Me.KundenauswertungenToolStripMenuItem1.Font = New System.Drawing.Font("Segoe UI", 10.0!)
Me.KundenauswertungenToolStripMenuItem1.ForeColor = System.Drawing.Color.White
Me.KundenauswertungenToolStripMenuItem1.Name = "KundenauswertungenToolStripMenuItem1"
Me.KundenauswertungenToolStripMenuItem1.Size = New System.Drawing.Size(155, 23)
Me.KundenauswertungenToolStripMenuItem1.Text = "Kundenauswertungen"
'
+ 'ToolStripMenuItem2
+ '
+ Me.ToolStripMenuItem2.Image = CType(resources.GetObject("ToolStripMenuItem2.Image"), System.Drawing.Image)
+ Me.ToolStripMenuItem2.Name = "ToolStripMenuItem2"
+ Me.ToolStripMenuItem2.Size = New System.Drawing.Size(316, 30)
+ Me.ToolStripMenuItem2.Text = "Kanadevia (Zeitraum auswählen)"
+ '
'ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem
'
Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Image = CType(resources.GetObject("ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Image"), System.Drawing.Image)
Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Name = "ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem"
- Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(308, 24)
+ Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(316, 30)
Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Text = "ZF Passau (Zeitraum auswählen)"
Me.ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Visible = False
'
@@ -1198,14 +1219,14 @@ Partial Class usrCntlSpeditionsBuchSuche
'
Me.ZFSteyrZeitraumAuswählenToolStripMenuItem.Image = Global.SDL.My.Resources.Resources.Excel_logo
Me.ZFSteyrZeitraumAuswählenToolStripMenuItem.Name = "ZFSteyrZeitraumAuswählenToolStripMenuItem"
- Me.ZFSteyrZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(308, 24)
+ Me.ZFSteyrZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(316, 30)
Me.ZFSteyrZeitraumAuswählenToolStripMenuItem.Text = "ZF Steyr (Zeitraum auswählen)"
'
'ZFThyrnauZeitraumAuswählenToolStripMenuItem
'
Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem.Image = Global.SDL.My.Resources.Resources.Excel_logo
Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem.Name = "ZFThyrnauZeitraumAuswählenToolStripMenuItem"
- Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(308, 24)
+ Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(316, 30)
Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem.Text = "ZF Thyrnau (Zeitraum auswählen)"
Me.ZFThyrnauZeitraumAuswählenToolStripMenuItem.Visible = False
'
@@ -1213,7 +1234,7 @@ Partial Class usrCntlSpeditionsBuchSuche
'
Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem.Image = Global.SDL.My.Resources.Resources.Excel_logo
Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem.Name = "AuswertungDiversZeitraumAuswählenToolStripMenuItem"
- Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(308, 24)
+ Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem.Size = New System.Drawing.Size(316, 30)
Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem.Text = "Flender Bocholt (Zeitraum auswählen)"
Me.AuswertungDiversZeitraumAuswählenToolStripMenuItem.Visible = False
'
@@ -2902,19 +2923,6 @@ Partial Class usrCntlSpeditionsBuchSuche
Me.SplitContainer.SplitterWidth = 2
Me.SplitContainer.TabIndex = 3
'
- 'Button2
- '
- Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.Button2.Location = New System.Drawing.Point(308, 159)
- Me.Button2.Margin = New System.Windows.Forms.Padding(0)
- Me.Button2.Name = "Button2"
- Me.Button2.Size = New System.Drawing.Size(62, 25)
- Me.Button2.TabIndex = 93
- Me.Button2.Text = "Jahr"
- Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
- Me.Button2.UseVisualStyleBackColor = True
- '
'usrCntlSpeditionsBuchSuche
'
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
@@ -3143,4 +3151,5 @@ Partial Class usrCntlSpeditionsBuchSuche
Friend WithEvents ToolStripMenuItem19 As ToolStripMenuItem
Friend WithEvents ToolStripMenuItem1 As ToolStripMenuItem
Friend WithEvents Button2 As Button
+ Friend WithEvents ToolStripMenuItem2 As ToolStripMenuItem
End Class
diff --git a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.resx b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.resx
index 565489a3..34a80e24 100644
--- a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.resx
+++ b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.resx
@@ -127,6 +127,89 @@
431, 17
+
+
+ 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
+ AElFTkSuQmCC
+
+
iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
diff --git a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb
index d02e6ce2..6978cc3d 100644
--- a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb
+++ b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb
@@ -3174,5 +3174,297 @@ Public Class usrCntlSpeditionsBuchSuche
Me.Cursor = Cursors.Default
End Sub
+ Private Sub ToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem2.Click
+ lblKdAusFortschritt.Text = "lädt..."
+ Me.Cursor = Cursors.WaitCursor
+ Try
+ Dim kdnrsrch = 770931
+
+
+ Dim dt As DataTable = SQL.loadDgvBySql("SELECT CAST([FilialenNr] as varchar) + '/' + CAST([AbfertigungsNr] as varchar) Abfertigungsnummer
+ ,cast([Abfertigungsdatum] as date)Abfertigungsdatum
+ ,Absender,Empfänger
+ ,Rechnungsbetrag Betrag
+ ,BelegNr
+ ,[FilialenNr],[AbfertigungsNr],Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung,Speditionsbuch.Zollsystem_Land,isnull(KdAuftragsNr,'')KdAuftragsNr
+ FROM Speditionsbuch INNER JOIN [Abfertigungsarten] ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
+ where (EmpfängerKundenNr IN (" & kdnrsrch & ") OR VermittlerKundenNr IN (" & kdnrsrch & ")) and Abfertigungsdatum BETWEEN '" & txtAbfertDat.Text & "' AND '" & txtAbfertDatBis.Text & "' And isAbfertigung =1 ", "FMZOLL") 'Speditionsbuch.Abfertigungsart IN (1,3,29,38,66,46,47,37,39)
+
+ Dim Path = ""
+ If dt IsNot Nothing And dt.Rows.Count > 0 Then
+
+
+ Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\"
+ If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
+ My.Computer.FileSystem.CreateDirectory(sPath)
+ End If
+
+
+ Dim exclApp As Object 'as Application
+ Dim Datei As Object 'as WorkBook
+ Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet
+ exclApp = CreateObject("Excel.Application")
+
+ If cbxDetailbericht.Checked Then
+
+ With exclApp
+ .Visible = False
+
+ Try
+ Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
+ While System.IO.File.Exists(Path)
+ Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
+ End While
+ My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.KVI_report, False)
+ Catch ex As System.Exception
+ ' MsgBox(ex.Message)
+ MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
+ Me.Cursor = Cursors.Default
+
+ Exit Sub
+ End Try
+
+ Datei = .Workbooks.Open(Path) 'Anpassen
+ Blatt = Datei.Worksheets(1) 'Anpassen
+
+ 'Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
+
+
+ Dim cnt = 2
+ For Each r In dt.Rows
+ Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
+ Try
+ Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
+ If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
+
+ If ZOLLANMELDUNG.dtWARENPOS.Rows.Count > 0 Then
+
+ Dim rowcounter As Integer = 0
+
+ For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows
+
+ Dim ZollInProzent As Double = 0
+ If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
+ ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
+ End If
+
+ Dim KdAtrNr = r("KDAuftragsNr")
+ If kdnrsrch = 770931 Then ' Sonderfall Kanadevia
+ If KdAtrNr.ToString.Contains("/") Then
+ KdAtrNr = KdAtrNr.ToString.Split("/")(0) 'nur vorderer Teil nehmen
+ End If
+ End If
+
+ Blatt.Range("A" & cnt).Value = cnt - 1
+ Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
+ Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
+ Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
+ Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
+ Blatt.Range("F" & cnt).Value = KdAtrNr
+ Blatt.Range("G" & cnt).Value = r("BelegNr")
+ Blatt.Range("H" & cnt).Value = row.Item("PosNr")
+ Blatt.Range("I" & cnt).Value = row.Item("WarenNr")
+ Blatt.Range("J" & cnt).Value = "-"
+ Blatt.Range("K" & cnt).Value = row.Item("WarenBez")
+ Blatt.Range("L" & cnt).Value = ""
+ Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
+ Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
+ Blatt.Range("O" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
+ Blatt.Range("P" & cnt).Value = ""
+ Blatt.Range("Q" & cnt).Value = row.Item("Netto")
+ Blatt.Range("R" & cnt).Value = row.Item("PosWert")
+ Blatt.Range("S" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_EUST, "")
+ Blatt.Range("T" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_ZOLL, "")
+ Blatt.Range("U" & cnt).Value = IIf(rowcounter = 0, ZollInProzent.ToString("N2") & " %", "")
+ Blatt.Range("V" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
+ Blatt.Range("W" & cnt).Value = ZOLLANMELDUNG.Absender
+ Blatt.Range("X" & cnt).Value = row.Item("Herkunft")
+ Blatt.Range("Y" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Length >= 2, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(ZOLLANMELDUNG.VerBestLandZst.ToString.Length - 2, 2), "")
+ Blatt.Range("z" & cnt).Value = ZOLLANMELDUNG.Incoterms_code
+ Blatt.Range("AA" & cnt).Value = ZOLLANMELDUNG.Incoterms_ort
+ Blatt.Range("AB" & cnt).Value = row.Item("Verfahren")
+ Blatt.Range("AC" & cnt).Value = row.Item("Preferenz")
+ Blatt.Range("AD" & cnt).Value = IIf(row.Item("isCBAM"), "Y", "N")
+
+ If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("G" & cnt).Value = "" Then
+ Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.ATCMRN
+ End If
+
+ cnt += 1
+ rowcounter += 1
+ Next
+ Else
+ Dim ZollInProzent As Double = 0
+ If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
+ ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
+ End If
+
+
+
+ Dim KdAtrNr = r("KDAuftragsNr")
+ If kdnrsrch = 770931 Then ' Sonderfall Kanadevia
+ If KdAtrNr.ToString.Contains("/") Then
+ KdAtrNr = KdAtrNr.ToString.Split("/")(0) 'nur vorderer Teil nehmen
+ End If
+ End If
+
+
+ Blatt.Range("A" & cnt).Value = cnt - 1
+ Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
+ Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
+ Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
+ Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
+ Blatt.Range("F" & cnt).Value = KdAtrNr
+ Blatt.Range("G" & cnt).Value = r("BelegNr")
+ Blatt.Range("H" & cnt).Value = ""
+ Blatt.Range("I" & cnt).Value = ""
+ Blatt.Range("J" & cnt).Value = "-"
+ Blatt.Range("K" & cnt).Value = ""
+ Blatt.Range("L" & cnt).Value = ""
+ Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
+ Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
+ Blatt.Range("O" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
+ Blatt.Range("P" & cnt).Value = ""
+ Blatt.Range("Q" & cnt).Value = ""
+ Blatt.Range("R" & cnt).Value = ""
+ Blatt.Range("S" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST
+ Blatt.Range("T" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
+ Blatt.Range("U" & cnt).Value = ZollInProzent.ToString("N2") & " %"
+ Blatt.Range("V" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
+ Blatt.Range("W" & cnt).Value = ZOLLANMELDUNG.Absender
+ Blatt.Range("X" & cnt).Value = ""
+ Blatt.Range("Y" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Length >= 2, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(ZOLLANMELDUNG.VerBestLandZst.ToString.Length - 2, 2), "")
+ Blatt.Range("Z" & cnt).Value = ZOLLANMELDUNG.Incoterms_code
+ Blatt.Range("AA" & cnt).Value = ZOLLANMELDUNG.Incoterms_ort
+ Blatt.Range("AB" & cnt).Value = ""
+ Blatt.Range("AC" & cnt).Value = ""
+ Blatt.Range("AD" & cnt).Value = ""
+
+
+ If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("G" & cnt).Value = "" Then
+ Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.ATCMRN
+ End If
+
+ End If
+ End If
+
+ cnt += 1
+
+ Catch ex As Exception
+ MsgBox(ex.Message & ex.StackTrace)
+ End Try
+ lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
+ Me.Refresh()
+
+ Next
+ Datei.Save
+
+ If False Then
+ Blatt.PrintOutEx()
+ Else
+ 'Process.Start(Path)
+ .Visible = True
+
+ End If
+ End With
+
+ Else
+
+
+ With exclApp
+ .Visible = False
+
+ Try
+ Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
+ While System.IO.File.Exists(Path)
+ Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
+ End While
+ My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.KVI_report_general, False)
+ Catch ex As System.Exception
+ ' MsgBox(ex.Message)
+ MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
+ Me.Cursor = Cursors.Default
+
+ Exit Sub
+ End Try
+
+ Datei = .Workbooks.Open(Path) 'Anpassen
+ Blatt = Datei.Worksheets(1) 'Anpassen
+
+ Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
+
+ Dim cnt = 3
+ For Each r In dt.Rows
+ Blatt.Range("A" & cnt).Value = cnt - 2
+ Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer")
+ ' Blatt.Range("C" & cnt).Value = r("RechnungsNr")
+ Blatt.Range("C" & cnt).Value = r("Abfertigungsdatum")
+ Blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung")
+ Blatt.Range("E" & cnt).Value = r("Absender")
+ Blatt.Range("F" & cnt).Value = r("Empfänger")
+ Blatt.Range("H" & cnt).Value = "" 'r("Betrag")
+
+
+ Dim KdAtrNr = r("KDAuftragsNr")
+ If kdnrsrch = 770931 Then ' Sonderfall Kanadevia
+ If KdAtrNr.ToString.Contains("/") Then
+ KdAtrNr = KdAtrNr.ToString.Split("/")(0) 'nur vorderer Teil nehmen
+ End If
+ End If
+
+
+ Blatt.Range("G" & cnt).Value = KdAtrNr
+
+ Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
+ Try
+ Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
+ If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
+ Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.RechnungspreisohneWahrung
+ Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine)
+ Blatt.Range("K" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
+ Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.ANZ_POS
+
+
+ '----------------------------------NEW
+
+ Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Anmelder
+ Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Warenbezeichung
+ Blatt.Range("O" & cnt).Value = ZOLLANMELDUNG.VerBestLandZst
+ '----------------------------------
+
+
+ If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then
+ Blatt.Range("J" & cnt).Value = ZOLLANMELDUNG.ATCMRN
+ End If
+ End If
+
+ Catch ex As Exception
+ MsgBox(ex.Message & ex.StackTrace)
+ End Try
+ lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
+ Me.Refresh()
+ cnt += 1
+ Next
+ Datei.Save
+
+ If False Then
+ Blatt.PrintOutEx()
+ Else
+ 'Process.Start(Path)
+ .Visible = True
+
+ End If
+ End With
+
+ End If
+
+ End If
+ lblKdAusFortschritt.Text = "fertig"
+ Catch ex As Exception
+ MsgBox(ex.Message & ex.StackTrace)
+ lblKdAusFortschritt.Text = "Fehler"
+ End Try
+ Me.Cursor = Cursors.Default
+ End Sub
End Class
diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb
index 22781010..32ec1a71 100644
--- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb
+++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb
@@ -120,6 +120,7 @@ Public Class usrCntlATLAS_EXGestellung
Next
If Not err Then
If cbxNCTS.Checked Then
+ 'Es wird gleich eine NCTS Nachricht erstellt, die BEfüllung erfolge nach Verarbeitung der EXG -> bei der letzten wird der NCTS Datensatz gesendet
Dim NCTS_OUT = usrCntlATLAS_NCTS004.genNCTSfromStammref(Me, FIRMA_DY, AVISO, SENDUNG, "")
NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Clear()
NCTS_OUT.DELETE_HouseConsignment()
@@ -132,9 +133,8 @@ Public Class usrCntlATLAS_EXGestellung
MsgBox(NCTS_OUT.ncts_dyaAnmID)
cDakosyEXG.UPDATE_FillNCTS_ID(exgId, NCTS_OUT.ncts_dyaAnmID)
Next
-
-
End If
+
'Dim BezugsNr = ""
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb
index edcd09a3..cf4db2ed 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb
@@ -1158,7 +1158,7 @@ Public Class SQL
If dt.Rows.Count > 1 Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW Then
' MsgBox("Die EORI-Nr. " & eori & " ist in " & dt.Rows.Count & " Kundenstammsätzen eingetragen.", vbCritical)
- VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Die EORI-Nr. " & eori & " ist in " & dt.Rows.Count & " Kundenstammsätzen eingetragen.", "", System.Reflection.MethodInfo.GetCurrentMethod.Name)
+ ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Die EORI-Nr. " & eori & " ist in " & dt.Rows.Count & " Kundenstammsätzen eingetragen.", "", System.Reflection.MethodInfo.GetCurrentMethod.Name)
End If
End If
End If
@@ -1411,7 +1411,7 @@ Public Class SQL
If dt.Rows.Count > 1 Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW Then
' MsgBox("Die Zollnummer " & ZollNr & " ist in " & dt.Rows.Count & " Kundenstammsätzen eingetragen.", vbCritical)
- VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Die Zollnummer " & ZollNr & " ist in " & dt.Rows.Count & " Kundenstammsätzen eingetragen.", "", System.Reflection.MethodInfo.GetCurrentMethod.Name)
+ ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Die Zollnummer " & ZollNr & " ist in " & dt.Rows.Count & " Kundenstammsätzen eingetragen.", "", System.Reflection.MethodInfo.GetCurrentMethod.Name)
End If
End If
s = dt.Rows(0).Item(0)
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cGreendeal_CBAM_Trn.vb b/VERAG_PROG_ALLGEMEIN/Classes/cGreendeal_CBAM_Trn.vb
index e0ddfacd..e711160e 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/cGreendeal_CBAM_Trn.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/cGreendeal_CBAM_Trn.vb
@@ -211,6 +211,29 @@ Public Class cGreendeal_CBAM_Trn
End Function
+ Public Shared Function isCBAMTnr(TNR As String, Optional LIST As List(Of String) = Nothing) As Boolean
+
+ If LIST Is Nothing Then
+ If VERAG_PROG_ALLGEMEIN.cAllgemein.CBAM_LIST Is Nothing Then VERAG_PROG_ALLGEMEIN.cAllgemein.CBAM_LIST = cGreendeal_CBAM_Trn.LoadCBAMTariffNumbers
+ LIST = VERAG_PROG_ALLGEMEIN.cAllgemein.CBAM_LIST
+ End If
+
+ If TNR Is Nothing Then Return False
+ If String.IsNullOrWhiteSpace(TNR) Then Return False
+
+
+ For Each cbamTnr As String In LIST
+ If Not String.IsNullOrWhiteSpace(cbamTnr) Then
+ If TNR.StartsWith(cbamTnr.Replace("%", "").Trim) Then
+ Return True
+ End If
+ End If
+ Next
+
+ Return False
+
+ End Function
+
Public Shared Function LoadCBAMTariffNumbers(Optional onlyActive As Boolean = True,
Optional includeExclusions As Boolean = False) _
As List(Of String)
diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/NCTS-P5/cNCTS_FREMD.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/NCTS-P5/cNCTS_FREMD.vb
index 92d3716b..ba8e66df 100644
--- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/NCTS-P5/cNCTS_FREMD.vb
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/NCTS-P5/cNCTS_FREMD.vb
@@ -345,6 +345,7 @@ Public Class cNCTS_FREMD
Property ncts_Eroeffnung As Object = Nothing
Property ncts_Ankunft As Object = Nothing
Property ncts_Erledigung As Object = Nothing
+ Property ncts_statusFremd As Object = Nothing
Property ncts_GUARANTEE As New List(Of cNCTS_FREMD_Guarantee)
@@ -708,6 +709,7 @@ Public Class cNCTS_FREMD
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ncts_Eroeffnung", ncts_Eroeffnung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ncts_Ankunft", ncts_Ankunft))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ncts_Erledigung", ncts_Erledigung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ncts_statusFremd", ncts_statusFremd))
diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb
index b95b0000..cf731e27 100644
--- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb
@@ -83,6 +83,7 @@ Public Class cRelayHub
Public Class cRelayHubAdditionalSettings
Public Property combineOptions As List(Of String)
+ Public Property combineItemsPriorityDocumentType As String
End Class
Public Class cRelayHubJobOrderRequest
@@ -292,18 +293,29 @@ Public Class cRelayHub
' AdditionalSettings -> combineOptions: nur erlaubte Keys, distinct, lower-case
Dim allowed As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {
- "description", "commodity_code", "country_of_origin", "unit_type"
- }
+ "description", "commodity_code", "country_of_origin", "unit_type"
+ }
- If req.additionalSettings IsNot Nothing AndAlso req.additionalSettings.combineOptions IsNot Nothing Then
- Dim cleaned = req.additionalSettings.combineOptions.
- Where(Function(o) Not String.IsNullOrWhiteSpace(o)).
- Select(Function(o) o.Trim().ToLowerInvariant()).
- Where(Function(o) allowed.Contains(o)).
- Distinct().
- ToList()
+ If req.additionalSettings IsNot Nothing Then
+
+ If req.additionalSettings.combineOptions IsNot Nothing Then
+ Dim cleaned = req.additionalSettings.combineOptions.
+ Where(Function(o) Not String.IsNullOrWhiteSpace(o)).
+ Select(Function(o) o.Trim().ToLowerInvariant()).
+ Where(Function(o) allowed.Contains(o)).
+ Distinct().
+ ToList()
+
+ req.additionalSettings.combineOptions = cleaned
+ End If
+
+ req.additionalSettings.combineItemsPriorityDocumentType =
+ If(req.additionalSettings.combineItemsPriorityDocumentType, "").Trim()
+
+ If req.additionalSettings.combineItemsPriorityDocumentType = "" Then
+ req.additionalSettings.combineItemsPriorityDocumentType = Nothing
+ End If
- req.additionalSettings.combineOptions = cleaned
End If
Return req
diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/Modaltrans/cModalTransNCTS.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/Modaltrans/cModalTransNCTS.vb
index a4f5d47c..701c93e6 100644
--- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/Modaltrans/cModalTransNCTS.vb
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/Modaltrans/cModalTransNCTS.vb
@@ -1,4 +1,5 @@
-Imports Newtonsoft.Json
+Imports com.sun.tools.javac.code.Symbol
+Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Public Class cModalTransNCTS
@@ -154,6 +155,166 @@ Public Class cModalTransNCTS
End Class
+
+
+ Public Class cMT_NCTS_GET_DeclarationResponse
+ Public Property transaction_id As Integer?
+ Public Property reference As String
+ Public Property doc_type As String
+ Public Property doc_date As String
+ Public Property vehicle_code As String
+ Public Property vehicle_coun As String
+ Public Property trailer_code As String
+ Public Property trailer_coun As String
+ Public Property border_cross_vehicle As String
+ Public Property container As String
+ Public Property seal_info As String
+ Public Property security As Boolean?
+ Public Property tanker As Boolean?
+ Public Property is_aeo As Boolean?
+ Public Property aeo_location As String
+ Public Property transit_date As String
+ Public Property departure_custom_code As String
+ Public Property dispatch_country_id As String
+ Public Property load_place As String
+ Public Property goods_location As String
+ Public Property arrival_custom_code As String
+ Public Property destination_country_id As String
+ Public Property unload_place As String
+ Public Property border_custom_code As String
+ Public Property transit_customs_codes As String
+ Public Property transit_countries_codes As String
+ Public Property carrier_name As String
+ Public Property carrier_address As String
+ Public Property carrier_postcode As String
+ Public Property carrier_city As String
+ Public Property carrier_country_id As String
+ Public Property carrier_taxno As String
+ Public Property carrier_eori_code As String
+ Public Property custom_line As String
+ Public Property custom_staff_name As String
+ Public Property trans_method As String
+ Public Property roro_operator_code As String
+ Public Property guarantee_price As Decimal?
+ Public Property guarantee_curr As String
+ Public Property status As String
+ Public Property lrn_no As String
+ Public Property lrn As String
+ Public Property mrn As String
+ Public Property mrn_no As String
+ Public Property lrn_url As String
+ Public Property manifesto_price As Decimal?
+ Public Property manifesto_curr As String
+ Public Property position_no As String
+ Public Property remote_ref As String
+ Public Property notes As String
+ Public Property letter_grn As String
+ Public Property guarantor_name As String
+ Public Property guarantor_city As String
+ Public Property guarantor_taxno As String
+ Public Property guarantor_address As String
+ Public Property guarantor_postcode As String
+ Public Property guarantor_eori_code As String
+ Public Property guarantor_country_id As String
+ Public Property mrn_date As String
+ Public Property stamp_duty As String
+ Public Property ncts5_checker As Boolean?
+ Public Property released_at As String
+ Public Property goods_attributes As List(Of cMT_NCTS_GoodsAttribute)
+
+ Public Class cMT_NCTS_GoodsAttribute
+ Public Property line_no As Integer?
+ Public Property gtip_code As String
+ Public Property commodity As String
+ Public Property brut_wg As Decimal?
+ Public Property net_wg As Decimal?
+ Public Property invoice_amount As Decimal?
+ Public Property invoice_curr As String
+ Public Property exp_customs_type As String
+ Public Property exp_customs_partial As Boolean?
+ Public Property exp_customs_no As String
+ Public Property manifesto_type As String
+ Public Property dep_country_id As String
+ Public Property arv_country_id As String
+ Public Property sender_taxno As String
+ Public Property sender_name As String
+ Public Property sender_address As String
+ Public Property sender_postcode As String
+ Public Property sender_city As String
+ Public Property sender_country_id As String
+ Public Property sender_eori_code As String
+ Public Property consignee_taxno As String
+ Public Property consignee_name As String
+ Public Property consignee_address As String
+ Public Property consignee_postcode As String
+ Public Property consignee_city As String
+ Public Property consignee_country_id As String
+ Public Property consignee_eori_code As String
+ Public Property packs_attributes As List(Of cMT_NCTS_PackAttribute)
+ Public Property documents_attributes As List(Of cMT_NCTS_DocumentAttribute)
+ Public Property produced_documents_attributes As List(Of cMT_NCTS_ProducedDocumentAttribute)
+ End Class
+
+ Public Class cMT_NCTS_PackAttribute
+ Public Property pack_type As String
+ Public Property pack_count As Integer?
+ Public Property notes As String
+ End Class
+
+ Public Class cMT_NCTS_DocumentAttribute
+ Public Property doc_type As String
+ Public Property doc_no As String
+ Public Property pre_post As String
+ End Class
+
+ Public Class cMT_NCTS_ProducedDocumentAttribute
+ Public Property code As String
+ Public Property reference As String
+ Public Property status As String
+ Public Property reason As String
+ Public Property quantity As Decimal?
+ End Class
+
+ End Class
+
+
+
+ Public Class cMT_NCTS_GET_TimelineResponse
+ Public Property transaction_id As Integer?
+ Public Property reference As String
+ Public Property doc_type As String
+ Public Property doc_date As String
+ Public Property transit_date As String
+ Public Property status As String
+ Public Property lrn As String
+ Public Property mrn As String
+ Public Property manifesto_price As Decimal?
+ Public Property manifesto_curr As String
+ Public Property guarantee_price As Decimal?
+ Public Property guarantee_diff As Decimal?
+ Public Property guarantee_curr As String
+ Public Property seal_no As String
+ Public Property lrn_date As String
+ Public Property mrn_date As String
+ Public Property manifesto_closed_date As String
+ Public Property vahicle_arrived_date As String
+ Public Property custom_staff_name As String
+ Public Property custom_line As String
+ Public Property timelines As List(Of cMT_NCTS_GET_TimelineItem)
+ Public Class cMT_NCTS_GET_TimelineItem
+ Public Property timeline_id As String
+ Public Property status_date As String
+ Public Property status_code As String
+ Public Property notes As String
+ Public Property source As String
+ Public Property country_id As String
+ End Class
+ End Class
+
+
+
+
+
Public Class cMT_NCTS_ApiClient
Private http As New Chilkat.Http()
Private authToken As String
@@ -389,31 +550,28 @@ Public Class cModalTransNCTS
Return result
End Function
- ' GET Declaration by ID / MRN / LRN / Ref
- Public Function GetNCTSDeclaration(identifier As String) As cMT_NCTS_DeclarationRequest
+
+ Public Function GetNCTSDeclarationByMRN(mrn As String) As cMT_NCTS_GET_DeclarationResponse
If Not cModalTransBase.Authenticate(authToken) Then
Console.WriteLine("❌ Authentifizierung fehlgeschlagen.")
Return Nothing
End If
http.SetRequestHeader("Authorization", "Bearer " & authToken)
-
- Dim url = $"{cModalTransBase.baseUrl}/api/v1/ncts_declarations/{identifier}"
+ Dim url = $"{cModalTransBase.baseUrl}/api/v1/ncts_declarations/{mrn}"
Dim resp = http.QuickGetObj(url)
-
If resp Is Nothing Then
Console.WriteLine("❌ Keine Verbindung: " & http.LastErrorText)
Return Nothing
End If
-
Select Case resp.StatusCode
Case 200
Try
- Dim json = JsonConvert.DeserializeObject(Of JObject)(resp.BodyStr)
- Dim data = json.SelectToken("declaration_data")
- Console.WriteLine("✅ NCTS-Anmeldung erfolgreich abgerufen.")
- Return data.ToObject(Of cMT_NCTS_DeclarationRequest)()
+ Dim result = JsonConvert.DeserializeObject(Of cMT_NCTS_GET_DeclarationResponse)(resp.BodyStr)
+ Console.WriteLine("✅ NCTS-Anmeldung erfolgreich abgerufen (MRN).")
+ Return result
Catch ex As Exception
Console.WriteLine("❌ Fehler beim Parsen: " & ex.Message)
+ Console.WriteLine(resp.BodyStr)
End Try
Case 401
Console.WriteLine("❌ Zugriff verweigert (401)")
@@ -422,12 +580,160 @@ Public Class cModalTransNCTS
Case Else
Console.WriteLine($"❌ Fehler ({resp.StatusCode}): {resp.BodyStr}")
End Select
-
Return Nothing
End Function
+ Public Function ConvertModaltransToNCTSFremd(nctsTmp As cMT_NCTS_GET_DeclarationResponse,
+ Optional OverrideNCTSFin As Boolean = False,
+ Optional PartnerSystem As String = "MODALTRANS") As VERAG_PROG_ALLGEMEIN.cNCTS_FREMD
+ If nctsTmp Is Nothing Then Return Nothing
+ If String.IsNullOrWhiteSpace(If(nctsTmp.mrn, "")) Then Return Nothing
+
+ Dim nctsFremd As VERAG_PROG_ALLGEMEIN.cNCTS_FREMD = VERAG_PROG_ALLGEMEIN.cNCTS_FREMD.LOADByMRN(nctsTmp.mrn, True)
+ If nctsFremd Is Nothing Then nctsFremd = New VERAG_PROG_ALLGEMEIN.cNCTS_FREMD
+
+ If Not OverrideNCTSFin Then
+ If If(nctsFremd.ncts_Status, 0) = 60 Then
+ Return nctsFremd
+ End If
+ End If
+
+ nctsFremd.ncts_Partnersystem = PartnerSystem
+ nctsFremd.ncts_MRN = nctsTmp.mrn
+ nctsFremd.ncts_ObjectName = If(If(nctsTmp.lrn, "") <> "", nctsTmp.lrn, nctsTmp.reference)
+ nctsFremd.ncts_Trans_Referenz = nctsTmp.reference
+ nctsFremd.ncts_Declarationtype = nctsTmp.doc_type
+ nctsFremd.ncts_TransitDeclarationType = nctsTmp.doc_type
+ nctsFremd.ncts_statusFremd = nctsTmp.status
+
+
+ nctsFremd.ncts_CustomsOfficeOfDeparture = nctsTmp.departure_custom_code
+ nctsFremd.ncts_CustomsOfficeOfDestinationDeclared = nctsTmp.arrival_custom_code
+ nctsFremd.ncts_CustomsOfficeOfExitForTransitDeclared = nctsTmp.border_custom_code
+ nctsFremd.ncts_CountryOfDispatch = nctsTmp.dispatch_country_id
+
+ nctsFremd.ncts_CountryOfDestination = nctsTmp.destination_country_id
+
+ nctsFremd.ncts_PlaceOfLoading_Location = nctsTmp.load_place
+ nctsFremd.ncts_PlaceOfUnLoading_Location = nctsTmp.unload_place
+ nctsFremd.ncts_LocationOfGoods_AdditionalIdentifier = nctsTmp.goods_location
+ ' nctsFremd.ncts_ModeOfTransportAtTheBorder = nctsTmp.trans_method
+ ' nctsFremd.ncts_InlandModeOfTransport = nctsTmp.trans_method
+ 'nctsFremd.ncts_GrossMass = nctsTmp.
+
+ '''
+ nctsFremd.ncts_Consignor_Name = nctsTmp.carrier_name
+ nctsFremd.ncts_Carrier_AdressCode = Nothing
+ nctsFremd.ncts_Carrier_IdentificationNumber = nctsTmp.carrier_eori_code
+ nctsFremd.ncts_Carrier_ContactPerson_Name = nctsTmp.custom_staff_name
+ nctsFremd.ncts_Carrier_ContactPerson_EMailAddress = Nothing
+ nctsFremd.ncts_Carrier_ContactPerson_PhoneNumber = Nothing
+ nctsFremd.ncts_Consignee_Name = Nothing
+
+ nctsFremd.ncts_ActiveBorderTransportMeans_1_IdentificationNumber = nctsTmp.trailer_code
+ nctsFremd.ncts_ActiveBorderTransportMeans_1_Nationality = nctsTmp.trailer_coun
+ nctsFremd.ncts_DepartureTransportMeans_1_IdentificationNumber = nctsTmp.vehicle_code
+ nctsFremd.ncts_DepartureTransportMeans_1_Nationality = nctsTmp.vehicle_coun
+ nctsFremd.ncts_ContainerIndicator = nctsTmp.container
+ nctsFremd.ncts_Security = nctsTmp.security
+ nctsFremd.ncts_NachrichtenSenderTIN = Nothing
+ nctsFremd.ncts_NachrichtenSenderNLNR = Nothing
+ nctsFremd.ncts_NachrichtenempfaengerDST = Nothing
+ nctsFremd.ncts_Trans_DatumZeit = If(IsDate(nctsTmp.doc_date), CDate(nctsTmp.doc_date), Now)
+
+ If IsDate(nctsTmp.transit_date) Then
+ nctsFremd.ncts_Eroeffnung = CDate(nctsTmp.transit_date)
+ 'If If(nctsFremd.ncts_LimitDate, "").ToString = "" Then
+ ' nctsFremd.ncts_LimitDate = CDate(nctsTmp.limi).AddDays(10)
+ 'End If
+ ElseIf IsDate(nctsTmp.doc_date) Then
+ nctsFremd.ncts_Eroeffnung = CDate(nctsTmp.doc_date)
+ If If(nctsFremd.ncts_LimitDate, "").ToString = "" Then
+ nctsFremd.ncts_LimitDate = CDate(nctsTmp.doc_date).AddDays(10)
+ End If
+ End If
+
+
+ Dim statusNeu As Integer = 0
+
+ Select Case UCase(If(nctsTmp.status, ""))
+ Case "DRAFT", "SENT"
+ statusNeu = 10
+ Case "IN_USE", "MRN", "REL_TRA", "MRN_ALL", "MRN_NOTIFIED", "GUAINF", "CTR_DEC", "CTRINFDEP", "WRT_NOT", "MRN_OK", "TRUCK_RELEASED", "TRUCK_IS_READY"
+ statusNeu = 50
+ Case "ARR_ADV", "AT_ARRIVAL_POINT"
+ statusNeu = 53
+ If If(nctsFremd.ncts_Ankunft, "").ToString = "" Then
+
+ End If
+ Case "TRANSIT_CLOSE", "RELEASED", "COMPLETED"
+ statusNeu = 60
+ If If(nctsFremd.ncts_Ankunft, "").ToString = "" Then
+
+ End If
+ If If(nctsFremd.ncts_Erledigung, "").ToString = "" Then
+
+ End If
+ Case "CANCELLED"
+ statusNeu = 90
+
+ Case Else
+ statusNeu = If(IsNumeric(nctsFremd.ncts_Status), CInt(nctsFremd.ncts_Status), 0)
+ If statusNeu = 0 Then statusNeu = 50
+ End Select
+
+
+
+ nctsFremd.ncts_Status = statusNeu
+ nctsFremd.ncts_Status_KEWILL_Equivalent = statusNeu
+
+ nctsFremd.LOAD_Guarantee()
+ nctsFremd.ncts_GUARANTEE.Clear()
+
+ If nctsTmp.guarantee_price.HasValue AndAlso nctsTmp.guarantee_price.Value > 0 AndAlso If(nctsTmp.letter_grn, "") <> "" Then
+ Dim grt As New VERAG_PROG_ALLGEMEIN.cNCTS_FREMD_Guarantee
+ grt.nctsGRT_Type = Nothing
+ grt.nctsGRT_AccessCode = Nothing
+ grt.nctsGRT_GRN = nctsTmp.letter_grn
+ grt.nctsGRT_AmountToBeCoveredFremdWaehrung = nctsTmp.guarantee_price.Value
+ grt.nctsGRT_Currency = nctsTmp.guarantee_curr
+
+ Console.WriteLine("guarantee_curr:" & nctsTmp.guarantee_curr)
+
+
+
+ If grt.nctsGRT_AmountToBeCoveredFremdWaehrung IsNot Nothing Then
+ If If(grt.nctsGRT_Currency, "") <> "" AndAlso If(grt.nctsGRT_Currency, "") <> "EUR" Then
+ Dim betragEUR = VERAG_PROG_ALLGEMEIN.cEZB_Waehrungskurse.EXCHANGE_CURTOEUR(
+ grt.nctsGRT_AmountToBeCoveredFremdWaehrung,
+ grt.nctsGRT_Currency,
+ nctsFremd.ncts_Trans_DatumZeit.ToShortDateString
+ )
+ grt.nctsGRT_AmountToBeCovered = If(betragEUR > 0, betragEUR, grt.nctsGRT_AmountToBeCoveredFremdWaehrung)
+ Else
+ grt.nctsGRT_AmountToBeCovered = grt.nctsGRT_AmountToBeCoveredFremdWaehrung
+ End If
+ End If
+
+ nctsFremd.ncts_GUARANTEE.Add(grt)
+ End If
+
+
+ 'Status updaten:
+ If UpdateNCTSFremdStatusFromTimelines(nctsFremd.ncts_MRN, nctsFremd, False) Then
+ nctsFremd.SAVE_ALL()
+ End If
+
+
+
+
+
+ Return nctsFremd
+ End Function
+
+
' LIST all declarations
- Public Function GetNCTSDeclarations(Optional page As Integer = 1) As List(Of cMT_NCTS_DeclarationResponse)
+ Public Function GetNCTSDeclarations(fromDate As DateTime, Optional page As Integer = 1) As List(Of cMT_NCTS_DeclarationResponse)
Dim list As New List(Of cMT_NCTS_DeclarationResponse)()
If Not cModalTransBase.Authenticate(authToken) Then
@@ -436,38 +742,239 @@ Public Class cModalTransNCTS
End If
http.SetRequestHeader("Authorization", "Bearer " & authToken)
- Dim url = $"{cModalTransBase.baseUrl}/api/v1/ncts_declarations?page={page}"
- Dim resp = http.QuickGetObj(url)
+ Dim fromDateStr As String = fromDate.ToString("yyyy-MM-dd")
+ Dim url As String = cModalTransBase.baseUrl & "/api/v1/ncts_declarations?from_date=" & fromDateStr & "&page=" & page.ToString()
+
+ http.SetRequestHeader("Authorization", "Bearer " & authToken)
+ Dim resp As Chilkat.HttpResponse = http.QuickGetObj(url)
If resp Is Nothing Then
Console.WriteLine("❌ Keine Verbindung: " & http.LastErrorText)
Return list
End If
+
+ If resp Is Nothing Then
+ Console.WriteLine("❌ Keine Verbindung: " & http.LastErrorText)
+ Return list
+ End If
Select Case resp.StatusCode
Case 200
Try
- Dim json = JsonConvert.DeserializeObject(Of JObject)(resp.BodyStr)
- Dim data = json.SelectToken("data")
- If data IsNot Nothing Then
- list = data.ToObject(Of List(Of cMT_NCTS_DeclarationResponse))()
- Console.WriteLine("✅ Liste der NCTS-Anmeldungen erfolgreich abgerufen.")
+ Dim token As JToken = JToken.Parse(resp.BodyStr)
+ If TypeOf token Is JArray Then
+ list = token.ToObject(Of List(Of cMT_NCTS_DeclarationResponse))()
+ ElseIf TypeOf token Is JObject Then
+ Dim obj As JObject = CType(token, JObject)
+ Dim dataToken As JToken = obj.SelectToken("data")
+ If dataToken IsNot Nothing AndAlso TypeOf dataToken Is JArray Then
+ list = dataToken.ToObject(Of List(Of cMT_NCTS_DeclarationResponse))()
+ Else
+ Console.WriteLine("⚠️ Antwort ist ein Objekt, aber kein Array unter 'data' gefunden.")
+ End If
+ Else
+ Console.WriteLine("⚠️ Unbekanntes JSON-Format in der Listenantwort.")
End If
Catch ex As Exception
Console.WriteLine("❌ Fehler beim Parsen der Liste: " & ex.Message)
+ Console.WriteLine(resp.BodyStr)
End Try
Case 401
- Console.WriteLine("❌ Zugriff verweigert (401)")
+ Console.WriteLine("❌ Zugriff verweigert – bitte Authentifizierung prüfen.")
Case Else
- Console.WriteLine($"❌ Fehler ({resp.StatusCode}): {resp.BodyStr}")
+ Console.WriteLine("❌ Fehler (" & resp.StatusCode.ToString() & "): " & resp.BodyStr)
End Select
-
Return list
End Function
+
+ Public Function GetAllNCTSDeclarations(fromDate As DateTime) As List(Of cMT_NCTS_DeclarationResponse)
+ Dim allItems As New List(Of cMT_NCTS_DeclarationResponse)()
+ Dim currentPage As Integer = 1
+ Do
+ Dim pageItems As List(Of cMT_NCTS_DeclarationResponse) = GetNCTSDeclarations(fromDate, currentPage)
+ If pageItems Is Nothing OrElse pageItems.Count = 0 Then
+ Exit Do
+ End If
+ allItems.AddRange(pageItems)
+ Console.WriteLine("Seite " & currentPage.ToString() & ": " & pageItems.Count.ToString() & " Einträge geladen.")
+ currentPage += 1
+ Loop
+ Console.WriteLine("Gesamt geladen: " & allItems.Count.ToString() & " Einträge.")
+ Return allItems
+ End Function
+
+
+
+
+
+
+ Public Function GetNCTSDeclarationTimelinesByMRN(mrn As String) As cMT_NCTS_GET_TimelineResponse
+ If Not cModalTransBase.Authenticate(authToken) Then
+ Console.WriteLine("❌ Authentifizierung fehlgeschlagen.")
+ Return Nothing
+ End If
+ http.SetRequestHeader("Authorization", "Bearer " & authToken)
+ Dim url = $"{cModalTransBase.baseUrl}/api/v1/ncts_declarations/{mrn}/timelines"
+ Dim resp = http.QuickGetObj(url)
+ If resp Is Nothing Then
+ Console.WriteLine("❌ Keine Verbindung: " & http.LastErrorText)
+ Return Nothing
+ End If
+ Select Case resp.StatusCode
+ Case 200
+ Try
+ Dim result = JsonConvert.DeserializeObject(Of cMT_NCTS_GET_TimelineResponse)(resp.BodyStr)
+ Console.WriteLine("✅ NCTS-Timelines erfolgreich abgerufen.")
+ Return result
+ Catch ex As Exception
+ Console.WriteLine("❌ Fehler beim Parsen der Timeline-Antwort: " & ex.Message)
+ Console.WriteLine(resp.BodyStr)
+ End Try
+ Case 400
+ Console.WriteLine("⚠️ Ungültige Anfrage (400): " & resp.BodyStr)
+ Case 403
+ Console.WriteLine("❌ Zugriff verweigert (403): " & resp.BodyStr)
+ Case 404
+ Console.WriteLine("⚠️ Anmeldung nicht gefunden (404): " & resp.BodyStr)
+ Case Else
+ Console.WriteLine("❌ Fehler (" & resp.StatusCode.ToString() & "): " & resp.BodyStr)
+ End Select
+ Return Nothing
+ End Function
+
+
+ Public Function UpdateNCTSFremdStatusFromTimelines(mrn As String,
+ ByRef nctsFremd As VERAG_PROG_ALLGEMEIN.cNCTS_FREMD,
+ Optional OverrideNCTSFin As Boolean = False) As Boolean
+
+ Try
+
+ If String.IsNullOrWhiteSpace(mrn) Then Return False
+ If nctsFremd Is Nothing Then Return False
+ Console.WriteLine("Status Update before:" & If(nctsFremd.ncts_Status, ""))
+
+ If Not OverrideNCTSFin Then
+ If IsNumeric(nctsFremd.ncts_Status) AndAlso (CInt(nctsFremd.ncts_Status) = 60 Or CInt(nctsFremd.ncts_Status) = 90) Then
+ Return True
+ End If
+ End If
+
+ Dim tl = GetNCTSDeclarationTimelinesByMRN(mrn)
+ If tl Is Nothing Then Return False
+
+ nctsFremd.ncts_MRN = mrn
+
+ Dim dtMrn As DateTime?
+ Dim dtLrn As DateTime?
+ Dim dtArrived As DateTime?
+ Dim dtClosed As DateTime?
+
+ If IsDate(tl.mrn_date) Then dtMrn = CDate(tl.mrn_date)
+ If IsDate(tl.lrn_date) Then dtLrn = CDate(tl.lrn_date)
+ If IsDate(tl.vahicle_arrived_date) Then dtArrived = CDate(tl.vahicle_arrived_date)
+ If IsDate(tl.manifesto_closed_date) Then dtClosed = CDate(tl.manifesto_closed_date)
+
+ If dtMrn.HasValue Then
+ nctsFremd.ncts_Eroeffnung = dtMrn.Value
+ If If(nctsFremd.ncts_LimitDate, "").ToString() = "" Then
+ nctsFremd.ncts_LimitDate = dtMrn.Value.AddDays(10)
+ End If
+ ElseIf dtLrn.HasValue Then
+ If If(nctsFremd.ncts_Eroeffnung, "").ToString() = "" Then nctsFremd.ncts_Eroeffnung = dtLrn.Value
+ If If(nctsFremd.ncts_LimitDate, "").ToString() = "" Then
+ nctsFremd.ncts_LimitDate = dtLrn.Value.AddDays(10)
+ End If
+ End If
+
+ Dim statusNeu As Integer = If(IsNumeric(nctsFremd.ncts_Status), CInt(nctsFremd.ncts_Status), 0)
+
+ Select Case UCase(If(tl.status, ""))
+ Case "IN_USE", "MRN_NOTIFIED", "WRT_NOT", "GUAINF", "CTR_DEC", "CTRINFDEP", "MRN_ALL", "REL_TRA"
+ statusNeu = 50
+ If dtMrn.HasValue Then nctsFremd.ncts_Eroeffnung = dtMrn.Value
+
+ Case "ARR_ADV", "ARRIVED"
+ statusNeu = 53
+ If If(nctsFremd.ncts_Ankunft, "").ToString() = "" Then
+ If dtArrived.HasValue Then
+ nctsFremd.ncts_Ankunft = dtArrived.Value
+ ElseIf dtMrn.HasValue Then
+ nctsFremd.ncts_Ankunft = dtMrn.Value
+ End If
+ End If
+
+ Case "TRANSIT_CLOSE", "RELEASED"
+ statusNeu = 60
+ If If(nctsFremd.ncts_Ankunft, "").ToString() = "" Then
+ If dtArrived.HasValue Then
+ nctsFremd.ncts_Ankunft = dtArrived.Value
+ ElseIf dtMrn.HasValue Then
+ nctsFremd.ncts_Ankunft = dtMrn.Value
+ End If
+ End If
+ If If(nctsFremd.ncts_Erledigung, "").ToString() = "" Then
+ If dtClosed.HasValue Then
+ nctsFremd.ncts_Erledigung = dtClosed.Value
+ ElseIf dtArrived.HasValue Then
+ nctsFremd.ncts_Erledigung = dtArrived.Value
+ ElseIf dtMrn.HasValue Then
+ nctsFremd.ncts_Erledigung = dtMrn.Value
+ End If
+ End If
+
+ Case "CANCELLED"
+ statusNeu = 90
+ End Select
+
+ If tl.timelines IsNot Nothing Then
+ For Each t In tl.timelines.OrderBy(Function(x) If(IsDate(x.status_date), CDate(x.status_date), Date.MinValue))
+ Select Case UCase(If(t.status_code, ""))
+
+ Case "TRUCK_IS_READY", "MRN"
+ If If(nctsFremd.ncts_Eroeffnung, "").ToString() = "" AndAlso IsDate(t.status_date) Then
+ nctsFremd.ncts_Eroeffnung = CDate(t.status_date)
+ End If
+ If statusNeu < 50 Then statusNeu = 50
+ Case "ARR_ADV", "AT_ARRIVAL_POINT", "ARRIVED"
+ If If(nctsFremd.ncts_Ankunft, "").ToString() = "" AndAlso IsDate(t.status_date) Then
+ nctsFremd.ncts_Ankunft = CDate(t.status_date)
+ End If
+ If statusNeu < 53 Then statusNeu = 53
+
+ Case "TRANSIT_CLOSE", "RELEASED", "COMPLETED"
+ If If(nctsFremd.ncts_Ankunft, "").ToString() = "" AndAlso IsDate(t.status_date) Then
+ nctsFremd.ncts_Ankunft = CDate(t.status_date)
+ End If
+ If If(nctsFremd.ncts_Erledigung, "").ToString() = "" AndAlso IsDate(t.status_date) Then
+ nctsFremd.ncts_Erledigung = CDate(t.status_date)
+ End If
+ statusNeu = 60
+
+ Case "CANCELLED"
+ statusNeu = 90
+ End Select
+ Next
+ End If
+
+ If statusNeu > 0 Then
+ nctsFremd.ncts_Status = statusNeu
+ nctsFremd.ncts_Status_KEWILL_Equivalent = statusNeu
+ End If
+
+ Console.WriteLine("Status Update after:" & If(nctsFremd.ncts_Status, ""))
+ Return True
+
+
+ Catch ex As Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
+
+ End Try
+ Return False
+ End Function
+
+
+
End Class
-
-
-
Public Shared Function ceateAndSend_NCTS_FromSENDUNG(LRN As String, SND As cSendungen) As Boolean
If SND.tblSnd_AvisoID <= 0 Then Return False
Dim AVISO As cAviso = (New cAvisoDAL).LesenAviso(SND.tblSnd_AvisoID, "")
@@ -686,4 +1193,6 @@ Public Class cModalTransNCTS
Console.WriteLine("❌ Keine Antwort erhalten.")
End If
End Sub
+
+
End Class
\ No newline at end of file
diff --git a/VERAG_PROG_ALLGEMEIN/cAllgemein.vb b/VERAG_PROG_ALLGEMEIN/cAllgemein.vb
index d2672d54..f94c6a19 100644
--- a/VERAG_PROG_ALLGEMEIN/cAllgemein.vb
+++ b/VERAG_PROG_ALLGEMEIN/cAllgemein.vb
@@ -28,6 +28,8 @@ Public Class cAllgemein
Public Shared AVISO_LAYOUT_NEW As Boolean = False
+ Public Shared CBAM_LIST As List(Of String) = Nothing
+
'Public Shared FMZOLL_ATLAS_Datensicherung As String = "\\192.168.0.91\f\FMZoll\Datensicherung\atlas\atlas\fssouzb"
Public Shared FMZOLL_ATLAS_Datensicherung_OLD As String = "\\share01\F\FMZoll\Datensicherung\atlas\atlas\fssouzb"