Merge branch 'ADMIN' of https://git.it.verag.ag/edv/ADMIN into ADMIN
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
Imports DAKOSY_Worker
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
|
||||
Public Class cWorker_AES_EXG
|
||||
Public Shared Dateiname = ""
|
||||
@@ -56,7 +57,8 @@ Public Class cWorker_AES_EXG
|
||||
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)
|
||||
frmDYNachrichtenVerarbeitung.setFirmaNL(VWI.Transaktion.IOPartner, VWI.Transaktion.IODivision3, EXG.exg_firma, EXG.exg_niederlassung, EXG.exg_ObjectName)
|
||||
' frmDYNachrichtenVerarbeitung.tryGetFirmaNiederlassung(EXG.exg_firma, EXG.exg_niederlassung, If(EXG.exg_Representative_ContactPerson_EMailAddress, "").ToString, EXG.exg_ObjectName)
|
||||
|
||||
If RESP.HeaderData.Consignee IsNot Nothing Then
|
||||
EXG.exg_Consignee_Name = RESP.HeaderData.Consignee.Name
|
||||
@@ -82,13 +84,23 @@ Public Class cWorker_AES_EXG
|
||||
EXG.exg_Consignor_SubsidiaryNumber = RESP.HeaderData.Exporter.SubsidiaryNumber
|
||||
End If
|
||||
|
||||
|
||||
EXG.exg_POSITION.Clear()
|
||||
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
|
||||
|
||||
|
||||
'Tarifnummer prüfen und zusammenstellen
|
||||
Dim hsCode As String = If(ITEM.HarmonizedSystemSubHeadingCode, "").Trim()
|
||||
Dim cnCode As String = If(ITEM.CombinedNomenclatureCode, "").Trim()
|
||||
EXG_ITEM.exgPos_CommodityCode = hsCode & cnCode
|
||||
If (hsCode <> "" AndAlso hsCode.Length <> 6) OrElse (cnCode <> "" AndAlso cnCode.Length <> 2) OrElse (hsCode = "" AndAlso cnCode <> "") Then
|
||||
Debug.WriteLine("Ungültige Warentarifnummer in Position " & ITEM.GoodsItemNumber & ": " & EXG_ITEM.exgPos_CommodityCode)
|
||||
End If
|
||||
|
||||
|
||||
EXG_ITEM.exgPos_DescriptionOfGoods = ITEM.DescriptionOfGoods
|
||||
EXG_ITEM.exgPos_NetMass = ITEM.NetMass
|
||||
EXG_ITEM.exgPos_GrossMass = ITEM.GrossMass
|
||||
@@ -138,90 +150,76 @@ Public Class cWorker_AES_EXG
|
||||
'----------------------------------------------------------------------
|
||||
'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
|
||||
Console.WriteLine("EXG: NCTS Verarbeitung starten...")
|
||||
'----------------------------------------------------------------------
|
||||
'NCTS BEFÜLLEN!
|
||||
'----------------------------------------------------------------------
|
||||
Dim NCTS_OUT = fillNCTS_WithEXG_AutoFill(EXG, "TEEEEEEESTTT")
|
||||
'----------------------------------------------------------------------
|
||||
'----------------------------------------------------------------------
|
||||
testDY = True
|
||||
' Dim testDY = True
|
||||
'----------------------------------------------------------------------
|
||||
'NCTS aktualisieren und nach letztem EXG-Rücklauf senden
|
||||
'----------------------------------------------------------------------
|
||||
If EXG.exg_AutoFill_DyId IsNot Nothing Then
|
||||
Dim dyId As Integer = Convert.ToInt32(EXG.exg_AutoFill_DyId)
|
||||
|
||||
'Prüfen ob alle EXG Daten gekommen sind --> NCTS Senden!
|
||||
If testDY Or (cDakosyEXG.isFillNCTS_ID_ALLCompleted(EXG.exg_AutoFill_DyId)) Then
|
||||
If dyId > 0 Then
|
||||
Dim DY_ANM As New cDakosy_Zollanmeldungen(dyId)
|
||||
Dim NCTS_OUT = fillNCTS_WithEXG_AutoFill(EXG, "") '<<<<<-- Befüllung der NCTS-Daten mit den EXG-Daten. Danach wird geprüft, ob alle Positionen befüllt wurden.
|
||||
|
||||
If NCTS_OUT Is Nothing Then
|
||||
Throw New Exception("NCTS-Befüllung fehlgeschlagen. EXG-ID: " & EXG.exg_Id)
|
||||
End If
|
||||
|
||||
|
||||
Dim DY_ANM = New cDakosy_Zollanmeldungen(EXG.exg_AutoFill_DyId)
|
||||
If NCTS_OUT IsNot Nothing Then
|
||||
If cDakosyEXG.isFillNCTS_ID_ALLCompleted(dyId) Then
|
||||
|
||||
'Alle EXG-Rückmeldungen vollständig: NCTS ergänzen und versenden
|
||||
Dim BezugsNr As String = NCTS_OUT.ncts_ObjectName
|
||||
If String.IsNullOrWhiteSpace(BezugsNr) Then BezugsNr = DY_ANM.dy_BezugsNr
|
||||
If String.IsNullOrWhiteSpace(BezugsNr) Then Throw New Exception("NCTS-Bezugsnummer fehlt: " & dyId)
|
||||
|
||||
'Dim cDY As New cDakosyNCTSOut(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB)
|
||||
Dim firma As String = If(String.IsNullOrWhiteSpace(EXG.exg_firma), "VERAG", EXG.exg_firma)
|
||||
Dim niederlassung As String = If(String.IsNullOrWhiteSpace(EXG.exg_niederlassung), "SUB", EXG.exg_niederlassung)
|
||||
Dim nctsArt As String = If(String.IsNullOrWhiteSpace(DY_ANM.dy_ART), "T2", DY_ANM.dy_ART)
|
||||
|
||||
'AVISO und Sendung anhand der bestehenden Zollanmeldung laden
|
||||
Dim AVISO As cAviso = Nothing
|
||||
Dim SENDUNG As cSendungen = Nothing
|
||||
|
||||
If DY_ANM.dy_AvisoId IsNot Nothing AndAlso Convert.ToInt32(DY_ANM.dy_AvisoId) > 0 Then
|
||||
AVISO = cAviso.getAvisoById(DY_ANM.dy_AvisoId)
|
||||
End If
|
||||
|
||||
If DY_ANM.dy_SendungsId IsNot Nothing AndAlso Convert.ToInt32(DY_ANM.dy_SendungsId) > 0 Then
|
||||
SENDUNG = New cSendungen(Convert.ToInt32(DY_ANM.dy_SendungsId))
|
||||
End If
|
||||
|
||||
'AVISO-Vorblendung wie bei SendNCTS übernehmen
|
||||
If AVISO IsNot Nothing Then
|
||||
cDakosyNCTSOut004.loaddataFromAVISO(AVISO, SENDUNG, "", BezugsNr, NCTS_OUT, firma, False)
|
||||
End If
|
||||
|
||||
'Bestehende NCTS-Anmeldung weiterverwenden
|
||||
NCTS_OUT.ncts_ObjectName = BezugsNr
|
||||
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)
|
||||
NCTS_OUT.ncts_firma = firma
|
||||
NCTS_OUT.ncts_niederlassung = niederlassung
|
||||
NCTS_OUT.ncts_Declarationtype = nctsArt
|
||||
NCTS_OUT.ncts_Trans_Referenz = BezugsNr & "_" & Now.ToString("ddMMyyHHmmss")
|
||||
|
||||
'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, "NCTS") 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, "NCTS") 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
|
||||
If NCTS_OUT.ncts_HOUSE_CONSIGNMENT Is Nothing OrElse NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Count = 0 Then
|
||||
Throw New Exception("Keine NCTS-House-Consignments vorhanden: " & dyId)
|
||||
End If
|
||||
|
||||
End If
|
||||
'Identischer Speicher- und Versandweg wie bei SendNCTS
|
||||
Dim result As String = cDakosyNCTSOut004.SaveAndSendNCTS(
|
||||
NCTS_OUT, DY_ANM, BezugsNr, firma, True, SENDUNG, "CREATE", nctsArt)
|
||||
|
||||
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)
|
||||
Console.WriteLine("EXG: Automatischer NCTS-Versand: " & BezugsNr & " - " & result)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
'----------------------------------------------------------------------
|
||||
'QULAIFIZIERUNG!
|
||||
'----------------------------------------------------------------------
|
||||
@@ -298,24 +296,24 @@ Public Class cWorker_AES_EXG
|
||||
End Function
|
||||
|
||||
Shared Function fillNCTS_WithEXG_AutoFill(EXG As cDakosyEXG, ObjectName As String) As cDakosyNCTSOut004
|
||||
If EXG Is Nothing OrElse EXG.exg_AutoFill_DyId Is Nothing Then Return Nothing
|
||||
|
||||
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, True)
|
||||
Dim dyId As Integer = Convert.ToInt32(EXG.exg_AutoFill_DyId)
|
||||
If dyId <= 0 Then Return Nothing
|
||||
|
||||
If NCTS_OUT Is Nothing Then
|
||||
NCTS_OUT = New DAKOSY_Worker.cDakosyNCTSOut004
|
||||
NCTS_OUT.ncts_ObjectName = ObjectName
|
||||
End If
|
||||
Dim NCTS_OUT = DAKOSY_Worker.cDakosyNCTSOut004.LOADByAnmIDFull(dyId, True)
|
||||
If NCTS_OUT Is Nothing Then Throw New Exception("NCTS-Entwurf nicht gefunden. DY-ID: " & dyId)
|
||||
|
||||
Console.WriteLine("EXG: NCTS befüllen...")
|
||||
DAKOSY_Worker.cDakosyNCTSOut004.fillNCTS_WithEXG(NCTS_OUT, EXG, ObjectName)
|
||||
Console.WriteLine("EXG: NCTS updaten...")
|
||||
cDakosyEXG.UPDATE_FillNCTS_ID_Completed(EXG.exg_Id) 'Eintrag, dass AutoFill durchgelaufen ist
|
||||
Console.WriteLine("EXG: NCTS befüllen: " & EXG.exg_Id)
|
||||
DAKOSY_Worker.cDakosyNCTSOut004.fillNCTS_WithEXG(NCTS_OUT, EXG, NCTS_OUT.ncts_ObjectName)
|
||||
|
||||
Return NCTS_OUT
|
||||
If Not NCTS_OUT.SAVE_ALL() Then
|
||||
Throw New Exception("NCTS konnte nicht gespeichert werden. DY-ID: " & dyId)
|
||||
End If
|
||||
Return Nothing
|
||||
|
||||
cDakosyEXG.UPDATE_FillNCTS_ID_Completed(EXG.exg_Id)
|
||||
|
||||
Return NCTS_OUT
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
@@ -946,7 +946,13 @@ Public Class frmDYNachrichtenVerarbeitung
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Shared Sub setFirmaNL(iopartner As String, division As String, ByRef firma As String, ByRef nl As String)
|
||||
Shared Sub setFirmaNL(iopartner As String, division As String, ByRef firma As String, ByRef nl As String, BezugsNr As String)
|
||||
|
||||
If iopartner = "UNAT" Then
|
||||
firma = "UNISPED"
|
||||
nl = "SUB"
|
||||
End If
|
||||
|
||||
If division Is Nothing Then Exit Sub
|
||||
If division <> "" Then
|
||||
Select Case division
|
||||
@@ -979,15 +985,40 @@ Public Class frmDYNachrichtenVerarbeitung
|
||||
nl = "AMBAR"
|
||||
Case "IME"
|
||||
firma = "IMEX"
|
||||
nl = "IMX"
|
||||
nl = "SUB"
|
||||
Case "UNAT", "ATSPED"
|
||||
firma = "UNISPED"
|
||||
nl = "ATSP"
|
||||
nl = "SUB"
|
||||
End Select
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If String.IsNullOrWhiteSpace(firma) OrElse String.IsNullOrWhiteSpace(nl) Then
|
||||
If Not String.IsNullOrWhiteSpace(BezugsNr) AndAlso BezugsNr.Length >= 4 Then
|
||||
Dim neueFirma As String = ""
|
||||
Dim neueNL As String = ""
|
||||
|
||||
Select Case BezugsNr.Substring(0, 4)
|
||||
Case "5501" : neueFirma = "IMEX" : neueNL = "SUB"
|
||||
Case "5701" : neueFirma = "AMBAR" : neueNL = "SBG"
|
||||
Case "4801", "4802" : neueFirma = "ATILLA" : neueNL = "SUB"
|
||||
Case "5801" : neueFirma = "FRONTOFFICE" : neueNL = "SUB"
|
||||
Case "5802" : neueFirma = "FRONTOFFICE" : neueNL = "KLIPP"
|
||||
Case "5003" : neueFirma = "VERAG" : neueNL = "SBG"
|
||||
Case "5103" : neueFirma = "VERAG" : neueNL = "WAI"
|
||||
Case "5303" : neueFirma = "VERAG" : neueNL = "NKD"
|
||||
Case "4803", "4805", "4811", "7001" : neueFirma = "VERAG" : neueNL = "SUB"
|
||||
Case "5601" : neueFirma = "UNISPED" : neueNL = "SUB"
|
||||
End Select
|
||||
|
||||
If String.IsNullOrWhiteSpace(firma) Then firma = neueFirma
|
||||
If String.IsNullOrWhiteSpace(nl) Then nl = neueNL
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -1004,7 +1035,7 @@ Public Class frmDYNachrichtenVerarbeitung
|
||||
|
||||
Function getVerahrensartFromBezugsNr(bezugsNr) As String
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
If SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) FROM tblDakosy_NCTSOut004 WHERE ncts_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "NCTS"
|
||||
If SQL.getValueTxtBySql("Select TOP 1 COUNT(*) FROM tblDakosy_NCTSOut004 WHERE ncts_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "NCTS"
|
||||
If SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) FROM tblDakosy_NCTSOut WHERE ncts_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "NCTS"
|
||||
If SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) FROM tblDakosy_EZA WHERE eza_ObjectName='" & bezugsNr & "'", "FMZOLL") > 0 Then Return "EZA"
|
||||
Return ""
|
||||
@@ -7214,6 +7245,7 @@ Public Class frmDYNachrichtenVerarbeitung
|
||||
|
||||
|
||||
Public Shared Sub tryGetFirmaNiederlassung(ByRef firma As String, ByRef niederlassung As String, Mail As String, BezugsNr As String)
|
||||
|
||||
If Mail.Contains("@imex") Then
|
||||
firma = "IMEX"
|
||||
niederlassung = "IMEX"
|
||||
|
||||
Reference in New Issue
Block a user