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"