538 lines
31 KiB
VB.net
538 lines
31 KiB
VB.net
Imports com.sun.org.apache.bcel.internal.generic
|
|
Imports DAKOSY_Worker
|
|
Imports DocumentFormat.OpenXml.Wordprocessing
|
|
Imports java.nio.channels
|
|
Imports javax.management
|
|
Imports Spire.Pdf
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class cWorker_AES_EXG
|
|
Public Shared Dateiname = ""
|
|
|
|
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
|
|
|
|
Shared Function readEZA_DatenZumAusgang_DataEXITDE_005(FORM As frmDYNachrichtenVerarbeitung, d As String, saveVerwahrung As Boolean) As String
|
|
Try
|
|
|
|
Dim VWI As DAKOSY_Worker.DataEXITDE.DatenZumAusgangXDTyp = DAKOSY_Worker.DataEXITDE.DatenZumAusgangXDTyp.LoadFromFile(d)
|
|
Dim MRN = ""
|
|
Dim RegistriernummerATLAS = ""
|
|
Dim ankungsdatum As Object = Nothing
|
|
Dim zp As Object = Nothing
|
|
|
|
readEZA_DatenZumAusgang_DataEXITDE_005 = ""
|
|
If VWI IsNot Nothing Then
|
|
If VWI.ResponseData IsNot Nothing AndAlso VWI.ResponseData.Count > 0 Then
|
|
For Each RESP In VWI.ResponseData
|
|
|
|
If RESP.ObjektIdentifizierung IsNot Nothing Then
|
|
If RESP.ObjektIdentifizierung.ObjektName IsNot Nothing Then
|
|
readEZA_DatenZumAusgang_DataEXITDE_005 = RESP.ObjektIdentifizierung.ObjektName 'Nur ObjektAntragsart VV (SumA Vorgang) /NE (NCTS-Vorgang )
|
|
|
|
If RESP.HeaderData IsNot Nothing Then
|
|
If RESP.HeaderData.MRN IsNot Nothing Then
|
|
MRN = RESP.HeaderData.MRN
|
|
|
|
End If
|
|
End If
|
|
|
|
If RESP.ObjektIdentifizierung.ZeitpunktEingang > "01.01.2000" Then
|
|
zp = RESP.ObjektIdentifizierung.ZeitpunktEingang
|
|
End If
|
|
|
|
'----------------------------------------------------------------------
|
|
'EXZ SAVE!
|
|
'----------------------------------------------------------------------
|
|
|
|
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 ITEM.Procedure IsNot Nothing Then
|
|
|
|
EXG_ITEM.exgPos_PreviousProcedure = ITEM.Procedure.PreviousProcedure
|
|
EXG_ITEM.exgPos_RequestedProcedure = ITEM.Procedure.RequestedProcedure
|
|
|
|
End If
|
|
If ITEM.Packaging 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 = "EXG"
|
|
|
|
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_00
|
|
STATUS.dySt_ergCode = "EXG_DATA"
|
|
STATUS.dySt_ergMitteilung = ""
|
|
If zp IsNot Nothing Then STATUS.dySt_ergZeitpunkt = zp
|
|
|
|
STATUS.SAVE()
|
|
|
|
|
|
'----------------------------------------------------------------------
|
|
'NCTS AKtualisieren!
|
|
'----------------------------------------------------------------------
|
|
|
|
'----------------------------------------------------------------------
|
|
'Wenn markiert wurde, dass die NCTS Daten ergänzt werden sollten
|
|
'----------------------------------------------------------------------
|
|
Dim testDY = True
|
|
If testDY Or (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 testDY Then
|
|
If NCTS_OUT Is Nothing Then
|
|
NCTS_OUT = New DAKOSY_Worker.cDakosyNCTSOut004
|
|
NCTS_OUT.ncts_ObjectName = "TEEEESSSSTTT"
|
|
End If
|
|
End If
|
|
|
|
|
|
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_POS.exgPos_PreviousProcedure IsNot Nothing And EXG_POS.exgPos_RequestedProcedure IsNot Nothing Then
|
|
HC_ITEM.nctsHCCI_DeclarationType = DetermineTransitProcedure(EXG_POS.exgPos_RequestedProcedure, EXG_POS.exgPos_PreviousProcedure)
|
|
End If
|
|
|
|
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()
|
|
|
|
|
|
'--------Declarationtype-----------------------------------------------
|
|
Dim declType = GetDeclarationType(NCTS_OUT.ncts_HOUSE_CONSIGNMENT)
|
|
If declType <> "" Then
|
|
emptyAllDeclarationItems(NCTS_OUT.ncts_HOUSE_CONSIGNMENT) ' Leert alle DeclType in den Pos
|
|
NCTS_OUT.ncts_Declarationtype = declType ' Sezt es im Kopf
|
|
Else
|
|
NCTS_OUT.ncts_Declarationtype = "T-" ' Sezt es im Kopf
|
|
End If
|
|
'----------------------------------------------------------------------
|
|
|
|
|
|
cDakosyEXG.UPDATE_FillNCTS_ID_Completed(EXG.exg_Id) 'Eintrag, dass AutoFill durchgelaufen ist
|
|
|
|
|
|
'Prüfen ob alle EXG Daten gekommen sind --> NCTS Senden!
|
|
If testDY Or (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 = EXG.exg_firma
|
|
NCTS_OUT.ncts_niederlassung = EXG.exg_niederlassung
|
|
' DAKOSY_Interface_SEND.loadInClass_VersandanmeldungNCTSDE_004(NCTS_OUT, Me, DY_ANM, Me.FIRMA_DY)
|
|
|
|
'VON HIER löschnen ohne test
|
|
If testDY OrElse NCTS_OUT.SAVE_ALL() Then
|
|
If If(EXG.exg_AutoFill_DyId, -1) > 0 Then 'Nur speichern wenn bei test exg_AutoFill_DyId befüllt ist
|
|
NCTS_OUT.SAVE_ALL()
|
|
End If
|
|
Dim saveFile = ""
|
|
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, "CREATE", Application.StartupPath) Then
|
|
If saveFile <> "" Then
|
|
frmStartOptions.copyFile(saveFile, "\\datenarchiv\Datenarchiv\DAKOSY\ECHTSYSTEM\EXG\upl\NCTS\")
|
|
|
|
End If
|
|
End If
|
|
|
|
Else
|
|
'BIS HIER löschnen ohne test
|
|
|
|
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, NCTS_OUT.ncts_firma) 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
|
|
|
|
End If
|
|
|
|
If Not testDY Or If(EXG.exg_AutoFill_DyId, -1) > 0 Then 'Kann ganz weg kenn kein test
|
|
|
|
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
|
|
End If
|
|
|
|
|
|
'----------------------------------------------------------------------
|
|
'QULAIFIZIERUNG!
|
|
'----------------------------------------------------------------------
|
|
|
|
'----------------------------------------------------------------------
|
|
'Es wird bei Daten zum AUsgang und "_EXG" automaitsch die Qualifizierung aufgerufen...
|
|
Dim test = False
|
|
If readEZA_DatenZumAusgang_DataEXITDE_005.Contains("_EXG") Or test Then
|
|
Dim IOPARTNER = VWI.Transaktion.IOPartner
|
|
Dim DIVISION3 = VWI.Transaktion.IODivision3
|
|
Dim DAKOSY_SB = "ANDREAS"
|
|
Dim DY_ACTIONS As New List(Of String)
|
|
|
|
If IOPARTNER = "UNAT" Then
|
|
DAKOSY_SB = "luxbauer"
|
|
End If
|
|
|
|
Dim saveFile = ""
|
|
|
|
DY_ACTIONS.Add("CHANGE")
|
|
DY_ACTIONS.Add("SEND")
|
|
|
|
If generateInformationenZumAusgang003(EXG, readEZA_DatenZumAusgang_DataEXITDE_005, saveFile, DY_ACTIONS, IOPARTNER, DIVISION3, DAKOSY_SB) Then
|
|
If saveFile <> "" Then
|
|
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
|
|
'----------------------------------------------------------------------
|
|
|
|
|
|
FORM.addDGVEinarbeitung("AES: ExportGest.-DatenZumAusgang", STATUS.dySt_BezugsNr)
|
|
End If
|
|
'----------------------------------------------------------------------
|
|
'----------------------------------------------------------------------
|
|
|
|
|
|
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
readEZA_DatenZumAusgang_DataEXITDE_005 = ""
|
|
End Try
|
|
End Function
|
|
|
|
' Funktion zur Bestimmung des Declaration Type
|
|
Shared Function GetDeclarationType(HC_LIST As List(Of cDakosy_NCTSOut004_HouseConsignment)) As String
|
|
Dim declType As String = Nothing
|
|
Dim isConsistent As Boolean = True ' Flag zur Überprüfung der Konsistenz
|
|
|
|
' Iteration über alle Positionen
|
|
For Each HC In HC_LIST
|
|
|
|
For Each HC_ITEM In HC.nctsWP_CONSIGNMENT_ITEM
|
|
Dim currentType = HC_ITEM.nctsHCCI_DeclarationType
|
|
|
|
' Abbruch, wenn ein Wert leer oder Nothing ist
|
|
If String.IsNullOrWhiteSpace(currentType) Then
|
|
isConsistent = False
|
|
Exit For
|
|
End If
|
|
|
|
' Setze declType, wenn noch nicht gesetzt
|
|
If declType Is Nothing Then
|
|
declType = currentType
|
|
ElseIf declType <> currentType Then
|
|
' Unterschiedlicher Wert gefunden → Abbruch
|
|
isConsistent = False
|
|
Exit For
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
' Rückgabe des einheitlichen declType oder leer, wenn inkonsistent
|
|
If isConsistent AndAlso Not String.IsNullOrWhiteSpace(declType) Then
|
|
Return declType
|
|
Else
|
|
Return ""
|
|
End If
|
|
End Function
|
|
|
|
|
|
Shared Sub emptyAllDeclarationItems(ByRef HC_LIST As List(Of cDakosy_NCTSOut004_HouseConsignment))
|
|
Dim declType As String = Nothing
|
|
Dim isConsistent As Boolean = True ' Flag zur Überprüfung der Konsistenz
|
|
|
|
' Iteration über alle Positionen
|
|
For Each HC In HC_LIST
|
|
For Each HC_ITEM In HC.nctsWP_CONSIGNMENT_ITEM
|
|
HC_ITEM.nctsHCCI_DeclarationType = ""
|
|
Next
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Shared Function DetermineTransitProcedure(requestedProcedure As String, previousProcedure As String) As String
|
|
' Entscheidungslogik für Transitverfahren (immer in der EU eröffnet)
|
|
Select Case requestedProcedure
|
|
Case "10" ' Ausfuhrverfahren
|
|
If previousProcedure = "00" Then
|
|
Return "T2" ' Ware ist weiterhin Unionsware, obwohl Ausfuhr vorgesehen ist
|
|
ElseIf previousProcedure = "40" Then
|
|
Return "T2" ' Ware im freien Verkehr (Unionsware)
|
|
ElseIf previousProcedure = "61" Then
|
|
Return "T1" ' Ware verlässt ein Zolllager (Nicht-Unionsware)
|
|
Else
|
|
Return "T2" ' Standardfall: Unionsware im Ausfuhrverfahren
|
|
End If
|
|
|
|
Case "40" ' Überlassung zum freien Verkehr
|
|
Return "T2" ' Ware wird Unionsware nach Import
|
|
|
|
Case "31" ' Versandverfahren
|
|
Return "T-" ' Beibehaltung des ursprünglichen Status
|
|
|
|
Case "51" ' Passive Veredelung
|
|
Return "T1" ' Rückkehr von Nicht-Unionsware nach Verarbeitung
|
|
|
|
Case Else
|
|
Return "Unbekannt" ' Unbekannter Verfahrenscode
|
|
End Select
|
|
End Function
|
|
|
|
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"
|
|
|
|
Dim XML As New DAKOSY_Worker.InformationEXITDE.InformationenZumAusgangXITyp
|
|
|
|
'Bezugsnummer = Bezugsnummer.Replace("_EXG_", "_QZ_") ' ??????????????????
|
|
|
|
If Bezugsnummer.Length > 35 Then
|
|
Bezugsnummer = Bezugsnummer.Substring(0, 35)
|
|
End If
|
|
'Transaktion:
|
|
XML.Transaktion = New DAKOSY_Worker.InformationEXITDE.TransaktionExportTyp
|
|
XML.Transaktion.IOPartner = IOPartner
|
|
XML.Transaktion.IODatumZeit = Now
|
|
XML.Transaktion.IOReferenz = Bezugsnummer & "_" & Now.ToString("ddMMyyHHmmSS")
|
|
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then XML.Transaktion.IODivision3 = IODivision3
|
|
XML.Transaktion.Version = Interface_VERSION
|
|
' XML.Transaktion.IODivision3 = "DUR"
|
|
|
|
Dim XML_EG = New InformationEXITDE.EinzelInformationenZumAusgangTyp
|
|
'ObjektIdentifizierung:
|
|
XML_EG.ObjektIdentifizierung.ObjektName = Bezugsnummer
|
|
|
|
'If Bezugsnummer IsNot Nothing Then XML_EG.ObjektIdentifizierung.ObjektAliasname = Bezugsnummer
|
|
XML_EG.ObjektIdentifizierung.ObjektAktion = DY_ACTIONS
|
|
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 = 1
|
|
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
|
|
'XML.EinzelEingangsanzeige.TransitOperation.ArrivalNotificationDateAndTime = Now
|
|
|
|
'XML.EinzelEingangsanzeige.TransitOperation.IncidentFlag = "N"
|
|
|
|
XML.DeclarationData.Add(XML_EG)
|
|
|
|
|
|
Dim saveDir = Application.StartupPath & "\Dakosy_SEND\"
|
|
If Not System.IO.Directory.Exists(saveDir) Then
|
|
System.IO.Directory.CreateDirectory(saveDir)
|
|
End If
|
|
|
|
saveFile = saveDir & "DY_EXG_" & Now.ToString("yyMMdd_HHmmss_fff") & ".xml"
|
|
|
|
XML.SaveToFile(saveFile)
|
|
|
|
'-------------------------------------------
|
|
Dim STATUS As New DAKOSY_Worker.cDakosy_Statusmeldungen
|
|
STATUS.dySt_BezugsNr = Bezugsnummer
|
|
STATUS.dySt_artMitteilung = "EXG_INFO"
|
|
STATUS.dySt_dyArt = "EXG"
|
|
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.S_00
|
|
STATUS.dySt_ergCode = "EXG_INFO"
|
|
STATUS.dySt_ergMitteilung = "MRN:" & EXG.exg_MRN
|
|
STATUS.dySt_ergZeitpunkt = Now
|
|
STATUS.SAVE()
|
|
'-------------------------------------------
|
|
|
|
DAKOSY_Worker.cDakosyFunftions.replaceNullDateXML(saveFile)
|
|
|
|
|
|
Return True
|
|
End Function
|
|
|
|
|
|
|
|
|
|
End Class
|