src/AppBundle/Entity/Familia.php line 18

  1. <?php
  2. namespace AppBundle\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Cocur\Slugify\Slugify;
  6. use Doctrine\Common\Collections\Criteria;
  7. use Symfony\Component\String\Slugger\AsciiSlugger;
  8. /**
  9.  * Familia.
  10.  *
  11.  * @ORM\Table(name="familia")
  12.  * @ORM\Entity(repositoryClass="AppBundle\Repository\FamiliaRepository")
  13.  * @ORM\HasLifecycleCallbacks()
  14.  */
  15. class Familia
  16. {
  17.     /**
  18.      * @var int
  19.      *
  20.      * @ORM\Column(name="id", type="string", length=3, options={"fixed" = true})
  21.      * @ORM\Id
  22.      */
  23.     private $id;
  24.     /**
  25.      * @var string
  26.      *
  27.      * @ORM\Column(name="nombre_es", type="string", length=255)
  28.      */
  29.     private $nombreEs;
  30.      /**
  31.      * @var string
  32.      *
  33.      * @ORM\Column(name="nombre_abre_es", type="string", length=255)
  34.      */
  35.     private $nombreAbreEs;
  36.     /**
  37.      * @var string
  38.      *
  39.      * @ORM\Column(name="nombre_en", type="string", length=255)
  40.      */
  41.     private $nombreEn;
  42.     /**
  43.      * @var string
  44.      *
  45.      * @ORM\Column(name="nombre_abre_en", type="string", length=255)
  46.      */
  47.     private $nombreAbreEn;
  48.     /**
  49.      * @var string
  50.      *
  51.      * @ORM\Column(name="slug_es", type="string", length=255)
  52.      */
  53.     private $slugEs;
  54.     /**
  55.      * @var string
  56.      *
  57.      * @ORM\Column(name="slug_en", type="string", length=255)
  58.      */
  59.     private $slugEn;
  60.     /**
  61.      * @ORM\OneToMany(targetEntity="SubFamilia", mappedBy="familia")
  62.      */
  63.     protected $subfamilias;
  64.     /**
  65.      * @ORM\OneToMany(targetEntity="FamiliaCategoria", mappedBy="familia", cascade={"persist"}, orphanRemoval=true)
  66.      */
  67.     protected $familiasCategoria;
  68.     /**
  69.      * @var string
  70.      *
  71.      * @ORM\Column(name="texto_adicional_es", type="text")
  72.      */
  73.     private $textoAdicionalEs;
  74.     /**
  75.      * @var string
  76.      *
  77.      * @ORM\Column(name="texto_adicional_en", type="text")
  78.      */
  79.     private $textoAdicionalEn;
  80.     /**
  81.      * @var bool
  82.      *
  83.      * @ORM\Column(name="en_oferta", type="boolean")
  84.      */
  85.     private $enOferta;
  86.     /**
  87.      * @var int
  88.      *
  89.      * @ORM\Column(name="orden", type="integer", length=4)
  90.      */
  91.     private $orden;
  92.     /**
  93.      * @var bool
  94.      *
  95.      * @ORM\Column(name="eliminado", type="boolean")
  96.      */
  97.     private $eliminado false;
  98.     /**
  99.      * @ORM\ManyToMany(targetEntity="Pais", inversedBy="familias")
  100.      * @ORM\JoinTable(name="familia_pais",
  101.      * joinColumns={@ORM\JoinColumn(name="familia_id", referencedColumnName="id")},
  102.      * inverseJoinColumns={@ORM\JoinColumn(name="pais_id", referencedColumnName="id")}
  103.      * )
  104.      */
  105.     protected $pais;
  106.     public function __construct()
  107.     {
  108.         $this->subfamilias = new ArrayCollection();
  109.         $this->familiasCategoria = new ArrayCollection();
  110.     }
  111.     /**
  112.      * Set id.
  113.      *
  114.      * @param int $id
  115.      *
  116.      * @return Familia
  117.      */
  118.     public function setId($id)
  119.     {
  120.         $this->id $id;
  121.         return $this;
  122.     }
  123.     /**
  124.      * Get id.
  125.      *
  126.      * @return int
  127.      */
  128.     public function getId()
  129.     {
  130.         return $this->id;
  131.     }
  132.     /**
  133.      * Set nombreEs.
  134.      *
  135.      * @param string $nombreEs
  136.      *
  137.      * @return Familia
  138.      */
  139.     public function setNombreEs($nombreEs)
  140.     {
  141.         $this->nombreEs $nombreEs;
  142.         return $this;
  143.     }
  144.     /**
  145.      * Get nombreEs.
  146.      *
  147.      * @return string
  148.      */
  149.     public function getNombreEs()
  150.     {
  151.         return $this->nombreEs;
  152.     }
  153.     /**
  154.      * Set Nombre Abreviado en español nombreAbreEs.
  155.      *
  156.      * @param string $nombreAbreEs
  157.      *
  158.      * @return Familia
  159.      */
  160.     public function setNombreAbreEs($nombreAbreEs)
  161.     {
  162.         $this->nombreAbreEs $nombreAbreEs;
  163.         return $this;
  164.     }
  165.     /**
  166.      * Get Nombre Abreviado en Español nombreEs.
  167.      *
  168.      * @return string
  169.      */
  170.     public function getNombreAbreEs()
  171.     {
  172.         return $this->nombreAbreEs;
  173.     }
  174.     /**
  175.      * Set nombreEn.
  176.      *
  177.      * @param string $nombreEn
  178.      *
  179.      * @return Familia
  180.      */
  181.     public function setNombreEn($nombreEn)
  182.     {
  183.         $this->nombreEn $nombreEn;
  184.         return $this;
  185.     }
  186.     /**
  187.      * Get nombreEn.
  188.      *
  189.      * @return string
  190.      */
  191.     public function getNombreEn()
  192.     {
  193.         return $this->nombreEn;
  194.     }
  195.     /**
  196.      * Set Nombre abreviado en Ingles (nombreAbreEn).
  197.      *
  198.      * @param string $nombreAbreEn
  199.      *
  200.      * @return Familia
  201.      */
  202.     public function setnombreAbreEn($nombreAbreEn)
  203.     {
  204.         $this->nombreAbreEn $nombreAbreEn;
  205.         return $this;
  206.     }
  207.     /**
  208.      * Get Nombre Abreviado en Ingles (nombreAbreEn).
  209.      *
  210.      * @return string
  211.      */
  212.     public function getnombreAbreEn()
  213.     {
  214.         return $this->nombreAbreEn;
  215.     }
  216.     /**
  217.      * Add subfamilia.
  218.      *
  219.      * @param \AppBundle\Entity\SubFamilia $subfamilia
  220.      *
  221.      * @return Familia
  222.      */
  223.     public function addSubfamilia(\AppBundle\Entity\SubFamilia $subfamilia)
  224.     {
  225.         $this->subfamilias[] = $subfamilia;
  226.         return $this;
  227.     }
  228.     /**
  229.      * Remove subfamilia.
  230.      *
  231.      * @param \AppBundle\Entity\SubFamilia $subfamilia
  232.      */
  233.     public function removeSubfamilia(\AppBundle\Entity\SubFamilia $subfamilia)
  234.     {
  235.         $this->subfamilias->removeElement($subfamilia);
  236.     }
  237.     /**
  238.      * Get subfamilias.
  239.      *
  240.      * @return \Doctrine\Common\Collections\Collection
  241.      */
  242.     public function getSubFamilias($enCatalgo null)
  243.     {
  244.         $criteria Criteria::create();
  245.         if($enCatalgo)
  246.         {
  247.             $criteria->where(Criteria::expr()->eq('enCatalogo'$enCatalgo));
  248.         }
  249.         return $this->subfamilias->matching($criteria);
  250.     }
  251.     /**
  252.      * Add familiasCategorium.
  253.      *
  254.      * @param \AppBundle\Entity\FamiliaCategoria $familiasCategorium
  255.      *
  256.      * @return Familia
  257.      */
  258.     public function addFamiliasCategorium(\AppBundle\Entity\FamiliaCategoria $familiasCategorium)
  259.     {
  260.         $this->familiasCategoria[] = $familiasCategorium;
  261.         return $this;
  262.     }
  263.     /**
  264.      * Remove familiasCategorium.
  265.      *
  266.      * @param \AppBundle\Entity\FamiliaCategoria $familiasCategorium
  267.      */
  268.     public function removeFamiliasCategorium(\AppBundle\Entity\FamiliaCategoria $familiasCategorium)
  269.     {
  270.         $this->familiasCategoria->removeElement($familiasCategorium);
  271.     }
  272.     /**
  273.      * Get familiasCategoria.
  274.      *
  275.      * @return \Doctrine\Common\Collections\Collection
  276.      */
  277.     public function getFamiliasCategoria()
  278.     {
  279.         return $this->familiasCategoria;
  280.     }
  281.     /**
  282.      * Set slugEs.
  283.      *
  284.      * @ORM\PreUpdate
  285.      * @ORM\PrePersist
  286.      *
  287.      * @param string $slugEs
  288.      *
  289.      * @return Familia
  290.      */
  291.     public function setSlugEs()
  292.     {
  293.         $slugify = new AsciiSlugger();
  294.         $this->slugEs $slugify->slug($this->nombreEs)->lower();
  295.         return $this;
  296.     }
  297.     /**
  298.      * Get slugEs.
  299.      *
  300.      * @return string
  301.      */
  302.     public function getSlugEs()
  303.     {
  304.         return $this->slugEs;
  305.     }
  306.     /**
  307.      * Set slugEn.
  308.      *
  309.      * @ORM\PreUpdate
  310.      * @ORM\PrePersist
  311.      *
  312.      * @param string $slugEn
  313.      *
  314.      * @return Familia
  315.      */
  316.     public function setSlugEn()
  317.     {
  318.         $slugify = new AsciiSlugger();
  319.         $this->slugEn $slugify->slug($this->nombreEn)->lower();
  320.         return $this;
  321.     }
  322.     /**
  323.      * Get slugEn.
  324.      *
  325.      * @return string
  326.      */
  327.     public function getSlugEn()
  328.     {
  329.         return $this->slugEn;
  330.     }
  331.     /**
  332.      * Set textoAdicionalEs.
  333.      *
  334.      * @param string $textoAdicionalEs
  335.      */
  336.     public function setTextoAdicionalEs($textoAdicionalEs)
  337.     {
  338.         $this->textoAdicionalEs $textoAdicionalEs;
  339.         return $this;
  340.     }
  341.     /**
  342.      * Get textoAdicionalEs.
  343.      *
  344.      * @return string
  345.      */
  346.     public function getTextoAdicionalEs()
  347.     {
  348.         return $this->textoAdicionalEs;
  349.     }
  350.     /**
  351.      * Set textoAdicionalEn.
  352.      *
  353.      * @param string $textoAdicionalEn
  354.      *
  355.      * @return Familia
  356.      */
  357.     public function setTextoAdicionalEn($textoAdicionalEn)
  358.     {
  359.         $this->textoAdicionalEn $textoAdicionalEn;
  360.         return $this;
  361.     }
  362.     /**
  363.      * Get textoAdicionalEn.
  364.      *
  365.      * @return string
  366.      */
  367.     public function getTextoAdicionalEn()
  368.     {
  369.         return $this->textoAdicionalEn;
  370.     }
  371.     /**
  372.      * Set enOferta.
  373.      *
  374.      * @param bool $enOferta
  375.      */
  376.     public function setEnOferta($enOferta)
  377.     {
  378.         $this->enOferta $enOferta;
  379.         return $this;
  380.     }
  381.     /**
  382.      * Get enOferta.
  383.      *
  384.      * @return bool
  385.      */
  386.     public function getEnOferta()
  387.     {
  388.         return $this->enOferta;
  389.     }
  390.     /**
  391.      * Set orden.
  392.      *
  393.      * @param int $orden
  394.      */
  395.     public function setOrden($orden)
  396.     {
  397.         $this->orden $orden;
  398.         return $this;
  399.     }
  400.     /**
  401.      * Get orden.
  402.      *
  403.      * @return int
  404.      */
  405.     public function getOrden()
  406.     {
  407.         return $this->orden;
  408.     }
  409.     /**
  410.      * Set eliminado.
  411.      *
  412.      * @param bool $eliminado
  413.      *
  414.      * @return Producto
  415.      */
  416.     public function setEliminado($eliminado)
  417.     {
  418.         $this->eliminado $eliminado;
  419.         return $this;
  420.     }
  421.     /**
  422.      * Get eliminado.
  423.      *
  424.      * @return bool
  425.      */
  426.     public function getEliminado()
  427.     {
  428.         return $this->eliminado;
  429.     }
  430.     public function getCategorias()
  431.     {
  432.         $categorias = array();
  433.         foreach ($this->familiasCategoria as $key => $familiaCategoria) {
  434.             $categorias[] = $familiaCategoria->getCategoria();
  435.         }
  436.         return $categorias;
  437.     }
  438.     public function getFirstCategoriaByFamilia()
  439.     {
  440.         $categoria '';
  441.         foreach ($this->familiasCategoria as $key => $familiaCategoria) {
  442.             $categoria $familiaCategoria->getCategoria()->getNombreEs();
  443.             break;
  444.         }
  445.         return $categoria;
  446.     }
  447. }