Merge branch 'newMaster2024' of https://git.it.verag.ag/edv/SDL into newMaster2024
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user