This commit is contained in:
2025-04-22 17:11:39 +02:00
parent 4d932eab47
commit 9f61e34e68
3 changed files with 244 additions and 2 deletions

View File

@@ -0,0 +1,241 @@
Imports Newtonsoft.Json
Public Class cRelayHub
Public Class cRelayHubDocument
Public Property type As String
Public Property base64String As String
Public Property filename As String
Public Property fileType As String
End Class
Public Class cRelayHubTransaction
Public Property ioPartner As String
Public Property ioDivision3 As String
Public Property ioReference As String
End Class
Public Class cRelayHubObjectIdentification
Public Property objectName As String
Public Property objectAlias As String
Public Property declarationType As String
Public Property referenceNumberOverlay As String
Public Property username As String
End Class
Public Class cRelayHubAgentContact
Public Property contactPersonName As String
Public Property contactPersonPhoneNumber As String
Public Property contactPersonPosition As String
End Class
Public Class cRelayHubCost
Public Property costAmount As String
Public Property costCurrency As String
End Class
Public Class cRelayHubHeaderData
Public Property agentContact As cRelayHubAgentContact
Public Property declarantIsConsignee As Boolean
Public Property representationRelationshipCode As String
Public Property inputTaxDeduction As String
Public Property procedureCodeRequested As String
Public Property goodsStatus As String
Public Property costs As List(Of cRelayHubCost)
Public Property transportMeansArrivalIdentity As String
Public Property transportMeansNationalityCode As String
Public Property previousAdministrativeReferenceType As String
Public Property previousAdministrativeReferenceNumber As String
Public Property destinationFederalState As String
Public Property destinationCountry As String
Public Property departureCountry As String
Public Property addressedCustomsOffice As String
End Class
Public Class cRelayHubAddress
Public Property addressType As String
Public Property participantEORI As String
Public Property participantSubsidiaryNumber As String
Public Property companyName As String
Public Property streetAndNumber As String
Public Property countryCode As String
Public Property postalCode As String
Public Property city As String
End Class
Public Class cRelayHubDeclaration
Public Property objectIdentification As cRelayHubObjectIdentification
Public Property headerData As cRelayHubHeaderData
Public Property addresses As List(Of cRelayHubAddress)
End Class
Public Class cRelayHubAdditionalData
Public Property transaction As cRelayHubTransaction
Public Property declaration As List(Of cRelayHubDeclaration)
End Class
Public Class cRelayHubJobOrderRequest
Public Property referenceNo As String
Public Property dispatchCountry As String
Public Property destinationCountry As String
Public Property regimeType As String
Public Property customer As String
Public Property documents As List(Of cRelayHubDocument)
Public Property additionalData As cRelayHubAdditionalData
End Class
Public Class cRelayHubJobOrderResponse
Public Property id As String
Public Property status As String
Public Property createdAt As String
Public Property referenceNo As String
End Class
Public Class cRelayHubApiResult
Public Property Success As Boolean
Public Property StatusCode As Integer
Public Property Message As String ' Zusammenfassung
Public Property Details As String ' Volltext/Fehlermeldung
Public Property Data As cRelayHubJobOrderResponse ' Nur bei 201
End Class
Public Class cRelayHub_sendToRelayHub_JobOrderRequest
'Shared API_KEY = "2a6fe6bf-6547-4d56-b14a-8a18f94f9e94"
Shared API_URL = "dev-relayhub.singlewindow.io/api"
Public Shared Function query_declarations(request As cRelayHubJobOrderRequest) As cRelayHubApiResult
Dim result As New cRelayHubApiResult()
Try
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
Dim success As Boolean
' HTTP-Client initialisieren
Dim http As New Chilkat.Http
' JSON vorbereiten
' Request-Objekt in JSON-String umwandeln
Dim jsonPayload As String = JsonConvert.SerializeObject(request)
MsgBox(jsonPayload)
' Anfrage senden
Dim response As Chilkat.HttpResponse = http.PostJson2(API_URL & "/job-orders/init", "application/json", jsonPayload)
If http.LastMethodSuccess <> True Then
result.Success = False
result.StatusCode = 0
result.Message = "Verbindungsfehler"
result.Details = http.LastErrorText
Return result
End If
result.StatusCode = response.StatusCode
Select Case response.StatusCode
Case 201
Try
Dim jobResponse As cRelayHubJobOrderResponse = JsonConvert.DeserializeObject(Of cRelayHubJobOrderResponse)(response.BodyStr)
result.Success = True
result.Message = "Job Order erfolgreich erstellt"
result.Data = jobResponse
result.Details = $"ID: {jobResponse.id}, Referenz: {jobResponse.referenceNo}"
Catch ex As Exception
result.Success = False
result.Message = "Antwort konnte nicht gelesen werden"
result.Details = ex.Message
End Try
Case 400 To 499
result.Success = False
result.Message = "Client-Fehler"
result.Details = response.BodyStr
Case 500 To 599
result.Success = False
result.Message = "Server-Fehler"
result.Details = response.BodyStr
Case Else
result.Success = False
result.Message = $"Unbekannter Fehler (Status {response.StatusCode})"
result.Details = response.BodyStr
End Select
Console.WriteLine(result.Message)
Console.WriteLine(result.Details)
Return result
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return Nothing
End Function
Function CreateSampleJobOrderRequest() As cRelayHubJobOrderRequest
Dim request As New cRelayHubJobOrderRequest With {
.referenceNo = "1001K",
.dispatchCountry = "TR",
.destinationCountry = "EN",
.regimeType = "IM",
.customer = "AVISO",
.documents = New List(Of cRelayHubDocument) From {
New cRelayHubDocument With {.type = "base64", .base64String = "SGVsbG8sIHRoaXMgaXMgYSBzYW1wbGUgYmFzZTY0IHN0cmluZy4=", .filename = "test.txt", .fileType = "invoice"},
New cRelayHubDocument With {.type = "base64", .base64String = "SGVsbG8sIHRoaXMgaXMgYSBzYW1wbGUgYmFzZTY0IHN0cmluZy4=", .filename = "test2.txt", .fileType = "atr"},
New cRelayHubDocument With {.type = "base64", .base64String = "SGVsbG8sIHRoaXMgaXMgYSBzYW1wbGUgYmFzZTY0IHN0cmluZy4=", .filename = "test3.txt", .fileType = "cmr"}
},
.additionalData = New cRelayHubAdditionalData With {
.transaction = New cRelayHubTransaction With {
.ioPartner = "VERA",
.ioDivision3 = "SUB",
.ioReference = "4803/25001763_1301250935SS/samimx"
},
.declaration = New List(Of cRelayHubDeclaration) From {
New cRelayHubDeclaration With {
.objectIdentification = New cRelayHubObjectIdentification With {
.objectName = "4803/25001763",
.objectAlias = "1349846",
.declarationType = "EZA-D"
},
.headerData = New cRelayHubHeaderData With {
.agentContact = New cRelayHubAgentContact With {
.contactPersonName = "AMANN",
.contactPersonPhoneNumber = "+49 123 456 789",
.contactPersonPosition = "Manager"
},
.declarantIsConsignee = True,
.representationRelationshipCode = "1",
.inputTaxDeduction = "true",
.procedureCodeRequested = "42",
.goodsStatus = "EU",
.costs = New List(Of cRelayHubCost) From {
New cRelayHubCost With {.costAmount = "25909.92", .costCurrency = "EUR"}
},
.transportMeansArrivalIdentity = "PB1552EC",
.transportMeansNationalityCode = "BG",
.previousAdministrativeReferenceType = "T1",
.previousAdministrativeReferenceNumber = "25TR160100001472M0",
.destinationFederalState = "07",
.destinationCountry = "DE",
.departureCountry = "TR"
},
.addresses = New List(Of cRelayHubAddress) From {
New cRelayHubAddress With {.addressType = "CZ", .participantEORI = "EORI12345", .participantSubsidiaryNumber = "001", .companyName = "SISECAM DIS TIC.A.S.", .streetAndNumber = "D-100 KARAYOLU CD.YAYLA MH.NO.70/C", .countryCode = "TR", .postalCode = "34949", .city = "TUZLA ISTANBUL"},
New cRelayHubAddress With {.addressType = "CN", .participantEORI = "EORI67890", .participantSubsidiaryNumber = "002", .companyName = "POLYNT COMPOSITES GERMANY GMBH", .streetAndNumber = "KIESELSTRASSE 2", .countryCode = "DE", .postalCode = "56357", .city = "MIEHLEN"}
}
}
}
}
}
Return request
End Function
End Class
End Class

View File

@@ -369,6 +369,7 @@
<Compile Include="frmDatumsabfrage.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Schnittstellen\ATEZ\RELAYHUB\cRelayHub.vb" />
<Compile Include="Schnittstellen\cHMRC.vb" />
<Compile Include="Schnittstellen\HMRC\cHMRCToken.vb" />
<Compile Include="Classes\cKundenAufschubkonten.vb" />