cbam
This commit is contained in:
@@ -50,6 +50,38 @@ Public Class cKundenVertraege
|
||||
Public Shared Function LOAD_LIST(KundenNr As Integer) As DataTable
|
||||
Return (New SQL).loadDgvBySql("SELECT [kv_Id],[kv_KundenNr],[kv_erhalten_Datum],[kv_vertragArtId],kva_Bezeichnung,[kv_Info],[kv_datenarchivId],[kv_gueltig],kv_gueltigBis_Datum FROM tblKundenVertraege INNER JOIN tblKundenVertraegeArten ON kv_vertragArtId=kva_id WHERE kv_KundenNr=" & KundenNr, "FMZOLL")
|
||||
End Function
|
||||
Public Shared Function LOAD_LISTOF(KundenNr As Integer) As List(Of cKundenVertraege)
|
||||
Dim LIST As New List(Of cKundenVertraege)
|
||||
Try
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand("Select * FROM tblKundenVertraege WHERE kv_KundenNr=@KundenNr ", conn)
|
||||
cmd.Parameters.AddWithValue("@KundenNr", KundenNr)
|
||||
Dim dr = cmd.ExecuteReader()
|
||||
If dr.Read Then
|
||||
Dim VERTR As New cKundenVertraege
|
||||
|
||||
For Each li In VERTR.getParameterList()
|
||||
Dim propInfo As PropertyInfo = VERTR.GetType.GetProperty(li.Scalarvariable)
|
||||
|
||||
If dr.Item(li.Text) Is DBNull.Value Then
|
||||
propInfo.SetValue(VERTR, Nothing)
|
||||
Else
|
||||
propInfo.SetValue(VERTR, dr.Item(li.Text))
|
||||
End If
|
||||
|
||||
Next
|
||||
VERTR.hasEntry = True
|
||||
LIST.Add(VERTR)
|
||||
End If
|
||||
dr.Close()
|
||||
End Using
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
|
||||
End Try
|
||||
Return List
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function ENTRY_Exists(KundenNr As Integer, kv_vertragArtId As Integer) As Boolean
|
||||
Return (CInt((New SQL).getValueTxtBySql("SELECT count(*) FROM tblKundenVertraege WHERE kv_KundenNr=" & KundenNr & " AND kv_vertragArtId='" & kv_vertragArtId & "'", "FMZOLL")) > 0)
|
||||
|
||||
@@ -84,6 +84,9 @@ Public Class cVERAG_CustomsDeclarations
|
||||
|
||||
Public Property hasEntry As Boolean = False
|
||||
|
||||
Public Shared IMPORTER_ROLES As String() = {"CN", "IM", "IMP", "IMPORTER", "CONSIGNEE"}
|
||||
Public Shared EXPORTER_ROLES As String() = {"CZ", "EX", "EXP", "EXPORTER", "CONSIGNOR"}
|
||||
Public Shared DECLARANT_ROLES As String() = {"CB", "DT", "ANM", "DEC", "VERTRETER", "DEKLARANT", "DECLARANT"}
|
||||
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
@@ -368,12 +371,12 @@ Public Class cVERAG_CustomsDeclarations
|
||||
|
||||
If hasCBAM(CBAM_ITEMS) Then
|
||||
|
||||
Dim vertreterEORI As String = Me.Parties.Where(Function(p) {"CB", "DT", "VERTRETER", "DEKLARANT", "DECLARANT"}.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim vertretenerEORI As String = Nothing 'Me.Parties.Where(Function(p) {"CN", "IM", "IMP", "IMPORTER"}.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim importerEORI As String = Me.Parties.Where(Function(p) {"CN", "IM", "IMP", "IMPORTER", "CONSIGNEE"}.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim ImporterString As String = Me.Parties.Where(Function(p) {"CN", "IM", "IMP", "IMPORTER", "CONSIGNEE"}.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_Name).FirstOrDefault()
|
||||
Dim ExporterEORI As String = Me.Parties.Where(Function(p) {"CZ", "EX", "EXP", "EXPORTER", "CONSIGNOR"}.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim ExporterString As String = Me.Parties.Where(Function(p) {"CZ", "EX", "EXP", "EXPORTER", "CONSIGNOR"}.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_Name).FirstOrDefault()
|
||||
Dim vertreterEORI As String = Me.Parties.Where(Function(p) DECLARANT_ROLES.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim vertreterString As String = Me.Parties.Where(Function(p) DECLARANT_ROLES.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_Name).FirstOrDefault()
|
||||
Dim importerEORI As String = Me.Parties.Where(Function(p) IMPORTER_ROLES.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim ImporterString As String = Me.Parties.Where(Function(p) IMPORTER_ROLES.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_Name).FirstOrDefault()
|
||||
Dim ExporterEORI As String = Me.Parties.Where(Function(p) EXPORTER_ROLES.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_EORI).FirstOrDefault()
|
||||
Dim ExporterString As String = Me.Parties.Where(Function(p) EXPORTER_ROLES.Contains(p.zaParty_Role)).Select(Function(p) p.zaParty_Name).FirstOrDefault()
|
||||
|
||||
Dim KD As cKunde = Nothing
|
||||
Dim AD As cAdressen = Nothing
|
||||
@@ -403,7 +406,32 @@ Public Class cVERAG_CustomsDeclarations
|
||||
|
||||
If isIndirect() Then
|
||||
|
||||
Dim EORI_IND = If(vertretenerEORI IsNot Nothing, vertretenerEORI, If(importerEORI IsNot Nothing, importerEORI, ExporterEORI))
|
||||
Dim vertretenerEORI = ""
|
||||
Dim vertretenerString = ""
|
||||
If importerEORI IsNot Nothing Then
|
||||
vertretenerEORI = importerEORI
|
||||
vertretenerString = ImporterString
|
||||
Else
|
||||
vertretenerEORI = ExporterEORI
|
||||
vertretenerString = ExporterString
|
||||
End If
|
||||
|
||||
Dim KD_IND As cKunde = Nothing
|
||||
Dim AD_IND As cAdressen = Nothing
|
||||
Dim ERW_IND As cKundenErweitert = Nothing
|
||||
Dim VERTR_IND As List(Of cKundenVertraege) = Nothing
|
||||
If If(ExporterEORI, "") <> "" Then
|
||||
KD_IND = cKunde.LOAD_ByEORI(ExporterEORI, If(za_Firma, ""))
|
||||
If KD_IND Is Nothing Then KD_IND = cKunde.LOAD_ByEORI(ExporterEORI) 'Wenn kein Kunde mit Firma gefunden wurde, nur nach EORI suchen (default VERAG)
|
||||
AD_IND = New cAdressen(KD_IND.KundenNr)
|
||||
|
||||
End If
|
||||
If AD_IND IsNot Nothing Then
|
||||
vertretenerString = AD_IND.Name_1 & " " & If(AD_IND.Name_2, "") & "<br/>" & If(AD_IND.LandKz, "") & " " & If(AD_IND.PLZ, "") & " " & If(AD_IND.Ort, "")
|
||||
ERW_IND = New cKundenErweitert(AD.AdressenNr)
|
||||
VERTR_IND = cKundenVertraege.LOAD_LISTOF(AD.AdressenNr)
|
||||
End If
|
||||
|
||||
|
||||
'==================>> INDIRECT <<=========================
|
||||
Dim itemsHtml As String =
|
||||
@@ -414,6 +442,27 @@ Public Class cVERAG_CustomsDeclarations
|
||||
"</tr>"
|
||||
))
|
||||
|
||||
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
|
||||
|
||||
|
||||
'Prüft, ob Vertrag vorliegt:
|
||||
Dim hasValidVertrag_CBAM As Boolean =
|
||||
VERTR_IND.Any(Function(v) _
|
||||
v.kv_vertragArtId = 8 AndAlso
|
||||
v.kv_gueltig AndAlso
|
||||
(Not v.kv_gueltigBis_Datum.HasValue OrElse
|
||||
v.kv_gueltigBis_Datum.Value.Date <= dateCBAM)
|
||||
)
|
||||
Dim vertragHinweisHtml As String =
|
||||
If(Not hasValidVertrag_CBAM,
|
||||
"<div style='margin:15px 0; padding:12px; border:2px solid #b00020; " &
|
||||
"background-color:#fdeaea; color:#b00020; font-weight:bold; font-size:13pt'>" &
|
||||
"⚠️ ACHTUNG: Es liegt kein gültiger CBAM-Vertrag vor!" &
|
||||
"</div>",
|
||||
"")
|
||||
|
||||
|
||||
Dim bodyHtml As String =
|
||||
"<html><body style='font-family:Segoe UI, Arial, sans-serif; font-size:12pt; color:#222'>" &
|
||||
"<h2 style='color:#b00020'>CBAM-Warnmeldung bei Zollanmeldung " & Me.za_MRN & "</h2>" &
|
||||
@@ -421,6 +470,7 @@ Public Class cVERAG_CustomsDeclarations
|
||||
"Bei der Zollanmeldung mit der MRN <b>" & Me.za_MRN & "</b> wurden CBAM-relevante Warenpositionen erkannt.<br/>" &
|
||||
"Bitte prüfen Sie diese Anmeldung im Hinblick auf die CBAM-Meldepflicht." &
|
||||
"</p>" &
|
||||
vertragHinweisHtml & ' <<< HIER die Einblendung abhängig von vertrag99
|
||||
"<h3>Erkannte CBAM-Positionen</h3>" &
|
||||
"<table cellpadding='6' cellspacing='0' border='1' style='border-collapse:collapse; width:100%'>" &
|
||||
"<tr style='background-color:#f0f0f0'>" &
|
||||
@@ -430,15 +480,21 @@ Public Class cVERAG_CustomsDeclarations
|
||||
"</tr>" &
|
||||
itemsHtml &
|
||||
"</table>" &
|
||||
"<p>" &
|
||||
"<p>" &
|
||||
"<b>Ind.Vertreter:</b><br/>" &
|
||||
If(vertreterEORI, "") & "<br>" & If(vertreterString, "") &
|
||||
"</p>" &
|
||||
"<p>" &
|
||||
"<b>Kunde:</b><br/>" &
|
||||
If(vertretenerEORI, "") & "<br>" & If(vertretenerString, "") &
|
||||
"</p>" &
|
||||
"<p>" &
|
||||
"<b>Importeur:</b><br/>" &
|
||||
If(importerEORI, "") & "<br>" & If(ImporterString, "") &
|
||||
"</p>" &
|
||||
"<p>" &
|
||||
"<p>" &
|
||||
"<b>Exporteur:</b><br/>" &
|
||||
If(ExporterEORI, "") & " – " & vbNewLine &
|
||||
If(AD_EX Is Nothing, ExporterString, AD_EX.Name_1 & " " & If(AD_EX.Name_2, "") & "<br/>" &
|
||||
If(AD_EX.LandKz, "") & " " & If(AD_EX.PLZ, "") & " " & If(AD_EX.Ort, "")) &
|
||||
If(ExporterEORI, "") & "<br>" & If(ExporterString, "") &
|
||||
"</p>" &
|
||||
"<br/><p><b>VERAG – CBAM Compliance Services</b></p>" &
|
||||
"</body></html>"
|
||||
@@ -466,7 +522,7 @@ Public Class cVERAG_CustomsDeclarations
|
||||
Dim dateCBAM = If(If(za_ReleaseDate, za_DeclarationDate), Now)
|
||||
|
||||
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), za_MRN) / 1000
|
||||
Dim eigenmasseSumme_YEAR As Decimal = getCBAM_KG(importerEORI, CDate("01.01." & dateCBAM.Year), CDate("31.12." & dateCBAM.Year)) / 1000
|
||||
|
||||
Dim WarnLevel As String = ""
|
||||
Dim Schwellenwert As Decimal = 0
|
||||
@@ -572,8 +628,9 @@ Public Class cVERAG_CustomsDeclarations
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function getCBAM_KG(EORI As String, von As Date, bis As Date, Optional without_MRN As String = "") As Decimal
|
||||
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
|
||||
Dim sqlstr = "SELECT SUM(i.zaItem_NetMass) AS CBAM_Eigenmasse_kg
|
||||
FROM VERAG.dbo.tblVERAG_CustomsDeclarations_Items i
|
||||
JOIN VERAG.dbo.tblVERAG_CustomsDeclarations z
|
||||
@@ -582,7 +639,9 @@ Public Class cVERAG_CustomsDeclarations
|
||||
JOIN VERAG.dbo.tblVERAG_CustomsDeclarations_Parties p
|
||||
ON p.zaParty_zaId = z.za_Id
|
||||
AND p.zaParty_EORI = '" & EORI & "'
|
||||
AND p.zaParty_Role IN ('CN','IM','IMP','IMPORTER')
|
||||
" & If(isDeclarant, "AND (p.zaParty_Role IN ('CB','DT','DEKLARANT','DECLARANT') ",
|
||||
" AND (p.zaParty_Role IN ('CN','IM','IMP','IMPORTER','CONSIGNEE') OR
|
||||
p.zaParty_Role IN ('CZ','EX','EXP','EXPORTER','CONSIGNOR'))") & "
|
||||
|
||||
WHERE z.za_ReleaseDate BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "'
|
||||
AND EXISTS (
|
||||
|
||||
Reference in New Issue
Block a user