Merge branch 'ADMIN' of https://git.it.verag.ag/edv/ADMIN into ADMIN
This commit is contained in:
@@ -858,7 +858,10 @@ Public Class cDakosyEXG
|
||||
'dy_Status = status
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
Return SQL.doSQLVarList(" UPDATE [tblDakosy_EXG] SET [exg_AutoFill_DyId]=@dyId WHERE exg_Id=@exg_Id ", "FMZOLL", , list)
|
||||
Return SQL.doSQLVarList("UPDATE tblDakosy_EXG SET exg_AutoFill_DyId=@dyId,
|
||||
exg_AutoFill_DyId_Complete=0
|
||||
WHERE exg_Id=@exg_Id",
|
||||
"FMZOLL", , list)
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
@@ -886,23 +889,27 @@ Public Class cDakosyEXG
|
||||
End Function
|
||||
|
||||
Shared Function isFillNCTS_ID_ALLCompleted(dyId As Integer) As Boolean
|
||||
If dyId > 0 Then
|
||||
Try
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
If dyId <= 0 Then Return False
|
||||
|
||||
Dim cnt = SQL.getValueTxtBySql(" SELECT COUNT(*) FROM [tblDakosy_EXG] where [exg_AutoFill_DyId] ='" & dyId & "' and exg_AutoFill_DyId=1 AND [exg_AutoFill_DyId_Complete]=0 ", "FMZOLL", ,, -1)
|
||||
Try
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
Dim sqlText = "SELECT
|
||||
COUNT(*) AS Gesamt,
|
||||
SUM(CASE
|
||||
WHEN ISNULL(exg_AutoFill_DyId_Complete, 0) = 0
|
||||
THEN 1 ELSE 0
|
||||
END) AS Offen
|
||||
FROM tblDakosy_EXG
|
||||
WHERE exg_AutoFill_DyId= " & dyId & ""
|
||||
|
||||
If cnt = 0 Then
|
||||
Return True
|
||||
End If
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
End If
|
||||
Return False
|
||||
Dim cnt = SQL.getValueTxtBySql(sqlText, "FMZOLL", ,, -1)
|
||||
Return Convert.ToInt32(cnt) = 0
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
'Public Function LOADByBezugsNr(exg_ObjectName As String, loadALL As Boolean) As Boolean
|
||||
' Try
|
||||
' LOADByBezugsNr = False
|
||||
@@ -945,7 +952,7 @@ Public Class cDakosyEXG
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
' Using cmd As New SqlCommand("SELECT TOP 1 * FROM (SELECT * FROM tblDakosy_EXGOut WHERE exg_ObjectName LIKE @bezugsNr " & If(checkValidStatus, " AND exg_status BETWEEN 40 and 90 ", "") & " ) AS T order by exg_status desc, (SELECT top 1 dySt_ts FROM [tblDakosy_Statusmeldungen] WHERE exg_dyaAnmID=exg_dyaAnmID order by dySt_ts desc) desc,exg_LetzteBearbeitung desc ", conn)
|
||||
'Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblDakosy_EXGOut WHERE exg_ObjectName LIKE @bezugsNr " & If(checkValidStatus, " AND exg_status BETWEEN 40 and 90 ", "") & " order by exg_status desc, (SELECT top 1 dySt_ts FROM [tblDakosy_Statusmeldungen] WHERE exg_dyaAnmID=exg_dyaAnmID order by dySt_ts desc) desc,exg_LetzteBearbeitung desc ", conn)
|
||||
Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblDakosy_EXG WHERE exg_ObjectName LIKE @bezugsNr order by exg_LetzteBearbeitung desc", conn)
|
||||
Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblDakosy_EXG WHERE exg_ObjectName = @bezugsNr ORDER BY exg_LetzteBearbeitung DESC", conn)
|
||||
'MsgBox("SELECT TOP 1 * FROM tblDakosy_EXGOut WHERE exg_ObjectName LIKE " & bezugsNr & " " & If(checkValidStatus, " AND exg_status BETWEEN 40 and 90 ", "") & " order by exg_status desc, (SELECT top 1 dySt_ts FROM [tblDakosy_Statusmeldungen] inner join tblDakosy_Zollanmeldungen on dy_id = dySt_dyId WHERE exg_dyaAnmID=dy_id order by dySt_ts desc) desc,exg_LetzteBearbeitung desc ")
|
||||
cmd.Parameters.AddWithValue("@bezugsNr", bezugsNr)
|
||||
Dim dr = cmd.ExecuteReader()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -111,7 +111,8 @@ Public Class cDakosyFunftions
|
||||
Else
|
||||
Select Case FIRMA_DY
|
||||
Case "ATILLA"
|
||||
Return "VERG"
|
||||
'Return "VERG"
|
||||
Return "ATIL"
|
||||
Case "VERAG"
|
||||
Return "VERG"
|
||||
Case "DURMAZ"
|
||||
|
||||
28
UID/usrctlProcedures.Designer.vb
generated
28
UID/usrctlProcedures.Designer.vb
generated
@@ -87,6 +87,7 @@ Partial Class usrctlProcedures
|
||||
Me.Button48 = New System.Windows.Forms.Button()
|
||||
Me.Button47 = New System.Windows.Forms.Button()
|
||||
Me.TabPage6 = New System.Windows.Forms.TabPage()
|
||||
Me.Button60 = New System.Windows.Forms.Button()
|
||||
Me.Label23 = New System.Windows.Forms.Label()
|
||||
Me.Button54 = New System.Windows.Forms.Button()
|
||||
Me.Label19 = New System.Windows.Forms.Label()
|
||||
@@ -182,7 +183,7 @@ Partial Class usrctlProcedures
|
||||
Me.Button57 = New System.Windows.Forms.Button()
|
||||
Me.Button58 = New System.Windows.Forms.Button()
|
||||
Me.Button59 = New System.Windows.Forms.Button()
|
||||
Me.Button60 = New System.Windows.Forms.Button()
|
||||
Me.Button61 = New System.Windows.Forms.Button()
|
||||
Me.tbTRStat.SuspendLayout()
|
||||
Me.TabPage3.SuspendLayout()
|
||||
Me.TabPage1.SuspendLayout()
|
||||
@@ -842,6 +843,15 @@ Partial Class usrctlProcedures
|
||||
Me.TabPage6.Text = "MDM Importe"
|
||||
Me.TabPage6.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button60
|
||||
'
|
||||
Me.Button60.Location = New System.Drawing.Point(336, 63)
|
||||
Me.Button60.Name = "Button60"
|
||||
Me.Button60.Size = New System.Drawing.Size(106, 49)
|
||||
Me.Button60.TabIndex = 74
|
||||
Me.Button60.Text = "Plose PDF-Zuweisung"
|
||||
Me.Button60.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label23
|
||||
'
|
||||
Me.Label23.AutoSize = True
|
||||
@@ -1730,19 +1740,20 @@ Partial Class usrctlProcedures
|
||||
Me.Button59.Text = "Firmenlogo in DB"
|
||||
Me.Button59.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button60
|
||||
'Button61
|
||||
'
|
||||
Me.Button60.Location = New System.Drawing.Point(336, 63)
|
||||
Me.Button60.Name = "Button60"
|
||||
Me.Button60.Size = New System.Drawing.Size(106, 49)
|
||||
Me.Button60.TabIndex = 74
|
||||
Me.Button60.Text = "Plose PDF-Zuweisung"
|
||||
Me.Button60.UseVisualStyleBackColor = True
|
||||
Me.Button61.Location = New System.Drawing.Point(759, 79)
|
||||
Me.Button61.Name = "Button61"
|
||||
Me.Button61.Size = New System.Drawing.Size(145, 33)
|
||||
Me.Button61.TabIndex = 72
|
||||
Me.Button61.Text = "TEST NCTS FROM EXG"
|
||||
Me.Button61.UseVisualStyleBackColor = True
|
||||
'
|
||||
'usrctlProcedures
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.Controls.Add(Me.Button61)
|
||||
Me.Controls.Add(Me.Button59)
|
||||
Me.Controls.Add(Me.Button58)
|
||||
Me.Controls.Add(Me.Button57)
|
||||
@@ -1989,4 +2000,5 @@ Partial Class usrctlProcedures
|
||||
Friend WithEvents Button58 As Button
|
||||
Friend WithEvents Button59 As Button
|
||||
Friend WithEvents Button60 As Button
|
||||
Friend WithEvents Button61 As Button
|
||||
End Class
|
||||
|
||||
@@ -123,10 +123,4 @@
|
||||
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -5147,6 +5147,197 @@ OPTION (MAXRECURSION 1000);", "AVISO") '
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Private Sub Button61_Click(sender As Object, e As EventArgs) Handles Button61.Click
|
||||
Dim referenz As String = InputBox("Bitte EXG-Referenz eingeben (mit % am Ende):", "NCTS-Test aus EXG", "4801/26033344%")
|
||||
If String.IsNullOrWhiteSpace(referenz) Then Exit Sub
|
||||
|
||||
VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "UNISPED"
|
||||
VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "SUB"
|
||||
|
||||
Try
|
||||
Dim saveFile = TestNCTSFromEXG(referenz.Trim(), True, "T1")
|
||||
MsgBox("NCTS-Test erfolgreich!" & vbCrLf & saveFile)
|
||||
Process.Start(saveFile)
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler beim NCTS-Test:" & vbCrLf & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
Shared Function GET_IDsByBezugsNr(bezugsNr As String) As List(Of Integer)
|
||||
Dim ids As New List(Of Integer)
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand("SELECT exg_Id FROM tblDakosy_EXG WHERE exg_ObjectName LIKE @bezugsNr ORDER BY exg_ObjectName", conn)
|
||||
cmd.Parameters.AddWithValue("@bezugsNr", bezugsNr.Replace("[", "[[]").Replace("%", "[%]").Replace("_", "[_]") & "[_]EXG[0-9]%")
|
||||
|
||||
Using dr = cmd.ExecuteReader()
|
||||
While dr.Read()
|
||||
ids.Add(Convert.ToInt32(dr("exg_Id")))
|
||||
End While
|
||||
End Using
|
||||
End Using
|
||||
End Using
|
||||
|
||||
Return ids
|
||||
End Function
|
||||
|
||||
Shared Function TestNCTSFromEXG(bezugsNrEXG As String, Optional sendFTP As Boolean = False, Optional nctsArt As String = "T1") As String
|
||||
Dim exgIds As List(Of Integer) = GET_IDsByBezugsNr(bezugsNrEXG)
|
||||
|
||||
If exgIds.Count = 0 Then
|
||||
Throw New Exception("Keine EXG-Gestellungen gefunden für: " & bezugsNrEXG)
|
||||
End If
|
||||
|
||||
Console.WriteLine("EXG-Test: " & exgIds.Count & " Gestellungen gefunden.")
|
||||
|
||||
Dim BezugsNr As String = "TEST_EXG_" & Now.ToString("MMddHHmmss")
|
||||
Dim NCTS_OUT As New DAKOSY_Worker.cDakosyNCTSOut004
|
||||
Dim DY_ANM As New cDakosy_Zollanmeldungen
|
||||
Dim firma As String = ""
|
||||
Dim niederlassung As String = ""
|
||||
Dim firstEXG As Boolean = True
|
||||
|
||||
NCTS_OUT.ncts_ObjectName = BezugsNr
|
||||
|
||||
'EXG-Daten laden und NCTS befüllen
|
||||
For Each exgId In exgIds.Distinct()
|
||||
Dim EXG As New DAKOSY_Worker.cDakosyEXG
|
||||
EXG.exg_Id = exgId
|
||||
|
||||
If Not EXG.LOAD(True) Then Throw New Exception("EXG nicht gefunden: " & exgId)
|
||||
If EXG.exg_POSITION Is Nothing OrElse EXG.exg_POSITION.Count = 0 Then Throw New Exception("EXG ohne Positionen: " & exgId)
|
||||
|
||||
If firstEXG Then
|
||||
firma = EXG.exg_firma
|
||||
niederlassung = EXG.exg_niederlassung
|
||||
firstEXG = False
|
||||
Else
|
||||
If firma <> EXG.exg_firma OrElse niederlassung <> EXG.exg_niederlassung Then
|
||||
Throw New Exception("EXG-Datensätze gehören zu unterschiedlichen Firmen oder Niederlassungen.")
|
||||
End If
|
||||
End If
|
||||
|
||||
DAKOSY_Worker.cDakosyNCTSOut004.fillNCTS_WithEXG(NCTS_OUT, EXG, BezugsNr) '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
Console.WriteLine("TEST NCTS: EXG übernommen: " & EXG.exg_ObjectName)
|
||||
|
||||
|
||||
Dim HC = NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Last()
|
||||
|
||||
Console.WriteLine("EXG: " & EXG.exg_ObjectName)
|
||||
Console.WriteLine("EXG Versender: " & Convert.ToString(EXG.exg_Consignor_Name))
|
||||
Console.WriteLine("EXG Empfänger: " & Convert.ToString(EXG.exg_Consignee_Name))
|
||||
Console.WriteLine("NCTS Versender: " & Convert.ToString(HC.nctsHC_Consignor_Name))
|
||||
Console.WriteLine("NCTS Empfänger: " & Convert.ToString(HC.nctsHC_Consignee_Name))
|
||||
|
||||
|
||||
Next
|
||||
|
||||
|
||||
If NCTS_OUT.ncts_HOUSE_CONSIGNMENT Is Nothing OrElse NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Count = 0 Then
|
||||
Throw New Exception("Keine NCTS-House-Consignments erzeugt.")
|
||||
End If
|
||||
|
||||
'Neue Zollanmeldung erstellen
|
||||
DY_ANM.dy_ART = nctsArt
|
||||
DY_ANM.dy_BezugsNr = BezugsNr
|
||||
|
||||
If Not DY_ANM.SAVE() OrElse DY_ANM.dy_Id <= 0 Then
|
||||
Throw New Exception("NCTS-Zollanmeldung konnte nicht erstellt werden.")
|
||||
End If
|
||||
|
||||
'NCTS mit der neuen Zollanmeldung verknüpfen
|
||||
NCTS_OUT.ncts_ObjectName = BezugsNr
|
||||
NCTS_OUT.ncts_dyaAnmID = DY_ANM.dy_Id
|
||||
NCTS_OUT.ncts_Trans_Referenz = BezugsNr & "_" & Now.ToString("ddMMyyHHmmSS") 'Eindeutig
|
||||
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 = If(firma, "VERAG")
|
||||
NCTS_OUT.ncts_niederlassung = If(niederlassung, "SUB")
|
||||
|
||||
'CheckNCTSStringLengths(NCTS_OUT)
|
||||
If Not NCTS_OUT.SAVE_ALL() Then
|
||||
Throw New Exception("NCTS-Daten konnten nicht gespeichert werden. DY-ID: " & DY_ANM.dy_Id)
|
||||
End If
|
||||
|
||||
'NCTS-XML erstellen
|
||||
Dim saveFile As String = ""
|
||||
|
||||
|
||||
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
If Not cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, "CREATE", Application.StartupPath, "NCTS") Then
|
||||
Throw New Exception("NCTS-XML konnte nicht erzeugt werden.")
|
||||
End If
|
||||
|
||||
If String.IsNullOrWhiteSpace(saveFile) OrElse Not System.IO.File.Exists(saveFile) Then
|
||||
Throw New Exception("NCTS-XML-Datei fehlt.")
|
||||
End If
|
||||
|
||||
'Optional an DAKOSY senden
|
||||
If sendFTP Then
|
||||
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, firma) Then
|
||||
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
|
||||
DY_ANM.UPDATE_DATA()
|
||||
DY_ANM.UPDATE_AVISO_SND(DY_ANM.dy_SendungsId)
|
||||
Else
|
||||
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
|
||||
Throw New Exception("NCTS-FTP-Versand fehlgeschlagen. DY-ID: " & DY_ANM.dy_Id)
|
||||
End If
|
||||
End If
|
||||
|
||||
Console.WriteLine("TEST NCTS: " & BezugsNr & " / DY-ID: " & DY_ANM.dy_Id)
|
||||
Return saveFile
|
||||
End Function
|
||||
Private Shared Sub CheckNCTSStringLengths(NCTS_OUT As cDakosyNCTSOut004)
|
||||
Using conn = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionFMZOLL
|
||||
|
||||
Dim lengths As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
Using cmd As New SqlClient.SqlCommand("
|
||||
SELECT c.name, t.name AS DataType, c.max_length
|
||||
FROM sys.columns c
|
||||
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
|
||||
WHERE c.object_id = OBJECT_ID('dbo.tblDakosy_NCTSOut004')
|
||||
AND t.name IN ('varchar', 'nvarchar', 'char', 'nchar')", conn)
|
||||
|
||||
Using dr = cmd.ExecuteReader()
|
||||
While dr.Read()
|
||||
Dim maxLen As Integer = CInt(dr("max_length"))
|
||||
If maxLen = -1 Then Continue While
|
||||
Dim dataType As String = CStr(dr("DataType"))
|
||||
If dataType = "nvarchar" OrElse dataType = "nchar" Then maxLen \= 2
|
||||
lengths.Add(CStr(dr("name")), maxLen)
|
||||
End While
|
||||
End Using
|
||||
End Using
|
||||
|
||||
Dim errors As New List(Of String)
|
||||
|
||||
For Each prop In NCTS_OUT.GetType().GetProperties()
|
||||
If prop.PropertyType IsNot GetType(String) OrElse Not prop.CanRead Then Continue For
|
||||
If prop.GetIndexParameters().Length > 0 Then Continue For
|
||||
If Not lengths.ContainsKey(prop.Name) Then Continue For
|
||||
|
||||
Dim value As String = TryCast(prop.GetValue(NCTS_OUT, Nothing), String)
|
||||
If value Is Nothing Then Continue For
|
||||
|
||||
Dim maxLen As Integer = lengths(prop.Name)
|
||||
Dim actualBytes As Integer = System.Text.Encoding.GetEncoding(1252).GetByteCount(value)
|
||||
If actualBytes > maxLen Then
|
||||
errors.Add(prop.Name & ": " & actualBytes & "/" & maxLen & " Bytes - " & value.Substring(0, Math.Min(value.Length, 100)))
|
||||
End If
|
||||
Next
|
||||
|
||||
If errors.Count > 0 Then
|
||||
MsgBox("Zu lange NCTS-Felder:" & vbCrLf & String.Join(vbCrLf, errors))
|
||||
Throw New Exception("Zu lange NCTS-Felder:" & vbCrLf & String.Join(vbCrLf, errors))
|
||||
End If
|
||||
If lengths.Count = 0 Then
|
||||
Throw New Exception("Keine Spalten für tblDakosy_NCTSOut004 gefunden. Datenbank oder Schema prüfen.")
|
||||
End If
|
||||
End Using
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
@@ -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