This commit is contained in:
2026-01-05 15:19:26 +01:00
parent 2187035214
commit 3a30253c2d
14 changed files with 3160 additions and 225 deletions

View File

@@ -143,6 +143,7 @@ Public Class frmNewsletter
Dim anhaenge As New List(Of String)
'---Anhänge:----------------------------
For Each line In ListBox1.Text.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
MsgBox(line)
If File.Exists(line) Then
anhaenge.Add(line)
End If

File diff suppressed because it is too large Load Diff

View File

@@ -39,8 +39,8 @@ Public Class usrCntlCBAM
"WHERE z.za_System = @sys " &
" AND z.za_REGIME = 'IMPORT' " &
" AND z.za_IsFinalDeclaration = 1 " &
" AND z.za_DeclarationDate >= @dateFrom " &
" AND z.za_DeclarationDate <= @dateTo " &
" AND z.if(ra_releaseDate,za_DeclarationDate) >= @dateFrom " &
" AND z.if(ra_releaseDate,za_DeclarationDate) <= @dateTo " &
" AND p.zaParty_EORI = @eori " &
" AND " & cbamWhere
@@ -88,23 +88,7 @@ Public Class usrCntlCBAM
SELECT COUNT(distinct(Registriernummer_MRN)) FROM [tbl_DY_Zollmeldungen_Import]
where Überlassungsdatum between '" & txtVon._value & "' and '" & txtBis._value & "'
and " & VERAG_PROG_ALLGEMEIN.cGreendeal_CBAM_Trn.BuildCBAMPatternWhereClause("Warentarifnummer") & "
/* (
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
@@ -416,7 +400,10 @@ Public Class usrCntlCBAM
Private Sub usrCntlCBAM_Load(sender As Object, e As EventArgs) Handles Me.Load
txtJahr.Text = Now.Year
txtCalcJahr.Text = Now.Year
txtCalcLand.Enabled = True
txtCalc_Defaut_Year.Text = Now.Year
txtCalc_Defaut_CertPrice._value = 95
If Now.Month < 3 Then
txtJahr.Text = Now.Year - 1
cboQuartal.Text = "Q4"
@@ -443,6 +430,7 @@ Public Class usrCntlCBAM
Case "Q2" : txtVon._value = CDate("01.04." & txtJahr.Text) : txtBis._value = CDate(txtVon._value).AddMonths(3).AddDays(-1)
Case "Q3" : txtVon._value = CDate("01.07." & txtJahr.Text) : txtBis._value = CDate(txtVon._value).AddMonths(3).AddDays(-1)
Case "Q4" : txtVon._value = CDate("01.10." & txtJahr.Text) : txtBis._value = CDate(txtVon._value).AddMonths(3).AddDays(-1)
Case "JAHR" : txtVon._value = CDate("01.01." & txtJahr.Text) : txtBis._value = CDate("31.12." & txtJahr.Text)
End Select
@@ -683,6 +671,50 @@ Public Class usrCntlCBAM
Dim dt = SQL.loadDgvBySql(SQLSTR, "AVISO", 600)
If cbxKosten.Checked Then
' =========================================================
' Spalten ergänzen (falls noch nicht vorhanden)
' =========================================================
If Not dt.Columns.Contains("Def_benchmark") Then
dt.Columns.Add("Def_benchmark", GetType(Decimal))
End If
If Not dt.Columns.Contains("Def_Emission") Then
dt.Columns.Add("Def_Emission", GetType(Decimal))
End If
If Not dt.Columns.Contains("EstimatedCost") Then
dt.Columns.Add("EstimatedCost", GetType(Decimal))
End If
' =========================================================
' Berechnung pro Zeile
' =========================================================
For Each r As DataRow In dt.Rows
Dim benchmark As Object = Nothing
Dim emission As Object = Nothing
Dim weight = If(r("Rohmasse") Is DBNull.Value, r("Eigenmasse"), Convert.ToDecimal(r("Rohmasse")))
Dim year = If(txtBis._value <> "", CDate(txtBis._value).Year, Now.Year)
Dim cost As String = cATEZ_Greenpulse_CBAM_CostCalculation.calcCBAM(
cn_code:=Convert.ToString(r("Tarifnummer")),
weight,
country_code:=Convert.ToString(r("VersendungsLand")),
see_total:=emission,
year,
benchmark_value:=benchmark
)
r("Def_benchmark") = If(benchmark Is Nothing, DBNull.Value, benchmark)
r("Def_Emission") = If(emission Is Nothing, DBNull.Value, emission)
r("EstimatedCost") = If(String.IsNullOrWhiteSpace(cost), DBNull.Value, Convert.ToDecimal(cost))
Next
End If
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, EORI & "_Summenbericht_" & txtVon._value & "-" & txtBis._value)
btnCBAM_DS_DAKOSY_Summe.Tag = path
@@ -1330,13 +1362,13 @@ Public Class usrCntlCBAM
'----- XML ----------------------------------------------------------------------------------------------------------------------------------------
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
'---------------------------------------------------------------------------------------------------------------------------------------------
doCBAM_XML(dt, EORI)
'---------------------------------------------------------------------------------------------------------------------------------------------
Button2.Enabled = True
btnCBAM_DS_DAKOSY_XML.Enabled = True
'---------------------------------------------------------------------------------------------------------------------------------------------
doCBAM_XML(dt, EORI)
'---------------------------------------------------------------------------------------------------------------------------------------------
Button2.Enabled = True
btnCBAM_DS_DAKOSY_XML.Enabled = True
End If
End If
'---------------------------------------------------------------------------------------------------------------------------------------------
@@ -1430,6 +1462,40 @@ Public Class usrCntlCBAM
End Try
End Sub
Private Sub doCBAM_KafkaFromVERAG_CostomsDeclarations(list As List(Of String))
Try
Dim cnt = 1
For Each MRN In list
lblKafkaCnt.Text = cnt & "/" & list.Count
Me.Refresh()
cnt += 1
Dim EZA = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.loadByMRN(MRN, True)
Dim key = cATEZ_Greenpulse_KafkaDecs.GetUniqueKey_Pipe_FromVERAG_CustomsDec(EZA, MRN)
' Objekt
Dim rec = cDakosyEZA_Greenpulse.BuildByMrn(EZA)
Dim dr = cATEZ_Greenpulse_KafkaDecs.InsertOrUpdateToKafkaSync_Bool(rec, key, 30000)
'Unlerlagen
If EZA.za_SendungsId IsNot Nothing AndAlso EZA.za_SendungsId > 0 Then
Dim rec_inv = cDakosyEZA_Greenpulse.BuildInvoices(EZA.za_SendungsId)
Dim dr_inv = cATEZ_Greenpulse_KafkaInvoices.InsertOrUpdateToKafkaSync_Bool(rec_inv, key, 30000)
End If
' MessageBox.Show($"OK: {dr.Status} @ {dr.TopicPartitionOffset}")
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub doCBAM_XML(dt As DataTable, EORI As String)
Dim CBAM_XML As New VERAG_PROG_ALLGEMEIN.CBAM_QReport_17.QReportType
@@ -2087,7 +2153,615 @@ Public Class usrCntlCBAM
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
MsgBox(CountCBAMTariffNumbersBySystemAndEORI("DAKOSY", txtEori.Text, txtVon._value, txtBis._value))
MsgBox(CountCBAMTariffNumbersBySystemAndEORI("DHF", txtEori.Text, txtVon._value, txtBis._value))
txtCalc_Defaut_Country.Enabled = True
'MsgBox(CountCBAMTariffNumbersBySystemAndEORI("DAKOSY", txtEori.Text, txtVon._value, txtBis._value))
'MsgBox(CountCBAMTariffNumbersBySystemAndEORI("DHF", txtEori.Text, txtVon._value, txtBis._value))
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
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
lblErg_VERAG.Text = "-"
lblErg_VERAG2.Text = "-"
Dim LIST = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(txtEori.Text, "", txtVon._value, txtBis._value,, False)
cbo_VERAG_ImpLand.Items.Clear()
Dim sumEigenmasse As Decimal = LIST.SelectMany(Function(za) za.Items).Sum(Function(it) If(it.zaItem_NetMass, 0D))
Dim countries = LIST.Where(Function(za) Not String.IsNullOrWhiteSpace(za.za_CountryImport)).
Select(Function(za) za.za_CountryImport.Trim()).
Distinct().
OrderBy(Function(c) c).
ToList()
For Each c In countries
cbo_VERAG_ImpLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(c, c))
Next
lblErg_VERAG.Text = LIST.Count
lblErg_VERAG2.Text = String.Join(", ", countries)
'MsgBox("Anzahl der Anmeldungen: " & LIST.Count)
End Sub
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles btnCBAM_DS_VERAG.Click
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
If cbo_VERAG_ImpLand._value = "" Then MsgBox("Importland auswählen!") : Exit Sub :
Me.Cursor = Cursors.WaitCursor
Try
Dim LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations) = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(EORI, cbo_VERAG_ImpLand._value, txtVon._value, txtBis._value,, True)
TextBox1.Text = LIST.Count
doVERAG_SUM(LIST, EORI)
doVERAG_DETAIL(LIST, EORI)
If cbxVERAG_GPXLS.Checked Then doVERAG_GREENPULSE_XLS(LIST, EORI)
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
Function LeftStr(s As String, l As Integer) As String
If s Is Nothing Then Return ""
If s Is DBNull.Value Then Return ""
LeftStr = If(s.Length >= l, s.Substring(0, l), s)
End Function
Sub doVERAG_SUM(LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations), EORI As String)
btnCBAM_DS_VERAG_Summe.Enabled = False
btnCBAM_DS_VERAG_Detail.Tag = ""
Try
Dim summary =
From za In LIST
From it In za.Items
Group By
Tarifnummer = LeftStr(it.zaItem_HSCode, 8),
VersendungsLand = za.za_CountryDispatch,
Verfahren = LeftStr(za.za_MainProcedure, 2),
Vorverfahren = it.zaItem_PrevProcedure
Into grp = Group
Select New With {
.Tarifnummer = Tarifnummer,
.Eigenmasse = grp.Sum(Function(x) If(x.it.zaItem_NetMass, 0D)),
.Rohmasse = grp.Sum(Function(x) If(x.it.zaItem_GrossMass, 0D)),
.Rechnungspreis = grp.Sum(Function(x) If(x.it.zaItem_InvoiceValueEUR, 0D)),
.VersendungsLand = VersendungsLand,
.Verfahren = Verfahren,
.VorangegangenesVerfahren = Vorverfahren
}
Dim dt As New DataTable
dt.Columns.Add("Tarifnummer", GetType(String))
dt.Columns.Add("Eigenmasse", GetType(Decimal))
dt.Columns.Add("Rohmasse", GetType(Decimal))
dt.Columns.Add("Rechnungspreis", GetType(Decimal))
dt.Columns.Add("VersendungsLand", GetType(String))
dt.Columns.Add("Verfahren", GetType(String))
dt.Columns.Add("VorangegangenesVerfahren", GetType(String))
For Each r In summary
dt.Rows.Add(
r.Tarifnummer,
r.Eigenmasse,
r.Rohmasse,
r.Rechnungspreis,
r.VersendungsLand,
r.Verfahren,
r.VorangegangenesVerfahren
)
MsgBox(r.Tarifnummer)
Next
MsgBox(dt.Rows.Count)
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,, , , , False, EORI & "_Summenbericht_" & txtVon._value & "-" & txtBis._value)
btnCBAM_DS_VERAG_Summe.Tag = path
btnCBAM_DS_VERAG_Summe.Enabled = True
btnCBAM_DS_VERAG_Copy.Enabled = True
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Sub doVERAG_DETAIL(LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations), EORI As String)
btnCBAM_DS_VERAG_Detail.Enabled = False
btnCBAM_DS_VERAG_Detail.Tag = ""
Try
Dim details =
From za In LIST
From it In za.Items
Let importer = za.Parties.
FirstOrDefault(Function(p) {"CN", "IM", "IMP", "IMPORTER"}.Contains(p.zaParty_Role))
Let exporter = za.Parties.
FirstOrDefault(Function(p) {"CZ", "EX", "EXP", "EXPORTER"}.Contains(p.zaParty_Role))
Let invoice =
za.Documents.FirstOrDefault(Function(d) d.zaDoc_Code = "N380" OrElse d.zaDoc_Code = "N325")
Let Anmeldedatum = (Function(x) If(x.za_releaseDate, x.za_DeclarationDate))
Order By Anmeldedatum
Select New With {
.MRN = za.za_MRN,
.PositionsNummer = it.zaItem_PosNo,
.Anmeldedatum = If(za.za_ReleaseDate, za.za_DeclarationDate),
.BezugsNr = za.za_LRN,
.VertretungsVerhaeltnis = za.za_RepresentationCode,
.Tarifnummer = LeftStr(it.zaItem_HSCode, 8) & "%",
.Eigenmasse = it.zaItem_NetMass,
.Rohmasse = it.zaItem_GrossMass,
.VersendungsLand = za.za_CountryDispatch,
.BestimmungsLand = za.za_CountryDestination,
.Rechnungspreis = it.zaItem_InvoiceValueEUR,
.Rechnungswaehrung = it.zaItem_InvoiceCurrency,
.EmpfaengerEORI = If(importer IsNot Nothing, importer.zaParty_EORI, ""),
.Empfaenger = If(importer IsNot Nothing, importer.zaParty_Name, ""),
.AbsenderEORI = If(exporter IsNot Nothing, exporter.zaParty_EORI, ""),
.Absender = If(exporter IsNot Nothing, exporter.zaParty_Name, ""),
.Rechnungsnummer = If(invoice IsNot Nothing, invoice.zaDoc_Reference, "-"),
.Rechnungsdatum = If(invoice IsNot Nothing, invoice.zaDoc_Date, Nothing)
}
Dim dt As New DataTable
dt.Columns.Add("MRN")
dt.Columns.Add("PositionsNummer", GetType(Integer))
dt.Columns.Add("Anmeldedatum", GetType(Date))
dt.Columns.Add("BezugsNr")
dt.Columns.Add("VertretungsVerhaeltnis")
dt.Columns.Add("Tarifnummer")
dt.Columns.Add("Eigenmasse", GetType(Decimal))
dt.Columns.Add("Rohmasse", GetType(Decimal))
dt.Columns.Add("VersendungsLand")
dt.Columns.Add("BestimmungsLand")
dt.Columns.Add("Rechnungspreis", GetType(Decimal))
dt.Columns.Add("Rechnungswaehrung")
dt.Columns.Add("EmpfaengerEORI")
dt.Columns.Add("Empfaenger")
dt.Columns.Add("AbsenderEORI")
dt.Columns.Add("Absender")
dt.Columns.Add("Rechnungsnummer")
dt.Columns.Add("Rechnungsdatum", GetType(Date))
For Each r In details
dt.Rows.Add(
r.MRN,
r.PositionsNummer,
If(r.Anmeldedatum, DBNull.Value),
r.BezugsNr,
r.VertretungsVerhaeltnis,
r.Tarifnummer,
If(r.Eigenmasse, 0D),
If(r.Rohmasse, 0D),
r.VersendungsLand,
r.BestimmungsLand,
If(r.Rechnungspreis, 0D),
r.Rechnungswaehrung,
r.EmpfaengerEORI,
r.Empfaenger,
r.AbsenderEORI,
r.Absender,
r.Rechnungsnummer,
If(r.Rechnungsdatum Is Nothing, DBNull.Value, r.Rechnungsdatum)
)
Next
If dt.Rows.Count > 0 Then
Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt, , , , , False, EORI & "_Detailbericht_" & txtVon._value & "-" & txtBis._value)
btnCBAM_DS_VERAG_Detail.Tag = path
btnCBAM_DS_VERAG_Detail.Enabled = True
btnCBAM_DS_VERAG_Copy.Enabled = True
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Sub doVERAG_GREENPULSE_XLS(LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations), EORI As String)
btnCBAM_DS_VERAG_GP.Enabled = False
btnCBAM_DS_VERAG_GP.Tag = ""
Try
' ------------------------------------------------------------
' Rollen
' ------------------------------------------------------------
Dim ImporterRoles = {"CN", "IM", "IMP", "IMPORTER"}
Dim ExporterRoles = {"CZ", "EX", "EXP", "EXPORTER"}
' ------------------------------------------------------------
' LINQ: Greenpulse-Logik (MRN-aggregiert)
' ------------------------------------------------------------
Dim gp =
From za In LIST
Group By MRN = za.za_MRN Into grp = Group
Let importer = grp.
SelectMany(Function(x) x.Parties).
FirstOrDefault(Function(p) ImporterRoles.Contains(p.zaParty_Role))
Let exporter = grp.
SelectMany(Function(x) x.Parties).
FirstOrDefault(Function(p) ExporterRoles.Contains(p.zaParty_Role))
Let invoice = grp.
SelectMany(Function(x) x.Documents).
FirstOrDefault(Function(d) d.zaDoc_Code = "N380" OrElse d.zaDoc_Code = "N325")
Select New With {
.DeclarationNo = MRN,
.DeclarationDate = grp.Max(Function(x) If(x.za_ReleaseDate, x.za_DeclarationDate)),
.ImporterEORI = If(importer IsNot Nothing, importer.zaParty_EORI, ""),
.ExporterEORI = If(exporter IsNot Nothing, exporter.zaParty_EORI, ""),
.CommodityCode = grp.
SelectMany(Function(x) x.Items).
Select(Function(i) i.zaItem_HSCode).
FirstOrDefault(),
.OriginCountry = grp.
SelectMany(Function(x) x.Items).
Select(Function(i) i.zaItem_OriginCountry).
FirstOrDefault(),
.RequestedProcedure = If(
grp.First().za_MainProcedure IsNot Nothing AndAlso
grp.First().za_MainProcedure.Length >= 2,
grp.First().za_MainProcedure.Substring(0, 2),
""
),
.NetMassTonnes = grp.
SelectMany(Function(x) x.Items).
Sum(Function(i) If(i.zaItem_NetMass, 0D)) / 1000D,
.ImporterTitle = If(importer IsNot Nothing, importer.zaParty_Name, ""),
.ImporterCountry = If(importer IsNot Nothing, importer.zaParty_Country, ""),
.ExporterTitle = If(exporter IsNot Nothing, exporter.zaParty_Name, ""),
.ExporterCountry = If(exporter IsNot Nothing, exporter.zaParty_Country, ""),
.InvoiceNumber = If(invoice IsNot Nothing, invoice.zaDoc_Reference, "-"),
.InvoiceDate = If(invoice IsNot Nothing, invoice.zaDoc_Date, Nothing)
}
' ------------------------------------------------------------
' DataTable: exakt Greenpulse-Struktur
' ------------------------------------------------------------
Dim dtGP As New DataTable
dtGP.Columns.Add("declaration no")
dtGP.Columns.Add("declaration date", GetType(Date))
dtGP.Columns.Add("importer identification number")
dtGP.Columns.Add("exporter identification number")
dtGP.Columns.Add("commodity code")
dtGP.Columns.Add("origin country code")
dtGP.Columns.Add("requested procedure")
dtGP.Columns.Add("previous procedure")
dtGP.Columns.Add("net mass", GetType(Decimal))
dtGP.Columns.Add("type of measurement unit")
dtGP.Columns.Add("invoice numbers")
dtGP.Columns.Add("invoice date")
dtGP.Columns.Add("member state auth")
dtGP.Columns.Add("discharge bill waiver")
dtGP.Columns.Add("authorisation")
dtGP.Columns.Add("start time")
dtGP.Columns.Add("end time")
dtGP.Columns.Add("deadline")
dtGP.Columns.Add("reporting declarant EORI number")
dtGP.Columns.Add("type of representation")
dtGP.Columns.Add("importer title")
dtGP.Columns.Add("importer email")
dtGP.Columns.Add("importer phone")
dtGP.Columns.Add("importer country code or member state")
dtGP.Columns.Add("importer subdivision")
dtGP.Columns.Add("importer city")
dtGP.Columns.Add("importer street")
dtGP.Columns.Add("importer street additional")
dtGP.Columns.Add("importer address number")
dtGP.Columns.Add("importer post code")
dtGP.Columns.Add("importer po box")
dtGP.Columns.Add("importer coordinate longitude (x)")
dtGP.Columns.Add("importer coordinate latitude (y)")
dtGP.Columns.Add("exporter title")
dtGP.Columns.Add("exporter country code or member state")
dtGP.Columns.Add("exporter street")
dtGP.Columns.Add("exporter street additional")
' ------------------------------------------------------------
' Befüllen
' ------------------------------------------------------------
For Each r In gp
dtGP.Rows.Add(
r.DeclarationNo,
r.DeclarationDate,
r.ImporterEORI,
r.ExporterEORI,
r.CommodityCode,
r.OriginCountry,
r.RequestedProcedure,
"",
r.NetMassTonnes,
"TONNES",
r.InvoiceNumber,
If(r.InvoiceDate Is Nothing, "-", r.InvoiceDate),
"",
"",
"",
"",
"",
"",
r.ImporterEORI,
"",
r.ImporterTitle,
"",
"",
r.ImporterCountry,
"",
"",
"",
"",
"",
"",
"",
r.ExporterTitle,
r.ExporterCountry,
"",
""
)
Next
' ------------------------------------------------------------
' Excel-Export Greenpulse
' ------------------------------------------------------------
If dtGP.Rows.Count > 0 Then
btnCBAM_DS_VERAG_GP.Tag =
createExcelForGreenPulse(dtGP, EORI, "")
btnCBAM_DS_VERAG_GP.Enabled = True
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub btnCBAM_DS_VERAG_Detail_Click(sender As Object, e As EventArgs) Handles btnCBAM_DS_VERAG_Detail.Click, btnCBAM_DS_VERAG_GP.Click, btnCBAM_DS_VERAG_Summe.Click, btnCBAM_DS_VERAG_SpedB.Click, btnCBAM_DS_VERAG_XML.Click
If sender.tag <> "" Then
Try : Process.Start(sender.tag) : Catch : End Try
End If
End Sub
Private Sub btnCBAM_DS_VERAG_Copy_Click(sender As Object, e As EventArgs) Handles btnCBAM_DS_VERAG_Copy.Click
Dim f As New List(Of String)
If btnCBAM_DS_VERAG_Detail.Tag <> "" Then f.Add(btnCBAM_DS_VERAG_Detail.Tag)
If btnCBAM_DS_VERAG_Summe.Tag <> "" Then f.Add(btnCBAM_DS_VERAG_Summe.Tag)
If btnCBAM_DS_VERAG_GP.Tag <> "" Then f.Add(btnCBAM_DS_VERAG_GP.Tag)
If f.Count > 0 Then
'Zwischenablage
Clipboard.Clear()
Dim d As New DataObject(DataFormats.FileDrop, f.ToArray)
Clipboard.SetDataObject(d, True)
End If
End Sub
Private Sub btnCBAM_DS_VERAG_GenXML_Click(sender As Object, e As EventArgs) Handles btnCBAM_DS_VERAG_GenXML.Click
Button2.Enabled = False
btnCBAM_DS_VERAG_XML.Enabled = False
btnCBAM_DS_VERAG_XML.Tag = ""
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
If cbo_VERAG_ImpLand._value = "" Then MsgBox("Importland auswählen!") : Exit Sub
Dim LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations) = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(EORI, cbo_VERAG_ImpLand._value, txtVon._value, txtBis._value,, False)
Me.Cursor = Cursors.WaitCursor
' summary
Dim ImporterRoles = {"CN", "IM", "IMP", "IMPORTER"}
Dim summary =
From za In LIST
Let importer = za.Parties.FirstOrDefault(Function(p) ImporterRoles.Contains(p.zaParty_Role))
From it In za.Items
Let hs8 = LeftStr(it.zaItem_HSCode, 8)
Group By
Tarifnummer = hs8,
VersendungsLand = za.za_CountryDispatch,
Verfahren = If(it.zaItem_MainProcedure, ""),
Vorverfahren = If(it.zaItem_PrevProcedure, ""),
Empfaenger = If(importer IsNot Nothing, importer.zaParty_Name, ""),
EmpfaengerEORI = If(importer IsNot Nothing, importer.zaParty_EORI, "")
Into grp = Group
Select New With {
.Tarifnummer = Tarifnummer,
.Eigenmasse = grp.Sum(Function(x) If(x.it.zaItem_NetMass, 0D)),
.Rohmasse = grp.Sum(Function(x) If(x.it.zaItem_GrossMass, 0D)),
.Rechnungspreis = grp.Sum(Function(x) If(x.it.zaItem_InvoiceValueEUR, 0D)),
.VersendungsLand = VersendungsLand,
.Verfahren = Verfahren,
.VorangegangenesVerfahren = Vorverfahren,
.Empfaenger = Empfaenger,
.EmpfaengerEORI = EmpfaengerEORI
}
Dim dt As New DataTable
dt.Columns.Add("Tarifnummer")
dt.Columns.Add("Eigenmasse", GetType(Decimal))
dt.Columns.Add("Rohmasse", GetType(Decimal))
dt.Columns.Add("Rechnungspreis", GetType(Decimal))
dt.Columns.Add("VersendungsLand")
dt.Columns.Add("Verfahren")
dt.Columns.Add("VorangegangenesVerfahren")
dt.Columns.Add("Empfänger")
dt.Columns.Add("EmpfängerEORI")
For Each r In summary
dt.Rows.Add(
r.Tarifnummer,
r.Eigenmasse,
r.Rohmasse,
r.Rechnungspreis,
r.VersendungsLand,
r.Verfahren,
r.VorangegangenesVerfahren,
r.Empfaenger,
r.EmpfaengerEORI
)
Next
If dt.Rows.Count > 0 Then
doCBAM_XML(dt, EORI)
Button2.Enabled = True
btnCBAM_DS_VERAG_XML.Enabled = True
End If
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 btnCBAM_DS_VERAG_SendToGreenpulse_Click(sender As Object, e As EventArgs) Handles btnCBAM_DS_VERAG_SendToGreenpulse.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
If cbo_VERAG_ImpLand._value = "" Then MsgBox("Importland auswählen!") : Exit Sub
Me.Cursor = Cursors.WaitCursor
lblKafkaCnt.Text = "-"
Dim LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations) = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(EORI, cbo_VERAG_ImpLand._value, txtVon._value, txtBis._value,, False)
If LIST Is Nothing AndAlso LIST.Count = 0 Then
MsgBox("Keine Anmeldungen gefunden!")
Exit Sub
End If
' -----------------------------
' MRNs aus CustomsDeclarations
' -----------------------------
Dim mrns =
LIST.Where(Function(za)
za.za_REGIME = "IMPORT" AndAlso
Not String.IsNullOrWhiteSpace(za.za_MRN)
End Function).
Select(Function(za) za.za_MRN).
Distinct().
ToList()
If mrns.Count = 0 Then Exit Sub
lblKafkaCnt.Text = "0/" & mrns.Count.ToString()
' -----------------------------
' Übergabe an Greenpulse/Kafka
' -----------------------------
doCBAM_KafkaFromVERAG_CostomsDeclarations(mrns)
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Finally
Me.Cursor = Cursors.Default
End Try
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
txtCalcErg.Text = cATEZ_Greenpulse_CBAM_CostCalculation.calcCBAM_ByCertificatePrice(txtCalc_Defaut_KN8._value, txtCalc_Defaut_Weight._value, txtCalc_Defaut_Country._value, txtCalc_Defaut_CertPrice._value, txtCalcJahr._value)
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
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
'If cbo_VERAG_ImpLand._value = "" Then MsgBox("Importland auswählen!") : Exit Sub
Me.Cursor = Cursors.WaitCursor
Dim LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations) = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(EORI, cbo_VERAG_ImpLand._value, txtVon._value, txtBis._value,, True)
Dim grouped =
From za In LIST
Where za.Items IsNot Nothing
From it In za.Items
Let tarif = If(it.zaItem_HSCode IsNot Nothing AndAlso it.zaItem_HSCode.Length >= 8,
it.zaItem_HSCode.Substring(0, 8),
it.zaItem_HSCode)
Let country = it.zaItem_OriginCountry
Group By tarif, country
Into grp = Group
Select New With {
.Tarif = tarif,
.Country = country,
.Eigenmasse = grp.Sum(Function(x) If(x.it.zaItem_NetMass, 0D)),
.Rohmasse = grp.Sum(Function(x) If(x.it.zaItem_GrossMass, 0D)),
.RechnungswertEUR = grp.Sum(Function(x) If(x.it.zaItem_InvoiceValueEUR, 0D))
}
Me.Cursor = Cursors.Default
Dim f As New frmVorauskasse_CBAM
f.MyDatagridview1.Rows.Clear()
For Each g In grouped
Dim idx = f.MyDatagridview1.Rows.Add()
Dim eigMasse = If(IsNumeric(g.Eigenmasse), g.Eigenmasse / 1000, 0)
With f.MyDatagridview1.Rows(idx)
.Cells("clmnTarif").Value = g.Tarif
.Cells("clmnWeight").Value = eigMasse
.Cells("clmnCountry").Value = g.Country
.Cells("clmnYear").Value = If(txtBis._value <> "", CDate(txtBis._value).Year, Now.Year)
End With
Next
f.autocalc = True
f.Show()
End Sub
End Class