/** * Returns amount of already returned items for given order item. * * @param OrderItem $orderItem * * @return int */ public function getOrderItemReturnedQuantity(OrderItem $orderItem) { $sum = 0; $orderItem->getReturnItems()->map(function (ReturnItem $returnItem) use(&$sum) { $sum += $returnItem->getQuantity(); }); return $sum; }
/** * @param array $distribution * @param int $total * * @return ReturnItem */ protected function getItem($distribution = [10], $total = 10) { $orderItem = new OrderItem(); $orderItem->setQuantity($total); $testedItem = null; foreach ($distribution as $q) { $returnItem = new ReturnItem($orderItem); $returnItem->setQuantity($q); if ($testedItem) { $orderItem->getReturnItems()->add($returnItem); } else { $testedItem = $returnItem; } } return $testedItem; }