Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024
This commit is contained in:
@@ -872,6 +872,8 @@ Public Class cNCTS_FREMD
|
||||
Dim NCTS As New cNCTS_FREMD
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
If MRN Is Nothing Then Return Nothing
|
||||
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblNCTS_FREMD WHERE [ncts_MRN] LIKE @MRN " & If(checkValidStatus, " AND ncts_status BETWEEN 40 and 90 ", "") & " order by ncts_LetzteBearbeitung desc", conn)
|
||||
cmd.Parameters.AddWithValue("@MRN", MRN)
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Net
|
||||
Imports System.Reflection
|
||||
Imports System.ServiceModel.Configuration
|
||||
Imports System.ServiceModel.Security
|
||||
Imports System.Threading
|
||||
Imports System.Web.Routing
|
||||
Imports System.Windows.Forms
|
||||
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
|
||||
Imports Chilkat
|
||||
Imports Newtonsoft.Json.Linq
|
||||
Imports DocumentFormat.OpenXml.Wordprocessing
|
||||
Imports javax
|
||||
Imports javax.xml.ws.soap.AddressingFeature
|
||||
Imports VERAG_PROG_ALLGEMEIN.VERAG_OUT_NCTS
|
||||
|
||||
Public Class cATEZ_NCTS_Sessions
|
||||
|
||||
@@ -17,6 +16,7 @@ Public Class cATEZ_NCTS_Sessions
|
||||
Public Property datetime As DateTime = Now()
|
||||
Public Property refresh_token As String
|
||||
Public Property token_validuntil As DateTime
|
||||
Public Property program As String
|
||||
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
@@ -30,22 +30,30 @@ Public Class cATEZ_NCTS_Sessions
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("datetime", datetime))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("refresh_token", refresh_token))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("token_validuntil", token_validuntil))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("program", program))
|
||||
|
||||
Return list
|
||||
End Function
|
||||
|
||||
Sub New()
|
||||
LOAD()
|
||||
LOAD("")
|
||||
End Sub
|
||||
|
||||
Sub New(token As String, refreshtoken As String, timestamp As DateTime)
|
||||
Sub New(Program As String)
|
||||
LOAD(Program)
|
||||
End Sub
|
||||
|
||||
Sub New(token As String, refreshtoken As String, timestamp As DateTime, program As String)
|
||||
Me.token = token
|
||||
Me.refresh_token = refreshtoken
|
||||
token_validuntil = timestamp
|
||||
Me.program = program
|
||||
SAVE()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Public Function SAVE(Optional errHinweis = "") As Boolean
|
||||
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||
|
||||
@@ -80,11 +88,11 @@ Public Class cATEZ_NCTS_Sessions
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub LOAD()
|
||||
Public Sub LOAD(Program As String)
|
||||
Try
|
||||
hasEntry = False
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand("SELECT TOP(1) * FROM tblATEZ_NCTS_Sessions where token_validuntil >= dateadd(minute,-10,getdate()) order by datetime desc ", conn)
|
||||
Using cmd As New SqlCommand("SELECT TOP(1) * FROM tblATEZ_NCTS_Sessions where token_validuntil >= dateadd(minute,-10,getdate()) " & IIf(Program <> "", " AND program = '" & Program & "' ", "") & " order by datetime desc ", conn)
|
||||
Dim dr = cmd.ExecuteReader()
|
||||
|
||||
If dr.Read Then
|
||||
@@ -621,35 +629,38 @@ Public Class cATEZ_NCTS_IN
|
||||
Dim SQl As New SQL
|
||||
Shared apiSettingsloaded As Boolean = False
|
||||
|
||||
Sub New(program As String)
|
||||
Sub New(program As String, Optional errorMessage As Boolean = True)
|
||||
API = SQl.loadDgvBySql("SELECT top(1) * FROM tblAPIEinstellungen WHERE api_program='" & program & "' and api_productive ='" & If(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "0", "1") & "'", "ADMIN")
|
||||
If API.Rows.Count = 0 Then
|
||||
MsgBox("keine gültigen API-Einstellungen für " & program & " gefunden!")
|
||||
If errorMessage Then MsgBox("keine gültigen API-Einstellungen für " & program & " gefunden!")
|
||||
Else
|
||||
apiSettingsloaded = True
|
||||
API_STRING = API.Rows(0).Item("api_url")
|
||||
|
||||
If Not IsDBNull(API.Rows(0).Item("api_debugpath")) AndAlso API.Rows(0).Item("api_debugpath") <> "" Then
|
||||
Rest.VerboseLogging = True
|
||||
Rest.DebugLogFilePath = API.Rows(0).Item("api_debugpath") & program & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "_Test", "") & ".txt"
|
||||
rest.VerboseLogging = True
|
||||
rest.DebugLogFilePath = API.Rows(0).Item("api_debugpath") & program & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "_Test", "") & ".txt"
|
||||
Else
|
||||
Rest.VerboseLogging = False
|
||||
rest.VerboseLogging = False
|
||||
End If
|
||||
|
||||
End If
|
||||
API_STRING = API.Rows(0).Item("api_url")
|
||||
|
||||
End Sub
|
||||
|
||||
Shared Function SendRequestAuthentificationToken(ByVal myuri As String, ByVal contentType As String, ByVal method As String, ByRef Itoken As String) As String
|
||||
Shared Function SendRequestAuthentificationToken(ByVal myuri As String, ByVal contentType As String, ByVal method As String, ByRef Itoken As String, ByVal program As String, Optional client_id As String = "", Optional grant_type As String = "", Optional useBody As Boolean = True) As String
|
||||
Try
|
||||
|
||||
Dim session = New cATEZ_NCTS_Sessions()
|
||||
|
||||
If Not IsDBNull(session.token) AndAlso session.token IsNot Nothing Then
|
||||
Itoken = session.token
|
||||
token = Itoken
|
||||
sessionID = session.session_Id
|
||||
Return "200"
|
||||
If CDate(session.token_validuntil) < DateTime.Now Then
|
||||
Itoken = session.token
|
||||
token = Itoken
|
||||
sessionID = session.session_Id
|
||||
Return "200"
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If apiSettingsloaded = False Then Return "400"
|
||||
@@ -663,6 +674,8 @@ Public Class cATEZ_NCTS_IN
|
||||
Dim bTls As Boolean = True
|
||||
Dim port As Integer = 443
|
||||
Dim bAutoReconnect As Boolean = True
|
||||
'API_STRING = API_STRING.Replace("https://", "")
|
||||
'API_STRING = API_STRING.Replace("http://", "")
|
||||
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
||||
If (success <> True) Then
|
||||
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
||||
@@ -671,22 +684,41 @@ Public Class cATEZ_NCTS_IN
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Dim json As New Chilkat.JsonObject
|
||||
json.UpdateString("password", API.Rows(0).Item("api_password"))
|
||||
json.UpdateString("username", API.Rows(0).Item("api_user"))
|
||||
|
||||
|
||||
rest.AddHeader("Content-Type", contentType)
|
||||
|
||||
Dim sbRequestBody As New Chilkat.StringBuilder
|
||||
json.EmitSb(sbRequestBody)
|
||||
|
||||
'DEBUG-Mode -> no request will be sent!
|
||||
'rest.DebugMode = True
|
||||
|
||||
Dim sbResponseBody As New Chilkat.StringBuilder
|
||||
Dim ResponseStr = rest.FullRequestSb(method, myuri, sbRequestBody, sbResponseBody)
|
||||
Dim ResponseStr As String
|
||||
|
||||
If useBody Then
|
||||
|
||||
Dim json As New Chilkat.JsonObject
|
||||
json.UpdateString("username", API.Rows(0).Item("api_user"))
|
||||
json.UpdateString("password", API.Rows(0).Item("api_password"))
|
||||
If client_id <> "" Then json.UpdateString("client_id", client_id)
|
||||
If grant_type <> "" Then json.UpdateString("grant_type", grant_type)
|
||||
|
||||
|
||||
|
||||
Dim sbRequestBody As New Chilkat.StringBuilder
|
||||
json.EmitSb(sbRequestBody)
|
||||
|
||||
ResponseStr = rest.FullRequestSb(method, myuri, sbRequestBody, sbResponseBody)
|
||||
|
||||
Else
|
||||
|
||||
|
||||
rest.ClearAllQueryParams()
|
||||
rest.AddQueryParam("grant_type", grant_type)
|
||||
rest.AddQueryParam("username", API.Rows(0).Item("api_user"))
|
||||
rest.AddQueryParam("password", API.Rows(0).Item("api_password"))
|
||||
rest.AddQueryParam("client_id", client_id)
|
||||
|
||||
|
||||
ResponseStr = rest.FullRequestFormUrlEncoded(method, myuri)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
If (rest.ResponseStatusCode <> 200) Then
|
||||
@@ -694,13 +726,19 @@ Public Class cATEZ_NCTS_IN
|
||||
End If
|
||||
|
||||
Dim jsonResp = New Chilkat.JsonObject()
|
||||
jsonResp.LoadSb(sbResponseBody)
|
||||
|
||||
If useBody Then
|
||||
jsonResp.LoadSb(sbResponseBody)
|
||||
Else
|
||||
jsonResp.Load(ResponseStr)
|
||||
End If
|
||||
|
||||
Itoken = jsonResp.StringOf("access_token")
|
||||
token = Itoken
|
||||
refresh_token = jsonResp.StringOf("refresh_token")
|
||||
refresh_token = If(jsonResp.StringOf("refresh_token"), "")
|
||||
Dim now As DateTime = DateTime.Now()
|
||||
now = now.AddSeconds(jsonResp.IntOf("expires_in"))
|
||||
session = New cATEZ_NCTS_Sessions(Itoken, refresh_token, now.ToString("yyyy-MM-dd HH:mm:ss"))
|
||||
session = New cATEZ_NCTS_Sessions(Itoken, refresh_token, now.ToString("yyyy-MM-dd HH:mm:ss"), program)
|
||||
sessionID = session.session_Id
|
||||
|
||||
Return rest.ResponseStatusCode
|
||||
@@ -710,17 +748,28 @@ Public Class cATEZ_NCTS_IN
|
||||
|
||||
End Function
|
||||
|
||||
Shared Function authenticate() As String
|
||||
Shared Function authenticate(program As String, Optional client_id As String = "", Optional grant_type As String = "") As String
|
||||
|
||||
Dim myUri As String = API_STRING & "/api/tds/auth/"
|
||||
Dim response = SendRequestAuthentificationToken(myUri, "application/json", "POST", token)
|
||||
Dim myUri As String = API_STRING
|
||||
Dim contentType = "application/json"
|
||||
Dim useBody As Boolean = True
|
||||
|
||||
Select Case program
|
||||
Case "NCTS" : myUri &= "/api/tds/auth/"
|
||||
Case "VAT" : myUri &= "/token" : contentType = "application/x-www-form-urlencoded" : useBody = False
|
||||
|
||||
|
||||
|
||||
End Select
|
||||
|
||||
Dim response = SendRequestAuthentificationToken(myUri, contentType, "POST", token, program, client_id, grant_type, useBody)
|
||||
|
||||
Return response
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Shared Function SendRequestWithAuthHeader(acceptContentType As String, ByRef failureDesc As String) As String
|
||||
Shared Function SendRequestWithAuthHeader(acceptContentType As String, ByRef failureDesc As String, myUrl As String, Method As String, Optional dt As DataTable = Nothing) As String
|
||||
Try
|
||||
|
||||
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
|
||||
@@ -755,7 +804,7 @@ Public Class cATEZ_NCTS_IN
|
||||
'rest.PercentDoneOnSend = True
|
||||
rest.IdleTimeoutMs = 5000 * 31
|
||||
|
||||
success = rest.SendReqSb("POST", "/api/integrations/verag", sbRequestBody)
|
||||
success = rest.SendReqSb(Method, myUrl, sbRequestBody)
|
||||
|
||||
Dim responseStatusCode = rest.ReadResponseHeader()
|
||||
If (responseStatusCode < 0) Then
|
||||
@@ -804,6 +853,51 @@ Public Class cATEZ_NCTS_IN
|
||||
Dim jsonResult As New Chilkat.JsonObject
|
||||
success = jsonResult.LoadSb(sbResponseBody)
|
||||
jsonResult.Emit()
|
||||
|
||||
If dt IsNot Nothing Then
|
||||
|
||||
|
||||
Dim data As New Chilkat.JsonObject
|
||||
data = jsonResult
|
||||
If (data.LastMethodSuccess = False) Then
|
||||
Debug.WriteLine("data member not found.")
|
||||
End If
|
||||
|
||||
|
||||
Dim num As Integer = 1
|
||||
If num = -1 Then
|
||||
Return "FEHLER Array Data ist leer"
|
||||
End If
|
||||
|
||||
Dim j As Integer = 0
|
||||
|
||||
While j < num
|
||||
|
||||
Dim invoice As Chilkat.JsonObject = data.ObjectAt(j)
|
||||
|
||||
Dim R As DataRow = dt.NewRow
|
||||
R("currency") = checkNullStr(invoice.StringOf("currency"))
|
||||
Dim totalAmonut As String = invoice.StringOf("total_VAT_amount").Replace(".", ",")
|
||||
R("total_VAT_amount") = CDbl(checkNulDbl(totalAmonut))
|
||||
R("invoice_id") = checkNullStr(invoice.StringOf("invoice_id"))
|
||||
R("invoice_date") = checkNullStr(invoice.StringOf("invoice_date"))
|
||||
R("seller_VAT_id") = checkNullStr(invoice.StringOf("seller_VAT_id"))
|
||||
R("seller_address_city") = checkNullStr(invoice.StringOf("seller_address_city"))
|
||||
R("seller_address_country") = checkNullStr(invoice.StringOf("seller_address_country"))
|
||||
R("seller_address_postcode") = checkNullStr(invoice.StringOf("seller_address_postcode"))
|
||||
R("seller_address_street") = checkNullStr(invoice.StringOf("seller_address_street"))
|
||||
R("status") = checkNullStr(jsonResult.StringOf("status"))
|
||||
|
||||
dt.Rows.Add(R)
|
||||
|
||||
j = j + 1
|
||||
End While
|
||||
|
||||
Return jsonResult.StringOf("status")
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Return jsonResult.StringOf("atezId")
|
||||
|
||||
End If
|
||||
@@ -816,7 +910,24 @@ Public Class cATEZ_NCTS_IN
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Shared Function setJson(ncts As cATEZ_NCTS_DATA)
|
||||
Public Shared Function checkNullStr(ByVal o As Object) As String
|
||||
If o IsNot Nothing AndAlso o IsNot DBNull.Value AndAlso Not o = "null" Then Return CStr(o)
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
Public Shared Function checkNulDbl(ByVal o As Object) As Double
|
||||
If o IsNot Nothing And o IsNot DBNull.Value Then
|
||||
If IsNumeric(o) Then
|
||||
Return Math.Round(CDbl(o), 2)
|
||||
Else
|
||||
Return 0
|
||||
End If
|
||||
Else
|
||||
Return 0
|
||||
End If
|
||||
End Function
|
||||
|
||||
Shared Function setJsonNCTS(ncts As cATEZ_NCTS_DATA)
|
||||
|
||||
jsonData.Clear()
|
||||
ncts.json = ""
|
||||
@@ -868,6 +979,21 @@ Public Class cATEZ_NCTS_IN
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Shared Function setJsonVAT(documentType As String, docID As Integer)
|
||||
|
||||
jsonData.Clear()
|
||||
|
||||
Dim success As Boolean
|
||||
success = jsonData.UpdateString("document_type", documentType)
|
||||
Dim base64 As New Chilkat.BinData
|
||||
success = base64.LoadFile(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(docID))
|
||||
success = jsonData.UpdateString("document_base64", base64.GetEncoded("base64"))
|
||||
|
||||
Return success
|
||||
|
||||
End Function
|
||||
|
||||
Public Function setJsonPDF(ncts As cATEZ_NCTS_DATA, dgv As DataGridView)
|
||||
|
||||
Dim success As Boolean
|
||||
@@ -894,4 +1020,7 @@ Public Class cATEZ_NCTS_IN
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
@@ -60,6 +60,15 @@ Public Class cHMRC
|
||||
cHMRCCredentials.CLIENT_ID = cHMRC_ENS.Client_ID
|
||||
cHMRCCredentials.CLIENT_SECRET = cHMRC_ENS.Client_Secret
|
||||
End If
|
||||
Case "ATEZ_ENS"
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
||||
|
||||
Else
|
||||
cHMRCCredentials.API_STRING = "https://api.service.hmrc.gov.uk"
|
||||
cHMRCCredentials.CLIENT_ID = "b28AgFVSAXkLPtnnlU1xTRXbMXoD"
|
||||
cHMRCCredentials.CLIENT_SECRET = "17dfde2d-2aa9-47a0-9a3a-160363b909c5"
|
||||
End If
|
||||
|
||||
End Select
|
||||
Return cHMRCCredentials
|
||||
End Function
|
||||
@@ -1513,9 +1522,10 @@ Public Class cHMRC
|
||||
|
||||
|
||||
|
||||
Public Shared Function getTOKEN(APPLICATION, Optional forceNewToken = False) As cHMRCToken
|
||||
Public Shared Function getTOKEN(APPLICATION, Optional forceNewToken = False, Optional saveAPPLICATION_NAME = "", Optional otherHMRCAPPLICATION_NAME = "") As cHMRCToken
|
||||
If saveAPPLICATION_NAME = "" Then saveAPPLICATION_NAME = APPLICATION
|
||||
|
||||
Dim TOKEN = New cHMRCToken(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, APPLICATION)
|
||||
Dim TOKEN = New cHMRCToken(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, saveAPPLICATION_NAME)
|
||||
Try
|
||||
Dim appl = ""
|
||||
Dim HMRC_APPLICATION = "AVISO"
|
||||
@@ -1538,16 +1548,26 @@ Public Class cHMRC
|
||||
'appl = "write:import-control-system+read:import-control-system"
|
||||
appl = "hello"
|
||||
HMRC_APPLICATION = "AVISO_ENS"
|
||||
Case Else
|
||||
appl = "hello"
|
||||
HMRC_APPLICATION = "AVISO_ENS"
|
||||
End Select
|
||||
|
||||
|
||||
If otherHMRCAPPLICATION_NAME <> "" Then
|
||||
HMRC_APPLICATION = otherHMRCAPPLICATION_NAME
|
||||
End If
|
||||
|
||||
If forceNewToken OrElse TOKEN.hasEntry = False OrElse TOKEN.token_BEARER_TOKEN Is Nothing OrElse TOKEN.token_BEARER_TOKEN = "" Then
|
||||
'Neuer Token
|
||||
Dim AccessToken = ""
|
||||
Dim RefreshToken = ""
|
||||
|
||||
|
||||
grantAccess(AccessToken, RefreshToken, appl, HMRC_APPLICATION)
|
||||
TOKEN.token_Application = APPLICATION
|
||||
|
||||
|
||||
TOKEN.token_Application = saveAPPLICATION_NAME
|
||||
TOKEN.token_BEARER_TOKEN = AccessToken
|
||||
TOKEN.token_REFRESH_TOKEN = RefreshToken
|
||||
TOKEN.token_refresh_datetime = Now
|
||||
|
||||
Reference in New Issue
Block a user