AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte cc.KassenSichV.* - Die Unitsammlung zur Kassensicherungverordnung des BMF

cc.KassenSichV.* - Die Unitsammlung zur Kassensicherungverordnung des BMF

Ein Thema von bernau · begonnen am 20. Jul 2020 · letzter Beitrag vom 30. Nov 2023
Antwort Antwort
Seite 1 von 14  1 2311     Letzte » 
Benutzerbild von bernau
bernau
Registriert seit: 1. Dez 2004
In einen anderen Thread hier in der Delphi-Praxis hatte ich wegen einem Gemeinschaftsprojekt zur Ansteuerung der SwissBit-TSE angefragt. Da es nicht wirklich ein bestehendes Projekt gab, habe ich einfach mal angefangen. Ist stehe etwas unter Zeitdruck, deshalb wollte ich nicht erst ein Gemeinschaftsprojekt organisieren. Zwischenzeitlich habe ich einige Anfragen von Personen erhalten, die auch noch am Anfang der Entwicklung stehen. Die KassenSichV ist ein heikles Thema und ich denke mehrere Augen sehen mehr als Zwei. Deshalb möchte ich hiermit meine Unit-Sammlung, die ich in den letzten Tagen geschrieben habe, der Allgemeinheit zur Verfügung stellen.

Etwas zur Lizenz:

Es wird die Beerware-Lizenz verwendet. https://de.wikipedia.org/wiki/Beerware

Kurz gesagt, mach mit der Unitsammlung was du willst. Wenn es möglich ich, dann sende mir einfach eine Flasche Bier aus deiner Region zu. Vielleicht noch einen zugehörigen Bierdeckel.

Es kann auf einem gemeinsammen Delphi-Event (z.B. die Foren-Tage https://forentage.de) auch gerne ein Bier ausgegeben werden.

Gegen einen Leckeren Single-Malt-Whiskey hätte ich auch nichts einzuwenden

Grundsätzlich erfolgt die Nutzung dieser Unitsammlung auf eigenes Risiko. Ich weise ausdrücklich darauf hin, dass bei falscher Nutzung die Hardware (TSE) unbrauchbar gemacht werden kann.

SwissBit-TSE / DsFinV-K

Ursprünglich wollte ich nur einen kleinen Wrapper für die DLL der SwissBit-TSE. Nun ist noch eine Klasse hinzugekommen, mit der die DLL noch etwas komfortabler angesprochen werden kann. Eine Kassenbeleg in mit wenigen Zeilen Quellcode erstellt und die benötigten Rückgabewerte für den Kassenbon werden in einem einfachen Record inkl. dem Inhalt des QR-Codes zurückgegeben. Da aber auch vieles davon in die DsFinV-K übergeht, werde ich ziemlich zügig noch weitere Klassen erstellen, die einen ordentlichen Export für die DsFinV-K ermöglicht. Die entsprechenden Units werde ich nachreichen.

Demo-Programm

Damit die Units von Interessenten einfach getestet werden können, habe ich ein kleines VCL-Programm beigefügt. Nichts besonderes. Soll nur zeigen, wie Funktionen angesprochen werden. Hier zwei Screenshots:

Version 0.2

Die DLL kann nun dynamisch geladen werden. Informationen dazu stehen in der Datei "cc.KassenSichV.License"

Diverse Fehler behoben.

Version 0.4

Event OnSelftestNotify zugefügt.

Automatisch Steuersatzzuordnung.

Kontrolle ob Bruttoumsatz und Zahlungen stimmig sind.

Compilerdirective WORMAPIDLL_STATIC zugefügt.

Verschiedene Hilfsfunktionen

Singleton-Funktion

Version 1.0

Neue Funktionen neuerer SDK > 5.7.1

keepalive_configure

LAN-TSE (von Uwe Koch)

Log-Funktionen

Weitere Events

Details stehen in der Datei "cc.KassensichV.ChangeLog.pas"

Erweiterung der SwissbitGui. (Siehe Bilder)
Miniaturansicht angehängter Grafiken
swissbitgui1.png   swissbitgui2.png   swissbitgui3.png   swissbitgui4.png   swissbitgui5.png  

Angehängte Dateien
Dateityp: zip cc.KassenSichV.0.4.zip (39,0 KB, 148x aufgerufen)
Dateityp: zip cc.KassenSichV.1.0.zip (66,3 KB, 217x aufgerufen)
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de

Geändert von bernau (27. Jan 2021 um 23:15 Uhr)
 
Benutzerbild von t2000
t2000

 
Delphi 11 Alexandria
 
#2
  Alt 21. Jul 2020, 09:16
Ich wäre auch dabei. Auch bei uns ist Eile angesagt.
Ist denn auch geplant, Bundesdruckerei TSE mit dazuzunehmen? An Epson arbeiten wir auch gerade noch.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

 
Delphi 10.2 Tokyo Professional
 
#3
  Alt 21. Jul 2020, 09:40
Bis auf "Im fertigen Programm muss die Bibliothek nicht erwähnt werden." hört sich die gesuchte Lizenz nach guter alter MPL an.

Meiner Meinung nach sollte jemand, der eine Bibliothek unter einer Open Source Lizenz verwendet, das auch erwähnen. Es tut schließlich nicht weh.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#4
  Alt 21. Jul 2020, 11:42
"muss nicht" heißt ja nicht, dass man es nicht darf, aber es wäre dann für den Verwendenden nicht "tragisch" falls er es "vergisst".
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

 
Delphi 11 Alexandria
 
#5
  Alt 21. Jul 2020, 14:01
Kurzer Hinweis, da ich grade per PM darauf angesprochen wurde.

In der Klasse TccSwissbitTse ist folgendes Event implementiert

Property OnGetDateTime: TccSwisBitTseGetDateTimeEvent read fOnGetDateTime write fOnGetDateTime; Wenn dieses Event nicht genutzt wird, dann wird zur Einstellung der TSE-Zeit die aktuelle Zeit des Computers verwendet.

Mit diesem Event kann man, wenn man es wünscht, anhand einer anderen Zeitquelle (z.B eines NTP-Zeitservers) die Zeit abfragen und diese wird verwendet.

Im Beispielprogramm habe ich folgendes implementiert:

Delphi-Quellcode:
procedure TFormSwissBitGui.DoGetDatetime(Sender: TObject; var aDateTime: TDatetime);
begin
  aDateTime := now - 500;
end;
Dies habe ich gemacht, weil das Zertifikat meiner Test-TSE am 14.7.2020 abgelaufen ist. Diese TSE funktioniert also nicht mehr mit der aktuelle Zeit. Zum Testen solltet Ihr also dieses Event ändern oder entfernen.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

 
Delphi 10.2 Tokyo Professional
 
#6
  Alt 21. Jul 2020, 14:28
"muss nicht" heißt ja nicht, dass man es nicht darf, aber es wäre dann für den Verwendenden nicht "tragisch" falls er es "vergisst".
Ist halt nur blöd, dass man dann nicht einfach die MPL als Lizenz verwenden kann.
Thomas Mueller
  Mit Zitat antworten Zitat
michaelg
 
#7
  Alt 22. Jul 2020, 11:57
Ich bin auch dabei, bin schon fleissig am Testen. Bisher funktioniert alles aalglatt, ich bin begeistert.

@Bernau: Kann ich bei irgendwas mithelfen? Das Testprogramm um bestimmte Vorfälle erweitern oder ähnliches?


Ich hab da mal eine generelle Frage zu den Abläufen. Für mich ist Gastronomie eher uninteressant. Ich muss Kassen im Einzelhandel bedienen können. Hier wird von Swissbit geschrieben, dass man für "kurze" Geschäftsvorfälle den ProcessType "Beleg" nehmen sollte. Dieser beinhaltet ja nur Bruttobeträge mit Steuersätzen und Zahlungen mit Zahlungsart. Es gibt keinerlei Information, was da verkauft wurde.

Beim Processtype "Bestellung" (langer Geschäftsvorfall), der für Gastro empfohlen ist, kann man (oder muss) die Bestellpositionen angeben. Wenn jemand ein Glas Cola bestellt, wird das Glas Cola im TSE vermerkt.

Und nun die Frage: Wenn ich einen "Beleg" erstelle und alle Positionen haben dieselbe Mehrwertsteuer, macht Ihr dann eine Transaktion mit nur einem Gesamtbruttobetrag des Bons? Oder gebt Ihr jede Position mit ihrem Betrag an? Der Geschäftsvorfall selbst ist ja nur ein Bruttobetrag, alles geht letztlich auf dasselbe Fibukonto.

Und dann noch eine kurze Frage hinterher: Nehmt Ihr bei Barentnahmen/-einlagen den "Sonstigen Vorfall"?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 11 Alexandria
 
#8
  Alt 22. Jul 2020, 12:01
Und nun die Frage: Wenn ich einen "Beleg" erstelle und alle Positionen haben dieselbe Mehrwertsteuer, macht Ihr dann eine Transaktion mit nur einem Gesamtbruttobetrag des Bons?
Ja, so steht es in der Doku soweit ich es verstanden habe.

Auch bei Bestellungen schickt man nicht was konkret bestellt wurde, sondern nur Summen.

Und dann noch eine kurze Frage hinterher: Nehmt Ihr bei Barentnahmen/-einlagen den "Sonstigen Vorfall"?
Einzahlung, Auszahlung, Anfangsbestand, ... hielte ich da für passender.
Sebastian Jänicke
  Mit Zitat antworten Zitat
michaelg
 
#9
  Alt 22. Jul 2020, 12:22
Zitat:
Auch bei Bestellungen schickt man nicht was konkret bestellt wurde, sondern nur Summen.
https://support.gastro-mis.de/suppor...nd-processdata

In dem Link steht: Die Processdata "Bestellung" besteht dann aus einer Liste von <Menge>;”<Bezeichnung>”;<Preis>

Und da stehen Wiener Schnitzel und Himbeereis als Beispiele, was mit in die Transaktion geschrieben wird.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

 
Delphi 11 Alexandria
 
#10
  Alt 22. Jul 2020, 12:36
Auch bei Bestellungen schickt man nicht was konkret bestellt wurde, sondern nur Summen.
Bei Bestellung wird jeder einzelne Artikel aufgelistet mit Menge, Bezeichnung und Betrag.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz