<?php
namespace App\Entity;
use App\Repository\RFOrdenCompraRepository;
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_orden_compra')]
#[ORM\Entity(repositoryClass: RFOrdenCompraRepository::class)]
class RFOrdenCompra
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private ?string $codigo = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE)]
private ?\DateTimeInterface $fecha = null;
#[ORM\Column(nullable: true)]
private ?bool $solicitudCompra = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?RFSolicitudCompra $solicitudCompraE = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?ParProceso $proceso = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?TerProveedor $proveedor = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $cotizacion = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?ParFormaPago $formaPago = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?TerSedeEmpresa $sede = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $direccionEntrega = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $otrasCondiciones = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $elaboradoPor = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionAdicional = 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(inversedBy: 'ordenCompra')]
private ?ParEstado $estado = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaRecepcion = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionRecepcion = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaEntrega = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionEntrega = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $numeroFactura = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $factura = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaFacturaElectronica = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $observacionesFactura = null;
#[ORM\OneToMany(mappedBy: 'ordenCompra', targetEntity: RFOrdenCompraItem::class)]
private Collection $ordenCompraItems;
#[ORM\Column(nullable: true)]
private ?float $total = null;
#[ORM\Column(nullable: true)]
private ?float $totalImpuestos = null;
#[ORM\Column(nullable: true)]
private ?float $subTotal = null;
#[ORM\ManyToOne(inversedBy: 'ordenesCompra')]
private ?TerEmpresa $empresaFilial = null;
#[ORM\Column(length: 255)]
private ?string $correoFacturacion = null;
#[ORM\ManyToOne(inversedBy: 'solicitanteOrdenCompra')]
private ?TerPersona $solicitante = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?ParResultadoEntrega $resultadoEntrega = null;
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
private ?\DateTimeInterface $fechaEntregaReal = null;
#[ORM\ManyToOne(inversedBy: 'ordenCompra')]
private ?ParAccionNovedad $accionNovedad = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $comentarios = null;
public function __construct()
{
$this->ordenCompraItems = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getCodigo(): ?string
{
return $this->codigo;
}
public function setCodigo(string $codigo): static
{
$this->codigo = $codigo;
return $this;
}
public function getFecha(): ?\DateTimeInterface
{
return $this->fecha;
}
public function setFecha(\DateTimeInterface $fecha): static
{
$this->fecha = $fecha;
return $this;
}
public function isSolicitudCompra(): ?bool
{
return $this->solicitudCompra;
}
public function setSolicitudCompra(?bool $solicitudCompra): static
{
$this->solicitudCompra = $solicitudCompra;
return $this;
}
public function getSolicitudCompraE(): ?RFSolicitudCompra
{
return $this->solicitudCompraE;
}
public function setSolicitudCompraE(?RFSolicitudCompra $solicitudCompraE): static
{
$this->solicitudCompraE = $solicitudCompraE;
return $this;
}
public function getProceso(): ?ParProceso
{
return $this->proceso;
}
public function setProceso(?ParProceso $proceso): static
{
$this->proceso = $proceso;
return $this;
}
public function getProveedor(): ?TerProveedor
{
return $this->proveedor;
}
public function setProveedor(?TerProveedor $proveedor): static
{
$this->proveedor = $proveedor;
return $this;
}
public function getCotizacion(): ?string
{
return $this->cotizacion;
}
public function setCotizacion(?string $cotizacion): static
{
$this->cotizacion = $cotizacion;
return $this;
}
public function getFormaPago(): ?ParFormaPago
{
return $this->formaPago;
}
public function setFormaPago(?ParFormaPago $formaPago): static
{
$this->formaPago = $formaPago;
return $this;
}
public function getSede(): ?TerSedeEmpresa
{
return $this->sede;
}
public function setSede(?TerSedeEmpresa $sede): static
{
$this->sede = $sede;
return $this;
}
public function getDireccionEntrega(): ?string
{
return $this->direccionEntrega;
}
public function setDireccionEntrega(?string $direccionEntrega): static
{
$this->direccionEntrega = $direccionEntrega;
return $this;
}
public function getOtrasCondiciones(): ?string
{
return $this->otrasCondiciones;
}
public function setOtrasCondiciones(?string $otrasCondiciones): static
{
$this->otrasCondiciones = $otrasCondiciones;
return $this;
}
public function getElaboradoPor(): ?string
{
return $this->elaboradoPor;
}
public function setElaboradoPor(?string $elaboradoPor): static
{
$this->elaboradoPor = $elaboradoPor;
return $this;
}
public function getObservacionAdicional(): ?string
{
return $this->observacionAdicional;
}
public function setObservacionAdicional(?string $observacionAdicional): static
{
$this->observacionAdicional = $observacionAdicional;
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 getFechaRecepcion(): ?\DateTimeInterface
{
return $this->fechaRecepcion;
}
public function setFechaRecepcion(?\DateTimeInterface $fechaRecepcion): static
{
$this->fechaRecepcion = $fechaRecepcion;
return $this;
}
public function getObservacionRecepcion(): ?string
{
return $this->observacionRecepcion;
}
public function setObservacionRecepcion(?string $observacionRecepcion): static
{
$this->observacionRecepcion = $observacionRecepcion;
return $this;
}
public function getFechaEntrega(): ?\DateTimeInterface
{
return $this->fechaEntrega;
}
public function setFechaEntrega(?\DateTimeInterface $fechaEntrega): static
{
$this->fechaEntrega = $fechaEntrega;
return $this;
}
public function getObservacionEntrega(): ?string
{
return $this->observacionEntrega;
}
public function setObservacionEntrega(?string $observacionEntrega): static
{
$this->observacionEntrega = $observacionEntrega;
return $this;
}
public function getNumeroFactura(): ?string
{
return $this->numeroFactura;
}
public function setNumeroFactura(?string $numeroFactura): static
{
$this->numeroFactura = $numeroFactura;
return $this;
}
public function getFactura(): ?string
{
return $this->factura;
}
public function setFactura(?string $factura): static
{
$this->factura = $factura;
return $this;
}
public function getFechaFacturaElectronica(): ?\DateTimeInterface
{
return $this->fechaFacturaElectronica;
}
public function setFechaFacturaElectronica(?\DateTimeInterface $fechaFacturaElectronica): static
{
$this->fechaFacturaElectronica = $fechaFacturaElectronica;
return $this;
}
public function getObservacionesFactura(): ?string
{
return $this->observacionesFactura;
}
public function setObservacionesFactura(?string $observacionesFactura): static
{
$this->observacionesFactura = $observacionesFactura;
return $this;
}
/**
* @return Collection<int, RFOrdenCompraItem>
*/
public function getOrdenCompraItems(): Collection
{
return $this->ordenCompraItems;
}
public function addOrdenCompraItem(RFOrdenCompraItem $ordenCompraItem): static
{
if (!$this->ordenCompraItems->contains($ordenCompraItem)) {
$this->ordenCompraItems->add($ordenCompraItem);
$ordenCompraItem->setOrdenCompra($this);
}
return $this;
}
public function removeOrdenCompraItem(RFOrdenCompraItem $ordenCompraItem): static
{
if ($this->ordenCompraItems->removeElement($ordenCompraItem)) {
// set the owning side to null (unless already changed)
if ($ordenCompraItem->getOrdenCompra() === $this) {
$ordenCompraItem->setOrdenCompra(null);
}
}
return $this;
}
public function getTotal(): ?float
{
return $this->total;
}
public function setTotal(?float $total): static
{
$this->total = $total;
return $this;
}
public function getTotalImpuestos(): ?float
{
return $this->totalImpuestos;
}
public function setTotalImpuestos(?float $totalImpuestos): static
{
$this->totalImpuestos = $totalImpuestos;
return $this;
}
public function getSubTotal(): ?float
{
return $this->subTotal;
}
public function setSubTotal(?float $subTotal): static
{
$this->subTotal = $subTotal;
return $this;
}
public function getEmpresaFilial(): ?TerEmpresa
{
return $this->empresaFilial;
}
public function setEmpresaFilial(?TerEmpresa $empresaFilial): static
{
$this->empresaFilial = $empresaFilial;
return $this;
}
public function getCorreoFacturacion(): ?string
{
return $this->correoFacturacion;
}
public function setCorreoFacturacion(string $correoFacturacion): static
{
$this->correoFacturacion = $correoFacturacion;
return $this;
}
public function getSolicitante(): ?TerPersona
{
return $this->solicitante;
}
public function setSolicitante(?TerPersona $solicitante): static
{
$this->solicitante = $solicitante;
return $this;
}
public function getResultadoEntrega(): ?ParResultadoEntrega
{
return $this->resultadoEntrega;
}
public function setResultadoEntrega(?ParResultadoEntrega $resultadoEntrega): static
{
$this->resultadoEntrega = $resultadoEntrega;
return $this;
}
public function getFechaEntregaReal(): ?\DateTimeInterface
{
return $this->fechaEntregaReal;
}
public function setFechaEntregaReal(?\DateTimeInterface $fechaEntregaReal): static
{
$this->fechaEntregaReal = $fechaEntregaReal;
return $this;
}
public function getAccionNovedad(): ?ParAccionNovedad
{
return $this->accionNovedad;
}
public function setAccionNovedad(?ParAccionNovedad $accionNovedad): static
{
$this->accionNovedad = $accionNovedad;
return $this;
}
public function getComentarios(): ?string
{
return $this->comentarios;
}
public function setComentarios(?string $comentarios): static
{
$this->comentarios = $comentarios;
return $this;
}
}