This commit is contained in:
2024-11-05 08:28:34 +01:00
parent 63dec4e505
commit 4ecf802db3
5 changed files with 1114 additions and 0 deletions

View File

@@ -0,0 +1,420 @@

Imports System.Web.Http
Imports Microsoft.Web.Http
Namespace ApiController.Controllers
<ApiVersion("1")>
<System.Web.Http.Route("api/v{version:apiVersion}/AVISO")>
<BasicAuthentication>
Public Class AVISOController
Inherits System.Web.Http.ApiController
''' <summary>
''' Gets the Hello World Response
''' </summary>
''' <returns>A SharePriceResponse which contains the price of the share</returns>
''' <response code="200">Returns 200 And Hallo World</response>
''' <response code="400">Returns 400 if the query Is invalid</response>
Public Function GetValue() As String
Return "Hello world!"
End Function
''' <summary>
''' Set the Test
''' </summary>
''' <param name="Traviso">TRAviso</param>
''' <returns>A SharePriceResponse which contains the price of the share</returns>
''' <response code="200">Returns 200 and the TRAviso-JSON-Object</response>
''' <response code="400">Returns 400 if the query Is invalid</response>
''' <response code="401">Returns 401 if your are not authorized</response>
Public Function PostValue(ByVal API_AVISO As VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAviso) As String
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim ip = Request.Properties("MS_HttpContext").Request.UserHostAddress()
SQL.doSQL("insert into tbltest (test,ipaddress) Values('IN_AVISO_START " & Now.ToShortDateString & "-" & Now.ToShortTimeString & "','" & ip & "')", "FMZOLL")
Try
Dim resultJson2 = jsonString.FromClass(API_AVISO)
SQL.doSQL("insert into tbltest (test) Values('IN_AVISO_" & resultJson2 & "')", "FMZOLL")
Catch ex As Exception
End Try
PostValue = "IN_AVISO_ERR"
Try
If API_AVISO Is Nothing Then Return VERAG_IN_AVISO_Exceptions.ERR_01_Wrong_Format
If API_AVISO.Company Is Nothing OrElse API_AVISO.Company = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_02_Missing_Company
If API_AVISO.Department Is Nothing OrElse API_AVISO.Department = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_03_Missing_Department
If API_AVISO.PartnerTID Is Nothing OrElse API_AVISO.PartnerTID = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_04_Missing_PartnerID
If API_AVISO.TransportLicensePlate Is Nothing OrElse API_AVISO.TransportLicensePlate = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_09_Missing_PlateNr
Dim TR_AVISO As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoFULL
TR_AVISO.trAv_PartnerSystem = API_AVISO.PartnerTID
TR_AVISO.trAv_gewicht = API_AVISO.TotGrossWeight
TR_AVISO.trAv_colli = API_AVISO.TotPackage
TR_AVISO.trAv_Transportmittel = API_AVISO.TransportBorderType
TR_AVISO.trAv_Grenzueberschreitung = API_AVISO.TransportModeBorder
'TR_AVISO.trAv_FraechterKdNr = API_AVISO.PaXXXXXXXrtnerTID
'TR_AVISO.trAv_Fraechter = API_AVISO.PaXXXXXXXrtnerTID
'TR_AVISO.trAv_AvisiererKdNr = API_AVISO.PaXXXXXXXrtnerTID
'TR_AVISO.trAv_Avisierer = API_AVISO.PaXXXXXXXrtnerTID
TR_AVISO.trAv_Nationalitaet = API_AVISO.TransportCountryCode
TR_AVISO.trAv_Kennzeichen = API_AVISO.TransportLicensePlate
TR_AVISO.trAv_Reference = API_AVISO.Reference
TR_AVISO.trAv_Fraechter = API_AVISO.FreightCompany
TR_AVISO.trAv_FraechterKdNr = API_AVISO.FreightCompanyID
TR_AVISO.trAv_Niederlassung = API_AVISO.Department
TR_AVISO.trAv_Firma = API_AVISO.Company
TR_AVISO.trAv_datetime = Now
TR_AVISO.trAv_Info = API_AVISO.Info
If Not TR_AVISO.SAVE(False) Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb
If API_AVISO.DOCUMENTS IsNot Nothing Then
For Each ANH In API_AVISO.DOCUMENTS
Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoAnhaenge
TR_DOC.DocumentType = ANH.DocumentType
TR_DOC.DocumentNr = ANH.DocumentNr
TR_DOC.DocumentDate = ANH.DocumentDate
If ANH.base64BinaryStream IsNot Nothing AndAlso ANH.base64BinaryStream <> "" Then
TR_DOC.trAvAh_docID = VERAG_IN_AVISO_Functions.base64toDS(ANH.base64BinaryStream, TR_AVISO.trAv_Id, ANH.FileName)
End If
TR_AVISO.ANHAENGE.Add(TR_DOC)
Next
End If
If Not TR_AVISO.SAVE_Anhaenge Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb
If API_AVISO.POSITIONS IsNot Nothing Then
For Each SH In API_AVISO.POSITIONS
Dim EZA As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza
Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_FULL(EZA)
' Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shippment()
SHIPMENT.shTr_TRAvisoId = TR_AVISO.trAv_Id 'Zur Verknüfung
EZA.Company = API_AVISO.Company
EZA.Department = API_AVISO.Department
EZA.Reference = SH.Reference
EZA.DeclarationCountry = SH.DeclarationCountry
EZA.DeclarationType = SH.DeclarationType
EZA.TotPackage = SH.NumberOfPackages
EZA.TotGrossWeight = SH.GrossWeight
'EZA.TotGrossWeight = SH.GrossWeight
EZA.CustomsCodeDeparture = SH.CustomsCodeDeparture
EZA.CustomsCodeDestination = SH.CustomsCodeDestination
'EZA.CustomsCodeEntry = API_AVISO.CustomsCodeEntry
EZA.TransportModeBorder = API_AVISO.TransportModeBorder
EZA.CountryCodeDeparture = SH.CountryCodeDeparture
EZA.CountryCodeDestination = SH.CountryCodeDestination
EZA.DEStateCodeDestination = SH.DEStateCodeDestination
EZA.TransportArrivalLicensePlate = API_AVISO.TransportLicensePlate
EZA.TransportArrivalCountryCode = API_AVISO.TransportCountryCode
EZA.TransportBorderType = API_AVISO.TransportBorderType
EZA.TransportBorderLicensePlate = API_AVISO.TransportLicensePlate
EZA.Incoterm = SH.Incoterm
EZA.PrePaperCode = SH.PrePaperCode
EZA.PrePaperNr = SH.PrePaperNr
' EZA.KindOfBusiness = SH.ReferenceXXXXXXXXXXXX
EZA.InvoiceAmount = SH.InvoiceAmount
EZA.InvoiceCurrency = SH.InvoiceCurrency
EZA.ContainerNr1 = SH.ContainerNr1
EZA.ContainerNr2 = SH.ContainerNr2
EZA.ContainerNr3 = SH.ContainerNr3
EZA.ContainerNr4 = SH.ContainerNr4
If SH.ADDRESS IsNot Nothing Then
For Each ADD In SH.ADDRESS
Dim TR_ADD As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_Adressen
TR_ADD.AddressCode = ADD.AddressCode
TR_ADD.CustomerID = ADD.CustomerID
TR_ADD.EORI = ADD.EORI
TR_ADD.NLNR = ADD.NLNR
TR_ADD.Name1 = ADD.Name1
TR_ADD.Name2 = ADD.Name2
TR_ADD.Name3 = ADD.Name3
TR_ADD.Street1 = ADD.Street1
TR_ADD.Street2 = ADD.Street2
TR_ADD.City = ADD.City
TR_ADD.CountryCode = ADD.CountryCode
TR_ADD.PostalCode = ADD.PostalCode
TR_ADD.UStID = ADD.UStID
EZA.ADDRESS.Add(TR_ADD)
Next
End If
If SH.DOCUMENTS IsNot Nothing Then
For Each DOC In SH.DOCUMENTS
Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shipment_Document
TR_DOC.DocumentType = DOC.DocumentType
TR_DOC.DocumentNr = DOC.DocumentNr
TR_DOC.DocumentDate = DOC.DocumentDate
If DOC.base64BinaryStream IsNot Nothing AndAlso DOC.base64BinaryStream <> "" Then
TR_DOC.shTrPosDoc_docID = VERAG_IN_AVISO_Functions.base64toDS(DOC.base64BinaryStream, TR_AVISO.trAv_Id, DOC.FileName, "SND_ATTACHMENT")
End If
EZA.DOCUMENTS.Add(TR_DOC)
Next
End If
If Not SHIPMENT.SAVE() Then
Return VERAG_IN_AVISO_Exceptions.ERR_06_InternalSave
End If
Next
End If
Return "OK"
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & NCTS_Exceptions.ERR_03_InternalVerarb, System.Reflection.MethodInfo.GetCurrentMethod.Name)
SQL.doSQL("insert into tbltest (test) Values('" & NCTS_Exceptions.ERR_03_InternalVerarb & ex.Message & "')", "FMZOLL")
Return NCTS_Exceptions.ERR_03_InternalVerarb
End Try
' SQL.doSQL("insert into tbltest (test) Values('" & PostValue & "')", "FMZOLL")
Return PostValue
End Function
End Class
'------------------------------------------------------------------------
'----------------------------------TEST----------------------------------
'------------------------------------------------------------------------
<ApiVersion("1")>
<System.Web.Http.Route("api/v{version:apiVersion}/TEST/AVISO")>
Public Class AVISO1TESTController
Inherits System.Web.Http.ApiController
''' <summary>
''' Gets the Hello World Response
''' </summary>
Public Function GetValue() As String
Return "Hello world!"
End Function
Public Function PostValue(ByVal API_AVISO As VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAviso) As String
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim ip = Request.Properties("MS_HttpContext").Request.UserHostAddress()
SQL.doSQL("insert into tbltest (test,ipaddress) Values('IN_AVISO_START " & Now.ToShortDateString & "-" & Now.ToShortTimeString & "','" & ip & "')", "FMZOLL")
Try
Dim resultJson2 = jsonString.FromClass(API_AVISO)
SQL.doSQL("insert into tbltest (test) Values('IN_AVISO_" & resultJson2 & "')", "FMZOLL")
Catch ex As Exception
End Try
PostValue = "IN_AVISO_ERR"
Try
If API_AVISO Is Nothing Then Return VERAG_IN_AVISO_Exceptions.ERR_01_Wrong_Format
If API_AVISO.Company Is Nothing OrElse API_AVISO.Company = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_02_Missing_Company
If API_AVISO.Department Is Nothing OrElse API_AVISO.Department = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_03_Missing_Department
If API_AVISO.PartnerTID Is Nothing OrElse API_AVISO.PartnerTID = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_04_Missing_PartnerID
If API_AVISO.TransportLicensePlate Is Nothing OrElse API_AVISO.TransportLicensePlate = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_09_Missing_PlateNr
Dim TR_AVISO As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoFULL
TR_AVISO.trAv_PartnerSystem = API_AVISO.PartnerTID
TR_AVISO.trAv_gewicht = API_AVISO.TotGrossWeight
TR_AVISO.trAv_colli = API_AVISO.TotPackage
TR_AVISO.trAv_Transportmittel = API_AVISO.TransportBorderType
TR_AVISO.trAv_Grenzueberschreitung = API_AVISO.TransportModeBorder
'TR_AVISO.trAv_FraechterKdNr = API_AVISO.PaXXXXXXXrtnerTID
'TR_AVISO.trAv_Fraechter = API_AVISO.PaXXXXXXXrtnerTID
'TR_AVISO.trAv_AvisiererKdNr = API_AVISO.PaXXXXXXXrtnerTID
'TR_AVISO.trAv_Avisierer = API_AVISO.PaXXXXXXXrtnerTID
TR_AVISO.trAv_Nationalitaet = API_AVISO.TransportCountryCode
TR_AVISO.trAv_Kennzeichen = API_AVISO.TransportLicensePlate
TR_AVISO.trAv_Reference = API_AVISO.Reference
TR_AVISO.trAv_Fraechter = API_AVISO.FreightCompany
TR_AVISO.trAv_FraechterKdNr = API_AVISO.FreightCompanyID
TR_AVISO.trAv_Niederlassung = API_AVISO.Department
TR_AVISO.trAv_Firma = API_AVISO.Company
TR_AVISO.trAv_datetime = Now
TR_AVISO.trAv_Info = API_AVISO.Info
If Not TR_AVISO.SAVE(False) Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb
If API_AVISO.DOCUMENTS IsNot Nothing Then
For Each ANH In API_AVISO.DOCUMENTS
Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoAnhaenge
TR_DOC.DocumentType = ANH.DocumentType
TR_DOC.DocumentNr = ANH.DocumentNr
TR_DOC.DocumentDate = ANH.DocumentDate
If ANH.base64BinaryStream IsNot Nothing AndAlso ANH.base64BinaryStream <> "" Then
TR_DOC.trAvAh_docID = VERAG_IN_AVISO_Functions.base64toDS(ANH.base64BinaryStream, TR_AVISO.trAv_Id, ANH.FileName)
End If
TR_AVISO.ANHAENGE.Add(TR_DOC)
Next
End If
If Not TR_AVISO.SAVE_Anhaenge Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb
If API_AVISO.POSITIONS IsNot Nothing Then
For Each SH In API_AVISO.POSITIONS
Dim EZA As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza
Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_FULL(EZA)
' Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shippment()
SHIPMENT.shTr_TRAvisoId = TR_AVISO.trAv_Id 'Zur Verknüfung
EZA.Company = API_AVISO.Company
EZA.Department = API_AVISO.Department
EZA.Reference = SH.Reference
EZA.DeclarationCountry = SH.DeclarationCountry
EZA.DeclarationType = SH.DeclarationType
EZA.TotPackage = SH.NumberOfPackages
EZA.TotGrossWeight = SH.GrossWeight
'EZA.TotGrossWeight = SH.GrossWeight
EZA.CustomsCodeDeparture = SH.CustomsCodeDeparture
EZA.CustomsCodeDestination = SH.CustomsCodeDestination
'EZA.CustomsCodeEntry = API_AVISO.CustomsCodeEntry
EZA.TransportModeBorder = API_AVISO.TransportModeBorder
EZA.CountryCodeDeparture = SH.CountryCodeDeparture
EZA.CountryCodeDestination = SH.CountryCodeDestination
EZA.DEStateCodeDestination = SH.DEStateCodeDestination
EZA.TransportArrivalLicensePlate = API_AVISO.TransportLicensePlate
EZA.TransportArrivalCountryCode = API_AVISO.TransportCountryCode
EZA.TransportBorderType = API_AVISO.TransportBorderType
EZA.TransportBorderLicensePlate = API_AVISO.TransportLicensePlate
EZA.Incoterm = SH.Incoterm
EZA.PrePaperCode = SH.PrePaperCode
EZA.PrePaperNr = SH.PrePaperNr
' EZA.KindOfBusiness = SH.ReferenceXXXXXXXXXXXX
EZA.InvoiceAmount = SH.InvoiceAmount
EZA.InvoiceCurrency = SH.InvoiceCurrency
EZA.ContainerNr1 = SH.ContainerNr1
EZA.ContainerNr2 = SH.ContainerNr2
EZA.ContainerNr3 = SH.ContainerNr3
EZA.ContainerNr4 = SH.ContainerNr4
If SH.ADDRESS IsNot Nothing Then
For Each ADD In SH.ADDRESS
Dim TR_ADD As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_Adressen
TR_ADD.AddressCode = ADD.AddressCode
TR_ADD.CustomerID = ADD.CustomerID
TR_ADD.EORI = ADD.EORI
TR_ADD.NLNR = ADD.NLNR
TR_ADD.Name1 = ADD.Name1
TR_ADD.Name2 = ADD.Name2
TR_ADD.Name3 = ADD.Name3
TR_ADD.Street1 = ADD.Street1
TR_ADD.Street2 = ADD.Street2
TR_ADD.City = ADD.City
TR_ADD.CountryCode = ADD.CountryCode
TR_ADD.PostalCode = ADD.PostalCode
TR_ADD.UStID = ADD.UStID
EZA.ADDRESS.Add(TR_ADD)
Next
End If
If SH.DOCUMENTS IsNot Nothing Then
For Each DOC In SH.DOCUMENTS
Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shipment_Document
TR_DOC.DocumentType = DOC.DocumentType
TR_DOC.DocumentNr = DOC.DocumentNr
TR_DOC.DocumentDate = DOC.DocumentDate
If DOC.base64BinaryStream IsNot Nothing AndAlso DOC.base64BinaryStream <> "" Then
TR_DOC.shTrPosDoc_docID = VERAG_IN_AVISO_Functions.base64toDS(DOC.base64BinaryStream, TR_AVISO.trAv_Id, DOC.FileName, "SND_ATTACHMENT")
End If
EZA.DOCUMENTS.Add(TR_DOC)
Next
End If
If Not SHIPMENT.SAVE() Then
Return VERAG_IN_AVISO_Exceptions.ERR_06_InternalSave
End If
Next
End If
Return "OK"
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & NCTS_Exceptions.ERR_03_InternalVerarb, System.Reflection.MethodInfo.GetCurrentMethod.Name)
SQL.doSQL("insert into tbltest (test) Values('" & NCTS_Exceptions.ERR_03_InternalVerarb & ex.Message & "')", "FMZOLL")
Return NCTS_Exceptions.ERR_03_InternalVerarb
End Try
' SQL.doSQL("insert into tbltest (test) Values('" & PostValue & "')", "FMZOLL")
Return PostValue
End Function
End Class
Class VERAG_IN_AVISO_Exceptions
Public Const ERR_01_Wrong_Format As String = "ERR_01"
Public Const ERR_02_Missing_Company As String = "ERR_02"
Public Const ERR_03_Missing_Department As String = "ERR_03"
Public Const ERR_04_Missing_PartnerID As String = "ERR_04"
Public Const ERR_05_InternalVerarb As String = "ERR_05"
Public Const ERR_06_InternalSave As String = "ERR_06"
Public Const ERR_07_Missing_Colli As String = "ERR_07"
Public Const ERR_08_Missing_Gewicht As String = "ERR_08"
Public Const ERR_09_Missing_PlateNr As String = "ERR_09"
End Class
Class VERAG_IN_AVISO_Functions
Public Shared Function base64toDS(base64 As String, AvisoTRID As Integer, FileName As String, Optional uOrdner3 As String = "AVISO_ATTACHMENT") As Integer
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("INTERFACE", "IN", "TR_AVISO", uOrdner3, AvisoTRID, FileName)
DS.uploadDataToDATENSERVER_fromBase64String(base64, FileName,, False)
Return DS.da_id
End Function
End Class
End Namespace