neu
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user