/**
  * @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;
 }