/** * @test */ public function removeVariantRemovesVariant() { $variant = new \Extcode\Cart\Domain\Model\Product\BeVariant(); $this->product->addBeVariant($variant); $this->product->removeBeVariant($variant); $this->assertEmpty($this->product->getBeVariants()); }
/** * render * * @param string $id * @param string $name * @param \Extcode\Cart\Domain\Model\Product\Product $product * * @return string */ public function render($id = '', $name = '', \Extcode\Cart\Domain\Model\Product\Product $product) { $currencyViewHelper = $this->objectManager->get(\Extcode\Cart\ViewHelpers\Format\CurrencyViewHelper::class); $currencyViewHelper->initialize(); $currencyViewHelper->setRenderingContext($this->renderingContext); $out = ''; $out .= '<select id="' . $id . '" name="' . $name . '">'; foreach ($product->getBeVariants() as $beVariant) { /** * @var \Extcode\Cart\Domain\Model\Product\BeVariant $beVariant */ $currencyViewHelper->setRenderChildrenClosure(function () use($beVariant) { return $beVariant->getPriceCalculated(); }); $regularPrice = $currencyViewHelper->render(); $currencyViewHelper->setRenderChildrenClosure(function () use($beVariant) { return $beVariant->getBestPriceCalculated(); }); $specialPrice = $currencyViewHelper->render(); $optionLabelArray = []; if ($product->getBeVariantAttribute1()) { $optionLabelArray[] = $beVariant->getBeVariantAttributeOption1()->getTitle(); } if ($product->getBeVariantAttribute2()) { $optionLabelArray[] = $beVariant->getBeVariantAttributeOption2()->getTitle(); } if ($product->getBeVariantAttribute3()) { $optionLabelArray[] = $beVariant->getBeVariantAttributeOption3()->getTitle(); } $optionLabel = join(' - ', $optionLabelArray); $value = 'value="' . $beVariant->getUid() . '"'; $data = 'data-regular-price="' . $regularPrice . '"'; if ($regularPrice != $specialPrice) { $data .= ' data-special-price="' . $specialPrice . '"'; } $out .= '<option ' . $value . ' ' . $data . '>' . $optionLabel . '</option>'; } $out .= '</select>'; return $out; }
/** * Get Measure Unit Faktor * * @return bool */ public function getMeasureUnitFactor() { $factor = 1.0; foreach ($this->product->getMeasureUnits() as $measureUnit) { if ($measureUnit[$this->priceMeasureUnit]) { $factor = $factor / ($this->priceMeasure / $measureUnit[$this->priceMeasureUnit]); } if ($measureUnit[$this->product->getBasePriceMeasureUnit()]) { $factor = $factor * (1 / $measureUnit[$this->product->getBasePriceMeasureUnit()]); } } return $factor; }
/** * @param \Extcode\Cart\Domain\Model\Product\Product $product * * @return float */ public function render(\Extcode\Cart\Domain\Model\Product\Product $product) { return $product->getBestSpecialPriceDiscount($this->getFrontendUserGroupIds()); }