Files
SDL/VERAG_PROG_ALLGEMEIN/VERAG_Zollanmeldung/cVERAG_Zollanmeldung.vb
2026-01-07 13:56:33 +01:00

941 lines
40 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Reflection
' ==========================================================================
' MASTER CLASS
' Customs Declaration (Header + Items + Duties + Documents)
' ==========================================================================
Public Class cVERAG_CustomsDeclarations
Public Property za_Id As Integer
Public Property za_System As String ' z.B. "DAKOSY"
Public Property za_CustomsSystem As String ' z.B. "ATLAS"
Public Property za_CustomsSystemCountry As String ' z.B. "DE"
Public Property za_IsExternalSystem As Boolean = False
Public Property za_IsFinalDeclaration As Boolean = False
Public Property za_UCR As String
Public Property za_Mandant_ID As String
Public Property za_Bereich_ID As String
Public Property za_Firma As String
Public Property za_Niederlassung As String
Public Property za_MRN As String
Public Property za_LRN As String
Public Property za_DeclarationNo As String
Public Property za_ReferenceCustomer As String
Public Property za_REGIME As String ' IMPORT, EXPORT, ...
Public Property za_RegistrationType As String
Public Property za_MainProcedure As String
Public Property za_AdditionalProcedure As String
Public Property za_DeclarationDate As Date?
Public Property za_ReleaseDate As Date?
Public Property za_AcceptanceDate As Date?
Public Property za_CustomsOffice As String
Public Property za_EntryCustomsOffice As String
Public Property za_RepresentationCode As String
Public Property za_TransportModeInland As String
Public Property za_TransportModeBorder As String
Public Property za_MeansOfTransport_Vehicle As String
Public Property za_MeansOfTransport_Type As String
Public Property za_MeansOfTransport_Nationality As String
Public Property za_ContainerNr1 As String
Public Property za_ContainerNr2 As String
Public Property za_ContainerNr3 As String
Public Property za_ContainerNr4 As String
Public Property za_ContainerNr5 As String
Public Property za_ContainerNr6 As String
Public Property za_ContainerNr7 As String
Public Property za_ContainerNr8 As String
Public Property za_ContainerNr9 As String
Public Property za_CountryDispatch As String
Public Property za_CountryDestination As String
Public Property za_CountryDestinationState As String
Public Property za_CountryImport As String
Public Property za_WarehouseCode As String
Public Property za_Incoterms As String
Public Property za_IncotermsPlace As String
Public Property za_InvoiceAmount As Decimal?
Public Property za_InvoiceCurrency As String
Public Property za_FiscalRepFlag As Boolean?
Public Property za_TaxDeduction As Boolean?
Public Property za_ApplicantTaxOffice As String
Public Property za_ApplicantVATNo As String
Public Property za_DV1Flag As Boolean?
Public Property za_PrevDocument_Type As String
Public Property za_PrevDocument_No As String
Public Property za_AvisoId As Integer?
Public Property za_SendungsId As Integer?
Public Property za_Remarks As String
Public Property za_Sachbearbeiter As String
Public Property za_SachbearbeiterId As String
Public Property za_TotGrossMass As Decimal?
Public Property Parties As New List(Of cVERAG_CustomsDeclarations_Parties)
Public Property Items As New List(Of cVERAG_CustomsDeclarations_Item)
Public Property Duties As New List(Of cVERAG_CustomsDeclarations_Duty)
Public Property Documents As New List(Of cVERAG_CustomsDeclarations_Document)
Public Property hasEntry As Boolean = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public Function getParameterList() As List(Of SQLVariable)
Return New List(Of SQLVariable) From {
New SQLVariable("za_Id", za_Id,, True),
New SQLVariable("za_System", za_System),
New SQLVariable("za_CustomsSystem", za_CustomsSystem),
New SQLVariable("za_CustomsSystemCountry", za_CustomsSystemCountry),
New SQLVariable("za_IsExternalSystem", za_IsExternalSystem),
New SQLVariable("za_IsFinalDeclaration", za_IsFinalDeclaration),
New SQLVariable("za_UCR", za_UCR),
New SQLVariable("za_Mandant_ID", za_Mandant_ID),
New SQLVariable("za_Bereich_ID", za_Bereich_ID),
New SQLVariable("za_Firma", za_Firma),
New SQLVariable("za_Niederlassung", za_Niederlassung),
New SQLVariable("za_MRN", za_MRN),
New SQLVariable("za_LRN", za_LRN),
New SQLVariable("za_DeclarationNo", za_DeclarationNo),
New SQLVariable("za_ReferenceCustomer", za_ReferenceCustomer),
New SQLVariable("za_REGIME", za_REGIME),
New SQLVariable("za_RegistrationType", za_RegistrationType),
New SQLVariable("za_MainProcedure", za_MainProcedure),
New SQLVariable("za_AdditionalProcedure", za_AdditionalProcedure),
New SQLVariable("za_DeclarationDate", za_DeclarationDate),
New SQLVariable("za_ReleaseDate", za_ReleaseDate),
New SQLVariable("za_AcceptanceDate", za_AcceptanceDate),
New SQLVariable("za_CustomsOffice", za_CustomsOffice),
New SQLVariable("za_EntryCustomsOffice", za_EntryCustomsOffice),
New SQLVariable("za_RepresentationCode", za_RepresentationCode),
New SQLVariable("za_TransportModeInland", za_TransportModeInland),
New SQLVariable("za_TransportModeBorder", za_TransportModeBorder),
New SQLVariable("za_MeansOfTransport_Vehicle", za_MeansOfTransport_Vehicle),
New SQLVariable("za_MeansOfTransport_Type", za_MeansOfTransport_Type),
New SQLVariable("za_MeansOfTransport_Nationality", za_MeansOfTransport_Nationality),
New SQLVariable("za_ContainerNr1", za_ContainerNr1),
New SQLVariable("za_ContainerNr2", za_ContainerNr2),
New SQLVariable("za_ContainerNr3", za_ContainerNr3),
New SQLVariable("za_ContainerNr4", za_ContainerNr4),
New SQLVariable("za_ContainerNr5", za_ContainerNr5),
New SQLVariable("za_ContainerNr6", za_ContainerNr6),
New SQLVariable("za_ContainerNr7", za_ContainerNr7),
New SQLVariable("za_ContainerNr8", za_ContainerNr8),
New SQLVariable("za_ContainerNr9", za_ContainerNr9),
New SQLVariable("za_CountryDispatch", za_CountryDispatch),
New SQLVariable("za_CountryDestination", za_CountryDestination),
New SQLVariable("za_CountryDestinationState", za_CountryDestinationState),
New SQLVariable("za_CountryImport", za_CountryImport),
New SQLVariable("za_WarehouseCode", za_WarehouseCode),
New SQLVariable("za_Incoterms", za_Incoterms),
New SQLVariable("za_IncotermsPlace", za_IncotermsPlace),
New SQLVariable("za_InvoiceAmount", za_InvoiceAmount),
New SQLVariable("za_InvoiceCurrency", za_InvoiceCurrency),
New SQLVariable("za_FiscalRepFlag", za_FiscalRepFlag),
New SQLVariable("za_TaxDeduction", za_TaxDeduction),
New SQLVariable("za_ApplicantTaxOffice", za_ApplicantTaxOffice),
New SQLVariable("za_ApplicantVATNo", za_ApplicantVATNo),
New SQLVariable("za_DV1Flag", za_DV1Flag),
New SQLVariable("za_PrevDocument_Type", za_PrevDocument_Type),
New SQLVariable("za_PrevDocument_No", za_PrevDocument_No),
New SQLVariable("za_AvisoId", za_AvisoId),
New SQLVariable("za_SendungsId", za_SendungsId),
New SQLVariable("za_Remarks", za_Remarks),
New SQLVariable("za_Sachbearbeiter", za_Sachbearbeiter),
New SQLVariable("za_SachbearbeiterId", za_SachbearbeiterId),
New SQLVariable("za_TotGrossMass", za_TotGrossMass)
}
End Function
Public Function getInsertCmd() As String
Dim f As String = "", v As String = ""
For Each i In getParameterList()
If Not i.isPrimaryParam Then
f &= "[" & i.Text & "],"
v &= "@" & i.Scalarvariable & ","
End If
Next
Return "INSERT INTO tblVERAG_CustomsDeclarations (" &
f.TrimEnd(","c) & ") VALUES (" & v.TrimEnd(","c) & ")"
End Function
Public Function getUpdateCmd() As String
Dim s As String = ""
For Each i In getParameterList()
If Not i.isPrimaryParam Then
s &= "[" & i.Text & "]=@" & i.Scalarvariable & ","
End If
Next
Return "UPDATE tblVERAG_CustomsDeclarations SET " &
s.TrimEnd(","c) & " WHERE za_Id=@za_Id"
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
"SELECT * FROM tblVERAG_CustomsDeclarations WHERE za_Id=@_BASE_id", conn)
cmd.Parameters.AddWithValue("@_BASE_id", za_Id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim pi = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
pi.SetValue(Me, Nothing)
Else
pi.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Parties = cVERAG_CustomsDeclarations_Parties.LOAD_BY_ZAID(za_Id)
Items = cVERAG_CustomsDeclarations_Item.LOAD_BY_ZAID(za_Id)
Duties = cVERAG_CustomsDeclarations_Duty.LOAD_BY_ZAID(za_Id)
Documents = cVERAG_CustomsDeclarations_Document.LOAD_HEAD_BY_ZAID(za_Id)
Catch ex As Exception
cErrorHandler.ERR(ex.Message, ex.StackTrace, MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Shared Function LOAD_List_CBAM(EORI() As String, ImportCountry As String, datFrom As Date, datTo As Date, Optional CustomsSystem As String = "", Optional loadAll As Boolean = True, Optional indirect As Boolean = False) As List(Of cVERAG_CustomsDeclarations)
Dim LIST As New List(Of cVERAG_CustomsDeclarations)
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Try
' ------------------------------------------------------------
' CBAM Pattern (HSCode)
' ------------------------------------------------------------
Dim cbamWhere As String =
VERAG_PROG_ALLGEMEIN.cGreendeal_CBAM_Trn.BuildCBAMPatternWhereClause("i.zaItem_HSCode")
' ------------------------------------------------------------
' SQL: ZA-IDs ermitteln
' ------------------------------------------------------------
Dim eoriIn As String =
String.Join(",", EORI.
Where(Function(x) Not String.IsNullOrWhiteSpace(x)).
Select(Function(x) "'" & x.Replace("'", "''") & "'"))
Dim sqlstr As String =
"SELECT DISTINCT z.* " &
"FROM VERAG.dbo.tblVERAG_CustomsDeclarations z " &
"INNER JOIN VERAG.dbo.tblVERAG_CustomsDeclarations_Items i " &
" ON z.za_Id = i.zaItem_zaId " &
"INNER JOIN VERAG.dbo.tblVERAG_CustomsDeclarations_Parties p " &
" ON z.za_Id = p.zaParty_zaId " &
"WHERE z.za_REGIME = 'IMPORT' " &
" AND z.za_IsFinalDeclaration = 1 " &
" AND z.za_DeclarationDate >= @dateFrom " &
" AND z.za_DeclarationDate <= @dateTo " &
" AND p.zaParty_EORI IN (" & eoriIn & ") " &
" AND " & cbamWhere
If indirect Then
sqlstr &= " AND (
(za_System IN('DHF','DHF_UNISPED') AND za_RepresentationCode=3) OR
(za_System IN('TELOTEC') AND za_RepresentationCode=3) OR
(za_System IN('DAKOSY') AND za_RepresentationCode=2)
)"
End If
If ImportCountry <> "" Then
sqlstr &= " AND z.za_CountryImport = @importCountry "
End If
If CustomsSystem <> "" Then
sqlstr &= " AND z.za_System = @sys "
End If
Using conn = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(sqlstr, conn)
' cmd.Parameters.AddWithValue("@eori", EORI)
cmd.Parameters.AddWithValue("@dateFrom", datFrom)
cmd.Parameters.AddWithValue("@dateTo", datTo)
If ImportCountry <> "" Then
cmd.Parameters.AddWithValue("@importCountry", ImportCountry)
End If
If CustomsSystem <> "" Then
cmd.Parameters.AddWithValue("@sys", CustomsSystem)
End If
Using dr = cmd.ExecuteReader()
While dr.Read()
Dim CD As New cVERAG_CustomsDeclarations
CD.hasEntry = False
' ------------------------------------------------
' DIREKTE BEFÜLLUNG (wie gewünscht)
' ------------------------------------------------
For Each li In CD.getParameterList()
Dim pi = CD.GetType().GetProperty(li.Scalarvariable)
If pi Is Nothing Then Continue For
If dr.Item(li.Text) Is DBNull.Value Then
pi.SetValue(CD, Nothing)
Else
pi.SetValue(CD, dr.Item(li.Text))
End If
Next
CD.hasEntry = True
' ------------------------------------------------
' OPTIONALES NACHLADEN
' ------------------------------------------------
If loadAll Then
CD.Parties = cVERAG_CustomsDeclarations_Parties.LOAD_BY_ZAID(CD.za_Id)
CD.Items = cVERAG_CustomsDeclarations_Item.LOAD_BY_ZAID(CD.za_Id)
CD.Duties = cVERAG_CustomsDeclarations_Duty.LOAD_BY_ZAID(CD.za_Id)
CD.Documents = cVERAG_CustomsDeclarations_Document.LOAD_HEAD_BY_ZAID(CD.za_Id)
End If
LIST.Add(CD)
End While
End Using
End Using
End Using
Catch ex As Exception
cErrorHandler.ERR(ex.Message, ex.StackTrace, Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return LIST
End Function
Public Shared Function loadByMRN(MRN As String, loadall As Boolean) As cVERAG_CustomsDeclarations
Dim ZA As New cVERAG_CustomsDeclarations
If If(MRN, "") = "" Then Return ZA
Try
ZA.hasEntry = False
Using conn = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
"SELECT * FROM tblVERAG_CustomsDeclarations WHERE za_MRN=@_BASE_id", conn)
cmd.Parameters.AddWithValue("@_BASE_id", MRN)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In ZA.getParameterList()
Dim pi = ZA.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
pi.SetValue(ZA, Nothing)
Else
pi.SetValue(ZA, dr.Item(li.Text))
End If
Next
ZA.hasEntry = True
End If
dr.Close()
End Using
End Using
If loadall Then
ZA.Parties = cVERAG_CustomsDeclarations_Parties.LOAD_BY_ZAID(ZA.za_Id)
ZA.Items = cVERAG_CustomsDeclarations_Item.LOAD_BY_ZAID(ZA.za_Id)
ZA.Duties = cVERAG_CustomsDeclarations_Duty.LOAD_BY_ZAID(ZA.za_Id)
ZA.Documents = cVERAG_CustomsDeclarations_Document.LOAD_HEAD_BY_ZAID(ZA.za_Id)
End If
Catch ex As Exception
cErrorHandler.ERR(ex.Message, ex.StackTrace, MethodInfo.GetCurrentMethod.Name)
End Try
Return ZA
End Function
Public Function SAVE() As Boolean
Dim list = getParameterList()
Dim sqlstr =
"BEGIN TRAN " &
"IF EXISTS(SELECT 1 FROM tblVERAG_CustomsDeclarations WHERE za_Id=@za_Id) " &
"BEGIN " & getUpdateCmd() & " END " &
"ELSE BEGIN " & getInsertCmd() & " END " &
"COMMIT TRAN"
za_Id = SQL.doSQLVarListID(za_Id, sqlstr, "FMZOLL", , list)
If za_Id <= 0 Then Return False
cVERAG_CustomsDeclarations_Parties.REPLACE_ALL(za_Id, Parties)
cVERAG_CustomsDeclarations_Duty.REPLACE_ALL(za_Id, Duties)
cVERAG_CustomsDeclarations_Document.REPLACE_HEAD(za_Id, Documents)
cVERAG_CustomsDeclarations_Item.REPLACE_ALL(za_Id, Items)
Return True
End Function
End Class
Public Class cVERAG_CustomsDeclarations_Parties
Public Property zaParty_Id As Integer
Public Property zaParty_zaId As Integer
Public Property zaParty_Role As String
Public Property zaParty_EORI As String
Public Property zaParty_EORI_NL As String
Public Property zaParty_Name As String
Public Property zaParty_Street As String
Public Property zaParty_PostalCode As String
Public Property zaParty_City As String
Public Property zaParty_Country As String
Public Property zaParty_TIN As String
Public Property zaParty_VATNumber As String
Public Property zaParty_TaxOffice As String
Public Property zaParty_ContactName As String
Public Property zaParty_Phone As String
Public Property zaParty_Email As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public Function getParameterList() As List(Of SQLVariable)
Return New List(Of SQLVariable) From {
New SQLVariable("zaParty_Id", zaParty_Id,, True),
New SQLVariable("zaParty_zaId", zaParty_zaId),
New SQLVariable("zaParty_Role", zaParty_Role),
New SQLVariable("zaParty_EORI", zaParty_EORI),
New SQLVariable("zaParty_EORI_NL", zaParty_EORI_NL),
New SQLVariable("zaParty_Name", zaParty_Name),
New SQLVariable("zaParty_Street", zaParty_Street),
New SQLVariable("zaParty_PostalCode", zaParty_PostalCode),
New SQLVariable("zaParty_City", zaParty_City),
New SQLVariable("zaParty_Country", zaParty_Country),
New SQLVariable("zaParty_VATNumber", zaParty_VATNumber),
New SQLVariable("zaParty_TaxOffice", zaParty_TaxOffice),
New SQLVariable("zaParty_TIN", zaParty_TIN),
New SQLVariable("zaParty_ContactName", zaParty_ContactName),
New SQLVariable("zaParty_Phone", zaParty_Phone),
New SQLVariable("zaParty_Email", zaParty_Email)
}
End Function
Public Function getInsertCmd() As String
Dim f As String = "", v As String = ""
For Each i In getParameterList()
If Not i.isPrimaryParam Then
f &= "[" & i.Text & "],"
v &= "@" & i.Scalarvariable & ","
End If
Next
Return "INSERT INTO tblVERAG_CustomsDeclarations_Parties (" &
f.TrimEnd(","c) & ") VALUES (" & v.TrimEnd(","c) & ")"
End Function
Public Shared Sub REPLACE_ALL(zaId As Integer, list As List(Of cVERAG_CustomsDeclarations_Parties))
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
SQL.doSQL("DELETE FROM tblVERAG_CustomsDeclarations_Parties WHERE zaParty_zaId=" & zaId, "FMZOLL")
For Each p In list
p.zaParty_zaId = zaId
p.zaParty_Id = SQL.doSQLVarListID(p.zaParty_Id, p.getInsertCmd(), "FMZOLL", , p.getParameterList())
Next
End Sub
Public Shared Function LOAD_BY_ZAID(zaId As Integer) As List(Of cVERAG_CustomsDeclarations_Parties)
Dim result As New List(Of cVERAG_CustomsDeclarations_Parties)
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
"SELECT * FROM tblVERAG_CustomsDeclarations_Parties WHERE zaParty_zaId=@zaId",
conn)
cmd.Parameters.AddWithValue("@zaId", zaId)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim obj As New cVERAG_CustomsDeclarations_Parties
For Each li In obj.getParameterList()
Dim propInfo As PropertyInfo =
obj.GetType().GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(obj, Nothing)
Else
propInfo.SetValue(obj, dr.Item(li.Text))
End If
Next
result.Add(obj)
End While
End Using
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
ex.Message,
ex.StackTrace,
System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return result
End Function
End Class
' ##########################################################
' ITEMS
' ##########################################################
Public Class cVERAG_CustomsDeclarations_Item
Public Property zaItem_Id As Integer
Public Property zaItem_zaId As Integer
Public Property zaItem_PosNo As Integer
Public Property zaItem_ArticleCode As String
Public Property zaItem_HSCode As String
Public Property zaItem_HSAddition1 As String
Public Property zaItem_HSAddition2 As String
Public Property zaItem_HSAddCodes1 As String
Public Property zaItem_HSAddCodes2 As String
Public Property zaItem_HSAddCodes3 As String
Public Property zaItem_HSAddCodes4 As String
Public Property zaItem_HSAddCodes5 As String
Public Property zaItem_HSAddCodes6 As String
Public Property zaItem_HSAddCodes7 As String
Public Property zaItem_HSAddCodes8 As String
Public Property zaItem_HSAddCodes9 As String
Public Property zaItem_HSAddCodes10 As String
Public Property zaItem_Description As String
Public Property zaItem_PackageColli As String
Public Property zaItem_PackageType As String
Public Property zaItem_PackageMark As String
Public Property zaItem_OriginCountry As String
Public Property zaItem_PreferentialCountry As String
Public Property zaItem_PreferenceCode As String
Public Property zaItem_QuotaNo As String
Public Property zaItem_MainProcedure As String
Public Property zaItem_AdditionalProc As String
Public Property zaItem_PrevProcedure As String
Public Property zaItem_GrossMass As Decimal?
Public Property zaItem_NetMass As Decimal?
Public Property zaItem_SuppUnitCode As String
Public Property zaItem_SuppQuantity As Decimal?
Public Property zaItem_StatisticalValueEUR As Decimal?
Public Property zaItem_CustomsValueEUR As Decimal?
Public Property zaItem_InvoiceCurrency As String
Public Property zaItem_InvoiceValueForeign As Decimal?
Public Property zaItem_InvoiceValueEUR As Decimal?
Public Property zaItem_BeguenstigungCode As String
Public Property zaItem_DV1Flag As Boolean?
Public Property zaItem_PosAddition As String
Public Property zaItem_Remarks As String
Public Property Documents As New List(Of cVERAG_CustomsDeclarations_Document)
Public Property hasEntry As Boolean = False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public Function getParameterList() As List(Of SQLVariable)
Return New List(Of SQLVariable) From {
New SQLVariable("zaItem_Id", zaItem_Id,, True),
New SQLVariable("zaItem_zaId", zaItem_zaId),
New SQLVariable("zaItem_PosNo", zaItem_PosNo),
New SQLVariable("zaItem_ArticleCode", zaItem_ArticleCode),
New SQLVariable("zaItem_HSCode", zaItem_HSCode),
New SQLVariable("zaItem_HSAddition1", zaItem_HSAddition1),
New SQLVariable("zaItem_HSAddition2", zaItem_HSAddition2),
New SQLVariable("zaItem_HSAddCodes1", zaItem_HSAddCodes1),
New SQLVariable("zaItem_HSAddCodes2", zaItem_HSAddCodes2),
New SQLVariable("zaItem_HSAddCodes3", zaItem_HSAddCodes3),
New SQLVariable("zaItem_HSAddCodes4", zaItem_HSAddCodes4),
New SQLVariable("zaItem_HSAddCodes5", zaItem_HSAddCodes5),
New SQLVariable("zaItem_HSAddCodes6", zaItem_HSAddCodes6),
New SQLVariable("zaItem_HSAddCodes7", zaItem_HSAddCodes7),
New SQLVariable("zaItem_HSAddCodes8", zaItem_HSAddCodes8),
New SQLVariable("zaItem_HSAddCodes9", zaItem_HSAddCodes9),
New SQLVariable("zaItem_HSAddCodes10", zaItem_HSAddCodes10),
New SQLVariable("zaItem_Description", zaItem_Description),
New SQLVariable("zaItem_PackageColli", zaItem_PackageColli),
New SQLVariable("zaItem_PackageType", zaItem_PackageType),
New SQLVariable("zaItem_PackageMark", zaItem_PackageMark),
New SQLVariable("zaItem_OriginCountry", zaItem_OriginCountry),
New SQLVariable("zaItem_PreferentialCountry", zaItem_PreferentialCountry),
New SQLVariable("zaItem_PreferenceCode", zaItem_PreferenceCode),
New SQLVariable("zaItem_QuotaNo", zaItem_QuotaNo),
New SQLVariable("zaItem_MainProcedure", zaItem_MainProcedure),
New SQLVariable("zaItem_AdditionalProc", zaItem_AdditionalProc),
New SQLVariable("zaItem_PrevProcedure", zaItem_PrevProcedure),
New SQLVariable("zaItem_GrossMass", zaItem_GrossMass),
New SQLVariable("zaItem_NetMass", zaItem_NetMass),
New SQLVariable("zaItem_SuppUnitCode", zaItem_SuppUnitCode),
New SQLVariable("zaItem_SuppQuantity", zaItem_SuppQuantity),
New SQLVariable("zaItem_StatisticalValueEUR", zaItem_StatisticalValueEUR),
New SQLVariable("zaItem_CustomsValueEUR", zaItem_CustomsValueEUR),
New SQLVariable("zaItem_InvoiceCurrency", zaItem_InvoiceCurrency),
New SQLVariable("zaItem_InvoiceValueForeign", zaItem_InvoiceValueForeign),
New SQLVariable("zaItem_InvoiceValueEUR", zaItem_InvoiceValueEUR),
New SQLVariable("zaItem_BeguenstigungCode", zaItem_BeguenstigungCode),
New SQLVariable("zaItem_DV1Flag", zaItem_DV1Flag),
New SQLVariable("zaItem_PosAddition", zaItem_PosAddition),
New SQLVariable("zaItem_Remarks", zaItem_Remarks)
}
End Function
Public Function getInsertCmd() As String
Dim f As String = "", v As String = ""
For Each i In getParameterList()
If Not i.isPrimaryParam Then
f &= "[" & i.Text & "],"
v &= "@" & i.Scalarvariable & ","
End If
Next
Return "INSERT INTO tblVERAG_CustomsDeclarations_Items (" &
f.TrimEnd(","c) & ") VALUES (" & v.TrimEnd(","c) & ")"
End Function
' ---------- DELETE + INSERT ----------
Public Shared Sub REPLACE_ALL(zaId As Integer, list As List(Of cVERAG_CustomsDeclarations_Item))
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
SQL.doSQL("DELETE FROM tblVERAG_CustomsDeclarations_Items WHERE zaItem_zaId=" & zaId, "FMZOLL")
SQL.doSQL("DELETE FROM tblVERAG_CustomsDeclarations_Documents WHERE zaDoc_zaId=" & zaId & " AND zaDoc_ItemId is not null", "FMZOLL")
For Each it In list
it.zaItem_zaId = zaId
it.zaItem_Id = SQL.doSQLVarListID(it.zaItem_Id, it.getInsertCmd(), "FMZOLL", , it.getParameterList())
'MsgBox(it.zaItem_Id)
cVERAG_CustomsDeclarations_Document.INSERT_ITEM(it.zaItem_zaId, it.zaItem_Id, it.Documents)
Next
End Sub
Public Shared Function LOAD_BY_ZAID(zaId As Integer) As List(Of cVERAG_CustomsDeclarations_Item)
Dim result As New List(Of cVERAG_CustomsDeclarations_Item)
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
"SELECT * FROM tblVERAG_CustomsDeclarations_Items WHERE zaItem_zaId=@zaId",
conn)
cmd.Parameters.AddWithValue("@zaId", zaId)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim it As New cVERAG_CustomsDeclarations_Item
it.hasEntry = False
For Each li In it.getParameterList()
Dim pi As PropertyInfo =
it.GetType().GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
pi.SetValue(it, Nothing)
Else
pi.SetValue(it, dr.Item(li.Text))
End If
Next
it.hasEntry = True
result.Add(it)
End While
End Using
End Using
End Using
' ===== Documents NACHLADEN (pro Item) =====
For Each it In result
it.Documents =
cVERAG_CustomsDeclarations_Document.LOAD_ITEM_BY_ITEMID(zaId, it.zaItem_Id)
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return result
End Function
End Class
' ##########################################################
' DUTIES
' ##########################################################
Public Class cVERAG_CustomsDeclarations_Duty
Public Property zaDuty_Id As Integer
Public Property zaDuty_zaId As Integer
Public Property zaDuty_AccountType As String
Public Property zaDuty_AccountHeadCustoms As String
Public Property zaDuty_ApplicationType As String
Public Property zaDuty_AccountNo As String
Public Property zaDuty_AccountEORI As String
Public Property zaDuty_AccountHolderName As String
Public Property zaDuty_DutyType As String
Public Property zaDuty_BIN As String
Public Property zaDuty_AmountEUR As Decimal?
Public Property zaDuty_AmountForeign As Decimal?
Public Property zaDuty_Currency As String
Public Property zaDuty_LimitDate As Date?
Public Property hasEntry As Boolean = False
Public Function getParameterList() As List(Of SQLVariable)
Return New List(Of SQLVariable) From {
New SQLVariable("zaDuty_Id", zaDuty_Id,, True),
New SQLVariable("zaDuty_zaId", zaDuty_zaId),
New SQLVariable("zaDuty_AccountType", zaDuty_AccountType),
New SQLVariable("zaDuty_AccountHeadCustoms", zaDuty_AccountHeadCustoms),
New SQLVariable("zaDuty_ApplicationType", zaDuty_ApplicationType),
New SQLVariable("zaDuty_AccountNo", zaDuty_AccountNo),
New SQLVariable("zaDuty_AccountEORI", zaDuty_AccountEORI),
New SQLVariable("zaDuty_AccountHolderName", zaDuty_AccountHolderName),
New SQLVariable("zaDuty_DutyType", zaDuty_DutyType),
New SQLVariable("zaDuty_BIN", zaDuty_BIN),
New SQLVariable("zaDuty_AmountEUR", zaDuty_AmountEUR),
New SQLVariable("zaDuty_AmountForeign", zaDuty_AmountForeign),
New SQLVariable("zaDuty_Currency", zaDuty_Currency),
New SQLVariable("zaDuty_LimitDate", zaDuty_LimitDate)
}
End Function
Public Function getInsertCmd() As String
Dim f As String = "", v As String = ""
For Each i In getParameterList()
If Not i.isPrimaryParam Then
f &= "[" & i.Text & "],"
v &= "@" & i.Scalarvariable & ","
End If
Next
Return "INSERT INTO tblVERAG_CustomsDeclarations_Duties (" &
f.TrimEnd(","c) & ") VALUES (" & v.TrimEnd(","c) & ")"
End Function
' ---------- DELETE + INSERT ----------
Public Shared Sub REPLACE_ALL(zaId As Integer, list As List(Of cVERAG_CustomsDeclarations_Duty))
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
SQL.doSQL("DELETE FROM tblVERAG_CustomsDeclarations_Duties WHERE zaDuty_zaId=" & zaId, "FMZOLL")
For Each d In list
d.zaDuty_zaId = zaId
d.zaDuty_Id = SQL.doSQLVarListID(d.zaDuty_Id, d.getInsertCmd(), "FMZOLL", , d.getParameterList())
Next
End Sub
Public Shared Function LOAD_BY_ZAID(zaId As Integer) _
As List(Of cVERAG_CustomsDeclarations_Duty)
Dim result As New List(Of cVERAG_CustomsDeclarations_Duty)
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(
"SELECT * FROM tblVERAG_CustomsDeclarations_Duties WHERE zaDuty_zaId=@zaId",
conn)
cmd.Parameters.AddWithValue("@zaId", zaId)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim d As New cVERAG_CustomsDeclarations_Duty
d.hasEntry = False
' ===== DEINE LOAD-VORLAGE (1:1, nur in While) =====
For Each li In d.getParameterList()
Dim pi As PropertyInfo =
d.GetType().GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
pi.SetValue(d, Nothing)
Else
pi.SetValue(d, dr.Item(li.Text))
End If
Next
d.hasEntry = True
result.Add(d)
End While
End Using
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
ex.Message,
ex.StackTrace,
System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return result
End Function
End Class
' ##########################################################
' DOCUMENTS (HEAD + ITEM)
' ##########################################################
Public Class cVERAG_CustomsDeclarations_Document
Public Property zaDoc_Id As Integer
Public Property zaDoc_zaId As Integer
Public Property zaDoc_ItemId As Integer?
Public Property zaDoc_Date As String
Public Property zaDoc_Section As String
Public Property zaDoc_Code As String
Public Property zaDoc_Presentation As String
Public Property zaDoc_DepreciationAmount As String
Public Property zaDoc_DepreciationUnitmeasurement As String
Public Property zaDoc_DepreciationUnitmeasurementQualifier As String
Public Property zaDoc_Reference As String
Public Property zaDoc_Description As String
Public Property hasEntry As Boolean = False
Public Function getParameterList() As List(Of SQLVariable)
Return New List(Of SQLVariable) From {
New SQLVariable("zaDoc_Id", zaDoc_Id,, True),
New SQLVariable("zaDoc_zaId", zaDoc_zaId),
New SQLVariable("zaDoc_ItemId", zaDoc_ItemId),
New SQLVariable("zaDoc_Date", zaDoc_Date),
New SQLVariable("zaDoc_Section", zaDoc_Section),
New SQLVariable("zaDoc_Code", zaDoc_Code),
New SQLVariable("zaDoc_Reference", zaDoc_Reference),
New SQLVariable("zaDoc_Presentation", zaDoc_Presentation),
New SQLVariable("zaDoc_DepreciationAmount", zaDoc_DepreciationAmount),
New SQLVariable("zaDoc_DepreciationUnitmeasurement", zaDoc_DepreciationUnitmeasurement),
New SQLVariable("zaDoc_DepreciationUnitmeasurementQualifier", zaDoc_DepreciationUnitmeasurementQualifier),
New SQLVariable("zaDoc_Description", zaDoc_Description)
}
End Function
Public Function getInsertCmd() As String
Dim f As String = "", v As String = ""
For Each i In getParameterList()
If Not i.isPrimaryParam Then
f &= "[" & i.Text & "],"
v &= "@" & i.Scalarvariable & ","
End If
Next
Return "INSERT INTO tblVERAG_CustomsDeclarations_Documents (" &
f.TrimEnd(","c) & ") VALUES (" & v.TrimEnd(","c) & ")"
End Function
' ---------- DELETE + INSERT ----------
Public Shared Sub REPLACE_HEAD(zaId As Integer, list As List(Of cVERAG_CustomsDeclarations_Document))
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
SQL.doSQL(
"DELETE FROM tblVERAG_CustomsDeclarations_Documents
WHERE zaDoc_zaId=" & zaId & " AND zaDoc_ItemId IS NULL",
"FMZOLL")
For Each d In list
d.zaDoc_zaId = zaId
d.zaDoc_ItemId = Nothing
d.zaDoc_Id = SQL.doSQLVarListID(d.zaDoc_Id, d.getInsertCmd(), "FMZOLL", , d.getParameterList())
Next
End Sub
Public Shared Sub INSERT_ITEM(zaId As Integer, itemId As Integer, list As List(Of cVERAG_CustomsDeclarations_Document))
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
For Each d In list
d.zaDoc_zaId = zaId
d.zaDoc_ItemId = itemId
d.zaDoc_Id = SQL.doSQLVarListID(d.zaDoc_Id, d.getInsertCmd(), "FMZOLL", , d.getParameterList())
Next
End Sub
Public Shared Function LOAD_HEAD_BY_ZAID(zaId As Integer) As List(Of cVERAG_CustomsDeclarations_Document)
Return LOAD_BY_SQL(
"SELECT * FROM tblVERAG_CustomsDeclarations_Documents
WHERE zaDoc_zaId=" & zaId & " AND zaDoc_ItemId IS NULL")
End Function
Public Shared Function LOAD_ITEM_BY_ITEMID(zaId As Integer, itemId As Integer) As List(Of cVERAG_CustomsDeclarations_Document)
Return LOAD_BY_SQL(
"SELECT * FROM tblVERAG_CustomsDeclarations_Documents
WHERE zaDoc_zaId=" & zaId & " AND zaDoc_ItemId=" & itemId)
End Function
Private Shared Function LOAD_BY_SQL(sqlstr As String) _
As List(Of cVERAG_CustomsDeclarations_Document)
Dim result As New List(Of cVERAG_CustomsDeclarations_Document)
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(sqlstr, conn)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim d As New cVERAG_CustomsDeclarations_Document
d.hasEntry = False
' ===== DEINE LOAD-VORLAGE (1:1, kombiniert) =====
For Each li In d.getParameterList()
Dim pi As PropertyInfo =
d.GetType().GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
pi.SetValue(d, Nothing)
Else
pi.SetValue(d, dr.Item(li.Text))
End If
Next
d.hasEntry = True
result.Add(d)
End While
End Using
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(
ex.Message,
ex.StackTrace,
System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return result
End Function
End Class