<?php
namespace App\Entity;
use App\Repository\RFDiligenciaRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Table(name: 'rf_diligencia')]
#[ORM\Entity(repositoryClass: RFDiligenciaRepository::class)]
class RFDiligencia
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $fechaSolicitud = null;
#[ORM\ManyToOne(inversedBy: 'solicitaDiligencia')]
private ?TerPersona $personaSolicita = null;
#[ORM\ManyToOne(inversedBy: 'diligencia')]
private ?ParTipoDiligencia $tipoDiligencia = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $fechaDiligencia = null;
#[ORM\ManyToOne(inversedBy: 'diligencia')]
private ?ParHorarioDiligencia $horarioDiligencia = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $empresaDestino = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $direccionDestino = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $informacionAdicional = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $contactoDestino = null;
#[ORM\Column(length: 50, nullable: true)]
private ?string $telefonoContacto = null;
#[ORM\ManyToOne(inversedBy: 'diligenciaComex')]
private ?TerPersona $auxiliarComex = null;
#[ORM\Column(nullable: true)]
private ?int $numeroNotaria = null;
#[ORM\Column(type: Types::TEXT)]
private ?string $observaciones = null;
#[ORM\Column(nullable: true)]
private ?bool $dependiente = null;
#[ORM\Column(nullable: true)]
private ?int $diligenciaPadre = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $createAt = null;
#[ORM\Column(length: 255)]
private ?string $createUser = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $updateAt = null;
#[ORM\Column(length: 255)]
private ?string $updateUser = null;
#[ORM\Column(nullable: true)]
private ?bool $autorizacion = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaAutorizacion = null;
#[ORM\ManyToOne(inversedBy: 'autorizaDiligencia')]
private ?TerPersona $usuarioAutoriza = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionAutorizacion = null;
#[ORM\ManyToOne(inversedBy: 'diligencia')]
private ?ParZonaDiligencia $zonaDiligencia = null;
#[ORM\ManyToOne(inversedBy: 'diligenciaAsignada')]
private ?TerPersona $mensajero = null;
#[ORM\Column(nullable: true)]
private ?int $orden = null;
#[ORM\ManyToOne(inversedBy: 'diligencia')]
private ?ParResultadoDiligencia $resultado = null;
#[ORM\ManyToOne(inversedBy: 'diligencia')]
private ?ParNovedadDiligencia $novedad = null;
#[ORM\Column(nullable: true)]
private ?string $quienRecibe = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $firmaRecibido = null;
#[ORM\Column(nullable: true)]
private ?bool $soporteDiligenciaCerrada = null;
#[ORM\Column(type: Types::DECIMAL, precision: 12, scale: 2, nullable: true)]
private ?string $costoNoCalidad = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $firmaSolicitante = null;
#[ORM\ManyToOne(inversedBy: 'diligencia')]
private ?ParEstado $estado = null;
#[ORM\OneToMany(mappedBy: 'diligencia', targetEntity: RFDiligenciaEvidenciaEntrega::class)]
private Collection $evidenciaEntrega;
#[ORM\OneToMany(mappedBy: 'diligencia', targetEntity: RFDiligenciaDocumento::class)]
private Collection $diligenciaDocumento;
#[ORM\ManyToOne(inversedBy: 'cancelaDiligencia')]
private ?TerPersona $autorizaCancelacion = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $motivoCancelacion = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionCierre = null;
#[ORM\ManyToOne(inversedBy: 'diligencias')]
private ?ParDescripcionDiligencia $descripcionDiligencia = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionEntrega = null;
#[ORM\Column(nullable: true)]
private ?bool $ejecutado = null;
#[ORM\Column(nullable: true)]
private ?bool $zonaFranca = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $archivSoporteDili = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $correoContaDestino = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $direccionDestinoZF = null;
public function __construct()
{
$this->evidenciaEntrega = new ArrayCollection();
$this->diligenciaDocumento = new ArrayCollection();
}
public function __toString() {
// Se muestra fechaDiligencia (no fechaSolicitud) según lo solicitado en ticket #49.1.
// La dirección visible depende de si es Zona Franca: si ZF=SI se usa direccionDestinoZF,
// si ZF=NO se usa direccionDestino.
$direccion = $this->isZonaFranca() ? $this->getDireccionDestinoZF() : $this->getDireccionDestino();
return "{$this->getTipoDiligencia()?->getNombre()} {$this->getFechaDiligencia()?->format('Y-m-d')} {$this->getHorarioDiligencia()?->getNombre()} {$direccion} {$this->getPersonaSolicita()?->getNombres()} {$this->getEstado()?->getNombre() }";
}
public function getId(): ?int
{
return $this->id;
}
public function getFechaSolicitud(): ?\DateTimeInterface
{
return $this->fechaSolicitud;
}
public function setFechaSolicitud(\DateTimeInterface $fechaSolicitud): static
{
$this->fechaSolicitud = $fechaSolicitud;
return $this;
}
public function getPersonaSolicita(): ?TerPersona
{
return $this->personaSolicita;
}
public function setPersonaSolicita(?TerPersona $personaSolicita): static
{
$this->personaSolicita = $personaSolicita;
return $this;
}
public function getTipoDiligencia(): ?ParTipoDiligencia
{
return $this->tipoDiligencia;
}
public function setTipoDiligencia(?ParTipoDiligencia $tipoDiligencia): static
{
$this->tipoDiligencia = $tipoDiligencia;
return $this;
}
public function getFechaDiligencia(): ?\DateTimeInterface
{
return $this->fechaDiligencia;
}
public function setFechaDiligencia(?\DateTimeInterface $fechaDiligencia): static
{
$this->fechaDiligencia = $fechaDiligencia;
return $this;
}
public function getHorarioDiligencia(): ?ParHorarioDiligencia
{
return $this->horarioDiligencia;
}
public function setHorarioDiligencia(?ParHorarioDiligencia $horarioDiligencia): static
{
$this->horarioDiligencia = $horarioDiligencia;
return $this;
}
public function getEmpresaDestino(): ?string
{
return $this->empresaDestino;
}
public function setEmpresaDestino(?string $empresaDestino): static
{
$this->empresaDestino = $empresaDestino;
return $this;
}
public function getDireccionDestino(): ?string
{
return $this->direccionDestino;
}
public function setDireccionDestino(?string $direccionDestino): static
{
$this->direccionDestino = $direccionDestino;
return $this;
}
public function getInformacionAdicional(): ?string
{
return $this->informacionAdicional;
}
public function setInformacionAdicional(?string $informacionAdicional): static
{
$this->informacionAdicional = $informacionAdicional;
return $this;
}
public function getContactoDestino(): ?string
{
return $this->contactoDestino;
}
public function setContactoDestino(?string $contactoDestino): static
{
$this->contactoDestino = $contactoDestino;
return $this;
}
public function getTelefonoContacto(): ?string
{
return $this->telefonoContacto;
}
public function setTelefonoContacto(?string $telefonoContacto): static
{
$this->telefonoContacto = $telefonoContacto;
return $this;
}
public function getAuxiliarComex(): ?TerPersona
{
return $this->auxiliarComex;
}
public function setAuxiliarComex(?TerPersona $auxiliarComex): static
{
$this->auxiliarComex = $auxiliarComex;
return $this;
}
public function getNumeroNotaria(): ?int
{
return $this->numeroNotaria;
}
public function setNumeroNotaria(?int $numeroNotaria): static
{
$this->numeroNotaria = $numeroNotaria;
return $this;
}
public function getObservaciones(): ?string
{
return $this->observaciones;
}
public function setObservaciones(?string $observaciones): static
{
$this->observaciones = $observaciones;
return $this;
}
public function isDependiente(): ?bool
{
return $this->dependiente;
}
public function setDependiente(?bool $dependiente): static
{
$this->dependiente = $dependiente;
return $this;
}
public function getDiligenciaPadre(): ?int
{
return $this->diligenciaPadre;
}
public function setDiligenciaPadre(?int $diligenciaPadre): static
{
$this->diligenciaPadre = $diligenciaPadre;
return $this;
}
public function getCreateAt(): ?\DateTimeInterface
{
return $this->createAt;
}
public function setCreateAt(\DateTimeInterface $createAt): static
{
$this->createAt = $createAt;
return $this;
}
public function getCreateUser(): ?string
{
return $this->createUser;
}
public function setCreateUser(string $createUser): static
{
$this->createUser = $createUser;
return $this;
}
public function getUpdateAt(): ?\DateTimeInterface
{
return $this->updateAt;
}
public function setUpdateAt(\DateTimeInterface $updateAt): static
{
$this->updateAt = $updateAt;
return $this;
}
public function getUpdateUser(): ?string
{
return $this->updateUser;
}
public function setUpdateUser(string $updateUser): static
{
$this->updateUser = $updateUser;
return $this;
}
public function isAutorizacion(): ?bool
{
return $this->autorizacion;
}
public function setAutorizacion(?bool $autorizacion): static
{
$this->autorizacion = $autorizacion;
return $this;
}
public function getFechaAutorizacion(): ?\DateTimeInterface
{
return $this->fechaAutorizacion;
}
public function setFechaAutorizacion(?\DateTimeInterface $fechaAutorizacion): static
{
$this->fechaAutorizacion = $fechaAutorizacion;
return $this;
}
public function getUsuarioAutoriza(): ?TerPersona
{
return $this->usuarioAutoriza;
}
public function setUsuarioAutoriza(?TerPersona $usuarioAutoriza): static
{
$this->usuarioAutoriza = $usuarioAutoriza;
return $this;
}
public function getObservacionAutorizacion(): ?string
{
return $this->observacionAutorizacion;
}
public function setObservacionAutorizacion(?string $observacionAutorizacion): static
{
$this->observacionAutorizacion = $observacionAutorizacion;
return $this;
}
public function getZonaDiligencia(): ?ParZonaDiligencia
{
return $this->zonaDiligencia;
}
public function setZonaDiligencia(?ParZonaDiligencia $zonaDiligencia): static
{
$this->zonaDiligencia = $zonaDiligencia;
return $this;
}
public function getMensajero(): ?TerPersona
{
return $this->mensajero;
}
public function setMensajero(?TerPersona $mensajero): static
{
$this->mensajero = $mensajero;
return $this;
}
public function getOrden(): ?int
{
return $this->orden;
}
public function setOrden(?int $orden): static
{
$this->orden = $orden;
return $this;
}
public function getResultado(): ?ParResultadoDiligencia
{
return $this->resultado;
}
public function setResultado(?ParResultadoDiligencia $resultado): static
{
$this->resultado = $resultado;
return $this;
}
public function getNovedad(): ?ParNovedadDiligencia
{
return $this->novedad;
}
public function setNovedad(?ParNovedadDiligencia $novedad): static
{
$this->novedad = $novedad;
return $this;
}
public function getQuienRecibe(): ?string
{
return $this->quienRecibe;
}
public function setQuienRecibe(?string $quienRecibe): static
{
$this->quienRecibe = $quienRecibe;
return $this;
}
public function getFirmaRecibido(): ?string
{
return $this->firmaRecibido;
}
public function setFirmaRecibido(?string $firmaRecibido): static
{
$this->firmaRecibido = $firmaRecibido;
return $this;
}
public function isSoporteDiligenciaCerrada(): ?bool
{
return $this->soporteDiligenciaCerrada;
}
public function setSoporteDiligenciaCerrada(?bool $soporteDiligenciaCerrada): static
{
$this->soporteDiligenciaCerrada = $soporteDiligenciaCerrada;
return $this;
}
public function getCostoNoCalidad(): ?string
{
return $this->costoNoCalidad;
}
public function setCostoNoCalidad(?string $costoNoCalidad): static
{
$this->costoNoCalidad = $costoNoCalidad;
return $this;
}
public function getFirmaSolicitante(): ?string
{
return $this->firmaSolicitante;
}
public function setFirmaSolicitante(?string $firmaSolicitante): static
{
$this->firmaSolicitante = $firmaSolicitante;
return $this;
}
public function getEstado(): ?ParEstado
{
return $this->estado;
}
public function setEstado(?ParEstado $estado): static
{
$this->estado = $estado;
return $this;
}
/**
* @return Collection<int, RFDiligenciaEvidenciaEntrega>
*/
public function getEvidenciaEntrega(): Collection
{
return $this->evidenciaEntrega;
}
public function addEvidenciaEntrega(RFDiligenciaEvidenciaEntrega $evidenciaEntrega): static
{
if (!$this->evidenciaEntrega->contains($evidenciaEntrega)) {
$this->evidenciaEntrega->add($evidenciaEntrega);
$evidenciaEntrega->setRFDiligencia($this);
}
return $this;
}
public function removeEvidenciaEntrega(RFDiligenciaEvidenciaEntrega $evidenciaEntrega): static
{
if ($this->evidenciaEntrega->removeElement($evidenciaEntrega)) {
// set the owning side to null (unless already changed)
if ($evidenciaEntrega->getRFDiligencia() === $this) {
$evidenciaEntrega->setRFDiligencia(null);
}
}
return $this;
}
/**
* @return Collection<int, RFDiligenciaDocumento>
*/
public function getDiligenciaDocumento(): Collection
{
return $this->diligenciaDocumento;
}
public function addDiligenciaDocumento(RFDiligenciaDocumento $diligenciaDocumento): static
{
if (!$this->diligenciaDocumento->contains($diligenciaDocumento)) {
$this->diligenciaDocumento->add($diligenciaDocumento);
$diligenciaDocumento->setRFDiligencia($this);
}
return $this;
}
public function removeDiligenciaDocumento(RFDiligenciaDocumento $diligenciaDocumento): static
{
if ($this->diligenciaDocumento->removeElement($diligenciaDocumento)) {
// set the owning side to null (unless already changed)
if ($diligenciaDocumento->getRFDiligencia() === $this) {
$diligenciaDocumento->setRFDiligencia(null);
}
}
return $this;
}
public function getAutorizaCancelacion(): ?TerPersona
{
return $this->autorizaCancelacion;
}
public function setAutorizaCancelacion(?TerPersona $autorizaCancelacion): static
{
$this->autorizaCancelacion = $autorizaCancelacion;
return $this;
}
public function getMotivoCancelacion(): ?string
{
return $this->motivoCancelacion;
}
public function setMotivoCancelacion(?string $motivoCancelacion): static
{
$this->motivoCancelacion = $motivoCancelacion;
return $this;
}
public function getObservacionCierre(): ?string
{
return $this->observacionCierre;
}
public function setObservacionCierre(?string $observacionCierre): static
{
$this->observacionCierre = $observacionCierre;
return $this;
}
public function getDescripcionDiligencia(): ?ParDescripcionDiligencia
{
return $this->descripcionDiligencia;
}
public function setDescripcionDiligencia(?ParDescripcionDiligencia $descripcionDiligencia): static
{
$this->descripcionDiligencia = $descripcionDiligencia;
return $this;
}
public function getObservacionEntrega(): ?string
{
return $this->observacionEntrega;
}
public function setObservacionEntrega(?string $observacionEntrega): static
{
$this->observacionEntrega = $observacionEntrega;
return $this;
}
public function isEjecutado(): ?bool
{
return $this->ejecutado;
}
public function setEjecutado(?bool $ejecutado): static
{
$this->ejecutado = $ejecutado;
return $this;
}
public function isZonaFranca(): ?bool
{
return $this->zonaFranca;
}
public function setZonaFranca(?bool $zonaFranca): static
{
$this->zonaFranca = $zonaFranca;
return $this;
}
public function getArchivSoporteDili(): ?string
{
return $this->archivSoporteDili;
}
public function setArchivSoporteDili(?string $archivSoporteDili): static
{
$this->archivSoporteDili = $archivSoporteDili;
return $this;
}
public function getCorreoContaDestino(): ?string
{
return $this->correoContaDestino;
}
public function setCorreoContaDestino(?string $correoContaDestino): static
{
$this->correoContaDestino = $correoContaDestino;
return $this;
}
public function getDireccionDestinoZF(): ?string
{
return $this->direccionDestinoZF;
}
public function setDireccionDestinoZF(?string $direccionDestinoZF): static
{
$this->direccionDestinoZF = $direccionDestinoZF;
return $this;
}
}