src/AppBundle/Entity/Categoria.php line 19

  1. <?php
  2. namespace AppBundle\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  6. use Symfony\Component\HttpFoundation\File\File;
  7. use Symfony\Component\String\Slugger\AsciiSlugger;
  8. /**
  9.  * Categoria.
  10.  *
  11.  * @ORM\Table(name="categoria")
  12.  * @ORM\Entity(repositoryClass="AppBundle\Repository\CategoriaRepository")
  13.  * @Vich\Uploadable
  14.  * @ORM\HasLifecycleCallbacks()
  15.  */
  16. class Categoria
  17. {
  18.     const default_color "#d92617";
  19.     const IMAGENES = [
  20.         'C10' => '/images/icons/componentes/materias_primas.svg',
  21.         'C20' => '/images/icons/componentes/fluidos_sanitarios.svg',
  22.         'C30' => '/images/icons/componentes/fluidos_industriales.svg',
  23.         'C40' => '/images/icons/componentes/consumibles_industriales.svg',
  24.         'C50' => '/images/icons/componentes/arquitectura_construccion.svg',
  25.         'C70' => '/images/icons/componentes/ferreteria.svg'
  26.     ];
  27.     /**
  28.      * @var int
  29.      *
  30.      * @ORM\Column(name="id", type="string", length=2, options={"fixed" = true})
  31.      * @ORM\Id
  32.      */
  33.     private $id;
  34.     /**
  35.      * @var string
  36.      *
  37.      * @ORM\Column(name="nombre_es", type="string", length=255)
  38.      */
  39.     private $nombreEs;
  40.     /**
  41.      * @var string
  42.      *
  43.      * @ORM\Column(name="nombre_en", type="string", length=255)
  44.      */
  45.     private $nombreEn;
  46.     /**
  47.      * @var string
  48.      *
  49.      * @ORM\Column(name="slug_es", type="string", length=255)
  50.      */
  51.     private $slugEs;
  52.     /**
  53.      * @var string
  54.      *
  55.      * @ORM\Column(name="slug_en", type="string", length=255)
  56.      */
  57.     private $slugEn;
  58.     /**
  59.      * @var string
  60.      *
  61.      * @ORM\Column(name="foto", type="string", length=100)
  62.      */
  63.     private $foto "";
  64.     /**
  65.      * @var bool
  66.      *
  67.      * @ORM\Column(name="eliminado", type="boolean")
  68.      */
  69.     private $eliminado false;
  70.     /**
  71.      * @ORM\Column(type="string", length=255)
  72.      *
  73.      * @var string
  74.      */
  75.     private $imageName "";
  76.     /**
  77.      * NOTE: This is not a mapped field of entity metadata, just a simple property.
  78.      * 
  79.      * @Vich\UploadableField(mapping="categoria_image", fileNameProperty="imageName")
  80.      * 
  81.      * @var File
  82.      */
  83.     private $imageFile;
  84.     /**
  85.      * @ORM\OneToMany(targetEntity="FamiliaCategoria", mappedBy="categoria", cascade={"persist"}, orphanRemoval=true)
  86.      */
  87.     protected $familiasCategoria;
  88.     /**
  89.      * @var \DateTime
  90.      * @ORM\Column(name="fecha_ultima_modificacion", type="datetime", nullable=true)
  91.      */
  92.     private $fechaUltimaModificacion null;
  93.     /**
  94.      * @var int
  95.      *
  96.      * @ORM\Column(name="orden", type="integer")
  97.      */
  98.     private $orden;
  99.     /**
  100.      * @ORM\Column(type="string", length=255, nullable=true)
  101.      *
  102.      * @var string
  103.      */
  104.     private $folleto "";
  105.     /**
  106.      * NOTE: This is not a mapped field of entity metadata, just a simple property.
  107.      * 
  108.      * @Vich\UploadableField(mapping="categoria_folleto", fileNameProperty="folleto")
  109.      * 
  110.      * @var File
  111.      */
  112.     private $folletoFile "";
  113.     /**
  114.      * @ORM\Column(type="string", length=7, nullable=true)
  115.      *
  116.      * @var string
  117.      */
  118.     private $color "";
  119.     /**
  120.      * @ORM\ManyToMany(targetEntity="Familia", inversedBy="categorias")
  121.      * @ORM\JoinTable(name="familia_categoria",
  122.      * joinColumns={@ORM\JoinColumn(name="categoria_id", referencedColumnName="id")},
  123.      * inverseJoinColumns={@ORM\JoinColumn(name="familia_id", referencedColumnName="id")}
  124.      * )
  125.      */
  126.     protected $familias;
  127.     public function __construct()
  128.     {
  129.         $this->familiasCategoria = new ArrayCollection();
  130.     }
  131.     /**
  132.      * Set id.
  133.      *
  134.      * @param int $id
  135.      *
  136.      * @return Categoria
  137.      */
  138.     public function setId($id)
  139.     {
  140.         $this->id $id;
  141.         return $this;
  142.     }
  143.     /**
  144.      * Get id.
  145.      *
  146.      * @return int
  147.      */
  148.     public function getId()
  149.     {
  150.         return $this->id;
  151.     }
  152.     /**
  153.      * Set nombreEs.
  154.      *
  155.      * @param string $nombreEs
  156.      *
  157.      * @return Categoria
  158.      */
  159.     public function setNombreEs($nombreEs)
  160.     {
  161.         $this->nombreEs $nombreEs;
  162.         return $this;
  163.     }
  164.     /**
  165.      * Get nombreEs.
  166.      *
  167.      * @return string
  168.      */
  169.     public function getNombreEs()
  170.     {
  171.         return $this->nombreEs;
  172.     }
  173.     /**
  174.      * Set nombreEn.
  175.      *
  176.      * @param string $nombreEn
  177.      *
  178.      * @return Categoria
  179.      */
  180.     public function setNombreEn($nombreEn)
  181.     {
  182.         $this->nombreEn $nombreEn;
  183.         return $this;
  184.     }
  185.     /**
  186.      * Get nombreEn.
  187.      *
  188.      * @return string
  189.      */
  190.     public function getNombreEn()
  191.     {
  192.         return $this->nombreEn;
  193.     }
  194.     /**
  195.      * Add familiasCategorium.
  196.      *
  197.      * @param \AppBundle\Entity\FamiliaCategoria $familiasCategorium
  198.      *
  199.      * @return Categoria
  200.      */
  201.     public function addFamiliasCategorium(\AppBundle\Entity\FamiliaCategoria $familiasCategorium)
  202.     {
  203.         $this->familiasCategoria[] = $familiasCategorium;
  204.         return $this;
  205.     }
  206.     /**
  207.      * Remove familiasCategorium.
  208.      *
  209.      * @param \AppBundle\Entity\FamiliaCategoria $familiasCategorium
  210.      */
  211.     public function removeFamiliasCategorium(\AppBundle\Entity\FamiliaCategoria $familiasCategorium)
  212.     {
  213.         $this->familiasCategoria->removeElement($familiasCategorium);
  214.     }
  215.     /**
  216.      * Get familiasCategoria.
  217.      *
  218.      * @return \Doctrine\Common\Collections\Collection
  219.      */
  220.     public function getFamiliasCategoria()
  221.     {
  222.         return $this->familiasCategoria;
  223.     }
  224.     /**
  225.      * Set slugEs.
  226.      *
  227.      * @ORM\PreUpdate
  228.      * @ORM\PrePersist
  229.      *
  230.      * @param string $slugEs
  231.      *
  232.      * @return Categoria
  233.      */
  234.     public function setSlugEs($slugEs)
  235.     {
  236.         $slugify = new AsciiSlugger();
  237.         $this->slugEs $slugify->slug($this->nombreEs)->lower();
  238.         return $this;
  239.     }
  240.     /**
  241.      * Get slugEs.
  242.      *
  243.      * @return string
  244.      */
  245.     public function getSlugEs()
  246.     {
  247.         return $this->slugEs;
  248.     }
  249.     /**
  250.      * Set slugEn.
  251.      *
  252.      * @ORM\PreUpdate
  253.      * @ORM\PrePersist
  254.      *
  255.      * @param string $slugEn
  256.      *
  257.      * @return Categoria
  258.      */
  259.     public function setSlugEn($slugEn)
  260.     {
  261.         $slugify = new AsciiSlugger();
  262.         $this->slugEn $slugify->slug($this->nombreEn)->lower();
  263.         return $this;
  264.     }
  265.     /**
  266.      * Get slugEn.
  267.      *
  268.      * @return string
  269.      */
  270.     public function getSlugEn()
  271.     {
  272.         return $this->slugEn;
  273.     }
  274.     /**
  275.      * Set foto.
  276.      *
  277.      * @param string $foto
  278.      *
  279.      * @return Categoria
  280.      */
  281.     public function setFoto($foto)
  282.     {
  283.         $this->foto $foto;
  284.         return $this;
  285.     }
  286.     /**
  287.      * Get foto.
  288.      *
  289.      * @return string
  290.      */
  291.     public function getFoto()
  292.     {
  293.         return $this->foto;
  294.     }
  295.     /**
  296.      * Set eliminado.
  297.      *
  298.      * @param bool $eliminado
  299.      *
  300.      * @return Categoria
  301.      */
  302.     public function setEliminado($eliminado)
  303.     {
  304.         $this->eliminado $eliminado;
  305.         return $this;
  306.     }
  307.     /**
  308.      * Get eliminado.
  309.      *
  310.      * @return bool
  311.      */
  312.     public function getEliminado()
  313.     {
  314.         return $this->eliminado;
  315.     }
  316.     public function setImageFile(File $image null)
  317.     {
  318.         $this->fechaUltimaModificacion = new \DateTime();
  319.         $this->imageFile $image;
  320.         return $this;
  321.     }
  322.     /**
  323.      * @return File
  324.      */
  325.     public function getImageFile()
  326.     {
  327.         return $this->imageFile;
  328.     }
  329.     /**
  330.      * @param string $imageName
  331.      *
  332.      * @return Categoria
  333.      */
  334.     public function setImageName($imageName)
  335.     {
  336.         $this->fechaUltimaModificacion = new \DateTime();
  337.         $this->imageName $imageName;
  338.         return $this;
  339.     }
  340.     /**
  341.      * @return string
  342.      */
  343.     public function getImageName()
  344.     {
  345.         return $this->imageName;
  346.     }
  347.     /**
  348.      * @param int $orden
  349.      *
  350.      * @return Categoria
  351.      */
  352.     public function setOrden($orden)
  353.     {
  354.         $this->orden $orden;
  355.         return $this;
  356.     }
  357.     /**
  358.      * @return int
  359.      */
  360.     public function getOrden()
  361.     {
  362.         return $this->orden;
  363.     }
  364.     /**
  365.      * @ORM\PreUpdate
  366.      */
  367.     public function setFechaUltimaModificacion()
  368.     {
  369.         $this->fechaUltimaModificacion = new \DateTime();
  370.     }
  371.     /**
  372.      * Get fechaUltimaModificacion.
  373.      *
  374.      * @return \DateTime
  375.      */
  376.     public function getFechaUltimaModificacion()
  377.     {
  378.         return $this->fechaUltimaModificacion;
  379.     }
  380.     /**
  381.      * @return File
  382.      */
  383.     public function getfolletoFile()
  384.     {
  385.         return $this->folletoFile;
  386.     }
  387.     public function setfolletoFile(File $folletoFile null)
  388.     {
  389.         $this->fechaUltimaModificacion = new \DateTime();
  390.         $this->folletoFile $folletoFile;
  391.         return $this;
  392.     }
  393.     /**
  394.      * @param string $folleto
  395.      *
  396.      * @return Categoria
  397.      */
  398.     public function setFolleto($folleto)
  399.     {
  400.         $this->fechaUltimaModificacion = new \DateTime();
  401.         $this->folleto $folleto;
  402.         return $this;
  403.     }
  404.     /**
  405.      * @return string
  406.      */
  407.     public function getFolleto()
  408.     {
  409.         return $this->folleto;
  410.     }
  411.     /**
  412.      * @param int $color
  413.      *
  414.      * @return Categoria
  415.      */
  416.     public function setColor($color)
  417.     {
  418.         $this->color $color;
  419.         return $this;
  420.     }
  421.     /**
  422.      * @return string
  423.      */
  424.     public function getColor()
  425.     {
  426.         if(empty($this->color)){
  427.             return self::default_color;
  428.         }
  429.         
  430.         return $this->color;
  431.     }
  432.     /**
  433.      * @return Collection
  434.      */
  435.     public function getFamilias()
  436.     {        
  437.         return $this->familias;
  438.     }
  439.     public function nombreFolletoDownload(){
  440.         return substr($this->folleto,strpos($this->folleto,'_')+1);
  441.     }
  442. }