From 04aeee4f84524f917a8c406f71f7672bf808c602 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 11 Sep 2026 16:10:19 +0200 Subject: [PATCH] =?UTF-8?q?div.=20=C3=84nderungen,=20etc.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/Classes/cEABeleg.vb | 1 - SDL/Classes/cFiskaltrustClient.vb | 2 + SDL/Classes/cFiskaltrustClient_chilkat.vb | 136 ++++-------- SDL/Classes/cRKSV.vb | 8 +- SDL/Classes/cRKSV_Kasse.vb | 40 ++++ SDL/kassenbuch/frmBelegNeu.vb | 10 +- SDL/kassenbuch/frmFremdbeleg.vb | 8 +- SDL/kassenbuch/frmKassenbuch.Designer.vb | 69 ++++-- SDL/kassenbuch/frmKassenbuch.vb | 239 ++++++++++++++++----- SDL/kassenbuch/frmNacherfassungLeihgeld.vb | 7 +- 10 files changed, 339 insertions(+), 181 deletions(-) diff --git a/SDL/Classes/cEABeleg.vb b/SDL/Classes/cEABeleg.vb index dbf7ec60..9cc921ff 100644 --- a/SDL/Classes/cEABeleg.vb +++ b/SDL/Classes/cEABeleg.vb @@ -283,7 +283,6 @@ Public Class EABeleg Property ECTerminalreturnCode As Object = Nothing Property EC_daid As Integer = 0 Property FT_ReceiptReference As Object = Nothing - Property FT_ReceiptReference_Storno As Object = Nothing diff --git a/SDL/Classes/cFiskaltrustClient.vb b/SDL/Classes/cFiskaltrustClient.vb index a1aacac8..eb3a39a3 100644 --- a/SDL/Classes/cFiskaltrustClient.vb +++ b/SDL/Classes/cFiskaltrustClient.vb @@ -740,6 +740,7 @@ Public Class cFiskaltrustSignatures Property ftCashBoxID As Object = Nothing Property cbTerminalID As Object = Nothing Property cbReceiptReference As Object = Nothing + Property ftBeleg_ID As Object = Nothing Public hasEntry = False @@ -767,6 +768,7 @@ Public Class cFiskaltrustSignatures 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)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ftBeleg_ID", ftBeleg_ID)) Return list End Function diff --git a/SDL/Classes/cFiskaltrustClient_chilkat.vb b/SDL/Classes/cFiskaltrustClient_chilkat.vb index e3570208..7a44006a 100644 --- a/SDL/Classes/cFiskaltrustClient_chilkat.vb +++ b/SDL/Classes/cFiskaltrustClient_chilkat.vb @@ -27,9 +27,11 @@ End Class Public Class FtChargeItemCase + 'DE Public Const RevenueNormal As Long = &H4445000000000001L ' 19 % Public Const RevenueReduced As Long = &H4445000000000002L ' 7 % - Public Const RevenueTaxFree As Long = &H4445000000000005L ' 0 % + Public Const RevenueNotTaxable As Long = &H4445000000000005L 'nicht steuerbar + Public Const RevenueTaxFree As Long = &H4445000000000006L '0% End Class @@ -44,6 +46,8 @@ End Class Public Class FtPayItemCases + 'DE + ' Barzahlung Public Const Cash As Long = &H4445000000000001L @@ -57,7 +61,7 @@ Public Class FtPayItemCases Public Const OnlinePayment As Long = &H4445000000000006L ' Gutschein - Public Const Voucher As Long = &H444500000000000DL + Public Const Voucher As Long = &H4445000000000007L End Class @@ -75,14 +79,16 @@ Public Class cFiskaltrustClient_chilkat _country = country End Sub - Public Function SignReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String) As String + Public Function SignReceipt(amount As Decimal, vat As Decimal, POS As List(Of EABelegPositionen), kindOfPayment As String, posSystemId As String, typOfReceiptCase As String) As String - Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, "Verkauf", "") + Dim payload As JsonObject = BuildPayloadReceipt(amount, vat, POS, kindOfPayment, posSystemId, typOfReceiptCase, "") Return SendChilkat(GetEndpoint("payment"), payload.Emit()) End Function + + Public Function SignReceipt_test(posSystemId As String) As String Dim LIST = New List(Of EABelegPositionen) @@ -151,8 +157,15 @@ Public Class cFiskaltrustClient_chilkat Return SendChilkat(GetEndpoint("payment"), BuildPayloadNullReceipt(posSystemId, _country).Emit()) End Function - Public Function SignClosingReceipt(receiptType As String, posSystemId As String, kind As String) As String + Public Function SignOutOfOrderReceipt(posSystemId As String) As String + Return SendChilkat(GetEndpoint("payment"), BuildPayloadOutOfOperationReceipt(posSystemId, _country).Emit()) + End Function + Public Function SignOInitialOperationReceipt(posSystemId As String) As String + Return SendChilkat(GetEndpoint("payment"), BuildPayloadInitialOperationReceipt(posSystemId, _country).Emit()) + End Function + + Public Function SignClosingReceipt(receiptType As String, posSystemId As String, kind As String) As String Return SendChilkat(GetEndpoint("payment"), BuildPayloadClosingReceipt(receiptType, posSystemId, kind).Emit()) End Function @@ -174,69 +187,6 @@ Public Class cFiskaltrustClient_chilkat Return SendChilkat(endpoint, "") End Function - 'Private Function old_SendChilkat(endpoint As String, payload As String, Optional isGet As Boolean = False) As String - - ' Dim retries As Integer = 3 - ' Dim lastEx As Exception = Nothing - ' VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() - ' Dim rest As New Chilkat.Rest - ' Dim failureDesc As String - ' rest.VerboseLogging = True - - - ' For i As Integer = 1 To retries - - ' Try - - ' Dim uri As New Uri(_baseUrl) - - ' If Not rest.Connect(uri.Host, uri.Port, uri.Scheme = "https", True) Then - - ' Throw New Exception(rest.LastErrorText) - ' failureDesc = rest.LastErrorText - ' Return failureDesc - - ' End If - - ' rest.AddHeader("cashboxid", _cashboxId) - ' rest.AddHeader("accesstoken", _accessToken) - - ' Dim response As String - - ' If isGet Then - ' response = rest.FullRequestNoBody("GET", uri.AbsoluteUri & endpoint) - ' Else - - - ' If _country = "AT" Then - ' rest.AddHeader("Content-Type", "text/plain") - ' response = rest.FullRequestString("POST", uri.AbsoluteUri & endpoint, payload) - ' Else - ' rest.AddHeader("Content-Type", "application/json") - ' response = rest.FullRequestString("POST", uri.AbsoluteUri & endpoint, payload) - ' End If - - - ' End If - - ' If rest.ResponseStatusCode >= 200 AndAlso rest.ResponseStatusCode < 300 Then - ' Return response - ' Else - ' failureDesc = rest.LastErrorText - ' End If - - ' Throw New Exception("HTTP " & rest.ResponseStatusCode & ": " & response) - - ' Catch ex As Exception - ' lastEx = ex - ' Threading.Thread.Sleep(500) - ' End Try - - ' Next - - ' Throw lastEx - - 'End Function Private Function SendChilkat(endpoint As String, payload As String, Optional isGet As Boolean = False) As String @@ -277,11 +227,7 @@ Public Class cFiskaltrustClient_chilkat rest.AddHeader("Content-Type", "application/json") End If - response = rest.FullRequestString( - "POST", - uri.AbsoluteUri & endpoint, - payload - ) + response = rest.FullRequestString("POST", uri.AbsoluteUri & endpoint, payload) End If @@ -361,8 +307,8 @@ Public Class cFiskaltrustClient_chilkat json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o")) + Dim receipCase - Dim receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction If _receiptCase = "Storno" Then @@ -381,7 +327,18 @@ Public Class cFiskaltrustClient_chilkat json.UpdateString("cbReceiptReference", Guid.NewGuid().ToString()) ' Normal sale + + 'Select Case _receiptCase + ' Case "Eingang" + ' receipCase = FtReceiptCases.CashIn Or FtReceiptCases.ImplicitTransaction + ' Case "Ausgang" + ' receipCase = FtReceiptCases.CashOut Or FtReceiptCases.ImplicitTransaction + ' Case Else receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction + 'End Select + + + End If @@ -467,7 +424,7 @@ Public Class cFiskaltrustClient_chilkat json.UpdateString("ftPosSystemId", getVersion(posSystemId)) json.UpdateString("cbTerminalID", posSystemId) json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o")) - json.UpdateString("ftReceiptCase", (FtReceiptCases.InitialOperation).ToString()) + json.UpdateString("ftReceiptCase", (FtReceiptCases.InitialOperation Or FtReceiptCases.ImplicitTransaction).ToString()) json.UpdateString("cbReceiptReference", "INIT") json.UpdateString("cbUser", "Admin") @@ -489,7 +446,7 @@ Public Class cFiskaltrustClient_chilkat json.UpdateString("ftPosSystemId", getVersion(posSystemId)) json.UpdateString("cbTerminalID", posSystemId) json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o")) - json.UpdateString("ftReceiptCase", (FtReceiptCases.OutOfOperation).ToString()) + json.UpdateString("ftReceiptCase", (FtReceiptCases.OutOfOperation Or FtReceiptCases.ImplicitTransaction).ToString()) json.UpdateString("cbReceiptReference", "OutOfOperation") json.UpdateString("cbUser", "Admin") json.UpdateString("ftReceiptCaseData", "") @@ -573,7 +530,7 @@ Public Class cFiskaltrustClient_chilkat End Function Private Function getVersion(Terminal_ID As String) As String - Return Terminal_ID & "_" & Application.ProductVersion + Return Terminal_ID '& "_" & Application.ProductVersion End Function Public Function saveRKSV_FT(ByRef result_zahlung As String, ByRef QR_CodeString As String, ByRef beleg_temp As EABeleg, ByRef isStorno As Boolean) As Boolean @@ -615,17 +572,19 @@ Public Class cFiskaltrustClient_chilkat .ftCashBoxIdentification = json.StringOf("ftCashBoxIdentification") .ftReceiptIdentification = json.StringOf("ftReceiptIdentification") .ftReceiptMoment = ftReceiptMoment.GetAsTimestamp(getAsLocal) - .ftState = json.StringOf("ftState") - saved = .SAVE() + .ftState = json.StringOf("ftState") + .ftBeleg_ID = beleg_temp.BelegNr + saved = .SAVE() - If saved AndAlso beleg_temp IsNot Nothing Then + If saved AndAlso beleg_temp IsNot Nothing Then If isStorno Then beleg_temp.FT_ReceiptReference_Storno = .cbReceiptReference beleg_temp.SAVE() Else - beleg_temp.FT_ReceiptReference = .cbReceiptReference - End If + beleg_temp.FT_ReceiptReference = .cbReceiptReference + beleg_temp.SAVE() + End If End If @@ -634,11 +593,12 @@ Public Class cFiskaltrustClient_chilkat Dim num As Integer = json.SizeOfArray("ftSignatures") - If num = 0 Then - Return False - End If + If num = 0 Then + MsgBox("Signatureinheit liefert keine (gültige) Signatur, Signatureinheit ausgefallen!") + Return True + End If - Dim Signatures As Chilkat.JsonArray = json.ArrayOf("ftSignatures") + Dim Signatures As Chilkat.JsonArray = json.ArrayOf("ftSignatures") If (json.LastMethodSuccess = False) Then Return False End If @@ -657,9 +617,7 @@ Public Class cFiskaltrustClient_chilkat .ftSignatureFormat = SignObj.StringOf("ftSignatureFormat") .ftSignatureType = SignObj.StringOf("ftSignatureType") saved = .SAVE() - 'If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True, 0, 3) Then - ' QR_CodeString = .ftData - 'End If + End With diff --git a/SDL/Classes/cRKSV.vb b/SDL/Classes/cRKSV.vb index f2fc2954..0f51914b 100644 --- a/SDL/Classes/cRKSV.vb +++ b/SDL/Classes/cRKSV.vb @@ -89,7 +89,7 @@ Public Class cRKSV End Function - Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, beleg_temp As EABeleg, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, ByRef QR_CodeString As String, ByRef LastJWS As String) As Boolean + Shared Function insertRKSVFiskaltrustAsync(ByVal kasse As cRKSV_Kasse, beleg_temp As EABeleg, ByVal RKSV_Beleg_Id As Integer, ByVal summeBRUTTO As Double, TEST As Boolean, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef typOfReceiptCase As String) As Boolean Try @@ -133,7 +133,7 @@ Public Class cRKSV '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) + Dim result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id, typOfReceiptCase) If result <> "" Then Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, False) Else @@ -1015,7 +1015,7 @@ Public Class cRKSV 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.ChancelReceipt(beleg_temp.FT_ReceiptReference, beleg_temp.rksv_umsatz, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id) If result <> "" Then - Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, True) + client.saveRKSV_FT(result, QR_CodeString, beleg_temp, True) Else Return False End If @@ -1325,7 +1325,7 @@ Public Class cRKSV rpt.picVERAG.Image = My.Resources.FrontOfficeSUB rpt.lblFirma_Name.Text = "Front-Office Suben eG" rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 " - Case "FT DE-KLIPPHAUSEN" + Case "FT DE-KLIPPHAUSEN", "TEST-KASSE FT DE" 'Default Werte: rpt.picVERAG.Image = My.Resources.Klipphausen_Logo rpt.lblFirma_Name.Text = "Front-Office Klipphausen GmbH" diff --git a/SDL/Classes/cRKSV_Kasse.vb b/SDL/Classes/cRKSV_Kasse.vb index 9c139262..18c17044 100644 --- a/SDL/Classes/cRKSV_Kasse.vb +++ b/SDL/Classes/cRKSV_Kasse.vb @@ -32,6 +32,10 @@ Public Class cRKSV_Kasse Property rksv_FT_ZeroReceiptCreated As Object = Nothing + Property rksv_FT_InitialStartCreated As Object = Nothing + + Property rksv_FT_OutOfOrderCreated As Object = Nothing + Dim SQL As New SQL @@ -202,6 +206,38 @@ Public Class cRKSV_Kasse Return False End Function + Public Function SET_OUTOFORDERBELEG() As Boolean + Try + Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand(" UPDATE [tblRKSV_Kassen] SET rksv_FT_OutOfOrderCreated = getDate() WHERE rksv_id=@rksv_id", conn) + cmd.Parameters.AddWithValue("@rksv_id", rksv_id) + Dim dr = cmd.ExecuteReader() + dr.Close() + End Using + End Using + Return True + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return False + End Function + + Public Function SET_INITIALSTARTBELEG() As Boolean + Try + Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand(" UPDATE [tblRKSV_Kassen] SET rksv_FT_InitialStartCreated = getDate() WHERE rksv_id=@rksv_id", conn) + cmd.Parameters.AddWithValue("@rksv_id", rksv_id) + Dim dr = cmd.ExecuteReader() + dr.Close() + End Using + End Using + Return True + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return False + End Function + Public Function SAVE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList() @@ -250,6 +286,8 @@ Public Class cRKSV_Kasse Me.rksv_FT_RestServiceURL = cSqlDb.checkNullReturnValue(dr.Item("rksv_FT_RestServiceURL"), Nothing) Me.rksv_FT_Country = cSqlDb.checkNullReturnValue(dr.Item("rksv_FT_Country"), Nothing) Me.rksv_FT_ZeroReceiptCreated = cSqlDb.checkNullReturnValue(dr.Item("rksv_FT_ZeroReceiptCreated"), Nothing) + Me.rksv_FT_OutOfOrderCreated = cSqlDb.checkNullReturnValue(dr.Item("rksv_FT_OutOfOrderCreated"), Nothing) + Me.rksv_FT_InitialStartCreated = cSqlDb.checkNullReturnValue(dr.Item("rksv_FT_InitialStartCreated"), Nothing) End If dr.Close() @@ -292,6 +330,8 @@ Public Class cRKSV_Kasse list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_FT_RestServiceURL", rksv_FT_RestServiceURL)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_FT_Country", rksv_FT_Country)) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_FT_ZeroReceiptCreated", rksv_FT_ZeroReceiptCreated)) + list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_FT_InitialStartCreated", rksv_FT_InitialStartCreated)) + list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_FT_OutOfOrderCreated", rksv_FT_OutOfOrderCreated)) Return list diff --git a/SDL/kassenbuch/frmBelegNeu.vb b/SDL/kassenbuch/frmBelegNeu.vb index 801876a5..52ea50ad 100644 --- a/SDL/kassenbuch/frmBelegNeu.vb +++ b/SDL/kassenbuch/frmBelegNeu.vb @@ -1704,15 +1704,17 @@ Public Class frmBelegNeu Dim answer = "" Dim verarbeitet As Boolean = False + Dim isFiskaltrust As Boolean = False If KASSE.rksv_FT_RestServiceURL <> "" Then - Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, QR_CodeString, LastJWS) + Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, QR_CodeString, LastJWS, "Verkauf") 'result.Wait() verarbeitet = result + isFiskaltrust = True 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 - If Not verarbeitet Then + If Not verarbeitet AndAlso Not isFiskaltrust Then If Not TESTBUCHUNG Then KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, If(EA = "E", summeBRUTTO * -1, summeBRUTTO)) @@ -1724,7 +1726,7 @@ Public Class frmBelegNeu VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(Errmsg, "", System.Reflection.MethodInfo.GetCurrentMethod.Name) Me.Cursor = Cursors.Default : warnClose = False : Me.Close() : Exit Sub End If - KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) + If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) End If @@ -1894,7 +1896,7 @@ Public Class frmBelegNeu Private Sub cboKassen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKassen.SelectedIndexChanged KASSE.LOAD(cboKassen._value) - Button4.Visible = KASSE.rksv_FT_RestServiceURL <> "" + 'Button4.Visible = KASSE.rksv_FT_RestServiceURL <> "" End Sub diff --git a/SDL/kassenbuch/frmFremdbeleg.vb b/SDL/kassenbuch/frmFremdbeleg.vb index 070900a9..57b3e6f8 100644 --- a/SDL/kassenbuch/frmFremdbeleg.vb +++ b/SDL/kassenbuch/frmFremdbeleg.vb @@ -224,11 +224,13 @@ Public Class frmFremdbeleg End If Dim answer = "" + Dim isFiskaltrust As Boolean = False If KASSE.rksv_aktiv Then 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) + Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, IIf(Art = 1, "Eingang", "Ausgang")) 'result.Wait() verarbeitet = result Else @@ -236,7 +238,7 @@ Public Class frmFremdbeleg End If - If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service + If Not verarbeitet AndAlso Not isFiskaltrust Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service If Not TESTBUCHUNG Then KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, BELEG.rksv_umsatz * -1) cRKSV.DELETE(BELEG, KASSE.rksv_firma) @@ -269,7 +271,7 @@ Public Class frmFremdbeleg End If - KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) + If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) 'RKSV-Daten beim Beleg ergänzen: BELEG.rksv_jws = LastJWS diff --git a/SDL/kassenbuch/frmKassenbuch.Designer.vb b/SDL/kassenbuch/frmKassenbuch.Designer.vb index 035940eb..297c5128 100644 --- a/SDL/kassenbuch/frmKassenbuch.Designer.vb +++ b/SDL/kassenbuch/frmKassenbuch.Designer.vb @@ -66,6 +66,7 @@ Partial Class frmKassenbuch Me.Label14 = New System.Windows.Forms.Label() Me.Label13 = New System.Windows.Forms.Label() Me.pnlMain = New System.Windows.Forms.Panel() + Me.lblFiskaltrustHeader = New System.Windows.Forms.Label() Me.picTSEOnline = New System.Windows.Forms.PictureBox() Me.lblTSEOnline = New System.Windows.Forms.Label() Me.picNULLbeleg = New System.Windows.Forms.PictureBox() @@ -94,7 +95,8 @@ Partial Class frmKassenbuch Me.UsrCntlTestsystem1 = New VERAG_PROG_ALLGEMEIN.usrCntlTestsystem() Me.Button1 = New System.Windows.Forms.Button() Me.cm_FT = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.lblFiskaltrustHeader = New System.Windows.Forms.Label() + Me.lblInitStart = New System.Windows.Forms.Label() + Me.pbInitialStart = New System.Windows.Forms.PictureBox() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DataGridView2, System.ComponentModel.ISupportInitialize).BeginInit() Me.pnlTop.SuspendLayout() @@ -108,6 +110,7 @@ Partial Class frmKassenbuch CType(Me.picMonats, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picTages, System.ComponentModel.ISupportInitialize).BeginInit() Me.pnl.SuspendLayout() + CType(Me.pbInitialStart, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'Label2 @@ -623,6 +626,8 @@ Partial Class frmKassenbuch ' 'pnlMain ' + Me.pnlMain.Controls.Add(Me.pbInitialStart) + Me.pnlMain.Controls.Add(Me.lblInitStart) Me.pnlMain.Controls.Add(Me.lblFiskaltrustHeader) Me.pnlMain.Controls.Add(Me.picTSEOnline) Me.pnlMain.Controls.Add(Me.lblTSEOnline) @@ -663,11 +668,21 @@ Partial Class frmKassenbuch Me.pnlMain.Size = New System.Drawing.Size(778, 433) Me.pnlMain.TabIndex = 425 ' + 'lblFiskaltrustHeader + ' + Me.lblFiskaltrustHeader.AutoSize = True + Me.lblFiskaltrustHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblFiskaltrustHeader.Location = New System.Drawing.Point(611, 20) + Me.lblFiskaltrustHeader.Name = "lblFiskaltrustHeader" + Me.lblFiskaltrustHeader.Size = New System.Drawing.Size(65, 13) + Me.lblFiskaltrustHeader.TabIndex = 450 + Me.lblFiskaltrustHeader.Text = "Fiskaltrust" + ' 'picTSEOnline ' Me.picTSEOnline.BackgroundImage = Global.SDL.My.Resources.Resources.ok Me.picTSEOnline.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picTSEOnline.Location = New System.Drawing.Point(614, 46) + Me.picTSEOnline.Location = New System.Drawing.Point(614, 42) Me.picTSEOnline.Name = "picTSEOnline" Me.picTSEOnline.Size = New System.Drawing.Size(27, 20) Me.picTSEOnline.TabIndex = 449 @@ -679,7 +694,7 @@ Partial Class frmKassenbuch Me.lblTSEOnline.AutoSize = True Me.lblTSEOnline.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblTSEOnline.ForeColor = System.Drawing.Color.Black - Me.lblTSEOnline.Location = New System.Drawing.Point(655, 50) + Me.lblTSEOnline.Location = New System.Drawing.Point(655, 46) Me.lblTSEOnline.Name = "lblTSEOnline" Me.lblTSEOnline.Size = New System.Drawing.Size(75, 16) Me.lblTSEOnline.TabIndex = 448 @@ -690,7 +705,7 @@ Partial Class frmKassenbuch ' Me.picNULLbeleg.BackgroundImage = Global.SDL.My.Resources.Resources.ok Me.picNULLbeleg.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picNULLbeleg.Location = New System.Drawing.Point(614, 72) + Me.picNULLbeleg.Location = New System.Drawing.Point(614, 93) Me.picNULLbeleg.Name = "picNULLbeleg" Me.picNULLbeleg.Size = New System.Drawing.Size(27, 20) Me.picNULLbeleg.TabIndex = 447 @@ -702,7 +717,7 @@ Partial Class frmKassenbuch Me.lblNullBeleg.AutoSize = True Me.lblNullBeleg.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblNullBeleg.ForeColor = System.Drawing.Color.Black - Me.lblNullBeleg.Location = New System.Drawing.Point(655, 76) + Me.lblNullBeleg.Location = New System.Drawing.Point(655, 97) Me.lblNullBeleg.Name = "lblNullBeleg" Me.lblNullBeleg.Size = New System.Drawing.Size(81, 16) Me.lblNullBeleg.TabIndex = 446 @@ -714,7 +729,7 @@ Partial Class frmKassenbuch Me.lblJahres.AutoSize = True Me.lblJahres.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblJahres.ForeColor = System.Drawing.Color.Black - Me.lblJahres.Location = New System.Drawing.Point(655, 154) + Me.lblJahres.Location = New System.Drawing.Point(655, 177) Me.lblJahres.Name = "lblJahres" Me.lblJahres.Size = New System.Drawing.Size(109, 16) Me.lblJahres.TabIndex = 445 @@ -726,7 +741,7 @@ Partial Class frmKassenbuch Me.lblMonats.AutoSize = True Me.lblMonats.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblMonats.ForeColor = System.Drawing.Color.Black - Me.lblMonats.Location = New System.Drawing.Point(655, 128) + Me.lblMonats.Location = New System.Drawing.Point(655, 151) Me.lblMonats.Name = "lblMonats" Me.lblMonats.Size = New System.Drawing.Size(112, 16) Me.lblMonats.TabIndex = 444 @@ -738,7 +753,7 @@ Partial Class frmKassenbuch Me.lblTages.AutoSize = True Me.lblTages.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblTages.ForeColor = System.Drawing.Color.Black - Me.lblTages.Location = New System.Drawing.Point(655, 102) + Me.lblTages.Location = New System.Drawing.Point(655, 125) Me.lblTages.Name = "lblTages" Me.lblTages.Size = New System.Drawing.Size(108, 16) Me.lblTages.TabIndex = 443 @@ -749,7 +764,7 @@ Partial Class frmKassenbuch ' Me.picJahres.BackgroundImage = Global.SDL.My.Resources.Resources.ok Me.picJahres.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picJahres.Location = New System.Drawing.Point(614, 150) + Me.picJahres.Location = New System.Drawing.Point(614, 173) Me.picJahres.Name = "picJahres" Me.picJahres.Size = New System.Drawing.Size(27, 20) Me.picJahres.TabIndex = 442 @@ -760,7 +775,7 @@ Partial Class frmKassenbuch ' Me.picMonats.BackgroundImage = Global.SDL.My.Resources.Resources.ok Me.picMonats.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picMonats.Location = New System.Drawing.Point(614, 124) + Me.picMonats.Location = New System.Drawing.Point(614, 147) Me.picMonats.Name = "picMonats" Me.picMonats.Size = New System.Drawing.Size(27, 20) Me.picMonats.TabIndex = 441 @@ -771,7 +786,7 @@ Partial Class frmKassenbuch ' Me.picTages.BackgroundImage = Global.SDL.My.Resources.Resources.ok Me.picTages.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picTages.Location = New System.Drawing.Point(614, 98) + Me.picTages.Location = New System.Drawing.Point(614, 121) Me.picTages.Name = "picTages" Me.picTages.Size = New System.Drawing.Size(27, 20) Me.picTages.TabIndex = 440 @@ -1010,15 +1025,28 @@ Partial Class frmKassenbuch Me.cm_FT.Name = "ContextMenuStrip1" Me.cm_FT.Size = New System.Drawing.Size(61, 4) ' - 'lblFiskaltrustHeader + 'lblInitStart ' - Me.lblFiskaltrustHeader.AutoSize = True - Me.lblFiskaltrustHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblFiskaltrustHeader.Location = New System.Drawing.Point(611, 20) - Me.lblFiskaltrustHeader.Name = "lblFiskaltrustHeader" - Me.lblFiskaltrustHeader.Size = New System.Drawing.Size(65, 13) - Me.lblFiskaltrustHeader.TabIndex = 450 - Me.lblFiskaltrustHeader.Text = "Fiskaltrust" + Me.lblInitStart.AutoSize = True + Me.lblInitStart.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblInitStart.ForeColor = System.Drawing.Color.Black + Me.lblInitStart.Location = New System.Drawing.Point(655, 71) + Me.lblInitStart.Name = "lblInitStart" + Me.lblInitStart.Size = New System.Drawing.Size(70, 16) + Me.lblInitStart.TabIndex = 451 + Me.lblInitStart.Text = "Initial Start " + Me.lblInitStart.Visible = False + ' + 'pbInitialStart + ' + Me.pbInitialStart.BackgroundImage = Global.SDL.My.Resources.Resources.ok + Me.pbInitialStart.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.pbInitialStart.Location = New System.Drawing.Point(614, 67) + Me.pbInitialStart.Name = "pbInitialStart" + Me.pbInitialStart.Size = New System.Drawing.Size(27, 20) + Me.pbInitialStart.TabIndex = 452 + Me.pbInitialStart.TabStop = False + Me.pbInitialStart.Visible = False ' 'frmKassenbuch ' @@ -1051,6 +1079,7 @@ Partial Class frmKassenbuch CType(Me.picTages, System.ComponentModel.ISupportInitialize).EndInit() Me.pnl.ResumeLayout(False) Me.pnl.PerformLayout() + CType(Me.pbInitialStart, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub @@ -1125,4 +1154,6 @@ Partial Class frmKassenbuch Friend WithEvents picTSEOnline As PictureBox Friend WithEvents lblTSEOnline As Label Friend WithEvents lblFiskaltrustHeader As Label + Friend WithEvents pbInitialStart As PictureBox + Friend WithEvents lblInitStart As Label End Class diff --git a/SDL/kassenbuch/frmKassenbuch.vb b/SDL/kassenbuch/frmKassenbuch.vb index 802b94c2..211841ec 100644 --- a/SDL/kassenbuch/frmKassenbuch.vb +++ b/SDL/kassenbuch/frmKassenbuch.vb @@ -14,12 +14,17 @@ Public Class frmKassenbuch Dim loginAfterSeconds = 10 Public master_Kasse As Boolean = False Dim FMZOLL_SQL As New FMZOLL_SQL + Dim tagesabschlussIsSet As Boolean = False Dim monatsabschlussIsSet As Boolean = False Dim jahresabschlussIsSet As Boolean = False Dim NULLBelegIsCreated As Boolean = True + Dim InitialStartIsCreated As Boolean = True + Dim OutOfOrderIsCreated As Boolean = False Dim TSEIsOnline As Boolean = False + Dim isADMIN As Boolean = False + Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() @@ -65,7 +70,8 @@ Public Class frmKassenbuch If PERSONAL.ID = 274 Then master_Kasse = True If VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ADMIN" Or VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "SIENER" Or VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "DANIEL" Then - Button6.Visible = True + isADMIN = True + End If KennwortTime = Now initDgv() 'nur set @@ -93,29 +99,36 @@ Public Class frmKassenbuch End If + If isADMIN Then + Button6.Visible = True + End If End Sub - Private Sub InitFiskaltrust(isOnline As Boolean, tagesabschluss As Boolean, Montagsabschluss As Boolean, Jahresabschluss As Boolean, NULLBeleg As Boolean) + Private Sub InitFiskaltrust(isOnline As Boolean, tagesabschluss As Boolean, Montagsabschluss As Boolean, Jahresabschluss As Boolean, NULLBeleg As Boolean, initialStart As Boolean) lblTSEOnline.Visible = True lblTages.Visible = True lblMonats.Visible = True lblJahres.Visible = True lblNullBeleg.Visible = True + lblInitStart.Visible = True + picJahres.Visible = True picMonats.Visible = True picTages.Visible = True picNULLbeleg.Visible = True picTSEOnline.Visible = True + pbInitialStart.Visible = True showPic(isOnline, picTSEOnline) showPic(tagesabschluss, picTages) showPic(monatsabschlussIsSet, picMonats) showPic(Jahresabschluss, picJahres) showPic(NULLBeleg, picNULLbeleg) + showPic(initialStart, pbInitialStart) End Sub @@ -196,14 +209,17 @@ Public Class frmKassenbuch End If - If PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_Country = "DE" AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing Then + If PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing Then + + resetFIskaltrust() + lbldailyCashboxClosing.Visible = True Button11.Visible = True Dim tagesabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) If tagesabschluss > 0 Then tagesabschlussIsSet = True - Dim monatsabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Day(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) + Dim monatsabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) If monatsabschluss > 0 Then monatsabschlussIsSet = True Dim jahresabschluss As Integer = CInt(SQL.getValueTxtBySql("SELECT count(*) FROM [VERAG].[dbo].[tblRKSV_FT] where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is not null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "'", "FMZOLL")) @@ -212,6 +228,17 @@ Public Class frmKassenbuch NULLBelegIsCreated = False End If + If Not (PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_OutOfOrderCreated)) Then + + OutOfOrderIsCreated = True + + End If + + + If PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated Is Nothing OrElse IsDBNull(PERSONAL.cRKSV_Kasse.rksv_FT_InitialStartCreated) Then + InitialStartIsCreated = False + End If + 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) Dim result As String = client_chilkat.Echo(PERSONAL.cRKSV_Kasse.rksv_bez & " " & PERSONAL.cRKSV_Kasse.rksv_FT_Country & " - ") @@ -219,24 +246,14 @@ Public Class frmKassenbuch TSEIsOnline = True End If - InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated) + InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated) If Not NULLBelegIsCreated Then - lblWarning.Text = "" '"Es wurde noch kein NULL-Beleg über FT erstellt!" - btnBelegKunde.Enabled = False - btnBelegAusgang.Enabled = False - btnBelegEingang.Enabled = False - btnBelegGSKunde.Enabled = False - btnBelegLeihgeld.Enabled = False - btnStorno.Enabled = False + diasableBarverkauf("NULLBELEG") ElseIf tagesabschlussIsSet Then - lbldailyCashboxClosing.Text = "Tagesabschluss für heute wurde bereits durchgeführt!" - btnBelegKunde.Enabled = False - btnBelegAusgang.Enabled = False - btnBelegEingang.Enabled = False - btnBelegGSKunde.Enabled = False - btnBelegLeihgeld.Enabled = False - btnStorno.Enabled = False + diasableBarverkauf("TAGESABSCHLUSS") + ElseIf OutOfOrderIsCreated Then + diasableBarverkauf("OUTOFORDER") Else If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KASSE", Me) Then btnBelegKunde.Enabled = True @@ -256,6 +273,36 @@ Public Class frmKassenbuch ' Label9.Text = PERSONAL.Name DataGridView2.ClearSelection() End Sub + + Private Sub diasableBarverkauf(status) + + Select Case status + Case "NULLBELEG" : lbldailyCashboxClosing.Text = "Es wurde noch kein 0-Beleg über FT erstellt!" + Case "TAGESABSCHLUSS" : lbldailyCashboxClosing.Text = "Tagesabschluss für heute wurde bereits durchgeführt!" + Case "OUTOFORDER" : lbldailyCashboxClosing.Text = "STATUS: INAKTIV!" + End Select + + btnBelegKunde.Enabled = False + btnBelegAusgang.Enabled = False + btnBelegEingang.Enabled = False + btnBelegGSKunde.Enabled = False + btnBelegLeihgeld.Enabled = False + btnStorno.Enabled = False + + + End Sub + + Private Sub resetFIskaltrust() + + tagesabschlussIsSet = False + monatsabschlussIsSet = False + jahresabschlussIsSet = False + NULLBelegIsCreated = True + InitialStartIsCreated = True + OutOfOrderIsCreated = False + TSEIsOnline = False + + End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click searchdate = searchdate.AddMonths(1) initDate() @@ -1501,13 +1548,13 @@ Public Class frmKassenbuch If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then 'nur im Testsystem! - If Not cm_FT.Items.ContainsKey("bar") Then + If Not cm_FT.Items.ContainsKey("bar") AndAlso isADMIN Then Dim ids = New ToolStripMenuItem() With {.Text = "Barverkauf", .Name = "bar", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(ids) End If - If Not cm_FT.Items.ContainsKey("storno") Then + If Not cm_FT.Items.ContainsKey("storno") AndAlso isADMIN Then Dim ids = New ToolStripMenuItem() With {.Text = "Storno", .Name = "storno", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(ids) @@ -1515,25 +1562,37 @@ Public Class frmKassenbuch End If - If Not cm_FT.Items.ContainsKey("null") Then + 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("monthly") AndAlso Not monatsabschlussIsSet Then + 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)} + cm_FT.Items.Add(plose) + AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked + End If + + If Not cm_FT.Items.ContainsKey("initialstart") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then + Dim plose = New ToolStripMenuItem() With {.Text = "Initial Start", .Name = "initialstart", .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("monthly") AndAlso Not monatsabschlussIsSet AndAlso Not OutOfOrderIsCreated Then Dim rmc = New ToolStripMenuItem() With {.Text = "Monatabschluss", .Name = "monthly", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(rmc) End If - If Not cm_FT.Items.ContainsKey("daily") AndAlso Not tagesabschlussIsSet Then + If Not cm_FT.Items.ContainsKey("daily") AndAlso Not tagesabschlussIsSet AndAlso Not OutOfOrderIsCreated Then Dim rmc = New ToolStripMenuItem() With {.Text = "Tagesabschluss", .Name = "daily", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(rmc) End If - If Not cm_FT.Items.ContainsKey("yearly") AndAlso Not jahresabschlussIsSet Then + If Not cm_FT.Items.ContainsKey("yearly") AndAlso Not jahresabschlussIsSet AndAlso Not OutOfOrderIsCreated Then Dim uta = New ToolStripMenuItem() With {.Text = "Jahresabschluss", .Name = "yearly", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler uta.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(uta) @@ -1551,19 +1610,19 @@ Public Class frmKassenbuch cm_FT.Items.Add(ids) End If - If Not cm_FT.Items.ContainsKey("signatures") Then + If Not cm_FT.Items.ContainsKey("signatures") AndAlso isADMIN Then Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Signaturen", .Name = "signatures", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(ids) End If - If Not cm_FT.Items.ContainsKey("action") Then + If Not cm_FT.Items.ContainsKey("action") AndAlso isADMIN Then Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Action", .Name = "action", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(ids) End If - If Not cm_FT.Items.ContainsKey("queueitem") Then + If Not cm_FT.Items.ContainsKey("queueitem") AndAlso isADMIN Then Dim ids = New ToolStripMenuItem() With {.Text = "Journal - Queue", .Name = "queueitem", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)} AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked cm_FT.Items.Add(ids) @@ -1593,7 +1652,13 @@ Public Class frmKassenbuch If item.Name = "null" Then - If vbYes = MsgBox("Möchten Sie einen 0-Beleg an die TSE schicken?", vbYesNoCancel) 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) @@ -1611,6 +1676,47 @@ Public Class frmKassenbuch + ElseIf item.Name = "outoforder" Then + + + If vbYes = MsgBox("Möchten Sie einen OutOfOrder an die TSE schicken?" & vbNewLine & "Die Queue dauerhaft geschlossen und kann NICHT reaktiviert werden!", 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 + + End If + + + ElseIf item.Name = "initialstart" Then + + + If vbYes = MsgBox("Möchten Sie einen Start an die TSE schicken?", vbYesNoCancel) Then + + Dim result As String = client_chilkat.SignOInitialOperationReceipt(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 + + End If + + + ElseIf item.Name = "verbindungstest" Then Dim result As String = client_chilkat.Echo(PERSONAL.cRKSV_Kasse.rksv_bez & " " & PERSONAL.cRKSV_Kasse.rksv_FT_Country & " - ") @@ -1623,7 +1729,7 @@ Public Class frmKassenbuch ElseIf item.Name = "storno" Then - If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM AndAlso isADMIN Then If vbYes = MsgBox("Möchten Sie wirklich einen Teststorno durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then @@ -1644,7 +1750,7 @@ Public Class frmKassenbuch ElseIf item.Name = "bar" Then - If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM AndAlso isADMIN Then If vbYes = MsgBox("Möchten Sie wirklich einen Testzahlung durchführen?" & vbNewLine & "NIEMALS auf einer produktiven TSE durchführen!", vbYesNoCancel) Then @@ -1676,58 +1782,75 @@ Public Class frmKassenbuch ElseIf item.Name = "monthly" Then - If vbYes = MsgBox("Möchten Sie einen Monatsbeleg an die TSE schicken, anschließend kann in diesem Monat kein Beleg mehr signiert werden!", vbYesNoCancel) Then + If Not monatsabschlussIsSet Then + If vbYes = MsgBox("Möchten Sie einen Monatsbeleg an die TSE schicken, anschließend kann in diesem Monat kein Beleg mehr signiert werden!", vbYesNoCancel) Then - Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name) - - If result <> "" Then - - MsgBox(client_chilkat.PrettyPrintJson(result)) - - SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfMonthReceipt = getDate() where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") - - End If - - End If - - - ElseIf item.Name = "daily" And Not tagesabschlussIsSet Then - 'Nur DE - 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 MsgBox(client_chilkat.PrettyPrintJson(result)) - 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() + SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfMonthReceipt = getDate() where Month(ftReceiptMoment) = Month(GETDATE()) and ftEndOfMonthReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") + End If - Else - MsgBox("nicht für AT-Kassen möglich!") + End If + Else + MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Monatsabschluss erstellt!") End If + ElseIf item.Name = "daily" And Not tagesabschlussIsSet Then + 'Nur DE + + If Not tagesabschlussIsSet Then + + 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 + + MsgBox(client_chilkat.PrettyPrintJson(result)) + + 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!") + + End If ElseIf item.Name = "yearly" Then - If vbYes = MsgBox("Möchten Sie einen Jahresbeleg an die TSE schicken, anschließend kann in diesem Jahr kein Beleg mehr signiert werden!", vbYesNoCancel) Then + If Not jahresabschlussIsSet Then + + If vbYes = MsgBox("Möchten Sie einen Jahresbeleg an die TSE schicken, anschließend kann in diesem Jahr kein Beleg mehr signiert werden!", vbYesNoCancel) Then - Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name) - If result <> "" Then + Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name) + If result <> "" Then - MsgBox(client_chilkat.PrettyPrintJson(result)) + MsgBox(client_chilkat.PrettyPrintJson(result)) - SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfYearReceipt = getDate() where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") + SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfYearReceipt = getDate() where Year(ftReceiptMoment) = Year(GETDATE()) and ftEndOfYearReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL") + + End If End If + Else + MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Jahresabschluss erstellt!") End If + ElseIf (item.Name = "version" Or item.Name = "action" Or item.Name = "signatures" Or item.Name = "queueitem" Or item.Name = "exportJournal") Then Dim result As String = "" diff --git a/SDL/kassenbuch/frmNacherfassungLeihgeld.vb b/SDL/kassenbuch/frmNacherfassungLeihgeld.vb index b735bd89..a70a0a39 100644 --- a/SDL/kassenbuch/frmNacherfassungLeihgeld.vb +++ b/SDL/kassenbuch/frmNacherfassungLeihgeld.vb @@ -362,20 +362,21 @@ Public Class frmNacherfassungLeihgeld ' QR_Image = Nothing Dim QR_CodeString As String = "" Dim LastJWS As String = "" + Dim isFiskaltrust As Boolean = False If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV gilt Dim answer = "" 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) + Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, "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 - If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service + If Not verarbeitet AndAlso Not isFiskaltrust Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service If Not TESTBUCHUNG Then KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1) cRKSV.DELETE(BELEG, KASSE.rksv_firma) @@ -403,7 +404,7 @@ Public Class frmNacherfassungLeihgeld ' MsgBox("Programmfehler bei der digitalen Signatur.") Me.Cursor = Cursors.Default : Me.Close() : Exit Sub End If - KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) + If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString) 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX If KASSE.rksv_KassaGuid = "KASSE_01" Then BELEG.rksv_jws = Nothing