CBAM
This commit is contained in:
@@ -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
|
||||
|
||||
816
SDL/kunden/usrCntlCBAM.Designer.vb
generated
816
SDL/kunden/usrCntlCBAM.Designer.vb
generated
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user