src/Entity/Almacen/Articulo.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Almacen;
  3. use App\Entity\Calidad\InsumoArticulo;
  4. use App\Entity\Calidad\ProductoArticulo;
  5. use App\Entity\Calidad\TipoArticulo;
  6. use App\Repository\Almacen\ArticuloRepository;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  12. use App\Entity\Equipos\Maquinaria;
  13. /**
  14.  * @ORM\Entity(repositoryClass=ArticuloRepository::class)
  15.  * @ORM\Table(name="gral_articulos")
  16.  * @UniqueEntity(
  17.  *     fields={"descripcion", "categoria"},
  18.  *     errorPath="descripcion",
  19.  *     message="Ya existe una categoria con el descripcion ingresada"
  20.  * )
  21.  */
  22. class Articulo
  23. {
  24.     /**
  25.      * @ORM\Id
  26.      * @ORM\GeneratedValue
  27.      * @ORM\Column(type="integer")
  28.      */
  29.     private $id;
  30.     /**
  31.      * @ORM\Column(type="string", length=255)
  32.      * @Assert\NotNull(message="El campo es requerido")
  33.      */
  34.     private $descripcion;
  35.     /**
  36.      * @ORM\Column(type="string", length=255, nullable=true)
  37.      */
  38.     private $codigo;
  39.     /**
  40.      * @ORM\Column(type="string", length=255, nullable=true)
  41.      */
  42.     private $codigoBarras;
  43.     /**
  44.      * @ORM\Column(type="boolean",  options={"default"=true})
  45.      */
  46.     private $activo true;
  47.     /**
  48.      * @ORM\Column(type="boolean", options={"default"=false})
  49.      */
  50.     private $herramienta false;
  51.     /**
  52.      * @ORM\ManyToOne(targetEntity=UnidadMedida::class)
  53.      * @ORM\JoinColumn(name="id_uda_med", referencedColumnName="id", nullable=true)
  54.      * @Assert\NotNull(message="El campo es requerido")
  55.      */
  56.     private $unidaMedida;
  57.     /**
  58.      * @ORM\ManyToOne(targetEntity=Categoria::class)
  59.      * @ORM\JoinColumn(name="id_categoria", referencedColumnName="id", nullable=true)
  60.      * @Assert\NotNull(message="El campo es requerido")
  61.      */
  62.     private $categoria;
  63.     /**
  64.      * @ORM\ManyToMany(targetEntity=Maquinaria::class, inversedBy="articulos")
  65.      * @ORM\JoinTable(name="config_articulo_maquina")
  66.      */
  67.     private $maquinarias;
  68.     /**
  69.      * ORM\OneToMany(targetEntity=ArticuloDeposito::class, mappedBy="articulo")
  70.      */
  71.     private $articulosDeposito;
  72.     /**
  73.      * @ORM\ManyToMany(targetEntity=AplicacionArticulo::class)
  74.      * @ORM\JoinTable(name="gral_articulo_aplicacion",
  75.      *      joinColumns={@ORM\JoinColumn(name="id_articulo", referencedColumnName="id")},
  76.      *      inverseJoinColumns={@ORM\JoinColumn(name="id_aplicacion", referencedColumnName="id")}
  77.      *      )
  78.      */
  79.     private $aplicaciones;
  80.     /**
  81.      * @ORM\ManyToOne(targetEntity=InsumoArticulo::class)
  82.      * @ORM\JoinColumn(name="id_insumo", referencedColumnName="id", nullable=true)
  83.      */
  84.     private $insumo;
  85.     /**
  86.      * @ORM\ManyToOne(targetEntity=ProductoArticulo::class)
  87.      * @ORM\JoinColumn(name="id_producto", referencedColumnName="id", nullable=true)
  88.      */
  89.     private $producto;
  90.     /**
  91.      * @ORM\ManyToOne(targetEntity=TipoArticulo::class)
  92.      * @ORM\JoinColumn(name="id_tipo", referencedColumnName="id", nullable=true)
  93.      */
  94.     private $tipo;
  95.     public function getListaAplicaciones()
  96.     {
  97.         
  98.         
  99.         return implode(' - '$this->aplicaciones->toArray());
  100.     }
  101.     public function __construct()
  102.     {
  103.         $this->maquinarias = new ArrayCollection();
  104.         $this->articulosDeposito = new ArrayCollection();
  105.         $this->aplicaciones = new ArrayCollection();
  106.     }
  107.     
  108.     public function __toString()
  109.     {
  110.         return $this->descripcion;
  111.     }
  112.     public function getId(): ?int
  113.     {
  114.         return $this->id;
  115.     }
  116.     public function getDescripcion(): ?string
  117.     {
  118.         return $this->descripcion;
  119.     }
  120.     public function setDescripcion(string $descripcion): self
  121.     {
  122.         $this->descripcion $descripcion;
  123.         return $this;
  124.     }
  125.     public function getCodigo(): ?string
  126.     {
  127.         return $this->codigo;
  128.     }
  129.     public function setCodigo(?string $codigo): self
  130.     {
  131.         $this->codigo $codigo;
  132.         return $this;
  133.     }
  134.     public function getCodigoBarras(): ?string
  135.     {
  136.         return $this->codigoBarras;
  137.     }
  138.     public function setCodigoBarras(?string $codigoBarras): self
  139.     {
  140.         $this->codigoBarras $codigoBarras;
  141.         return $this;
  142.     }
  143.     public function getUnidaMedida(): ?UnidadMedida
  144.     {
  145.         return $this->unidaMedida;
  146.     }
  147.     public function setUnidaMedida(?UnidadMedida $unidaMedida): self
  148.     {
  149.         $this->unidaMedida $unidaMedida;
  150.         return $this;
  151.     }
  152.     public function getCategoria(): ?Categoria
  153.     {
  154.         return $this->categoria;
  155.     }
  156.     public function setCategoria(?Categoria $categoria): self
  157.     {
  158.         $this->categoria $categoria;
  159.         return $this;
  160.     }
  161.     /**
  162.      * @return Collection<int, Maquinaria>
  163.      */
  164.     public function getMaquinarias(): Collection
  165.     {
  166.         return $this->maquinarias;
  167.     }
  168.     public function addMaquinaria(Maquinaria $maquinaria): self
  169.     {
  170.         if (!$this->maquinarias->contains($maquinaria)) {
  171.             $this->maquinarias[] = $maquinaria;
  172.         }
  173.         return $this;
  174.     }
  175.     public function removeMaquinaria(Maquinaria $maquinaria): self
  176.     {
  177.         $this->maquinarias->removeElement($maquinaria);
  178.         return $this;
  179.     }
  180.     /**
  181.      * @return Collection<int, ArticuloDeposito>
  182.      */
  183.     public function getArticulosDeposito(): Collection
  184.     {
  185.         return $this->articulosDeposito;
  186.     }
  187.     public function addArticulosDeposito(ArticuloDeposito $articulosDeposito): self
  188.     {
  189.         if (!$this->articulosDeposito->contains($articulosDeposito)) {
  190.             $this->articulosDeposito[] = $articulosDeposito;
  191.             $articulosDeposito->setArticarticulos($this);
  192.         }
  193.         return $this;
  194.     }
  195.     public function removeArticulosDeposito(ArticuloDeposito $articulosDeposito): self
  196.     {
  197.         if ($this->articulosDeposito->removeElement($articulosDeposito)) {
  198.             // set the owning side to null (unless already changed)
  199.             if ($articulosDeposito->getArticarticulos() === $this) {
  200.                 $articulosDeposito->setArticarticulos(null);
  201.             }
  202.         }
  203.         return $this;
  204.     }
  205.     public function isActivo(): ?bool
  206.     {
  207.         return $this->activo;
  208.     }
  209.     public function setActivo(bool $activo): self
  210.     {
  211.         $this->activo $activo;
  212.         return $this;
  213.     }
  214.     public function isHerramienta(): ?bool
  215.     {
  216.         return $this->herramienta;
  217.     }
  218.     public function setHerramienta(bool $herramienta): self
  219.     {
  220.         $this->herramienta $herramienta;
  221.         return $this;
  222.     }
  223.     /**
  224.      * @return Collection<int, AplicacionArticulo>
  225.      */
  226.     public function getAplicaciones(): Collection
  227.     {
  228.         return $this->aplicaciones;
  229.     }
  230.     public function addAplicacione(AplicacionArticulo $aplicacione): self
  231.     {
  232.         if (!$this->aplicaciones->contains($aplicacione)) {
  233.             $this->aplicaciones[] = $aplicacione;
  234.         }
  235.         return $this;
  236.     }
  237.     public function removeAplicacione(AplicacionArticulo $aplicacione): self
  238.     {
  239.         $this->aplicaciones->removeElement($aplicacione);
  240.         return $this;
  241.     }
  242.     public function getInsumo(): ?InsumoArticulo
  243.     {
  244.         return $this->insumo;
  245.     }
  246.     public function setInsumo(?InsumoArticulo $insumo): self
  247.     {
  248.         $this->insumo $insumo;
  249.         return $this;
  250.     }
  251.     public function getProducto(): ?ProductoArticulo
  252.     {
  253.         return $this->producto;
  254.     }
  255.     public function setProducto(?ProductoArticulo $producto): self
  256.     {
  257.         $this->producto $producto;
  258.         return $this;
  259.     }
  260.     public function getTipo(): ?TipoArticulo
  261.     {
  262.         return $this->tipo;
  263.     }
  264.     public function setTipo(?TipoArticulo $tipo): self
  265.     {
  266.         $this->tipo $tipo;
  267.         return $this;
  268.     }
  269. }