<?php namespace Lc\ShopBundle\Model; use App\Entity\OrderProductReductionCatalog; use Doctrine\ORM\Mapping as ORM; use Lc\ShopBundle\Context\PriceInterface; /** * @ORM\MappedSuperclass() */ abstract class OrderProduct implements PriceInterface { use PriceTrait ; /** * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\OrderShopInterface", inversedBy="orderProducts", cascade={"persist"}) * @ORM\JoinColumn(nullable=false) */ protected $orderShop; /** * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\ProductInterface", inversedBy="orderProducts")) */ protected $product; /** * @ORM\Column(type="integer") */ protected $quantityOrder; /** * @ORM\Column(type="float") */ protected $quantityProduct; /** * @ORM\Column(type="string", length=255) */ protected $title; /** * @ORM\OneToOne(targetEntity="Lc\ShopBundle\Context\OrderProductReductionCatalogInterface", cascade={"persist", "remove"}) */ protected $orderProductReductionCatalog; public function __toString() { if($this->getTitle()) { return $this->getTitle(); } else{ return $this->getProduct()->getProductFamily()->getTitle(). ' - '.$this->getProduct()->getTitle(); } } public function getTitleOrderShop() { $product = $this->getProduct() ; $productFamily = $product->getProductFamily() ; $titleProduct = $product->getTitle() ; $titleProductFamily = $productFamily->getTitle() ; if(strlen($titleProduct) > 0 && strlen($titleProductFamily) > 0) { $title = $titleProductFamily.' - '.$titleProduct ; } else { $title = strlen($titleProduct) ? $titleProduct : $titleProductFamily ; } if($productFamily->hasProductsWithVariousWeight()) { $title .= ' - '.$product->getQuantityLabelInherited() ; } return $title ; } public function getTitleSummaryAfterAddCart() { $title = '' ; $product = $this->getProduct() ; $productFamily = $product->getProductFamily() ; $titleProduct = $product->getTitleInherited() ; $titleProductFamily = $productFamily->getTitle() ; // multiple if($productFamily->getActiveProducts() && $productFamily->getBehaviorAddToCart() == 'multiple') { $title .= $titleProduct ; if($productFamily->hasProductsWithVariousWeight()) { $title .= ' - '.$product->getQuantityLabelInherited() ; } } // simple if($productFamily->getBehaviorAddToCart() == 'simple') { if($productFamily->getActiveProducts()) { $title .= $titleProduct ; if($productFamily->hasProductsWithVariousWeight()) { $title .= ' - '.$product->getQuantityLabelInherited() ; } } } return $title ; } public function getOrderShop(): ?OrderShop { return $this->orderShop; } public function setOrderShop(?OrderShop $orderShop): self { $this->orderShop = $orderShop; return $this; } public function getProduct(): ?Product { return $this->product; } public function setProduct(?Product $product): self { $this->product = $product; return $this; } public function getQuantityOrder(): ?int { return $this->quantityOrder; } public function setQuantityOrder(int $quantityOrder): self { $this->quantityOrder = $quantityOrder; return $this; } public function getQuantityProduct(): ?float { return $this->quantityProduct; } public function setQuantityProduct(float $quantityProduct): self { $this->quantityProduct = $quantityProduct; return $this; } public function getTitle(): ?string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } public function getOrderProductReductionCatalog(): ?OrderProductReductionCatalog { return $this->orderProductReductionCatalog; } public function setOrderProductReductionCatalog(?OrderProductReductionCatalog $orderProductReductionCatalog): self { $this->orderProductReductionCatalog = $orderProductReductionCatalog; return $this; } }