lookupArticleByCode method
Ein aktiver Artikel per code (number, ean oder internalCode) oder
per eigener Kennung aus externalIds (externalSystem mit
externalId), nie beides. Ein stillgelegter Artikel gilt als nicht
gefunden (article_not_found).
Implementation
Future<Article> lookupArticleByCode({String? code, String? externalSystem, String? externalId}) async {
const name = Aufrufe.lookupArticleByCode;
final extern = externalSystem != null || externalId != null;
if (code != null && extern) {
throw const KasseneckValidationError(name, 'entweder code oder externalSystem mit externalId', 'request');
}
final params = extern
? {
'externalSystem': kennung(name, 'externalSystem', externalSystem),
'externalId': kennung(name, 'externalId', externalId),
}
: {'code': kennung(name, 'code', code)};
final daten = await _transport.call(name, params);
return artikel(const Ort(name, 'article'), daten['article']);
}