src/Entity/Supplier.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\SupplierRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Validator\Constraints as Assert;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. /**
  10.  * @ORM\Entity(repositoryClass=SupplierRepository::class)
  11.  */
  12. class Supplier
  13. {
  14.     /**
  15.      * @ORM\Id
  16.      * @ORM\GeneratedValue
  17.      * @ORM\Column(type="integer")
  18.      */
  19.     private $id;
  20.     /**
  21.      * @ORM\Column(type="string", length=4)
  22.      */
  23.     private $ref;
  24.     /**
  25.      * @ORM\Column(type="string", length=255, nullable=true)
  26.      * @Assert\NotBlank
  27.      */
  28.     private $name;
  29.     /**
  30.      * @ORM\Column(type="string", length=100, nullable=true, options={"default" : 1})
  31.      */
  32.     private $objective;
  33.     /**
  34.      * @ORM\Column(type="string", length=255, nullable=true)
  35.      * @Assert\NotBlank
  36.      */
  37.     private $address;
  38.     /**
  39.      * @ORM\Column(type="integer", nullable=true)
  40.      */
  41.     private $phone;
  42.     /**
  43.      * @ORM\Column(type="string", length=100, nullable=true)
  44.      */
  45.     private $cif;
  46.     /**
  47.      * @ORM\Column(type="string", length=255, nullable=true)
  48.      */
  49.     private $work_center;
  50.     /**
  51.      * @ORM\Column(type="string", length=255, nullable=true)
  52.      */
  53.     private $contact;
  54.     /**
  55.      * @ORM\Column(type="string", length=255)
  56.      */
  57.     private $certifications;
  58.     /**
  59.      * @ORM\Column(type="string", length=255, nullable=true)
  60.      */
  61.     private $notes;
  62.     /**
  63.      * @ORM\Column(type="string", length=255, nullable=true)
  64.      */
  65.     private $others;
  66.     /**
  67.      * @ORM\Column(type="datetime", nullable=true)
  68.      */
  69.     private $created_at;
  70.     /**
  71.      * @ORM\Column(type="datetime", nullable=true)
  72.      */
  73.     private $updated_at;
  74.     /**
  75.      * @ORM\OneToOne(targetEntity=User::class, cascade={"persist", "remove"})
  76.      * @ORM\JoinColumn(onDelete="CASCADE")
  77.      */
  78.     private $user;
  79.     /**
  80.      * @ORM\OneToMany(targetEntity=Part::class, mappedBy="supplier")
  81.      */
  82.     private $parts;
  83.     /**
  84.      * @ORM\OneToMany(targetEntity=User::class, mappedBy="supplier")
  85.      */
  86.     private $users;
  87.     /**
  88.      * @ORM\OneToMany(targetEntity=CompanySupplier::class, mappedBy="supplier")
  89.      */
  90.     private $companySuppliers;
  91.     /**
  92.      * Permite colaboraciones externas
  93.      *
  94.      * @ORM\Column(type="boolean")
  95.      */
  96.     private $collab;
  97.     /**
  98.      * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="suppliers")
  99.      * @ORM\JoinColumn(onDelete="CASCADE")
  100.      * @ORM\JoinColumn(nullable=false)
  101.      */
  102.     private $company;
  103.     /**
  104.      * @ORM\Column(type="string", length=100, nullable=true)
  105.      *
  106.      * @Assert\Email(
  107.      *     message = "El email '{{ value }}' no es válido."
  108.      * )
  109.      */
  110.     private $email;
  111.     /**
  112.      * @ORM\Column(type="boolean", nullable=true)
  113.      */
  114.     private $marketplace;
  115.     public function __construct()
  116.     {
  117.         $this->created_at = new \DateTime();
  118.         $this->markAsUpdated();
  119.         $this->parts = new ArrayCollection();
  120.         $this->users = new ArrayCollection();
  121.         $this->companySuppliers = new ArrayCollection();
  122.     }
  123.     // Registra el método mágico para imprimir el nombre del estado, por ejemplo, California
  124.     public function __toString() {
  125.         return $this->name;
  126.     }
  127.     public function getId(): ?int
  128.     {
  129.         return $this->id;
  130.     }
  131.     public function getRef(): ?string
  132.     {
  133.         return $this->ref;
  134.     }
  135.     public function setRef(string $ref): self
  136.     {
  137.         $ref++;
  138.         $this->ref $ref;
  139.         return $this;
  140.     }
  141.     public function getName(): ?string
  142.     {
  143.         return $this->name;
  144.     }
  145.     public function setName(?string $name): self
  146.     {
  147.         $this->name $name;
  148.         return $this;
  149.     }
  150.     public function getAddress(): ?string
  151.     {
  152.         return $this->address;
  153.     }
  154.     public function setAddress(?string $address): self
  155.     {
  156.         $this->address $address;
  157.         return $this;
  158.     }
  159.     public function getPhone(): ?int
  160.     {
  161.         return $this->phone;
  162.     }
  163.     public function setPhone(?int $phone): self
  164.     {
  165.         $this->phone $phone;
  166.         return $this;
  167.     }
  168.     public function getCif(): ?string
  169.     {
  170.         return $this->cif;
  171.     }
  172.     public function setCif(?string $cif): self
  173.     {
  174.         $this->cif $cif;
  175.         return $this;
  176.     }
  177.     public function getWorkCenter(): ?string
  178.     {
  179.         return $this->work_center;
  180.     }
  181.     public function setWorkCenter(?string $work_center): self
  182.     {
  183.         $this->work_center $work_center;
  184.         return $this;
  185.     }
  186.     public function getContact(): ?string
  187.     {
  188.         return $this->contact;
  189.     }
  190.     public function setContact(?string $contact): self
  191.     {
  192.         $this->contact $contact;
  193.         return $this;
  194.     }
  195.     public function getCertifications(): ?string
  196.     {
  197.         return $this->certifications;
  198.     }
  199.     public function setCertifications(string $certifications): self
  200.     {
  201.         $this->certifications $certifications;
  202.         return $this;
  203.     }
  204.     public function getNotes(): ?string
  205.     {
  206.         return $this->notes;
  207.     }
  208.     public function setNotes(?string $notes): self
  209.     {
  210.         $this->notes $notes;
  211.         return $this;
  212.     }
  213.     public function getOthers(): ?string
  214.     {
  215.         return $this->others;
  216.     }
  217.     public function setOthers(?string $others): self
  218.     {
  219.         $this->others $others;
  220.         return $this;
  221.     }
  222.     public function getCreatedAt(): ?\DateTimeInterface
  223.     {
  224.         return $this->created_at;
  225.     }
  226.     public function getUpdatedAt(): ?\DateTimeInterface
  227.     {
  228.         return $this->updated_at;
  229.     }
  230.     /**
  231.      * Set the value of updatedAt
  232.      *
  233.      * @param \DateTime $updatedAt
  234.      */
  235.     public function markAsUpdated() : void
  236.     {
  237.         $this->updated_at = new \DateTime();
  238.     }
  239.     public function getUser(): ?User
  240.     {
  241.         return $this->user;
  242.     }
  243.     public function setUser(User $user): self
  244.     {
  245.         $this->user $user;
  246.         return $this;
  247.     }
  248.     /**
  249.      * @return Collection|Part[]
  250.      */
  251.     public function getParts(): Collection
  252.     {
  253.         return $this->parts;
  254.     }
  255.     public function addPart(Part $part): self
  256.     {
  257.         if (!$this->parts->contains($part)) {
  258.             $this->parts[] = $part;
  259.             $part->setSupplier($this);
  260.         }
  261.         return $this;
  262.     }
  263.     public function removePart(Part $part): self
  264.     {
  265.         if ($this->parts->removeElement($part)) {
  266.             // set the owning side to null (unless already changed)
  267.             if ($part->getSupplier() === $this) {
  268.                 $part->setSupplier(null);
  269.             }
  270.         }
  271.         return $this;
  272.     }
  273.     /**
  274.      * @return Collection<int, User>
  275.      */
  276.     public function getUsers(): Collection
  277.     {
  278.         return $this->users;
  279.     }
  280.     public function addUsers(User $users): self
  281.     {
  282.         if (!$this->users->contains($users)) {
  283.             $this->users[] = $users;
  284.             $users->setSupplier($this);
  285.         }
  286.         return $this;
  287.     }
  288.     public function removeUsers(User $users): self
  289.     {
  290.         if ($this->users->removeElement($users)) {
  291.             // set the owning side to null (unless already changed)
  292.             if ($users->getSupplier() === $this) {
  293.                 $users->setSupplier(null);
  294.             }
  295.         }
  296.         return $this;
  297.     }
  298.     /**
  299.      * @return Collection<int, CompanySupplier>
  300.      */
  301.     public function getCompanySuppliers(): Collection
  302.     {
  303.         return $this->companySuppliers;
  304.     }
  305.     public function addCompanySupplier(CompanySupplier $companySupplier): self
  306.     {
  307.         if (!$this->companySuppliers->contains($companySupplier)) {
  308.             $this->companySuppliers[] = $companySupplier;
  309.             $companySupplier->setSupplier($this);
  310.         }
  311.         return $this;
  312.     }
  313.     public function removeCompanySupplier(CompanySupplier $companySupplier): self
  314.     {
  315.         if ($this->companySuppliers->removeElement($companySupplier)) {
  316.             // set the owning side to null (unless already changed)
  317.             if ($companySupplier->getSupplier() === $this) {
  318.                 $companySupplier->setSupplier(null);
  319.             }
  320.         }
  321.         return $this;
  322.     }
  323.     public function getCollab(): ?bool
  324.     {
  325.         return $this->collab;
  326.     }
  327.     public function setCollab(bool $collab): self
  328.     {
  329.         $this->collab $collab;
  330.         return $this;
  331.     }
  332.     public function getCompany(): ?Company
  333.     {
  334.         return $this->company;
  335.     }
  336.     public function setCompany(?Company $company): self
  337.     {
  338.         $this->company $company;
  339.         return $this;
  340.     }
  341.     public function getEmail(): ?string
  342.     {
  343.         return $this->email;
  344.     }
  345.     public function setEmail(?string $email): self
  346.     {
  347.         $this->email $email;
  348.         return $this;
  349.     }
  350.     public function getMarketplace(): ?bool
  351.     {
  352.         return $this->marketplace;
  353.     }
  354.     public function setMarketplace(?bool $marketplace): self
  355.     {
  356.         $this->marketplace $marketplace;
  357.         return $this;
  358.     }
  359.     /**
  360.      * @return mixed
  361.      */
  362.     public function getObjective()
  363.     {
  364.         return $this->objective;
  365.     }
  366.     /**
  367.      * @param mixed $objective
  368.      */
  369.     public function setObjective($objective): void
  370.     {
  371.         $this->objective $objective;
  372.     }
  373. }