saveBusiness method

Future<PosBusinessSettings> saveBusiness(
  1. Map<String, dynamic> patch
)

Betriebsweite Einstellungen schreiben (Recht layout). patch mit englischen Schlüsseln, am besten aus posSettingsChanges; vatRates immer als ganze Karte.

Implementation

Future<PosBusinessSettings> saveBusiness(Map<String, dynamic> patch) async {
  const name = Aufrufe.setMyKasseSettings;
  final gesendet = _pruefeTeil(name, 'business', patch, const PosBusinessSettings().toJson(), posBusinessValues);
  if (gesendet.containsKey('vatRates')) {
    final karte = gesendet['vatRates'];
    // Unter /v3 prüft der Server die übergebene Karte für sich: ein
    // einzelner Schalter wie {20: false} wäre dort „kein Satz an".
    if (karte is! Map || !karte.values.any((an) => an == true)) {
      throw const KasseneckValidationError(
          name, 'business.vatRates: mindestens ein Steuersatz muss an sein (immer die ganze Karte senden)', 'request');
    }
  }
  final daten = await transport.call(name, params: {'business': gesendet});
  return PosBusinessSettings.fromJson(_stand(name, daten, 'business'));
}