This commit is contained in:
2025-01-27 15:07:24 +01:00
18 changed files with 4379 additions and 62 deletions

View File

@@ -2,6 +2,7 @@
Imports DAKOSY_Worker
Imports DocumentFormat.OpenXml.Wordprocessing
Imports java.nio.channels
Imports javax.management
Imports Spire.Pdf
Imports VERAG_PROG_ALLGEMEIN
@@ -33,6 +34,7 @@ Public Class cWorker_AES_EXG
If RESP.HeaderData IsNot Nothing Then
If RESP.HeaderData.MRN IsNot Nothing Then
MRN = RESP.HeaderData.MRN
End If
End If
@@ -41,13 +43,86 @@ Public Class cWorker_AES_EXG
End If
'----------------------------------------------------------------------
'QULAIFIZIERUNG!
'EXZ SAVE!
'----------------------------------------------------------------------
If True Then 'BEZUGSNR vorhanden
Dim EXG = DAKOSY_Worker.cDakosyEXG.LOADByBezugsNr(readEZA_DatenZumAusgang_DataEXITDE_005, True)
If EXG Is Nothing Then EXG = New cDakosyEXG
'EXG.consignee
EXG.exg_ObjectName = readEZA_DatenZumAusgang_DataEXITDE_005
EXG.exg_Partnersystem = "DAKOSY"
EXG.exg_Erstellung = zp
' EXG.exg_firma = RESP.HeaderData.
EXG.exg_Declarationtype = RESP.HeaderData.DeclarationType
EXG.exg_Security = RESP.HeaderData.Security
EXG.exg_MRN = RESP.HeaderData.MRN
EXG.exg_ContainerIndicator = RESP.HeaderData.ContainerIndicator
EXG.exg_GrossMass = RESP.HeaderData.GrossMass
EXG.exg_CountryOfDestination = RESP.HeaderData.CountryOfDestination
EXG.exg_ReferenceNumberUCR = RESP.HeaderData.ReferenceNumberUCR
frmDYNachrichtenVerarbeitung.setFirmaNL(VWI.Transaktion.IOPartner, VWI.Transaktion.IODivision3, EXG.exg_firma, EXG.exg_niederlassung)
If RESP.HeaderData.Consignee IsNot Nothing Then
EXG.exg_Consignee_Name = RESP.HeaderData.Consignee.Name
EXG.exg_Consignee_StreetNumber = RESP.HeaderData.Consignee.StreetAndNumber
EXG.exg_Consignee_City = RESP.HeaderData.Consignee.City
EXG.exg_Consignee_Postcode = RESP.HeaderData.Consignee.Postcode
EXG.exg_Consignee_Country = RESP.HeaderData.Consignee.Country
EXG.exg_Consignee_IdentificationNumber = RESP.HeaderData.Consignee.IdentificationNumber
EXG.exg_Consignee_SubsidiaryNumber = RESP.HeaderData.Consignee.SubsidiaryNumber
End If
If RESP.HeaderData.Exporter IsNot Nothing Then
EXG.exg_Consignor_Name = RESP.HeaderData.Exporter.Name
EXG.exg_Consignor_StreetNumber = RESP.HeaderData.Exporter.StreetAndNumber
EXG.exg_Consignor_City = RESP.HeaderData.Exporter.City
EXG.exg_Consignor_Postcode = RESP.HeaderData.Exporter.Postcode
EXG.exg_Consignor_Country = RESP.HeaderData.Exporter.Country
EXG.exg_Consignor_IdentificationNumber = RESP.HeaderData.Exporter.IdentificationNumber
EXG.exg_Consignor_SubsidiaryNumber = RESP.HeaderData.Exporter.SubsidiaryNumber
End If
If RESP.GoodsItem IsNot Nothing Then
For Each ITEM In RESP.GoodsItem
Dim EXG_ITEM As New cDakosy_EXG_Position
EXG_ITEM.exgPos_GoodsItemNumber = ITEM.GoodsItemNumber
EXG_ITEM.exgPos_CommodityCode = ITEM.HarmonizedSystemSubHeadingCode & ITEM.CombinedNomenclatureCode
EXG_ITEM.exgPos_DescriptionOfGoods = ITEM.DescriptionOfGoods
EXG_ITEM.exgPos_NetMass = ITEM.NetMass
EXG_ITEM.exgPos_GrossMass = ITEM.GrossMass
If RESP.GoodsItem IsNot Nothing Then
For Each ITEM_PK In ITEM.Packaging
Dim EXG_ITEM_PK As New cDakosy_EXG_Position_Packaging
EXG_ITEM_PK.exgPosPk_NumberOfPackages = ITEM_PK.NumberOfPackages
EXG_ITEM_PK.exgPosPk_TypeOfPackages = ITEM_PK.TypeOfPackages
EXG_ITEM_PK.exgPosPk_ShippingMarks = ITEM_PK.ShippingMarks
EXG_ITEM.exgPos_PACKAGING.Add(EXG_ITEM_PK)
Next
End If
EXG.exg_POSITION.Add(EXG_ITEM)
Next
End If
If EXG.SAVE_ALL Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(VWI.Transaktion.IOReferenz, VWI.Transaktion.IODatumZeit)
STATUS.dySt_BezugsNr = readEZA_DatenZumAusgang_DataEXITDE_005
STATUS.dySt_artMitteilung = "EXG_DATA"
STATUS.dySt_dyArt = "AES"
STATUS.dySt_dyArt = "EXG"
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_00
STATUS.dySt_ergCode = "EXG_DATA"
@@ -56,10 +131,141 @@ Public Class cWorker_AES_EXG
STATUS.SAVE()
'----------------------------------------------------------------------
'Es wird bei Daten zum AUsgang und "_EXG_" automaitsch die Qualifizierung aufgerufen...
If readEZA_DatenZumAusgang_DataEXITDE_005.Contains("_EXG_") Then
'----------------------------------------------------------------------
'NCTS AKtualisieren!
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'Wenn markiert wurde, dass die NCTS Daten ergänzt werden sollten
'----------------------------------------------------------------------
If EXG.exg_AutoFill_DyId IsNot Nothing AndAlso EXG.exg_AutoFill_DyId >= 0 Then
Dim NCTS_OUT = DAKOSY_Worker.cDakosyNCTSOut004.LOADByAnmIDFull(EXG.exg_AutoFill_DyId, False)
If NCTS_OUT IsNot Nothing Then
Dim HC As New cDakosy_NCTSOut004_HouseConsignment
HC.nctsHC_Consignee_Name = EXG.exg_Consignee_Name
HC.nctsHC_Consignee_IdentificationNumber = EXG.exg_Consignee_IdentificationNumber
HC.nctsHC_Consignee_SubsidiaryNumber = EXG.exg_Consignee_SubsidiaryNumber
HC.nctsHC_Consignee_StreetNumber = EXG.exg_Consignee_StreetNumber
HC.nctsHC_Consignee_City = EXG.exg_Consignee_City
HC.nctsHC_Consignee_Postcode = EXG.exg_Consignee_Postcode
HC.nctsHC_Consignee_Country = EXG.exg_Consignee_Country
HC.nctsHC_Consignee_ContactPerson_Name = EXG.exg_Consignee_ContactPerson_Name
HC.nctsHC_Consignee_ContactPerson_PhoneNumber = EXG.exg_Consignee_ContactPerson_PhoneNumber
HC.nctsHC_Consignee_ContactPerson_EMailAddress = EXG.exg_Consignee_ContactPerson_EMailAddress
HC.nctsHC_Consignee_AdressCode = EXG.exg_Consignee_AdressCode
HC.nctsHC_Consignor_Name = EXG.exg_Consignor_Name
HC.nctsHC_Consignor_IdentificationNumber = EXG.exg_Consignor_IdentificationNumber
HC.nctsHC_Consignor_SubsidiaryNumber = EXG.exg_Consignor_SubsidiaryNumber
HC.nctsHC_Consignor_StreetNumber = EXG.exg_Consignor_StreetNumber
HC.nctsHC_Consignor_City = EXG.exg_Consignor_City
HC.nctsHC_Consignor_Postcode = EXG.exg_Consignor_Postcode
HC.nctsHC_Consignor_Country = EXG.exg_Consignor_Country
HC.nctsHC_Consignor_ContactPerson_Name = EXG.exg_Consignor_ContactPerson_Name
HC.nctsHC_Consignor_ContactPerson_PhoneNumber = EXG.exg_Consignor_ContactPerson_PhoneNumber
HC.nctsHC_Consignor_ContactPerson_EMailAddress = EXG.exg_Consignor_ContactPerson_EMailAddress
HC.nctsHC_Consignor_AdressCode = EXG.exg_Consignor_AdressCode
HC.nctsHC_GrossMass = EXG.exg_GrossMass
HC.nctsHC_ReferenceNumberUCR = EXG.exg_ReferenceNumberUCR
HC.nctsHC_CountryOfDestination = EXG.exg_CountryOfDestination
HC.nctsHC_CountryOfDispatch = EXG.exg_CountryOfDispatch
HC.nctsHC_PreviousDocument_1_Type = "N830"
HC.nctsHC_PreviousDocument_1_ReferenceNumber = EXG.exg_MRN
'HC.nctsHC_PreviousDocument_1_ComplementOfInformation =
For Each EXG_POS In EXG.exg_POSITION
Dim HC_ITEM As New cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem
HC_ITEM.nctsHCCI_CommodityCode = EXG_POS.exgPos_CommodityCode
HC_ITEM.nctsHCCI_DescriptionOfGoods = EXG_POS.exgPos_DescriptionOfGoods
HC_ITEM.nctsHCCI_GrossMass = EXG_POS.exgPos_GrossMass
HC_ITEM.nctsHCCI_NetMass = EXG_POS.exgPos_NetMass
If EXG.exg_AutoTranslate Then
If EXG.exg_ForceTranslate Then
cDeeplAPI.deepl_Translate(EXG_POS.exgPos_DescriptionOfGoods, HC_ITEM.nctsHCCI_DescriptionOfGoods, "DE")
Else
HC_ITEM.nctsHCCI_DescriptionOfGoods = cTariffKN8_Interface.getKN8FromTNR(EXG_POS.exgPos_CommodityCode)
End If
End If
For Each EXG_PK In EXG_POS.exgPos_PACKAGING
Dim HC_PK = New cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem_Packaging
HC_PK.nctsHCCIPK_NumberOfPackages = EXG_PK.exgPosPk_NumberOfPackages
HC_PK.nctsHCCIPK_TypeOfPackages = EXG_PK.exgPosPk_TypeOfPackages
HC_PK.nctsHCCIPK_ShippingMarks = EXG_PK.exgPosPk_ShippingMarks
HC_ITEM.nctsHCCI_PACKAGING.Add(HC_PK)
Next
HC.nctsWP_CONSIGNMENT_ITEM.Add(HC_ITEM)
Next
NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Add(HC)
NCTS_OUT.INSERT_HouseConsignment()
cDakosyEXG.UPDATE_FillNCTS_ID_Completed(EXG.exg_Id) 'Eintrag, dass AutoFill durchgelaufen ist
'Prüfen ob alle EXG Daten gekommen sind --> NCTS Senden!
If cDakosyEXG.isFillNCTS_ID_ALLCompleted(EXG.exg_AutoFill_DyId) Then
Dim DY_ANM = New cDakosy_Zollanmeldungen(EXG.exg_AutoFill_DyId)
If NCTS_OUT IsNot Nothing Then
'Dim cDY As New cDakosyNCTSOut(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB)
NCTS_OUT.ncts_dyaAnmID = DY_ANM.dy_Id
NCTS_OUT.ncts_Erstellung_SB = DY_ANM.dy_Erstellung_SB
NCTS_OUT.ncts_LetzteBearbeitung = Now
NCTS_OUT.ncts_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB
NCTS_OUT.ncts_firma = FIRMA_DY
' DAKOSY_Interface_SEND.loadInClass_VersandanmeldungNCTSDE_004(NCTS_OUT, Me, DY_ANM, Me.FIRMA_DY)
If NCTS_OUT.SAVE_ALL() Then
Dim saveFile = ""
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, "CREATE", Application.StartupPath) Then
If saveFile <> "" Then
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, NCTS_OUT.ncts_ObjectName, DY_ANM.dy_Id, Me.FIRMA_DY) Then
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
'If SENDUNG IsNot Nothing Then SENDUNG.SET_VGMA() ' MA Vorgeschrieben in Sendung setzen.
Else
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
MsgBox("Sendefehler!")
End If
End If
End If
End If
End If
DY_ANM.UPDATE_DATA()
'Beim Senden soll die Sendung überhnommen + tblSnd_VG_MA gesetzt werden --> damit gleich gesehen wird, dass der Akt in Bearbeitung ist.
DY_ANM.UPDATE_AVISO_SND(DY_ANM.dy_SendungsId)
End If
End If
End If
'----------------------------------------------------------------------
'QULAIFIZIERUNG!
'----------------------------------------------------------------------
'----------------------------------------------------------------------
'Es wird bei Daten zum AUsgang und "_EXG" automaitsch die Qualifizierung aufgerufen...
Dim test = True
If readEZA_DatenZumAusgang_DataEXITDE_005.Contains("_EXG") Or test Then
Dim IOPARTNER = VWI.Transaktion.IOPartner
Dim DIVISION3 = VWI.Transaktion.IODivision3
Dim DAKOSY_SB = "ANDREAS"
@@ -74,18 +280,19 @@ Public Class cWorker_AES_EXG
DY_ACTIONS.Add("CHANGE")
' DY_ACTIONS.Add("SEND")
If generateInformationenZumAusgang003(MRN, readEZA_DatenZumAusgang_DataEXITDE_005, saveFile, DY_ACTIONS, IOPARTNER, DIVISION3, DAKOSY_SB) Then
If generateInformationenZumAusgang003(EXG, readEZA_DatenZumAusgang_DataEXITDE_005, saveFile, DY_ACTIONS, IOPARTNER, DIVISION3, DAKOSY_SB) Then
If saveFile <> "" Then
frmStartOptions.copyFile(saveFile, "\\datenarchiv\Datenarchiv\DAKOSY\ECHTSYSTEM\EXG\upl\")
'NOCH NCIHT!!!!!!
'If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, readEZA_DatenZumAusgang_DataEXITDE_005, -1, IOPARTNER) Then
' 'DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
' Return True
'Else
' 'DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
' Return False
'End If
If test Then
frmStartOptions.copyFile(saveFile, "\\datenarchiv\Datenarchiv\DAKOSY\ECHTSYSTEM\EXG\upl\")
Else
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, readEZA_DatenZumAusgang_DataEXITDE_005, -1, IOPARTNER) Then
'DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
Return True
Else
'DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
Return False
End If
End If
End If
End If
End If
@@ -93,14 +300,14 @@ Public Class cWorker_AES_EXG
FORM.addDGVEinarbeitung("AES: ExportGest.-DatenZumAusgang", STATUS.dySt_BezugsNr)
End If
End If
'----------------------------------------------------------------------
'----------------------------------------------------------------------
End If
End If
End If
Next
@@ -117,7 +324,7 @@ Public Class cWorker_AES_EXG
End Function
Shared Function generateInformationenZumAusgang003(MRN As String, ByVal Bezugsnummer As String, ByRef saveFile As String, DY_ACTIONS As List(Of String), IOPartner As String, IODivision3 As String, DAKOSY_SB As String) As Boolean
Shared Function generateInformationenZumAusgang003(EXG As cDakosyEXG, ByVal Bezugsnummer As String, ByRef saveFile As String, DY_ACTIONS As List(Of String), IOPartner As String, IODivision3 As String, DAKOSY_SB As String) As Boolean
Dim Interface_VERSION = "003"
' Dim ObjectAktion = DY_ACTION
' Dim BezugsnummerVorblendung = "AA_NCTS_DE_ZE_WO_MITTICH"
@@ -144,12 +351,16 @@ Public Class cWorker_AES_EXG
'If Bezugsnummer IsNot Nothing Then XML_EG.ObjektIdentifizierung.ObjektAliasname = Bezugsnummer
XML_EG.ObjektIdentifizierung.ObjektAktion = DY_ACTIONS
If If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DAKOSY_SB, "") <> "" Then XML_EG.ObjektIdentifizierung.Bearbeiter = DAKOSY_SB
XML_EG.ObjektIdentifizierung.Bearbeiter = DAKOSY_SB
' If BezugsnummerVorblendung IsNot Nothing AndAlso BezugsnummerVorblendung <> "" Then XML_EG.ObjektIdentifizierung.BezugsnummerVorblendung = BezugsnummerVorblendung
'TransitOperation:
XML_EG.HeaderData.InformationType = "NV"
'XML_EG.HeaderData.ActiveBorderTransportMeans.DepartureDateAndTime = Now '_Nicht, sonst fehler
XML_EG.HeaderData.Finalization = True
XML_EG.HeaderData.ModeOfTransportAtTheBorder = 3
'XML_EG.HeaderData.MRN = MRN
'If cDY.ncts_CountryOfDispatch IsNot Nothing Then XML.EinzelEingangsanzeige.TransitOperation.CustomsOfficeOfDestinationActual = cDY.ncts_CountryOfDispatch
'If SND.tblSnd_ATB_T1 IsNot Nothing Then XML.EinzelEingangsanzeige.TransitOperation.MRN = SND.tblSnd_ATB_T1
@@ -165,7 +376,7 @@ Public Class cWorker_AES_EXG
System.IO.Directory.CreateDirectory(saveDir)
End If
saveFile = saveDir & "DY_EXP_" & Now.ToString("yyMMdd_HHmmss") & ".xml"
saveFile = saveDir & "DY_EXP_" & Now.ToString("yyMMdd_HHmmss_fff") & ".xml"
XML.SaveToFile(saveFile)
@@ -173,10 +384,10 @@ Public Class cWorker_AES_EXG
Dim STATUS As New DAKOSY_Worker.cDakosy_Statusmeldungen
STATUS.dySt_BezugsNr = Bezugsnummer
STATUS.dySt_artMitteilung = "EXG_INFO"
STATUS.dySt_dyArt = "AES"
STATUS.dySt_dyArt = "EXG"
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_00
STATUS.dySt_ergCode = "EXG_INFO"
STATUS.dySt_ergMitteilung = "MRN:" & MRN
STATUS.dySt_ergMitteilung = "MRN:" & EXG.exg_MRN
STATUS.dySt_ergZeitpunkt = Now
STATUS.SAVE()
'-------------------------------------------

View File

@@ -433,7 +433,7 @@ Public Class frmDYNachrichtenVerarbeitung
'------------------------------------------
'AES: UngueltigkeitSicherheitenNCTSDE
'AES: GEST
If Not found And cGetMsgType.isAES_DatenZumAusgang(doc, VERSION) Then
frmStartOptions.copyFile(d, "\\datenarchiv\Datenarchiv\DAKOSY\ECHTSYSTEM\EXG\")
Select Case VERSION
@@ -911,6 +911,50 @@ Public Class frmDYNachrichtenVerarbeitung
End If
End Sub
Shared Sub setFirmaNL(iopartner As String, division As String, ByRef firma As String, ByRef nl As String)
If division Is Nothing Then Exit Sub
If division <> "" Then
Select Case division
Case "SUW"
firma = "ATILLA"
nl = "SUB"
Case "SUB"
firma = "VERAG"
nl = "SUB"
Case "DUR"
firma = "DURMAZ"
nl = "SBG"
Case "NKD"
firma = "VERAG"
nl = "NKD"
Case "WAI"
firma = "VERAG"
nl = "WAI"
Case "SBG"
firma = "VERAG"
nl = "SBG"
Case "NEU"
firma = "VERAG"
nl = "NEU"
Case "GLO"
firma = "IMEX"
nl = "GLO"
Case "AMB"
firma = "AMBAR"
nl = "AMBAR"
Case "IME"
firma = "IMEX"
nl = "IMX"
Case "UNAT", "ATSPED"
firma = "UNISPED"
nl = "ATSP"
End Select
End If
End Sub
Sub addDGVEinarbeitung(art, BezugsNr)