diff --git a/DAKOSY_Worker/DAKOSY/ATLAS/EZA/cDakosyEZA.vb b/DAKOSY_Worker/DAKOSY/ATLAS/EZA/cDakosyEZA.vb
index 782cff9..d568f3c 100644
--- a/DAKOSY_Worker/DAKOSY/ATLAS/EZA/cDakosyEZA.vb
+++ b/DAKOSY_Worker/DAKOSY/ATLAS/EZA/cDakosyEZA.vb
@@ -117,6 +117,7 @@ Public Class cDakosyEZA
Property eza_AUFSCHUB As New List(Of cDakosy_EZA_Aufschub)
Property eza_SUMABA As New List(Of cDakosy_EZA_SumABeendigungsAnteil)
Property eza_BEA_ZLAvuv As New List(Of cDakosy_EZA_BEAnteilZLAVUV)
+ Property eza_DV1Kostenverteilung As New List(Of cDakosy_EZA_DV1Kosten)
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -153,87 +154,87 @@ Public Class cDakosyEZA
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LetzteBearbeitung_SB", eza_LetzteBearbeitung_SB))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_firma", eza_firma))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_niederlassung", eza_niederlassung))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Partner", eza_Trans_Partner))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Div1", eza_Trans_Div1))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Div2", eza_Trans_Div2))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Div3", eza_Trans_Div3))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Referenz", eza_Trans_Referenz))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_DatumZeit", eza_Trans_DatumZeit))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Version", eza_Trans_Version))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_NachrichtenSenderTIN", eza_NachrichtenSenderTIN))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_NachrichtenSenderNLNR", eza_NachrichtenSenderNLNR))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_NachrichtenempfaengerDST", eza_NachrichtenempfaengerDST))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ObjectName", eza_ObjectName))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ObjectAlias", eza_ObjectAlias))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerVorblendung", eza_BezugsnummerVorblendung))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Bearbeiter", eza_Bearbeiter))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldungArt", eza_AnmeldungArt))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_CompliancePruefung", eza_CompliancePruefung))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnfBemerkungStatusanzeige", eza_AnfBemerkungStatusanzeige))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AdressierteZollstelle", eza_AdressierteZollstelle))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmelderistEmpfaenger", eza_AnmelderistEmpfaenger))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VertretungsVerhaeltnisCode", eza_VertretungsVerhaeltnisCode))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Vorsteuerabzug", eza_Vorsteuerabzug))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterName", eza_AnmeldenderBearbeiterName))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterTel", eza_AnmeldenderBearbeiterTel))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterStellung", eza_AnmeldenderBearbeiterStellung))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterEMail", eza_AnmeldenderBearbeiterEMail))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_FiskalvertretungKz", eza_FiskalvertretungKz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Partner", eza_Trans_Partner))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Div1", eza_Trans_Div1))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Div2", eza_Trans_Div2))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Div3", eza_Trans_Div3))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Referenz", eza_Trans_Referenz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_DatumZeit", eza_Trans_DatumZeit))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Trans_Version", eza_Trans_Version))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_NachrichtenSenderTIN", eza_NachrichtenSenderTIN))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_NachrichtenSenderNLNR", eza_NachrichtenSenderNLNR))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_NachrichtenempfaengerDST", eza_NachrichtenempfaengerDST))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ObjectName", eza_ObjectName))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ObjectAlias", eza_ObjectAlias))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerVorblendung", eza_BezugsnummerVorblendung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Bearbeiter", eza_Bearbeiter))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldungArt", eza_AnmeldungArt))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_CompliancePruefung", eza_CompliancePruefung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnfBemerkungStatusanzeige", eza_AnfBemerkungStatusanzeige))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AdressierteZollstelle", eza_AdressierteZollstelle))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmelderistEmpfaenger", eza_AnmelderistEmpfaenger))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VertretungsVerhaeltnisCode", eza_VertretungsVerhaeltnisCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Vorsteuerabzug", eza_Vorsteuerabzug))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterName", eza_AnmeldenderBearbeiterName))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterTel", eza_AnmeldenderBearbeiterTel))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterStellung", eza_AnmeldenderBearbeiterStellung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnmeldenderBearbeiterEMail", eza_AnmeldenderBearbeiterEMail))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_FiskalvertretungKz", eza_FiskalvertretungKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Ausstellungsort", eza_Ausstellungsort))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ZollrechtlicherStatus", eza_ZollrechtlicherStatus))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_GesamtRohmasse", eza_GesamtRohmasse))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VerfahrenBeantragtCode", eza_VerfahrenBeantragtCode))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VerkehrszweigInland", eza_VerkehrszweigInland))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VerkehrszweigGrenze", eza_VerkehrszweigGrenze))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VersendungsLandCode", eza_VersendungsLandCode))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Bestimmungsbundesland", eza_Bestimmungsbundesland))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Bestimmungsland", eza_Bestimmungsland))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_KennzeichenNameBefoerderungsmittelAnkunft", eza_KennzeichenNameBefoerderungsmittelAnkunft))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode", eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeförderungsmittelGrenzeArt", eza_BeförderungsmittelGrenzeArt))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeförderungsmittelGrenze", eza_BeförderungsmittelGrenze))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungCode", eza_LieferbedingungCode))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungText", eza_LieferbedingungText))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungSchluessel", eza_LieferbedingungSchluessel))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungOrt", eza_LieferbedingungOrt))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ZollrechtlicherStatus", eza_ZollrechtlicherStatus))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_GesamtRohmasse", eza_GesamtRohmasse))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VerfahrenBeantragtCode", eza_VerfahrenBeantragtCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VerkehrszweigInland", eza_VerkehrszweigInland))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VerkehrszweigGrenze", eza_VerkehrszweigGrenze))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VersendungsLandCode", eza_VersendungsLandCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Bestimmungsbundesland", eza_Bestimmungsbundesland))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Bestimmungsland", eza_Bestimmungsland))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_KennzeichenNameBefoerderungsmittelAnkunft", eza_KennzeichenNameBefoerderungsmittelAnkunft))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode", eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeförderungsmittelGrenzeArt", eza_BeförderungsmittelGrenzeArt))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeförderungsmittelGrenze", eza_BeförderungsmittelGrenze))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungCode", eza_LieferbedingungCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungText", eza_LieferbedingungText))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungSchluessel", eza_LieferbedingungSchluessel))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_LieferbedingungOrt", eza_LieferbedingungOrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VorpapierArtCode", eza_VorpapierArtCode))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VorpapierNr", eza_VorpapierNr))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ArtGeschaeftCode", eza_ArtGeschaeftCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_VorpapierNr", eza_VorpapierNr))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ArtGeschaeftCode", eza_ArtGeschaeftCode))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Statistikstatus", eza_Statistikstatus))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Warenort", eza_Warenort))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Rechnungspreis", eza_Rechnungspreis))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Rechnungswaehrung", eza_Rechnungswaehrung))
- list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1Kz", eza_DV1Kz))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1Vertretungsverhaeltnis", eza_DV1Vertretungsverhaeltnis))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1FruehereEntscheidungen", eza_DV1FruehereEntscheidungen))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1Verbundenheit", eza_DV1Verbundenheit))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1VerbungenheitEinzelheiten", eza_DV1VerbungenheitEinzelheiten))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1EinschraenkungenKz", eza_DV1EinschraenkungenKz))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1BedingungenLeistungenKz", eza_DV1BedingungenLeistungenKz))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1BedingungenLeistungenArt", eza_DV1BedingungenLeistungenArt))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1LizenzgebuehrenKz", eza_DV1LizenzgebuehrenKz))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1LizenzgebuehrenUmstand", eza_DV1LizenzgebuehrenUmstand))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1SpezielleVereinbarungKz", eza_DV1SpezielleVereinbarungKz))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1SpezielleVereinbarungUmstand", eza_DV1SpezielleVereinbarungUmstand))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ZusatzangabenAnmeldung", eza_ZusatzangabenAnmeldung))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_KzAutoBestaetigung", eza_KzAutoBestaetigung))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnschreibungDatum", eza_AnschreibungDatum))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Eingangszollstelle", eza_Eingangszollstelle))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Zahlungsart", eza_Zahlungsart))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr1", eza_ContainerNr1))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr2", eza_ContainerNr2))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr3", eza_ContainerNr3))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr4", eza_ContainerNr4))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr5", eza_ContainerNr5))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr6", eza_ContainerNr6))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr8", eza_ContainerNr8))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr9", eza_ContainerNr9))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeendigungsanteilArtCode", eza_BeendigungsanteilArtCode))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BewilligungsIDZLAVUV", eza_BewilligungsIDZLAVUV))
-list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_BezugsnummerBEAnteilZL))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Warenort", eza_Warenort))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Rechnungspreis", eza_Rechnungspreis))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Rechnungswaehrung", eza_Rechnungswaehrung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1Kz", eza_DV1Kz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1Vertretungsverhaeltnis", eza_DV1Vertretungsverhaeltnis))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1FruehereEntscheidungen", eza_DV1FruehereEntscheidungen))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1Verbundenheit", eza_DV1Verbundenheit))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1VerbungenheitEinzelheiten", eza_DV1VerbungenheitEinzelheiten))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1EinschraenkungenKz", eza_DV1EinschraenkungenKz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1BedingungenLeistungenKz", eza_DV1BedingungenLeistungenKz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1BedingungenLeistungenArt", eza_DV1BedingungenLeistungenArt))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1LizenzgebuehrenKz", eza_DV1LizenzgebuehrenKz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1LizenzgebuehrenUmstand", eza_DV1LizenzgebuehrenUmstand))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1SpezielleVereinbarungKz", eza_DV1SpezielleVereinbarungKz))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_DV1SpezielleVereinbarungUmstand", eza_DV1SpezielleVereinbarungUmstand))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ZusatzangabenAnmeldung", eza_ZusatzangabenAnmeldung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_KzAutoBestaetigung", eza_KzAutoBestaetigung))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_AnschreibungDatum", eza_AnschreibungDatum))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Eingangszollstelle", eza_Eingangszollstelle))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Zahlungsart", eza_Zahlungsart))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr1", eza_ContainerNr1))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr2", eza_ContainerNr2))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr3", eza_ContainerNr3))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr4", eza_ContainerNr4))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr5", eza_ContainerNr5))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr6", eza_ContainerNr6))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr8", eza_ContainerNr8))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_ContainerNr9", eza_ContainerNr9))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BeendigungsanteilArtCode", eza_BeendigungsanteilArtCode))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BewilligungsIDZLAVUV", eza_BewilligungsIDZLAVUV))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_BezugsnummerBEAnteilZL))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_UstIdAnmelder", eza_UstIdAnmelder))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_FinanzamtAnmelder", eza_FinanzamtAnmelder))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_Anmeldedatum", eza_Anmeldedatum))
@@ -276,6 +277,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
If Not SAVE_Aufschub() Then Return False
If Not SAVE_BEAnteilZLAVUV() Then Return False
If Not SAVE_SumABeendigungsAnteil() Then Return False
+ If Not SAVE_DV1Kostenverteilung() Then Return False
Return True
End Function
@@ -291,6 +293,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
eza_AUFSCHUB.Clear()
eza_BEA_ZLAvuv.Clear()
eza_SUMABA.Clear()
+ eza_DV1Kostenverteilung.Clear()
End If
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblDakosy_eza WHERE eza_Id=@eza_Id ", conn)
@@ -315,6 +318,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
LOAD_Aufschub()
LOAD_BEAnteilZLAVUV()
LOAD_SumABeendigungsAnteil()
+ LOAD_DV1Kostenverteilung()
End If
LOAD = True
End If
@@ -357,6 +361,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
EZA.LOAD_Aufschub()
EZA.LOAD_BEAnteilZLAVUV()
EZA.LOAD_SumABeendigungsAnteil()
+ EZA.LOAD_DV1Kostenverteilung()
End If
dr.Close()
@@ -405,6 +410,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
eza_AUFSCHUB.Clear()
eza_BEA_ZLAvuv.Clear()
eza_SUMABA.Clear()
+ eza_DV1Kostenverteilung.Clear()
End If
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblDakosy_EZA WHERE eza_dyaAnmID=@eza_dyaAnmID ", conn)
@@ -429,6 +435,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
LOAD_Aufschub()
LOAD_BEAnteilZLAVUV()
LOAD_SumABeendigungsAnteil()
+ LOAD_DV1Kostenverteilung()
End If
LOADByAnmID = True
End If
@@ -449,6 +456,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
Me.LOAD_Aufschub()
Me.LOAD_BEAnteilZLAVUV()
Me.LOAD_SumABeendigungsAnteil()
+ Me.LOAD_DV1Kostenverteilung()
End Sub
@@ -482,6 +490,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
EZA.LOAD_Aufschub()
EZA.LOAD_BEAnteilZLAVUV()
EZA.LOAD_SumABeendigungsAnteil()
+ EZA.LOAD_DV1Kostenverteilung()
End If
dr.Close()
@@ -526,6 +535,7 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
EZA.LOAD_Aufschub()
EZA.LOAD_BEAnteilZLAVUV()
EZA.LOAD_SumABeendigungsAnteil()
+ EZA.LOAD_DV1Kostenverteilung()
End If
dr.Close()
@@ -1419,6 +1429,65 @@ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("eza_BezugsnummerBEAnteilZL", eza_
+
+ ' DV1-Kosten: separate Tabelle, damit Kopfkosten persistent und mehrfach speicherbar sind.
+ Public Sub LOAD_DV1Kostenverteilung()
+ eza_DV1Kostenverteilung.Clear()
+ If eza_Id <= 0 Then Exit Sub
+ Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
+ Using cmd As New SqlCommand("SELECT Kostenart, Kosten, KostenWaehrung, WechselkursArt, Verteilungsart, Minimalbetrag FROM dbo.tblDakosy_EZA_DV1Kostenverteilung WHERE eza_Id=@eza_Id ORDER BY Id", conn)
+ cmd.Parameters.Add("@eza_Id", SqlDbType.Int).Value = eza_Id
+ Using dr As SqlDataReader = cmd.ExecuteReader()
+ While dr.Read()
+ eza_DV1Kostenverteilung.Add(New cDakosy_EZA_DV1Kosten With {
+ .Kostenart = If(dr.IsDBNull(0), "", dr.GetString(0)),
+ .Kosten = If(dr.IsDBNull(1), "", dr.GetString(1)),
+ .KostenWaehrung = If(dr.IsDBNull(2), "", dr.GetString(2)),
+ .WechselkursArt = If(dr.IsDBNull(3), "", dr.GetString(3)),
+ .Verteilungsart = If(dr.IsDBNull(4), "", dr.GetString(4)),
+ .Minimalbetrag = If(dr.IsDBNull(5), "", dr.GetString(5))})
+ End While
+ End Using
+ End Using
+ End Using
+ End Sub
+
+ Public Function SAVE_DV1Kostenverteilung() As Boolean
+ If eza_Id <= 0 Then Return False
+ Try
+ Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
+ Using tran As SqlTransaction = conn.BeginTransaction()
+ Try
+ Using cmd As New SqlCommand("DELETE FROM dbo.tblDakosy_EZA_DV1Kostenverteilung WHERE eza_Id=@eza_Id", conn, tran)
+ cmd.Parameters.Add("@eza_Id", SqlDbType.Int).Value = eza_Id
+ cmd.ExecuteNonQuery()
+ End Using
+ For Each k As cDakosy_EZA_DV1Kosten In eza_DV1Kostenverteilung
+ Using cmd As New SqlCommand("INSERT INTO dbo.tblDakosy_EZA_DV1Kostenverteilung (eza_Id, Kostenart, Kosten, KostenWaehrung, WechselkursArt, Verteilungsart, Minimalbetrag) VALUES (@id,@art,@kosten,@waehrung,@kurs,@verteilung,@min)", conn, tran)
+ cmd.Parameters.Add("@id", SqlDbType.Int).Value = eza_Id
+ cmd.Parameters.Add("@art", SqlDbType.VarChar, 20).Value = If(k.Kostenart, "")
+ cmd.Parameters.Add("@kosten", SqlDbType.VarChar, 50).Value = If(k.Kosten, "")
+ cmd.Parameters.Add("@waehrung", SqlDbType.VarChar, 10).Value = If(k.KostenWaehrung, "")
+ cmd.Parameters.Add("@kurs", SqlDbType.VarChar, 20).Value = If(k.WechselkursArt, "")
+ cmd.Parameters.Add("@verteilung", SqlDbType.VarChar, 30).Value = If(k.Verteilungsart, "")
+ cmd.Parameters.Add("@min", SqlDbType.VarChar, 50).Value = If(k.Minimalbetrag, "")
+ cmd.ExecuteNonQuery()
+ End Using
+ Next
+ tran.Commit()
+ Catch
+ tran.Rollback()
+ Throw
+ End Try
+ End Using
+ End Using
+ Return True
+ Catch ex As Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod().Name)
+ Return False
+ End Try
+ End Function
+
End Class
Public Class cDakosy_EZA_Adressen
@@ -2481,4 +2550,13 @@ Public Class cDakosy_EZA_WarenpositionVerbrauchssteuer
Return ""
End Function
-End Class
\ No newline at end of file
+End Class
+
+Public Class cDakosy_EZA_DV1Kosten
+ Public Property Kostenart As String = ""
+ Public Property Kosten As String = ""
+ Public Property KostenWaehrung As String = ""
+ Public Property WechselkursArt As String = ""
+ Public Property Verteilungsart As String = ""
+ Public Property Minimalbetrag As String = ""
+End Class
diff --git a/DAKOSY_Worker/DAKOSY/ATLAS/NCTS/cDakosyNCTSOut004.vb b/DAKOSY_Worker/DAKOSY/ATLAS/NCTS/cDakosyNCTSOut004.vb
index c2f53df..a7e714b 100644
--- a/DAKOSY_Worker/DAKOSY/ATLAS/NCTS/cDakosyNCTSOut004.vb
+++ b/DAKOSY_Worker/DAKOSY/ATLAS/NCTS/cDakosyNCTSOut004.vb
@@ -3090,7 +3090,8 @@ Public Class cDakosyNCTSOut004
End Select
End Function
- Shared Function fillNCTS_WithEXG(ByRef NCTS_OUT As cDakosyNCTSOut004, exg As cDakosyEXG, Optional ObjectName As String = "", Optional AutoTranslate As Boolean? = Nothing, Optional ForceTranslate As Boolean? = Nothing) As cDakosyNCTSOut004
+
+ Shared Function fillNCTS_WithEXG(ByRef NCTS_OUT As cDakosyNCTSOut004, exg As cDakosyEXG, Optional ObjectName As String = "", Optional AutoTranslate As Boolean? = Nothing, Optional ForceTranslate As Boolean? = Nothing, Optional VersLandAusVersender As Boolean = False, Optional BestLandAusEmpfaenger As Boolean = False) As cDakosyNCTSOut004
If NCTS_OUT Is Nothing Then
NCTS_OUT = New DAKOSY_Worker.cDakosyNCTSOut004
@@ -3129,12 +3130,18 @@ Public Class cDakosyNCTSOut004
'House Consignment
HC.nctsHC_GrossMass = exg.exg_GrossMass
- HC.nctsHC_CountryOfDestination = exg.exg_CountryOfDestination
- 'Versendungsland: zuerst EXG, alternativ Versenderadresse
- HC.nctsHC_CountryOfDispatch = If(exg.exg_CountryOfDispatch, "").Trim().ToUpperInvariant()
- If String.IsNullOrWhiteSpace(HC.nctsHC_CountryOfDispatch) Then
- HC.nctsHC_CountryOfDispatch = If(exg.exg_Consignor_Country, "").Trim().ToUpperInvariant()
+ 'Versendungs- und Bestimmungsland aus EXG
+ HC.nctsHC_CountryOfDispatch = exg.exg_CountryOfDispatch
+ HC.nctsHC_CountryOfDestination = exg.exg_CountryOfDestination
+
+ 'Optionale Übernahme aus Versender- bzw. Empfängeradresse
+ If VersLandAusVersender AndAlso Not String.IsNullOrWhiteSpace(Convert.ToString(HC.nctsHC_Consignor_Country)) Then
+ HC.nctsHC_CountryOfDispatch = HC.nctsHC_Consignor_Country
+ End If
+
+ If BestLandAusEmpfaenger AndAlso Not String.IsNullOrWhiteSpace(Convert.ToString(HC.nctsHC_Consignee_Country)) Then
+ HC.nctsHC_CountryOfDestination = HC.nctsHC_Consignee_Country
End If
'UCR bewusst nicht übernehmen
@@ -3205,10 +3212,9 @@ Public Class cDakosyNCTSOut004
HC_ITEM.nctsHCCI_DeclarationType = DetermineTransitProcedure(EXG_POS.exgPos_RequestedProcedure, EXG_POS.exgPos_PreviousProcedure)
Debug.WriteLine($"NCTS Transit: Requested={EXG_POS.exgPos_RequestedProcedure}, Previous={EXG_POS.exgPos_PreviousProcedure}, Result={HC_ITEM.nctsHCCI_DeclarationType}")
-
End If
- 'Packstücke
+ 'Packstücke zunächst ohne Beipackverweise übernehmen
If EXG_POS.exgPos_PACKAGING IsNot Nothing Then
For Each EXG_PK In EXG_POS.exgPos_PACKAGING
@@ -3218,31 +3224,61 @@ Public Class cDakosyNCTSOut004
HC_PK.nctsHCCIPK_TypeOfPackages = EXG_PK.exgPosPk_TypeOfPackages
HC_PK.nctsHCCIPK_ShippingMarks = EXG_PK.exgPosPk_ShippingMarks
- If Val(Convert.ToString(EXG_PK.exgPosPk_NumberOfPackages)) = 0 Then
- 'Verweis auf erste Warenposition im selben House Consignment
- HC_PK.nctsHCCIPK_GoodsItemNumber = 1
- End If
-
HC_ITEM.nctsHCCI_PACKAGING.Add(HC_PK)
Next
End If
HC.nctsWP_CONSIGNMENT_ITEM.Add(HC_ITEM)
+
+ Next
+
+ 'Beipackverweise erst nach vollständiger Erstellung aller Warenpositionen ermitteln
+ For Each item In HC.nctsWP_CONSIGNMENT_ITEM
+ For Each pk In item.nctsHCCI_PACKAGING
+
+ 'Nur Packstücke mit expliziter Anzahl 0 sind Beipack-Kandidaten
+ Dim packageCount As String = Convert.ToString(pk.nctsHCCIPK_NumberOfPackages).Trim()
+ If packageCount <> "0" Then Continue For
+
+ Dim shippingMarks As String = Convert.ToString(pk.nctsHCCIPK_ShippingMarks).Trim()
+ If shippingMarks = "" Then
+ Debug.WriteLine("NCTS Beipack: Versandzeichen fehlen / EXG " & exg.exg_ObjectName)
+ Continue For
+ End If
+
+ Dim referencePosition As Integer = 0
+
+ 'Erste Warenposition mit identischem Versandzeichen und Packstückanzahl > 0 suchen
+ For i As Integer = 0 To HC.nctsWP_CONSIGNMENT_ITEM.Count - 1
+
+ Dim candidate = HC.nctsWP_CONSIGNMENT_ITEM(i)
+ If candidate Is item Then Continue For
+
+ Dim matchingPK = candidate.nctsHCCI_PACKAGING.FirstOrDefault(
+ Function(p) Val(Convert.ToString(p.nctsHCCIPK_NumberOfPackages)) > 0 AndAlso
+ String.Equals(Convert.ToString(p.nctsHCCIPK_ShippingMarks).Trim(), shippingMarks, StringComparison.OrdinalIgnoreCase))
+
+ If matchingPK IsNot Nothing Then
+ referencePosition = i + 1
+ Exit For
+ End If
+
+ Next
+
+ If referencePosition > 0 Then
+ pk.nctsHCCIPK_GoodsItemNumber = referencePosition
+ Else
+ Debug.WriteLine("NCTS Beipack: Keine Hauptpackposition für Versandzeichen '" & shippingMarks & "' gefunden / EXG " & exg.exg_ObjectName)
+ End If
+
+ Next
Next
NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Add(HC)
'Verfahrensart wird erst nach Zusammenführung aller EXG bestimmt
'Positions-Verfahrensarten bleiben bis dahin erhalten
- 'Dim declType As String = GetDeclarationType(NCTS_OUT.ncts_HOUSE_CONSIGNMENT)
-
- 'If declType <> "" Then
- ' emptyAllDeclarationItems(NCTS_OUT.ncts_HOUSE_CONSIGNMENT)
- ' NCTS_OUT.ncts_Declarationtype = declType
- 'Else
- ' NCTS_OUT.ncts_Declarationtype = "T-"
- 'End If
'Kein SAVE_ALL: erfolgt nach Zusammenführung aller EXG-Anmeldungen
diff --git a/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj b/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj
index 561f068..085162f 100644
--- a/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj
+++ b/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj
@@ -45,6 +45,9 @@
On
+
+ F:\PROGRAMMIERUNG\dll\closedxml\95\ClosedXML.dll
+
diff --git a/DAKOSY_Worker/cImporter_DakosyToVERAG.vb b/DAKOSY_Worker/cImporter_DakosyToVERAG.vb
index 0bb86af..0b6d179 100644
--- a/DAKOSY_Worker/cImporter_DakosyToVERAG.vb
+++ b/DAKOSY_Worker/cImporter_DakosyToVERAG.vb
@@ -1,4 +1,6 @@
Imports System.Data.SqlClient
+Imports System.IO
+Imports ClosedXML.Excel
Imports VERAG_PROG_ALLGEMEIN
Public Class cImporter_DakosyToVERAG
@@ -340,6 +342,16 @@ Public Class cImporter_DakosyToVERAG
' ======KAFKA==========================================================
If saved AndAlso freshInsert Then cDakosyEZA_Greenpulse.INSERT_KAFKA(ZA)
' ================================================================
+
+
+ If saved Then
+ Try
+ UpdateBrokerManagementFileTETRAPAK(ZA)
+ Catch ex As Exception
+ cErrorHandler.ERR(ex.Message, ex.StackTrace, "UpdateBrokerManagementFile")
+ End Try
+ End If
+
Return saved
@@ -349,6 +361,323 @@ Public Class cImporter_DakosyToVERAG
End Try
End Function
+ Public Sub UpdateBrokerManagementFileTETRAPAK(ZA As cVERAG_CustomsDeclarations)
+ Const kundenNrTETRAPAK As Integer = 719649
+ Const prefix As String = "[TETRAPAK] "
+
+ Debug.WriteLine(prefix & "========== START BrokerManagementFile ==========")
+
+ Try
+ If ZA Is Nothing OrElse ZA.za_Id <= 0 Then
+ Debug.WriteLine(prefix & "ABBRUCH: Keine gültige Zollanmeldung")
+ Exit Sub
+ End If
+
+ 'Zollanmeldung vollständig aus VERAG-Datenbank laden
+ Dim ZOLL As New cVERAG_CustomsDeclarations
+ ZOLL.za_Id = ZA.za_Id
+ ZOLL.LOAD()
+
+ If Not ZOLL.hasEntry Then
+ Throw New Exception("Zollanmeldung nicht gefunden. za_Id=" & ZA.za_Id)
+ End If
+
+ Debug.WriteLine(prefix & "ZA-ID: " & ZOLL.za_Id)
+ Debug.WriteLine(prefix & "MRN: " & Convert.ToString(ZOLL.za_MRN))
+ Debug.WriteLine(prefix & "LRN: " & Convert.ToString(ZOLL.za_LRN))
+ Debug.WriteLine(prefix & "AvisoId: " & Convert.ToString(ZOLL.za_AvisoId))
+ Debug.WriteLine(prefix & "SendungsId: " & Convert.ToString(ZOLL.za_SendungsId))
+
+ If Not ZOLL.za_SendungsId.HasValue OrElse ZOLL.za_SendungsId.Value <= 0 Then
+ Debug.WriteLine(prefix & "ABBRUCH: Keine SendungsId")
+ Exit Sub
+ End If
+
+ 'Auftraggeber prüfen
+ Dim SND As New VERAG_PROG_ALLGEMEIN.cSendungen(ZOLL.za_SendungsId.Value)
+
+ Debug.WriteLine(prefix & "Auftraggeber: " & Convert.ToString(SND.tblSnd_Auftraggeber))
+ Debug.WriteLine(prefix & "Kundennummer: " & Convert.ToString(SND.tblSnd_AuftraggeberKdNr))
+
+ Dim kundenNr As Integer
+ If Not Integer.TryParse(Convert.ToString(SND.tblSnd_AuftraggeberKdNr), kundenNr) Then
+ Debug.WriteLine(prefix & "ABBRUCH: Ungültige Kundennummer")
+ Exit Sub
+ End If
+
+ If kundenNr <> kundenNrTETRAPAK Then
+ Debug.WriteLine(prefix & "ABBRUCH: Kein TETRAPAK-Auftraggeber")
+ Exit Sub
+ End If
+
+ 'Warenpositionen aus tblVERAG_CustomsDeclarations_Items
+ Dim positionen = ZOLL.Items.OrderBy(Function(p) p.zaItem_PosNo).ToList()
+
+ If positionen.Count = 0 Then
+ Debug.WriteLine(prefix & "ABBRUCH: Keine Warenpositionen vorhanden")
+ Exit Sub
+ End If
+
+ Debug.WriteLine(prefix & "Warenpositionen: " & positionen.Count)
+ Debug.WriteLine(prefix & "Kopfabgaben: " & ZOLL.Duties.Count)
+
+ 'Abgaben aus tblVERAG_CustomsDeclarations_Duties
+ 'Positionen und Kopf getrennt behandeln
+ Dim gesamtZollPositionen As Decimal = 0D
+ Dim gesamtEustPositionen As Decimal = 0D
+ Dim gesamtZollKopf As Decimal = 0D
+ Dim gesamtEustKopf As Decimal = 0D
+ Dim anzahlPositionsabgaben As Integer = 0
+
+ For Each wp In positionen
+ Debug.WriteLine(prefix & "Position " & wp.zaItem_PosNo & " | ItemId=" & wp.zaItem_Id & " | Abgaben=" & wp.Duties.Count)
+
+ For Each duty In wp.Duties
+ Dim betrag As Decimal = If(duty.zaDuty_AmountEUR, 0D)
+ Dim art As String = If(duty.zaDuty_DutyType, "").Trim().ToUpperInvariant()
+
+ Select Case art
+ Case "A0000", "A00"
+ gesamtZollPositionen += betrag
+ Case "B0000", "B00"
+ gesamtEustPositionen += betrag
+ End Select
+
+ anzahlPositionsabgaben += 1
+
+ Debug.WriteLine(prefix & " Duty: " & art &
+ " | Betrag=" & betrag.ToString("0.00") &
+ " | ItemId=" & Convert.ToString(duty.zaDuty_zaItemId))
+ Next
+ Next
+
+ For Each duty In ZOLL.Duties
+ Dim betrag As Decimal = If(duty.zaDuty_AmountEUR, 0D)
+ Dim art As String = If(duty.zaDuty_DutyType, "").Trim().ToUpperInvariant()
+
+ Select Case art
+ Case "A0000", "A00"
+ gesamtZollKopf += betrag
+ Case "B0000", "B00"
+ gesamtEustKopf += betrag
+ End Select
+
+ Debug.WriteLine(prefix & "Kopfabgabe: " & art & " | Betrag=" & betrag.ToString("0.00"))
+ Next
+
+ Debug.WriteLine(prefix & "Positions-Zoll gesamt: " & gesamtZollPositionen.ToString("0.00"))
+ Debug.WriteLine(prefix & "Positions-EUSt gesamt: " & gesamtEustPositionen.ToString("0.00"))
+ Debug.WriteLine(prefix & "Kopf-Zoll gesamt: " & gesamtZollKopf.ToString("0.00"))
+ Debug.WriteLine(prefix & "Kopf-EUSt gesamt: " & gesamtEustKopf.ToString("0.00"))
+
+ 'Bei fehlenden Positionsabgaben keine künstliche Verteilung
+ Dim nurKopfabgaben As Boolean = (anzahlPositionsabgaben = 0)
+
+ If nurKopfabgaben AndAlso positionen.Count > 1 AndAlso ZOLL.Duties.Count > 0 Then
+ Throw New Exception("BrokerManagementFile: Es sind " & positionen.Count &
+ " Warenpositionen vorhanden, aber nur Kopfabgaben gespeichert. " &
+ "Eine eindeutige Verteilung von Zoll/EUSt ist nicht möglich. ZA-ID=" & ZOLL.za_Id)
+ End If
+
+ If nurKopfabgaben AndAlso ZOLL.Duties.Count = 0 Then
+ Debug.WriteLine(prefix & "WARNUNG: Keine Abgaben in der Zollanmeldung gespeichert")
+ End If
+
+ If Not nurKopfabgaben Then
+ If ZOLL.Duties.Count > 0 Then
+ If gesamtZollPositionen <> gesamtZollKopf OrElse gesamtEustPositionen <> gesamtEustKopf Then
+ Debug.WriteLine(prefix & "WARNUNG: Positionssummen und Kopfsummen weichen voneinander ab")
+ Else
+ Debug.WriteLine(prefix & "OK: Positionssummen entsprechen den Kopfsummen")
+ End If
+ End If
+ End If
+
+ 'Anhänge über AVISO und Sendung laden
+ Dim anhaenge As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge)
+
+ If ZOLL.za_AvisoId.HasValue AndAlso ZOLL.za_AvisoId.Value > 0 Then
+ VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_ByAviso(anhaenge, ZOLL.za_AvisoId.Value)
+ End If
+
+ Dim sendungsAnhaenge As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge)
+ VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_BySendung(sendungsAnhaenge, ZOLL.za_SendungsId.Value)
+
+ For Each anh In sendungsAnhaenge
+ If Not anhaenge.Any(Function(a) a.anh_docId = anh.anh_docId) Then anhaenge.Add(anh)
+ Next
+
+ Debug.WriteLine(prefix & "Anhänge gefunden: " & anhaenge.Count)
+
+ Dim dateienGefunden As Integer = 0
+ Dim dateienGespeichert As Integer = 0
+
+ For Each anh In anhaenge
+ Debug.WriteLine(prefix & "Prüfe Anhang: " & Convert.ToString(anh.anh_Art) & " | docId=" & anh.anh_docId)
+
+ If Not String.Equals(Convert.ToString(anh.anh_Art).Trim(), "BrokerManagementFile", StringComparison.OrdinalIgnoreCase) Then Continue For
+ If anh.anh_docId <= 0 Then Continue For
+
+ Dim pfad As String = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(anh.anh_docId)).GET_TOP1_PATH(False)
+
+ Debug.WriteLine(prefix & "Archivpfad: " & Convert.ToString(pfad))
+
+ If String.IsNullOrWhiteSpace(pfad) OrElse Not File.Exists(pfad) Then
+ Debug.WriteLine(prefix & "Übersprungen: Archivdatei nicht gefunden")
+ Continue For
+ End If
+
+ If Not String.Equals(Path.GetExtension(pfad), ".xlsx", StringComparison.OrdinalIgnoreCase) Then
+ Debug.WriteLine(prefix & "Übersprungen: Keine XLSX-Datei")
+ Continue For
+ End If
+
+ dateienGefunden += 1
+
+ Using wb As New XLWorkbook(pfad)
+ Dim ws = wb.Worksheet(1)
+ Dim letzteVerwendeteZeile = ws.LastRowUsed()
+
+ If letzteVerwendeteZeile Is Nothing Then
+ Debug.WriteLine("BrokerManagementFile ist leer: " & pfad)
+ End If
+
+ 'Datenzeilen anhand Spalte A
+ Dim datenZeilen As New List(Of Integer)
+ Dim letzteZeile As Integer = letzteVerwendeteZeile.RowNumber()
+
+ For zeile As Integer = 2 To letzteZeile
+ If Not String.IsNullOrWhiteSpace(ws.Cell(zeile, "A").GetString()) Then datenZeilen.Add(zeile)
+ Next
+
+ Debug.WriteLine(prefix & "Excel-Zeilen: " & datenZeilen.Count)
+ Debug.WriteLine(prefix & "Zollpositionen: " & positionen.Count)
+
+ If datenZeilen.Count <> positionen.Count Then
+ Debug.WriteLine("BrokerManagementFile: Positionsanzahl stimmt nicht überein. Excel=" &
+ datenZeilen.Count & ", Zollanmeldung=" & positionen.Count & ", Datei=" & pfad)
+ End If
+
+ For i As Integer = 0 To positionen.Count - 1
+ Dim wp = positionen(i)
+ Dim zeile As Integer = datenZeilen(i)
+ Dim posNr As Integer = wp.zaItem_PosNo
+
+ Dim zollbetr As Decimal = 0D
+ Dim eust As Decimal = 0D
+
+ 'Positionsabgaben aus Datenbank
+ If Not nurKopfabgaben Then
+ For Each duty In wp.Duties
+ Dim betrag As Decimal = If(duty.zaDuty_AmountEUR, 0D)
+ Dim art As String = If(duty.zaDuty_DutyType, "").Trim().ToUpperInvariant()
+ Select Case art.Trim.ToUpperInvariant()
+ 'Zoll inkl. Zusatz-, Antidumping- und Ausgleichszoll
+ Case "A0000", "A00", "A2000", "A20", "A3000", "A30", "A35", "A4000", "A40"
+ zollbetr += betrag
+
+ 'Einfuhrumsatzsteuer
+ Case "B0000", "B00", "5EV"
+ eust += betrag
+
+ 'Sicherheiten, Summen und sonstige Abgaben nicht berücksichtigen
+ Case "2EU", "2IG", "2KO", "2PE", "2VF", "2VS", "5EU", "5ZO", "9EA", "6BE"
+ 'Keine Addition
+
+ Case Else
+ 'Debug.WriteLine("Unbekannte Abgabenart: " & art & " / Betrag: " & betrag.ToString())
+ zollbetr += betrag 'Default: Alle unbekannten Abgabenarten werden als Zoll behandelt
+ End Select
+ Next
+ ElseIf positionen.Count = 1 Then
+ 'Nur bei einer Position sind Kopfabgaben eindeutig zuordenbar
+ zollbetr = gesamtZollKopf
+ eust = gesamtEustKopf
+ End If
+
+ Debug.WriteLine(prefix & "----------------------------------------")
+ Debug.WriteLine(prefix & "Position: " & posNr)
+ Debug.WriteLine(prefix & "Excel-Zeile: " & zeile)
+ Debug.WriteLine(prefix & "Zoll: " & zollbetr.ToString("0.00"))
+ Debug.WriteLine(prefix & "EUSt: " & eust.ToString("0.00"))
+
+ 'AZ - Registration Number ATC/ATD
+ ws.Cell(zeile, "AZ").Value = If(zoll.za_DeclarationNo, "")
+
+ 'BA - Date of Acceptance
+ If zoll.za_AcceptanceDate.HasValue Then
+ ws.Cell(zeile, "BA").Value = zoll.za_AcceptanceDate.Value.ToString("dd.MM.yyyy")
+ Else
+ ws.Cell(zeile, "BA").Value = ""
+ End If
+
+ 'BB - Registration Number MRN
+ ws.Cell(zeile, "BB").Value = If(zoll.za_MRN, "")
+
+ 'BC - Office of Entry
+ ws.Cell(zeile, "BC").Value = If(zoll.za_EntryCustomsOffice, "")
+
+ 'BD - Mode of Transport at the Border
+ ws.Cell(zeile, "BD").Value = If(ZOLL.za_TransportModeBorder, If(ZOLL.za_TransportModeInland, ""))
+
+ 'BE - Identity of means of transport at the border
+ ws.Cell(zeile, "BE").Value = If(zoll.za_MeansOfTransport_Vehicle, "")
+
+ 'BF - Nationality of means of transport at the border
+ ws.Cell(zeile, "BF").Value = If(zoll.za_MeansOfTransport_Nationality, "")
+
+ 'BG - Inland Mode of Transport
+ ws.Cell(zeile, "BG").Value = If(ZOLL.za_TransportModeInland, If(ZOLL.za_TransportModeBorder, ""))
+
+ 'BH - Identity of inland means of transport
+ ws.Cell(zeile, "BH").Value = If(zoll.za_MeansOfTransport_Vehicle, "")
+
+ 'BI - Nationality of inland means of transport
+ ws.Cell(zeile, "BI").Value = If(zoll.za_MeansOfTransport_Nationality, "")
+
+ 'BJ - Assessment of payable duty
+ ws.Cell(zeile, "BJ").Value = zollbetr
+ ws.Cell(zeile, "BJ").Style.NumberFormat.Format = "0.00"
+
+ 'BK - Assessment of payable Import VAT
+ ws.Cell(zeile, "BK").Value = eust
+ ws.Cell(zeile, "BK").Style.NumberFormat.Format = "0.00"
+
+ Debug.WriteLine(prefix & "AZ=" & ws.Cell(zeile, "AZ").GetString())
+ Debug.WriteLine(prefix & "BA=" & ws.Cell(zeile, "BA").GetString())
+ Debug.WriteLine(prefix & "BB=" & ws.Cell(zeile, "BB").GetString())
+ Debug.WriteLine(prefix & "BC=" & ws.Cell(zeile, "BC").GetString())
+ Debug.WriteLine(prefix & "BD=" & ws.Cell(zeile, "BD").GetString())
+ Debug.WriteLine(prefix & "BE=" & ws.Cell(zeile, "BE").GetString())
+ Debug.WriteLine(prefix & "BF=" & ws.Cell(zeile, "BF").GetString())
+ Debug.WriteLine(prefix & "BG=" & ws.Cell(zeile, "BG").GetString())
+ Debug.WriteLine(prefix & "BH=" & ws.Cell(zeile, "BH").GetString())
+ Debug.WriteLine(prefix & "BI=" & ws.Cell(zeile, "BI").GetString())
+ Debug.WriteLine(prefix & "BJ=" & zollbetr.ToString("0.00"))
+ Debug.WriteLine(prefix & "BK=" & eust.ToString("0.00"))
+ Next
+
+
+ wb.Save()
+ Debug.WriteLine(prefix & "Original gespeichert: " & pfad)
+
+
+ dateienGespeichert += 1
+ End Using
+ Next
+
+ Debug.WriteLine(prefix & "BrokerManagementFiles gefunden: " & dateienGefunden)
+ Debug.WriteLine(prefix & "BrokerManagementFiles gespeichert: " & dateienGespeichert)
+
+ If dateienGefunden = 0 Then Debug.WriteLine(prefix & "WARNUNG: Kein BrokerManagementFile gefunden")
+
+ Catch ex As Exception
+ Debug.WriteLine(prefix & "FEHLER: " & ex.ToString())
+ Throw
+ Finally
+ Debug.WriteLine(prefix & "========== ENDE BrokerManagementFile ==========")
+ End Try
+ End Sub
' =====================================================================
' NCTS 004 -> VERAG TRANSIT
' =====================================================================
diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb
index db2a37a..0aeb8d5 100644
--- a/initATLASAufschubkonten/frmStartOptions.vb
+++ b/initATLASAufschubkonten/frmStartOptions.vb
@@ -1439,7 +1439,25 @@ Public Class frmStartOptions
End If
'---------------------------------------------------------
+ '---------------------------------------------------------
+ ' BrokerManagementFile immer zusätzlich anhängen
+ '---------------------------------------------------------
+ If SND.tblSnd_SendungID > 0 Then
+ Dim ANH_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge)
+ VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge.LOAD_LIST_BySendung(ANH_LIST, SND.tblSnd_SendungID)
+ For Each l In ANH_LIST
+ If String.Equals(Convert.ToString(l.anh_Art), "BrokerManagementFile", StringComparison.OrdinalIgnoreCase) Then
+ If l.anh_docId > 0 Then
+ Dim PathTmpANH = (New VERAG_PROG_ALLGEMEIN.cDATENSERVER(l.anh_docId)).GET_TOP1_PATH(False)
+ If Not String.IsNullOrWhiteSpace(PathTmpANH) AndAlso Not pfadList.Contains(PathTmpANH) Then
+ pfadList.Add(PathTmpANH)
+ End If
+ End If
+ End If
+ Next
+ End If
+ '---------------------------------------------------------
VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigung.eMails_einlesen(KundenNr, Mail_Art, EMails, EMails_CC, EMails_BCC, Emails_list_sent)
' body = body.Replace("%Platzhalter%", "E-Mails: " & EMails & " CC: " & EMails_CC & " BCC:" & EMails_BCC)