This commit is contained in:
2020-10-02 10:37:26 +02:00
parent ce31c2c398
commit 75b12f314d
42 changed files with 1131 additions and 510 deletions

View File

@@ -269,6 +269,7 @@ Public Class cGenWord
odoc.FormFields("KundenNr").Range.Text = KUNDE.AdressenNr
odoc.FormFields("AuftragsNr").Range.Text = AuftragsNr.ToString("000000.##")
Dim pinVisible = False
If odoc.Range.Bookmarks.Exists("TabelleKarten") Then
If odoc.Bookmarks("TabelleKarten").Range.Tables.Count > 0 Then
oTable = odoc.Bookmarks("TabelleKarten").Range.Tables(1)
@@ -289,6 +290,10 @@ Public Class cGenWord
If i < dt.Rows.Count Then oTable.Rows.Add()
' MsgBox(cSqlDb.checkNullStr(r("KarteBoxBezeichnung")))
i += 1
Select Case r("SDLNr").ToString
Case "100", "212", "213", "214" : pinVisible = True
End Select
End If
Next
End If
@@ -296,6 +301,13 @@ Public Class cGenWord
MessageBox.Show("Textmarke nicht vorhanden!")
End If
Try
If Not pinVisible Then
odoc.FormFields("PIN").Range.Text = ""
odoc.FormFields("InfoPIN").Range.Text = ""
End If
Catch ex As Exception
End Try
odoc.Save() : odoc.Activate()

View File

@@ -393,7 +393,7 @@ Public Class cRKSV
Public Shared Function printKundenBeleg(BELEG As EABeleg, KASSE As cRKSV_Kasse, PERSONAL As cPersonal, printername As String, showDok As Boolean) As Boolean
'Dim print As New frmPrintLayout
Dim rpt As New rptKundenBeleg
rpt.lblRgNr.Text = BELEG.rksv_BelegId '"12345 / TR"
rpt.lblRgDatum.Text = BELEG.BelegDat.ToString("dd.MM.yyyy") ' HH:mm")
@@ -520,7 +520,7 @@ Public Class cRKSV
rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 "
End Select
If KASSE.rksv_aktiv Then
If KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv Then
If BELEG.rksv_qr Is Nothing OrElse BELEG.rksv_qr = "" Then
MsgBox("Fehler: QR-Code wurde nicht richtig erstellt!")
Else
@@ -739,7 +739,7 @@ Public Class cRKSV
End Select
If KASSE.rksv_aktiv Then
If KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv Then
If BELEG.rksv_qr Is Nothing OrElse BELEG.rksv_qr = "" Then
MsgBox("Fehler: QR-Code wurde nicht richtig erstellt!")
Else
@@ -781,7 +781,7 @@ Public Class cRKSV
End Sub
rpt.Run(False)
rpt.Run(False)
If printername <> "" Then
rpt.Document.Printer.PrinterName = printername
@@ -905,13 +905,32 @@ Public Class cRKSV
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 = ""
If Not cRKSV_DE.insertRKSV_DE(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, 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)
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)
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
BELEG.rksv_aktiv = (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv)
BELEG.SAVE()
@@ -978,7 +997,7 @@ Public Class cRKSV
' Dim QR As String = ""
If KASSE.rksv_aktiv And BELEG.rksv_BelegId > 0 Then
If (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv) And BELEG.rksv_BelegId > 0 Then
If BELEG.rksv_qr Is Nothing OrElse BELEG.rksv_qr = "" Then
MsgBox("Fehler: QR-Code wurde nicht richtig erstellt!")
Else
@@ -1579,4 +1598,168 @@ Public Class cRKSV
Case Else : Return "Leistungen.Gl_account"
End Select
End Function
End Class
Public Class cRKSV_DE
Shared SQL As New SQL
Shared Function getBelegSting_BAR(summeBRUTTO As Double, steuerSchluessel As Integer) As String
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & steuerSchluessel & "' ", "FMZOLL")
Dim BetragSatzNormal = IIf(steuersatz = 0.19, summeBRUTTO, 0.0)
Dim BetragSatzErm1 = IIf(steuersatz = 0.1, summeBRUTTO, 0.0)
Dim BetragSatzNull = IIf(steuersatz = 0, summeBRUTTO, 0.0)
BetragSatzNormal += IIf(steuersatz = 0.16, summeBRUTTO, 0.0)
BetragSatzErm1 += IIf(steuersatz = 0.05, summeBRUTTO, 0.0)
BetragSatzNormal += IIf(steuersatz = 0.2, summeBRUTTO, 0.0) ' Eig Nur AT
'Dim BetragSatzNormal = IIf(steuersatz = 0.2, summeBRUTTO, 0.0) 'summe
'Dim BetragSatzErm2 = IIf(steuersatz = 0.13, summeBRUTTO, 0.0)
'Dim BetragSatzNull = IIf(steuersatz = 0.0, summeBRUTTO, 0.0)
Dim sum = BetragSatzNormal
sum += BetragSatzErm1
sum += BetragSatzNull
MsgBox("Beleg^" & BetragSatzNormal.ToString("0.00") & "_" & BetragSatzErm1.ToString("0.00") & "_0.00_0.00_" & BetragSatzNull.ToString("0.00") & "^" & sum.ToString("0.00") & ":Bar")
Return "Beleg^" & BetragSatzNormal.ToString("0.00") & "_" & BetragSatzErm1.ToString("0.00") & "_0.00_0.00_" & BetragSatzNull.ToString("0.00") & "^" & sum.ToString("0.00") & ":Bar"
End Function
Shared Function insertRKSV_DE(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, ByRef QR_CodeString As String, ByRef LastJWS As String, TEST As Boolean, ByRef answer As String) As Boolean
Try
' COM-Objekt anlegen
' Dim licenseKey As String = kasse.rksv_DE_license '"07.11.2020;MEUCIQDfTvMPWQo4IVvTtuTbU9YHNwJ7EdMbogfGqmAp+rdw4gIgPJoEDE0OCfac/nCOKdksWvOZq+xvkFoYI0HFxJPkldU="
' Dim TSESerialNumber As String = "77A9D25F044A89E87578A8CD52D2A92564CC09214CC6448465414008D31C1CF1"
Dim m_ksv As ItgKsV.KsVCom = New ItgKsV.KsVCom()
' Dim result As Integer = m_ksv.InitialiseLibrary("F:", "SwissbitDemo", "12345", licenseKey)
MsgBox(kasse.rksv_ipAdresse & " --- " & kasse.rksv_DE_TSE_Serial & " --- " & kasse.rksv_DE_apiToken & " --- " & kasse.rksv_DE_user & " --- " & kasse.rksv_DE_pwd & " --- " & kasse.rksv_DE_license)
Dim result As Integer = m_ksv.InitialiseLibraryLan(kasse.rksv_ipAdresse, kasse.rksv_DE_TSE_Serial, kasse.rksv_DE_apiToken, kasse.rksv_DE_user, kasse.rksv_DE_pwd, kasse.rksv_DE_license) '--> ClientId/User "Admin" mit KsVCom Demo registriert
If result <> &H0 Then
MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
'' Setup bei erstmaliger Verwendung der Swissbit-TSE !!!
'result = m_ksv.SetupTSEForFirstUse("123456", "12345", "98765", "SwissbitDemo")
'If result <> &H0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
'Else
' MessageBox.Show("TSE setup succeeded.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
'End If
' BeginTransaction: für jede neue Rechnung wird eine Transaktion gestartet
Dim transactionNumber As Long = 0
result = m_ksv.StartTransaction(transactionNumber)
If result <> &H0 Then
MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return False
End If
' UpdateTransaction: processData bleibt leer
result = m_ksv.UpdateTransaction(transactionNumber, "", "KassenBeleg-V1")
If result <> &H0 Then
MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
End If
' FinishTransaction: Abschluss einer Rechnung, processData nach vorgegebenem Format
result = m_ksv.FinishTransaction(transactionNumber, getBelegSting_BAR(summeBRUTTO, steuerSchluessel), "KassenBeleg-V1")
If result <> &H0 Then
MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
End If
' QR-Code und weitere Werte, die auf der Rechnung angedruckt werden müssen
' QR-Code wird als base64 kodiertes bitmap geliefert
Dim qrCode As String = String.Empty
' QR-Code Inhalt für die Ablage in der Datenbank, falls eine Rechnung nochmals gedruckt werden muss
Dim qrCodeContent As String = String.Empty
m_ksv.GetLastReceiptQrCode(qrCode)
m_ksv.GetLastReceiptQrCodeContent(qrCodeContent)
Dim sTransactionNumber As String = String.Empty
Dim serialNumber As String = String.Empty
Dim signature As String = String.Empty
Dim sigCounter As String = String.Empty
Dim dtStartTransaction As Date = Date.MinValue
Dim dtFinishTransaction As Date = Date.MinValue
m_ksv.GetLastReceiptValues(sTransactionNumber, serialNumber, signature, dtStartTransaction, dtFinishTransaction, sigCounter)
QR_CodeString = qrCode
LastJWS = signature
'' Anzeige der gestarteten/noch möglichen Transaktionen
'Dim maxTransactions As Integer = 0
'Dim openTransactions As Integer = 0
'm_ksv.GetMaxStartedTransactions(maxTransactions)
'm_ksv.GetStartedTransactions(openTransactions)
'Dim startedTransactions As Integer() = Nothing
'result = m_ksv.GetStartedTransactionNumbers(startedTransactions)
'If result <> &H0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
'End If
'' Export der TSE-Daten im TAR-Format
'result = m_ksv.ExportAsTarFile("d:\export.tar")
'If result <> 0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
'End If
'' Bibliothek aufräumen, andernfalls wird ein power-cycle der TSE erforderlich um sie wieder einsetzen zu können
''result = CSharpImpl.__Assign(,, m_ksv.CleanupLibrary())
'result = m_ksv.CleanupLibrary()
'If result <> 0 Then
' MessageBox.Show(m_ksv.StringifyErrorCode(result), "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
'End If
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
End Class

View File

@@ -9,6 +9,7 @@ Public Class cRKSV_Kasse
Property rksv_firma As String = ""
Property rksv_startdatum As Object = Nothing
Property rksv_aktiv As Boolean = True
Property rksvDE_aktiv As Boolean = True
Property rksv_BelegIdZaehler As Integer = 0
Property rksv_Umsatzzaehler As Double = 0.0
Property rksv_lastJWS As String = ""
@@ -21,6 +22,8 @@ Public Class cRKSV_Kasse
Property rksv_DE_TSE_Serial As Object = Nothing
Property rksv_DE_user As Object = Nothing
Property rksv_DE_pwd As Object = Nothing
Property rksv_DE_apiToken As Object = Nothing
Property rksv_DE_license As Object = Nothing
Dim SQL As New SQL
@@ -204,6 +207,7 @@ Public Class cRKSV_Kasse
Me.rksv_firma = cSqlDb.checkNullReturnValue(dr.Item("rksv_firma"), Nothing)
Me.rksv_startdatum = cSqlDb.checkNullReturnValue(dr.Item("rksv_startdatum"), Nothing)
Me.rksv_aktiv = cSqlDb.checkNullReturnValue(dr.Item("rksv_aktiv"), Nothing)
Me.rksvDE_aktiv = cSqlDb.checkNullReturnValue(dr.Item("rksvDE_aktiv"), Nothing)
Me.rksv_BelegIdZaehler = cSqlDb.checkNullReturnValue(dr.Item("rksv_BelegIdZaehler"), Nothing)
Me.rksv_Umsatzzaehler = cSqlDb.checkNullReturnValue(dr.Item("rksv_Umsatzzaehler"), Nothing)
Me.rksv_lastJWS = cSqlDb.checkNullReturnValue(dr.Item("rksv_lastJWS"), Nothing)
@@ -216,6 +220,8 @@ Public Class cRKSV_Kasse
Me.rksv_DE_TSE_Serial = cSqlDb.checkNullReturnValue(dr.Item("rksv_DE_TSE_Serial"), Nothing)
Me.rksv_DE_user = cSqlDb.checkNullReturnValue(dr.Item("rksv_DE_user"), Nothing)
Me.rksv_DE_pwd = cSqlDb.checkNullReturnValue(dr.Item("rksv_DE_pwd"), Nothing)
Me.rksv_DE_apiToken = cSqlDb.checkNullReturnValue(dr.Item("rksv_DE_apiToken"), Nothing)
Me.rksv_DE_license = cSqlDb.checkNullReturnValue(dr.Item("rksv_DE_license"), Nothing)
End If
dr.Close()
@@ -237,6 +243,7 @@ Public Class cRKSV_Kasse
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_firma", rksv_firma))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_startdatum", rksv_startdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_aktiv", rksv_aktiv))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksvDE_aktiv", rksvDE_aktiv))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_BelegIdZaehler", rksv_BelegIdZaehler))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_Umsatzzaehler", rksv_Umsatzzaehler))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_lastJWS", rksv_lastJWS))
@@ -249,7 +256,8 @@ Public Class cRKSV_Kasse
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_DE_TSE_Serial", rksv_DE_TSE_Serial))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_DE_user", rksv_DE_user))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_DE_pwd", rksv_DE_pwd))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_DE_apiToken", rksv_DE_apiToken))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_DE_license", rksv_DE_license))
Return list