<?php
namespace App\Entity\Mantenimiento\Preventivo;
use App\Repository\Mantenimiento\Preventivo\PlanMantenimientoDiagramadoRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use App\Entity\Equipos\Maquinaria as Equipo;
use App\Entity\Mantenimiento\Departamento;
/**
* @ORM\Entity(repositoryClass=PlanMantenimientoDiagramadoRepository::class)
*/
class PlanMantenimientoDiagramado
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(name="fecha_diagrama", type="date")
*/
private $fechaDiagrama;
/**
* @ORM\Column(name="fecha_realizacion", type="date", nullable=true)
*/
private $fechaRealizacion;
/**
* @ORM\Column(name="fecha_proxima_realizacion", type="date", nullable=true)
*/
private $fechaProximaRealizacion;
/**
* @ORM\Column(type="boolean")
*/
private $realizado = false;
/**
* @ORM\OneToMany(targetEntity=TareaPlanDiagramada::class, mappedBy="planMantenimientoDiagramado")
*/
private $tareasDiagramadas;
/**
* @ORM\ManyToOne(targetEntity=Departamento::class)
* @ORM\JoinColumn(name="id_departamento", referencedColumnName="id")
*/
private $departamento;
/**
* @ORM\ManyToOne(targetEntity=PlanMantenimiento::class, inversedBy="planesDiagramados")
* @ORM\JoinColumn(name="id_plan", referencedColumnName="id")
*/
private $planMantenimiento;
/**
* @ORM\ManyToOne(targetEntity=Equipo::class)
* @ORM\JoinColumn(name="id_equipo", referencedColumnName="id")
*/
private $equipo;
public function __construct()
{
$this->tareasDiagramadas = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getFechaDiagrama(): ?\DateTimeInterface
{
return $this->fechaDiagrama;
}
public function setFechaDiagrama(\DateTimeInterface $fechaDiagrama): self
{
$this->fechaDiagrama = $fechaDiagrama;
return $this;
}
public function getFechaRealizacion(): ?\DateTimeInterface
{
return $this->fechaRealizacion;
}
public function setFechaRealizacion(\DateTimeInterface $fechaRealizacion): self
{
$this->fechaRealizacion = $fechaRealizacion;
return $this;
}
public function isRealizado(): ?bool
{
return $this->realizado;
}
public function setRealizado(bool $realizado): self
{
$this->realizado = $realizado;
return $this;
}
public function getPlanMantenimiento(): ?PlanMantenimiento
{
return $this->planMantenimiento;
}
public function setPlanMantenimiento(?PlanMantenimiento $planMantenimiento): self
{
$this->planMantenimiento = $planMantenimiento;
return $this;
}
public function getEquipo(): ?Equipo
{
return $this->equipo;
}
public function setEquipo(?Equipo $equipo): self
{
$this->equipo = $equipo;
return $this;
}
public function getFechaProximaRealizacion(): ?\DateTimeInterface
{
return $this->fechaProximaRealizacion;
}
public function setFechaProximaRealizacion(?\DateTimeInterface $fechaProximaRealizacion): self
{
$this->fechaProximaRealizacion = $fechaProximaRealizacion;
return $this;
}
public function getDepartamento(): ?Departamento
{
return $this->departamento;
}
public function setDepartamento(?Departamento $departamento): self
{
$this->departamento = $departamento;
return $this;
}
/**
* @return Collection<int, TareaPlanDiagramada>
*/
public function getTareasDiagramadas(): Collection
{
return $this->tareasDiagramadas;
}
public function addTareasDiagramada(TareaPlanDiagramada $tareasDiagramada): self
{
if (!$this->tareasDiagramadas->contains($tareasDiagramada)) {
$this->tareasDiagramadas[] = $tareasDiagramada;
$tareasDiagramada->setPlanMantenimientoDiagramado($this);
}
return $this;
}
public function removeTareasDiagramada(TareaPlanDiagramada $tareasDiagramada): self
{
if ($this->tareasDiagramadas->removeElement($tareasDiagramada)) {
// set the owning side to null (unless already changed)
if ($tareasDiagramada->getPlanMantenimientoDiagramado() === $this) {
$tareasDiagramada->setPlanMantenimientoDiagramado(null);
}
}
return $this;
}
}