<?php
namespace App\Entity;
use App\Repository\RFSolicitudCompraRepository;
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_solicitud_compra')]
#[ORM\Entity(repositoryClass: RFSolicitudCompraRepository::class)]
class RFSolicitudCompra {
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\ManyToOne(inversedBy: 'solicitudesCompra')]
private ?TerPersona $solicitante = null;
#[ORM\ManyToOne(inversedBy: 'solicitudCompras')]
private ?ParProceso $proceso = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaSolicitud = null;
#[ORM\ManyToOne(inversedBy: 'solicitudCompras')]
private ?TerEmpresa $empresaFilial = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $proveedorSugerido = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $createAt = null;
#[ORM\Column(length: 50)]
private ?string $createUser = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $updateAt = null;
#[ORM\Column(length: 50)]
private ?string $updateUser = null;
#[ORM\ManyToOne]
private ?ParEstado $estado = null;
#[ORM\ManyToOne(inversedBy: 'solicitudCompras')]
private ?ParTipoCompra $tipoCompra = null;
#[ORM\ManyToOne(inversedBy: 'solicitudCompras')]
private ?ParResultadoRevisionCompra $resultadoRevision = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionRevision = null;
#[ORM\ManyToOne(inversedBy: 'aprobacionSolicitudCompra')]
private ?TerPersona $usuarioAprobacion = null;
#[ORM\Column(nullable: true)]
private ?bool $aprobacion = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionAprobacion = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaSugerida = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $comentarios = null;
#[ORM\Column(nullable: true)]
private ?float $valorEjecutado = null;
#[ORM\OneToMany(mappedBy: 'solicitudCompraE', targetEntity: RFOrdenCompra::class)]
private Collection $ordenCompra;
#[ORM\OneToMany(mappedBy: 'solicitudCompra', targetEntity: RFSolicitudCompraItem::class)]
private Collection $solicitudCompraItem;
#[ORM\Column(nullable: true)]
private ?float $total = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionTotal = null;
#[ORM\Column(nullable: true)]
private ?float $valorTotal = null;
#[ORM\OneToMany(mappedBy: 'solicitudCompra', targetEntity: RFSolicitudCompraCotizacion::class)]
private Collection $solicitudCompraCotizaciones;
#[ORM\Column(nullable: true)]
private ?float $valorCajaMenor = null;
#[ORM\OneToMany(mappedBy: 'solicitudCompra', targetEntity: RFSolicitudCompraArchivo::class)]
private Collection $solicitudCompraArchivos;
#[ORM\Column(length: 255, nullable: true)]
private ?string $opciones = null;
public function __toString(): string {
return $this->getId();
}
public function __construct() {
$this->ordenCompra = new ArrayCollection();
$this->solicitudCompraItem = new ArrayCollection();
$this->solicitudCompraCotizaciones = new ArrayCollection();
$this->solicitudCompraArchivos = new ArrayCollection();
}
public function getId(): ?int {
return $this->id;
}
public function getSolicitante(): ?TerPersona {
return $this->solicitante;
}
public function setSolicitante(?TerPersona $solicitante): static {
$this->solicitante = $solicitante;
return $this;
}
public function getProceso(): ?ParProceso {
return $this->proceso;
}
public function setProceso(?ParProceso $proceso): static {
$this->proceso = $proceso;
return $this;
}
public function getFechaSolicitud(): ?\DateTimeInterface {
return $this->fechaSolicitud;
}
public function setFechaSolicitud(?\DateTimeInterface $fechaSolicitud): static {
$this->fechaSolicitud = $fechaSolicitud;
return $this;
}
public function getEmpresaFilial(): ?TerEmpresa {
return $this->empresaFilial;
}
public function setEmpresaFilial(?TerEmpresa $empresaFilial): static {
$this->empresaFilial = $empresaFilial;
return $this;
}
public function getProveedorSugerido(): ?string {
return $this->proveedorSugerido;
}
public function setProveedorSugerido(?string $proveedorSugerido): static {
$this->proveedorSugerido = $proveedorSugerido;
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 getEstado(): ?ParEstado {
return $this->estado;
}
public function setEstado(?ParEstado $estado): static {
$this->estado = $estado;
return $this;
}
public function getTipoCompra(): ?ParTipoCompra {
return $this->tipoCompra;
}
public function setTipoCompra(?ParTipoCompra $tipoCompra): static {
$this->tipoCompra = $tipoCompra;
return $this;
}
public function getResultadoRevision(): ?ParResultadoRevisionCompra {
return $this->resultadoRevision;
}
public function setResultadoRevision(?ParResultadoRevisionCompra $resultadoRevision): static {
$this->resultadoRevision = $resultadoRevision;
return $this;
}
public function getObservacionRevision(): ?string {
return $this->observacionRevision;
}
public function setObservacionRevision(?string $observacionRevision): static {
$this->observacionRevision = $observacionRevision;
return $this;
}
public function getUsuarioAprobacion(): ?TerPersona {
return $this->usuarioAprobacion;
}
public function setUsuarioAprobacion(?TerPersona $usuarioAprobacion): static {
$this->usuarioAprobacion = $usuarioAprobacion;
return $this;
}
public function isAprobacion(): ?bool {
return $this->aprobacion;
}
public function setAprobacion(?bool $aprobacion): static {
$this->aprobacion = $aprobacion;
return $this;
}
public function getObservacionAprobacion(): ?string {
return $this->observacionAprobacion;
}
public function setObservacionAprobacion(?string $observacionAprobacion): static {
$this->observacionAprobacion = $observacionAprobacion;
return $this;
}
public function getFechaSugerida(): ?\DateTimeInterface {
return $this->fechaSugerida;
}
public function setFechaSugerida(?\DateTimeInterface $fechaSugerida): static {
$this->fechaSugerida = $fechaSugerida;
return $this;
}
public function getComentarios(): ?string {
return $this->comentarios;
}
public function setComentarios(?string $comentarios): static {
$this->comentarios = $comentarios;
return $this;
}
public function getValorEjecutado(): ?float {
return $this->valorEjecutado;
}
public function setValorEjecutado(?float $valorEjecutado): static {
$this->valorEjecutado = $valorEjecutado;
return $this;
}
/**
* @return Collection<int, RFOrdenCompra>
*/
public function getOrdenCompra(): Collection {
return $this->ordenCompra;
}
public function addOrdenCompra(RFOrdenCompra $ordenCompra): static {
if (!$this->ordenCompra->contains($ordenCompra)) {
$this->ordenCompra->add($ordenCompra);
$ordenCompra->setSolicitudCompraE($this);
}
return $this;
}
public function removeOrdenCompra(RFOrdenCompra $ordenCompra): static {
if ($this->ordenCompra->removeElement($ordenCompra)) {
// set the owning side to null (unless already changed)
if ($ordenCompra->getSolicitudCompraE() === $this) {
$ordenCompra->setSolicitudCompraE(null);
}
}
return $this;
}
/**
* @return Collection<int, RFSolicitudCompraItem>
*/
public function getSolicitudCompraItem(): Collection {
return $this->solicitudCompraItem;
}
public function addSolicitudCompraItem(RFSolicitudCompraItem $solicitudCompraItem): static {
if (!$this->solicitudCompraItem->contains($solicitudCompraItem)) {
$this->solicitudCompraItem->add($solicitudCompraItem);
$solicitudCompraItem->setSolicitudCompra($this);
}
return $this;
}
public function removeSolicitudCompraItem(RFSolicitudCompraItem $solicitudCompraItem): static {
if ($this->solicitudCompraItem->removeElement($solicitudCompraItem)) {
// set the owning side to null (unless already changed)
if ($solicitudCompraItem->getSolicitudCompra() === $this) {
$solicitudCompraItem->setSolicitudCompra(null);
}
}
return $this;
}
public function getTotal(): ?float {
return $this->total;
}
public function setTotal(?float $total): static {
$this->total = $total;
return $this;
}
public function getObservacionTotal(): ?string {
return $this->observacionTotal;
}
public function setObservacionTotal(?string $observacionTotal): static {
$this->observacionTotal = $observacionTotal;
return $this;
}
public function getValorTotal(): ?float {
return $this->valorTotal;
}
public function setValorTotal(?float $valorTotal): static {
$this->valorTotal = $valorTotal;
return $this;
}
/**
* @return Collection<int, RFSolicitudCompraCotizacion>
*/
public function getSolicitudCompraCotizaciones(): Collection {
return $this->solicitudCompraCotizaciones;
}
public function addSolicitudCompraCotizacione(RFSolicitudCompraCotizacion $solicitudCompraCotizacione): static {
if (!$this->solicitudCompraCotizaciones->contains($solicitudCompraCotizacione)) {
$this->solicitudCompraCotizaciones->add($solicitudCompraCotizacione);
$solicitudCompraCotizacione->setSolicitudCompra($this);
}
return $this;
}
public function removeSolicitudCompraCotizacione(RFSolicitudCompraCotizacion $solicitudCompraCotizacione): static {
if ($this->solicitudCompraCotizaciones->removeElement($solicitudCompraCotizacione)) {
// set the owning side to null (unless already changed)
if ($solicitudCompraCotizacione->getSolicitudCompra() === $this) {
$solicitudCompraCotizacione->setSolicitudCompra(null);
}
}
return $this;
}
public function getValorCajaMenor(): ?float {
return $this->valorCajaMenor;
}
public function setValorCajaMenor(?float $valorCajaMenor): static {
$this->valorCajaMenor = $valorCajaMenor;
return $this;
}
/**
* @return Collection<int, RFSolicitudCompraArchivo>
*/
public function getSolicitudCompraArchivos(): Collection
{
return $this->solicitudCompraArchivos;
}
public function addSolicitudCompraArchivo(RFSolicitudCompraArchivo $solicitudCompraArchivo): static
{
if (!$this->solicitudCompraArchivos->contains($solicitudCompraArchivo)) {
$this->solicitudCompraArchivos->add($solicitudCompraArchivo);
$solicitudCompraArchivo->setSolicitudCompra($this);
}
return $this;
}
public function removeSolicitudCompraArchivo(RFSolicitudCompraArchivo $solicitudCompraArchivo): static
{
if ($this->solicitudCompraArchivos->removeElement($solicitudCompraArchivo)) {
// set the owning side to null (unless already changed)
if ($solicitudCompraArchivo->getSolicitudCompra() === $this) {
$solicitudCompraArchivo->setSolicitudCompra(null);
}
}
return $this;
}
public function getOpciones(): ?string
{
return $this->opciones;
}
public function setOpciones(?string $opciones): static
{
$this->opciones = $opciones;
return $this;
}
}