updateVariantGroup method
Aendert eine aktive Gruppe (Name, Vorgaben, neue Werte) oder legt sie mit
active: false still: die Gruppe und alle ihre Varianten, endgueltig. Die
Antwort kommt erst, wenn alle Varianten stillgelegt sind. Bestehende
Varianten aendern Name und Vorgaben nicht (dafuer updateArticle).
Implementation
Future<VariantGroup> updateVariantGroup(UpdateVariantGroupRequest request) async {
const name = Aufrufe.updateVariantGroup;
final p = request.toJson();
_schreiben(name, p);
kennung(name, 'variantGroupId', p['variantGroupId']);
if (request.clearDefaults && request.defaults != null) {
throw anfragefehler(name, 'defaults und clearDefaults zugleich');
}
final aenderungen = ['name', 'defaults', 'addAttributeValues'].where(p.containsKey);
if (request.active case final aktiv?) {
if (aktiv) throw anfragefehler(name, 'active kennt nur false (stilllegen); eine stillgelegte Gruppe bleibt stillgelegt');
if (aenderungen.isNotEmpty) throw anfragefehler(name, 'active: false steht allein, ohne weitere Aenderung');
} else if (aenderungen.isEmpty) {
throw anfragefehler(name, 'die Aenderung nennt kein Feld');
}
_vorgabenLeeren(name, request.defaults);
return _gruppe(name, await _transport.call(name, p));
}