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 7. Dez 2022
Antwort Antwort
Seite 13 von 14   « Erste     3111213 14   
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, 142x aufgerufen)
Dateityp: zip cc.KassenSichV.1.0.zip (66,3 KB, 183x aufgerufen)
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de

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

 
Delphi 11 Alexandria
 
#121
  Alt 28. Mai 2021, 12:42
Arbeitet die Unit-Sammlung von Bernau korrekt mit den Zeiten?

In dem beiliegenden Demo-Projekt werden Start- und Ende-Zeit in der aktuellen lokalen Zeit ausgegeben und in den QR-Code geschrieben. Ist das richtig so? Ich meine irgendwo gelesen zu haben, dass das im UTC-Zeitformat zu erfolgen hat. Ich habe hier auch einige reale Bons herumliegen, wo die Zeit im UTC-Format draufgedruckt ist. Die Mehrheit meiner gesammelten Beispielbons verwendent allerdings die lokale Zeitzone in Deutschland (Sommerzeit).

Wie müssen die Zeitangaben auf dem Kassenbon/im QR-Code erfolgen?

Edit: Unter https://support.gastrosoft.de/portal...n-%C3%BCberein steht, das UTC verwendet werden muss. Also nicht nur das Format sondern auch die *Zeitzone*! Wer hat eine offizielle Quelle.

Edit2: Ich nutze jetzt im GetDateTimeEvent diesen Code:
aDateTime := TTimeZone.Local.ToUniversalTime(now);
Damit sollte das OK sein?

Geändert von BlueStarHH (28. Mai 2021 um 15:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 10.4 Sydney
 
#122
  Alt 28. Mai 2021, 15:19
Andere Funktionen (z.B. zufügen eines Client) benötigen auch eine PIN. Diese PIN darf nicht in der Konfiguration gespeichert werden.
Das ist die Theorie. In der Praxis hält sich da kaum jemand dran, auch nicht bei den größeren Playern...
Sebastian Jänicke
  Mit Zitat antworten Zitat
noisy_master

 
Delphi XE5 Professional
 
#123
  Alt 18. Jun 2021, 14:45
Hallo liebe Gemeinde,

ich bin neulich bei einem Kunden über einen merkwürdigen Fehler gestolpert: WORM_OUT_OF_MEM_ERROR. Warum das auftauchte bin ich mir nicht sicher..vielleicht eine zu alte Worm.dll... jedenfalls ging danach alles wieder.

Da kamen mir doch glatt zwei Fragen in den Sinn:
- wie oft sollte die DLL aktualisiert werden? Immer wenn eine neue Version rauskommt? Wie bekommt man das eigentlich mit(ausser immer wieder z.B. bei Gastro-XXX zu schauen)?
- Wie handhabt ihr das mit dem Export und dem Delete? Wenn voll? Jeden Tag? Wenn jeden Tag, wie bekommt man dann den "Vollexport" hin wenn der Prüfer fragt? Oder irgendein ganz
anderer Ansatz?

Ich mag das Ganze Thema immer noch nicht... Es sind immer noch viel zu viele Fragen offen

Wie auch immer: wieder schönen Dank für eure Antworten vorab!

Gruß
Dirk
  Mit Zitat antworten Zitat
BlueStarHH

 
Delphi 11 Alexandria
 
#124
  Alt 25. Jun 2021, 13:20
Ich habe die Swissbit TSE mit dieser Unitsammlung angebunden. Dabei steht diese Unit in der Uses Anweisung:

cc.KassenSichV.Swissbit.dllwrapper.Static

Reicht das aus, um die DLL zu laden? LibraryWormApiDllLoad müsste doch nur bei der dynamischen Anbindung benutzt werden oder?

Bei einem Kunden klappt alles. Bei einem anderen kommt die Fehlermeldumg, dass die WormAPI.dll nicht gefunden wurde, obwohl diese im Programmorder liegt. Was kann das sein? Danke!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 10.4 Sydney
 
#125
  Alt 25. Jun 2021, 13:25
Bei einem Kunden klappt alles. Bei einem anderen kommt die Fehlermeldumg, dass die WormAPI.dll nicht gefunden wurde, obwohl diese im Programmorder liegt. Was kann das sein? Danke!
Was sagt denn der Process Monitor? Vielleicht fehlt eine andere abhängige DLL?
Sebastian Jänicke
  Mit Zitat antworten Zitat
BlueStarHH

 
Delphi 11 Alexandria
 
#126
  Alt 25. Jun 2021, 13:40
Bei einem Kunden klappt alles. Bei einem anderen kommt die Fehlermeldumg, dass die WormAPI.dll nicht gefunden wurde, obwohl diese im Programmorder liegt. Was kann das sein? Danke!
Was sagt denn der Process Monitor? Vielleicht fehlt eine andere abhängige DLL?
Dumme Frage: Reicht es nicht nur die WormAPI.dll auszuliefern? Muss ich noch andere Dateien mitgeben? "Process Monitor" kann ich mir erst am Mo wieder anschauen, wenn der Kunde wieder da ist.
  Mit Zitat antworten Zitat
noisy_master

 
Delphi XE5 Professional
 
#127
  Alt 25. Jun 2021, 16:24
...
Dumme Frage: Reicht es nicht nur die WormAPI.dll auszuliefern?...
Hi,

so blöd ist die Frage gar nicht! Und: nein, es reicht leider nicht! Du musst beim Kunden noch die VC_Redist installieren Die Jungs von Swissbit haben die dynamischan Abhängigkeiten(trotz vielfachem Wunsch) immer noch nicht entfernt!

Gruß
Dirk
  Mit Zitat antworten Zitat
u2020

 
Delphi 11 Alexandria
 
#128
  Alt 17. Jan 2022, 16:27
Verwaiste Transaktionen.

Erst noch ein gesundes neues Jahr 2022.


Leider kann ich auf einer TSE keine weiteren Belege mehr speichern.
Fehlermeldung: Zu viele offene Transaktionen.
Wie das zustande gekommen ist, kann ich zur Zeit nicht feststellen.

Wie habt ihr das Problem mit verwaisten Transaktionen gelöst?

Mein Ansatz bisher ist:

Durch den Aufruf: transaction_listStartedTransactions bekomme ich eine Array mit den offenen Transaktionen.

jetzt würde ich für jede Transaktions-Nummer folgende Zeile aufrufen:
TccSwissbitTse.transaction_finish(aTransactionResp onse, MEINE_OFFENE_NUMMER; 'Kassenbeleg-V1', 'AVBelegabbruch^0.00_0.00_0.00_0.00_0.00^' ): TWormError;

Mein Problem ist, daß ich auf meiner Entwicklung TSE keine offenen Transaktionen befinden.
Ich bekomme die Kunden-TSE zugeschickt. Dieses wollte ich nicht zum testen nehmen.

Wäre mein Ansatz richtig? oder zu einfach gedacht?

Gruß
Udo
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

 
Delphi 10.4 Sydney
 
#129
  Alt 17. Jan 2022, 19:22
Das ist prinzipiell richtig. Die Vorgabe, dass ein solcher Beleg 0 ergibt, kannst du dabei mangels weiterer Informationen kaum prüfen.

Wichtig wäre daher, dass du anhand der Logs, die du hoffentlich schreibst, feststellst, was das für Transaktionen sind. Denn vielleicht musst du ja auch noch Artikelstorni schicken... (vorausgesetzt du lässt Transaktionen geplant länger offen, wenn nicht, ist der Abbruch meiner Meinung nach unkritisch)

Ich bin aus dem Thema Kassen mittlerweile aber raus.
Sebastian Jänicke
  Mit Zitat antworten Zitat
LikeMike
 
#130
  Alt 7. Dez 2022, 11:22
Hallo!

Das Bundeskabinett hat am 24.08.2022 dem Regierungsentwurf zur Änderung der Abgabenordnung zugestimmt. Damit gelten die Änderungen bereits ab dem 01.01.2023.
Eine der gravierendsten Änderungen betrifft die „Beweiskraft der Buchführung“. Grundsätzlich sind die Buchführung und Aufzeichnungen der Besteuerung zu Grunde zu legen. Nun ist gesetzlich verankert worden, dass dies nicht mehr gilt, soweit
1. Nach den Umständen des Einzelfalls Anlass besteht, die sachliche Richtigkeit zu beanstanden oder
2. Elektronische Daten nicht nach Vorgabe der einheitlichen digitalen Schnittstelle zur Verfügung gestellt werden können.
Das bedeutet, dass das Finanzamt hinzu schätzen darf, wenn Sie die Kassengrundaufzeichnungen nicht im DSFinV-K Format vorlegen können.


Da ich den Export im DSFinV-K Format bis jetzt geschlabbert habe (in der Hoffnung, dass die angekündigte Erweiterung kommt) hier nochmal die Nachfrage, ob sich da noch etwas tut, oder ob es vielleicht jemanden gibt, der den Export schon umgesetzt hat.

Danke im Vorraus
Mike
  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 06:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf