Example #1
0
 /**
  * @param \Extcode\Cart\Domain\Model\Cart\BeVariant $newBeVariant
  * @return mixed
  */
 public function addBeVariant(\Extcode\Cart\Domain\Model\Cart\BeVariant $newBeVariant)
 {
     $newBeVariantId = $newBeVariant->getId();
     /** @var \Extcode\Cart\Domain\Model\Cart\BeVariant $beVariant */
     $beVariant = $this->beVariants[$newBeVariantId];
     if ($beVariant) {
         if ($beVariant->getBeVariants()) {
             $beVariant->addBeVariants($newBeVariant->getBeVariants());
         } else {
             $newQuantity = $beVariant->getQuantity() + $newBeVariant->getQuantity();
             $beVariant->setQuantity($newQuantity);
         }
     } else {
         $this->beVariants[$newBeVariantId] = $newBeVariant;
     }
     $this->reCalc();
 }
Example #2
0
 /**
  * Adds Variants of a Variant to Order Item
  *
  * @param \Extcode\Cart\Domain\Model\Cart\BeVariant $variant
  * @param int $level Level
  *
  * @return void
  */
 protected function addVariantsOfVariant(\Extcode\Cart\Domain\Model\Cart\BeVariant $variant, $level)
 {
     $level += 1;
     foreach ($variant->getBeVariants() as $variantInner) {
         /**
          * Cart Variant Inner
          * @var \Extcode\Cart\Domain\Model\Cart\BeVariant $variantInner
          */
         if ($variantInner->getBeVariants()) {
             $this->addVariantsOfVariant($variantInner, $level);
         } else {
             $this->addBeVariant($variantInner, $level);
         }
     }
 }