From a5fbf88a206b32a195c8bb820ffe93cb838b56fa Mon Sep 17 00:00:00 2001 From: Andreas Luxbauer Date: Thu, 16 Oct 2025 16:06:34 +0200 Subject: [PATCH] cbam --- SDL/kunden/usrCntlCBAM.vb | 276 ++++++++++-------- VERAG_PROG_ALLGEMEIN/Classes/SQL.vb | 13 +- .../GREENPULSE/cATEZ_Greenpulse_KafkaDecs.vb | 4 +- 3 files changed, 171 insertions(+), 122 deletions(-) diff --git a/SDL/kunden/usrCntlCBAM.vb b/SDL/kunden/usrCntlCBAM.vb index 4ff65e9e..1a689494 100644 --- a/SDL/kunden/usrCntlCBAM.vb +++ b/SDL/kunden/usrCntlCBAM.vb @@ -422,111 +422,13 @@ Public Class usrCntlCBAM If txtBis._value = "" Then MsgBox("Datum bis eingeben!") : Exit Sub Me.Cursor = Cursors.WaitCursor - Dim SQL_GP As String = "SELECT [Registriernummer_MRN] as 'declaration no' - ,max(Überlassungsdatum) as 'declaration date' - ,isnull(max(Empfänger_CN_EORI),'') as 'importer identification number' - ,'' as 'exporter identification number' - , max(Warentarifnummer) as 'commodity code' - ,max([VersendungsLand]) as 'origin country code' - ,Left(max(Verfahren2),2) as 'requested procedure' - ,'' as 'previous procedure' - ,(max(Eigenmasse) / 1000) as 'net mass' - ,'TONNES' as 'type of measurement unit' - ,'' as 'invoice numbers' - ,'' as 'invoice date' - ,'' as 'member state auth' - ,'' as 'discharge bill waiver' - ,'' as 'authorisation' - ,'' as 'start time' - ,'' as 'end time' - ,'' as 'deadline' - ,isnull(max(Empfänger_CN_EORI),'') as 'reporting declarant EORI number' - ,'' as 'type of representation' - ,isnull(max(CN_Name), '') as 'importer title' - ,'' as 'importer email' - ,'' as 'importer phone' - ,isnull(max(CN_Ländercode), '') as 'importer country code or member state' - ,'' as 'importer subdivision' - ,'' as 'importer city' - ,'' as 'importer street' - ,'' as 'importer street additional' - ,'' as 'importer address number' - ,'' as 'importer post code' - ,'' as 'importer po box' - ,'' as 'importer coordinate longitude (x)' - ,'' as 'importer coordinate latitude (y)' - ,isnull(max(CZ_Name), '') as 'exporter title' - ,isnull(max(CZ_Ländercode), '') as 'exporter country code or member state' - ,'' as 'exporter street' - ,'' as 'exporter street additional'" + Dim SQL_DAKOSY = "" + Dim SQL_GP = "" + getDY_Detail_SQL(SQLSTR_WHERE_FIRMEN, EORI, SQL_DAKOSY, SQL_GP) '--> Aufbau SQL String - Dim SQL_DAKOSY As String = "SELECT - [Registriernummer_MRN] RegistriernummerATLAS - ,PositionNo PositionsNummer - ,max(Überlassungsdatum) Anmeldedatum - ,max([Bezugsnummer_LRN]) BezugsNr - ,max([Art_der_Vertretung]) VertretungsVerhaeltnis - ,max(Warentarifnummer) Tarifnummer - ,max(Eigenmasse) Eigenmasse - ,max([VersendungsLand]) VersendungsLand - ,'DE' Bestimmungsland - ,max([DV1Rechnungsbetrag])Rechnungspreis - ,max([Rechnungswährung]) Rechnungswaehrung - ,isnull(max(Empfänger_CN_EORI),'') as EmpfängerEORI - ,isnull(max(CN_Name), '') as Empfänger - ,isnull(max(Versender_CZ_EORI),'') as AbsenderEORI - ,isnull(max(CZ_Name), '') as Absender - ,'' as 'Rechnungsnummer' - ,'' as 'Rechnungsdatum'" + Dim dt = SQL.loadDgvBySql(SQL_DAKOSY, "AVISO", 600) - Dim SQLSTR = " FROM [tbl_DY_Zollmeldungen_Import] - where - Überlassungsdatum between '" & txtVon._value & "' and '" & txtBis._value & "' - and - ( - left(Warentarifnummer,4) IN (2523,2716,2808,2814,3102,3105,7201,7203,7318,7326,7601,7616) - OR left(Warentarifnummer,4) between 7301 and 7311 - OR left(Warentarifnummer,4) between 7205 and 7229 - OR left(Warentarifnummer,4) between 7603 and 7614 - OR Warentarifnummer like '25070080%' - OR Warentarifnummer like '283421%' - OR Warentarifnummer like '260112%' - OR Warentarifnummer like '720211%' - OR Warentarifnummer like '720219%' - OR Warentarifnummer like '720241%' - OR Warentarifnummer like '720249%' - OR Warentarifnummer like '720260%' - OR Warentarifnummer like '280410%' - ) - and Warentarifnummer not like '310560%' - - " - - If SQLSTR_WHERE_FIRMEN <> "" Then - SQLSTR &= " and Teilnehmer in ( " & SQLSTR_WHERE_FIRMEN & ")" - SQLSTR &= " - and left(Art_der_Vertretung,1) IN (2) - " - - Else - 'Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird. - 'SQLSTR &= " - ' and (select isnull([ezaAd_NameFirma1],[ezaAd_TeilnehmerEORI]) FROM tblDakosy_EZA_Adressen WHERE ezaAd_EZAId=eza_Id and [ezaAd_AdressTyp]='CN')='" & EORI & "' - ' " - - SQLSTR &= " - and Empfänger_CN_EORI='" & EORI & "' - " - End If - - SQLSTR &= " group by Registriernummer_MRN,PositionNo" - - SQLSTR &= " order by isnull(max(CZ_Name), ''), Registriernummer_MRN, PositionNo" - - - Dim dt = SQL.loadDgvBySql(SQL_DAKOSY & SQLSTR, "AVISO", 600) - - Dim dtGP = SQL.loadDgvBySql(SQL_GP & SQLSTR, "AVISO", 600) + Dim dtGP = SQL.loadDgvBySql(SQL_GP, "AVISO", 600) @@ -771,7 +673,116 @@ Public Class usrCntlCBAM End Sub + Sub getDY_Detail_SQL(SQLSTR_WHERE_FIRMEN, EORI, ByRef SQL_DAKOSY, ByRef SQL_GP) + SQL_GP = "SELECT [Registriernummer_MRN] as 'declaration no' + ,max(Überlassungsdatum) as 'declaration date' + ,isnull(max(Empfänger_CN_EORI),'') as 'importer identification number' + ,'' as 'exporter identification number' + , max(Warentarifnummer) as 'commodity code' + ,max([VersendungsLand]) as 'origin country code' + ,Left(max(Verfahren2),2) as 'requested procedure' + ,'' as 'previous procedure' + ,(max(Eigenmasse) / 1000) as 'net mass' + ,'TONNES' as 'type of measurement unit' + ,'' as 'invoice numbers' + ,'' as 'invoice date' + ,'' as 'member state auth' + ,'' as 'discharge bill waiver' + ,'' as 'authorisation' + ,'' as 'start time' + ,'' as 'end time' + ,'' as 'deadline' + ,isnull(max(Empfänger_CN_EORI),'') as 'reporting declarant EORI number' + ,'' as 'type of representation' + ,isnull(max(CN_Name), '') as 'importer title' + ,'' as 'importer email' + ,'' as 'importer phone' + ,isnull(max(CN_Ländercode), '') as 'importer country code or member state' + ,'' as 'importer subdivision' + ,'' as 'importer city' + ,'' as 'importer street' + ,'' as 'importer street additional' + ,'' as 'importer address number' + ,'' as 'importer post code' + ,'' as 'importer po box' + ,'' as 'importer coordinate longitude (x)' + ,'' as 'importer coordinate latitude (y)' + ,isnull(max(CZ_Name), '') as 'exporter title' + ,isnull(max(CZ_Ländercode), '') as 'exporter country code or member state' + ,'' as 'exporter street' + ,'' as 'exporter street additional'" + + SQL_DAKOSY = "SELECT + [Registriernummer_MRN] RegistriernummerATLAS + ,PositionNo PositionsNummer + ,max(Überlassungsdatum) Anmeldedatum + ,max([Bezugsnummer_LRN]) BezugsNr + ,max([Art_der_Vertretung]) VertretungsVerhaeltnis + ,max(Warentarifnummer) Tarifnummer + ,max(Eigenmasse) Eigenmasse + ,max([VersendungsLand]) VersendungsLand + ,'DE' Bestimmungsland + ,max([DV1Rechnungsbetrag])Rechnungspreis + ,max([Rechnungswährung]) Rechnungswaehrung + ,isnull(max(Empfänger_CN_EORI),'') as EmpfängerEORI + ,isnull(max(CN_Name), '') as Empfänger + ,isnull(max(Versender_CZ_EORI),'') as AbsenderEORI + ,isnull(max(CZ_Name), '') as Absender + ,'' as 'Rechnungsnummer' + ,'' as 'Rechnungsdatum'" + + Dim SQLSTR = " FROM [tbl_DY_Zollmeldungen_Import] + where + Überlassungsdatum between '" & txtVon._value & "' and '" & txtBis._value & "' + AND ( + LEFT(Warentarifnummer,4) IN (2523,2716,2808,2814,2803,2818,3102,3103,3104,3105, + 7201,7202,7203,7204,7325,7318,7326,7601,7602) + OR LEFT(Warentarifnummer,4) BETWEEN 7205 AND 7229 + OR LEFT(Warentarifnummer,4) BETWEEN 7301 AND 7311 + OR LEFT(Warentarifnummer,4) BETWEEN 7603 AND 7614 + OR Warentarifnummer LIKE '25070080%' + OR Warentarifnummer LIKE '260112%' + OR Warentarifnummer LIKE '260300%' + OR Warentarifnummer LIKE '260600%' + OR Warentarifnummer LIKE '283421%' + OR Warentarifnummer LIKE '720211%' + OR Warentarifnummer LIKE '720219%' + OR Warentarifnummer LIKE '720241%' + OR Warentarifnummer LIKE '720249%' + OR Warentarifnummer LIKE '720260%' + OR Warentarifnummer LIKE '280410%' + ) + AND Warentarifnummer NOT LIKE '310560%' + + " + + If SQLSTR_WHERE_FIRMEN <> "" Then + SQLSTR &= " and Teilnehmer in ( " & SQLSTR_WHERE_FIRMEN & ")" + SQLSTR &= " + and left(Art_der_Vertretung,1) IN (2) + " + + Else + 'Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird. + 'SQLSTR &= " + ' and (select isnull([ezaAd_NameFirma1],[ezaAd_TeilnehmerEORI]) FROM tblDakosy_EZA_Adressen WHERE ezaAd_EZAId=eza_Id and [ezaAd_AdressTyp]='CN')='" & EORI & "' + ' " + + SQLSTR &= " + and Empfänger_CN_EORI='" & EORI & "' + " + End If + + SQLSTR &= " group by Registriernummer_MRN,PositionNo" + + SQLSTR &= " order by isnull(max(CZ_Name), ''), Registriernummer_MRN, PositionNo" + + SQL_GP &= SQLSTR + SQL_DAKOSY &= SQLSTR + + + End Sub 'Private Sub btnCBAM_DS_DAKOSY_Click(sender As Object, e As EventArgs) Handles btnCBAM_DS_DAKOSY.Click ' btnCBAM_DS_DAKOSY_Deteil.Enabled = False @@ -979,12 +990,12 @@ Public Class usrCntlCBAM 'End Sub - Private Sub ButtonXML_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button3.Click + Private Sub ButtonXML_Click(sender As Object, e As EventArgs) Handles Button1.Click If sender Is Button1 Then Button2.Enabled = False - btnCBAM_DS_DAKOSY_XML.Enabled = False - btnCBAM_DS_DAKOSY_XML.Tag = "" + btnCBAM_DS_DAKOSY_XML.Enabled = False + btnCBAM_DS_DAKOSY_XML.Tag = "" End If @@ -1053,10 +1064,8 @@ Public Class usrCntlCBAM - If sender Is Button1 Then - - '----- XML ---------------------------------------------------------------------------------------------------------------------------------------- - If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + '----- XML ---------------------------------------------------------------------------------------------------------------------------------------- + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then '--------------------------------------------------------------------------------------------------------------------------------------------- doCBAM_XML(dt, EORI) '--------------------------------------------------------------------------------------------------------------------------------------------- @@ -1064,13 +1073,50 @@ Public Class usrCntlCBAM btnCBAM_DS_DAKOSY_XML.Enabled = True End If - ElseIf sender Is Button3 Then - '----- kafka / Greenpulse ---------------------------------------------------------------------------------------------------------------------------------------- - If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then - doCBAM_KafkaFromDakosy(dt) + '--------------------------------------------------------------------------------------------------------------------------------------------- + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + Me.Cursor = Cursors.Default + + End Sub + + + + Private Sub Button3gp_Click(sender As Object, e As EventArgs) Handles Button3.Click + + '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + + Try + Dim EORI = txtEori.Text + If cbxVERAG.Checked Then EORI = "VERAG" + If EORI = "" Then MsgBox("EORI eingeben!") : Exit Sub + If txtVon._value = "" Then MsgBox("Datum von eingeben!") : Exit Sub + If txtBis._value = "" Then MsgBox("Datum bis eingeben!") : Exit Sub + Me.Cursor = Cursors.WaitCursor + + Dim SQLSTR_WHERE_FIRMEN = "" + If cbxVERAG.Checked Then SQLSTR_WHERE_FIRMEN &= "'SUB','WAI','SBG','NKD','NEU','AMBWO','AMB','IRU','EXP','SUW','DUR'" + If cbxIMEX.Checked Then SQLSTR_WHERE_FIRMEN &= IIf(SQLSTR_WHERE_FIRMEN <> "", ", ", "") & "'IME'" + If cbxUNISPED.Checked Then SQLSTR_WHERE_FIRMEN &= IIf(SQLSTR_WHERE_FIRMEN <> "", ", ", "") & "'ATSPED'" '??? + + Dim SQL_DAKOSY = "" + getDY_Detail_SQL(SQLSTR_WHERE_FIRMEN, EORI, SQL_DAKOSY, "") '--> Aufbau SQL String + + + Dim dt = SQL.loadDgvBySql(SQL_DAKOSY, "AVISO", 600) + + + + '----- kafka / Greenpulse ---------------------------------------------------------------------------------------------------------------------------------------- + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + + doCBAM_KafkaFromDakosy(dt) - End If End If '--------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb index d52e527d..6e9180f0 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/SQL.vb @@ -1119,7 +1119,7 @@ Public Class SQL End Select Return where End Function - Public Function getFMZOLLKdNrFromEORI(ByVal eori As String, eoriNL As String, Firma As String) As String + Public Function getFMZOLLKdNrFromEORI(ByVal eori As String, eoriNL As String, Firma As String, Optional ignoreCountOver1 As Boolean = False) As String Dim s As String = "" Dim where = getFirmaWhere(Firma) @@ -1137,10 +1137,13 @@ Public Class SQL If dr.HasRows Then Dim dt As New DataTable dt.Load(dr) - 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) + If Not ignoreCountOver1 Then + + 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) + End If End If End If s = dt.Rows(0).Item(0) diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_KafkaDecs.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_KafkaDecs.vb index 19adfd07..040ed230 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_KafkaDecs.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_KafkaDecs.vb @@ -23,8 +23,8 @@ Public Class cATEZ_Greenpulse_KafkaDecs '== Kafka: Konfiguration (Klassenebene) '======================== Public Shared BootstrapServers As String = "192.168.85.250:9092" 'http://192.168.85.250:8888 - ' Public Shared TopicName As String = "greenpulse.declarationdata.v1" - Public Shared TopicName As String = "dev.greenpulse.declarationdata.v1" + Public Shared TopicName As String = "greenpulse.declarationdata.v1" + ' Public Shared TopicName As String = "dev.greenpulse.declarationdata.v1" ' Falls SASL/TLS benötigt: Public Shared UseSasl As Boolean = False Public Shared SaslUsername As String = ""