src/DcSiteBundle/Entity/Accessories.php line 14

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Entity;
  3. use Application\Sonata\MediaBundle\Entity\Media;
  4. use CoreBundle\Entity\Dealer;
  5. use DcSiteBundle\Entity\Service\VehicleAccessory;
  6. use Application\Sonata\MediaBundle\Entity\Gallery;
  7. use CoreBundle\Entity\AccessoriesReview;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\Common\Collections\ArrayCollection;
  10. class Accessories
  11. {
  12.     /**
  13.      * @var integer
  14.      */
  15.     private $id;
  16.     /**
  17.      * @var string
  18.      */
  19.     private $name_ru;
  20.     /**
  21.      * @var string
  22.      */
  23.     private $name_ua;
  24.     /**
  25.      * @var string
  26.      */
  27.     private $onec_uid;
  28.     /**
  29.      * @var integer
  30.      */
  31.     private $avail_count;
  32.     /**
  33.      * @var float
  34.      */
  35.     private $price;
  36.     /**
  37.      * @var AccessoriesGroup
  38.      */
  39.     private $group;
  40.     /**
  41.      * @var Media
  42.      */
  43.     private $image;
  44.     /**
  45.      * @var boolean
  46.      */
  47.     private $recommended;
  48.     /**
  49.      * @var Collection
  50.      */
  51.     private $content;
  52.     /**
  53.      * @var string
  54.      */
  55.     private $url;
  56.     /**
  57.      * @var Collection
  58.      */
  59.     private $groups;
  60.     /**
  61.      * @var Collection
  62.      */
  63.     private $select_groups;
  64.     public function __toString()
  65.     {
  66.         return (string) $this->name_ru;
  67.     }
  68.     /**
  69.      * Accessories constructor.
  70.      */
  71.     public function __construct()
  72.     {
  73.         $this->content = new ArrayCollection();
  74.         $this->content->add((new AccessoriesContent())->setLanguage('ru'));
  75.         $this->content->add((new AccessoriesContent())->setLanguage('ua'));
  76.         $this->cars = new ArrayCollection();
  77.         $this->accessory_vehicles = new ArrayCollection();
  78.     }
  79.     /**
  80.      * Get id
  81.      *
  82.      * @return integer
  83.      */
  84.     public function getId()
  85.     {
  86.         return $this->id;
  87.     }
  88.     /**
  89.      * Set name
  90.      *
  91.      * @param string $name
  92.      *
  93.      * @return Accessories
  94.      */
  95.     public function setNameRu($name)
  96.     {
  97.         $this->name_ru $name;
  98.         return $this;
  99.     }
  100.     /**
  101.      * Get name
  102.      *
  103.      * @return string
  104.      */
  105.     public function getNameRu()
  106.     {
  107.         return $this->name_ru;
  108.     }
  109.     /**
  110.      * Set name
  111.      *
  112.      * @param string $name
  113.      *
  114.      * @return Accessories
  115.      */
  116.     public function setNameUa($name)
  117.     {
  118.         $this->name_ua $name;
  119.         return $this;
  120.     }
  121.     /**
  122.      * Get name
  123.      *
  124.      * @return string
  125.      */
  126.     public function getNameUa()
  127.     {
  128.         return $this->name_ua;
  129.     }
  130.     /**
  131.      * Set onecUid
  132.      *
  133.      * @param string $onecUid
  134.      *
  135.      * @return Accessories
  136.      */
  137.     public function setOnecUid($onecUid)
  138.     {
  139.         $this->onec_uid $onecUid;
  140.         return $this;
  141.     }
  142.     /**
  143.      * Get onecUid
  144.      *
  145.      * @return string
  146.      */
  147.     public function getOnecUid()
  148.     {
  149.         return $this->onec_uid;
  150.     }
  151.     /**
  152.      * Set availCount
  153.      *
  154.      * @param integer $availCount
  155.      *
  156.      * @return Accessories
  157.      */
  158.     public function setAvailCount($availCount)
  159.     {
  160.         $this->avail_count $availCount;
  161.         return $this;
  162.     }
  163.     /**
  164.      * Get availCount
  165.      *
  166.      * @return integer
  167.      */
  168.     public function getAvailCount()
  169.     {
  170.         return $this->avail_count;
  171.     }
  172.     /**
  173.      * Set price
  174.      *
  175.      * @param float $price
  176.      *
  177.      * @return Accessories
  178.      */
  179.     public function setPrice($price)
  180.     {
  181.         $this->price $price;
  182.         return $this;
  183.     }
  184.     /**
  185.      * Get price
  186.      *
  187.      * @return float
  188.      */
  189.     public function getPrice()
  190.     {
  191.         return $this->price;
  192.     }
  193.     /**
  194.      * @param AccessoriesGroup $group
  195.      * @return $this
  196.      */
  197.     public function setGroup(AccessoriesGroup $group)
  198.     {
  199.         $this->group $group;
  200.         return $this;
  201.     }
  202.     /**
  203.      * @return AccessoriesGroup
  204.      */
  205.     public function getGroup()
  206.     {
  207.         return $this->group;
  208.     }
  209.     /**
  210.      * @param Media $media
  211.      * @return $this
  212.      */
  213.     public function setImage(Media $media null)
  214.     {
  215.         $this->image $media;
  216.         return $this;
  217.     }
  218.     /**
  219.      * @return Media
  220.      */
  221.     public function getImage()
  222.     {
  223.         return $this->image;
  224.     }
  225.     /**
  226.      * @param bool $recommended
  227.      * @return $this
  228.      */
  229.     public function setRecommended($recommended false)
  230.     {
  231.         $this->recommended $recommended;
  232.         return $this;
  233.     }
  234.     /**
  235.      * @return bool
  236.      */
  237.     public function getRecommended()
  238.     {
  239.         return $this->recommended;
  240.     }
  241.     /**
  242.      * @param $locale
  243.      * @return string
  244.      */
  245.     public function getNameByLocale($locale)
  246.     {
  247.         switch ($locale) {
  248.             case 'ru':
  249.                 return $this->name_ru;
  250.             case 'ua':
  251.             default:
  252.                 return $this->name_ua;
  253.         }
  254.     }
  255.     /**
  256.      * @var string
  257.      */
  258.     private $catalog_number;
  259.     /**
  260.      * Set catalogNumber
  261.      *
  262.      * @param string $catalogNumber
  263.      *
  264.      * @return Accessories
  265.      */
  266.     public function setCatalogNumber($catalogNumber)
  267.     {
  268.         $this->catalog_number $catalogNumber;
  269.         return $this;
  270.     }
  271.     /**
  272.      * Get catalogNumber
  273.      *
  274.      * @return string
  275.      */
  276.     public function getCatalogNumber()
  277.     {
  278.         return $this->catalog_number;
  279.     }
  280.     /**
  281.      * @var float
  282.      */
  283.     private $priceUsd;
  284.     /**
  285.      * Set priceUsd
  286.      *
  287.      * @param float $priceUsd
  288.      *
  289.      * @return Accessories
  290.      */
  291.     public function setPriceUsd($priceUsd)
  292.     {
  293.         $this->priceUsd $priceUsd;
  294.         return $this;
  295.     }
  296.     /**
  297.      * Get priceUsd
  298.      *
  299.      * @return float
  300.      */
  301.     public function getPriceUsd()
  302.     {
  303.         return $this->priceUsd;
  304.     }
  305.     /**
  306.      * @param $rate
  307.      * @return false|float
  308.      */
  309.     public function calcPrice($rate null)
  310.     {
  311.         if(!$rate) {
  312.             $rate $this->getDealer()->getRate();
  313.         }
  314.         if($rate && $this->getPriceUsd()) {
  315.             return ceil($rate $this->getPriceUsd());
  316.         }
  317.         return $this->getPrice();
  318.     }
  319.     /**
  320.      * @var Dealer
  321.      */
  322.     private $dealer;
  323.     /**
  324.      * Set dealer
  325.      *
  326.      * @param Dealer $dealer
  327.      *
  328.      * @return Accessories
  329.      */
  330.     public function setDealer(Dealer $dealer null)
  331.     {
  332.         $this->dealer $dealer;
  333.         return $this;
  334.     }
  335.     /**
  336.      * Get dealer
  337.      *
  338.      * @return Dealer
  339.      */
  340.     public function getDealer()
  341.     {
  342.         return $this->dealer;
  343.     }
  344.     /**
  345.      * @var string
  346.      */
  347.     private $content_ru;
  348.     /**
  349.      * @var string
  350.      */
  351.     private $content_ua;
  352.     /**
  353.      * Set contentRu
  354.      *
  355.      * @param string $contentRu
  356.      *
  357.      * @return Accessories
  358.      */
  359.     public function setContentRu($contentRu)
  360.     {
  361.         $this->content_ru $contentRu;
  362.         return $this;
  363.     }
  364.     /**
  365.      * Get contentRu
  366.      *
  367.      * @return string
  368.      */
  369.     public function getContentRu()
  370.     {
  371.         return $this->content_ru;
  372.     }
  373.     /**
  374.      * Set contentUa
  375.      *
  376.      * @param string $contentUa
  377.      *
  378.      * @return Accessories
  379.      */
  380.     public function setContentUa($contentUa)
  381.     {
  382.         $this->content_ua $contentUa;
  383.         return $this;
  384.     }
  385.     /**
  386.      * Get contentUa
  387.      *
  388.      * @return string
  389.      */
  390.     public function getContentUa()
  391.     {
  392.         return $this->content_ua;
  393.     }
  394.     /**
  395.      * @var integer
  396.      */
  397.     private $position;
  398.     /**
  399.      * Set position
  400.      *
  401.      * @param integer $position
  402.      *
  403.      * @return Accessories
  404.      */
  405.     public function setPosition($position)
  406.     {
  407.         $this->position $position;
  408.         return $this;
  409.     }
  410.     /**
  411.      * Get position
  412.      *
  413.      * @return integer
  414.      */
  415.     public function getPosition()
  416.     {
  417.         return $this->position;
  418.     }
  419.     /**
  420.      * @var Collection
  421.      */
  422.     private $accessory_vehicles;
  423.     /**
  424.      * Add accessoryVehicle
  425.      *
  426.      * @param VehicleAccessory $accessoryVehicle
  427.      *
  428.      * @return Accessories
  429.      */
  430.     public function addAccessoryVehicle(VehicleAccessory $accessoryVehicle)
  431.     {
  432.         $this->accessory_vehicles[] = $accessoryVehicle;
  433.         return $this;
  434.     }
  435.     /**
  436.      * Remove accessoryVehicle
  437.      *
  438.      * @param VehicleAccessory $accessoryVehicle
  439.      */
  440.     public function removeAccessoryVehicle(VehicleAccessory $accessoryVehicle)
  441.     {
  442.         $this->accessory_vehicles->removeElement($accessoryVehicle);
  443.     }
  444.     /**
  445.      * Get accessoryVehicles
  446.      *
  447.      * @return Collection
  448.      */
  449.     public function getAccessoryVehicles()
  450.     {
  451.         return $this->accessory_vehicles;
  452.     }
  453.     /**
  454.      * @var integer
  455.      */
  456.     private $state;
  457.     /**
  458.      * Set state
  459.      *
  460.      * @param integer $state
  461.      *
  462.      * @return Accessories
  463.      */
  464.     public function setState($state)
  465.     {
  466.         $this->state $state;
  467.         return $this;
  468.     }
  469.     /**
  470.      * Get state
  471.      *
  472.      * @return integer
  473.      */
  474.     public function getState()
  475.     {
  476.         return $this->state 0;
  477.     }
  478.     /**
  479.      * Add content
  480.      *
  481.      * @param AccessoriesContent $content
  482.      *
  483.      * @return Accessories
  484.      */
  485.     public function addContent(AccessoriesContent $content)
  486.     {
  487.         $this->content[] = $content;
  488.         return $this;
  489.     }
  490.     /**
  491.      * Remove content
  492.      *
  493.      * @param AccessoriesContent $content
  494.      */
  495.     public function removeContent(AccessoriesContent $content)
  496.     {
  497.         $this->content->removeElement($content);
  498.     }
  499.     /**
  500.      * Get content
  501.      *
  502.      * @return Collection
  503.      */
  504.     public function getContent()
  505.     {
  506.         return $this->content;
  507.     }
  508.     /**
  509.      * Set url
  510.      *
  511.      * @param string $url
  512.      *
  513.      * @return Accessories
  514.      */
  515.     public function setUrl($url)
  516.     {
  517.         $this->url $url;
  518.         return $this;
  519.     }
  520.     /**
  521.      * Get url
  522.      *
  523.      * @return string
  524.      */
  525.     public function getUrl()
  526.     {
  527.         return $this->url;
  528.     }
  529.     /**
  530.      * Add group
  531.      *
  532.      * @param AccessoriesGroup $group
  533.      *
  534.      * @return Accessories
  535.      */
  536.     public function addGroup(AccessoriesGroup $group)
  537.     {
  538.         $this->groups[] = $group;
  539.         return $this;
  540.     }
  541.     /**
  542.      * Remove group
  543.      *
  544.      * @param AccessoriesGroup $group
  545.      */
  546.     public function removeGroup(AccessoriesGroup $group)
  547.     {
  548.         $this->groups->removeElement($group);
  549.     }
  550.     /**
  551.      * Get groups
  552.      *
  553.      * @return Collection
  554.      */
  555.     public function getGroups()
  556.     {
  557.         return $this->groups;
  558.     }
  559.     /**
  560.      * Add selectGroup
  561.      *
  562.      * @param AccessoriesGroup $selectGroup
  563.      *
  564.      * @return Accessories
  565.      */
  566.     public function addSelectGroup(AccessoriesGroup $selectGroup)
  567.     {
  568.         $this->select_groups[] = $selectGroup;
  569.         return $this;
  570.     }
  571.     /**
  572.      * Remove selectGroup
  573.      *
  574.      * @param AccessoriesGroup $selectGroup
  575.      */
  576.     public function removeSelectGroup(AccessoriesGroup $selectGroup)
  577.     {
  578.         $this->select_groups->removeElement($selectGroup);
  579.     }
  580.     /**
  581.      * Get selectGroups
  582.      *
  583.      * @return Collection
  584.      */
  585.     public function getSelectGroups()
  586.     {
  587.         return $this->select_groups;
  588.     }
  589.     /**
  590.      * @var Gallery
  591.      */
  592.     private $gallery;
  593.     /**
  594.      * Set gallery
  595.      *
  596.      * @param Gallery $gallery
  597.      *
  598.      * @return Accessories
  599.      */
  600.     public function setGallery(Gallery $gallery null)
  601.     {
  602.         $this->gallery $gallery;
  603.         return $this;
  604.     }
  605.     /**
  606.      * Get gallery
  607.      *
  608.      * @return Gallery
  609.      */
  610.     public function getGallery()
  611.     {
  612.         return $this->gallery;
  613.     }
  614.     /**
  615.      * @var Part
  616.      */
  617.     private $accessory_number;
  618.     /**
  619.      * Set accessoryNumber
  620.      *
  621.      * @param Part $accessoryNumber
  622.      *
  623.      * @return Accessories
  624.      */
  625.     public function setAccessoryNumber(Part $accessoryNumber null)
  626.     {
  627.         $this->accessory_number $accessoryNumber;
  628.         return $this;
  629.     }
  630.     /**
  631.      * Get accessoryNumber
  632.      *
  633.      * @return Part
  634.      */
  635.     public function getAccessoryNumber()
  636.     {
  637.         return $this->accessory_number;
  638.     }
  639.     /**
  640.      * @var Collection
  641.      */
  642.     private $select_categories;
  643.     /**
  644.      * Add selectCategory
  645.      *
  646.      * @param AccessoriesCategory $selectCategory
  647.      *
  648.      * @return Accessories
  649.      */
  650.     public function addSelectCategory(AccessoriesCategory $selectCategory)
  651.     {
  652.         $this->select_categories[] = $selectCategory;
  653.         return $this;
  654.     }
  655.     /**
  656.      * Remove selectCategory
  657.      *
  658.      * @param AccessoriesCategory $selectCategory
  659.      */
  660.     public function removeSelectCategory(AccessoriesCategory $selectCategory)
  661.     {
  662.         $this->select_categories->removeElement($selectCategory);
  663.     }
  664.     /**
  665.      * Get selectCategories
  666.      *
  667.      * @return Collection
  668.      */
  669.     public function getSelectCategories()
  670.     {
  671.         return $this->select_categories;
  672.     }
  673.     /**
  674.      * @var float
  675.      */
  676.     private $sale_price;
  677.     /**
  678.      * Set salePrice
  679.      *
  680.      * @param float $salePrice
  681.      *
  682.      * @return Accessories
  683.      */
  684.     public function setSalePrice($salePrice)
  685.     {
  686.         $this->sale_price $salePrice;
  687.         return $this;
  688.     }
  689.     /**
  690.      * Get salePrice
  691.      *
  692.      * @return float
  693.      */
  694.     public function getSalePrice()
  695.     {
  696.         return $this->sale_price;
  697.     }
  698.     public function getTitle()
  699.     {
  700.         return $this->content->first() ? (string) $this->content->first()->getTitle() : '';
  701.     }
  702.     public function getContentByLocale($locale null)
  703.     {
  704.         /** @var AccessoriesContent $content */
  705.         foreach ($this->content as $content) {
  706.             if($content->getLanguage() == $locale) {
  707.                 return $content;
  708.             }
  709.         }
  710.         return $this->content->first();
  711.     }
  712.     /**
  713.      * @var Collection
  714.      */
  715.     private $review;
  716.     /**
  717.      * Add review
  718.      *
  719.      * @param AccessoriesReview $review
  720.      *
  721.      * @return Accessories
  722.      */
  723.     public function addReview(AccessoriesReview $review)
  724.     {
  725.         $this->review[] = $review;
  726.         return $this;
  727.     }
  728.     /**
  729.      * Remove review
  730.      *
  731.      * @param AccessoriesReview $review
  732.      */
  733.     public function removeReview(AccessoriesReview $review)
  734.     {
  735.         $this->review->removeElement($review);
  736.     }
  737.     /**
  738.      * Get review
  739.      *
  740.      * @return Collection
  741.      */
  742.     public function getReview()
  743.     {
  744.         return $this->review;
  745.     }
  746. }