421 lines
19 KiB
VB.net
421 lines
19 KiB
VB.net
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 |