Barverkauf, etc.

This commit is contained in:
2026-09-16 15:48:00 +02:00
parent 43257416fd
commit 7c0c1ea1a3
5 changed files with 395 additions and 188 deletions

View File

@@ -1,4 +1,5 @@
Imports Chilkat
Imports io.konik.zugferd.unqualified
Imports QRCoder
Imports VERAG_PROG_ALLGEMEIN
@@ -19,6 +20,10 @@ Public Class FtReceiptCases
Public Const YearlyClosing As Long = &H4445000000000006L
Public Const DailyClosing As Long = &H4445000000000007L
' Kasseneinzahlung / Kassenauszahlung / Geldtransfer
Public Const CashDepositOrWithdrawal As Long = &H4445000000000011L
' Flags
Public Const ImplicitTransaction As Long = &H100000000L
Public Const ReversalReceipt As Long = &H40000L
@@ -34,11 +39,29 @@ End Class
Public Class FtChargeItemCase
'DE
Public Const RevenueNormal As Long = &H4445000000000001L ' 19 %
Public Const RevenueReduced As Long = &H4445000000000002L ' 7 %
Public Const RevenueNotTaxable As Long = &H4445000000000005L 'nicht steuerbar
Public Const RevenueTaxFree As Long = &H4445000000000006L '0%
' DE – Verkaufsbelege
Public Const RevenueNormal As Long = &H4445000000000001L ' 19 % Regelsteuersatz
Public Const RevenueReduced As Long = &H4445000000000002L ' 7 % ermäßigter Steuersatz
Public Const RevenueNotTaxable As Long = &H4445000000000005L ' Nicht steuerbar
Public Const RevenueTaxFree As Long = &H4445000000000006L ' Umsatzsteuerfrei, 0 %
' DE – Kassenbewegungen
Public Const Anfangsbestand As Long = &H4445000000000090L ' Anfangsbestand
Public Const Privatentnahme As Long = &H4445000000000091L ' Privatentnahme
Public Const Privateinlage As Long = &H4445000000000092L ' Privateinlage
Public Const Geldtransit As Long = &H4445000000000093L ' Geldtransit
Public Const Lohnzahlung As Long = &H4445000000000094L ' Lohnzahlung
Public Const Einzahlung As Long = &H4445000000000095L ' Einzahlung
Public Const Auszahlung As Long = &H4445000000000096L ' Auszahlung
End Class
@@ -53,10 +76,26 @@ End Class
Public Class ReceiptCaseIntern
Public Const STORNO As String = "Storno"
Public Const VERKAUF As String = "Verkauf"
Public Const EINGANG As String = "Eingang"
Public Const AUSGANG As String = "Ausgang"
Public Const WIEDERHOLUNG As String = "Retry"
Public Const NULLBELEG As String = "NULL-BELEG"
Public Const STARTBELEG As String = "START-BELEG"
Public Const OUTOFOPERATIONBELEG As String = "END-BELEG"
Public Const TEMP_OUTOFOPERATIONBELEG As String = "TEMP-AUSFALL"
Public Const DAILYCLOSING As String = "TAGESABSCHLUSS"
End Class
Public Class PayItemCasesIntern
Public Const Cash As String = "Cash"
Public Const DebitCard As String = "DebitCard"
Public Const Kasseneinzahlungen_Auszahlungen As String = "Kasseneinzahlungen_Auszahlungen"
End Class
@@ -81,6 +120,9 @@ Public Class FtPayItemCases
' Gutschein
Public Const Voucher As Long = &H4445000000000007L
'Cash transfer from/to cash book
Public Const Kasseineinzahlung_Auszahlung As Long = &H4445000000000016L
End Class
Public Class cFiskaltrustClient_chilkat
@@ -387,21 +429,23 @@ Public Class cFiskaltrustClient_chilkat
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
Dim receipCase
Dim receiptCaseValue As Long
If _receiptCase = "Storno" Then
' Neue Referenz für den Stornobeleg
json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString())
' Referenz auf den ursprünglichen Beleg
json.UpdateString("cbPreviousReceiptReference", _reference)
If TSEisOnline Then
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction
receiptCaseValue = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction
Else
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
receiptCaseValue = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
End If
ElseIf _receiptCase = "Retry" Then
ElseIf _receiptCase = ReceiptCaseIntern.WIEDERHOLUNG Then
'Receipt-Request nach Kommunikationsfehler
'dieselbe cbReceiptReference verwenden
@@ -409,87 +453,115 @@ Public Class cFiskaltrustClient_chilkat
'optional dieselbe cbTerminalID
json.UpdateString("cbReceiptReference", _reference)
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReceiptRequest
receiptCaseValue = FtReceiptCases.PosReceipt Or FtReceiptCases.ReceiptRequest
' Kasseneinzahlung (ohne Positionen) / Kassenauszahlung (ohne Positionen)
ElseIf (_receiptCase = ReceiptCaseIntern.EINGANG OrElse _receiptCase = ReceiptCaseIntern.AUSGANG) AndAlso POS.Count = 0 Then
kindOfPayment = PayItemCasesIntern.Kasseneinzahlungen_Auszahlungen
json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString())
If TSEisOnline Then
receiptCaseValue = FtReceiptCases.CashDepositOrWithdrawal Or FtReceiptCases.ImplicitTransaction
Else
receiptCaseValue = FtReceiptCases.CashDepositOrWithdrawal Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
End If
Else
' New reference for a normal receipt
json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString())
If TSEisOnline Then
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction
receiptCaseValue = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction
Else
receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
receiptCaseValue = FtReceiptCases.PosReceipt Or FtReceiptCases.FailedReceipt Or FtReceiptCases.ImplicitTransaction
End If
End If
json.UpdateString("ftReceiptCase", receipCase.ToString())
json.UpdateString("ftReceiptCase", receiptCaseValue.ToString())
Dim chargeItems = json.AppendArray("cbChargeItems")
For Each p In POS
If POS.Count > 0 Then
If chargeItems.AddObjectAt(-1) Then
For Each p In POS
If chargeItems.AddObjectAt(-1) Then
Dim quantity As Double = p.Anzahl
Dim unitPrice As Double = p.Preis
Dim lineAmount As Double = p.Betrag
Dim quantity As Double = p.Anzahl
Dim unitPrice As Double = p.Preis
Dim lineAmount As Double = p.Betrag
'bei Storno negieren (BEI DE nur einen Teil)!
'To cancel a receipt, resend it with this flag added to the ftReceiptCase and inverse the cbPayItems OR cbChargeItems (This is not the same behavior as described in the general part — in Germany, this flag requires only one of cbPayItems or cbChargeItems to be negative, and both must not be negative at the same time)'
'https://docs.fiskaltrust.cloud/docs/poscreators/middleware-doc/germany/reference-tables/ftreceiptcase
'bei Storno negieren (BEI DE nur einen Teil)!
'To cancel a receipt, resend it with this flag added to the ftReceiptCase and inverse the cbPayItems OR cbChargeItems (This is not the same behavior as described in the general part — in Germany, this flag requires only one of cbPayItems or cbChargeItems to be negative, and both must not be negative at the same time)'
'https://docs.fiskaltrust.cloud/docs/poscreators/middleware-doc/germany/reference-tables/ftreceiptcase
If _receiptCase = "Storno" Then
quantity = quantity * -1
lineAmount = lineAmount * -1
If _receiptCase = ReceiptCaseIntern.STORNO Then
quantity = quantity * -1
lineAmount = lineAmount * -1
End If
Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1)
item.UpdateInt("Quantity", quantity)
item.UpdateNumber("Amount", lineAmount)
item.UpdateNumber("VATRate", vat)
item.UpdateString("Description", p.LeistungsBez)
Dim ChargeItemCase As Long
Select Case vat
Case 19D
ChargeItemCase = FtChargeItemCase.RevenueNormal
Case 7D
ChargeItemCase = FtChargeItemCase.RevenueReduced
Case 0D
ChargeItemCase = FtChargeItemCase.RevenueTaxFree
Case Else
Throw New Exception("Unbekannter Steuersatz")
End Select
item.UpdateString("ftChargeItemCase", ChargeItemCase)
End If
Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1)
item.UpdateInt("Quantity", quantity)
item.UpdateNumber("Amount", lineAmount)
item.UpdateNumber("VATRate", vat)
item.UpdateString("Description", p.LeistungsBez)
Dim ChargeItemCase As Long
Select Case vat
Next
Case 19D
ChargeItemCase = FtChargeItemCase.RevenueNormal
Case 7D
ChargeItemCase = FtChargeItemCase.RevenueReduced
Case 0D
ChargeItemCase = FtChargeItemCase.RevenueTaxFree
Case Else
Throw New Exception("Unbekannter Steuersatz")
End Select
item.UpdateString("ftChargeItemCase", ChargeItemCase)
End If
Next
End If
Dim payItems = json.AppendArray("cbPayItems")
payItems.AddObjectAt(-1)
Dim pay As Chilkat.JsonObject = payItems.ObjectAt(payItems.Size - 1)
pay.UpdateInt("Quantity", 1)
pay.UpdateNumber("Amount", amount.ToString().Replace(",", "."))
pay.UpdateString("Description", kindOfPayment)
Dim Description As String = ""
Select Case kindOfPayment
Case "Cash"
Case PayItemCasesIntern.Cash
pay.UpdateString("ftPayItemCase", FtPayItemCases.Cash)
Case "Card"
Description = "Bar"
Case PayItemCasesIntern.DebitCard
pay.UpdateString("ftPayItemCase", FtPayItemCases.DebitCard)
Description = "ECKarte"
Case PayItemCasesIntern.Kasseneinzahlungen_Auszahlungen
pay.UpdateString("ftPayItemCase", FtPayItemCases.Kasseineinzahlung_Auszahlung)
If amount > 0 Then
Description = "Kasseneingang"
ElseIf amount < 0 Then
Description = "Kassenausgang"
End If
End Select
pay.UpdateString("Description", Description)
Return json
End Function

View File

@@ -1,4 +1,5 @@
Imports GrapeCity.ActiveReports

Imports GrapeCity.ActiveReports
Imports SDL.RKSVServer
Imports VERAG_PROG_ALLGEMEIN.DSFinVKService
Imports VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService
@@ -122,25 +123,37 @@ Public Class cRKSV
Dim kindOfPayment As String = getKindOfPayment(beleg_temp)
If False 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.SignReceiptAsync(summeBRUTTO, steuersatz, POS, "Cash", kasse.rksv_id)
'If result <> "" Then
' Return client.saveRKSV_FT(result, QR_CodeString)
'Else
' Return False
'End If
Else
Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id, typOfReceiptCase, reference, TSEisOnline)
If result <> "" Then
Dim client As New cFiskaltrustClient_chilkat(kasse.rksv_FT_RestServiceURL, kasse.rksv_FT_CashboxID, kasse.rksv_FT_AccessToken, kasse.rksv_FT_Country)
Dim result As String = ""
Select Case typOfReceiptCase
Case ReceiptCaseIntern.NULLBELEG
result = client.SignNullReceipt(kasse.rksv_id)
Case ReceiptCaseIntern.STARTBELEG
result = client.SignInitialOperationReceipt(kasse.rksv_id)
Case ReceiptCaseIntern.OUTOFOPERATIONBELEG
result = client.SignOutOfOrderReceipt(kasse.rksv_id)
Case ReceiptCaseIntern.TEMP_OUTOFOPERATIONBELEG
result = client.SignTempOutOfOrderReceipt(kasse.rksv_id)
Case ReceiptCaseIntern.DAILYCLOSING
result = client.SignClosingReceipt("daily", kasse.rksv_id, "daily")
Case Else
result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id, typOfReceiptCase, reference, TSEisOnline)
End Select
If result <> "" Then
Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, False)
Else
Return False
End If
End If
Catch ex As Exception
@@ -1826,6 +1839,188 @@ Public Class cRKSV
End Function
Public Shared Function printStatusBelegFiskaltrust(KASSE As cRKSV_Kasse, PERSONAL As cPersonal, AUTODRUCK As Boolean, Firma As String, fiskaltrustReceiptCasTypIntern As String) As Boolean
Try
If PERSONAL Is Nothing Then
Dim FMZOLL_SQL As New FMZOLL_SQL
PERSONAL = FMZOLL_SQL.getPersonalById(274)
End If
Dim ib = ""
Dim TESTBUCHUNG = False
Dim oldBelegZaehler = KASSE.rksv_BelegIdZaehler
Dim summe As Double = 0
Dim RKSV_Beleg_Id = KASSE.INCREASE_BELEG_UMSATZ(If(TESTBUCHUNG, 0, summe))
If RKSV_Beleg_Id < 0 Then
'Exit Function
Return False
End If
Dim belegBez As String = fiskaltrustReceiptCasTypIntern
Dim BELEG As New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID)
' Dim GJ = New cGeschaeftsjahr(BELEG.Mandant, BELEG.Niederlassung, BELEG.Benutzer, cRKSV.getGJ(BELEG.BelegDat))
BELEG.Ordnungsbegriff = "*** " & belegBez & " ***"
BELEG.Beleg_TYP = "0"
BELEG.Belegart = "0"
BELEG.Name1 = "*** " & belegBez & " ***"
BELEG.Steuerschlüssel = 3510
BELEG.BelegNr = cRKSV.getNewBelegNr(BELEG, Firma) 'GJ.INCREASE_BELEG() 'Vergabe der Belegnummer '
' Beleg noch nicht gespeichert.... BELEG.DEL_POS_List()' Positionen löschen, da BelegNr Neu vergeben
For Each p In BELEG.POS
p.BelegNr = BELEG.BelegNr
Next
BELEG.gebucht = True
BELEG.SAVE()
' QR_Image = Nothing
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
Dim isFiskaltrust As Boolean = False
Dim verarbeitet As Boolean = False
If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = ""
If KASSE IsNot Nothing AndAlso KASSE.rksv_FT_RestServiceURL IsNot Nothing AndAlso KASSE.rksv_FT_CashboxID IsNot Nothing AndAlso KASSE.rksv_FT_AccessToken IsNot Nothing AndAlso KASSE.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
isFiskaltrust = client_chilkat.isFiskaltrust()
End If
If isFiskaltrust Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, 0, TESTBUCHUNG, QR_CodeString, LastJWS, fiskaltrustReceiptCasTypIntern)
verarbeitet = result
End If
If Not verarbeitet Then
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Return False
End If
' If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die DEUTSCHLAND gilt
Dim answer = ""
'*Nullbelg-POS*
Dim POS As New EABelegPositionen
POS.Abfertigungsart = 10 '"Sonstiges"
POS.Mandant = BELEG.Mandant
POS.Niederlassung = BELEG.Niederlassung
POS.Benutzer = BELEG.Benutzer
POS.BelegDat = BELEG.BelegDat
POS.BelegNr = BELEG.BelegNr
POS.PreislistenPos = -1
POS.LeistungsNr = 499
POS.LeistungsBez = belegBez
POS.Leistungsbeschreibung = belegBez
POS.PreislistenNr = -1
POS.PreistabellenNr = -1
POS.Preis = 0
POS.Anzahl = 1
POS.Anzahlmultiplikator = 1
POS.Betrag = 0
POS.Preisbindung = 0
' POS.AbfertigungsNr = 000
BELEG.POS.Add(POS)
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, 0, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summe * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Return False
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If
'RKSV-Daten beim Beleg ergänzen:
BELEG.rksv_jws = LastJWS
BELEG.rksv_qr = QR_CodeString
BELEG.rksv_BelegId = RKSV_Beleg_Id
BELEG.rksv_id = KASSE.rksv_id
BELEG.rksv_umsatz = summe
BELEG.rksv_aktiv = (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv)
BELEG.SAVE()
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
Select Case fiskaltrustReceiptCasTypIntern
Case ReceiptCaseIntern.NULLBELEG
rksv.SET_NULLBELEG()
Case ReceiptCaseIntern.STARTBELEG
rksv.SET_INITIALSTARTBELEG()
Case ReceiptCaseIntern.OUTOFOPERATIONBELEG
rksv.SET_OUTOFORDERBELEG()
Case ReceiptCaseIntern.TEMP_OUTOFOPERATIONBELEG
rksv.SET_OUTOFORDERBELEG()
Case ReceiptCaseIntern.DAILYCLOSING
SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfDayReceipt = getDate() where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL")
End Select
If isFiskaltrust Then
End If
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
If AUTODRUCK Then
Dim pName = ""
For Each sPrinter As String In System.Drawing.Printing.PrinterSettings.InstalledPrinters
If sPrinter = "AUTODRUCK_MAIL" Then pName = sPrinter : Exit For
Next
If pName = "" Then
Dim oPS As New System.Drawing.Printing.PrinterSettings
pName = oPS.PrinterName
End If
cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, pName, False) 'Beleg drucken
Else
cRKSV.printKundenBeleg(BELEG, KASSE, PERSONAL, "", False) 'Beleg drucken
End If
Return True
' End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Public Shared Function getCardSerialInReader(kasse_id As Integer, reader As String)
Try

View File

@@ -228,7 +228,6 @@ Public Class frmFremdbeleg
Dim isFiskaltrust = False
If KASSE IsNot Nothing AndAlso KASSE.rksv_FT_RestServiceURL IsNot Nothing AndAlso KASSE.rksv_FT_CashboxID IsNot Nothing AndAlso KASSE.rksv_FT_AccessToken IsNot Nothing AndAlso KASSE.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
isFiskaltrust = client_chilkat.isFiskaltrust()
End If
@@ -238,16 +237,16 @@ Public Class frmFremdbeleg
Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, IIf(Art = 1, ReceiptCaseIntern.EINGANG, ReceiptCaseIntern.AUSGANG))
'result.Wait()
verarbeitet = result
Else
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
End If
If isFiskaltrust Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, IIf(Art = 1, ReceiptCaseIntern.EINGANG, ReceiptCaseIntern.AUSGANG))
'result.Wait()
verarbeitet = result
Else
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
End If
If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not isFiskaltrust Then

View File

@@ -206,8 +206,6 @@ Public Class frmKassenbuch
End If
lbldailyCashboxClosing.Text = ""
If PERSONAL.cRKSV_Kasse IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country)
@@ -253,51 +251,47 @@ Public Class frmKassenbuch
TSEIsOnline = False
MiddlewareIsOnline = False
InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated)
End If
InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated)
InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated)
If Not MiddlewareIsOnline Then
diasableBarverkauf("MIDDLEWARE")
ElseIf Not InitialStartIsCreated Then
diasableBarverkauf("INITIALSTART")
ElseIf tagesabschlussIsSet Then
diasableBarverkauf("TAGESABSCHLUSS")
ElseIf OutOfOrderIsCreated Then
diasableBarverkauf("OUTOFORDER")
Else
lbldailyCashboxClosing.Text = ""
If Not TSEIsOnline Then
lbldailyCashboxClosing.Text = "TSE ist OFFLINE: Belege werden nachträglich signiert!"
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then
btnBelegKunde.Enabled = True
btnBelegAusgang.Enabled = True
btnBelegEingang.Enabled = True
btnBelegGSKunde.Enabled = True
btnBelegLeihgeld.Enabled = True
btnStorno.Enabled = True
End If
If Not MiddlewareIsOnline Then
diasableBarverkauf("MIDDLEWARE")
ElseIf Not InitialStartIsCreated Then
diasableBarverkauf("INITIALSTART")
ElseIf tagesabschlussIsSet Then
diasableBarverkauf("TAGESABSCHLUSS")
ElseIf OutOfOrderIsCreated Then
diasableBarverkauf("OUTOFORDER")
Else
lbldailyCashboxClosing.Text = ""
If Not TSEIsOnline Then
lbldailyCashboxClosing.Text = "TSE ist OFFLINE: Belege werden nachträglich signiert!"
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then
btnBelegKunde.Enabled = True
btnBelegAusgang.Enabled = True
btnBelegEingang.Enabled = True
btnBelegGSKunde.Enabled = True
btnBelegLeihgeld.Enabled = True
btnStorno.Enabled = True
End If
lbldailyCashboxClosing.Visible = False
Button11.Visible = False
End If
End If
Else
lbldailyCashboxClosing.Text = ""
Button11.Visible = False
End If
' Label9.Text = PERSONAL.Name
DataGridView2.ClearSelection()
End Sub
@@ -1368,16 +1362,17 @@ Public Class frmKassenbuch
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(RKSV.rksv_id)
Dim QR_CodeString As String = ""
client.saveRKSV_FT(result, QR_CodeString)
If KASSE.rksv_FT_Country IsNot Nothing AndAlso KASSE.rksv_FT_Country = "DE" Then
cRKSV.printStatusBelegFiskaltrust(KASSE, PERSONAL, True, KASSE.rksv_firma, ReceiptCaseIntern.NULLBELEG)
Else
cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma)
End If
init()
' End If
End Sub
@@ -1609,11 +1604,11 @@ Public Class frmKassenbuch
End If
If Not cm_FT.Items.ContainsKey("null") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then
Dim plose = New ToolStripMenuItem() With {.Text = "Nullbeleg", .Name = "null", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
cm_FT.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
'If Not cm_FT.Items.ContainsKey("null") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then
' Dim plose = New ToolStripMenuItem() With {.Text = "Nullbeleg", .Name = "null", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
' cm_FT.Items.Add(plose)
' AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
'End If
If Not cm_FT.Items.ContainsKey("outoforder") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then
Dim plose = New ToolStripMenuItem() With {.Text = "Out Of Order", .Name = "outoforder", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
@@ -1704,31 +1699,7 @@ Public Class frmKassenbuch
Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country)
If item.Name = "null" Then
Dim info As String = "Möchten Sie einen 0-Beleg an die TSE schicken?"
If NULLBelegIsCreated Then
info = "Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein 0-Beleg erstellt, sind Sie wirklich sicher?"
End If
If vbYes = MsgBox(info, vbYesNoCancel) Then
Dim result As String = client_chilkat.SignNullReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_NULLBELEG()
init()
End If
End If
ElseIf item.Name = "setMissingSignatures" Then
If item.Name = "setMissingSignatures" Then
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE [rksv_id]='" & PERSONAL.cRKSV_KasseID & "' AND isnull(FT_MissingSignature,0)=1", "FMZOLL")
@@ -1802,16 +1773,8 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen temp. Ausfall an die TSE schicken?" & vbNewLine & "Falls die TSE zwar Online ist, jedoch ein technischer Fehler beim Signieren besteht", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_OUTOFORDERBELEG()
init()
End If
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.TEMP_OUTOFOPERATIONBELEG)
init()
End If
@@ -1821,18 +1784,9 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen OutOfOrder an die TSE schicken?" & vbNewLine & "Die Queue wird dauerhaft geschlossen und kann NICHT reaktiviert werden!", vbYesNoCancel) Then
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.OUTOFOPERATIONBELEG)
init()
Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_OUTOFORDERBELEG()
init()
End If
End If
@@ -1842,17 +1796,8 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen Start an die TSE schicken?", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignInitialOperationReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_INITIALSTARTBELEG()
init()
End If
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.STARTBELEG)
init()
End If
@@ -1949,22 +1894,18 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen Tagesabschluss durchführen, anschließend kann heute kein Beleg mehr signiert werden!", vbYesNoCancel) Then
If PERSONAL.cRKSV_Kasse.rksv_FT_Country = "DE" Then
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name)
If result <> "" Then
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.DAILYCLOSING)
MsgBox(client_chilkat.PrettyPrintJson(result))
init()
SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfDayReceipt = getDate() where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL")
init()
End If
Else
MsgBox("nicht für AT-Kassen möglich!")
End If
End If
Else
MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Tagesabschluss erstellt!")
MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Tagesabschluss erstellt!")
End If

View File

@@ -375,9 +375,9 @@ Public Class frmNacherfassungLeihgeld
Dim verarbeitet As Boolean = False
If isFiskaltrust Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, "Verkauf")
'result.Wait()
verarbeitet = result
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, ReceiptCaseIntern.VERKAUF)
'result.Wait()
verarbeitet = result
Else
verarbeitet = cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
End If