Compare commits

9 Commits

Author SHA1 Message Date
09c666e239 Syska (MDM-Import), uta, etc. 2026-09-17 16:45:02 +02:00
6016fa4a5a div. Änderungen 2026-09-17 08:55:42 +02:00
7c0c1ea1a3 Barverkauf, etc. 2026-09-16 15:48:00 +02:00
43257416fd fix 2026-09-16 10:49:27 +02:00
9a0f22e07d fix 2026-09-16 09:45:24 +02:00
4ffc3dce9f gitignore 2026-09-16 09:09:23 +02:00
6fa1349b4e fix 2026-09-16 09:08:39 +02:00
9dfe655953 merge 2026-09-16 09:03:12 +02:00
b4c0ed0c66 merge 2026-09-16 09:01:59 +02:00
10 changed files with 6540 additions and 241 deletions

2
.gitignore vendored
View File

@@ -261,5 +261,3 @@ __pycache__/
*.pyc
/VERAG_PROG_ALLGEMEIN/Benutzerdefinierte Steuerelemente
/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj
/SDL/SDL.vbproj
/SDL/SDL.vbproj

View File

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

View File

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

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

5937
SDL/SDL.vbproj Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -394,7 +394,7 @@ Public Class usrCntlUSTV
If Not col.ColumnName.Contains(colName) Then col.ColumnName = col.ColumnName.Replace("UStVAn_", "")
Next
cProgramFunctions.genExcelFromDT_NEW(dtNew, {"K1:K" & (dtNew.Rows.Count + 1), "O1:T" & (dtNew.Rows.Count + 1)},,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dtNew, {"K1:K" & (dtNew.Rows.Count + 1), "O1:T" & (dtNew.Rows.Count + 1)},,,, "", True)
End If
@@ -1203,7 +1203,7 @@ Public Class usrCntlUSTV
If dtVorschau.Columns.Contains("LandNr") Then dtVorschau.Columns.Remove("LandNr")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau, {"G1:G" & (dtVorschau.Rows.Count + 1)},,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dtVorschau, {"G1:G" & (dtVorschau.Rows.Count + 1)},,,, "", True)
@@ -1320,7 +1320,7 @@ Public Class usrCntlUSTV
If dtVorschau.Columns.Contains("E-Mail") Then dtVorschau.Columns.Remove("E-Mail")
If dtVorschau.Columns.Contains("E-Mail2") Then dtVorschau.Columns.Remove("E-Mail2")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,, "", True)
ElseIf item.Name = "mail" Then
@@ -1482,7 +1482,7 @@ Public Class usrCntlUSTV
If item.Name = "excel" Then
cProgramFunctions.genExcelFromDT_NEW(dtVorschau_3470, {"F1:F" & (dtVorschau_3470.Rows.Count + 1)}, False,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dtVorschau_3470, {"F1:F" & (dtVorschau_3470.Rows.Count + 1)}, False,,, "", True)
ElseIf item.Name = "mail" Then
@@ -1750,7 +1750,7 @@ Public Class usrCntlUSTV
End If
cProgramFunctions.genExcelFromDT_NEW(dtVorauszahlung,,,,,, True)
cProgramFunctions.genExcelFromDT_NEW(dtVorauszahlung,,,,, "", True)
End Sub

View File

@@ -139,7 +139,7 @@ Public Class frmFremdbeleg
Else
If cRKSV.isforbiddenDate Then
MsgBox("Die Kasse wir am Monatsende abgeschlossen. Es dürfen keine weiteren Belege erstellt werden. Bitte veruchen Sie den Vorgang nach Mitternacht erneut.")
MsgBox("Die Kasse wir am Monatsende abgeschlossen. Es dürfen keine weiteren Belege erstellt werden. Bitte versuchen Sie den Vorgang nach Mitternacht erneut.")
Exit Sub
End If
@@ -225,14 +225,19 @@ Public Class frmFremdbeleg
Dim answer = ""
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
Dim isFiskaltrust As Boolean = client_chilkat.isFiskaltrust()
Dim isFiskaltrust = False
If KASSE IsNot Nothing AndAlso KASSE.rksv_FT_RestServiceURL IsNot Nothing AndAlso KASSE.rksv_FT_CashboxID IsNot Nothing AndAlso KASSE.rksv_FT_AccessToken IsNot Nothing AndAlso KASSE.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
isFiskaltrust = client_chilkat.isFiskaltrust()
End If
If KASSE.rksv_aktiv Then
Dim verarbeitet As Boolean = False
Dim verarbeitet As Boolean = False
If KASSE.rksv_FT_RestServiceURL <> "" Then
If isFiskaltrust Then
Dim result = cRKSV.insertRKSVFiskaltrustAsync(KASSE, BELEG, RKSV_Beleg_Id, summeBRUTTO, TESTBUCHUNG, QR_CodeString, LastJWS, IIf(Art = 1, ReceiptCaseIntern.EINGANG, ReceiptCaseIntern.AUSGANG))
'result.Wait()
verarbeitet = result
@@ -243,8 +248,25 @@ Public Class frmFremdbeleg
If Not verarbeitet Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not isFiskaltrust Then
If Not isFiskaltrust Then
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, BELEG.rksv_umsatz * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
'MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
Else
BELEG.FT_MissingSignature = True 'nachträgliche Signierung, Beleg NICHT löschen!!
End If
End If
End If
If KASSE.rksvDE_aktiv Then
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, 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, BELEG.rksv_umsatz * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
@@ -253,49 +275,32 @@ Public Class frmFremdbeleg
' BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
'MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
Else
BELEG.FT_MissingSignature = True 'nachträgliche Signierung, Beleg NICHT löschen!!
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If
End If
If KASSE.rksvDE_aktiv Then
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, 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, BELEG.rksv_umsatz * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
'MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'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.SAVE()
If cbxBelegDrucken.Checked Then cRKSV.printFremdBeleg(BELEG, KASSE, PERSONAL, KBEntry, KBEntryGB, cboPrinter.SelectedItem.ToString)
Me.Cursor = Cursors.Default
End If
If Not isFiskaltrust Then KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'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.SAVE()
If cbxBelegDrucken.Checked Then cRKSV.printFremdBeleg(BELEG, KASSE, PERSONAL, KBEntry, KBEntryGB, cboPrinter.SelectedItem.ToString)
Me.Cursor = Cursors.Default
End If
Me.Close()
Me.Close()
Catch ex As Exception
Me.Cursor = Cursors.Default
MsgBox("Allgemeiner Programmfehler - Belegerfassung wird geschlossen!")

View File

@@ -206,8 +206,6 @@ Public Class frmKassenbuch
End If
lbldailyCashboxClosing.Text = ""
If PERSONAL.cRKSV_Kasse IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken IsNot Nothing AndAlso PERSONAL.cRKSV_Kasse.rksv_FT_Country IsNot Nothing Then
Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country)
@@ -255,7 +253,6 @@ Public Class frmKassenbuch
End If
InitFiskaltrust(TSEIsOnline, tagesabschlussIsSet, monatsabschlussIsSet, jahresabschlussIsSet, NULLBelegIsCreated, InitialStartIsCreated)
If Not MiddlewareIsOnline Then
@@ -267,7 +264,7 @@ Public Class frmKassenbuch
ElseIf OutOfOrderIsCreated Then
diasableBarverkauf("OUTOFORDER")
Else
lbldailyCashboxClosing.Text = ""
If Not TSEIsOnline Then
lbldailyCashboxClosing.Text = "TSE ist OFFLINE: Belege werden nachträglich signiert!"
End If
@@ -280,15 +277,22 @@ Public Class frmKassenbuch
btnBelegLeihgeld.Enabled = True
btnStorno.Enabled = True
End If
End If
Else
lbldailyCashboxClosing.Visible = False
Button11.Visible = False
End If
Else
lbldailyCashboxClosing.Text = ""
Button11.Visible = False
lblFiskaltrustHeader.Visible = False
End If
' Label9.Text = PERSONAL.Name
DataGridView2.ClearSelection()
End Sub
@@ -366,8 +370,8 @@ Public Class frmKassenbuch
End If
.SET_SQL("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " &
" CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & lgTxt & ", b.ECZahlungsPerAPI as EC,b.ECZahlungsNr as ECNr, mit_username as kassiert,[FT_MissingSignature]" &
" FROM tblEABelegnummer as b LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .[ADMIN].[dbo].[tblMitarbeiter] on durchfuehrender_Benutzer = mit_id WHERE b.Mandant='" & PERSONAL.Mandant & "' AND b.Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' " &
" CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP & lgTxt & ", b.ECZahlungsPerAPI as EC,b.ECZahlungsNr as ECNr, mit_username as kassiert" &
" FROM tblEABelegnummer as b LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .[ADMIN].[dbo].[tblMitarbeiter] on durchfuehrender_Benutzer = mit_id WHERE b.Mandant='" & PERSONAL.Mandant & "' AND b.Niederlassung='" & PERSONAL.Niederlassung & "' " & benutzerTMP & " AND BelegDat BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "' and b.rksv_BelegId >= 0 " &
" ORDER BY b.rksv_BelegId DESC, b.[upsize_ts] desc;", "FMZOLL")
' .DataSource = SQL.loadDgvBySql("SELECT b.rksv_BelegId, b.BelegDat, CASE WHEN b.Belegart=1 THEN 'E' ELSE 'A' END as Belegart,CASE WHEN b.Beleg_TYP='E' THEN rksv_umsatz ELSE (SELECT sum( betrag ) FROM tblEABelegposition WHERE (b.BelegNr = tblEABelegposition.BelegNr) AND (b.BelegDat = tblEABelegposition.BelegDat) AND (b.Benutzer = tblEABelegposition.Benutzer) AND (b.Niederlassung = tblEABelegposition.Niederlassung) AND (b.Mandant = tblEABelegposition.Mandant ) ) END as Betrag, b.Ordnungsbegriff, b.BelegNr, b.Frachtführer, " &
' " CASE WHEN b.storniert=1 THEN 'JA' ELSE '' END as [storniert], b.Beleg_TYP ,b.Benutzer " & benutzerBezTMP &
@@ -417,9 +421,9 @@ Public Class frmKassenbuch
Next
End If
If master_Kasse Then
.Columns("BenutzerBez").HeaderText = "Benutzer" 'gibts bei bei master
.Columns("BenutzerBez").HeaderText = "Benutzer" 'gibts bei bei master
End If
@@ -1359,16 +1363,17 @@ Public Class frmKassenbuch
Dim KASSE As New cRKSV_Kasse(cboKassen._value) 'Laden der Kasse anhand der Auswahlbox
If KASSE.rksv_FT_RestServiceURL <> "" Then
Dim client As New cFiskaltrustClient(KASSE.rksv_FT_RestServiceURL, KASSE.rksv_FT_CashboxID, KASSE.rksv_FT_AccessToken, KASSE.rksv_FT_Country)
Dim result = Await client.SignNullReceiptAsync(RKSV.rksv_id)
Dim QR_CodeString As String = ""
client.saveRKSV_FT(result, QR_CodeString)
If KASSE.rksv_FT_Country IsNot Nothing AndAlso KASSE.rksv_FT_Country = "DE" Then
cRKSV.printStatusBelegFiskaltrust(KASSE, PERSONAL, True, KASSE.rksv_firma, ReceiptCaseIntern.NULLBELEG)
Else
cRKSV.printNULLBeleg(KASSE, PERSONAL, True, KASSE.rksv_firma)
End If
init()
' End If
End Sub
@@ -1600,11 +1605,11 @@ Public Class frmKassenbuch
End If
If Not cm_FT.Items.ContainsKey("null") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then
Dim plose = New ToolStripMenuItem() With {.Text = "Nullbeleg", .Name = "null", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
cm_FT.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
'If Not cm_FT.Items.ContainsKey("null") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then
' Dim plose = New ToolStripMenuItem() With {.Text = "Nullbeleg", .Name = "null", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
' cm_FT.Items.Add(plose)
' AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
'End If
If Not cm_FT.Items.ContainsKey("outoforder") AndAlso isADMIN AndAlso Not OutOfOrderIsCreated Then
Dim plose = New ToolStripMenuItem() With {.Text = "Out Of Order", .Name = "outoforder", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
@@ -1695,31 +1700,7 @@ Public Class frmKassenbuch
Dim client_chilkat As New cFiskaltrustClient_chilkat(PERSONAL.cRKSV_Kasse.rksv_FT_RestServiceURL, PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID, PERSONAL.cRKSV_Kasse.rksv_FT_AccessToken, PERSONAL.cRKSV_Kasse.rksv_FT_Country)
If item.Name = "null" Then
Dim info As String = "Möchten Sie einen 0-Beleg an die TSE schicken?"
If NULLBelegIsCreated Then
info = "Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein 0-Beleg erstellt, sind Sie wirklich sicher?"
End If
If vbYes = MsgBox(info, vbYesNoCancel) Then
Dim result As String = client_chilkat.SignNullReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_NULLBELEG()
init()
End If
End If
ElseIf item.Name = "setMissingSignatures" Then
If item.Name = "setMissingSignatures" Then
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [tblEABelegnummer] WHERE [rksv_id]='" & PERSONAL.cRKSV_KasseID & "' AND isnull(FT_MissingSignature,0)=1", "FMZOLL")
@@ -1793,16 +1774,8 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen temp. Ausfall an die TSE schicken?" & vbNewLine & "Falls die TSE zwar Online ist, jedoch ein technischer Fehler beim Signieren besteht", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_OUTOFORDERBELEG()
init()
End If
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.TEMP_OUTOFOPERATIONBELEG)
init()
End If
@@ -1812,18 +1785,9 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen OutOfOrder an die TSE schicken?" & vbNewLine & "Die Queue wird dauerhaft geschlossen und kann NICHT reaktiviert werden!", vbYesNoCancel) Then
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.OUTOFOPERATIONBELEG)
init()
Dim result As String = client_chilkat.SignOutOfOrderReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_OUTOFORDERBELEG()
init()
End If
End If
@@ -1833,17 +1797,8 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen Start an die TSE schicken?", vbYesNoCancel) Then
Dim result As String = client_chilkat.SignInitialOperationReceipt(PERSONAL.cRKSV_Kasse.rksv_id)
If result <> "" Then
MsgBox(client_chilkat.PrettyPrintJson(result))
Dim rksv As New cRKSV_Kasse(PERSONAL.cRKSV_Kasse.rksv_id)
rksv.SET_INITIALSTARTBELEG()
init()
End If
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.STARTBELEG)
init()
End If
@@ -1940,22 +1895,18 @@ Public Class frmKassenbuch
If vbYes = MsgBox("Möchten Sie einen Tagesabschluss durchführen, anschließend kann heute kein Beleg mehr signiert werden!", vbYesNoCancel) Then
If PERSONAL.cRKSV_Kasse.rksv_FT_Country = "DE" Then
Dim result As String = client_chilkat.SignClosingReceipt(item.Name, PERSONAL.cRKSV_Kasse.rksv_id, item.Name)
If result <> "" Then
cRKSV.printStatusBelegFiskaltrust(PERSONAL.cRKSV_Kasse, PERSONAL, True, PERSONAL.cRKSV_Kasse.rksv_firma, ReceiptCaseIntern.DAILYCLOSING)
MsgBox(client_chilkat.PrettyPrintJson(result))
init()
SQL.doSQL("UPDATE [tblRKSV_FT] set ftEndOfDayReceipt = getDate() where Day(ftReceiptMoment) = Day(GETDATE()) and ftEndOfDayReceipt is null and ftCashBoxID = '" & PERSONAL.cRKSV_Kasse.rksv_FT_CashboxID & "' ", "FMZOLL")
init()
End If
Else
MsgBox("nicht für AT-Kassen möglich!")
End If
End If
Else
MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Tagesabschluss erstellt!")
MsgBox("Für die Kasse " & PERSONAL.cRKSV_Kasse.rksv_bez & " wurde bereits ein Tagesabschluss erstellt!")
End If

View File

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

View File

@@ -953,6 +953,16 @@ Public Class cUTA
Sub New()
End Sub
Sub New(RechnungsNr, KundenNr, Datum, DocumentTyp)
Me.RechnungsNr = RechnungsNr
Me.KundenNr = KundenNr
Me.Datum = Datum
Me.DocumentTyp = DocumentTyp
LOAD(RechnungsNr, KundenNr, Datum, DocumentTyp)
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Id", Id,, True))
@@ -978,6 +988,38 @@ Public Class cUTA
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function
Public Sub LOAD(RechnungsNr As String, KundenNr As Integer, Datum As Date, DocumentTyp As String)
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("Select * FROM tblUTADocuments WHERE Datum=@Datum AND KundenNr = @KundenNr AND RechnungsNr=@RechnungsNr AND DocumentTyp = @DocumentTyp ", conn)
cmd.Parameters.AddWithValue("@Datum", Datum)
cmd.Parameters.AddWithValue("@KundenNr", KundenNr)
cmd.Parameters.AddWithValue("@RechnungsNr", RechnungsNr)
cmd.Parameters.AddWithValue("@DocumentTyp", DocumentTyp)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name)
End Try
End Sub
Public Sub LOAD()
Try
hasEntry = False

View File

@@ -6,15 +6,44 @@ Public Class cSyska_Interface
'STAMMDATEN
Shared Function getStammdaten(FiBuSchnittstelleNr) As DataTable
Dim sqlStr = " Select KundenNrZentrale As [Konto-Nr],isnull([Name 1],'') as Name,isnull([Name 2],'') as [Name2],(isnull(UstIdKz,'') + isnull(UstIdNr,'')) as [UST-Id-Nummer],isnull(UstIdGeprüft,'') as [UID-Datum],[Strasse],Adressen.landkz ,PLZ,LTRIM([Ort]) as Ort,isnull(BLZ,'') as [BLZ],isnull(KTO,'') as [KTO], CASE WHEN CAST(Zahlungsziel as VARCHAR(3)) ='0' THEN '' ELSE CAST(Zahlungsziel as VARCHAR(3)) END as [ZZiel],/*'' as [SPz],'' as [STg],*/isnull([E-Mail],'') as [mail],'' AS Info1,'' AS Inf2, Zahlungsziel2, Zahlungsziel3,[E-Mail],[Telefon] ,Telefax "
sqlStr &= " ,Ordnungsbegriff ,Kunden.Währungscode,Anrede,Ansprechpartner,Lastschrift,Kunden.[Eingegeben am] as EingegebenAm"
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
sqlStr &= " LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz "
sqlStr &= " LEFT JOIN Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel "
sqlStr &= " WHERE FiBuSchnittstelle=1 AND Auswahl='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' "
sqlStr &= " Order by [Konto-Nr] "
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
Dim SQLString = "Select Top(100)
KundenNrZentrale As [Konto-Nr],
isnull([Name 1],'') as Name,
isnull([Name 2],'') as [Name2],
(isnull(UstIdKz,'') + isnull(UstIdNr,'')) as [UST-Id-Nummer],
isnull(UstIdGeprüft,'') as [UID-Datum],
[Strasse],
Adressen.landkz ,
PLZ,LTRIM([Ort]) as Ort,
isnull(BLZ,'') as [BLZ],
isnull(KTO,'') as [KTO],
CASE WHEN CAST(Zahlungsziel as VARCHAR(3)) ='0' THEN '' ELSE CAST(Zahlungsziel as VARCHAR(3)) END as [ZZiel],
isnull([E-Mail],'') as [mail],
'' AS Info1,
'' AS Inf2,
Zahlungsziel2,
Zahlungsziel3,
[E-Mail],
[Telefon] ,
Telefax,Ordnungsbegriff,
Kunden.Währungscode,
Anrede,
Ansprechpartner,
Lastschrift,
Kunden.[Eingegeben am] as EingegebenAm,
isnull(tblKundenErweitert.kde_BezFIBU,'') as [Kürzel],
2811 as [präf. Bank],
isnull(tblKundenErweitert.kde_Fakturierung_Sprache,'') as Sprache,
isnull(Adressen.Steuernummer,'')as [SteuerNr],
isnull(tblKundenErweitert.kde_betreuer,'') as Betreuer
FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr
Left Join tblKundenErweitert ON KundenNr=kde_KundenNr
Left Join [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz
Left Join Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel
WHERE FiBuSchnittstelle = 0 And Auswahl ='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' and KundenNr = 203152 Order by [Konto-Nr]"
Return SQL.loadDgvBySql(SQLString, "FMZOLL")
End Function
' Shared Function getStammdatenTEST(FiBuSchnittstelleNr) As DataTable
@@ -80,9 +109,6 @@ Public Class cSyska_Interface
Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper
Dim Lastschrift = CBool(row("Lastschrift"))
'If FormatStringSYS(row("Name2"), 50) <> "" Then
' MsgBox(FormatStringSYS(row("Name2"), 50) & vbTab)
'End If
getPersonenKto = ""
getPersonenKto &= row("Konto-Nr") & vbTab
getPersonenKto &= FormatStringSYS(cleanStringName, 2) & row("Konto-Nr") & vbTab
@@ -113,7 +139,73 @@ Public Class cSyska_Interface
getPersonenKto &= FormatStringSYS(row("Telefax")) & vbTab
getPersonenKto &= FormatStringSYS(row("E-Mail")) & vbTab
getPersonenKto &= vbTab
' getPersonenKto &= vbTab
End Function
Public Shared Function getPersonenKto_MDM(row As DataRow) As String
Dim LandKz = row("LandKz")
Dim Gegenkontonummer = ""
Dim Gegenkontonummer2 = ""
If LandKz Is DBNull.Value Or LandKz.trim = "" Or LandKz = "A" Then
Gegenkontonummer = "4000" ' Erl. 20%
Gegenkontonummer2 = "4000" ' Erl. 20%
Else
If CBool(SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & LandKz & "'", "FMZOLL", False)) Then
Gegenkontonummer = "4020" ' Erl. 0% EU
Gegenkontonummer2 = "4020" ' Erl. 0% EU
Else
Gegenkontonummer = "4021" ' Erl. 0% 3.Land
Gegenkontonummer2 = "4021" ' Erl. 0% 3.Land
End If
End If
Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper
Dim SteuerNr As String = ""
If Not IsDBNull(row("SteuerNr")) Then
SteuerNr = Regex.Replace(row("SteuerNr").ToString(), "[^0-9]", "")
End If
Dim Lastschrift = CBool(row("Lastschrift"))
getPersonenKto_MDM = ""
getPersonenKto_MDM &= row("Konto-Nr") & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Kürzel"), 24) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Name"), 50) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Name2"), 50) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Strasse"), 50) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("PLZ"), 20) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Ort"), 50) & vbTab
getPersonenKto_MDM &= cProgramFunctions.getISO2Land(FormatStringSYS(LandKz, 5)) & vbTab
getPersonenKto_MDM &= CDate(row("EingegebenAm")).ToShortDateString & vbTab 'Eröffnungsdatum
'getPersonenKto_MDM &= Gegenkontonummer & vbTab
getPersonenKto_MDM &= vbTab 'Bankname
getPersonenKto_MDM &= If(Lastschrift, row("BLZ"), "") & vbTab
getPersonenKto_MDM &= If(Lastschrift, row("KTO"), "") & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Name"), 50) & vbTab 'Inhaber
getPersonenKto_MDM &= "00" & vbTab 'Skontotage
getPersonenKto_MDM &= If(row("ZZiel") IsNot DBNull.Value AndAlso row("ZZiel") <> String.Empty, CDbl(row("ZZiel")).ToString("00"), "") & vbTab
getPersonenKto_MDM &= "00,00" & vbTab 'Skonto
getPersonenKto_MDM &= "01" & vbTab 'Mahnkennung
getPersonenKto_MDM &= FormatStringSYS(row("UST-Id-Nummer"), 50) & vbTab
'getPersonenKto_MDM &= vbTab
getPersonenKto_MDM &= row("Währungscode") & vbTab
'getPersonenKto_MDM &= vbTab 'Forderungsonto
'getPersonenKto_MDM &= vbTab
'getPersonenKto_MDM &= Gegenkontonummer2 & vbTab 'Platzhalter??
getPersonenKto_MDM &= FormatStringSYS(row("Anrede") & " " & row("Ansprechpartner"), 100) & vbTab
'getPersonenKto_MDM &= vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Telefon")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Telefax")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("E-Mail")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("präf. Bank")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Sprache")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(SteuerNr) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Betreuer")) & vbTab
getPersonenKto_MDM &= vbTab
End Function
@@ -146,43 +238,50 @@ Public Class cSyska_Interface
If True Then 'boolKunden Then
'----------------- STAMMDATEN -----------------
Dim dt_Stamm As DataTable = getStammdaten(FiBuSchnittstelleNr)
Dim postfix As String = ""
If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
If FiBuSchnittstelleNr = 19 Then postfix = "MDM_"
Dim fileKD As System.IO.StreamWriter
Dim DateinameKD = "AVISO_DEBI_" & Now.ToString("ddMMyyyy_HHmm") & ".txt"
Dim DateinameKD = "AVISO_DEBI_" & postfix & Now.ToString("ddMMyyyy_HHmm") & ".txt"
fileKD = My.Computer.FileSystem.OpenTextFileWriter(pathKD & DateinameKD, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
'fileKD.WriteLine(genStammdatenBeginn())
'fileKD.WriteLine(genStammdatenBeginn())
initKDNr(dt_Stamm)
initKDNr(dt_Stamm)
For Each r In dt_Stamm.Rows
fileKD.WriteLine(getPersonenKto(r))
If FiBuSchnittstelleNr = 19 Then
fileKD.WriteLine(getPersonenKto_MDM(r))
Else
fileKD.WriteLine(getPersonenKto(r))
End If
Next
bool_DatenVorhanden = True
fileKD.Close()
fileKD.Close()
'In Archiv sichern
If pathArchivKD <> "" Then
If Not System.IO.Directory.Exists(pathArchivKD) Then System.IO.Directory.CreateDirectory(pathArchivKD)
If pathKD <> pathArchivKD Then System.IO.File.Copy(pathKD & DateinameKD, pathArchivKD & DateinameKD)
End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(pathKD & DateinameKD)
Else
System.IO.File.Delete(pathKD & DateinameKD)
End If
'NOCH NICHT!!!
updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
'In Archiv sichern
If pathArchivKD <> "" Then
If Not System.IO.Directory.Exists(pathArchivKD) Then System.IO.Directory.CreateDirectory(pathArchivKD)
If pathKD <> pathArchivKD Then System.IO.File.Copy(pathKD & DateinameKD, pathArchivKD & DateinameKD)
End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(pathKD & DateinameKD)
Else
System.IO.File.Delete(pathKD & DateinameKD)
End If
'NOCH NICHT!!!
updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
End If
End If