RegisterReceiptClient class

Constructors

RegisterReceiptClient(RegisterTransport transport, {Duration? signingTimeout, bool testEnvironment = false})
testEnvironment: das Gerät hängt an einer Test-Umgebung (PairedRegisterDevice.testEnvironment bzw. die Benutzerliste). Dann trägt jeder Storno-Beleg TESTKASSE, auch ohne das Original.

Properties

hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
signingTimeout → Duration
Der Abschluss darf laenger warten als eine Belegliste: die Signatureinheit braucht ihre Zeit, und ein Abbruch beendet nur das Warten der Kasse, nicht die Arbeit des Servers.
final
testEnvironment → bool
Siehe Konstruktor.
final
transport → RegisterTransport
final

Methods

articleGroups() → Future<List<ArticleGroup>>
Artikelgruppen (Kategorien der Kachel-Kasse).
articles() → Future<List<PosArticle>>
Artikel in der Form, die die Kacheln brauchen.
cancelReceipt({required String originalReceiptId, required String reason, List<CancellationItem>? items, String? returnDisposition, Map<int, String>? itemReturnDispositions, String? note, List<KeckPaymentInput>? payments, KasseneckReceipt? original, String? drawerId, bool? refundTip, String? tipRefundSource}) → Future<CancelReceiptResult>
Storno-Beleg zu einem bestehenden Beleg — voll oder in Teilen.
cashregisters() → Future<List<CashregisterEntry>>
Die Kassen, die dem angemeldeten Benutzer offenstehen (listMyCashregisters); für einen Kassen-Benutzer genau die ihm zugewiesenen.
checkVoucher(String code) → Future<VoucherCheck>
Gutschein am Code pruefen (checkVoucher, Recht voucherRedeem); siehe die gleichnamige Funktion. Der Code geht nur in Normalform hinaus und steht in keinem Fehlertext.
closeMyShift({required String idempotencyKey, required String shiftId, required int countedCents, Map<String, int>? denominations, int? attempt, String? comment, List<TipPayout>? tipPayouts, AfterCount? afterCount, bool checkOnly = false}) → Future<ShiftCloseResult>
Schicht schliessen (closeMyShift, Recht shift). ShiftCloseResult.recount heisst: bitte noch einmal zaehlen und erneut senden (kein Fehler); nach dem zweiten Zaehlen schliesst der Server, bei grosser Abweichung nur mit comment (comment_required). attempt wird angenommen, wirkt aber nicht: den Versuch zaehlt der Server (hoechstens zwei). tipPayouts: hoechstens der offene Anspruch (DrawerState.tipClaims). afterCount: nach dem Zaehlen Geld entnehmen (cash_drop) oder einlegen (change_in), Betrag positiv; entnehmen hoechstens den gezaehlten Betrag (cash_movement_exceeds_balance), ein Betrag ueber 0 braucht das Recht cashMove (after_count_not_permitted). Gebucht wird nur beim tatsaechlichen Schliessen; die Antwort traegt dann ShiftCloseResult.afterCountReceipt („Bon fürs Kuvert“). Die Art prueft der Server. checkOnly: nur pruefen, nicht schliessen – dieselbe Pruefung wie beim Schliessen, damit die Kasse vor „Geld entnehmen“ weiss, ob nachgezaehlt (recount) oder begruendet (comment_required) werden muss; ShiftCloseResult.ready, wenn das Schliessen mit diesem Betrag ginge. Gebucht wird nichts (auch kein afterCount). Die Zaehlung zaehlt als einer der zwei Versuche; schliesst danach derselbe Betrag, gilt er als dieselbe Zaehlung. Nur true geht hinaus.
createDepExport({String? from, String? to, String? requestId}) → Future<DepExport>
Legt einen DEP-Export fuer die Kassennachschau an (createDepExport, § 19 Abs 2 RKSV), optional fuer from bis to (Wiener Tage YYYY-MM-DD, beide einschliesslich). Antwortet sofort mit status: running; weiter mit waitForDepExport.
Ein Pruefer-Link fuer einen fertigen Export (createDepHandoverLink): Adresse (QR-Code) und 6-stelliger Code, 14 Tage gueltig. Beides steht nur in dieser Antwort und gehoert in kein Protokoll.
fullReceiptId(String receiptId) → Future<String>
Verschlüsselte Volltext-Belegnummer (generateFullReceiptId): der Bezeichner, unter dem der Beleg öffentlich abrufbar ist.
get(String receiptId) → Future<KasseneckReceipt>
Einen Beleg vollstaendig holen — samt Belegkopf, fuer Nachdruck und Storno.
getDepExport(String exportId) → Future<DepExport>
Der Stand eines Exports dieser Kasse (getDepExport) mit Befund, Positionsdatei und Pruefer-Links (ohne Adresse und Code).
getDepExportFile(String exportId, String file, {Duration downloadTimeout = const Duration(minutes: 10), String? sha256}) → Future<DepExportFile>
Eine Datei eines fertigen Exports: file ist dep (JSON), protocol (PDF), items (CSV) oder zip.
getMyDrawerState({String? drawerId, String? cashregisterId}) → Future<DrawerState>
Stand der Lade (getMyDrawerState): Rechte, offene Schicht, Trinkgeld-Ansprueche und (mit cashView) Soll und letzte Oeffnungen. Ohne drawerId gilt die Hauptlade der Kasse (cashregisterId, sonst die Kasse der Anmeldung); ein leeres drawerId gilt wie keines.
getMyShiftReport({required String shiftId}) → Future<ShiftReport>
Bericht der Schicht (getMyShiftReport): Schicht, Bewegungen und Bon-Daten (X-Bon, bei geschlossener Schicht der Z-Bon).
list({String? from, String? to, int? limit}) → Future<List<ReceiptSummary>>
Belege dieser Kasse — Zusammenfassungen, neueste zuerst (Serverordnung).
listMyStocktakeCounts({required String stocktakeId, String? articleId, bool? ownOnly, int? limit, String? cursor}) → Future<StocktakeCountPage>
Zaehlungen einer Inventur (listMyStocktakeCounts), neueste zuerst; ownOnly nur die eigenen.
listMyStocktakeItems({required String stocktakeId, bool? openOnly, int? limit, String? cursor}) → Future<StocktakeItemPage>
Positionen einer Inventur (listMyStocktakeItems); openOnly nur ungezaehlte (in der Pruefung: die zum Nachzaehlen). Ab der Pruefung mit Soll nur mit dem Recht stocktakeClose.
listMyStocktakes({String? locationId, String? status}) → Future<List<Stocktake>>
Offene Inventuren (listMyStocktakes); fuer Kassen-Benutzer nur counting und review mit offenem Nachzaehlen. Ein leerer locationId gilt wie keiner; status aus stocktakeStatuses.
logMyDrawerOpenings({required String drawerId, required List<DrawerOpeningEntry> entries}) → Future<DrawerOpeningsResult>
Oeffnungen der Lade melden (logMyDrawerOpenings), auch nachgesendete; doppelt gemeldete zaehlen einmal. 1 bis 50 entries, jeder mit eigenem Schluessel.
logReceiptOutputs({required List<ReceiptOutputEntry> entries}) → Future<LogReceiptOutputsResult>
Drucke und das Teilen eines Belegs an das Protokoll „Ausgaben“ melden (logReceiptOutputs, nur ueber den Kassenweg). Registrierkassen-Erlass BMF-AV Nr. 2/2026, Abschnitt 4.2: die Belegerteilung ist zu dokumentieren. Der Beleg selbst bleibt unberuehrt; das Protokoll steht nie im DEP. Die Kasse steht im Transport (wie bei sendReceiptEmail).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
openMyShift({required String idempotencyKey, required String drawerId, int? openingFloatCents, Map<String, int>? denominations, bool? takeOver}) → Future<OpenShiftResult>
Schicht oeffnen (openMyShift, Recht shift): gezaehltes Startgeld (openingFloatCents, 0 erlaubt, mit denominations dazu) oder den Bestand der Vorschicht ungezaehlt uebernehmen (takeOver). Die Summe der Stueckelung prueft sumDenominations.
recordMyCashMovement({required String idempotencyKey, required String drawerId, required String type, required int amountCents, String? location, String? note, String? recipientId, String? targetDrawerId}) → Future<CashMovementResult>
Ein- oder Auszahlung buchen (recordMyCashMovement, Recht cashMove); die Antwort traegt die Bon-Daten „Kassenbewegung“. type aus manualMovementTypes; amountCents positiv, das Vorzeichen setzt der Server nach der Art. Pflichtangaben je Art: note bei other_in und other_out (hoechstens 200 Zeichen), recipientId bei tip_payout, targetDrawerId bei transfer_out. location bei change_in und cash_drop ist freiwillig (aus cashLocations).
recordMyStocktakeCount({required String idempotencyKey, required String stocktakeId, required String articleId, required int quantity, String? condition, List<String>? serialNumbers, String? note, String? cashregisterId}) → Future<StocktakeCountResult>
Eine Zaehlung (recordMyStocktakeCount). Antwort: die Zaehlung und die Position danach (Ist-Summe, kein Soll).
reprintVoucherLabel(String id) → Future<String>
Etikett noch einmal drucken (reprintVoucherLabel, Recht voucherManage): liefert den Klartext-Code nur fuer den Druck.
Widerruft einen Pruefer-Link (revokeDepHandoverLink); ein schon widerrufener ist kein Fehler, einer einer anderen Kasse link_not_found.
sell({required List<KasseneckItem> items, required List<KeckPaymentInput> payments, int? tipCents, bool tipKeptByEmployee = false, List<String>? customerLines, List<String>? legalNotices, String? drawerId, List<KeckVoucher>? vouchers, ManualReceipt? manualReceipt, String? idempotencyKey}) → Future<KasseneckReceipt>
Normalbeleg (Verkauf): der signierte Beleg samt Belegkopf.
sendReceiptEmail({required String fullReceiptId, required String to, String? language}) → Future<SendReceiptEmailResult>
Einen bereits ausgestellten Beleg als Link auf die oeffentliche Belegseite an to schicken (sendReceiptEmail).
setStockLocation({required String? stockLocationId, String? cashregisterId}) → Future<CashregisterStockLocation>
Standort der Kasse setzen (setMyCashregisterStockLocation) – von dort bucht der Server Verkauf und Storno ab. Recht stockLocation.
stock({String? locationId, String? articleId, bool? belowMinimum}) → Future<StockList>
Bestand je Artikel und Standort (listMyStock), Mengen in Tausendstel der Basiseinheit. Recht stockView; StockList.values nur mit stockCosts, sonst null.
stockLocations() → Future<List<StockLocation>>
Standorte des Betriebs (listMyStockLocations), samt aufgeloester (active: false) und dem Hauptstandort. Recht stockView.
tipRecipients() → Future<List<KeckTipPerson>>
Personen, denen sich Trinkgeld zuweisen laesst. Dieselbe Menge, die der Verkauf akzeptiert; ohne das Recht tipAssign steht nur der Angemeldete darin.
toString() → String
A string representation of this object.
inherited
voidMyStocktakeCount({required String idempotencyKey, required String stocktakeId, required String countId, required String reason}) → Future<StocktakeCountResult>
Storniert eine Zaehlung mit Grund (voidMyStocktakeCount; fremde nur mit dem Recht stocktakeClose).
waitForDepExport(String exportId, {Duration timeout = const Duration(minutes: 10)}) → Future<DepExport>
Wartet, bis der Export fertig ist (getDepExport): sofort, dann nach 2 s und mit je 1,5-fachem Abstand, hoechstens alle 15 s. failed wirft DepExportFailedException, nach timeout DepExportTimeoutException (der Export laeuft weiter, getDepExport fragt spaeter). Ein Fehler der Abfrage, auch ein Netzfehler, beendet das Warten unveraendert.

Operators

operator ==(Object other) → bool
The equality operator.
inherited