createCustomerCashregister method
Legt eine Kasse an.
Jede Kasse bezieht sich auf eine Signatur. Ohne eine einzige -- auch
eine noch laufende zaehlt -- entsteht keine (signature_missing); bei
mehreren muss signaturId dastehen (signature_ambiguous, die Auswahl
steht in data.auswahl), eine fremde Kennung ist signature_unknown.
Darf vor der fertigen Signatur aufgerufen werden: die Kasse bleibt
dann auf entwurf und geht von selbst live, sobald IHRE Signatur bereit
ist (automatisch = true, Vorgabe). NeueKasse.grund sagt, warum
gerade nichts lief: signature_not_ready oder automatik_aus.
Einen Namen gibt es nicht: Kassennamen vergibt Kasseneck, sie sind
gleich der cashregisterId.
Hoechstens 20 Kassen je Betrieb (cashregister_limit); ohne gebuchtes
Modul module_inactive.
Implementation
Future<NeueKasse> createCustomerCashregister({
required String customerId,
bool? automatisch,
String? signaturId,
}) async {
final id = _pflicht(customerId, 'createCustomerCashregister', 'customerId');
final d = await _t.rufen(Aufrufe.createCustomerCashregister, params: <String, dynamic>{
'customerId': id,
'automatic': automatisch,
'signatureRequestId': signaturId,
});
final ib = alsMap(d['activation']);
final ok = ib['ok'];
return NeueKasse(
kasse: Kasse.aus(_verlangt(d['cashregister'], 'createCustomerCashregister', 'cashregister')),
gestartet: alsJaNein(ib['started']),
// `null` heisst "nicht gelaufen" und ist etwas anderes als `false`.
ok: ok is bool ? ok : null,
schritt: alsTextOderNull(ib['step']),
grund: alsTextOderNull(ib['reason']),
);
}