Creditsafe, Barverkauf Fiskaltrust, etc.
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
Imports System.Net.Http
|
Imports System.Data.SqlClient
|
||||||
|
Imports System.Net.Http
|
||||||
|
Imports System.Reflection
|
||||||
Imports System.Text
|
Imports System.Text
|
||||||
Imports System.Threading
|
|
||||||
Imports DocumentFormat.OpenXml.Drawing
|
|
||||||
Imports DocumentFormat.OpenXml.Wordprocessing
|
|
||||||
Imports Newtonsoft.Json
|
Imports Newtonsoft.Json
|
||||||
|
|
||||||
Public Class cFiskaltrustClient
|
Public Class cFiskaltrustClient
|
||||||
@@ -26,7 +25,7 @@ Public Class cFiskaltrustClient
|
|||||||
' ================================
|
' ================================
|
||||||
Public Async Function SignReceiptAsync(amount As Double, vat As Double, POS As List(Of EABelegPositionen)) As Task(Of String)
|
Public Async Function SignReceiptAsync(amount As Double, vat As Double, POS As List(Of EABelegPositionen)) As Task(Of String)
|
||||||
|
|
||||||
Dim payload = BuildPayload(amount, vat, POS)
|
Dim payload = BuildPayloadReceipt(amount, vat, POS)
|
||||||
Dim endpoint = GetEndpoint("payment")
|
Dim endpoint = GetEndpoint("payment")
|
||||||
|
|
||||||
Dim requestContent As StringContent
|
Dim requestContent As StringContent
|
||||||
@@ -46,6 +45,60 @@ Public Class cFiskaltrustClient
|
|||||||
Return Await SendAsync(endpoint, payload, requestContent)
|
Return Await SendAsync(endpoint, payload, requestContent)
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Async Function SignNullReceiptAsync() As Task(Of String)
|
||||||
|
|
||||||
|
Dim payload = BuildPayloadNullReceipt()
|
||||||
|
Dim endpoint = GetEndpoint("payment")
|
||||||
|
|
||||||
|
Dim requestContent As StringContent
|
||||||
|
|
||||||
|
If _country = "AT" Then
|
||||||
|
' Plaintext
|
||||||
|
Dim text As String = If(payload?.ToString(), "")
|
||||||
|
Dim json As String = JsonConvert.SerializeObject(text)
|
||||||
|
requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
|
||||||
|
Else
|
||||||
|
' JSON Objekt
|
||||||
|
|
||||||
|
Dim json As String = JsonConvert.SerializeObject(payload)
|
||||||
|
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Await SendAsync(endpoint, payload, requestContent)
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Async Function Journal(type As String) As Task(Of String)
|
||||||
|
|
||||||
|
|
||||||
|
Dim payload = ""
|
||||||
|
Dim endpoint = GetEndpoint("journal")
|
||||||
|
|
||||||
|
If type > 0 Then
|
||||||
|
endpoint &= "?type=" & type
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim requestContent As StringContent
|
||||||
|
|
||||||
|
If _country = "AT" Then
|
||||||
|
' Plaintext
|
||||||
|
Dim text As String = If(payload?.ToString(), "")
|
||||||
|
Dim json As String = JsonConvert.SerializeObject(text)
|
||||||
|
requestContent = New StringContent(json, Encoding.UTF8, "text/plain")
|
||||||
|
Else
|
||||||
|
' JSON Objekt
|
||||||
|
|
||||||
|
Dim json As String = JsonConvert.SerializeObject(payload)
|
||||||
|
requestContent = New StringContent(json, Encoding.UTF8, "application/json")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Await SendAsync(endpoint, payload, requestContent)
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Public Async Function SignReceiptAsync_test() As Task(Of String)
|
Public Async Function SignReceiptAsync_test() As Task(Of String)
|
||||||
|
|
||||||
Dim LIST = New List(Of EABelegPositionen)
|
Dim LIST = New List(Of EABelegPositionen)
|
||||||
@@ -63,7 +116,7 @@ Public Class cFiskaltrustClient
|
|||||||
p.Anzahl = 1
|
p.Anzahl = 1
|
||||||
LIST.Add(p)
|
LIST.Add(p)
|
||||||
|
|
||||||
Dim payload = BuildPayload(100, 0, LIST)
|
Dim payload = BuildPayloadReceipt(100, 0, LIST)
|
||||||
Dim endpoint = GetEndpoint("payment")
|
Dim endpoint = GetEndpoint("payment")
|
||||||
|
|
||||||
Dim requestContent As StringContent
|
Dim requestContent As StringContent
|
||||||
@@ -116,7 +169,22 @@ Public Class cFiskaltrustClient
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
' Optional: Storno Beispiel
|
' Optional: Storno Beispiel
|
||||||
Public Async Function CancelReceiptAsync(reference As String) As Task(Of String)
|
'reference unique id!
|
||||||
|
Public Async Function CancelReceiptAsync(reference As String, POS As List(Of EABelegPositionen), amount As Double) As Task(Of String)
|
||||||
|
|
||||||
|
|
||||||
|
' ChargeItems Liste vorbereiten
|
||||||
|
Dim chargeItems = New List(Of Object)
|
||||||
|
|
||||||
|
For Each p In POS
|
||||||
|
chargeItems.Add(New With {
|
||||||
|
.Quantity = p.Anzahl,
|
||||||
|
.Amount = p.Preis,
|
||||||
|
.VATRate = 0,
|
||||||
|
.Description = p.LeistungsBez,
|
||||||
|
.ftChargeItemCase = 4919338167972134929
|
||||||
|
})
|
||||||
|
Next
|
||||||
|
|
||||||
Dim payload = New With {
|
Dim payload = New With {
|
||||||
.ftCashBoxID = _cashboxId,
|
.ftCashBoxID = _cashboxId,
|
||||||
@@ -124,8 +192,18 @@ Public Class cFiskaltrustClient
|
|||||||
.cbTerminalID = "T1",
|
.cbTerminalID = "T1",
|
||||||
.cbReceiptReference = reference,
|
.cbReceiptReference = reference,
|
||||||
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
|
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
|
||||||
.ftReceiptCase = 4919338172267102210 ' Storno
|
.ftReceiptCase = 4919338172267102210,
|
||||||
|
.cbChargeItems = chargeItems,
|
||||||
|
.cbPayItems = New Object() {
|
||||||
|
New With {
|
||||||
|
.Quantity = 1.0,
|
||||||
|
.Amount = amount,
|
||||||
|
.Description = "Cash",
|
||||||
|
.ftPayItemCase = 4919338167972134913
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Dim requestContent As StringContent
|
Dim requestContent As StringContent
|
||||||
|
|
||||||
@@ -164,7 +242,10 @@ Public Class cFiskaltrustClient
|
|||||||
request.Headers.Add("cashboxid", _cashboxId)
|
request.Headers.Add("cashboxid", _cashboxId)
|
||||||
request.Headers.Add("accesstoken", _accessToken)
|
request.Headers.Add("accesstoken", _accessToken)
|
||||||
|
|
||||||
|
If payload <> "" Then
|
||||||
request.Content = requestContent
|
request.Content = requestContent
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
Dim response = Await _httpClient.SendAsync(request)
|
Dim response = Await _httpClient.SendAsync(request)
|
||||||
Dim result = Await response.Content.ReadAsStringAsync()
|
Dim result = Await response.Content.ReadAsStringAsync()
|
||||||
@@ -210,7 +291,7 @@ Public Class cFiskaltrustClient
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Private Function BuildPayload(amount As Double, vat As Double, POS As List(Of EABelegPositionen)) As Object
|
Private Function BuildPayloadReceipt(amount As Double, vat As Double, POS As List(Of EABelegPositionen)) As Object
|
||||||
|
|
||||||
' ChargeItems Liste vorbereiten
|
' ChargeItems Liste vorbereiten
|
||||||
Dim chargeItems = New List(Of Object)
|
Dim chargeItems = New List(Of Object)
|
||||||
@@ -248,6 +329,24 @@ Public Class cFiskaltrustClient
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function BuildPayloadNullReceipt() As Object
|
||||||
|
|
||||||
|
Dim payload = New With {
|
||||||
|
.ftCashBoxID = _cashboxId,
|
||||||
|
.ftPosSystemId = "POS-1",
|
||||||
|
.cbTerminalID = "T1",
|
||||||
|
.cbReceiptReference = "ZeroReceiptAfterFailure",
|
||||||
|
.cbReceiptMoment = DateTime.UtcNow.ToString("o"),
|
||||||
|
.cbChargeItems = New Object() {},
|
||||||
|
.cbPayItems = New Object() {},
|
||||||
|
.ftReceiptCase = 4919338172267102210
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Return payload
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Private Function GetEndpoint(type As String) As String
|
Private Function GetEndpoint(type As String) As String
|
||||||
|
|
||||||
@@ -274,6 +373,17 @@ Public Class cFiskaltrustClient
|
|||||||
Throw New Exception("Unsupported country")
|
Throw New Exception("Unsupported country")
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
|
ElseIf type = "journal" Then
|
||||||
|
|
||||||
|
Select Case _country
|
||||||
|
Case "DE"
|
||||||
|
Return "/json/v0/Journal"
|
||||||
|
Case "AT"
|
||||||
|
Return "/json/Journal"
|
||||||
|
Case Else
|
||||||
|
Throw New Exception("Unsupported country")
|
||||||
|
End Select
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
@@ -282,8 +392,408 @@ Public Class cFiskaltrustClient
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function saveRKSV_FT(ByRef result_zahlung As String, ByRef QR_CodeString As String) As Boolean
|
||||||
|
|
||||||
|
If result_zahlung <> "" Then
|
||||||
|
Dim json As New Chilkat.JsonObject
|
||||||
|
Dim success As Boolean = json.Load(result_zahlung)
|
||||||
|
If (success <> True) Then
|
||||||
|
Debug.WriteLine(json.LastErrorText)
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim ftSig As New cFiskaltrustSignatures()
|
||||||
|
|
||||||
|
Dim ftReceiptMoment As New Chilkat.CkDateTime
|
||||||
|
Dim dt As New Chilkat.DtObj
|
||||||
|
Dim getAsLocal As Boolean = False
|
||||||
|
|
||||||
|
Dim ftID As Integer = -1
|
||||||
|
|
||||||
|
success = json.DateOf("ftReceiptMoment", ftReceiptMoment)
|
||||||
|
Debug.WriteLine(ftReceiptMoment.GetAsTimestamp(getAsLocal))
|
||||||
|
|
||||||
|
With ftSig
|
||||||
|
|
||||||
|
.ftCashBoxID = json.StringOf("ftCashBoxID")
|
||||||
|
.ftQueueID = json.StringOf("ftQueueID")
|
||||||
|
.ftQueueItemID = json.StringOf("ftQueueItemID")
|
||||||
|
.ftQueueRow = json.IntOf("ftQueueRow")
|
||||||
|
.cbTerminalID = json.StringOf("cbTerminalID")
|
||||||
|
.cbReceiptReference = json.StringOf("cbReceiptReference")
|
||||||
|
.ftCashBoxIdentification = json.StringOf("ftCashBoxIdentification")
|
||||||
|
.ftReceiptIdentification = json.StringOf("ftReceiptIdentification")
|
||||||
|
.ftReceiptMoment = ftReceiptMoment.GetAsTimestamp(getAsLocal)
|
||||||
|
.ftState = json.StringOf("ftState")
|
||||||
|
ftID = .SAVE()
|
||||||
|
|
||||||
|
End With
|
||||||
|
|
||||||
|
|
||||||
|
Dim num As Integer = json.SizeOfArray("ftSignatures")
|
||||||
|
If num = 0 Then
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim Signatures As Chilkat.JsonArray = json.ArrayOf("ftSignatures")
|
||||||
|
If (json.LastMethodSuccess = False) Then
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim numSignatures As Integer = Signatures.Size
|
||||||
|
|
||||||
|
For i = 0 To numSignatures
|
||||||
|
|
||||||
|
While i < numSignatures
|
||||||
|
|
||||||
|
Dim SignObj As Chilkat.JsonObject = Signatures.ObjectAt(i)
|
||||||
|
Dim ftSigPos As New cFiskaltrustSignaturPositions()
|
||||||
|
|
||||||
|
With ftSigPos
|
||||||
|
.ftSignatures = ftSig.ft_id
|
||||||
|
.ftData = SignObj.StringOf("Data")
|
||||||
|
.ftSignatureFormat = SignObj.StringOf("ftSignatureFormat")
|
||||||
|
.ftSignatureType = SignObj.StringOf("ftSignatureType")
|
||||||
|
.SAVE()
|
||||||
|
If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = 3 Then
|
||||||
|
QR_CodeString = .ftData
|
||||||
|
End If
|
||||||
|
|
||||||
|
End With
|
||||||
|
|
||||||
|
i = i + 1
|
||||||
|
End While
|
||||||
|
Next
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Function exportJournal(ByRef result_Journal As String) As Boolean
|
||||||
|
|
||||||
|
If result_Journal <> "" Then
|
||||||
|
Dim jsonArr As New Chilkat.JsonArray
|
||||||
|
Dim success As Boolean = jsonArr.Load(result_Journal)
|
||||||
|
If (success <> True) Then
|
||||||
|
Debug.WriteLine(jsonArr.LastErrorText)
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
Dim dt As New DataTable
|
||||||
|
|
||||||
|
dt.Columns.Add("ftReceiptJournalId", GetType(String))
|
||||||
|
dt.Columns.Add("ftReceiptMoment", GetType(String))
|
||||||
|
dt.Columns.Add("ftReceiptNumber", GetType(String))
|
||||||
|
dt.Columns.Add("ftReceiptTotal", GetType(String))
|
||||||
|
dt.Columns.Add("ftQueueId", GetType(String))
|
||||||
|
dt.Columns.Add("ftReceiptHash", GetType(String))
|
||||||
|
dt.Columns.Add("ftQueueItemId", GetType(String))
|
||||||
|
dt.Columns.Add("TimeStamp", GetType(String))
|
||||||
|
|
||||||
|
Dim i = 0
|
||||||
|
Dim num As Integer = jsonArr.Size
|
||||||
|
If num = 0 Then
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim tmstmp As New Chilkat.CkDateTime
|
||||||
|
Dim getAsLocal As Boolean = False
|
||||||
|
|
||||||
|
|
||||||
|
While i < num
|
||||||
|
|
||||||
|
Dim SignObj As Chilkat.JsonObject = jsonArr.ObjectAt(i)
|
||||||
|
Dim R As DataRow = dt.NewRow
|
||||||
|
|
||||||
|
With SignObj
|
||||||
|
|
||||||
|
R("ftReceiptJournalId") = .StringOf("ftReceiptJournalId")
|
||||||
|
R("ftReceiptMoment") = .StringOf("ftReceiptMoment")
|
||||||
|
R("ftReceiptNumber") = .IntOf("ftReceiptNumber")
|
||||||
|
R("ftReceiptTotal") = .StringOf("ftReceiptTotal")
|
||||||
|
R("ftQueueId") = .StringOf("ftQueueId")
|
||||||
|
R("ftQueueItemId") = .StringOf("ftQueueItemId")
|
||||||
|
R("ftReceiptHash") = .StringOf("ftReceiptHash")
|
||||||
|
R("TimeStamp") = tmstmp.GetAsTimestamp(getAsLocal)
|
||||||
|
|
||||||
|
End With
|
||||||
|
|
||||||
|
dt.Rows.Add(R)
|
||||||
|
|
||||||
|
i = i + 1
|
||||||
|
End While
|
||||||
|
|
||||||
|
If dt.Rows.Count > 0 Then
|
||||||
|
|
||||||
|
Dim Path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt)
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Private Sub Log(message As String)
|
Private Sub Log(message As String)
|
||||||
Console.WriteLine(message)
|
Console.WriteLine(message)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
Public Class cFiskaltrustSignatures
|
||||||
|
|
||||||
|
Property ft_id As Integer
|
||||||
|
Property ftQueueID As Object = Nothing
|
||||||
|
Property ftQueueItemID As Object = Nothing
|
||||||
|
Property ftQueueRow As Object = Nothing
|
||||||
|
Property ftCashBoxIdentification As Object = Nothing
|
||||||
|
Property ftReceiptIdentification As Object = Nothing
|
||||||
|
Property ftReceiptMoment As Object = Nothing
|
||||||
|
Property ftState As Object = Nothing
|
||||||
|
Property ftCashBoxID As Object = Nothing
|
||||||
|
Property cbTerminalID As Object = Nothing
|
||||||
|
Property cbReceiptReference As Object = Nothing
|
||||||
|
|
||||||
|
|
||||||
|
Public hasEntry = False
|
||||||
|
|
||||||
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub New(ft_id)
|
||||||
|
Me.ft_id = ft_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("ft_id", ft_id,, True))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftQueueID", ftQueueID))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftQueueItemID", ftQueueItemID))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftQueueRow", ftQueueRow))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftCashBoxIdentification", ftCashBoxIdentification))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftReceiptIdentification", ftReceiptIdentification))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftReceiptMoment", ftReceiptMoment))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftState", ftState))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftCashBoxID", ftCashBoxID))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cbTerminalID", cbTerminalID))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cbReceiptReference", cbReceiptReference))
|
||||||
|
|
||||||
|
Return list
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Public Function SAVE() As Boolean
|
||||||
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||||
|
Dim sqlstr = " BEGIN " & getInsertCmd() & " END " '&
|
||||||
|
'" commit tran "
|
||||||
|
|
||||||
|
Dim id = SQL.doSQLVarListID(ft_id, sqlstr, "FMZOLL", , list)
|
||||||
|
Me.ft_id = id
|
||||||
|
Return id > 0
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Sub LOAD()
|
||||||
|
Try
|
||||||
|
hasEntry = False
|
||||||
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||||
|
Using cmd As New SqlCommand("SELECT * FROM tblRKSV_FT WHERE ft_id=@ft_id ", conn)
|
||||||
|
cmd.Parameters.AddWithValue("@ft_id", ft_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 [tblTABLE] SET " & str & " WHERE _BASE_id=@_BASE_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 tblRKSV_FT (" & 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 cFiskaltrustSignaturPositions
|
||||||
|
|
||||||
|
Property ftSignatures As Integer
|
||||||
|
Property ftSignatureFormat As Object = Nothing
|
||||||
|
Property ftSignatureType As Object = Nothing
|
||||||
|
Property ftData As Object = Nothing
|
||||||
|
|
||||||
|
|
||||||
|
Public hasEntry = False
|
||||||
|
|
||||||
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||||
|
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub New(ftSignatures, ftSignatureType)
|
||||||
|
Me.ftSignatures = ftSignatures
|
||||||
|
Me.ftSignatureType = ftSignatureType
|
||||||
|
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("ftSignatures", ftSignatures))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftSignatureFormat", ftSignatureFormat))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftSignatureType", ftSignatureType))
|
||||||
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftData", ftData))
|
||||||
|
|
||||||
|
Return list
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Public Function SAVE() As Boolean
|
||||||
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
||||||
|
|
||||||
|
Dim sqlstr = " 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 tblRKSV_FTSignatures WHERE ftSignatures=@ftSignatures AND ftSignatureType = @ftSignatureType ", conn)
|
||||||
|
cmd.Parameters.AddWithValue("@ftSignatures", ftSignatures)
|
||||||
|
cmd.Parameters.AddWithValue("@ftSignatureType", ftSignatureType)
|
||||||
|
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 [tblTABLE] SET " & str & " WHERE _BASE_id=@_BASE_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 tblRKSV_FTSignatures (" & 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
|
||||||
@@ -92,7 +92,7 @@ Public Class cRKSV
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Shared Function insertRKSVFiskaltrust(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, POS As List(Of EABelegPositionen)) As Boolean
|
Shared Async Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, CompanyGUID As String, ByVal umsatzZaehler As Double, ByVal belegDat As DateTime, ByVal steuerSchluessel As Integer, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, POS As List(Of EABelegPositionen), QR_CodeString As String, LastJWS As String) As Task(Of Boolean)
|
||||||
Try
|
Try
|
||||||
|
|
||||||
|
|
||||||
@@ -126,10 +126,9 @@ Public Class cRKSV
|
|||||||
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
|
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
|
||||||
|
|
||||||
Dim countryID As String
|
Dim countryID As String
|
||||||
|
|
||||||
Dim client As New cFiskaltrustClient(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
|
Dim client As New cFiskaltrustClient(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
|
||||||
|
Dim result = Await client.SignReceiptAsync(summeBRUTTO, steuersatz, POS)
|
||||||
Dim result = client.SignReceiptAsync(summeBRUTTO, steuersatz, POS)
|
client.saveRKSV_FT(result, QR_CodeString)
|
||||||
|
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
|||||||
@@ -189,10 +189,12 @@ Public Class usrcntlCreditsafe
|
|||||||
Dim o As Form = Me.FindForm
|
Dim o As Form = Me.FindForm
|
||||||
' If Me.Parent.GetType() Is GetType(Form) Then o = Me.FindForm
|
' If Me.Parent.GetType() Is GetType(Form) Then o = Me.FindForm
|
||||||
|
|
||||||
|
Dim Land As String = cboLand._value
|
||||||
|
|
||||||
For Each row As DataGridViewRow In dgvCreditsafe.SelectedRows
|
For Each row As DataGridViewRow In dgvCreditsafe.SelectedRows
|
||||||
comp = New Company(IIf(IsDBNull(row.Cells("name").Value), "", row.Cells("name").Value),
|
comp = New Company(IIf(IsDBNull(row.Cells("name").Value), "", row.Cells("name").Value),
|
||||||
IIf(IsDBNull(row.Cells("vatNo").Value), "", row.Cells("vatNo").Value),
|
IIf(IsDBNull(row.Cells("vatNo").Value), "", row.Cells("vatNo").Value),
|
||||||
(cboLand._value),
|
(Land),
|
||||||
IIf(IsDBNull(row.Cells("safeNo").Value), "", row.Cells("safeNo").Value),
|
IIf(IsDBNull(row.Cells("safeNo").Value), "", row.Cells("safeNo").Value),
|
||||||
IIf(IsDBNull(row.Cells("regNo").Value), "", row.Cells("regNo").Value),
|
IIf(IsDBNull(row.Cells("regNo").Value), "", row.Cells("regNo").Value),
|
||||||
IIf(IsDBNull(row.Cells("street").Value), "", row.Cells("street").Value),
|
IIf(IsDBNull(row.Cells("street").Value), "", row.Cells("street").Value),
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.5.5.2")>
|
<Assembly: AssemblyVersion("1.5.5.3")>
|
||||||
<Assembly: AssemblyFileVersion("1.5.5.2")>
|
<Assembly: AssemblyFileVersion("1.5.5.3")>
|
||||||
|
|||||||
@@ -596,7 +596,7 @@ Public Class usrCntlATLAS_NCTS004
|
|||||||
If Not ncts_OUT.SAVE_ALL() Then Exit Sub
|
If Not ncts_OUT.SAVE_ALL() Then Exit Sub
|
||||||
|
|
||||||
Dim saveFile = ""
|
Dim saveFile = ""
|
||||||
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(ncts_OUT, saveFile, cboDakosyAction._value, Application.StartupPath) Then
|
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(ncts_OUT, saveFile, cboDakosyAction._value, Application.StartupPath, cDy_ART) Then
|
||||||
If saveFile <> "" Then
|
If saveFile <> "" Then
|
||||||
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
|
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
|
||||||
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
|
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
|
||||||
@@ -697,7 +697,7 @@ Public Class usrCntlATLAS_NCTS004
|
|||||||
If vbYes = MsgBox("Erfolgreich erstellt! Soll(en) die Ausfuhr-Gestellung(en) abgeschickt werden?", vbYesNoCancel) Then
|
If vbYes = MsgBox("Erfolgreich erstellt! Soll(en) die Ausfuhr-Gestellung(en) abgeschickt werden?", vbYesNoCancel) Then
|
||||||
|
|
||||||
Dim saveFile = ""
|
Dim saveFile = ""
|
||||||
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, cboDakosyAction._value, Application.StartupPath) Then
|
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, cboDakosyAction._value, Application.StartupPath, cDy_ART) Then
|
||||||
If saveFile <> "" Then
|
If saveFile <> "" Then
|
||||||
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
|
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
|
||||||
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
|
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
|
||||||
|
|||||||
@@ -627,9 +627,6 @@ Public Class frmBU_Mahnlauf
|
|||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dim MahnTEXT_VOR = ""
|
Dim MahnTEXT_VOR = ""
|
||||||
Dim MahnTEXT_NACH = ""
|
Dim MahnTEXT_NACH = ""
|
||||||
Dim MAHNTEXT As String = "Zahlungserinnerung"
|
Dim MAHNTEXT As String = "Zahlungserinnerung"
|
||||||
@@ -699,7 +696,14 @@ Public Class frmBU_Mahnlauf
|
|||||||
Dim Verzugszinsen As Double = 0
|
Dim Verzugszinsen As Double = 0
|
||||||
Dim Verzugtage = DateDiff(DateInterval.Day, CDate(rpt.Fields.Item("Faelligkeit").Value), Now)
|
Dim Verzugtage = DateDiff(DateInterval.Day, CDate(rpt.Fields.Item("Faelligkeit").Value), Now)
|
||||||
If Verzugtage > 0 And Ausstand > 0 Then
|
If Verzugtage > 0 And Ausstand > 0 Then
|
||||||
If Firma_ID = 19 And MAHNSTUFE > 1 Then 'erst ab Mahnstufe 2 sollen bei MDM Verzugszinsen berechnet werden.
|
|
||||||
|
If Firma_ID = 19 Then
|
||||||
|
If MAHNSTUFE > 1 Then 'erst ab Mahnstufe 2 sollen bei MDM Verzugszinsen berechnet werden.
|
||||||
|
Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage
|
||||||
|
VerzugszinsenGes += Verzugszinsen
|
||||||
|
End If
|
||||||
|
|
||||||
|
Else
|
||||||
Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage
|
Verzugszinsen = ZinssatzVerzugszinsen / 365 * Ausstand * Verzugtage
|
||||||
VerzugszinsenGes += Verzugszinsen
|
VerzugszinsenGes += Verzugszinsen
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
Imports System.Drawing.Printing
|
Imports System.Drawing.Printing
|
||||||
Imports System.Globalization
|
Imports System.Globalization
|
||||||
|
Imports Microsoft.Office.Core
|
||||||
Imports Microsoft.Win32
|
Imports Microsoft.Win32
|
||||||
Imports SDL.RKSVServer
|
Imports SDL.RKSVServer
|
||||||
Imports VERAG_PROG_ALLGEMEIN
|
Imports VERAG_PROG_ALLGEMEIN
|
||||||
@@ -1703,7 +1704,8 @@ Public Class frmBelegNeu
|
|||||||
|
|
||||||
Dim verarbeitet As Boolean = False
|
Dim verarbeitet As Boolean = False
|
||||||
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
||||||
verarbeitet = cRKSV.insertRKSVFiskaltrust(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, BELEG.POS)
|
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, BELEG.POS, QR_CodeString, LastJWS)
|
||||||
|
verarbeitet = result.Result
|
||||||
Else
|
Else
|
||||||
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
|
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
|
||||||
End If
|
End If
|
||||||
@@ -1887,14 +1889,19 @@ Public Class frmBelegNeu
|
|||||||
|
|
||||||
Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click
|
Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click
|
||||||
Try
|
Try
|
||||||
|
Dim QR_CodeString As String = ""
|
||||||
|
Dim LastJWS As String = ""
|
||||||
|
|
||||||
|
|
||||||
KASSE.LOAD(cboKassen._value)
|
KASSE.LOAD(cboKassen._value)
|
||||||
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
||||||
Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
|
Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
|
||||||
Dim result As String = Await client.Echo()
|
Dim result_verbindungstest As String = Await client.Echo()
|
||||||
Dim result2 As String = Await client.SignReceiptAsync_test()
|
Dim result_zahlung As String = Await client.SignReceiptAsync_test()
|
||||||
MsgBox(result)
|
|
||||||
MsgBox(result2)
|
client.saveRKSV_FT(result_zahlung, QR_CodeString)
|
||||||
|
|
||||||
|
MsgBox(result_verbindungstest)
|
||||||
|
|
||||||
Else
|
Else
|
||||||
MsgBox("keine Rest-Service URL hinterlegt!")
|
MsgBox("keine Rest-Service URL hinterlegt!")
|
||||||
@@ -1908,6 +1915,12 @@ Public Class frmBelegNeu
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub cboKassen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKassen.SelectedIndexChanged
|
||||||
|
|
||||||
|
KASSE.LOAD(cboKassen._value)
|
||||||
|
Button4.Visible = KASSE.rksv_FT_RestServiceURL <> ""
|
||||||
|
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Class TestRKSVW
|
Class TestRKSVW
|
||||||
|
|||||||
@@ -64,7 +64,14 @@ Public Class frmKassenbuch
|
|||||||
KennwortTime = Now
|
KennwortTime = Now
|
||||||
initDgv() 'nur set
|
initDgv() 'nur set
|
||||||
init()
|
init()
|
||||||
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_aktiv]=1 OR [rksvde_aktiv]=1 or rksv_id=4) ", False, "FMZOLL") ' [rksv_firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND
|
|
||||||
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
||||||
|
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] ", False, "FMZOLL")
|
||||||
|
Else
|
||||||
|
cboKassen.fillWithSQL("SELECT [rksv_id], [rksv_bez] FROM [tblRKSV_Kassen] WHERE ([rksv_aktiv]=1 OR [rksvde_aktiv]=1 or rksv_id=4) ", False, "FMZOLL")
|
||||||
|
End If
|
||||||
|
|
||||||
|
' [rksv_firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND
|
||||||
|
|
||||||
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then
|
||||||
btnBelegKunde.Enabled = False
|
btnBelegKunde.Enabled = False
|
||||||
@@ -742,42 +749,70 @@ Public Class frmKassenbuch
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click
|
||||||
|
|
||||||
|
|
||||||
|
Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
|
||||||
|
|
||||||
|
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
||||||
|
Dim client_FT As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
|
||||||
|
|
||||||
|
'hier noch eine Auwahlmöglichkeit bauen!
|
||||||
|
|
||||||
|
Dim Journalid = 2 'ReceiptJournal
|
||||||
|
'4919338167972134914 -> DSFinV-K export
|
||||||
|
'4919338167972134915 -> TAR file export
|
||||||
|
'2 -> ReceiptJournal
|
||||||
|
|
||||||
|
Dim result = Await client_FT.Journal(Journalid)
|
||||||
|
If result <> "" Then
|
||||||
|
client_FT.exportJournal(result)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MsgBox("Leider noch nicht verfügbar")
|
MsgBox("Leider noch nicht verfügbar")
|
||||||
Exit Sub
|
|
||||||
Dim client As RKSVWcfClient = New RKSVWcfClient()
|
|
||||||
client.Endpoint.Address = New System.ServiceModel.EndpointAddress("http://192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl")
|
|
||||||
client.Open()
|
|
||||||
' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
|
|
||||||
Dim credentials As New SDL.RKSVServer.DBUserCredentials
|
|
||||||
|
|
||||||
credentials.Database = "RKSVWcfDB"
|
'Dim client As RKSVWcfClient = New RKSVWcfClient()
|
||||||
credentials.Server = "AVISO\SQLEXPRESS"
|
'client.Endpoint.Address = New System.ServiceModel.EndpointAddress("http://192.168.0.106:8733/Design_Time_Addresses/RKSVCompleteServer/Service1/?singleWsdl")
|
||||||
|
'client.Open()
|
||||||
|
'' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
|
||||||
|
'Dim credentials As New SDL.RKSVServer.DBUserCredentials
|
||||||
|
|
||||||
Select Case cboKassen._value
|
'credentials.Database = "RKSVWcfDB"
|
||||||
Case "VERAG-SUB-KASSE-ZOLL"
|
'credentials.Server = "AVISO\SQLEXPRESS"
|
||||||
credentials.Username = "Admin"
|
|
||||||
credentials.Password = "verag#2"
|
|
||||||
credentials.CashboxID = "VERAG-SUB-KASSE-ZOLL"
|
|
||||||
credentials.CompanyGUID = "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
|
|
||||||
|
|
||||||
Dim certificate = ""
|
'Select Case cboKassen._value
|
||||||
Dim certificateChain = ""
|
' Case "VERAG-SUB-KASSE-ZOLL"
|
||||||
Dim exportResult = ""
|
' credentials.Username = "Admin"
|
||||||
cRKSV.getDEP(certificate, exportResult)
|
' credentials.Password = "verag#2"
|
||||||
|
' credentials.CashboxID = "VERAG-SUB-KASSE-ZOLL"
|
||||||
|
' credentials.CompanyGUID = "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
|
||||||
|
|
||||||
|
' Dim certificate = ""
|
||||||
|
' Dim certificateChain = ""
|
||||||
|
' Dim exportResult = ""
|
||||||
|
' cRKSV.getDEP(certificate, exportResult)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'If (client.ExportJWS()) Then
|
' 'If (client.ExportJWS()) Then
|
||||||
' Else
|
' ' Else
|
||||||
'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
' 'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||||
' End If
|
' ' End If
|
||||||
Case ""
|
' Case ""
|
||||||
MsgBox("Keine Kasse gewählt!")
|
' MsgBox("Keine Kasse gewählt!")
|
||||||
Exit Sub
|
|
||||||
End Select
|
|
||||||
|
|
||||||
End Sub
|
'End Select
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||||||
@@ -1103,15 +1138,26 @@ Public Class frmKassenbuch
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
|
Private Async Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
|
||||||
Label18.ForeColor = Color.Black
|
Label18.ForeColor = Color.Black
|
||||||
If Not IsNumeric(cboKassen._value) Then
|
If Not IsNumeric(cboKassen._value) Then
|
||||||
Label18.ForeColor = Color.Red
|
Label18.ForeColor = Color.Red
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
|
Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
|
||||||
|
|
||||||
|
If KASSE.rksv_FT_RestServiceURL <> "" Then
|
||||||
|
Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
|
||||||
|
Dim result = Await client.SignNullReceiptAsync()
|
||||||
|
Dim QR_CodeString As String = ""
|
||||||
|
client.saveRKSV_FT(result, QR_CodeString)
|
||||||
|
Else
|
||||||
cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma)
|
cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma)
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
' End If
|
' End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@@ -1315,7 +1315,7 @@ Public Class usrcntlKundeBearbeitenFull
|
|||||||
Case "4001000-4099999" : cbxFiBu.Checked = True : cboFirma.changeItem("26") : cboFiliale.changeItem("7002")
|
Case "4001000-4099999" : cbxFiBu.Checked = True : cboFirma.changeItem("26") : cboFiliale.changeItem("7002")
|
||||||
Case "728000-799999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
Case "728000-799999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
||||||
Case "30000-49999" : cbxFiBu.Checked = True : cboFirma.changeItem("11") : cboFiliale.changeItem("4803")
|
Case "30000-49999" : cbxFiBu.Checked = True : cboFirma.changeItem("11") : cboFiliale.changeItem("4803")
|
||||||
Case "500000-599999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
Case "500000-599999" : cbxFiBu.Checked = True : cboFirma.changeItem("11") : cboFiliale.changeItem("4803")
|
||||||
Case "900000-999999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
Case "900000-999999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
||||||
Case "800000-899999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
Case "800000-899999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
|
||||||
Case "9900000-9999999" : cbxFiBu.Checked = False : cboFirma.changeItem("17") : cboFiliale.changeItem("5801")
|
Case "9900000-9999999" : cbxFiBu.Checked = False : cboFirma.changeItem("17") : cboFiliale.changeItem("5801")
|
||||||
@@ -1666,11 +1666,18 @@ Public Class usrcntlKundeBearbeitenFull
|
|||||||
txtTel.Text = f.UsrcntlCreditsafe1.comp.phoneNo
|
txtTel.Text = f.UsrcntlCreditsafe1.comp.phoneNo
|
||||||
|
|
||||||
If f.UsrcntlCreditsafe1.comp.country IsNot Nothing Then
|
If f.UsrcntlCreditsafe1.comp.country IsNot Nothing Then
|
||||||
|
cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 2))
|
||||||
|
If cbxLandKz._value = "" Then
|
||||||
cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 1))
|
cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 1))
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
If f.UsrcntlCreditsafe1.comp.vatNo <> "" Then
|
If f.UsrcntlCreditsafe1.comp.vatNo <> "" Then
|
||||||
|
|
||||||
cboUSt_UstIdNrLand.changeItem(f.UsrcntlCreditsafe1.comp.vatNo.Substring(0, 2))
|
cboUSt_UstIdNrLand.changeItem(f.UsrcntlCreditsafe1.comp.vatNo.Substring(0, 2))
|
||||||
|
|
||||||
If f.UsrcntlCreditsafe1.comp.country <> "" Then
|
If f.UsrcntlCreditsafe1.comp.country <> "" Then
|
||||||
|
|||||||
39
SDL/mdm/usrcntlFremdrechnungen.Designer.vb
generated
39
SDL/mdm/usrcntlFremdrechnungen.Designer.vb
generated
@@ -23,8 +23,8 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
<System.Diagnostics.DebuggerStepThrough()>
|
<System.Diagnostics.DebuggerStepThrough()>
|
||||||
Private Sub InitializeComponent()
|
Private Sub InitializeComponent()
|
||||||
Me.components = New System.ComponentModel.Container()
|
Me.components = New System.ComponentModel.Container()
|
||||||
Dim DataGridViewCellStyle5 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
||||||
Dim DataGridViewCellStyle6 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
|
||||||
Me.PDFHochladenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
Me.PDFHochladenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.FlowLayoutPanel = New System.Windows.Forms.FlowLayoutPanel()
|
Me.FlowLayoutPanel = New System.Windows.Forms.FlowLayoutPanel()
|
||||||
Me.btnSDL_Alle = New System.Windows.Forms.Button()
|
Me.btnSDL_Alle = New System.Windows.Forms.Button()
|
||||||
@@ -72,6 +72,8 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
Me.dgvLFRechnung = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
Me.dgvLFRechnung = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
||||||
Me.dgvDetails = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
Me.dgvDetails = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
||||||
Me.Panel4 = New System.Windows.Forms.Panel()
|
Me.Panel4 = New System.Windows.Forms.Panel()
|
||||||
|
Me.Label10 = New System.Windows.Forms.Label()
|
||||||
|
Me.lblmissingPDFs = New System.Windows.Forms.Label()
|
||||||
Me.FlowLayoutPanel.SuspendLayout()
|
Me.FlowLayoutPanel.SuspendLayout()
|
||||||
Me.ContextMenuStrip1.SuspendLayout()
|
Me.ContextMenuStrip1.SuspendLayout()
|
||||||
Me.Panel1.SuspendLayout()
|
Me.Panel1.SuspendLayout()
|
||||||
@@ -300,6 +302,8 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
Me.Panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
|
Me.Panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
|
||||||
Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight
|
Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight
|
||||||
Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||||
|
Me.Panel1.Controls.Add(Me.lblmissingPDFs)
|
||||||
|
Me.Panel1.Controls.Add(Me.Label10)
|
||||||
Me.Panel1.Controls.Add(Me.lblCountMissingInvoices)
|
Me.Panel1.Controls.Add(Me.lblCountMissingInvoices)
|
||||||
Me.Panel1.Controls.Add(Me.Label1)
|
Me.Panel1.Controls.Add(Me.Label1)
|
||||||
Me.Panel1.Controls.Add(Me.Label2)
|
Me.Panel1.Controls.Add(Me.Label2)
|
||||||
@@ -674,8 +678,8 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
Me.dgvLFRechnung.AllowUserToDeleteRows = False
|
Me.dgvLFRechnung.AllowUserToDeleteRows = False
|
||||||
Me.dgvLFRechnung.AllowUserToResizeColumns = False
|
Me.dgvLFRechnung.AllowUserToResizeColumns = False
|
||||||
Me.dgvLFRechnung.AllowUserToResizeRows = False
|
Me.dgvLFRechnung.AllowUserToResizeRows = False
|
||||||
DataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
||||||
Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle5
|
Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1
|
||||||
Me.dgvLFRechnung.BackgroundColor = System.Drawing.Color.White
|
Me.dgvLFRechnung.BackgroundColor = System.Drawing.Color.White
|
||||||
Me.dgvLFRechnung.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
Me.dgvLFRechnung.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
||||||
Me.dgvLFRechnung.Location = New System.Drawing.Point(4, 3)
|
Me.dgvLFRechnung.Location = New System.Drawing.Point(4, 3)
|
||||||
@@ -692,8 +696,8 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
Me.dgvDetails.AllowUserToDeleteRows = False
|
Me.dgvDetails.AllowUserToDeleteRows = False
|
||||||
Me.dgvDetails.AllowUserToResizeColumns = False
|
Me.dgvDetails.AllowUserToResizeColumns = False
|
||||||
Me.dgvDetails.AllowUserToResizeRows = False
|
Me.dgvDetails.AllowUserToResizeRows = False
|
||||||
DataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
||||||
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle6
|
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
|
||||||
Me.dgvDetails.BackgroundColor = System.Drawing.Color.White
|
Me.dgvDetails.BackgroundColor = System.Drawing.Color.White
|
||||||
Me.dgvDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
Me.dgvDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
||||||
Me.dgvDetails.Location = New System.Drawing.Point(-1, 3)
|
Me.dgvDetails.Location = New System.Drawing.Point(-1, 3)
|
||||||
@@ -712,6 +716,27 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
Me.Panel4.Size = New System.Drawing.Size(1356, 108)
|
Me.Panel4.Size = New System.Drawing.Size(1356, 108)
|
||||||
Me.Panel4.TabIndex = 11
|
Me.Panel4.TabIndex = 11
|
||||||
'
|
'
|
||||||
|
'Label10
|
||||||
|
'
|
||||||
|
Me.Label10.AutoSize = True
|
||||||
|
Me.Label10.Location = New System.Drawing.Point(4, 88)
|
||||||
|
Me.Label10.Name = "Label10"
|
||||||
|
Me.Label10.Size = New System.Drawing.Size(80, 13)
|
||||||
|
Me.Label10.TabIndex = 68
|
||||||
|
Me.Label10.Text = "fehlende PDFs:"
|
||||||
|
'
|
||||||
|
'lblmissingPDFs
|
||||||
|
'
|
||||||
|
Me.lblmissingPDFs.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.lblmissingPDFs.BackColor = System.Drawing.Color.White
|
||||||
|
Me.lblmissingPDFs.Location = New System.Drawing.Point(173, 88)
|
||||||
|
Me.lblmissingPDFs.Name = "lblmissingPDFs"
|
||||||
|
Me.lblmissingPDFs.RightToLeft = System.Windows.Forms.RightToLeft.Yes
|
||||||
|
Me.lblmissingPDFs.Size = New System.Drawing.Size(74, 13)
|
||||||
|
Me.lblmissingPDFs.TabIndex = 69
|
||||||
|
Me.lblmissingPDFs.Text = "0"
|
||||||
|
Me.lblmissingPDFs.TextAlign = System.Drawing.ContentAlignment.TopRight
|
||||||
|
'
|
||||||
'usrcntlFremdrechnungen
|
'usrcntlFremdrechnungen
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@@ -783,4 +808,6 @@ Partial Class usrcntlFremdrechnungen
|
|||||||
Friend WithEvents Label1 As Label
|
Friend WithEvents Label1 As Label
|
||||||
Friend WithEvents RechnungsanhangHochladenToolStripMenuItem As ToolStripMenuItem
|
Friend WithEvents RechnungsanhangHochladenToolStripMenuItem As ToolStripMenuItem
|
||||||
Friend WithEvents RechnungsanhangloeschenToolStripMenuItem As ToolStripMenuItem
|
Friend WithEvents RechnungsanhangloeschenToolStripMenuItem As ToolStripMenuItem
|
||||||
|
Friend WithEvents lblmissingPDFs As Label
|
||||||
|
Friend WithEvents Label10 As Label
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -597,6 +597,7 @@ Public Class usrcntlFremdrechnungen
|
|||||||
|
|
||||||
Dim btcNotSet As Integer = 0
|
Dim btcNotSet As Integer = 0
|
||||||
Dim missingInvoices As Integer = 0
|
Dim missingInvoices As Integer = 0
|
||||||
|
'Dim missingPDFs As Integer = 0
|
||||||
|
|
||||||
Dim uta As cUTA
|
Dim uta As cUTA
|
||||||
Dim ids As cIDS
|
Dim ids As cIDS
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ Imports System.Net
|
|||||||
Imports System.Reflection
|
Imports System.Reflection
|
||||||
Imports System.Text.RegularExpressions
|
Imports System.Text.RegularExpressions
|
||||||
Imports System.Threading
|
Imports System.Threading
|
||||||
Imports iTextSharp.text.pdf
|
|
||||||
|
|
||||||
|
|
||||||
Public Class cCreditSafeAPI
|
Public Class cCreditSafeAPI
|
||||||
|
|||||||
Reference in New Issue
Block a user