<?php
namespace App\Entity\Mantenimiento;
use App\Repository\Mantenimiento\PedidoReparacionRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use App\Entity\User;
use App\Entity\Equipos\Maquinaria;
use App\Entity\Mantenimiento\Preventivo\TareaPlanDiagramada;
use App\Entity\RRHH\Empleado;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=PedidoReparacionRepository::class)
* @ORM\Table(name="mant_pedido_reparacion")
* @ORM\HasLifecycleCallbacks()
*/
class PedidoReparacion
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(name="fecha_carga", type="datetime")
*/
private $fecha = null;
/**
* @ORM\Column(name="fecha_diagrama", type="datetime", nullable=true)
*/
private $fechaDiagramacion;
/**
* @ORM\Column(type="text")
* @Assert\NotNull(message="El campo es requerido")
*/
private $detalle;
/**
* @ORM\Column(type="boolean")
*/
private $diagramada = false;
/**
* @ORM\Column(type="boolean")
*/
private $realizada = false;
/**
* @ORM\OneToMany(targetEntity=PedidoReparacionDiagramado::class, mappedBy="pedido")
*/
private $pedidosDiagramados;
/**
* @ORM\ManyToOne(targetEntity=SectorPlanta::class)
* @ORM\JoinColumn(name="id_sector", referencedColumnName="id", nullable=true)
* @Assert\NotNull(message="El campo es requerido")
*/
private $sector;
/**
* @ORM\ManyToOne(targetEntity=TipoReparacion::class)
* @ORM\JoinColumn(name="id_tipo", referencedColumnName="id", nullable=true)
* @Assert\NotNull(message="El campo es requerido")
*/
private $tipo;
/**
* @ORM\ManyToOne(targetEntity=Maquinaria::class)
* @ORM\JoinColumn(name="id_equipo", referencedColumnName="id", nullable=true)
*/
private $equipo;
/**
* @ORM\ManyToOne(targetEntity=User::class)
* @ORM\JoinColumn(name="id_user_alta", referencedColumnName="id", nullable=true)
*/
private $usuarioAlta;
/**
* @ORM\ManyToOne(targetEntity=TareaPlanDiagramada::class)
* @ORM\JoinColumn(name="id_tarea_plan", referencedColumnName="id", nullable=true)
*/
private $tareaPlanDiagramada;
/**
* @ORM\ManyToOne(targetEntity=Departamento::class)
* @ORM\JoinColumn(name="id_depto", referencedColumnName="id", nullable=true)
* @Assert\NotNull(message="El campo es requerido")
*/
private $departamento;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $nombreArchivoImagen; // Nuevo campo
// ... (resto de campos y constructores)
/**
* @return string|null
*/
public function getNombreArchivoImagen(): ?string
{
return $this->nombreArchivoImagen;
}
/**
* @param string|null $nombreArchivoImagen
* @return $this
*/
public function setNombreArchivoImagen(?string $nombreArchivoImagen): self
{
$this->nombreArchivoImagen = $nombreArchivoImagen;
return $this;
}
public function __construct()
{
$this->pedidosDiagramados = new ArrayCollection();
}
/**
* @ORM\PrePersist
*/
public function setCreatedAtValue()
{
if (!$this->fecha)
{
$this->fecha = new \DateTimeImmutable();
}
}
public function getId(): ?int
{
return $this->id;
}
public function getFecha(): ?\DateTimeInterface
{
return $this->fecha;
}
public function setFecha(\DateTimeInterface $fecha): self
{
$this->fecha = $fecha;
return $this;
}
public function getFechaDiagramacion(): ?\DateTimeInterface
{
return $this->fechaDiagramacion;
}
public function setFechaDiagramacion(?\DateTimeInterface $fechaDiagramacion): self
{
$this->fechaDiagramacion = $fechaDiagramacion;
return $this;
}
public function getDetalle(): ?string
{
return $this->detalle;
}
public function setDetalle(string $detalle): self
{
$this->detalle = $detalle;
return $this;
}
public function isDiagramada(): ?bool
{
return $this->diagramada;
}
public function setDiagramada(bool $diagramada): self
{
$this->diagramada = $diagramada;
return $this;
}
public function isRealizada(): ?bool
{
return $this->realizada;
}
public function setRealizada(bool $realizada): self
{
$this->realizada = $realizada;
return $this;
}
public function getSector(): ?SectorPlanta
{
return $this->sector;
}
public function setSector(?SectorPlanta $sector): self
{
$this->sector = $sector;
return $this;
}
public function getEquipo(): ?Maquinaria
{
return $this->equipo;
}
public function setEquipo(?Maquinaria $equipo): self
{
$this->equipo = $equipo;
return $this;
}
public function getUsuarioAlta(): ?User
{
return $this->usuarioAlta;
}
public function setUsuarioAlta(?User $usuarioAlta): self
{
$this->usuarioAlta = $usuarioAlta;
return $this;
}
public function getTipo(): ?TipoReparacion
{
return $this->tipo;
}
public function setTipo(?TipoReparacion $tipo): self
{
$this->tipo = $tipo;
return $this;
}
public function getTareaPlanDiagramada(): ?TareaPlanDiagramada
{
return $this->tareaPlanDiagramada;
}
public function setTareaPlanDiagramada(?TareaPlanDiagramada $tareaPlanDiagramada): self
{
$this->tareaPlanDiagramada = $tareaPlanDiagramada;
return $this;
}
public function getDepartamento(): ?Departamento
{
return $this->departamento;
}
public function setDepartamento(?Departamento $departamento): self
{
$this->departamento = $departamento;
return $this;
}
/**
* @return Collection<int, PedidoReparacionDiagramado>
*/
public function getPedidosDiagramados(): Collection
{
return $this->pedidosDiagramados;
}
public function addPedidosDiagramado(PedidoReparacionDiagramado $pedidosDiagramado): self
{
if (!$this->pedidosDiagramados->contains($pedidosDiagramado)) {
$this->pedidosDiagramados[] = $pedidosDiagramado;
$pedidosDiagramado->setPedido($this);
}
return $this;
}
public function removePedidosDiagramado(PedidoReparacionDiagramado $pedidosDiagramado): self
{
if ($this->pedidosDiagramados->removeElement($pedidosDiagramado)) {
// set the owning side to null (unless already changed)
if ($pedidosDiagramado->getPedido() === $this) {
$pedidosDiagramado->setPedido(null);
}
}
return $this;
}
}