getStockMovementForArticle<AA extends ArticleRawAbstract> method

double getStockMovementForArticle<AA extends ArticleRawAbstract>(
  1. AA aSelected
)

Implementation

double getStockMovementForArticle<AA extends ArticleRawAbstract>(
    AA aSelected) {
  double stockMovement = 0.0;
  A aInItem = articleCreator();
  if (aSelected.calibreId == aInItem.calibreId &&
      aSelected.id == aInItem.id &&
      aInItem.kind == ArticleKind.retail) {
    stockMovement += quantity; // weight should not be included in article
  } else {
    if (aInItem.kind == ArticleKind.basket || isBasket == true) {
      if ((aInItem as ArticleBasketOnTicket).proxies.any((proxy) =>
          proxy.proxyCalibreId == aSelected.calibreId &&
          proxy.proxyArticleId == aSelected.id)) {
        for (final proxyOfArticleInItem in aInItem.proxies.where((proxy) =>
            proxy.proxyCalibreId == aSelected.calibreId &&
            proxy.proxyArticleId == aSelected.id)) {
          stockMovement += quantity *
              proxyOfArticleInItem
                  .minimumUnitPerBasket; // weight should not be included in article
        }
      }
    }
  }
  return stockMovement;
}