diff --git a/SDL/Classes/cEABeleg.vb b/SDL/Classes/cEABeleg.vb
index 0a463382..dbf7ec60 100644
--- a/SDL/Classes/cEABeleg.vb
+++ b/SDL/Classes/cEABeleg.vb
@@ -282,6 +282,9 @@ Public Class EABeleg
Property ECZahlungsPerAPI As Boolean = False
Property ECTerminalreturnCode As Object = Nothing
Property EC_daid As Integer = 0
+ Property FT_ReceiptReference As Object = Nothing
+
+ Property FT_ReceiptReference_Storno As Object = Nothing
Property POS As New List(Of EABelegPositionen)
@@ -362,6 +365,8 @@ Public Class EABeleg
Me.ECZahlungsPerAPI = cSqlDb.checkNullReturnValue(dr.Item("ECZahlungsPerAPI"), Nothing)
Me.ECTerminalreturnCode = cSqlDb.checkNullReturnValue(dr.Item("ECTerminalreturnCode"), Nothing)
Me.EC_daid = cSqlDb.checkNullReturnValue(dr.Item("EC_daid"), Nothing)
+ Me.FT_ReceiptReference = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference"), Nothing)
+ Me.FT_ReceiptReference_Storno = cSqlDb.checkNullReturnValue(dr.Item("FT_ReceiptReference_Storno"), Nothing)
If loadPosAswell Then POS = LOAD_POS_List(Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
' MsgBox(POS.Count)
@@ -547,6 +552,8 @@ Public Class EABeleg
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECZahlungsPerAPI", ECZahlungsPerAPI))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("ECTerminalreturnCode", ECTerminalreturnCode))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("EC_daid", EC_daid))
+ list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference", FT_ReceiptReference))
+ list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FT_ReceiptReference_Storno", FT_ReceiptReference_Storno))
'For Each p As System.Reflection.PropertyInfo In Me.GetType().GetProperties()
'If p.CanRead Then
diff --git a/SDL/Classes/cFiskaltrustClient_chilkat.vb b/SDL/Classes/cFiskaltrustClient_chilkat.vb
index b1ba50ff..87785ae8 100644
--- a/SDL/Classes/cFiskaltrustClient_chilkat.vb
+++ b/SDL/Classes/cFiskaltrustClient_chilkat.vb
@@ -1,9 +1,13 @@
Imports System.Data.SqlClient
+Imports System.IO
Imports System.Reflection
Imports Chilkat
+Imports Gma.QrCodeNet.Encoding
Imports GrapeCity.DataVisualization.Chart
+Imports itextsharp.text.pdf.qrcode
Imports Newtonsoft.Json
+Imports QRCoder
Public Class FtReceiptCases
@@ -257,71 +261,71 @@ Public Class cFiskaltrustClient_chilkat
json.UpdateString("cbReceiptMoment", DateTime.UtcNow.ToString("o"))
- Dim receipCase As Long
- Select Case _receiptCase
+ Dim receipCase As Long
+ Select Case _receiptCase
- Case "Storno"
- receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction 'Storno
+ Case "Storno"
+ receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ReversalReceipt Or FtReceiptCases.ImplicitTransaction 'Storno
- Case Else
- receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction 'Verkauf
+ Case Else
+ receipCase = FtReceiptCases.PosReceipt Or FtReceiptCases.ImplicitTransaction 'Verkauf
- End Select
+ End Select
- json.UpdateString("ftReceiptCase", receipCase)
+ json.UpdateString("ftReceiptCase", receipCase)
- Dim chargeItems = json.AppendArray("cbChargeItems")
+ Dim chargeItems = json.AppendArray("cbChargeItems")
- For Each p In POS
+ For Each p In POS
- If chargeItems.AddObjectAt(-1) Then
- Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1)
- item.UpdateInt("Quantity", p.Anzahl)
- item.UpdateNumber("Amount", p.Preis.ToString().Replace(",", "."))
- item.UpdateNumber("VATRate", vat.ToString().Replace(",", "."))
- item.UpdateString("Description", p.LeistungsBez)
+ If chargeItems.AddObjectAt(-1) Then
+ Dim item As Chilkat.JsonObject = chargeItems.ObjectAt(chargeItems.Size - 1)
+ item.UpdateInt("Quantity", p.Anzahl)
+ item.UpdateNumber("Amount", p.Preis.ToString().Replace(",", "."))
+ item.UpdateNumber("VATRate", vat.ToString().Replace(",", "."))
+ item.UpdateString("Description", p.LeistungsBez)
- Dim ChargeItemCase As Long
- Select Case vat
+ Dim ChargeItemCase As Long
+ Select Case vat
- Case 19D
- ChargeItemCase = FtChargeItemCase.RevenueNormal
+ Case 19D
+ ChargeItemCase = FtChargeItemCase.RevenueNormal
- Case 7D
- ChargeItemCase = FtChargeItemCase.RevenueReduced
+ Case 7D
+ ChargeItemCase = FtChargeItemCase.RevenueReduced
- Case 0D
- ChargeItemCase = FtChargeItemCase.RevenueTaxFree
+ Case 0D
+ ChargeItemCase = FtChargeItemCase.RevenueTaxFree
- Case Else
- Throw New Exception("Unbekannter Steuersatz")
- End Select
+ Case Else
+ Throw New Exception("Unbekannter Steuersatz")
+ End Select
- item.UpdateString("ftChargeItemCase", ChargeItemCase)
- End If
+ item.UpdateString("ftChargeItemCase", ChargeItemCase)
+ End If
- Next
+ Next
- 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 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)
- Select Case kindOfPayment
- Case "Cash"
- pay.UpdateString("ftPayItemCase", FtPayItemCases.Cash)
- Case "Card"
- pay.UpdateString("ftPayItemCase", FtPayItemCases.DebitCard)
- End Select
+ Select Case kindOfPayment
+ Case "Cash"
+ pay.UpdateString("ftPayItemCase", FtPayItemCases.Cash)
+ Case "Card"
+ pay.UpdateString("ftPayItemCase", FtPayItemCases.DebitCard)
+ End Select
- Return json
+ Return json
End Function
@@ -460,7 +464,7 @@ Public Class cFiskaltrustClient_chilkat
Return Terminal_ID & "_" & Application.ProductVersion
End Function
- Public Function saveRKSV_FT(ByRef result_zahlung As String, ByRef QR_CodeString As String) As Boolean
+ 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
If result_zahlung <> "" Then
Dim json As New Chilkat.JsonObject
@@ -498,6 +502,18 @@ Public Class cFiskaltrustClient_chilkat
.ftState = json.StringOf("ftState")
saved = .SAVE()
+ 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
+
+
+ End If
+
End With
@@ -525,10 +541,29 @@ 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
+ 'If IsNumeric(.ftSignatureType) AndAlso CInt(.ftSignatureType) = IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True, 0, 3) Then
+ ' QR_CodeString = .ftData
+ 'End If
+ 'https://receipts.fiskaltrust.eu/{ftQueueID}/{ftQueueItemID}
+ Dim URL_FT As String = ""
+ If Not String.IsNullOrWhiteSpace(ftSig.ftQueueID) AndAlso Not String.IsNullOrWhiteSpace(ftSig.ftQueueItemID) Then
+ URL_FT = $"https://receipts.fiskaltrust.eu/{ftSig.ftQueueID}/{ftSig.ftQueueItemID}"
+
+ Using qrGenerator As New QRCodeGenerator()
+ Using qrData As QRCodeData = qrGenerator.CreateQrCode(URL_FT, QRCodeGenerator.ECCLevel.Q)
+
+ Dim qrCode As New PngByteQRCode(qrData)
+ Dim qrBytes As Byte() = qrCode.GetGraphic(20)
+ Dim qrBase64 As String = Convert.ToBase64String(qrBytes)
+
+ QR_CodeString = qrBase64
+
+ End Using
+ End Using
+
+
+ End If
End With
Next
diff --git a/SDL/Classes/cRKSV.vb b/SDL/Classes/cRKSV.vb
index c9dd04d9..fb781b8e 100644
--- a/SDL/Classes/cRKSV.vb
+++ b/SDL/Classes/cRKSV.vb
@@ -1,10 +1,7 @@
-Imports System.Net.Http
-Imports System.Text
-Imports GrapeCity.ActiveReports
-Imports GrapeCity.DataVisualization.Options
-Imports Newtonsoft.json
+Imports GrapeCity.ActiveReports
Imports SDL.RKSVServer
Imports VERAG_PROG_ALLGEMEIN.DSFinVKService
+Imports VERAG_PROG_ALLGEMEIN.RKSV_DE_DSFinVKService
Public Class cRKSV
Shared SQL As New SQL
@@ -92,7 +89,7 @@ Public Class cRKSV
End Function
- Shared 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), 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) As Boolean
Try
@@ -103,7 +100,7 @@ Public Class cRKSV
credentials.Username = "Admin"
credentials.Password = "verag#2"
credentials.CashboxID = kasse.rksv_FT_CashboxID
- credentials.CompanyGUID = CompanyGUID
+ credentials.CompanyGUID = kasse.rksv_CompanyGUID
Dim AccessToken As String = kasse.rksv_FT_AccessToken
Dim jws As String = String.Empty
@@ -112,16 +109,18 @@ Public Class cRKSV
'Dim answer As String = String.Empty
Dim Belegnummer = RKSV_Beleg_Id
- Dim BelegDatumUhrzeit = belegDat ' BELEG.BelegDat
+ Dim BelegDatumUhrzeit = beleg_temp.BelegDat
- Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
+ Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & beleg_temp.Steuerschlüssel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
- Dim StandUmsatzzaehler = umsatzZaehler 'KASSE.rksv_Umsatzzaehler
+ Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler
+
+ 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)
@@ -134,9 +133,9 @@ 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, POS, "Cash", kasse.rksv_id)
+ Dim result = client.SignReceipt(summeBRUTTO, steuersatz, beleg_temp.POS, kindOfPayment, kasse.rksv_id)
If result <> "" Then
- Return client.saveRKSV_FT(result, QR_CodeString)
+ Return client.saveRKSV_FT(result, QR_CodeString, beleg_temp, False)
Else
Return False
End If
@@ -144,11 +143,6 @@ Public Class cRKSV
End If
-
-
-
-
-
Catch ex As Exception
MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
Return False
@@ -915,18 +909,13 @@ Public Class cRKSV
Dim client As RKSVWcfClient = New RKSVWcfClient()
client.Endpoint.Address = New System.ServiceModel.EndpointAddress(getRKSVLink(kasse))
client.Open()
- ' svcRKSV.DBUserCredentials m_credentials = new svcRKSV.DBUserCredentials();
+
Dim credentials As New SDL.RKSVServer.DBUserCredentials
credentials.Database = "RKSVWcfDB"
credentials.Server = "AVISO\SQLEXPRESS"
-
-
credentials.Username = "Admin"
credentials.Password = "verag#2"
- 'credentials.CashboxID = kasse '"VERAG-SUB-KASSE-ZOLL"
- 'credentials.CompanyGUID = CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
-
credentials.CashboxID = kasse.rksv_bez '"VERAG-SUB-KASSE-ZOLL"
credentials.CompanyGUID = kasse.rksv_CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
@@ -952,23 +941,6 @@ Public Class cRKSV
Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler 'KASSE.rksv_Umsatzzaehler
-
- ' Dim BetragSatzNormal = summe * -1
- ' Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summe, 0.0) * -1
- ' Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summe, 0.0) * -1
- ' Dim BetragSatzNull = IIf(steuersatz = 0.0, summe, 0.0) * -1
- ' Dim BetragSatzBesonders = IIf(steuersatz = 0.19, summe, 0.0) * -1
- ' Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler
-
- ' Dim BetragSatzBesonders = 0
- ' Dim BetragSatzBesonders = 0
- ' Dim BetragSatzBesonders = 0
- 'client.ExportJWS
-
- ' MsgBox(credentials.CashboxID & " credentials.CashboxID")
- ' MsgBox(credentials.CompanyGUID & " credentials.CompanyGUID")
-
-
If (client.SignStornoReceipt(credentials, Belegnummer, BelegDatumUhrzeit, BetragSatzNormal, BetragSatzErm1, BetragSatzErm2, BetragSatzBesonders, BetragSatzNull, jws, qr, ocra, answer)) Then
QR_CodeString = qr
@@ -996,6 +968,82 @@ Public Class cRKSV
End Try
Return False
End Function
+ Shared Function stornoRKSV_FT(ByVal kasse As cRKSV_Kasse, ByVal beleg_temp As EABeleg, ByRef QR_CodeString As String, ByRef LastJWS As String, ByRef answer As String) As Boolean
+ Try
+
+ If beleg_temp.rksv_BelegId <= 0 Then
+ MsgBox("Keine RKSV-Beleg-ID")
+ Return False
+ End If
+
+ Dim credentials As New SDL.RKSVServer.DBUserCredentials
+
+ credentials.Database = "RKSVWcfDB"
+ credentials.Server = "AVISO\SQLEXPRESS"
+ credentials.Username = "Admin"
+ credentials.Password = "verag#2"
+ credentials.CashboxID = kasse.rksv_bez '"VERAG-SUB-KASSE-ZOLL"
+ credentials.CompanyGUID = kasse.rksv_CompanyGUID ' "9119d9ae-f549-4a0f-a50f-0500ec7ca059"
+
+
+
+
+ Dim jws As String = String.Empty
+ Dim qr As String = String.Empty
+ Dim ocra As String = String.Empty
+ 'Dim answer As String = String.Empty
+
+ Dim Belegnummer = beleg_temp.rksv_BelegId
+ Dim BelegDatumUhrzeit = beleg_temp.BelegDat
+
+ Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & beleg_temp.Steuerschlüssel & "' ", "FMZOLL")
+
+
+
+ Dim BetragSatzNormal = IIf(steuersatz = 0.2, beleg_temp.rksv_umsatz, 0.0) 'summe
+ Dim BetragSatzErm1 = IIf(steuersatz = 0.1, beleg_temp.rksv_umsatz, 0.0)
+ Dim BetragSatzErm2 = IIf(steuersatz = 0.13, beleg_temp.rksv_umsatz, 0.0)
+ Dim BetragSatzNull = IIf(steuersatz = 0.0, beleg_temp.rksv_umsatz, 0.0)
+ Dim BetragSatzBesonders = IIf(steuersatz = 0.19, beleg_temp.rksv_umsatz, 0.0)
+ Dim StandUmsatzzaehler = kasse.rksv_Umsatzzaehler 'KASSE.rksv_Umsatzzaehler
+
+ Dim kindOfPayment As String = getKindOfPayment(beleg_temp)
+
+ If False Then
+
+ 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.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)
+ Else
+ Return False
+ End If
+
+ End If
+
+ Return True
+
+ Catch ex As Exception
+ MsgBox("Es ist ein Fehler bei der Signatur aufgetreten (insertRKSV): " & vbNewLine & ex.Message & ex.StackTrace)
+ End Try
+ Return False
+ End Function
+
+ Private Shared Function getKindOfPayment(beleg As EABeleg) As String
+
+ If beleg Is Nothing Then Return ""
+
+ Dim kindOfPayment As String = "Cash"
+
+ If beleg.ECZahlungsNr IsNot Nothing AndAlso IsNumeric(beleg.ECZahlungsNr) AndAlso beleg.ECZahlungsNr > 0 Then
+ kindOfPayment = "Card"
+ End If
+
+ Return kindOfPayment
+
+ End Function
+
'Beleg storno und Kassenbuch Gegenbuchung
Shared Function STORNO(BELEG As EABeleg, ByVal grund As String, Firma As String, Optional stornoGegenbuchen As Boolean = False) As EABeleg
diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj
index 33db9b92..b1be67fd 100644
--- a/SDL/SDL.vbproj
+++ b/SDL/SDL.vbproj
@@ -470,6 +470,9 @@
..\..\..\dll\QRCode.dll
+
+ ..\..\..\Aviso\AVISO\packages\QRCoder.1.8.0\lib\net40\QRCoder.dll
+
..\..\..\dll\Registrierkasse.dll
diff --git a/SDL/USTV/frmMDM_USTVAntrag.Designer.vb b/SDL/USTV/frmMDM_USTVAntrag.Designer.vb
index e2621aa8..f8cf5ca1 100644
--- a/SDL/USTV/frmMDM_USTVAntrag.Designer.vb
+++ b/SDL/USTV/frmMDM_USTVAntrag.Designer.vb
@@ -148,7 +148,6 @@ Partial Class frmMDM_USTVAntrag
Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripMenuItem()
Me.FakturiertToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
- Me.txtWarning = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.UstCntlUSTV_AntragPosition1 = New SDL.ustCntlUSTV_AntragPosition()
Me.UstCntlUSTV_AntragErstattungen1 = New SDL.ustCntlUSTV_ErstattungPosition()
Me.pnlBottom.SuspendLayout()
@@ -430,7 +429,6 @@ Partial Class frmMDM_USTVAntrag
'pnlHeader
'
Me.pnlHeader.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
- Me.pnlHeader.Controls.Add(Me.txtWarning)
Me.pnlHeader.Controls.Add(Me.cbxRGretour)
Me.pnlHeader.Controls.Add(Me.lblGesamtUSteuer)
Me.pnlHeader.Controls.Add(Me.lblDiffernezbetrag)
@@ -529,7 +527,7 @@ Partial Class frmMDM_USTVAntrag
Me.KdSearchBox1.KdNr = "-1"
Me.KdSearchBox1.kdNrField = Nothing
Me.KdSearchBox1.KdNrNullInt = Nothing
- Me.KdSearchBox1.Location = New System.Drawing.Point(298, 10)
+ Me.KdSearchBox1.Location = New System.Drawing.Point(284, 12)
Me.KdSearchBox1.Name = "KdSearchBox1"
Me.KdSearchBox1.nurAktive = True
Me.KdSearchBox1.searchActive = True
@@ -1935,34 +1933,6 @@ Partial Class frmMDM_USTVAntrag
Me.FakturiertToolStripMenuItem.Text = "Fakturiert zurücksetzen"
Me.FakturiertToolStripMenuItem.Visible = False
'
- 'txtWarning
- '
- Me.txtWarning._DateTimeOnly = False
- Me.txtWarning._numbersOnly = False
- Me.txtWarning._numbersOnlyKommastellen = ""
- Me.txtWarning._numbersOnlyTrennzeichen = False
- Me.txtWarning._Prozent = False
- Me.txtWarning._ShortDateNew = False
- Me.txtWarning._ShortDateOnly = False
- Me.txtWarning._TimeOnly = False
- Me.txtWarning._TimeOnly_Seconds = False
- Me.txtWarning._value = ""
- Me.txtWarning._Waehrung = False
- Me.txtWarning._WaehrungZeichen = False
- Me.txtWarning.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
- Me.txtWarning.BorderStyle = System.Windows.Forms.BorderStyle.None
- Me.txtWarning.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.txtWarning.ForeColor = System.Drawing.Color.Black
- Me.txtWarning.Location = New System.Drawing.Point(475, 36)
- Me.txtWarning.MaxLength = 10
- Me.txtWarning.MaxLineLength = -1
- Me.txtWarning.MaxLines_Warning = ""
- Me.txtWarning.MaxLines_Warning_Label = Nothing
- Me.txtWarning.Multiline = True
- Me.txtWarning.Name = "txtWarning"
- Me.txtWarning.Size = New System.Drawing.Size(88, 40)
- Me.txtWarning.TabIndex = 61
- '
'UstCntlUSTV_AntragPosition1
'
Me.UstCntlUSTV_AntragPosition1.Dock = System.Windows.Forms.DockStyle.Fill
@@ -2153,5 +2123,4 @@ Partial Class frmMDM_USTVAntrag
Friend WithEvents btnSortNachLeist As Button
Friend WithEvents txtVZOffen As VERAG_PROG_ALLGEMEIN.MyTextBox
Friend WithEvents Label19 As Label
- Friend WithEvents txtWarning As VERAG_PROG_ALLGEMEIN.MyTextBox
End Class
diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb
index 45dd6020..247f1225 100644
--- a/SDL/USTV/frmMDM_USTVAntrag.vb
+++ b/SDL/USTV/frmMDM_USTVAntrag.vb
@@ -57,18 +57,16 @@ Public Class frmMDM_USTVAntrag
lblGesamtErstattungFW.Text = "-"
lblDiffernezbetragFW.Text = "-"
- txtWarning.Text = ""
-
- lblGesamtUSteuer.Text = "-"
+ lblGesamtUSteuer.Text="-"
lblGesamtErstattung.Text = "-"
lblDiffernezbetrag.Text = "-"
btnAntrageeinarbeiten.Enabled = Not UStVAn_ID <= 0
- FlowLayoutPanel.Enabled = Not UStVAn_ID <= 0
- btnEintragloeschen.Enabled = Not UStVAn_ID <= 0
- btnNeuerEintrag.Enabled = Not UStVAn_ID <= 0
- UstCntlUSTV_AntragPosition1.Enabled = Not UStVAn_ID <= 0
- cbxLand.Visible = UStVAn_ID <= 0
+ FlowLayoutPanel.Enabled= Not UStVAn_ID <= 0
+ btnEintragloeschen.Enabled= Not UStVAn_ID <= 0
+ btnNeuerEintrag.Enabled= Not UStVAn_ID <= 0
+ UstCntlUSTV_AntragPosition1.Enabled= Not UStVAn_ID <= 0
+ cbxLand.Visible= UStVAn_ID <= 0
With dgvUSTVPositionen
@@ -76,11 +74,6 @@ Public Class frmMDM_USTVAntrag
If UStVAn_ID <= 0 Then Exit Sub
- '.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId]
- ' FROM [tblUStVPositionen]
- ' left join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
- ' where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
-
.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] " & IIf(cbxInterneNr.Checked, ",[UStVPo_interneNr] as intNr", "") & " ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Nettobetrag],[UStVPo_NettobetragEUR],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_Strasse] as StrasseOnly,leist.[UstV_Leistender_StrasseNr] as StrassenNrOnly,leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet
FROM [tblUStVPositionen]
LEFT JOIN [tblUStVLeistender] as leist
@@ -207,17 +200,18 @@ Public Class frmMDM_USTVAntrag
DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
End If
+ If Not (r.Cells("UStVPo_SchnittstellenNr").Value = 4 OrElse r.Cells("UStVPo_SchnittstellenNr").Value = 9) AndAlso Not r.Cells("UStVPo_ReNr").Value.ToString.ToLower.StartsWith("bis") Then 'MSE und "SAMMELBERIFF" ausnehmen
+ Dim rechnungsNr = CStr(r.Cells("UStVPo_ReNr").Value)
- Dim rechnungsNr = CStr(r.Cells("UStVPo_ReNr").Value)
-
- If Not String.IsNullOrWhiteSpace(rechnungsNr) Then
- If Not invoiceNumbers.Add(rechnungsNr) Then
- txtWarning.Text = "dopp. Rechnungsnr!"
- Exit For
+ If Not String.IsNullOrWhiteSpace(rechnungsNr) Then
+ If Not invoiceNumbers.Add(rechnungsNr) Then
+ r.Cells("UStVPo_ReNr").Style.BackColor = Color.IndianRed
+ End If
End If
End If
+
Next
If .Columns.Count > 1 Then
@@ -1832,7 +1826,7 @@ Public Class frmMDM_USTVAntrag
If UStVAn_ID > 0 Then
- Dim invoiceNumbers As New HashSet(Of String)
+
dgvUSTVPositionen.GetOrder()
@@ -1844,6 +1838,18 @@ Public Class frmMDM_USTVAntrag
VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen_USTVA(USTV_ANTRAG.UStVAn_ID)
+ Dim invoiceNumbers As New HashSet(Of String)
+ For Each r In dgvUSTVPositionen.Rows
+ Dim rechnungsNr = CStr(r.Cells("UStVPo_ReNr").Value)
+
+ If Not String.IsNullOrWhiteSpace(rechnungsNr) Then
+ If Not invoiceNumbers.Add(rechnungsNr) Then
+ MessageBox.Show($"Doppelt erfasste RechnungsNr vorhanden: {rechnungsNr}")
+ Exit For
+ End If
+ End If
+ Next
+
If USTV_ANTRAG.UStVAn_Währungscode IsNot Nothing AndAlso USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso USTV_ANTRAG.UStVAn_Währungscode <> "" Then
Dim averageUmrechnungskurs As Double = 1
Dim invoicedateOK As Boolean = True
@@ -1859,14 +1865,7 @@ Public Class frmMDM_USTVAntrag
PosNr = row.Cells("UStVPo_ID").Value
End If
- Dim rechnungsNr = CStr(row.Cells("UStVPo_ReNr").Value)
- If Not String.IsNullOrWhiteSpace(rechnungsNr) Then
- If Not invoiceNumbers.Add(rechnungsNr) Then
- MessageBox.Show($"Doppelt erfasste RechnungsNr: {rechnungsNr}")
- Exit For
- End If
- End If
Next
averageUmrechnungskurs = averageUmrechnungskurs / dgvUSTVPositionen.Rows.Count
diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb
index 65ee8923..7476b5bf 100644
--- a/SDL/USTV/usrCntlUSTV.vb
+++ b/SDL/USTV/usrCntlUSTV.vb
@@ -802,7 +802,7 @@ Public Class usrCntlUSTV
Dim sqlStr = "SELECT [UStVAn_ID] as AntragsID,cast([UStVPo_ReDat] as date) as Rechnungsdatum,[UStVPo_ReNr] as RechnungsNr
- FROM [VERAG].[dbo].[tblUStVPositionen] where Year([UStVPo_ReDat]) >= " & RechnungsjahrVon & " and Year([UStVPo_ReDat]) >= " & RechnungsjahrBis & "
+ FROM [VERAG].[dbo].[tblUStVPositionen] where Year([UStVPo_ReDat]) >= " & RechnungsjahrVon & " and Year([UStVPo_ReDat]) <= " & RechnungsjahrBis & "
group by [UStVAn_ID] ,[UStVPo_ReNr], [UStVPo_ReDat]
HAVING COUNT(*) > 1
order by [UStVAn_ID] desc"
diff --git a/SDL/kassenbuch/frmBelegNeu.vb b/SDL/kassenbuch/frmBelegNeu.vb
index 5894d4b7..7c9f8cf0 100644
--- a/SDL/kassenbuch/frmBelegNeu.vb
+++ b/SDL/kassenbuch/frmBelegNeu.vb
@@ -1704,7 +1704,7 @@ Public Class frmBelegNeu
Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then
- 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)
+ Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, If(EA = "E", summeBRUTTO, summeBRUTTO * -1), TESTBUCHUNG, QR_CodeString, LastJWS)
'result.Wait()
verarbeitet = result
Else
@@ -2028,7 +2028,7 @@ Public Class frmBelegNeu
If vbYes = MsgBox(result & vbNewLine & vbNewLine & "Testdaten in DB speichern?", vbYesNoCancel) Then
Dim QR_CodeString As String = ""
- client_chilkat.saveRKSV_FT(result, QR_CodeString)
+ client_chilkat.saveRKSV_FT(result, QR_CodeString, Nothing, False)
End If
Else
Return False
diff --git a/SDL/kassenbuch/frmKassenbuch.vb b/SDL/kassenbuch/frmKassenbuch.vb
index 2fdeacea..63020d7b 100644
--- a/SDL/kassenbuch/frmKassenbuch.vb
+++ b/SDL/kassenbuch/frmKassenbuch.vb
@@ -207,6 +207,8 @@ Public Class frmKassenbuch
' " ORDER BY b.rksv_BelegId DESC;", "FMZOLL")
.LOAD()
+ If .Rows.Count = 0 Then Exit Sub
+
.Columns("Betrag").DefaultCellStyle.Format = "C"
.Columns("Betrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns("Ordnungsbegriff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
@@ -273,6 +275,8 @@ Public Class frmKassenbuch
' " " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' ORDER BY JournalNr DESC", "FMZOLL")
.LOAD()
+ If .Rows.Count = 0 Then Exit Sub
+
.Columns("JournalNr").Width = 55
.Columns("JournalNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("Brutto").DefaultCellStyle.Format = "C"
@@ -1007,10 +1011,24 @@ Public Class frmKassenbuch
Dim LastJWS As String = ""
Dim answer = ""
If KASSETmp.rksv_aktiv Then
- If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then
- MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
- Exit Sub
+
+ If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso IsNumeric(KASSETmp.rksv_FT_CashboxID) AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then
+ Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country)
+ If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer) Then
+ MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Exit Sub
+ End If
+
+ Else
+ If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then
+ MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Exit Sub
+ End If
+
End If
+
+
+
End If
If KASSETmp.rksvDE_aktiv Then
Dim PERSONALTmp1 As cPersonal = FMZOLL_SQL.getPersonalById(BELEGTmp.Benutzer)
@@ -1075,14 +1093,25 @@ Public Class frmKassenbuch
Dim LastJWS As String = ""
Dim answer = ""
If KASSETmp.rksv_aktiv Then
- If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then
- 'FEHLER!!
- If KASSETmp.rksv_StornoIncreaseBelegCnt Then BELEGTmp.rksv_BelegIdStorno = Nothing
- BELEGTmp = cRKSV.STORNO_RUECKGAENGIG(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung
- MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
- Exit Sub
+
+ If KASSETmp.rksv_FT_CashboxID IsNot Nothing AndAlso KASSETmp.rksv_FT_CashboxID <> "" AndAlso BELEGTmp.FT_ReceiptReference IsNot Nothing Then
+ Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSETmp.rksv_FT_RestServiceURL, KASSETmp.rksv_FT_CashboxID, KASSETmp.rksv_FT_AccessToken, KASSETmp.rksv_FT_Country)
+ If Not cRKSV.stornoRKSV_FT(KASSETmp, BELEGTmp, QRQString, LastJWS, answer) Then
+ MessageBox.Show("Fehler bei der RKSV-FT-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Exit Sub
+ End If
+
+ Else
+ If Not cRKSV.stornoRKSV(KASSETmp, BELEGTmp.BelegDat, BELEGTmp.Steuerschlüssel, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_umsatz, QRQString, LastJWS, answer) Then
+ 'FEHLER!!
+ If KASSETmp.rksv_StornoIncreaseBelegCnt Then BELEGTmp.rksv_BelegIdStorno = Nothing
+ BELEGTmp = cRKSV.STORNO_RUECKGAENGIG(BELEGTmp, grund, KASSETmp.rksv_firma) 'Beleg storno und Kassenbuch Gegenbuchung
+ MessageBox.Show("Fehler bei der RKSV-Stornierung:" & vbNewLine & vbNewLine & answer, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Exit Sub
+ End If
End If
End If
+
If KASSETmp.rksvDE_aktiv Then
If Not cRKSV.stornoRKSV_DE(PERSONALTmp, BELEGTmp, KASSETmp, If(BELEGTmp.rksv_BelegIdStorno, BELEGTmp.rksv_BelegId), BELEGTmp.rksv_BelegId, BELEGTmp.rksv_umsatz, QRQString, LastJWS, False, answer) Then
'FEHLER!!
diff --git a/SDL/packages.config b/SDL/packages.config
index 463dcfc4..253dd113 100644
--- a/SDL/packages.config
+++ b/SDL/packages.config
@@ -71,6 +71,7 @@
+