src/AppBundle/Entity/Familia.php line 18
<?php
namespace AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Cocur\Slugify\Slugify;
use Doctrine\Common\Collections\Criteria;
use Symfony\Component\String\Slugger\AsciiSlugger;
/**
* Familia.
*
* @ORM\Table(name="familia")
* @ORM\Entity(repositoryClass="AppBundle\Repository\FamiliaRepository")
* @ORM\HasLifecycleCallbacks()
*/
class Familia
{
/**
* @var int
*
* @ORM\Column(name="id", type="string", length=3, options={"fixed" = true})
* @ORM\Id
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="nombre_es", type="string", length=255)
*/
private $nombreEs;
/**
* @var string
*
* @ORM\Column(name="nombre_abre_es", type="string", length=255)
*/
private $nombreAbreEs;
/**
* @var string
*
* @ORM\Column(name="nombre_en", type="string", length=255)
*/
private $nombreEn;
/**
* @var string
*
* @ORM\Column(name="nombre_abre_en", type="string", length=255)
*/
private $nombreAbreEn;
/**
* @var string
*
* @ORM\Column(name="slug_es", type="string", length=255)
*/
private $slugEs;
/**
* @var string
*
* @ORM\Column(name="slug_en", type="string", length=255)
*/
private $slugEn;
/**
* @ORM\OneToMany(targetEntity="SubFamilia", mappedBy="familia")
*/
protected $subfamilias;
/**
* @ORM\OneToMany(targetEntity="FamiliaCategoria", mappedBy="familia", cascade={"persist"}, orphanRemoval=true)
*/
protected $familiasCategoria;
/**
* @var string
*
* @ORM\Column(name="texto_adicional_es", type="text")
*/
private $textoAdicionalEs;
/**
* @var string
*
* @ORM\Column(name="texto_adicional_en", type="text")
*/
private $textoAdicionalEn;
/**
* @var bool
*
* @ORM\Column(name="en_oferta", type="boolean")
*/
private $enOferta;
/**
* @var int
*
* @ORM\Column(name="orden", type="integer", length=4)
*/
private $orden;
/**
* @var bool
*
* @ORM\Column(name="eliminado", type="boolean")
*/
private $eliminado = false;
/**
* @ORM\ManyToMany(targetEntity="Pais", inversedBy="familias")
* @ORM\JoinTable(name="familia_pais",
* joinColumns={@ORM\JoinColumn(name="familia_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="pais_id", referencedColumnName="id")}
* )
*/
protected $pais;
public function __construct()
{
$this->subfamilias = new ArrayCollection();
$this->familiasCategoria = new ArrayCollection();
}
/**
* Set id.
*
* @param int $id
*
* @return Familia
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set nombreEs.
*
* @param string $nombreEs
*
* @return Familia
*/
public function setNombreEs($nombreEs)
{
$this->nombreEs = $nombreEs;
return $this;
}
/**
* Get nombreEs.
*
* @return string
*/
public function getNombreEs()
{
return $this->nombreEs;
}
/**
* Set Nombre Abreviado en español nombreAbreEs.
*
* @param string $nombreAbreEs
*
* @return Familia
*/
public function setNombreAbreEs($nombreAbreEs)
{
$this->nombreAbreEs = $nombreAbreEs;
return $this;
}
/**
* Get Nombre Abreviado en Español nombreEs.
*
* @return string
*/
public function getNombreAbreEs()
{
return $this->nombreAbreEs;
}
/**
* Set nombreEn.
*
* @param string $nombreEn
*
* @return Familia
*/
public function setNombreEn($nombreEn)
{
$this->nombreEn = $nombreEn;
return $this;
}
/**
* Get nombreEn.
*
* @return string
*/
public function getNombreEn()
{
return $this->nombreEn;
}
/**
* Set Nombre abreviado en Ingles (nombreAbreEn).
*
* @param string $nombreAbreEn
*
* @return Familia
*/
public function setnombreAbreEn($nombreAbreEn)
{
$this->nombreAbreEn = $nombreAbreEn;
return $this;
}
/**
* Get Nombre Abreviado en Ingles (nombreAbreEn).
*
* @return string
*/
public function getnombreAbreEn()
{
return $this->nombreAbreEn;
}
/**
* Add subfamilia.
*
* @param \AppBundle\Entity\SubFamilia $subfamilia
*
* @return Familia
*/
public function addSubfamilia(\AppBundle\Entity\SubFamilia $subfamilia)
{
$this->subfamilias[] = $subfamilia;
return $this;
}
/**
* Remove subfamilia.
*
* @param \AppBundle\Entity\SubFamilia $subfamilia
*/
public function removeSubfamilia(\AppBundle\Entity\SubFamilia $subfamilia)
{
$this->subfamilias->removeElement($subfamilia);
}
/**
* Get subfamilias.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getSubFamilias($enCatalgo = null)
{
$criteria = Criteria::create();
if($enCatalgo)
{
$criteria->where(Criteria::expr()->eq('enCatalogo', $enCatalgo));
}
return $this->subfamilias->matching($criteria);
}
/**
* Add familiasCategorium.
*
* @param \AppBundle\Entity\FamiliaCategoria $familiasCategorium
*
* @return Familia
*/
public function addFamiliasCategorium(\AppBundle\Entity\FamiliaCategoria $familiasCategorium)
{
$this->familiasCategoria[] = $familiasCategorium;
return $this;
}
/**
* Remove familiasCategorium.
*
* @param \AppBundle\Entity\FamiliaCategoria $familiasCategorium
*/
public function removeFamiliasCategorium(\AppBundle\Entity\FamiliaCategoria $familiasCategorium)
{
$this->familiasCategoria->removeElement($familiasCategorium);
}
/**
* Get familiasCategoria.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getFamiliasCategoria()
{
return $this->familiasCategoria;
}
/**
* Set slugEs.
*
* @ORM\PreUpdate
* @ORM\PrePersist
*
* @param string $slugEs
*
* @return Familia
*/
public function setSlugEs()
{
$slugify = new AsciiSlugger();
$this->slugEs = $slugify->slug($this->nombreEs)->lower();
return $this;
}
/**
* Get slugEs.
*
* @return string
*/
public function getSlugEs()
{
return $this->slugEs;
}
/**
* Set slugEn.
*
* @ORM\PreUpdate
* @ORM\PrePersist
*
* @param string $slugEn
*
* @return Familia
*/
public function setSlugEn()
{
$slugify = new AsciiSlugger();
$this->slugEn = $slugify->slug($this->nombreEn)->lower();
return $this;
}
/**
* Get slugEn.
*
* @return string
*/
public function getSlugEn()
{
return $this->slugEn;
}
/**
* Set textoAdicionalEs.
*
* @param string $textoAdicionalEs
*/
public function setTextoAdicionalEs($textoAdicionalEs)
{
$this->textoAdicionalEs = $textoAdicionalEs;
return $this;
}
/**
* Get textoAdicionalEs.
*
* @return string
*/
public function getTextoAdicionalEs()
{
return $this->textoAdicionalEs;
}
/**
* Set textoAdicionalEn.
*
* @param string $textoAdicionalEn
*
* @return Familia
*/
public function setTextoAdicionalEn($textoAdicionalEn)
{
$this->textoAdicionalEn = $textoAdicionalEn;
return $this;
}
/**
* Get textoAdicionalEn.
*
* @return string
*/
public function getTextoAdicionalEn()
{
return $this->textoAdicionalEn;
}
/**
* Set enOferta.
*
* @param bool $enOferta
*/
public function setEnOferta($enOferta)
{
$this->enOferta = $enOferta;
return $this;
}
/**
* Get enOferta.
*
* @return bool
*/
public function getEnOferta()
{
return $this->enOferta;
}
/**
* Set orden.
*
* @param int $orden
*/
public function setOrden($orden)
{
$this->orden = $orden;
return $this;
}
/**
* Get orden.
*
* @return int
*/
public function getOrden()
{
return $this->orden;
}
/**
* Set eliminado.
*
* @param bool $eliminado
*
* @return Producto
*/
public function setEliminado($eliminado)
{
$this->eliminado = $eliminado;
return $this;
}
/**
* Get eliminado.
*
* @return bool
*/
public function getEliminado()
{
return $this->eliminado;
}
public function getCategorias()
{
$categorias = array();
foreach ($this->familiasCategoria as $key => $familiaCategoria) {
$categorias[] = $familiaCategoria->getCategoria();
}
return $categorias;
}
public function getFirstCategoriaByFamilia()
{
$categoria = '';
foreach ($this->familiasCategoria as $key => $familiaCategoria) {
$categoria = $familiaCategoria->getCategoria()->getNombreEs();
break;
}
return $categoria;
}
}