/** * @param OrderLineItem $item * @return array|ProductUnit[] */ protected function getProductAvailableChoices(OrderLineItem $item) { /** @var ProductPriceRepository $repository */ $repository = $this->registry->getManagerForClass($this->priceClass)->getRepository($this->priceClass); $priceList = $this->priceListRequestHandler->getPriceList(); $choices = $repository->getProductUnitsByPriceList($priceList, $item->getProduct(), $item->getOrder()->getCurrency()); $hasChoice = false; foreach ($choices as $unit) { if ($unit->getCode() === $item->getProductUnit()->getCode()) { $hasChoice = true; break; } } if (!$hasChoice) { $choices[] = $item->getProductUnit(); } return $choices; }