REST
This commit is contained in:
421
VERAG_REST_SERVER/Controllers/ATEZ/ATEZController.vb
Normal file
421
VERAG_REST_SERVER/Controllers/ATEZ/ATEZController.vb
Normal file
@@ -0,0 +1,421 @@
|
||||
Imports Microsoft.Web.Http
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
|
||||
Imports VERAGMonitoring
|
||||
|
||||
Namespace ApiController.Controllers
|
||||
|
||||
|
||||
Public Class ATEZController
|
||||
Inherits System.Web.Http.ApiController
|
||||
|
||||
''' <summary>
|
||||
''' Delivers the sum of the guarantee for the requested GRN
|
||||
''' </summary>
|
||||
'''
|
||||
''' <returns>sum of the guarantee</returns>
|
||||
'''
|
||||
''' <response code="200">Request OK and returns the sum sum of the guarantee</response>
|
||||
''' <response code="400">Returns Failure if GRN is not valid</response>
|
||||
'''
|
||||
<ApiVersion("001")>
|
||||
<System.Web.Http.Route("api/v{version:apiVersion}/sumOfGRN")>
|
||||
<BasicAuthentication>
|
||||
Public Function getSumOfGRN(ByVal GRN As String) As String
|
||||
|
||||
Dim BRG As New cBrgDb 'Monitoring
|
||||
Dim DE_DIFFERENZ As Double = 1000000 ' PUFFER FÜR UK!!!
|
||||
|
||||
If GRN = "" Then Return -1
|
||||
|
||||
'ZOLARIS AT TAG
|
||||
Dim AtTag_zolaris As Double = BRG.getBrgSumFromFMZOLL_Zolaris(Now.AddMonths(-1).ToShortDateString, Now.ToShortDateString, "50", "50", GRN, " AND DatumBestimmungErreicht IS NULL ")
|
||||
|
||||
'TELOTEC AT TAG
|
||||
Dim AtTag_telotec As Double = BRG.getBrgSumFromFMZOLL_TELOTEC(Now.AddMonths(-1).ToShortDateString, Now.ToShortDateString, "50", "50", GRN)
|
||||
|
||||
'DE TAG
|
||||
Dim tag_de2 As Double = BRG.getBrgSumFromFMZOLL_Zabis(Now.AddMonths(-3).ToShortDateString, Now.ToShortDateString, "50", "50", GRN)
|
||||
'NCTS_TR AT TAG
|
||||
Dim DetTag_nctsTR As Double = BRG.getBrgSumFromFMZOLL_NCTS_TR(Now.AddMonths(-3).ToShortDateString, Now.ToShortDateString, "50", "50", GRN)
|
||||
|
||||
Dim saldo = AtTag_zolaris + AtTag_telotec + tag_de2 + DetTag_nctsTR
|
||||
|
||||
If saldo = 0 Then Return saldo
|
||||
|
||||
|
||||
Return saldo + DE_DIFFERENZ
|
||||
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Delivers the CBAM-Data
|
||||
''' Currently only data for DE and Q3 2024 available.
|
||||
''' </summary>
|
||||
''' <param name="company">VERAG or IMEX or UNISPED as parameter</param>
|
||||
''' <param name="country">AT or DE as parameter </param>
|
||||
''' <param name="year">Year (2024) as parameter</param>
|
||||
''' <param name="quarter">Quarter (1, 2, ,3, 4 ) as parameter</param>
|
||||
''' <param name="directRepresenation">Direct or indirect representation</param>
|
||||
''' <returns>Base64 String with CBAM-Data</returns>
|
||||
'''
|
||||
''' <response code="200">Request OK and returns CBAM Data as Base64 String</response>
|
||||
''' <response code="400">Returns Parameter are not valid</response>
|
||||
|
||||
<ApiVersion("001")>
|
||||
<System.Web.Http.Route("api/v{version:apiVersion}/cbam")>
|
||||
<BasicAuthentication>
|
||||
Public Function getCBAM(ByVal company As String, country As String, year As Integer, quarter As Integer, directRepresenation As Boolean) As String
|
||||
Dim Teilnehmner = ""
|
||||
Dim von As DateTime
|
||||
Dim bis As DateTime
|
||||
Select Case company
|
||||
Case "VERAG" : Teilnehmner = "SUB"
|
||||
Case "IMEX" : Teilnehmner = "IME"
|
||||
Case "UNISPED" : Teilnehmner = "UNAT"
|
||||
Case Else
|
||||
Return ""
|
||||
End Select
|
||||
|
||||
Select Case quarter
|
||||
Case 1 : von = New DateTime(year, 1, 1) : bis = New DateTime(year, 3, 30)
|
||||
Case 2 : von = New DateTime(year, 4, 1) : bis = New DateTime(year, 6, 30)
|
||||
Case 3 : von = New DateTime(year, 7, 1) : bis = New DateTime(year, 9, 30)
|
||||
Case 4 : von = New DateTime(year, 10, 1) : bis = New DateTime(year, 12, 30)
|
||||
End Select
|
||||
|
||||
'New DateTime(year, month + 1, 1)
|
||||
|
||||
'country aktuell nur DE -> Weil aktuell nur DAKOSY-Datensätze
|
||||
'Year aktuell nur 2024 Datensätze
|
||||
'Quartal aktuell nur q3 Datensätze
|
||||
|
||||
Dim where = "where 1 = 1 "
|
||||
If Teilnehmner <> "" Then where &= "and Teilnehmer ='" & Teilnehmner & "'"
|
||||
where &= " and [Vertreter_des_Anmelders] = " & IIf(directRepresenation, "1", "2")
|
||||
where &= " and [Überlassungsdatum] between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "'"
|
||||
|
||||
'Filter auf CBAM-Pflichtige Warennummern!
|
||||
where &= " WHERE (
|
||||
left(Warentarifnummer,4) IN (2523,2716,2808,2814,3102,3105,7201,7203,7318,7326,7601,7616)
|
||||
OR left(Warentarifnummer,4) between 7301 and 7311
|
||||
OR left(Warentarifnummer,4) between 7205 and 7229
|
||||
OR left(Warentarifnummer,4) between 7603 and 7614
|
||||
OR Warentarifnummer like '25070080%'
|
||||
OR Warentarifnummer like '283421%'
|
||||
OR Warentarifnummer like '260112%'
|
||||
OR Warentarifnummer like '720211%'
|
||||
OR Warentarifnummer like '720219%'
|
||||
OR Warentarifnummer like '720241%'
|
||||
OR Warentarifnummer like '720249%'
|
||||
OR Warentarifnummer like '720260%'
|
||||
OR Warentarifnummer like '280410%'
|
||||
) and Warentarifnummer not like '310560%' "
|
||||
|
||||
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
Dim sqlString = "select * from tbl_DY_Zollmeldungen_Import " & where
|
||||
|
||||
Dim dt As DataTable = sql.loadDgvBySql(sqlString, "AVISO")
|
||||
If dt.Rows.Count > 0 Then
|
||||
|
||||
Dim Bytes = System.IO.File.ReadAllBytes(VERAG_PROG_ALLGEMEIN.cProgramFunctions.genCSVFromDT(dt))
|
||||
Return Convert.ToBase64String(Bytes)
|
||||
Else
|
||||
Return ""
|
||||
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Delivers the Adresse Data for a given EORI-Nr
|
||||
''' If the EORI cannot be found, an empty String will be returned.
|
||||
''' </summary>
|
||||
''' <param name="eoriNr">EORI-No. as parameter</param>
|
||||
''' <param name="eoriNr_NL">EORI-No. for netherland</param>
|
||||
''' <param name="company">VERAG or IMEX or UNISPED as parameter</param>
|
||||
''' <returns>Comma seperated string with adress-data of the given EORI-NR or EORI-NL </returns>
|
||||
'''
|
||||
''' <response code="200">Request OK and returns the Adress</response>
|
||||
''' <response code="400">Returns Parameter are not valid</response>
|
||||
|
||||
<ApiVersion("001")>
|
||||
<System.Web.Http.Route("api/v{version:apiVersion}/eorino")>
|
||||
<BasicAuthentication>
|
||||
Public Function getCBAMEORI(company As String, Optional eoriNr As String = "", Optional eoriNr_NL As String = "") As String
|
||||
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
Dim firma As String
|
||||
Dim regexAufbauEORI As Boolean = False
|
||||
Dim regexAufbauEORINL As Boolean = False
|
||||
|
||||
|
||||
If eoriNr <> "" Then regexAufbauEORI = Regex.IsMatch(eoriNr, "^[A-Z]{2}[0-9A-Z]{7,15}$")
|
||||
If eoriNr_NL <> "" Then regexAufbauEORINL = Regex.IsMatch(eoriNr_NL, "^[NL]{2}[0-9A-Z]{9}$")
|
||||
|
||||
If eoriNr = "" And eoriNr_NL = "" Then
|
||||
Return "NO EORI NR SUBMITTED"
|
||||
End If
|
||||
|
||||
If eoriNr <> "" And Not regexAufbauEORI Then
|
||||
Return "WRONG EORI-NR"
|
||||
End If
|
||||
|
||||
If eoriNr_NL <> "" And Not regexAufbauEORINL Then
|
||||
Return "WRONG EORI-NL"
|
||||
End If
|
||||
|
||||
|
||||
Select Case company
|
||||
Case "VERAG" : firma = "VERAG"
|
||||
Case "IMEX" : firma = "IMEX"
|
||||
Case "UNISPED" : firma = "UNISPED"
|
||||
Case Else
|
||||
Return "NO COMPANY/WRONG COMPANY SUBMITTED"
|
||||
End Select
|
||||
|
||||
|
||||
Dim kdNrTmp = sql.getFMZOLLKdNrFromEORI(eoriNr, eoriNr_NL, firma)
|
||||
If IsNumeric(kdNrTmp) Then
|
||||
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(kdNrTmp)
|
||||
Dim returnStringAdresse = ""
|
||||
|
||||
|
||||
If AD IsNot Nothing Then
|
||||
returnStringAdresse &= AD.Name_1 & ";"
|
||||
returnStringAdresse &= AD.Name_2 & ";"
|
||||
returnStringAdresse &= AD.Straße & ";"
|
||||
returnStringAdresse &= AD.PLZ & ";"
|
||||
returnStringAdresse &= AD.Ort & ";"
|
||||
returnStringAdresse &= VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2Land(AD.LandKz) & ";"
|
||||
End If
|
||||
|
||||
Return returnStringAdresse.ToString
|
||||
Else
|
||||
Return "NO DATA"
|
||||
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Delivers the Adresse Data for a given EORI-Nr
|
||||
''' If the EORI cannot be found, an empty String will be returned.
|
||||
''' </summary>
|
||||
''' <param name="eoriNr">EORI-No. as parameter</param>
|
||||
''' <param name="eoriNr_NL">EORI-No. for netherland</param>
|
||||
''' <param name="company">VERAG or IMEX or UNISPED as parameter</param>
|
||||
''' <returns>Comma seperated string with adress-data of the given EORI-NR or EORI-NL </returns>
|
||||
'''
|
||||
''' <response code="200">Request OK and returns the Adress</response>
|
||||
''' <response code="400">Returns Parameter are not valid</response>
|
||||
|
||||
<ApiVersion("001")>
|
||||
<System.Web.Http.Route("api/v{version:apiVersion}/cbamnew")>
|
||||
<BasicAuthentication>
|
||||
Public Function getCBAMNEW() As String
|
||||
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
Dim sqlString = "SELECT [Id]
|
||||
,[Teilnehmer]
|
||||
,[Anmeldeart_A]
|
||||
,[Verfahren]
|
||||
,[Bezugsnummer_LRN]
|
||||
,[Anlagedatum]
|
||||
,[Zeit]
|
||||
,[Zeitpunkt_der_letzten_CUSTAX]
|
||||
,[Überlassungsdatum]
|
||||
,[Annahmedatum]
|
||||
,[Registriernummer_MRN]
|
||||
,[Weitere_Reg_Nr]
|
||||
,[EDIFNR]
|
||||
,[Versendungsland]
|
||||
,[Art_der_Vertretung]
|
||||
,[Vertreter_des_Anmelders]
|
||||
,[Vertreter_AE_EORI]
|
||||
,[AE_Name]
|
||||
,[Versender_CZ_EORI]
|
||||
,Abs_Adr.[Name 1] as Versender_Name
|
||||
,Abs_Adr.[Name 2] as Versender_Name2
|
||||
,Abs_Adr.[LandKz] as Versender_Country
|
||||
,Abs_Adr.[Strasse] as Versender_Street
|
||||
,'' as Versender_Street_additional_line
|
||||
,Abs_Adr.[PLZ] as Versender_Postcode
|
||||
,Abs_Adr.[Ort] as Versender_City
|
||||
,'' as VersenderPOBox
|
||||
,Abs_Adr.[Ansprechpartner] as Versender_ContactName
|
||||
,Abs_Adr.[Telefon] as Versender_Contact_Phone_number
|
||||
,Abs_Adr.[E-Mail] as Versender_Contact_Email
|
||||
,[CZ_Code]
|
||||
,[CZ_Name]
|
||||
,[CZ_Ländercode]
|
||||
,[Empfänger_CN_EORI]
|
||||
,Emp_Adr.[Name 1] as Empfänger_Name
|
||||
,Emp_Adr.[Name 2] as Empfänger_Name2
|
||||
,Emp_Adr.[LandKz] as Empfänger_Country
|
||||
,Emp_Adr.[Strasse] as Empfänger_Street
|
||||
,'' as Empfänger_Street_additional_line
|
||||
,Emp_Adr.[PLZ] as Empfänger_Postcode
|
||||
,Emp_Adr.[Ort] as Empfänger_City
|
||||
,'' as EmpfängerPOBox
|
||||
,Emp_Adr.[Ansprechpartner] as Empfänger_ContactName
|
||||
,Emp_Adr.[Telefon] as Empfänger_Contact_Phone_number
|
||||
,Emp_Adr.[E-Mail] as Empfänger_Contact_Email
|
||||
,[CN_Code]
|
||||
,[CN_Name]
|
||||
,[CN_Ländercode]
|
||||
,[Anmelder_DT_EORI]
|
||||
,[DT_Code]
|
||||
,[DT_Name]
|
||||
,[DT_Ländercode]
|
||||
,[UstID_DT]
|
||||
,[Käufer_BY_Name]
|
||||
,[BY_EORI]
|
||||
,[Verkäufer_SL_Name]
|
||||
,[SL_EORI]
|
||||
,[ZollRechtlicherStatus]
|
||||
,[Bewilligungsnummer]
|
||||
,[Gesamtgewicht]
|
||||
,[Liefercode]
|
||||
,[Lieferort]
|
||||
,[Lieferkey]
|
||||
,[Geschäftsart]
|
||||
,[Rechnungsbetrag]
|
||||
,[Rechnungswährung]
|
||||
,[Rechnungskurs]
|
||||
,[Zollstelle]
|
||||
,[Aufschubart]
|
||||
,[HZAZoll]
|
||||
,[KontoZoll]
|
||||
,[TextZoll]
|
||||
,[EORIZoll]
|
||||
,[KennzeichenEigenZoll]
|
||||
,[ArtEust]
|
||||
,[HZAEust]
|
||||
,[KontoEusT]
|
||||
,[TextEust]
|
||||
,[EORIEust]
|
||||
,[KennzeichenEigenEust]
|
||||
,[Container]
|
||||
,[Unterlagenzeile]
|
||||
,[Unterlagenbereich]
|
||||
,[Unterlagenart]
|
||||
,[Unterlagennummer]
|
||||
,[Unterlagendatum]
|
||||
,[PositionNo]
|
||||
,[Positionen]
|
||||
,[Vorausstl_Zollabgabe]
|
||||
,[Vorausstl_Zollsatzabgabe]
|
||||
,[Vorausstl_Eustabgabe]
|
||||
,[Vorausstl_Eustsatzabgabe]
|
||||
,[Zollwert]
|
||||
,[AbgabeZoll]
|
||||
,[AbgabeZollsatz]
|
||||
,[Eustwert]
|
||||
,[AbgabeEust]
|
||||
,[AbgabeEustsatz]
|
||||
,[AbgabeAntidumping]
|
||||
,[AbgabeAntidumpingSatz]
|
||||
,[Status_Steuerbescheid]
|
||||
,[ArtikelCode]
|
||||
,[Warentarifnummer]
|
||||
,[Warenzusatz1]
|
||||
,[Warenzusatz2]
|
||||
,[Warenbezeichnung]
|
||||
,[Verfahren2]
|
||||
,[EU_Code]
|
||||
,[Artikelpreis]
|
||||
,[Statistischerwert]
|
||||
,[Eust_manuell]
|
||||
,[Ursprung]
|
||||
,[Präferenzursprungsland]
|
||||
,[Beguenstigung]
|
||||
,[Rohmasse]
|
||||
,[Rohmasseeinheit]
|
||||
,[Eigenmasse]
|
||||
,[Eigenmasseeinheit]
|
||||
,[Positionszusatz]
|
||||
,[Aussenhandelstatistische_Menge]
|
||||
,[Maßeinheit]
|
||||
,[AnzahlPackstücke]
|
||||
,[Packstückart]
|
||||
,[Packstückbezeichnung]
|
||||
,[Zusätzliche_angaben]
|
||||
,[SonderAbgabeZoll]
|
||||
,[SonderAbgabeEust]
|
||||
,[AbgabeZusatzzölle]
|
||||
,[SonderAbgabeAntidumping]
|
||||
,[Verbrauchssteuern]
|
||||
,[Positionsunterlagenzeile]
|
||||
,[Positionsunterlagenbereich]
|
||||
,[Positionsunterlagenart]
|
||||
,[Positionsunterlagennummer]
|
||||
,[Positionsunterlagendatum]
|
||||
,[DV1Rechnungsbetrag]
|
||||
,[DV1Währung]
|
||||
,[DV1UmgerechnerterRechnungsbetrag]
|
||||
,[DV1UmgerechneteWährung]
|
||||
,[DV1Versicherung]
|
||||
,[DV1Versicherungswährung]
|
||||
,[DV1Luftfrachtkosten]
|
||||
,[DV1Luftfrachtwährung]
|
||||
,[DV1Frachtkosten]
|
||||
,[DV1Frachtwährung]
|
||||
,[DV1Materialien]
|
||||
,[DV1Materialwährung]
|
||||
,[DV1Provisionen]
|
||||
,[DV1Provisionwährung]
|
||||
,[Abflughafen_Code]
|
||||
,[Abflughafen_Text]
|
||||
,[Vorpapierart]
|
||||
,[Vorpapiere_Regnummer]
|
||||
,[BEAnteil_SumA]
|
||||
,[BEAnteil_ZL]
|
||||
,[BEAnteil_AV]
|
||||
,[UST_ID_Einführer]
|
||||
,[UST_ID_Erwerber]
|
||||
,[UST_ID_Fiskalvertreter]
|
||||
,[Shipmentnummer]
|
||||
,[Importstatus]
|
||||
FROM [AVISO].[dbo].[tbl_DY_Zollmeldungen_Import]
|
||||
|
||||
left JOIN [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[Kunden] as Empfaenger on Empfaenger.[EORITIN] = [Empfänger_CN_EORI] and Empfaenger.[FilialenNr] = LEFT(Bezugsnummer_LRN,4)
|
||||
left JOIN [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[Adressen] as Emp_Adr on Emp_Adr.AdressenNr = Empfaenger.KundenNr
|
||||
|
||||
left JOIN [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[Kunden] as Absender on Absender.[EORITIN] = [Versender_CZ_EORI] and Absender.[FilialenNr] = LEFT(Bezugsnummer_LRN,4)
|
||||
left JOIN [FMZOLL\SQLFMZOLL].[VERAG].[dbo].[Adressen] as Abs_Adr on Abs_Adr.AdressenNr = Absender.KundenNr
|
||||
|
||||
WHERE (
|
||||
left(Warentarifnummer,4) IN (2523,2716,2808,2814,3102,3105,7201,7203,7318,7326,7601,7616)
|
||||
OR left(Warentarifnummer,4) between 7301 and 7311
|
||||
OR left(Warentarifnummer,4) between 7205 and 7229
|
||||
OR left(Warentarifnummer,4) between 7603 and 7614
|
||||
OR Warentarifnummer like '25070080%'
|
||||
OR Warentarifnummer like '283421%'
|
||||
OR Warentarifnummer like '260112%'
|
||||
OR Warentarifnummer like '720211%'
|
||||
OR Warentarifnummer like '720219%'
|
||||
OR Warentarifnummer like '720241%'
|
||||
OR Warentarifnummer like '720249%'
|
||||
OR Warentarifnummer like '720260%'
|
||||
OR Warentarifnummer like '280410%'
|
||||
) and Warentarifnummer not like '310560%'"
|
||||
|
||||
Dim dt As DataTable = sql.loadDgvBySql(sqlString, "AVISO")
|
||||
If dt.Rows.Count > 0 Then
|
||||
|
||||
Dim Bytes = System.IO.File.ReadAllBytes(VERAG_PROG_ALLGEMEIN.cProgramFunctions.genCSVFromDT(dt))
|
||||
Return Convert.ToBase64String(Bytes)
|
||||
Else
|
||||
Return ""
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
Reference in New Issue
Block a user