Compare commits
2 Commits
d5a4322412
...
eab90bc81a
| Author | SHA1 | Date | |
|---|---|---|---|
| eab90bc81a | |||
| 6f59ac1470 |
@@ -1829,6 +1829,7 @@ Public Class cDakosy_EZA_Warenposition
|
||||
Property ezaWP_AbgabensteuerungKz As Object = Nothing ' VARCHAR (2) NULL,
|
||||
Property ezaWP_EUCode As Object = Nothing ' VARCHAR (3) NULL,
|
||||
Property ezaWP_UrsprungslandCode As Object = Nothing ' VARCHAR (2) NULL,
|
||||
Property ezaWP_Praeferenzursprungsland As Object = Nothing ' VARCHAR (2) NULL,
|
||||
Property ezaWP_Rohmasse As Object = Nothing ' DECIMAL (11, 1) NULL,
|
||||
Property ezaWP_Eigenmasse As Object = Nothing ' DECIMAL (11, 1) NULL,
|
||||
Property ezaWP_AHStatMenge As Object = Nothing ' DECIMAL (15, 3) NULL,
|
||||
@@ -1976,6 +1977,7 @@ Public Class cDakosy_EZA_Warenposition
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_AbgabensteuerungKz", ezaWP_AbgabensteuerungKz)) ' VARCHAR (2) NULL,
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_EUCode", ezaWP_EUCode)) ' VARCHAR (3) NULL,
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_UrsprungslandCode", ezaWP_UrsprungslandCode)) ' VARCHAR (2) NULL,
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_Praeferenzursprungsland", ezaWP_Praeferenzursprungsland)) ' VARCHAR (2) NULL,
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_Rohmasse", ezaWP_Rohmasse)) ' DECIMAL (11, 1) NULL,
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_Eigenmasse", ezaWP_Eigenmasse)) ' DECIMAL (11, 1) NULL,
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ezaWP_AHStatMenge", ezaWP_AHStatMenge)) ' DECIMAL (15, 3) NULL,
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
<Compile Include="cDakosy_Statusmeldungen.vb" />
|
||||
<Compile Include="cDY_Statusliste.vb" />
|
||||
<Compile Include="cDakosy_Stammreferenzen.vb" />
|
||||
<Compile Include="cImporter_DakosyToVERAG.vb" />
|
||||
<Compile Include="cZollsysteme_Aktenbeschriftung.vb" />
|
||||
<Compile Include="cZOLL_IMPORT.vb" />
|
||||
<Compile Include="DAKOSY\ATLAS\AES\AusfuhrAnmeldung_004.Designer.vb" />
|
||||
|
||||
257
DAKOSY_Worker/cImporter_DakosyToVERAG.vb
Normal file
257
DAKOSY_Worker/cImporter_DakosyToVERAG.vb
Normal file
@@ -0,0 +1,257 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
Public Class cImporter_DakosyToVERAG
|
||||
|
||||
Private SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
' ========================================================================
|
||||
' MAIN ENTRY
|
||||
' ========================================================================
|
||||
Public Function ImportDakosyEZA(eza As cDakosyEZA) As Boolean
|
||||
Try
|
||||
' 1) Duplikatscheck auf Kopfebene (MRN / LRN + System)
|
||||
If ExistsInVERAG(eza) Then
|
||||
Console.WriteLine($"Skip import (duplicate): MRN={If(eza.eza_MRN, "")} / LRN={If(eza.eza_ANR, "")}")
|
||||
Return False
|
||||
End If
|
||||
|
||||
' 2) HEADER anlegen
|
||||
Dim zaId = Save_Header(eza)
|
||||
If zaId <= 0 Then
|
||||
Console.WriteLine("Error: Header save failed")
|
||||
Return False
|
||||
End If
|
||||
|
||||
' 3) ITEMS speichern (alle Positionen – kein eigener Duplikatscheck)
|
||||
Save_Items(eza, zaId)
|
||||
|
||||
' 4) DUTIES speichern (aus AUFSCHUB – kein eigener Duplikatscheck)
|
||||
Save_Duties(eza, zaId)
|
||||
|
||||
' 5) DOCS speichern (Unterlagen auf Kopfebene – kein eigener Duplikatscheck)
|
||||
Save_Docs(eza, zaId)
|
||||
|
||||
Return True
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
|
||||
ex.Message,
|
||||
ex.StackTrace,
|
||||
Reflection.MethodInfo.GetCurrentMethod().Name
|
||||
)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
' ========================================================================
|
||||
' DUPLICATE CHECK : MRN / LRN + SYSTEM
|
||||
' ========================================================================
|
||||
Private Function ExistsInVERAG(eza As cDakosyEZA) As Boolean
|
||||
|
||||
Dim sqlStr As String =
|
||||
"SELECT TOP 1 1
|
||||
FROM tblVERAG_Zollanmeldung
|
||||
WHERE za_System = 'DAKOSY'
|
||||
AND (
|
||||
(za_MRN = @mrn AND @mrn IS NOT NULL)
|
||||
OR (za_LRN = @lrn AND @lrn IS NOT NULL)
|
||||
)"
|
||||
|
||||
Dim p As New List(Of SQLVariable) From {
|
||||
New SQLVariable("@mrn", If(eza.eza_MRN, DBNull.Value)),
|
||||
New SQLVariable("@lrn", If(eza.eza_ANR, DBNull.Value))
|
||||
}
|
||||
|
||||
Dim dt = SQL.loadDgvBySql_Param(sqlStr, "FMZOLL",, p)
|
||||
Return (dt IsNot Nothing AndAlso dt.Rows.Count > 0)
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
' ========================================================================
|
||||
' HEADER SAVE
|
||||
' ========================================================================
|
||||
Private Function Save_Header(eza As cDakosyEZA) As Integer
|
||||
|
||||
Dim list As New List(Of SQLVariable)
|
||||
|
||||
' PK wird von SQL doSQLVarListID gesetzt
|
||||
list.Add(New SQLVariable("za_Id", Nothing, , True, True))
|
||||
|
||||
list.Add(New SQLVariable("za_System", "DAKOSY"))
|
||||
list.Add(New SQLVariable("za_MRN", eza.eza_MRN))
|
||||
list.Add(New SQLVariable("za_LRN", eza.eza_ObjectName))
|
||||
|
||||
list.Add(New SQLVariable("za_Firma", eza.eza_firma))
|
||||
list.Add(New SQLVariable("za_Zollstelle", eza.eza_AdressierteZollstelle))
|
||||
list.Add(New SQLVariable("za_Sachbearbeiter", eza.eza_Bearbeiter))
|
||||
|
||||
' interne Zuordnungen
|
||||
list.Add(New SQLVariable("AvisoId", eza.eza_dyaAnmID))
|
||||
list.Add(New SQLVariable("SendungsId", Nothing))
|
||||
|
||||
Dim cmd As String =
|
||||
"INSERT INTO tblVERAG_Zollanmeldung
|
||||
(za_System,
|
||||
za_MRN,
|
||||
za_LRN,
|
||||
za_Firma,
|
||||
za_Zollstelle,
|
||||
za_Sachbearbeiter,
|
||||
AvisoId,
|
||||
SendungsId)
|
||||
VALUES
|
||||
(@za_System,
|
||||
@za_MRN,
|
||||
@za_LRN,
|
||||
@za_Firma,
|
||||
@za_Zollstelle,
|
||||
@za_Sachbearbeiter,
|
||||
@AvisoId,
|
||||
@SendungsId);
|
||||
SELECT SCOPE_IDENTITY()"
|
||||
|
||||
Dim newId = SQL.doSQLVarListID(0, cmd, "FMZOLL", , list)
|
||||
|
||||
|
||||
Return CInt(newId)
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
' ========================================================================
|
||||
' ITEMS SAVE (alle Positionen, kein Duplikatscheck)
|
||||
' ========================================================================
|
||||
Private Sub Save_Items(eza As cDakosyEZA, zaId As Integer)
|
||||
|
||||
If eza.eza_WARENPOS Is Nothing Then Exit Sub
|
||||
|
||||
For Each pos As cDakosy_EZA_Warenposition In eza.eza_WARENPOS
|
||||
|
||||
Dim list As New List(Of SQLVariable)
|
||||
|
||||
list.Add(New SQLVariable("za_Id", zaId))
|
||||
|
||||
' PosNr / Artikel / HS
|
||||
list.Add(New SQLVariable("zaItem_PosNo", pos.ezaWP_PositionsNummer))
|
||||
list.Add(New SQLVariable("zaItem_ArticleCode", pos.ezaWP_Artikelnummer))
|
||||
list.Add(New SQLVariable("zaItem_HSCode", pos.ezaWP_WarennummerEZT))
|
||||
|
||||
' Ursprung / Origin
|
||||
list.Add(New SQLVariable("zaItem_OriginCountry", pos.ezaWP_UrsprungslandCode))
|
||||
|
||||
' Zollwert / Statistikwert
|
||||
list.Add(New SQLVariable("zaItem_CustomsValue", pos.ezaWP_Zollwert))
|
||||
list.Add(New SQLVariable("zaItem_StatisticalValue", pos.ezaWP_AHStatWert))
|
||||
|
||||
' Begünstigungscode (Dakosy: ezaWP_BeguenstigungBenatragtCode)
|
||||
list.Add(New SQLVariable("zaItem_BeguenstigungCode", pos.ezaWP_BeguenstigungBenatragtCode))
|
||||
|
||||
Dim cmd As String =
|
||||
"INSERT INTO tblVERAG_Zollanmeldung_Items
|
||||
(za_Id,
|
||||
zaItem_PosNo,
|
||||
zaItem_ArticleCode,
|
||||
zaItem_HSCode,
|
||||
zaItem_OriginCountry,
|
||||
zaItem_CustomsValue,
|
||||
zaItem_StatisticalValue,
|
||||
zaItem_BeguenstigungCode)
|
||||
VALUES
|
||||
(@za_Id,
|
||||
@zaItem_PosNo,
|
||||
@zaItem_ArticleCode,
|
||||
@zaItem_HSCode,
|
||||
@zaItem_OriginCountry,
|
||||
@zaItem_CustomsValue,
|
||||
@zaItem_StatisticalValue,
|
||||
@zaItem_BeguenstigungCode)"
|
||||
|
||||
SQL.doSQLVarList(cmd, "FMZOLL", , list)
|
||||
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
' ========================================================================
|
||||
' DUTIES SAVE (alle AUFSCHUB-Einträge, kein Duplikatscheck)
|
||||
' ========================================================================
|
||||
Private Sub Save_Duties(eza As cDakosyEZA, zaId As Integer)
|
||||
|
||||
If eza.eza_AUFSCHUB Is Nothing Then Exit Sub
|
||||
|
||||
For Each duty As cDakosy_EZA_Aufschub In eza.eza_AUFSCHUB
|
||||
|
||||
Dim list As New List(Of SQLVariable)
|
||||
|
||||
list.Add(New SQLVariable("za_Id", zaId))
|
||||
|
||||
' Dakosy-Aufschub Felder:
|
||||
' ezaAfb_AbgabeArt -> DutyType
|
||||
' ezaAfb_Abgabenbetrag -> Amount / AmountEUR
|
||||
list.Add(New SQLVariable("DutyType", duty.ezaAfb_AbgabeArt))
|
||||
list.Add(New SQLVariable("Amount", duty.ezaAfb_Abgabenbetrag))
|
||||
|
||||
' In der Aufschubtabelle gibt es keine Fremdwährungsspalte,
|
||||
' i.d.R. ist der Betrag EUR -> Currency/AmountEUR entsprechend setzen
|
||||
list.Add(New SQLVariable("Currency", "EUR"))
|
||||
list.Add(New SQLVariable("AmountEUR", duty.ezaAfb_Abgabenbetrag))
|
||||
|
||||
Dim cmd As String =
|
||||
"INSERT INTO tblVERAG_Zollanmeldung_Duties
|
||||
(za_Id,
|
||||
DutyType,
|
||||
Amount,
|
||||
Currency,
|
||||
AmountEUR)
|
||||
VALUES
|
||||
(@za_Id,
|
||||
@DutyType,
|
||||
@Amount,
|
||||
@Currency,
|
||||
@AmountEUR)"
|
||||
|
||||
SQL.doSQLVarList(cmd, "FMZOLL", , list)
|
||||
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
' ========================================================================
|
||||
' DOCS SAVE (alle Unterlagen auf Kopfebene, kein Duplikatscheck)
|
||||
' ========================================================================
|
||||
Private Sub Save_Docs(eza As cDakosyEZA, zaId As Integer)
|
||||
|
||||
If eza.eza_UNTERLAGEN Is Nothing Then Exit Sub
|
||||
|
||||
For Each d As cDakosy_EZA_Unterlagen In eza.eza_UNTERLAGEN
|
||||
|
||||
Dim list As New List(Of SQLVariable)
|
||||
|
||||
list.Add(New SQLVariable("za_Id", zaId))
|
||||
list.Add(New SQLVariable("Level", "H")) ' H = Header
|
||||
list.Add(New SQLVariable("DocType", d.ezaUl_Art))
|
||||
list.Add(New SQLVariable("DocNumber", d.ezaUl_Nummer))
|
||||
|
||||
Dim cmd As String =
|
||||
"INSERT INTO tblVERAG_Zollanmeldung_Docs
|
||||
(za_Id,
|
||||
Level,
|
||||
DocType,
|
||||
DocNumber)
|
||||
VALUES
|
||||
(@za_Id,
|
||||
@Level,
|
||||
@DocType,
|
||||
@DocNumber)"
|
||||
|
||||
SQL.doSQLVarList(cmd, "FMZOLL", , list)
|
||||
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user