1777 lines
98 KiB
VB.net
1777 lines
98 KiB
VB.net
Imports System.Data.SqlClient
|
|
Imports System.Net
|
|
Imports System.Reflection
|
|
|
|
Public Class cMSEAPI
|
|
|
|
Public API_STRING
|
|
Dim API As New DataTable
|
|
Dim rest As New Chilkat.Rest
|
|
Dim defaultDebugLogFilePath = ""
|
|
Dim SQL As New SQL
|
|
Dim apiSettingsloaded As Boolean = False
|
|
Dim test As Boolean = False
|
|
Dim PDFRECHNUNGENPFAD As String = ""
|
|
|
|
|
|
Sub New(program As String)
|
|
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
|
|
API = SQL.loadDgvBySql("SELECT top(1) * FROM tblAPIEinstellungen WHERE api_program='" & program & "' and api_productive ='" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "0", "1") & "'", "ADMIN")
|
|
If API.Rows.Count = 0 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"
|
|
Else
|
|
rest.VerboseLogging = False
|
|
End If
|
|
|
|
PDFRECHNUNGENPFAD = Me.GET_PARAM_ByName("PDFRECHNUNGEN-PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Shared Function GET_PARAM_ByName(tcParam_name, TESTSYSTEM) As String
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Return SQL.getValueTxtBySql("SELECT TOP 1 [Param_value] FROM [tblPartnersystem_Paramter] WHERE Param_system='MSE' AND [Param_name]='" & tcParam_name & "'", , , SQL.GetNewOpenConnectionFMZOLL_SYSTEM(TESTSYSTEM))
|
|
End Function
|
|
|
|
|
|
Public Function createJWT(ByRef failureText As String) As String
|
|
Try
|
|
|
|
Dim jwt As New Chilkat.Jwt
|
|
Dim jose As New Chilkat.JsonObject
|
|
Dim success As Boolean = jose.AppendString("alg", "HS256")
|
|
success = jose.AppendString("typ", "JWT")
|
|
|
|
' Now build the JWT claims (also known as the payload)
|
|
Dim claims As New Chilkat.JsonObject
|
|
If API.Rows.Count = 0 Then Return "keine gültigen Zugangsdaten gefunden!"
|
|
success = claims.AppendString("iss", API.Rows(0).Item("api_user"))
|
|
Dim curDateTime As Integer = jwt.GenNumericDate(0)
|
|
|
|
' Set the timestamp defining an expiration time (end time) for the token
|
|
' to be now + 1 hour (3600 seconds)
|
|
success = claims.AddIntAt(-1, "exp", curDateTime + 3600)
|
|
|
|
jwt.AutoCompact = True
|
|
|
|
Dim strJwt As String = jwt.CreateJwt(jose.Emit(), claims.Emit(), API.Rows(0).Item("api_password"))
|
|
|
|
Debug.WriteLine(strJwt)
|
|
Return strJwt
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Function getNewestTransactions(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/transactions/new")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""10738"",""datetime"":""2024-06-28 10:56:39"",""code"":""OK"",""message"":""OK"",""batch_seq_nr"":""2"",""customer_currency"":""EUR"",""total_pages"":100,""total_count"":99998,""total_amount"":291133.02,""page_nr"":1,""page_count"":999,""page_amount"":26238.88,""transactions"":[{""transaction_id"":1001723285,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-20 14:02:34"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-20 14:02:34"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723286,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-26 05:34:49"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-26 05:34:49"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723289,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-03 09:57:14"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-03 09:57:14"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723290,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-04 14:47:25"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-04 14:47:25"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""}]}"
|
|
End If
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Debug.WriteLine(json.LastErrorText)
|
|
End If
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
batchNr = json.StringOf("batch_seq_nr")
|
|
totalPages = json.IntOf("total_pages")
|
|
currentPage = json.IntOf("page_nr")
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
Dim transactions As New Chilkat.JsonArray
|
|
transactions = json.ArrayOf("transactions")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Debug.WriteLine("transactions member not found.")
|
|
End If
|
|
|
|
|
|
Dim num As Integer = transactions.Size
|
|
If num = -1 Then
|
|
Return "FEHLER im TransaktionArray"
|
|
End If
|
|
|
|
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Function getCustomers(jwt As String, dt As DataTable) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/customers")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "[{""customer_id"":13579,""partner_customer_number"":""203102"",""customer_name"":""NEGRO GROUP SRL"",""vat_number"":""RO17587350""},{""customer_id"":13566,""partner_customer_number"":""203104"",""customer_name"":""DANEMA SPECIAL TRANSPORT S.R.L."",""vat_number"":""RO27454467""},{""customer_id"":10746,""coc_number"":""11111"",""partner_customer_number"":""401386"",""customer_name"":""Teoma Transport"",""vat_number"":""SR100427963""},{""customer_id"":27765,""partner_customer_number"":""402810"",""customer_name"":""EMS TRANSPORTI DOO"",""vat_number"":""BA219169270003""}]"
|
|
End If
|
|
|
|
Dim customers As New Chilkat.JsonArray
|
|
success = customers.Load(responseJson)
|
|
If (success <> True) Then
|
|
Return customers.LastErrorText
|
|
|
|
End If
|
|
|
|
Dim num As Integer = customers.Size
|
|
If num = -1 Then
|
|
Return "FEHLER im Customer Array"
|
|
End If
|
|
|
|
saveCustomers(num, dt, customers)
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Function getTransactionsFromToDate(jwt As String, dt As DataTable, start_date As Date, end_date As Date, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
rest.AddQueryParam("start_date", start_date.ToString("yyyy-MM-dd"))
|
|
rest.AddQueryParam("end_date", end_date.ToString("yyyy-MM-dd"))
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/transactions")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""10738"",""datetime"":""2024-06-28 10:56:39"",""code"":""OK"",""message"":""OK"",""batch_seq_nr"":""2"",""customer_currency"":""EUR"",""total_pages"":100,""total_count"":99998,""total_amount"":291133.02,""page_nr"":1,""page_count"":999,""page_amount"":26238.88,""transactions"":[{""transaction_id"":1001723285,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-07-20 14:02:34"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-10 14:02:34"",""exit_point_name"":null,""exit_datetime"":""2024-04-11 14:02:34"",""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":-2549.2400000000002,""original_gross_amount"":-2549.2400000000002,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723286,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-26 05:34:49"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-26 05:34:49"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723289,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-03 09:57:14"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-03 09:57:14"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723290,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-04 14:47:25"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-04 14:47:25"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""}]}"
|
|
End If
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Debug.WriteLine(json.LastErrorText)
|
|
End If
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
batchNr = json.StringOf("batch_seq_nr")
|
|
totalPages = json.IntOf("total_pages")
|
|
currentPage = json.IntOf("page_nr")
|
|
|
|
|
|
Dim transactions As New Chilkat.JsonArray
|
|
transactions = json.ArrayOf("transactions")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Debug.WriteLine("transactions member not found.")
|
|
End If
|
|
|
|
|
|
Dim num As Integer = transactions.Size
|
|
If num = -1 Then
|
|
Return "FEHLER Array Transaktions ist leer"
|
|
End If
|
|
|
|
|
|
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Function getTransactionsFromTransactionID(jwt As String, dt As DataTable, ByRef transactionID As DataTable) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
|
|
|
|
'transactionID.Columns.Add("transaction_id", GetType(String))
|
|
|
|
|
|
If transactionID IsNot Nothing And transactionID.Columns.Contains("transaction_id") And transactionID.Rows.Count > 0 Then
|
|
For Each row As DataRow In transactionID.Rows
|
|
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/transactions/" & row("transaction_id"))
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""10738"",""datetime"":""2024-06-28 10:56:39"",""code"":""OK"",""message"":""OK"",""batch_seq_nr"":""2"",""customer_currency"":""EUR"",""total_pages"":100,""total_count"":99998,""total_amount"":291133.02,""page_nr"":1,""page_count"":999,""page_amount"":26238.88,""transactions"":[{""transaction_id"":1001723285,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-07-20 14:02:34"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-10 14:02:34"",""exit_point_name"":null,""exit_datetime"":""2024-04-11 14:02:34"",""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":-2549.2400000000002,""original_gross_amount"":-2549.2400000000002,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723286,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-26 05:34:49"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-26 05:34:49"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723289,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-03 09:57:14"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-03 09:57:14"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723290,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-04 14:47:25"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-04 14:47:25"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""}]}"
|
|
End If
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Debug.WriteLine(json.LastErrorText)
|
|
End If
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
Dim transactions As New Chilkat.JsonArray
|
|
transactions = json.ArrayOf("transactions")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Debug.WriteLine("transactions member not found.")
|
|
End If
|
|
|
|
|
|
Dim num As Integer = transactions.Size
|
|
If num = -1 Then
|
|
Return "FEHLER Array Transaktions ist leer"
|
|
End If
|
|
|
|
|
|
'If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
|
|
saveTransactions(num, dt, transactions, json.StringOf("receiver"), True) ' wenn ID explizit aufgerufen keine Prüfung auf receivcer und purchaseDate
|
|
|
|
|
|
Next row
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
Public Function getTransactionsFromBatchNrAndPage(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
Return rest.LastErrorText
|
|
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
Return rest.LastErrorText
|
|
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
rest.AddQueryParam("batch_seq_nr", batchNr)
|
|
If currentPage > 0 Then rest.AddQueryParam("page_nr", currentPage)
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/transactions")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""10738"",""datetime"":""2024-06-28 10:56:39"",""code"":""OK"",""message"":""OK"",""batch_seq_nr"":""2"",""customer_currency"":""EUR"",""total_pages"":100,""total_count"":99998,""total_amount"":291133.02,""page_nr"":1,""page_count"":999,""page_amount"":26238.88,""transactions"":[{""transaction_id"":1001723285,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-20 14:02:34"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-20 14:02:34"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723286,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-26 05:34:49"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-26 05:34:49"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723289,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-03 09:57:14"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-03 09:57:14"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723290,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-04 14:47:25"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-04 14:47:25"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""}]}"
|
|
End If
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Debug.WriteLine(json.LastErrorText)
|
|
Return json.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
batchNr = json.StringOf("batch_seq_nr")
|
|
totalPages = json.IntOf("total_pages")
|
|
currentPage = json.IntOf("page_nr")
|
|
|
|
|
|
Dim transactions As New Chilkat.JsonArray
|
|
transactions = json.ArrayOf("transactions")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Return "transactions member not found."
|
|
End If
|
|
|
|
|
|
Dim num As Integer = transactions.Size
|
|
If num < 1 Then
|
|
Return "FEHLER Array Transaktions ist leer"
|
|
End If
|
|
|
|
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
Public Function getSettlementsFromInvoiceID(jwt As String, dt As DataTable, invoiceID As String, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
Return rest.LastErrorText
|
|
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
Return rest.LastErrorText
|
|
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
|
|
|
|
rest.AddQueryParam("invoice_id", invoiceID)
|
|
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/settlements")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""10738"",""datetime"":""2024-07-25 14:17:45"",""code"":""OK"",""message"":""OK"",""customer_currency"":""EUR"",""total_pages"":1,""total_count"":56351,""total_amount"":164386.34,""page_nr"":1,""page_count"":56351,""page_amount"":164386.34,""settlements"":[{""transaction_id"":1001723285,""purchase_datetime"":""2024-06-25 21:29:16"",""partner_haulier_id"":""401058"",""transaction_net_amount"":9.08,""transaction_gross_amount"":10.9,""msts_fee_amount"":0.11,""msts_vat_amount"":0,""total_gross_amount"":11.01,""invoice_number"":""1753066"",""invoice_date"":""2024-07-15"",""specification_page_id"":197,""specification_page_name"":""French toll roads - TISPL"",""transaction_debit_or_credit"":""Debit"",""original_transaction_id"":null,""original_invoice_number"":null,""original_invoice_date"":null,""credit_comment"":null,""batch_seq_nr"":""1""},{""transaction_id"":1001723286,""purchase_datetime"":""2024-06-26 11:17:48"",""partner_haulier_id"":""401267"",""transaction_net_amount"":10.42,""transaction_gross_amount"":12.5,""msts_fee_amount"":0.13,""msts_vat_amount"":0,""total_gross_amount"":12.63,""invoice_number"":""1753066"",""invoice_date"":""2024-07-15"",""specification_page_id"":197,""specification_page_name"":""French toll roads - TISPL"",""transaction_debit_or_credit"":""Debit"",""original_transaction_id"":null,""original_invoice_number"":null,""original_invoice_date"":null,""credit_comment"":null,""batch_seq_nr"":""1""}]}"
|
|
End If
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Return json.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
batchNr = json.StringOf("batch_seq_nr")
|
|
totalPages = json.IntOf("total_pages")
|
|
currentPage = json.IntOf("page_nr")
|
|
|
|
|
|
Dim transactions As New Chilkat.JsonArray
|
|
transactions = json.ArrayOf("settlements")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Return "transactions member not found."
|
|
End If
|
|
|
|
|
|
|
|
Dim num As Integer = transactions.Size
|
|
If num = -1 Then
|
|
Return "FEHLER Array Transaktions ist leer"
|
|
End If
|
|
|
|
|
|
If json.StringOf("receiver") = "10738" Then saveSettlements(num, dt, transactions, json.StringOf("receiver"))
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
Public Function getSettlementsFromBatchNrAndPage(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
rest.AddQueryParam("batch_seq_nr", batchNr)
|
|
If currentPage > 0 Then rest.AddQueryParam("page_nr", currentPage)
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/settlements")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""23771"",""datetime"":""2024-06-28 10:56:39"",""code"":""OK"",""message"":""OK"",""batch_seq_nr"":""2"",""customer_currency"":""EUR"",""total_pages"":100,""total_count"":99998,""total_amount"":291133.02,""page_nr"":1,""page_count"":999,""page_amount"":26238.88,""transactions"":[{""transaction_id"":1001723285,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-20 14:02:34"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-20 14:02:34"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723286,""partner_haulier_id"":""401052"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-26 05:34:49"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-26 05:34:49"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005108291"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""BG1000FG"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723289,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-03 09:57:14"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-03 09:57:14"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""},{""transaction_id"":1001723290,""partner_haulier_id"":""401370"",""supplier_name"":""TUNNEL ALPIN DU FREJUS"",""transaction_country"":""FR"",""transaction_domain"":""Frejus tunnel"",""purchase_datetime"":""2024-04-04 14:47:25"",""entry_point_name"":""FREJUS TUNNEL"",""entry_datetime"":""2024-04-04 14:47:25"",""exit_point_name"":null,""exit_datetime"":null,""device_product_type"":""Frejus"",""device_product_number"":""3081184009005114273"",""transaction_product_id"":140,""transaction_product_name"":""Toll "",""license_plate_number"":""RU042IS"",""vehicle_country"":""RS"",""original_currency"":""EUR"",""original_net_amount"":258.38,""original_gross_amount"":310.05,""original_vat_percentage"":20,""transaction_net_amount"":258.38,""transaction_gross_amount"":310.05,""exempt_amount"":0,""msts_fee_amount"":4.65,""msts_vat_amount"":0,""msts_vat_percentage"":0,""total_gross_amount"":314.7,""transaction_status"":""Billed"",""original_transaction_id"":null,""credit_comment"":null,""loading_date"":""2024-05-14"",""batch_seq_nr"":""2""}]}"
|
|
End If
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Debug.WriteLine(json.LastErrorText)
|
|
End If
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
batchNr = json.StringOf("batch_seq_nr")
|
|
totalPages = json.IntOf("total_pages")
|
|
currentPage = json.IntOf("page_nr")
|
|
|
|
|
|
Dim transactions As New Chilkat.JsonArray
|
|
transactions = json.ArrayOf("transactions")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Debug.WriteLine("transactions member not found.")
|
|
End If
|
|
|
|
|
|
Dim num As Integer = transactions.Size
|
|
If num = -1 Then
|
|
Return "FEHLER Array Transaktions ist leer"
|
|
End If
|
|
|
|
If json.StringOf("receiver") = "10738" Then saveSettlements(num, dt, transactions, json.StringOf("receiver"))
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
Public 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 Function checkNullInteger(ByVal o As Object) As Integer
|
|
If o IsNot Nothing AndAlso o IsNot DBNull.Value Then
|
|
If IsNumeric(o) Then
|
|
Return CInt(o)
|
|
Else
|
|
Return -1
|
|
End If
|
|
Else
|
|
Return -1
|
|
End If
|
|
|
|
End Function
|
|
Public Function checkNullReturnValue(ByVal o As Object, ByVal returnValue As Object) As Object
|
|
If o IsNot Nothing And o IsNot DBNull.Value And Not o = "null" Then Return (o)
|
|
Return returnValue
|
|
End Function
|
|
|
|
Public Function checkNullIntegerZero(ByVal o As Object) As Integer
|
|
If o IsNot Nothing And o IsNot DBNull.Value And Not o = "null" Then Return CInt(o)
|
|
Return 0
|
|
End Function
|
|
Public 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 -1
|
|
End If
|
|
Else
|
|
Return -1
|
|
End If
|
|
End Function
|
|
|
|
Public Function checkNullBool(ByVal o As Object) As Boolean
|
|
If o Is Nothing Or o Is DBNull.Value Or o = "null" Then Return 0
|
|
Try
|
|
Return CBool(o)
|
|
Catch ex As Exception
|
|
End Try
|
|
Return 0
|
|
End Function
|
|
|
|
Public Function checkNullDateNothing(ByVal o As Object) As Object
|
|
If o Is DBNull.Value Or Not IsDate(o) Then
|
|
Return Nothing
|
|
Else
|
|
Return CDate(o)
|
|
End If
|
|
End Function
|
|
Public Function getInvoices(jwt As String, dt As DataTable, startDate As Date, end_date As Date) As String
|
|
Try
|
|
Dim returnText As String = ""
|
|
Dim failureText As String = ""
|
|
|
|
Dim success As Boolean
|
|
|
|
rest.DebugMode = test
|
|
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
failureText = rest.LastErrorText
|
|
Return False
|
|
End If
|
|
|
|
rest.ClearAllQueryParams()
|
|
|
|
|
|
rest.AddQueryParam("start_date", startDate.ToString("yyyy-MM-dd"))
|
|
rest.AddQueryParam("end_date", end_date.ToString("yyyy-MM-dd"))
|
|
|
|
rest.AddHeader("X-API-Key", jwt)
|
|
|
|
rest.IdleTimeoutMs = 1000000
|
|
|
|
Dim responseJson As String = rest.FullRequestNoBody("GET", "/v1/invoices")
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
rest.IdleTimeoutMs = 30000 'defualt
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
If (rest.ResponseStatusCode <> IIf(rest.DebugMode = True, 201, 200) And rest.ResponseStatusCode <> 404) Then
|
|
Debug.WriteLine(rest.ResponseHeader)
|
|
Return rest.LastErrorText
|
|
End If
|
|
|
|
Debug.WriteLine(responseJson)
|
|
|
|
If test Then
|
|
responseJson = "{""sender"":""MSTS"",""receiver"":""10738"",""datetime"":""2024-07-24 11:07:08"",""code"":""OK"",""message"":""OK"",""pdf_invoices"":[{""name"":""20240715_11024_ES_VAT.pdf"",""url"":"""",""total_amount_euro"":-2549.2400000000004,""total_vat_amount_euro"":-2549.2400000000002,""msts_vat_number"":""N0034998E"",""invoice_id"":1753066,""invoice_date"":""2024-07-15""},{""name"":""20240715_11024_FR_VAT.pdf"",""url"":"""",""total_amount_euro"":326.90000000000006,""total_vat_amount_euro"":54.49,""msts_vat_number"":""FR39491257770"",""invoice_id"":1753066,""invoice_date"":""2024-07-15""},{""name"":""20240715_11070_FR_VAT.pdf"",""url"":"""",""total_amount_euro"":0.00,""total_vat_amount_euro"":0.00,""msts_vat_number"":""FR39491257770"",""invoice_id"":1753066,""invoice_date"":""2024-07-15""}]}"
|
|
End If
|
|
|
|
|
|
Dim json As New Chilkat.JsonObject
|
|
success = json.Load(responseJson)
|
|
If (success <> True) Then
|
|
Debug.WriteLine(json.LastErrorText)
|
|
End If
|
|
|
|
If json.StringOf("message") <> "" AndAlso json.StringOf("message") <> "OK" Then Return json.StringOf("message")
|
|
|
|
Debug.WriteLine(json)
|
|
|
|
|
|
Dim invoices As New Chilkat.JsonArray
|
|
invoices = json.ArrayOf("pdf_invoices")
|
|
If (json.LastMethodSuccess = False) Then
|
|
Debug.WriteLine("pdf_invoices member not found.")
|
|
End If
|
|
|
|
|
|
Dim num As Integer = invoices.Size
|
|
If num = -1 Then
|
|
Return "FEHLER Array Invoices ist leer"
|
|
End If
|
|
|
|
|
|
Dim j As Integer = 0
|
|
|
|
If dt IsNot Nothing And Not dt.Columns.Contains("name") Then
|
|
|
|
dt.Columns.Add("name", GetType(String))
|
|
dt.Columns.Add("url", GetType(String))
|
|
dt.Columns.Add("total_amount_euro", GetType(Double))
|
|
dt.Columns.Add("total_vat_amount_euro", GetType(Double))
|
|
dt.Columns.Add("msts_vat_number", GetType(String))
|
|
dt.Columns.Add("invoice_id", GetType(String))
|
|
dt.Columns.Add("invoice_date", GetType(String))
|
|
|
|
While j < num
|
|
|
|
Dim invoice As Chilkat.JsonObject = invoices.ObjectAt(j)
|
|
|
|
Dim R As DataRow = dt.NewRow
|
|
R("name") = checkNullStr(invoice.StringOf("name"))
|
|
R("url") = checkNullStr(invoice.StringOf("url"))
|
|
R("total_amount_euro") = CDbl(IIf(invoice.StringOf("total_amount_euro") = "null", "0", invoice.StringOf("total_amount_euro").Replace(".", ",")))
|
|
R("total_vat_amount_euro") = CDbl(IIf(invoice.StringOf("total_vat_amount_euro") = "null", "0", invoice.StringOf("total_vat_amount_euro").Replace(".", ",")))
|
|
R("msts_vat_number") = checkNullStr(invoice.StringOf("msts_vat_number"))
|
|
R("invoice_id") = checkNullInteger(invoice.StringOf("invoice_id"))
|
|
R("invoice_date") = checkNullStr(invoice.StringOf("invoice_date"))
|
|
|
|
Dim invoice_date_string As String = invoice.StringOf("invoice_date")
|
|
|
|
Try
|
|
If invoice_date_string <> "" AndAlso invoice_date_string <> "null" Then R("invoice_date") = CDate(invoice_date_string)
|
|
|
|
Catch ex As Exception
|
|
'VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
dt.Rows.Add(R)
|
|
|
|
If R("total_amount_euro") <> 0 And R("total_vat_amount_euro") <> 0 Then
|
|
Dim inv As New cMSEInvoices()
|
|
Dim nameString = checkNullStr(R("name"))
|
|
inv.name = nameString
|
|
inv.total_amount_euro = Math.Round(R("total_amount_euro"), 2)
|
|
inv.total_vat_amount_euro = Math.Round(R("total_vat_amount_euro"), 2)
|
|
inv.msts_vat_number = checkNullStr(R("msts_vat_number"))
|
|
inv.invoice_id = checkNullInteger(R("invoice_id"))
|
|
inv.invoice_date = checkNullDateNothing(R("invoice_date"))
|
|
|
|
If nameString.Length > 13 AndAlso nameString.Contains("_") Then
|
|
inv.customer_number = nameString.Substring(nameString.IndexOf("_") + 1, 5)
|
|
End If
|
|
|
|
If nameString.Length > 16 AndAlso nameString.Contains("_") Then
|
|
Dim indexOfFirst_ = nameString.IndexOf("_")
|
|
If nameString.Length > indexOfFirst_ + 2 Then
|
|
Dim countryString = nameString.Substring(nameString.IndexOf("_", indexOfFirst_ + 1) + 1, 2)
|
|
inv.country = countryString
|
|
End If
|
|
|
|
End If
|
|
|
|
inv.SAVE()
|
|
End If
|
|
|
|
|
|
|
|
j = j + 1
|
|
End While
|
|
|
|
|
|
For Each r As DataRow In dt.Rows
|
|
|
|
'\\fmzoll\f\FMZoll\MSE\TESTRECHNUNGEN
|
|
'\\datenarchiv\Datenarchiv\MDM_SCHNITTSTELLEN\ECHTSYSTEM\Nachrichtendaten_ZIEL\MSE
|
|
|
|
If r("url") <> "" AndAlso r("name") <> "" AndAlso r("name").contains("VAT") Then 'only VAT-Invoices
|
|
VERAG_PROG_ALLGEMEIN.cFormularManager.getPDFViaSpirePDF_FromURLStream(r("url"), r("name"), PDFRECHNUNGENPFAD, False)
|
|
End If
|
|
|
|
Next
|
|
|
|
dt = dt.DefaultView.ToTable()
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Catch ex As WebException
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
|
|
Public Sub saveTransactions(num As Integer, dt As DataTable, transactions As Chilkat.JsonArray, receiver As Integer, Optional ignorePurchaseDate As Boolean = False)
|
|
|
|
Dim j As Integer = 0
|
|
|
|
If dt IsNot Nothing And Not dt.Columns.Contains("transaction_id") Then
|
|
|
|
dt.Columns.Add("transaction_id", GetType(String))
|
|
dt.Columns.Add("partner_haulier_id", GetType(Integer))
|
|
dt.Columns.Add("supplier_name", GetType(String))
|
|
dt.Columns.Add("transaction_country", GetType(String))
|
|
dt.Columns.Add("transaction_domain", GetType(String))
|
|
dt.Columns.Add("purchase_datetime", GetType(DateTime))
|
|
dt.Columns.Add("entry_point_name", GetType(String))
|
|
dt.Columns.Add("entry_datetime", GetType(DateTime))
|
|
dt.Columns.Add("exit_point_name", GetType(String))
|
|
dt.Columns.Add("exit_datetime", GetType(DateTime))
|
|
dt.Columns.Add("device_product_type", GetType(String))
|
|
dt.Columns.Add("device_product_number", GetType(String))
|
|
dt.Columns.Add("transaction_product_id", GetType(Integer))
|
|
dt.Columns.Add("transaction_product_name", GetType(String))
|
|
dt.Columns.Add("license_plate_number", GetType(String))
|
|
dt.Columns.Add("vehicle_country", GetType(String))
|
|
dt.Columns.Add("original_currency", GetType(String))
|
|
dt.Columns.Add("original_net_amount", GetType(Double))
|
|
dt.Columns.Add("original_gross_amount", GetType(Double))
|
|
dt.Columns.Add("original_vat_amount", GetType(Double))
|
|
dt.Columns.Add("original_vat_percentage", GetType(Double))
|
|
dt.Columns.Add("customer_currency", GetType(String))
|
|
dt.Columns.Add("transaction_net_amount", GetType(Double))
|
|
dt.Columns.Add("transaction_gross_amount", GetType(Double))
|
|
dt.Columns.Add("exempt_amount", GetType(Double))
|
|
dt.Columns.Add("msts_fee_amount", GetType(Double))
|
|
dt.Columns.Add("msts_vat_amount", GetType(Double))
|
|
dt.Columns.Add("msts_vat_percentage", GetType(Double))
|
|
dt.Columns.Add("total_gross_amount", GetType(Double))
|
|
dt.Columns.Add("transaction_status", GetType(String))
|
|
dt.Columns.Add("original_transaction_id", GetType(String))
|
|
dt.Columns.Add("loading_date", GetType(Date))
|
|
dt.Columns.Add("batch_seq_nr", GetType(Integer))
|
|
dt.Columns.Add("distance_km", GetType(Double))
|
|
dt.Columns.Add("USteuer_EUR", GetType(Double))
|
|
End If
|
|
While j < num
|
|
|
|
Dim transaction As Chilkat.JsonObject = transactions.ObjectAt(j)
|
|
|
|
Dim purchaseDate As New Chilkat.CkDateTime
|
|
Dim entryDate As New Chilkat.CkDateTime
|
|
Dim exitDate As New Chilkat.CkDateTime
|
|
Dim loadingDate As New Chilkat.CkDateTime
|
|
Dim getAsLocal As Boolean = False
|
|
Dim USteuer_EUR As Double = 0
|
|
|
|
Dim R As DataRow = dt.NewRow
|
|
R("transaction_id") = transaction.StringOf("transaction_id")
|
|
R("partner_haulier_id") = transaction.IntOf("partner_haulier_id")
|
|
R("supplier_name") = transaction.StringOf("supplier_name")
|
|
R("transaction_country") = transaction.StringOf("transaction_country")
|
|
R("transaction_domain") = transaction.StringOf("transaction_domain")
|
|
R("entry_point_name") = transaction.StringOf("entry_point_name")
|
|
R("exit_point_name") = transaction.StringOf("exit_point_name")
|
|
R("device_product_type") = transaction.StringOf("device_product_type")
|
|
|
|
If ((transaction.StringOf("device_product_type") = "" Or transaction.StringOf("device_product_type") = "null") And CDbl(transaction.StringOf("msts_fee_amount").Replace(".", ",")) <> 0) Then
|
|
R("device_product_type") = transaction.StringOf("transaction_product_name")
|
|
End If
|
|
|
|
If ((transaction.StringOf("device_product_type") = "" Or transaction.StringOf("device_product_type") = "null") And transaction.StringOf("transaction_product_name") = "Charge - HU-GO SIM card fee") Then
|
|
R("device_product_type") = transaction.StringOf("transaction_product_name")
|
|
End If
|
|
|
|
R("device_product_number") = transaction.StringOf("device_product_number")
|
|
R("transaction_product_id") = transaction.IntOf("transaction_product_id")
|
|
R("transaction_product_name") = transaction.StringOf("transaction_product_name")
|
|
R("license_plate_number") = transaction.StringOf("license_plate_number")
|
|
R("vehicle_country") = transaction.StringOf("vehicle_country")
|
|
R("original_currency") = transaction.StringOf("original_currency")
|
|
R("original_net_amount") = CDbl(transaction.StringOf("original_net_amount").Replace(".", ","))
|
|
R("original_gross_amount") = CDbl(transaction.StringOf("original_gross_amount").Replace(".", ","))
|
|
R("original_vat_percentage") = CDbl(IIf(transaction.StringOf("original_vat_percentage") = "null", 0, transaction.StringOf("original_vat_percentage").Replace(".", ",")))
|
|
R("transaction_net_amount") = CDbl(transaction.StringOf("transaction_net_amount").Replace(".", ","))
|
|
R("transaction_gross_amount") = CDbl(transaction.StringOf("transaction_gross_amount").Replace(".", ","))
|
|
R("exempt_amount") = CDbl(transaction.StringOf("exempt_amount").Replace(".", ","))
|
|
R("msts_fee_amount") = CDbl(transaction.StringOf("msts_fee_amount").Replace(".", ","))
|
|
R("msts_vat_amount") = CDbl(transaction.StringOf("msts_vat_amount").Replace(".", ","))
|
|
R("msts_vat_percentage") = CDbl(transaction.StringOf("msts_vat_percentage").Replace(".", ","))
|
|
R("total_gross_amount") = CDbl(transaction.StringOf("total_gross_amount").Replace(".", ","))
|
|
R("transaction_status") = transaction.StringOf("transaction_status")
|
|
R("batch_seq_nr") = transaction.StringOf("batch_seq_nr")
|
|
R("original_vat_amount") = CDbl(R("original_gross_amount") - R("original_net_amount"))
|
|
|
|
If (transaction.StringOf("original_currency") = "EUR" Or R("original_vat_amount") = 0) Then
|
|
USteuer_EUR = R("original_vat_amount")
|
|
Else
|
|
If transaction.StringOf("transaction_country") = "HU" Then
|
|
Dim curBruttobetragEUR = R("msts_fee_amount") + R("transaction_gross_amount")
|
|
Dim steuersatz = SQL.DLookup("1+[Steuersatz]", "[Länderverzeichnis für die Außenhandelsstatistik]", "[LandNr]=64", "FMZOLL")
|
|
Dim curNettobetragEUR = CInt(curBruttobetragEUR / steuersatz * 100 + 0.5) / 100
|
|
USteuer_EUR = Math.Round(curBruttobetragEUR - curNettobetragEUR, 2)
|
|
End If
|
|
End If
|
|
|
|
R("USteuer_EUR") = USteuer_EUR
|
|
'R("distance_km") = transaction.StringOf("distance_km")
|
|
|
|
|
|
Dim purchase_datetime_string As String = transaction.StringOf("purchase_datetime")
|
|
Dim entry_datetime_string As String = transaction.StringOf("entry_datetime")
|
|
Dim exit_datetime_string As String = transaction.StringOf("exit_datetime")
|
|
Dim loading_date_string As String = transaction.StringOf("loading_date")
|
|
|
|
Try
|
|
If purchase_datetime_string <> "" AndAlso purchase_datetime_string <> "null" Then R("purchase_datetime") = CDate(purchase_datetime_string)
|
|
If entry_datetime_string <> "" AndAlso entry_datetime_string <> "null" Then R("entry_datetime") = CDate(entry_datetime_string)
|
|
If exit_datetime_string <> "" AndAlso exit_datetime_string <> "null" Then R("exit_datetime") = CDate(exit_datetime_string)
|
|
If loading_date_string <> "" AndAlso loading_date_string <> "null" Then R("loading_date") = CDate(loading_date_string)
|
|
Catch ex As Exception
|
|
'VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
dt.Rows.Add(R)
|
|
|
|
|
|
If IIf(ignorePurchaseDate, True, CDate(R("purchase_datetime")) >= "30.05.2024") Then
|
|
|
|
Dim trans As New cMSETransactions()
|
|
trans.transaction_id = checkNullStr(R("transaction_id"))
|
|
trans.controller_id = receiver
|
|
trans.partner_haulier_id = checkNullInteger(R("partner_haulier_id"))
|
|
trans.supplier_name = checkNullStr(R("supplier_name"))
|
|
trans.transaction_country = checkNullStr(R("transaction_country"))
|
|
trans.transaction_domain = checkNullStr(R("transaction_domain"))
|
|
trans.purchase_datetime = checkNullDateNothing(R("purchase_datetime"))
|
|
trans.entry_point_name = checkNullStr(R("entry_point_name"))
|
|
trans.entry_datetime = checkNullDateNothing(R("entry_datetime"))
|
|
trans.exit_point_name = checkNullStr(R("exit_point_name"))
|
|
trans.exit_datetime = checkNullDateNothing(R("exit_datetime"))
|
|
trans.device_product_type = checkNullStr(R("device_product_type"))
|
|
trans.device_product_number = checkNullStr(R("device_product_number"))
|
|
trans.transaction_product_id = checkNullInteger(R("transaction_product_id"))
|
|
trans.transaction_product_name = checkNullStr(R("transaction_product_name"))
|
|
trans.license_plate_number = checkNullStr(R("license_plate_number"))
|
|
trans.vehicle_country = checkNullStr(R("vehicle_country"))
|
|
trans.original_currency = checkNullStr(R("original_currency"))
|
|
trans.original_net_amount = checkNulDbl(R("original_net_amount"))
|
|
trans.original_gross_amount = checkNulDbl(R("original_gross_amount"))
|
|
trans.original_vat_amount = checkNulDbl(R("original_vat_amount"))
|
|
trans.original_vat_percentage = checkNulDbl(R("original_vat_percentage"))
|
|
trans.transaction_net_amount = checkNulDbl(R("transaction_net_amount"))
|
|
trans.transaction_gross_amount = checkNulDbl(R("transaction_gross_amount"))
|
|
trans.msts_fee_amount = checkNulDbl(R("msts_fee_amount"))
|
|
trans.msts_vat_amount = checkNulDbl(R("msts_vat_amount"))
|
|
trans.total_gross_amount = checkNulDbl(R("total_gross_amount"))
|
|
trans.transaction_status = checkNullStr(R("transaction_status"))
|
|
trans.loading_date = checkNullDateNothing(R("loading_date"))
|
|
trans.batch_seq_nr = checkNullInteger(R("batch_seq_nr"))
|
|
trans.tstmp = Now()
|
|
trans.USteuer_EUR = checkNulDbl(R("USteuer_EUR"))
|
|
'trans.distance_km = CDbl(R("distance_km"))
|
|
trans.SAVE()
|
|
|
|
End If
|
|
|
|
|
|
|
|
j = j + 1
|
|
End While
|
|
|
|
|
|
dt = dt.DefaultView.ToTable()
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Public Sub saveSettlements(num As Integer, dt As DataTable, transactions As Chilkat.JsonArray, receiver As Integer)
|
|
|
|
|
|
Dim j As Integer = 0
|
|
|
|
If dt IsNot Nothing And Not dt.Columns.Contains("transaction_id") Then
|
|
|
|
dt.Columns.Add("transaction_id", GetType(String))
|
|
dt.Columns.Add("invoice_number", GetType(String))
|
|
dt.Columns.Add("invoice_date", GetType(String))
|
|
dt.Columns.Add("specification_page_id", GetType(String))
|
|
dt.Columns.Add("specification_page_name", GetType(String))
|
|
dt.Columns.Add("transaction_debit_or_credit", GetType(String))
|
|
dt.Columns.Add("original_transaction_id", GetType(String))
|
|
dt.Columns.Add("original_invoice_number", GetType(Integer))
|
|
dt.Columns.Add("original_invoice_date", GetType(String))
|
|
dt.Columns.Add("credit_comment", GetType(String))
|
|
End If
|
|
|
|
While j < num
|
|
|
|
Dim transaction As Chilkat.JsonObject = transactions.ObjectAt(j)
|
|
|
|
Dim R As DataRow = dt.NewRow
|
|
R("transaction_id") = checkNullStr(transaction.StringOf("transaction_id"))
|
|
R("invoice_number") = checkNullStr(transaction.StringOf("invoice_number"))
|
|
R("specification_page_id") = checkNullStr(transaction.StringOf("specification_page_id"))
|
|
R("specification_page_name") = checkNullStr(transaction.StringOf("specification_page_name"))
|
|
R("transaction_debit_or_credit") = checkNullStr(transaction.StringOf("transaction_debit_or_credit"))
|
|
R("original_transaction_id") = checkNullStr(transaction.StringOf("original_transaction_id"))
|
|
R("original_invoice_number") = checkNullInteger(transaction.StringOf("original_invoice_number"))
|
|
R("credit_comment") = checkNullStr(transaction.StringOf("credit_comment"))
|
|
|
|
|
|
Dim invoice_date_string As String = transaction.StringOf("invoice_date")
|
|
Dim original_invoice_date_string As String = transaction.StringOf("original_invoice_date")
|
|
|
|
|
|
Try
|
|
If invoice_date_string <> "" AndAlso invoice_date_string <> "null" Then R("invoice_date") = CDate(invoice_date_string)
|
|
If original_invoice_date_string <> "" AndAlso original_invoice_date_string <> "null" Then R("original_invoice_date") = CDate(original_invoice_date_string)
|
|
|
|
Catch ex As Exception
|
|
'VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
dt.Rows.Add(R)
|
|
|
|
Dim trans = New cMSESettlements(R("transaction_id"))
|
|
trans.invoice_number = checkNullStr(R("invoice_number"))
|
|
trans.invoice_date = checkNullDateNothing(R("invoice_date"))
|
|
trans.specification_page_id = checkNullStr(R("specification_page_id"))
|
|
trans.specification_page_name = checkNullStr(R("specification_page_name"))
|
|
trans.transaction_debit_or_credit = checkNullStr(R("transaction_debit_or_credit"))
|
|
trans.original_transaction_id = checkNullStr(R("original_transaction_id"))
|
|
trans.original_invoice_number = checkNullInteger(R("original_invoice_number"))
|
|
trans.original_invoice_date = checkNullDateNothing(R("original_invoice_date"))
|
|
trans.credit_comment = checkNullStr(R("credit_comment"))
|
|
trans.SAVE()
|
|
|
|
|
|
j = j + 1
|
|
|
|
End While
|
|
|
|
|
|
dt = dt.DefaultView.ToTable()
|
|
|
|
|
|
End Sub
|
|
|
|
Public Sub saveCustomers(num As Integer, dt As DataTable, customers As Chilkat.JsonArray)
|
|
|
|
Dim j As Integer = 0
|
|
|
|
If dt IsNot Nothing And Not dt.Columns.Contains("customer_id") Then
|
|
dt.Columns.Add("customer_id", GetType(Integer))
|
|
dt.Columns.Add("partner_customer_number", GetType(String))
|
|
dt.Columns.Add("customer_name", GetType(String))
|
|
dt.Columns.Add("vat_number", GetType(String))
|
|
dt.Columns.Add("alternative_vat_number", GetType(String))
|
|
dt.Columns.Add("coc_number", GetType(String))
|
|
dt.Columns.Add("partner_fleet_card_number", GetType(String))
|
|
End If
|
|
|
|
While j < num
|
|
|
|
Dim custom As Chilkat.JsonObject = customers.ObjectAt(j)
|
|
|
|
|
|
|
|
Dim R As DataRow = dt.NewRow
|
|
R("customer_id") = custom.IntOf("customer_id")
|
|
R("partner_customer_number") = custom.StringOf("partner_customer_number")
|
|
R("customer_name") = custom.StringOf("customer_name")
|
|
R("vat_number") = custom.StringOf("vat_number")
|
|
R("alternative_vat_number") = custom.StringOf("alternative_vat_number")
|
|
R("coc_number") = custom.StringOf("coc_number")
|
|
R("partner_fleet_card_number") = custom.StringOf("partner_fleet_card_number")
|
|
|
|
dt.Rows.Add(R)
|
|
|
|
|
|
|
|
Dim cust As New cMSECustomers(R("customer_id"))
|
|
cust.partner_customer_number = checkNullStr(R("partner_customer_number"))
|
|
cust.customer_name = checkNullStr(R("customer_name"))
|
|
cust.vat_number = checkNullStr(R("vat_number"))
|
|
cust.alternative_vat_number = checkNullStr(R("alternative_vat_number"))
|
|
cust.coc_number = checkNullStr(R("coc_number"))
|
|
cust.partner_fleet_card_number = checkNullStr(R("partner_fleet_card_number"))
|
|
cust.SAVE()
|
|
|
|
j = j + 1
|
|
End While
|
|
|
|
|
|
dt = dt.DefaultView.ToTable()
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
End Class
|
|
|
|
Public Class cMSEInvoices
|
|
Property id As Integer
|
|
Property name As Object = Nothing
|
|
Property total_amount_euro As Object = Nothing
|
|
Property total_vat_amount_euro As Object = Nothing
|
|
Property msts_vat_number As Object = Nothing
|
|
Property invoice_id As Object = Nothing
|
|
Property invoice_date As Object = Nothing
|
|
Property customer_number As Object = Nothing
|
|
Property country As Object = Nothing
|
|
|
|
Public hasEntry = False
|
|
|
|
Dim SQL As New SQL
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(name, invoice_id)
|
|
Me.name = name
|
|
Me.invoice_id = invoice_id
|
|
LOAD()
|
|
End Sub
|
|
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("name", name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("total_amount_euro", total_amount_euro))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("total_vat_amount_euro", total_vat_amount_euro))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("msts_vat_number", msts_vat_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("invoice_id", invoice_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("invoice_date", invoice_date))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("customer_number", customer_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("country", country))
|
|
|
|
Return list
|
|
End Function
|
|
|
|
|
|
|
|
Public Function SAVE() As Boolean
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblMSEInvoices WHERE name=@name AND invoice_id = @invoice_id) " &
|
|
" BEGIN " & getUpdateCmd() & " END " &
|
|
" Else " &
|
|
" BEGIN " & getInsertCmd() & " END " &
|
|
" commit tran "
|
|
|
|
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
|
|
End Function
|
|
|
|
Public Sub LOAD()
|
|
Try
|
|
hasEntry = False
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT * FROM tblMSEInvoices WHERE name=@name AND invoice_id = @invoice_id", conn)
|
|
cmd.Parameters.AddWithValue("@name", name)
|
|
cmd.Parameters.AddWithValue("@invoice_id", invoice_id)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each li In getParameterList()
|
|
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
|
|
|
|
If dr.Item(li.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(Me, Nothing)
|
|
Else
|
|
propInfo.SetValue(Me, dr.Item(li.Text))
|
|
End If
|
|
|
|
Next
|
|
hasEntry = True
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Public Function getUpdateCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim str As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
Return (" UPDATE tblMSEInvoices SET " & str & " WHERE name=@name AND invoice_id = @invoice_id ")
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
Public Function getInsertCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim str As String = ""
|
|
Dim values As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "],"
|
|
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
values = values.Substring(0, values.Length - 1) 'wg. ','
|
|
Return (" INSERT INTO tblMSEInvoices (" & str & ") VALUES(" & values & ") ")
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
End Class
|
|
|
|
Public Class cMSETransactions
|
|
|
|
Property transaction_id As Object = Nothing
|
|
Property controller_id As Integer
|
|
Property partner_haulier_id As Object = Nothing
|
|
Property supplier_name As Object = Nothing
|
|
Property transaction_country As Object = Nothing
|
|
Property transaction_domain As Object = Nothing
|
|
Property purchase_datetime As Object = Nothing
|
|
Property entry_point_name As Object = Nothing
|
|
Property entry_datetime As Object = Nothing
|
|
Property exit_point_name As Object = Nothing
|
|
Property exit_datetime As Object = Nothing
|
|
Property device_product_type As Object = Nothing
|
|
Property device_product_number As Object = Nothing
|
|
Property transaction_product_id As Object = Nothing
|
|
Property transaction_product_name As Object = Nothing
|
|
Property license_plate_number As Object = Nothing
|
|
Property vehicle_country As Object = Nothing
|
|
Property original_currency As Object = Nothing
|
|
Property original_net_amount As Object = Nothing
|
|
Property original_gross_amount As Object = Nothing
|
|
Property original_vat_amount As Object = Nothing
|
|
Property original_vat_percentage As Object = Nothing
|
|
Property customer_currency As Object = Nothing
|
|
Property transaction_net_amount As Object = Nothing
|
|
Property transaction_gross_amount As Object = Nothing
|
|
Property exempt_amount As Object = Nothing
|
|
Property msts_fee_amount As Object = Nothing
|
|
Property msts_vat_amount As Object = Nothing
|
|
Property msts_vat_percentage As Object = Nothing
|
|
Property total_gross_amount As Object = Nothing
|
|
Property transaction_status As Object = Nothing
|
|
Property loading_date As Object = Nothing
|
|
Property batch_seq_nr As Object = Nothing
|
|
Property distance_km As Object = Nothing
|
|
Property tstmp As Object = Nothing
|
|
Property USteuer_EUR As Object = Nothing
|
|
Property charged As Boolean = False
|
|
Property chargedDatetime As Object = Nothing
|
|
|
|
Public hasEntry = False
|
|
|
|
Dim SQL As New SQL
|
|
|
|
Sub New()
|
|
End Sub
|
|
|
|
Sub New(transaction_id)
|
|
Me.transaction_id = transaction_id
|
|
LOAD()
|
|
End Sub
|
|
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_id", transaction_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("controller_id", controller_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("partner_haulier_id", partner_haulier_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("supplier_name", supplier_name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_country", transaction_country))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_domain", transaction_domain))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("purchase_datetime", purchase_datetime))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("entry_point_name", entry_point_name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("entry_datetime", entry_datetime))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("exit_point_name", exit_point_name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("exit_datetime", exit_datetime))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("device_product_type", device_product_type))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("device_product_number", device_product_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_product_id", transaction_product_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_product_name", transaction_product_name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("license_plate_number", license_plate_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vehicle_country", vehicle_country))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_currency", original_currency))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_net_amount", original_net_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_gross_amount", original_gross_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_vat_amount", original_vat_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_vat_percentage", original_vat_percentage))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("customer_currency", customer_currency))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_net_amount", transaction_net_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_gross_amount", transaction_gross_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("exempt_amount", exempt_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("msts_fee_amount", msts_fee_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("msts_vat_amount", msts_vat_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("msts_vat_percentage", msts_vat_percentage))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("total_gross_amount", total_gross_amount))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_status", transaction_status))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("loading_date", loading_date))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("batch_seq_nr", batch_seq_nr))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("distance_km", distance_km))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("tstmp", tstmp))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("USteuer_EUR", USteuer_EUR))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("charged", charged))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("chargedDatetime", chargedDatetime))
|
|
|
|
|
|
Return list
|
|
End Function
|
|
|
|
|
|
|
|
Public Function SAVE() As Boolean
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblMSETransactions WHERE transaction_id=@transaction_id) " &
|
|
" BEGIN " & getUpdateCmd() & " END " &
|
|
" Else " &
|
|
" BEGIN " & getInsertCmd() & " END " &
|
|
" commit tran "
|
|
|
|
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
|
|
End Function
|
|
|
|
Public Sub LOAD()
|
|
Try
|
|
hasEntry = False
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT * FROM tblMSETransactions WHERE transaction_id=@transaction_id", conn)
|
|
cmd.Parameters.AddWithValue("@transaction_id", transaction_id)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each li In getParameterList()
|
|
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
|
|
|
|
If dr.Item(li.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(Me, Nothing)
|
|
Else
|
|
propInfo.SetValue(Me, dr.Item(li.Text))
|
|
End If
|
|
|
|
Next
|
|
hasEntry = True
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Public Function getUpdateCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim str As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
Return (" UPDATE tblMSETransactions SET " & str & " WHERE transaction_id=@transaction_id and charged <> 1")
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
Public Function getInsertCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim str As String = ""
|
|
Dim values As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "],"
|
|
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
values = values.Substring(0, values.Length - 1) 'wg. ','
|
|
Return (" INSERT INTO tblMSETransactions (" & str & ") VALUES(" & values & ") ")
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
End Class
|
|
|
|
Public Class cMSESettlements
|
|
|
|
Property transaction_id As Object = Nothing
|
|
Property invoice_number As Object = Nothing
|
|
Property invoice_date As Object = Nothing
|
|
Property specification_page_id As Object = Nothing
|
|
Property specification_page_name As Object = Nothing
|
|
Property transaction_debit_or_credit As Object = Nothing
|
|
Property original_transaction_id As Object = Nothing
|
|
Property original_invoice_number As Object = Nothing
|
|
Property original_invoice_date As Object = Nothing
|
|
Property credit_comment As Object = Nothing
|
|
|
|
|
|
Public hasEntry = False
|
|
|
|
Dim SQL As New SQL
|
|
|
|
Sub New()
|
|
End Sub
|
|
|
|
Sub New(transaction_id)
|
|
Me.transaction_id = transaction_id
|
|
LOAD()
|
|
End Sub
|
|
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_id", transaction_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("invoice_number", invoice_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("invoice_date", invoice_date))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("specification_page_id", specification_page_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("specification_page_name", specification_page_name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transaction_debit_or_credit", transaction_debit_or_credit))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_transaction_id", original_transaction_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_invoice_number", original_invoice_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("original_invoice_date", original_invoice_date))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("credit_comment", credit_comment))
|
|
|
|
Return list
|
|
End Function
|
|
|
|
|
|
|
|
Public Function SAVE() As Boolean
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblMSESettlements WHERE transaction_id=@transaction_id) " &
|
|
" BEGIN " & getUpdateCmd() & " END " &
|
|
" Else " &
|
|
" BEGIN " & getInsertCmd() & " END " &
|
|
" commit tran "
|
|
|
|
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
|
|
End Function
|
|
|
|
Public Sub LOAD()
|
|
Try
|
|
hasEntry = False
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT * FROM tblMSESettlements WHERE transaction_id=@transaction_id", conn)
|
|
cmd.Parameters.AddWithValue("@transaction_id", transaction_id)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each li In getParameterList()
|
|
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
|
|
|
|
If dr.Item(li.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(Me, Nothing)
|
|
Else
|
|
propInfo.SetValue(Me, dr.Item(li.Text))
|
|
End If
|
|
|
|
Next
|
|
hasEntry = True
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Public Function getUpdateCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim str As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
Return (" UPDATE tblMSESettlements SET " & str & " WHERE transaction_id=@transaction_id")
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
Public Function getInsertCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim str As String = ""
|
|
Dim values As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "],"
|
|
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
values = values.Substring(0, values.Length - 1) 'wg. ','
|
|
Return (" INSERT INTO tblMSESettlements (" & str & ") VALUES(" & values & ") ")
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
End Class
|
|
|
|
Public Class cMSECustomers
|
|
|
|
Property customer_id As Object = Nothing
|
|
Property partner_customer_number As Object = Nothing
|
|
Property customer_name As Object = Nothing
|
|
Property vat_number As Object = Nothing
|
|
Property alternative_vat_number As Object = Nothing
|
|
Property coc_number As Object = Nothing
|
|
Property partner_fleet_card_number As Object = Nothing
|
|
|
|
Public hasEntry = False
|
|
|
|
Dim SQL As New SQL
|
|
|
|
Sub New()
|
|
End Sub
|
|
|
|
Sub New(customer_id)
|
|
Me.customer_id = customer_id
|
|
LOAD()
|
|
End Sub
|
|
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("customer_id", customer_id))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("partner_customer_number", partner_customer_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("customer_name", customer_name))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vat_number", vat_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("alternative_vat_number", alternative_vat_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("coc_number", coc_number))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("partner_fleet_card_number", partner_fleet_card_number))
|
|
|
|
Return list
|
|
End Function
|
|
|
|
|
|
|
|
Public Function SAVE() As Boolean
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblMSECustomers WHERE customer_id=@customer_id) " &
|
|
" BEGIN " & getUpdateCmd() & " END " &
|
|
" Else " &
|
|
" BEGIN " & getInsertCmd() & " END " &
|
|
" commit tran "
|
|
|
|
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
|
|
End Function
|
|
|
|
Public Sub LOAD()
|
|
Try
|
|
hasEntry = False
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT * FROM tblMSECustomers WHERE customer_id=@customer_id", conn)
|
|
cmd.Parameters.AddWithValue("@customer_id", customer_id)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each li In getParameterList()
|
|
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
|
|
|
|
If dr.Item(li.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(Me, Nothing)
|
|
Else
|
|
propInfo.SetValue(Me, dr.Item(li.Text))
|
|
End If
|
|
|
|
Next
|
|
hasEntry = True
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Public Function getUpdateCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim str As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
Return (" UPDATE tblMSECustomers SET " & str & " WHERE customer_id=@customer_id")
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
Public Function getInsertCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim str As String = ""
|
|
Dim values As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "],"
|
|
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
values = values.Substring(0, values.Length - 1) 'wg. ','
|
|
Return (" INSERT INTO tblMSECustomers (" & str & ") VALUES(" & values & ") ")
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
End Class
|