Merge branch 'newMaster2024' of https://git.it.verag.ag/edv/SDL into newMaster2024

This commit is contained in:
2026-10-23 23:24:21 +02:00
17 changed files with 567 additions and 182 deletions

View File

@@ -24,6 +24,9 @@ Public Class cKundenSicherheiten
Public Property sc_stornoDatum As Date? = Nothing
Public Property sc_stornoMaId As Integer? = Nothing
Public Property sc_cbam_jahr As Integer? = Nothing
Public Property sc_cbam_quartal As Integer? = Nothing
Public hasEntry As Boolean = False
@@ -34,6 +37,13 @@ Public Class cKundenSicherheiten
LOAD()
End Sub
Sub New(_sc_kundenNr As String, _sc_cbam_quartal As Integer, _sc_cbam_jahr As Integer)
sc_kundenNr = _sc_kundenNr
sc_cbam_quartal = _sc_cbam_quartal
sc_cbam_jahr = _sc_cbam_jahr
LOADCBAM()
End Sub
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
@@ -57,6 +67,8 @@ Public Class cKundenSicherheiten
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_storno", sc_storno))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_stornoDatum", sc_stornoDatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_stornoMaId", sc_stornoMaId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_cbam_jahr", sc_cbam_jahr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_cbam_quartal", sc_cbam_quartal))
Return list
End Function
@@ -103,6 +115,33 @@ Public Class cKundenSicherheiten
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Sub LOADCBAM()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblKundenSicherheiten WHERE sc_kundenNr=@sc_kundenNr and sc_cbam_quartal = @sc_cbam_quartal and sc_cbam_jahr = @sc_cbam_jahr", conn)
cmd.Parameters.AddWithValue("@sc_kundenNr", sc_kundenNr)
cmd.Parameters.AddWithValue("@sc_cbam_quartal", sc_cbam_quartal)
cmd.Parameters.AddWithValue("@sc_cbam_jahr", sc_cbam_jahr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim prop As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr(li.Text) Is DBNull.Value Then
prop.SetValue(Me, Nothing)
Else
prop.SetValue(Me, dr(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Function getUpdateCmd() As String
Dim list = getParameterList()

View File

@@ -1,8 +1,10 @@
Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Runtime.InteropServices.ComTypes
Imports System.Windows.Forms
Imports com.sun.tools.javac.util
Imports java.lang.ProcessBuilder
Imports Org.BouncyCastle.Crypto.Agreement
Imports sun.util.resources.cldr.aa
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
@@ -518,6 +520,7 @@ Public Class cVERAG_CustomsDeclarations
End Function
Public Sub checkfreshCBAMWarning()
Try
Dim CBAM_ITEMS As New List(Of cVERAG_CustomsDeclarations_Item)
@@ -597,6 +600,10 @@ Public Class cVERAG_CustomsDeclarations
Dim dateCBAM = If(If(za_ReleaseDate, za_DeclarationDate), Now)
Dim eigenmasseSumme_YEAR As Decimal = getCBAM_KG(vertretenerEORI, CDate("01.01." & dateCBAM.Year), CDate("31.12." & dateCBAM.Year), za_MRN) / 1000
Dim quarter As Integer = Math.Ceiling(dateCBAM.Month / 3.0)
Dim CountryOfOrigin As String = If(CBAM_ITEMS.FirstOrDefault()?.zaItem_OriginCountry, "")
createOrUpdateKundenSicherheitseintrag(KD_IND, CountryOfOrigin, vertretenerEORI, quarter, dateCBAM.Year)
'Prüft, ob Vertrag vorliegt:
Dim hasValidVertrag_CBAM As Boolean =
@@ -679,6 +686,10 @@ Public Class cVERAG_CustomsDeclarations
Dim dateCBAM = If(If(za_ReleaseDate, za_DeclarationDate), Now)
Dim CountryOfOrigin As String = If(CBAM_ITEMS.FirstOrDefault()?.zaItem_OriginCountry, "")
Dim quarter As Integer = Math.Ceiling(dateCBAM.Month / 3.0)
createOrUpdateKundenSicherheitseintrag(KD, CountryOfOrigin, importerEORI, quarter, dateCBAM.Year)
Dim eigenmasseSumme_Shipment As Decimal = CBAM_ITEMS.Sum(Function(i) If(i.zaItem_NetMass, 0D)) / 1000
Dim eigenmasseSumme_YEAR As Decimal = getCBAM_KG(importerEORI, CDate("01.01." & dateCBAM.Year), CDate("31.12." & dateCBAM.Year)) / 1000
@@ -807,6 +818,101 @@ Public Class cVERAG_CustomsDeclarations
Return String.Join(", ", result)
End Function
Private Function createOrUpdateKundenSicherheitseintrag(KUNDE As cKunde, CountryOfOrigin As String, EORI As String, cbamQquarter As Integer, cbamYear As Integer)
Dim von As Date
Dim bis As Date
Dim CBAMZertifikatKosten As Double = 0
'If CountryOfOrigin = "" Then Return False
Select Case cbamQquarter
Case "1"
von = New Date(cbamYear, 1, 1)
bis = New Date(cbamYear, 3, 31)
CBAMZertifikatKosten = 75.36
Case "2"
von = New Date(cbamYear, 4, 1)
bis = New Date(cbamYear, 6, 30)
CBAMZertifikatKosten = 75.28
Case "3"
von = New Date(cbamYear, 7, 1)
bis = New Date(cbamYear, 9, 30)
CBAMZertifikatKosten = 82.32
Case "4"
von = New Date(cbamYear, 10, 1)
bis = New Date(cbamYear, 12, 31)
CBAMZertifikatKosten = 0
End Select
Dim EORI_ = {EORI}
Dim LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations) = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(EORI_, CountryOfOrigin, von, bis,, 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))
}
If grouped.Count < 1 Then
Return False
End If
Dim gesamtBetrag As Double = 0
Dim cost As Double = 0
Dim emission As Double = 0
Dim benchmark As Double = 0
For Each r In grouped
cATEZ_Greenpulse_CBAM_CostCalculation.calcCBAM_ByCertificatePrice(r.Tarif, r.Rohmasse, r.Country, CBAMZertifikatKosten, cbamYear, cost, emission, benchmark)
gesamtBetrag += cost
Next
If gesamtBetrag <> 0 Then
Dim Kunde_Sicherheit As New cKundenSicherheiten(KUNDE.KundenNr, cbamQquarter, cbamYear)
If Kunde_Sicherheit.hasEntry Then
Kunde_Sicherheit.sc_Betrag = gesamtBetrag
Kunde_Sicherheit.SAVE()
Else
Kunde_Sicherheit.sc_Waehrung = "EUR"
Kunde_Sicherheit.sc_Bemerkung = "CBAM Kosten Q" & cbamQquarter & " " & cbamYear & " / verw. Preis: " & CBAMZertifikatKosten.ToString("N2")
Kunde_Sicherheit.sc_Art = "BANKGARANTIE"
Kunde_Sicherheit.sc_Betrag = gesamtBetrag
Kunde_Sicherheit.sc_gueltigVon = New Date(2026, 1, 1)
Kunde_Sicherheit.sc_gueltigBis = New Date(2027, 12, 31)
Kunde_Sicherheit.sc_datum = Today()
Kunde_Sicherheit.sc_Mitarbeiter = "AUTO"
Kunde_Sicherheit.sc_dsId = -1
Kunde_Sicherheit.SAVE()
End If
End If
End Function
Public Function getCBAM_KG(EORI As String, von As Date, bis As Date, Optional without_MRN As String = "", Optional isDeclarant As Boolean = False) As Decimal
Try
If EORI = "" Then Return 0

View File

@@ -897,6 +897,10 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
Select Case art
Case "3", "4" 'Export
sqlWHere = " AND mail_kindOfMail = 'EXP'"
Case "5" 'Buchhaltung
sqlWHere = " AND mail_kindOfMail = 'BH'"
Case Else
sqlWHere = " AND mail_kindOfMail = 'IMP'"
End Select