src/AppBundle/Entity/Sucursal.php line 13

  1. <?php
  2. namespace AppBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. /**
  6.  * @ORM\Table(name="sucursal")
  7.  * @ORM\Entity(repositoryClass="AppBundle\Repository\SucursalRepository")
  8.  * @ORM\HasLifecycleCallbacks()
  9.  */
  10. class Sucursal
  11. {
  12.     const CASA_CENTRAL             '1001';
  13.     const SUCURSAL_RAFAELA         '1003';
  14.     const SUCURSAL_MENDOZA         '1004';
  15.     const SUCURSAL_TUCUMAN         '1005';
  16.     const SUCURSAL_ROSARIO         '1007';
  17.     const SUCURSAL_FLORIDA         '1006';
  18.     const SUCURSAL_CORDOBA         '1008';
  19.     const SUCURSAL_URUGUAY         '5001';
  20.     const SUCURSALES_BSAS          = [self::CASA_CENTRALself::SUCURSAL_FLORIDA];
  21.     const SUCURSALES_ENTREGA       = [self::CASA_CENTRALself::SUCURSAL_FLORIDAself::SUCURSAL_ROSARIOself::SUCURSAL_RAFAELAself::SUCURSAL_MENDOZAself::SUCURSAL_CORDOBAself::SUCURSAL_TUCUMANself::SUCURSAL_URUGUAY];
  22.     const SUCURSALES_SIN_MOSTRADOR = [self::SUCURSAL_FLORIDA];
  23.     const NOMBRE_CASA_CENTRAL_PDF 'CABA'//nombre para PDF de cotizaciones y pedidos
  24.     /**
  25.      * @ORM\Column(type="integer")
  26.      * @ORM\Id
  27.      */
  28.     protected $id;
  29.     /**
  30.      * @var string
  31.      * @Assert\NotBlank()
  32.      * @ORM\Column(name="nombre", type="string", length=35)
  33.      */
  34.     protected $nombre;
  35.     /**
  36.      * @var string
  37.      * @Assert\NotBlank()
  38.      * @ORM\Column(name="direccion", type="string", length=60)
  39.      */
  40.     protected $direccion;
  41.     /**
  42.      * @var string
  43.      * @Assert\NotBlank()
  44.      * @ORM\Column(name="localidad", type="string", length=35)
  45.      */
  46.     protected $localidad;
  47.     /**
  48.      * @var string
  49.      * @Assert\NotBlank()
  50.      * @ORM\Column(name="provincia", type="string", length=35)
  51.      */
  52.     protected $provincia;
  53.     /**
  54.      * @ORM\OneToMany(targetEntity="Carrito", mappedBy="centro")
  55.      */
  56.     protected $carritos;
  57.     
  58.     protected $itemsCarrito;
  59.     /**
  60.      * @ORM\OneToMany(targetEntity="Empresa", mappedBy="centro")
  61.      */
  62.     protected $empresas;
  63.     /**
  64.      * @var string
  65.      * @ORM\Column(name="email", type="string", length=255)
  66.      */
  67.     protected $email;
  68.     /**
  69.      * @var string
  70.      * @ORM\Column(name="telefono", type="string", length=255)
  71.      */
  72.     protected $telefono;
  73.     /**
  74.      * @var string
  75.      * @ORM\Column(name="horario", type="string", length=255, options={"default"="Horario de retiro: 9hs a 17hs."})
  76.      */
  77.     protected $horario;
  78.     /**
  79.      * @var string
  80.      * @ORM\Column(name="mapa", type="string", length=255)
  81.      */
  82.     protected $mapa;
  83.     /**
  84.      * @var string
  85.      * @ORM\Column(name="codigo", type="string", length=3)
  86.      */
  87.     protected $codigo;
  88.     /**
  89.      * @var string
  90.      * @ORM\Column(name="orden", type="string", length=2)
  91.      */
  92.     protected $orden;
  93.     public $activa false;
  94.     /**
  95.      * @var boolean
  96.      * @ORM\Column(name="habilitada_para_alta", type="boolean")
  97.      */
  98.     protected $habilitadaParaAlta;
  99.     /**
  100.      * @var boolean
  101.      * @ORM\Column(name="con_entrega", type="boolean")
  102.      */
  103.     protected $conEntrega;
  104.     /**
  105.      * @var boolean
  106.      * @ORM\Column(name="con_mostrador", type="boolean")
  107.      */
  108.     protected $conMostrador;
  109.     public function getId()
  110.     {
  111.         return $this->id;
  112.     }
  113.     public function setId($id)
  114.     {
  115.         $this->id $id;
  116.         return $this;
  117.     }
  118.     public function getNombre()
  119.     {
  120.         return $this->nombre;
  121.     }
  122.     public function setNombre($nombre)
  123.     {
  124.         $this->nombre $nombre;
  125.         return $this;
  126.     }
  127.     
  128.     public function getDireccion()
  129.     {
  130.         return $this->direccion;
  131.     }
  132.     public function setDireccion($direccion)
  133.     {
  134.         $this->direccion $direccion;
  135.         return $this;
  136.     }
  137.     public function getLocalidad()
  138.     {
  139.         return $this->localidad;
  140.     }
  141.     public function setLocalidad($localidad)
  142.     {
  143.         $this->localidad $localidad;
  144.         return $this;
  145.     }
  146.     public function getProvincia()
  147.     {
  148.         return $this->provincia;
  149.     }
  150.     public function setProvincia($provincia)
  151.     {
  152.         $this->provincia $provincia;
  153.         return $this;
  154.     }
  155.     public function getEmail()
  156.     {
  157.         return $this->email;
  158.     }
  159.     public function setEmail($email)
  160.     {
  161.         $this->email $email;
  162.         return $this;
  163.     }
  164.     public function getTelefono()
  165.     {
  166.         return $this->telefono;
  167.     }
  168.     public function setTelefono($telefono)
  169.     {
  170.         $this->telefono $telefono;
  171.         return $this;
  172.     }
  173.     public function getHorario()
  174.     {
  175.         return $this->horario;
  176.     }
  177.     public function setHorario($horario)
  178.     {
  179.         $this->horario $horario;
  180.         return $this;
  181.     }
  182.     public function getMapa()
  183.     {
  184.         return $this->mapa;
  185.     }
  186.     public function setMapa($mapa)
  187.     {
  188.         $this->mapa $mapa;
  189.         return $this;
  190.     }
  191.     
  192.     /**
  193.      * Constructor
  194.      */
  195.     public function __construct()
  196.     {
  197.         $this->carritos = new \Doctrine\Common\Collections\ArrayCollection();
  198.         $this->itemsCarrito = new \Doctrine\Common\Collections\ArrayCollection();
  199.         $this->empresas = new \Doctrine\Common\Collections\ArrayCollection();
  200.     }
  201.     /**
  202.      * Set codigo
  203.      *
  204.      * @param string $codigo
  205.      *
  206.      * @return Sucursal
  207.      */
  208.     public function setCodigo($codigo)
  209.     {
  210.         $this->codigo $codigo;
  211.         return $this;
  212.     }
  213.     /**
  214.      * Get codigo
  215.      *
  216.      * @return string
  217.      */
  218.     public function getCodigo()
  219.     {
  220.         return $this->codigo;
  221.     }
  222.     /**
  223.      * Add carrito
  224.      *
  225.      * @param \AppBundle\Entity\Carrito $carrito
  226.      *
  227.      * @return Sucursal
  228.      */
  229.     public function addCarrito(\AppBundle\Entity\Carrito $carrito)
  230.     {
  231.         $this->carritos[] = $carrito;
  232.         return $this;
  233.     }
  234.     /**
  235.      * Remove carrito
  236.      *
  237.      * @param \AppBundle\Entity\Carrito $carrito
  238.      */
  239.     public function removeCarrito(\AppBundle\Entity\Carrito $carrito)
  240.     {
  241.         $this->carritos->removeElement($carrito);
  242.     }
  243.     /**
  244.      * Get carritos
  245.      *
  246.      * @return \Doctrine\Common\Collections\Collection
  247.      */
  248.     public function getCarritos()
  249.     {
  250.         return $this->carritos;
  251.     }
  252.     /**
  253.      * Add itemsCarrito
  254.      *
  255.      * @param \AppBundle\Entity\ItemCarrito $itemsCarrito
  256.      *
  257.      * @return Sucursal
  258.      */
  259.     public function addItemsCarrito(\AppBundle\Entity\ItemCarrito $itemsCarrito)
  260.     {
  261.         $this->itemsCarrito[] = $itemsCarrito;
  262.         return $this;
  263.     }
  264.     /**
  265.      * Remove itemsCarrito
  266.      *
  267.      * @param \AppBundle\Entity\ItemCarrito $itemsCarrito
  268.      */
  269.     public function removeItemsCarrito(\AppBundle\Entity\ItemCarrito $itemsCarrito)
  270.     {
  271.         $this->itemsCarrito->removeElement($itemsCarrito);
  272.     }
  273.     /**
  274.      * Get itemsCarrito
  275.      *
  276.      * @return \Doctrine\Common\Collections\Collection
  277.      */
  278.     public function getItemsCarrito()
  279.     {
  280.         return $this->itemsCarrito;
  281.     }
  282.     /**
  283.      * Add empresa
  284.      *
  285.      * @param \AppBundle\Entity\Empresa $empresa
  286.      *
  287.      * @return Sucursal
  288.      */
  289.     public function addEmpresa(\AppBundle\Entity\Empresa $empresa)
  290.     {
  291.         $this->empresas[] = $empresa;
  292.         return $this;
  293.     }
  294.     /**
  295.      * Remove empresa
  296.      *
  297.      * @param \AppBundle\Entity\Empresa $empresa
  298.      */
  299.     public function removeEmpresa(\AppBundle\Entity\Empresa $empresa)
  300.     {
  301.         $this->empresas->removeElement($empresa);
  302.     }
  303.     /**
  304.      * Get empresas
  305.      *
  306.      * @return \Doctrine\Common\Collections\Collection
  307.      */
  308.     public function getEmpresas()
  309.     {
  310.         return $this->empresas;
  311.     }
  312.     
  313.     public function tieneReparto(){
  314.         return in_array($this->idself::SUCURSALES_ENTREGA);
  315.     }
  316.     public function permitePedidoMostrador(){
  317.         return !in_array($this->idself::SUCURSALES_SIN_MOSTRADOR);
  318.     }
  319.     public function esSucursalBSAS(){
  320.         return in_array($this->idself::SUCURSALES_BSAS);
  321.     }
  322.     public function getCentroFinalId()
  323.     {
  324.         return ($this->id == self::CASA_CENTRAL) ? self::SUCURSAL_FLORIDA $this->id;
  325.     }
  326.     public function getDetalleSucursal(){
  327.         return [
  328.             'id' => $this->getId(),
  329.             'nombre' => $this->getNombre(),
  330.             'direccion' => $this->getDireccion(),
  331.             'localidad' => $this->getLocalidad(),
  332.             'provincia' => $this->getProvincia(),
  333.             'activa' => $this->activa
  334.         ];
  335.     }
  336.     public function setOrden($orden) {
  337.         $this->orden $orden;
  338.         return $this;
  339.     }
  340.     public function getOrden()
  341.     {
  342.         return $this->orden;
  343.     }
  344.     /**
  345.      * Get the value of habilitadaParaAlta
  346.      *
  347.      * @return  string
  348.      */
  349.     public function getHabilitadaParaAlta()
  350.     {
  351.         return $this->habilitadaParaAlta;
  352.     }
  353.     /**
  354.      * Set the value of habilitadaParaAlta
  355.      *
  356.      * @param  bool  $habilitadaParaAlta
  357.      *
  358.      * @return  self
  359.      */
  360.     public function setHabilitadaParaAlta(bool $habilitadaParaAlta)
  361.     {
  362.         $this->habilitadaParaAlta $habilitadaParaAlta;
  363.         return $this;
  364.     }
  365.     /**
  366.      * Get the value of conEntrega
  367.      *
  368.      * @return  bool
  369.      */
  370.     public function getConEntrega()
  371.     {
  372.         return $this->conEntrega;
  373.     }
  374.     /**
  375.      * Set the value of conEntrega
  376.      *
  377.      * @param  bool  $conEntrega
  378.      *
  379.      * @return  self
  380.      */
  381.     public function setConEntrega(bool $conEntrega)
  382.     {
  383.         $this->conEntrega $conEntrega;
  384.         return $this;
  385.     }
  386.     /**
  387.      * Get the value of conMostrador
  388.      *
  389.      * @return  bool
  390.      */
  391.     public function getConMostrador()
  392.     {
  393.         return $this->conMostrador;
  394.     }
  395.     /**
  396.      * Set the value of conMostrador
  397.      *
  398.      * @param  bool $conMostrador
  399.      *
  400.      * @return  self
  401.      */
  402.     public function setConMostrador(bool $conMostrador)
  403.     {
  404.         $this->conMostrador $conMostrador;
  405.         return $this;
  406.     }
  407. }