Creditsafe, Barverkauf Fiskaltrust, etc.

This commit is contained in:
2026-05-27 18:09:34 +02:00
parent ef3ede6132
commit d1a1f42295
12 changed files with 681 additions and 73 deletions

View File

@@ -1,8 +1,7 @@
Imports System.Net.Http
Imports System.Data.SqlClient
Imports System.Net.Http
Imports System.Reflection
Imports System.Text
Imports System.Threading
Imports DocumentFormat.OpenXml.Drawing
Imports DocumentFormat.OpenXml.Wordprocessing
Imports Newtonsoft.Json
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)
Dim payload = BuildPayload(amount, vat, POS)
Dim payload = BuildPayloadReceipt(amount, vat, POS)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
@@ -46,6 +45,60 @@ Public Class cFiskaltrustClient
Return Await SendAsync(endpoint, payload, requestContent)
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)
Dim LIST = New List(Of EABelegPositionen)
@@ -63,7 +116,7 @@ Public Class cFiskaltrustClient
p.Anzahl = 1
LIST.Add(p)
Dim payload = BuildPayload(100, 0, LIST)
Dim payload = BuildPayloadReceipt(100, 0, LIST)
Dim endpoint = GetEndpoint("payment")
Dim requestContent As StringContent
@@ -116,7 +169,22 @@ Public Class cFiskaltrustClient
End Function
' 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 {
.ftCashBoxID = _cashboxId,
@@ -124,8 +192,18 @@ Public Class cFiskaltrustClient
.cbTerminalID = "T1",
.cbReceiptReference = reference,
.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
@@ -164,7 +242,10 @@ Public Class cFiskaltrustClient
request.Headers.Add("cashboxid", _cashboxId)
request.Headers.Add("accesstoken", _accessToken)
If payload <> "" Then
request.Content = requestContent
End If
Dim response = Await _httpClient.SendAsync(request)
Dim result = Await response.Content.ReadAsStringAsync()
@@ -210,7 +291,7 @@ Public Class cFiskaltrustClient
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
Dim chargeItems = New List(Of Object)
@@ -248,6 +329,24 @@ Public Class cFiskaltrustClient
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
@@ -274,6 +373,17 @@ Public Class cFiskaltrustClient
Throw New Exception("Unsupported country")
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
@@ -282,8 +392,408 @@ Public Class cFiskaltrustClient
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)
Console.WriteLine(message)
End Sub
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

View File

@@ -92,7 +92,7 @@ Public Class cRKSV
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
@@ -126,10 +126,9 @@ Public Class cRKSV
Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
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 result = client.SignReceiptAsync(summeBRUTTO, steuersatz, POS)
Dim result = Await client.SignReceiptAsync(summeBRUTTO, steuersatz, POS)
client.saveRKSV_FT(result, QR_CodeString)
Catch ex As Exception

View File

@@ -189,10 +189,12 @@ Public Class usrcntlCreditsafe
Dim o As Form = 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
comp = New Company(IIf(IsDBNull(row.Cells("name").Value), "", row.Cells("name").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("regNo").Value), "", row.Cells("regNo").Value),
IIf(IsDBNull(row.Cells("street").Value), "", row.Cells("street").Value),

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.5.5.2")>
<Assembly: AssemblyFileVersion("1.5.5.2")>
<Assembly: AssemblyVersion("1.5.5.3")>
<Assembly: AssemblyFileVersion("1.5.5.3")>

View File

@@ -596,7 +596,7 @@ Public Class usrCntlATLAS_NCTS004
If Not ncts_OUT.SAVE_ALL() Then Exit Sub
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 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)
@@ -697,7 +697,7 @@ Public Class usrCntlATLAS_NCTS004
If vbYes = MsgBox("Erfolgreich erstellt! Soll(en) die Ausfuhr-Gestellung(en) abgeschickt werden?", vbYesNoCancel) Then
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 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)

View File

@@ -627,9 +627,6 @@ Public Class frmBU_Mahnlauf
End If
Dim MahnTEXT_VOR = ""
Dim MahnTEXT_NACH = ""
Dim MAHNTEXT As String = "Zahlungserinnerung"
@@ -699,7 +696,14 @@ Public Class frmBU_Mahnlauf
Dim Verzugszinsen As Double = 0
Dim Verzugtage = DateDiff(DateInterval.Day, CDate(rpt.Fields.Item("Faelligkeit").Value), Now)
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
VerzugszinsenGes += Verzugszinsen
End If

View File

@@ -1,5 +1,6 @@
Imports System.Drawing.Printing
Imports System.Globalization
Imports Microsoft.Office.Core
Imports Microsoft.Win32
Imports SDL.RKSVServer
Imports VERAG_PROG_ALLGEMEIN
@@ -1703,7 +1704,8 @@ Public Class frmBelegNeu
Dim verarbeitet As Boolean = False
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
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
@@ -1887,14 +1889,19 @@ Public Class frmBelegNeu
Private Async Function Button4_ClickAsync(sender As Object, e As EventArgs) As Task Handles Button4.Click
Try
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
KASSE.LOAD(cboKassen._value)
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 As String = Await client.Echo()
Dim result2 As String = Await client.SignReceiptAsync_test()
MsgBox(result)
MsgBox(result2)
Dim result_verbindungstest As String = Await client.Echo()
Dim result_zahlung As String = Await client.SignReceiptAsync_test()
client.saveRKSV_FT(result_zahlung, QR_CodeString)
MsgBox(result_verbindungstest)
Else
MsgBox("keine Rest-Service URL hinterlegt!")
@@ -1908,6 +1915,12 @@ Public Class frmBelegNeu
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
Class TestRKSVW

View File

@@ -64,7 +64,14 @@ Public Class frmKassenbuch
KennwortTime = Now
initDgv() 'nur set
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
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")
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"
credentials.Server = "AVISO\SQLEXPRESS"
'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
Select Case cboKassen._value
Case "VERAG-SUB-KASSE-ZOLL"
credentials.Username = "Admin"
credentials.Password = "verag#2"
credentials.CashboxID = "VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
'credentials.Database = "RKSVWcfDB"
'credentials.Server = "AVISO\SQLEXPRESS"
Dim certificate = ""
Dim certificateChain = ""
Dim exportResult = ""
cRKSV.getDEP(certificate, exportResult)
'Select Case cboKassen._value
' Case "VERAG-SUB-KASSE-ZOLL"
' credentials.Username = "Admin"
' 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
' Else
'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
' End If
Case ""
MsgBox("Keine Kasse gewählt!")
Exit Sub
End Select
' 'If (client.ExportJWS()) Then
' ' Else
' 'MessageBox.Show(answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
' ' End If
' Case ""
' MsgBox("Keine Kasse gewählt!")
End Sub
'End Select
End If
End Function
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
@@ -1103,15 +1138,26 @@ Public Class frmKassenbuch
End If
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
If Not IsNumeric(cboKassen._value) Then
Label18.ForeColor = Color.Red
Exit Sub
End If
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)
End If
' End If
End Sub

View File

@@ -1315,7 +1315,7 @@ Public Class usrcntlKundeBearbeitenFull
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 "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 "800000-899999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
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
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))
End If
End If
If f.UsrcntlCreditsafe1.comp.vatNo <> "" Then
cboUSt_UstIdNrLand.changeItem(f.UsrcntlCreditsafe1.comp.vatNo.Substring(0, 2))
If f.UsrcntlCreditsafe1.comp.country <> "" Then

View File

@@ -23,8 +23,8 @@ Partial Class usrcntlFremdrechnungen
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim DataGridViewCellStyle5 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim DataGridViewCellStyle6 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim DataGridViewCellStyle1 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.FlowLayoutPanel = New System.Windows.Forms.FlowLayoutPanel()
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.dgvDetails = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
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.ContextMenuStrip1.SuspendLayout()
Me.Panel1.SuspendLayout()
@@ -300,6 +302,8 @@ Partial Class usrcntlFremdrechnungen
Me.Panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight
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.Label1)
Me.Panel1.Controls.Add(Me.Label2)
@@ -674,8 +678,8 @@ Partial Class usrcntlFremdrechnungen
Me.dgvLFRechnung.AllowUserToDeleteRows = False
Me.dgvLFRechnung.AllowUserToResizeColumns = 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))
Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle5
DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvLFRechnung.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1
Me.dgvLFRechnung.BackgroundColor = System.Drawing.Color.White
Me.dgvLFRechnung.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvLFRechnung.Location = New System.Drawing.Point(4, 3)
@@ -692,8 +696,8 @@ Partial Class usrcntlFremdrechnungen
Me.dgvDetails.AllowUserToDeleteRows = False
Me.dgvDetails.AllowUserToResizeColumns = 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))
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle6
DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
Me.dgvDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
Me.dgvDetails.BackgroundColor = System.Drawing.Color.White
Me.dgvDetails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
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.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
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -783,4 +808,6 @@ Partial Class usrcntlFremdrechnungen
Friend WithEvents Label1 As Label
Friend WithEvents RechnungsanhangHochladenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents RechnungsanhangloeschenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents lblmissingPDFs As Label
Friend WithEvents Label10 As Label
End Class

View File

@@ -597,6 +597,7 @@ Public Class usrcntlFremdrechnungen
Dim btcNotSet As Integer = 0
Dim missingInvoices As Integer = 0
'Dim missingPDFs As Integer = 0
Dim uta As cUTA
Dim ids As cIDS

View File

@@ -5,7 +5,6 @@ Imports System.Net
Imports System.Reflection
Imports System.Text.RegularExpressions
Imports System.Threading
Imports iTextSharp.text.pdf
Public Class cCreditSafeAPI