<?phpnamespace DcSiteBundle\Entity;use Application\Sonata\MediaBundle\Entity\Media;use CoreBundle\Entity\Dealer;use DcSiteBundle\Entity\Service\VehicleAccessory;use Application\Sonata\MediaBundle\Entity\Gallery;use CoreBundle\Entity\AccessoriesReview;use Doctrine\Common\Collections\Collection;use Doctrine\Common\Collections\ArrayCollection;class Accessories{ /** * @var integer */ private $id; /** * @var string */ private $name_ru; /** * @var string */ private $name_ua; /** * @var string */ private $onec_uid; /** * @var integer */ private $avail_count; /** * @var float */ private $price; /** * @var AccessoriesGroup */ private $group; /** * @var Media */ private $image; /** * @var boolean */ private $recommended; /** * @var Collection */ private $content; /** * @var string */ private $url; /** * @var Collection */ private $groups; /** * @var Collection */ private $select_groups; public function __toString() { return (string) $this->name_ru; } /** * Accessories constructor. */ public function __construct() { $this->content = new ArrayCollection(); $this->content->add((new AccessoriesContent())->setLanguage('ru')); $this->content->add((new AccessoriesContent())->setLanguage('ua')); $this->cars = new ArrayCollection(); $this->accessory_vehicles = new ArrayCollection(); } /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set name * * @param string $name * * @return Accessories */ public function setNameRu($name) { $this->name_ru = $name; return $this; } /** * Get name * * @return string */ public function getNameRu() { return $this->name_ru; } /** * Set name * * @param string $name * * @return Accessories */ public function setNameUa($name) { $this->name_ua = $name; return $this; } /** * Get name * * @return string */ public function getNameUa() { return $this->name_ua; } /** * Set onecUid * * @param string $onecUid * * @return Accessories */ public function setOnecUid($onecUid) { $this->onec_uid = $onecUid; return $this; } /** * Get onecUid * * @return string */ public function getOnecUid() { return $this->onec_uid; } /** * Set availCount * * @param integer $availCount * * @return Accessories */ public function setAvailCount($availCount) { $this->avail_count = $availCount; return $this; } /** * Get availCount * * @return integer */ public function getAvailCount() { return $this->avail_count; } /** * Set price * * @param float $price * * @return Accessories */ public function setPrice($price) { $this->price = $price; return $this; } /** * Get price * * @return float */ public function getPrice() { return $this->price; } /** * @param AccessoriesGroup $group * @return $this */ public function setGroup(AccessoriesGroup $group) { $this->group = $group; return $this; } /** * @return AccessoriesGroup */ public function getGroup() { return $this->group; } /** * @param Media $media * @return $this */ public function setImage(Media $media = null) { $this->image = $media; return $this; } /** * @return Media */ public function getImage() { return $this->image; } /** * @param bool $recommended * @return $this */ public function setRecommended($recommended = false) { $this->recommended = $recommended; return $this; } /** * @return bool */ public function getRecommended() { return $this->recommended; } /** * @param $locale * @return string */ public function getNameByLocale($locale) { switch ($locale) { case 'ru': return $this->name_ru; case 'ua': default: return $this->name_ua; } } /** * @var string */ private $catalog_number; /** * Set catalogNumber * * @param string $catalogNumber * * @return Accessories */ public function setCatalogNumber($catalogNumber) { $this->catalog_number = $catalogNumber; return $this; } /** * Get catalogNumber * * @return string */ public function getCatalogNumber() { return $this->catalog_number; } /** * @var float */ private $priceUsd; /** * Set priceUsd * * @param float $priceUsd * * @return Accessories */ public function setPriceUsd($priceUsd) { $this->priceUsd = $priceUsd; return $this; } /** * Get priceUsd * * @return float */ public function getPriceUsd() { return $this->priceUsd; } /** * @param $rate * @return false|float */ public function calcPrice($rate = null) { if(!$rate) { $rate = $this->getDealer()->getRate(); } if($rate && $this->getPriceUsd()) { return ceil($rate * $this->getPriceUsd()); } return $this->getPrice(); } /** * @var Dealer */ private $dealer; /** * Set dealer * * @param Dealer $dealer * * @return Accessories */ public function setDealer(Dealer $dealer = null) { $this->dealer = $dealer; return $this; } /** * Get dealer * * @return Dealer */ public function getDealer() { return $this->dealer; } /** * @var string */ private $content_ru; /** * @var string */ private $content_ua; /** * Set contentRu * * @param string $contentRu * * @return Accessories */ public function setContentRu($contentRu) { $this->content_ru = $contentRu; return $this; } /** * Get contentRu * * @return string */ public function getContentRu() { return $this->content_ru; } /** * Set contentUa * * @param string $contentUa * * @return Accessories */ public function setContentUa($contentUa) { $this->content_ua = $contentUa; return $this; } /** * Get contentUa * * @return string */ public function getContentUa() { return $this->content_ua; } /** * @var integer */ private $position; /** * Set position * * @param integer $position * * @return Accessories */ public function setPosition($position) { $this->position = $position; return $this; } /** * Get position * * @return integer */ public function getPosition() { return $this->position; } /** * @var Collection */ private $accessory_vehicles; /** * Add accessoryVehicle * * @param VehicleAccessory $accessoryVehicle * * @return Accessories */ public function addAccessoryVehicle(VehicleAccessory $accessoryVehicle) { $this->accessory_vehicles[] = $accessoryVehicle; return $this; } /** * Remove accessoryVehicle * * @param VehicleAccessory $accessoryVehicle */ public function removeAccessoryVehicle(VehicleAccessory $accessoryVehicle) { $this->accessory_vehicles->removeElement($accessoryVehicle); } /** * Get accessoryVehicles * * @return Collection */ public function getAccessoryVehicles() { return $this->accessory_vehicles; } /** * @var integer */ private $state; /** * Set state * * @param integer $state * * @return Accessories */ public function setState($state) { $this->state = $state; return $this; } /** * Get state * * @return integer */ public function getState() { return $this->state > 0; } /** * Add content * * @param AccessoriesContent $content * * @return Accessories */ public function addContent(AccessoriesContent $content) { $this->content[] = $content; return $this; } /** * Remove content * * @param AccessoriesContent $content */ public function removeContent(AccessoriesContent $content) { $this->content->removeElement($content); } /** * Get content * * @return Collection */ public function getContent() { return $this->content; } /** * Set url * * @param string $url * * @return Accessories */ public function setUrl($url) { $this->url = $url; return $this; } /** * Get url * * @return string */ public function getUrl() { return $this->url; } /** * Add group * * @param AccessoriesGroup $group * * @return Accessories */ public function addGroup(AccessoriesGroup $group) { $this->groups[] = $group; return $this; } /** * Remove group * * @param AccessoriesGroup $group */ public function removeGroup(AccessoriesGroup $group) { $this->groups->removeElement($group); } /** * Get groups * * @return Collection */ public function getGroups() { return $this->groups; } /** * Add selectGroup * * @param AccessoriesGroup $selectGroup * * @return Accessories */ public function addSelectGroup(AccessoriesGroup $selectGroup) { $this->select_groups[] = $selectGroup; return $this; } /** * Remove selectGroup * * @param AccessoriesGroup $selectGroup */ public function removeSelectGroup(AccessoriesGroup $selectGroup) { $this->select_groups->removeElement($selectGroup); } /** * Get selectGroups * * @return Collection */ public function getSelectGroups() { return $this->select_groups; } /** * @var Gallery */ private $gallery; /** * Set gallery * * @param Gallery $gallery * * @return Accessories */ public function setGallery(Gallery $gallery = null) { $this->gallery = $gallery; return $this; } /** * Get gallery * * @return Gallery */ public function getGallery() { return $this->gallery; } /** * @var Part */ private $accessory_number; /** * Set accessoryNumber * * @param Part $accessoryNumber * * @return Accessories */ public function setAccessoryNumber(Part $accessoryNumber = null) { $this->accessory_number = $accessoryNumber; return $this; } /** * Get accessoryNumber * * @return Part */ public function getAccessoryNumber() { return $this->accessory_number; } /** * @var Collection */ private $select_categories; /** * Add selectCategory * * @param AccessoriesCategory $selectCategory * * @return Accessories */ public function addSelectCategory(AccessoriesCategory $selectCategory) { $this->select_categories[] = $selectCategory; return $this; } /** * Remove selectCategory * * @param AccessoriesCategory $selectCategory */ public function removeSelectCategory(AccessoriesCategory $selectCategory) { $this->select_categories->removeElement($selectCategory); } /** * Get selectCategories * * @return Collection */ public function getSelectCategories() { return $this->select_categories; } /** * @var float */ private $sale_price; /** * Set salePrice * * @param float $salePrice * * @return Accessories */ public function setSalePrice($salePrice) { $this->sale_price = $salePrice; return $this; } /** * Get salePrice * * @return float */ public function getSalePrice() { return $this->sale_price; } public function getTitle() { return $this->content->first() ? (string) $this->content->first()->getTitle() : ''; } public function getContentByLocale($locale = null) { /** @var AccessoriesContent $content */ foreach ($this->content as $content) { if($content->getLanguage() == $locale) { return $content; } } return $this->content->first(); } /** * @var Collection */ private $review; /** * Add review * * @param AccessoriesReview $review * * @return Accessories */ public function addReview(AccessoriesReview $review) { $this->review[] = $review; return $this; } /** * Remove review * * @param AccessoriesReview $review */ public function removeReview(AccessoriesReview $review) { $this->review->removeElement($review); } /** * Get review * * @return Collection */ public function getReview() { return $this->review; }}