<?php
namespace App\Entity\Movimientos;
use App\Repository\Movimientos\OrdenReparacionExternaRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use App\Entity\Equipos\Maquinaria;
/**
* @ORM\Entity(repositoryClass=OrdenReparacionExternaRepository::class)
*/
class OrdenReparacionExterna extends MovimientoStock
{
/**
* @ORM\ManyToOne(targetEntity=Proveedor::class)
* @ORM\JoinColumn(name="id_proveedor_externo", referencedColumnName="id", nullable=true)
* @Assert\NotNull(message="El campo es requerido")
*/
private $proveedorExterno;
/**
* @ORM\ManyToMany(targetEntity=Maquinaria::class)
* @ORM\JoinTable(name="mov_equipos_por_orden_externa",
* joinColumns={@ORM\JoinColumn(name="id_orden", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="id_equipo", referencedColumnName="id")}
* )
*/
private $equipos;
public function getDescripcion()
{
return "Orden Reparacion Externa";
}
public function setIsDevuelta($flag, $fecha)
{
$this->setFinalizoCircuito(true)
->setYaProcesada(true);
}
public function getIsDevuelta()
{
return $this->isFinalizoCircuito();
}
public function __construct()
{
parent::__construct();
$this->equipos = new ArrayCollection();
}
public static function isToolArticle()
{
return [false, true];
}
public function getInstance()
{
return "ore";
}
public function getProveedorExterno(): ?Proveedor
{
return $this->proveedorExterno;
}
public function getDetalle()
{
$detalle = array(
"Orden Reparacion Externa",
"NÂș: " . str_pad($this->getNumero(), 6, '0', STR_PAD_LEFT),
"Fecha " . $this->getFecha()->format('d/m/Y'),
"Responsable: " . $this->proveedorExterno,
"Deposito: " . $this->getDeposito()
);
return $detalle;
}
public function setProveedorExterno(?Proveedor $proveedorExterno): self
{
$this->proveedorExterno = $proveedorExterno;
return $this;
}
public function getFinalizable()
{
return true;
}
/**
* @return Collection<int, Maquinaria>
*/
public function getEquipos(): Collection
{
return $this->equipos;
}
public function addEquipo(Maquinaria $equipo): self
{
if (!$this->equipos->contains($equipo)) {
$this->equipos[] = $equipo;
}
return $this;
}
public function removeEquipo(Maquinaria $equipo): self
{
$this->equipos->removeElement($equipo);
return $this;
}
}