src/Daikin/BaseBundle/Entity/SparePartsPart.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Daikin\BaseBundle\Entity;
  3. use App\Daikin\BaseBundle\Entity\EmergencyStock\PartConstructionYear;
  4. use App\Daikin\BaseBundle\Entity\EmergencyStock\PartModelDetail;
  5. use App\Daikin\BaseBundle\Entity\EmergencyStock\PartWarehouse;
  6. use App\Daikin\BaseBundle\Entity\EmergencyStock\Warehouse;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\ORM\Mapping as ORM;
  9. /**
  10.  * Class SparePartsPart
  11.  * @package App\Daikin\BaseBundle\Entity
  12.  *
  13.  * @ORM\Entity(repositoryClass="App\Daikin\BaseBundle\Repository\SparePartsPartRepository")
  14.  * @ORM\Table(name="SparePartsPart")
  15.  */
  16. class SparePartsPart extends AbstractLivingEntity
  17. {
  18.     const CATEGORIES = [
  19.         => 'Druckschalter / Sensoren / Fühler',
  20.         => 'Verdichter / Lüfter',
  21.         => 'Ventile / Spulen',
  22.         => 'Platinen / Elektronik',
  23.         => 'Wärmetauscher',
  24.         => 'Komplettgerät',
  25.         => 'Sonstige',
  26.     ];
  27.     /**
  28.      * @var string
  29.      *
  30.      * @ORM\Column(name="constructionYear", type="string", nullable=true)
  31.      */
  32.     private $constructionYear;
  33.     /**
  34.      * @var integer
  35.      *
  36.      * @ORM\Column(type="smallint")
  37.      */
  38.     private $stock;
  39.     /**
  40.      * @var string
  41.      *
  42.      * @ORM\Column(name="repearInfo", type="string", nullable=true)
  43.      */
  44.     private $repearInfo;
  45.     /**
  46.      * @var string
  47.      *
  48.      * @ORM\Column(type="smallint")
  49.      */
  50.     private $category;
  51.     /**
  52.      * @var string
  53.      *
  54.      * @ORM\Column(type="string", nullable=true)
  55.      */
  56.     private $description;
  57.     /**
  58.      * @var string
  59.      *
  60.      * @ORM\Column(name="pcomment", type="string", nullable=true)
  61.      */
  62.     private $comment;
  63.     /**
  64.      * @var string
  65.      *
  66.      * @ORM\Column(type="string")
  67.      */
  68.     private $name;
  69.     /**
  70.      * @var SparePartsNumber[]
  71.      *
  72.      * @ORM\OneToMany(targetEntity="App\Daikin\BaseBundle\Entity\SparePartsNumber", mappedBy="sparePart", cascade={"persist", "remove"}, orphanRemoval=true)
  73.      */
  74.     private $partNumbers;
  75.     /**
  76.      * @var PartWarehouse[]
  77.      *
  78.      * @ORM\OneToMany(targetEntity="App\Daikin\BaseBundle\Entity\EmergencyStock\PartWarehouse", mappedBy="sparePartsPart", cascade={"persist", "remove"}, orphanRemoval=true)
  79.      */
  80.     private $partsWarehouses;
  81.     /**
  82.      * @var PartModelDetail[]
  83.      *
  84.      * @ORM\OneToMany(targetEntity="App\Daikin\BaseBundle\Entity\EmergencyStock\PartModelDetail", mappedBy="sparePartsPart", cascade={"persist", "remove"}, orphanRemoval=true)
  85.      */
  86.     private $partModelDetails;
  87.     /**
  88.      * @var PartConstructionYear[]
  89.      *
  90.      * @ORM\OneToMany(targetEntity="App\Daikin\BaseBundle\Entity\EmergencyStock\PartConstructionYear", mappedBy="sparePartsPart", cascade={"persist", "remove"}, orphanRemoval=true)
  91.      */
  92.     private $partConstructionYears;
  93.     /**
  94.      * @var SparePartsNumber
  95.      *
  96.      * @ORM\OneToOne(targetEntity="App\Daikin\BaseBundle\Entity\SparePartsNumber")
  97.      * @ORM\JoinColumn(name="mainPartNumber_id")
  98.      */
  99.     private $mainPartNumber;
  100.     /**
  101.      * SparePartsPart constructor.
  102.      */
  103.     public function __construct()
  104.     {
  105.         parent::__construct();
  106.         $this->partNumbers = new ArrayCollection();
  107.         $this->partsWarehouses  = new ArrayCollection();
  108.         $this->partModelDetails  = new ArrayCollection();
  109.         $this->partConstructionYears  = new ArrayCollection();
  110.     }
  111.     /**
  112.      * @return int
  113.      */
  114.     public function getId()
  115.     {
  116.         return $this->id;
  117.     }
  118.     /**
  119.      * @param int $id
  120.      */
  121.     public function setId($id)
  122.     {
  123.         $this->id $id;
  124.     }
  125.     /**
  126.      * @return string
  127.      */
  128.     public function getConstructionYear()
  129.     {
  130.         return $this->constructionYear;
  131.     }
  132.     /**
  133.      * @param string $constructionYear
  134.      */
  135.     public function setConstructionYear($constructionYear)
  136.     {
  137.         $this->constructionYear $constructionYear;
  138.     }
  139.     /**
  140.      * @return int
  141.      */
  142.     public function getStock()
  143.     {
  144.         return $this->stock;
  145.     }
  146.     /**
  147.      * @param int $stock
  148.      */
  149.     public function setStock($stock)
  150.     {
  151.         $this->stock $stock;
  152.     }
  153.     /**
  154.      * @return string
  155.      */
  156.     public function getRepearInfo()
  157.     {
  158.         return $this->repearInfo;
  159.     }
  160.     /**
  161.      * @param string $repearInfo
  162.      */
  163.     public function setRepearInfo($repearInfo)
  164.     {
  165.         $this->repearInfo $repearInfo;
  166.     }
  167.     /**
  168.      * @return string
  169.      */
  170.     public function getCategory()
  171.     {
  172.         return $this->category;
  173.     }
  174.     /**
  175.      * @param string $category
  176.      */
  177.     public function setCategory($category)
  178.     {
  179.         $this->category $category;
  180.     }
  181.     /**
  182.      * @return string
  183.      */
  184.     public function getDescription()
  185.     {
  186.         return $this->description;
  187.     }
  188.     /**
  189.      * @param string $description
  190.      */
  191.     public function setDescription($description)
  192.     {
  193.         $this->description $description;
  194.     }
  195.     /**
  196.      * @return string
  197.      */
  198.     public function getComment()
  199.     {
  200.         return $this->comment;
  201.     }
  202.     /**
  203.      * @param string $comment
  204.      */
  205.     public function setComment($comment)
  206.     {
  207.         $this->comment $comment;
  208.     }
  209.     /**
  210.      * @return string
  211.      */
  212.     public function getName()
  213.     {
  214.         return $this->name;
  215.     }
  216.     /**
  217.      * @param string $name
  218.      */
  219.     public function setName($name)
  220.     {
  221.         $this->name $name;
  222.     }
  223.     /**
  224.      * @return SparePartsNumber[]|ArrayCollection
  225.      */
  226.     public function getPartNumbers()
  227.     {
  228.         return $this->partNumbers;
  229.     }
  230.     /**
  231.      * @param SparePartsNumber[] $partNumbers
  232.      */
  233.     public function setPartNumbers($partNumbers)
  234.     {
  235.         $this->partNumbers $partNumbers;
  236.     }
  237.     public function addPartNumber(SparePartsNumber $partsNumber)
  238.     {
  239.         $partsNumber->setSparePartsPart($this);
  240.         $this->partNumbers->add($partsNumber);
  241.     }
  242.     public function removePartNumber(SparePartsNumber $partsNumber)
  243.     {
  244.         $this->partNumbers->removeElement($partsNumber);
  245.     }
  246.     /**
  247.      * @return string
  248.      */
  249.     public function getHtmlId()
  250.     {
  251.         return 'sp-part-'.$this->id;
  252.     }
  253.     /**
  254.      * @return PartWarehouse[]|ArrayCollection
  255.      */
  256.     public function getPartsWithActiveForDeliveryWarehouses()
  257.     {
  258.         $filtered $this->partsWarehouses->filter(function (PartWarehouse $partWarehouse) {
  259.             return $partWarehouse->getWarehouse()->isActiveForShipping();
  260.         });
  261.         return $filtered;
  262.     }
  263.     /**
  264.      * @return PartWarehouse[]|ArrayCollection
  265.      */
  266.     public function getPartsWarehouses()
  267.     {
  268.         return $this->partsWarehouses;
  269.     }
  270.     /**
  271.      * @param PartWarehouse[] $partsWarehouses
  272.      * @return SparePartsPart
  273.      */
  274.     public function setPartsWarehouses($partsWarehouses)
  275.     {
  276.         $this->partsWarehouses $partsWarehouses;
  277.     }
  278.     public function addPartsWarehous(PartWarehouse $partWarehouse)
  279.     {
  280.         $partWarehouse->setSparePartsPart($this);
  281.         $this->partsWarehouses->add($partWarehouse);
  282.     }
  283.     public function removePartsWarehous(PartWarehouse $partWarehouse)
  284.     {
  285.         $this->partsWarehouses->removeElement($partWarehouse);
  286.     }
  287.     /**
  288.      * @return SparePartsNumber
  289.      */
  290.     public function getMainPartNumber()
  291.     {
  292.         return $this->mainPartNumber;
  293.     }
  294.     public function setMainPartNumber(?SparePartsNumber $mainPartNumber)
  295.     {
  296.         $this->mainPartNumber $mainPartNumber;
  297.     }
  298.     /**
  299.      * @param Warehouse $warehouse
  300.      * @return string
  301.      */
  302.     public function getPartStoragePlaceForWarehouse(Warehouse $warehouse)
  303.     {
  304.         foreach ($this->getPartsWarehouses() as $partWarehouse){
  305.             if ($partWarehouse->getWarehouse() === $warehouse){
  306.                 return $partWarehouse->getStoragePlace();
  307.             }
  308.         }
  309.         /* FIXME maybe return unknown? */
  310.         return '';
  311.     }
  312.     /**
  313.      * @return PartModelDetail[]
  314.      */
  315.     public function getPartModelDetails()
  316.     {
  317.         return $this->partModelDetails;
  318.     }
  319.     /**
  320.      * @param PartModelDetail[] $partModelDetails
  321.      * @return SparePartsPart
  322.      */
  323.     public function setPartModelDetails($partModelDetails)
  324.     {
  325.         $this->partModelDetails $partModelDetails;
  326.         return $this;
  327.     }
  328.     public function addPartModelDetail(PartModelDetail $partModelDetail)
  329.     {
  330.         $partModelDetail->setSparePartsPart($this);
  331.         $this->partModelDetails->add($partModelDetail);
  332.     }
  333.     public function removePartModelDetail(PartModelDetail $partModelDetail)
  334.     {
  335.         $this->partModelDetails->removeElement($partModelDetail);
  336.     }
  337.     /**
  338.      * @return PartConstructionYear[]
  339.      */
  340.     public function getPartConstructionYears()
  341.     {
  342.         return $this->partConstructionYears;
  343.     }
  344.     /**
  345.      * @param PartConstructionYear[] $partConstructionYears
  346.      * @return SparePartsPart
  347.      */
  348.     public function setPartConstructionYears($partConstructionYears)
  349.     {
  350.         $this->partConstructionYears $partConstructionYears;
  351.         return $this;
  352.     }
  353.     /**
  354.      * @param PartConstructionYear $partConstructionYear
  355.      */
  356.     public function addPartConstructionYear(PartConstructionYear $partConstructionYear)
  357.     {
  358.         $partConstructionYear->setSparePartsPart($this);
  359.         $this->partConstructionYears->add($partConstructionYear);
  360.     }
  361.     public function removePartConstructionYear(PartConstructionYear $partConstructionYear)
  362.     {
  363.         $this->partConstructionYears->removeElement($partConstructionYear);
  364.     }
  365.     public function getFoundConstructionYear()
  366.     {
  367.         if ($this->getPartConstructionYears()->count()){
  368.             return $this->getPartConstructionYears()->first();
  369.         }
  370.         return null;
  371.     }
  372. }