lookupArticleByCode method

Future<Article> lookupArticleByCode({
  1. String? code,
  2. String? externalSystem,
  3. String? externalId,
})

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']);
}