<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Validator\Constraints as Assert;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Repository\ValoracionesRelojesSinStockRepository")
* @ORM\Table(name="valoraciones_relojes_sin_stock", schema="perseo")
* @Vich\Uploadable
*/
class ValoracionesRelojesSinStock extends ValoracionesRelojes
{
/**
* @ORM\Column(type="string", nullable=true, name="reloj_idperseo")
*/
protected $relojIDPerseo;
/**
* @ORM\Column(type="string", nullable=true, name="reloj_foto")
*/
protected $relojFoto;
/**
* @Vich\UploadableField(mapping="reloj", fileNameProperty="relojFoto")
* @var File
*/
protected $relojFotoFile;
/**
* @ORM\Column(type="string", nullable=true, name="reloj_modelo1")
*/
protected $relojModelo1;
/**
* @ORM\Column(type="string", nullable=true, name="reloj_ref1")
*/
protected $relojRef1;
/**
* @ORM\Column(
* type="integer",
* length=4,
* nullable=true,
* name="reloj_fecha",
* options={"comment":"Fecha comprado por primera vez, solo el año"}
* )
*/
protected $relojFecha;
/**
* @ORM\Column(type="boolean", nullable=false, name="reloj_caja", options={"default":0})
*/
protected $relojCaja;
/**
* @ORM\Column(type="boolean", nullable=false, name="reloj_papeles", options={"default":0})
*/
protected $relojPapeles;
/**
* @ORM\Column(type="float", nullable=true, name="itp", precision=2)
*/
protected $ITP;
/**
* @ORM\Column(
* type="float",
* nullable=true,
* options={
* "default":"0.0",
* "comment":"Comsión CRONO esta en gastos , pero se duplica fuera para tener mejor acceso a ella"
* }
* )
*/
protected $comision;
/**
* @ORM\Column(type="float", nullable=true, precision=2, name="precio_coste")
*/
protected $precioCoste;
/**
* @ORM\Column(
* type="float",
* nullable=true,
* name="precio_coste_total",
* precision=2,
* options={"comment":"Autocalculado, cada vez que se añade/modifique un coste ó cambie su coste"}
* )
*/
protected $precioCosteTotal;
/**
* @ORM\Column(type="float", nullable=true, precision=2, name="precio_min_venta")
*/
protected $precioMinVenta;
/**
* @ORM\Column(type="float", nullable=true, precision=2, name="precio_promocion")
*/
protected $precioPromocion;
/**
* @ORM\Column(type="float", nullable=true, precision=2, name="precio_oferta")
*/
protected $precioOferta;
/**
* @ORM\Column(type="float", nullable=true, precision=2, name="precio_referencia")
*/
protected $precioReferencia;
/**
* @ORM\Column(type="float", nullable=true, precision=2, name="precio_pagar")
*/
protected $precioPagar;
/**
* @ORM\Column(type="float", nullable=true, precision=0, name="margen_minimo")
*/
protected $margenMinimo;
/**
* @ORM\Column(type="float", nullable=true, precision=0, name="margen_deseado")
*/
protected $margenDeseado;
/**
* @ORM\Column(type="float", nullable=true, precision=0, name="margen_promocion")
*/
protected $margenPromocion;
/**
* @ORM\Column(type="float", nullable=true, precision=0, name="costes_total")
*/
protected $costesTotal;
/**
* @ORM\OneToOne(targetEntity=\App\Entity\Reloj::class, inversedBy="valoracionReloj")
* @ORM\JoinColumn(name="reloj_inventario_id", referencedColumnName="id", unique=true)
*/
private $relojInventario;
/**
* @ORM\OneToOne(targetEntity=\App\Entity\DetalleCompra::class, mappedBy="valoracionReloj")
*/
private $detalleCompra;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Referencia", mappedBy="valoracionReloj", cascade={"persist"})
*/
protected $referencias;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Coste", mappedBy="valoracionesRelojes", cascade={"persist"})
*/
protected $costes;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Marca", inversedBy="valoracionesRelojes")
* @ORM\JoinColumn(name="reloj_marca_id", referencedColumnName="id")
* @Assert\Valid()
*/
protected $relojMarca;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\EstadoAspecto", inversedBy="valoracionesRelojes")
* @ORM\JoinColumn(name="reloj_aspecto_id", referencedColumnName="id")
*/
protected $relojAspecto;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Valoracion", inversedBy="valoracionesRelojesSinStocks")
* @ORM\JoinColumn(name="valoracion_id", referencedColumnName="id")
*/
protected $valoracion;
public function __construct()
{
$this->relojCaja = false;
$this->relojPapeles = false;
$this->costes = new ArrayCollection();
$this->referencias = new ArrayCollection();
}
public function getRelojFotoFile(): ?File
{
return $this->relojFotoFile;
}
public function setRelojFotoFile(?File $relojFotoFile): self
{
$this->relojFotoFile = $relojFotoFile;
if ($relojFotoFile) {
// if 'updatedAt' is not defined in your entity, use another property
$this->setUpdatedAt(new \DateTime('now'));
}
return $this;
}
public function getITP(): ?float
{
return $this->ITP;
}
public function setITP(?float $ITP): self
{
$this->ITP = $ITP;
return $this;
}
public function getComision(): ?float
{
return $this->comision;
}
public function setComision(?float $comision): self
{
$this->comision = $comision;
return $this;
}
public function getPrecioCoste(): ?float
{
return $this->precioCoste;
}
public function setPrecioCoste(?float $precioCoste): self
{
$this->precioCoste = $precioCoste;
return $this;
}
public function getPrecioCosteTotal(): ?float
{
return $this->precioCosteTotal;
}
public function setPrecioCosteTotal(?float $precioCosteTotal): self
{
$this->precioCosteTotal = $precioCosteTotal;
return $this;
}
public function getPrecioMinVenta(): ?float
{
return $this->precioMinVenta;
}
public function setPrecioMinVenta(?float $precioMinVenta): self
{
$this->precioMinVenta = $precioMinVenta;
return $this;
}
public function getPrecioPromocion(): ?float
{
return $this->precioPromocion;
}
public function setPrecioPromocion(?float $precioPromocion): self
{
$this->precioPromocion = $precioPromocion;
return $this;
}
public function getPrecioOferta(): ?float
{
return $this->precioOferta;
}
public function setPrecioOferta(?float $precioOferta): self
{
$this->precioOferta = $precioOferta;
return $this;
}
public function getPrecioReferencia(): ?float
{
return $this->precioReferencia;
}
public function setPrecioReferencia(?float $precioReferencia): self
{
$this->precioReferencia = $precioReferencia;
return $this;
}
public function getPrecioPagar(): ?float
{
return $this->precioPagar;
}
public function setPrecioPagar(?float $precioPagar): self
{
$this->precioPagar = $precioPagar;
return $this;
}
public function getMargenMinimo(): ?float
{
return $this->margenMinimo;
}
public function setMargenMinimo(?float $margenMinimo): self
{
$this->margenMinimo = $margenMinimo;
return $this;
}
public function getMargenDeseado(): ?float
{
return $this->margenDeseado;
}
public function setMargenDeseado(?float $margenDeseado): self
{
$this->margenDeseado = $margenDeseado;
return $this;
}
public function getMargenPromocion(): ?float
{
return $this->margenPromocion;
}
public function setMargenPromocion(?float $margenPromocion): self
{
$this->margenPromocion = $margenPromocion;
return $this;
}
public function getIsPrecioChrono24(): ?bool
{
return $this->isPrecioChrono24;
}
public function setIsPrecioChrono24(?bool $isPrecioChrono24): self
{
$this->isPrecioChrono24 = $isPrecioChrono24;
return $this;
}
public function getRelojIDPerseo(): ?string
{
return $this->relojIDPerseo;
}
public function setRelojIDPerseo(?string $relojIDPerseo): self
{
$this->relojIDPerseo = $relojIDPerseo;
return $this;
}
public function getRelojFoto(): ?string
{
return $this->relojFoto;
}
public function setRelojFoto(?string $relojFoto): self
{
$this->relojFoto = $relojFoto;
return $this;
}
public function getRelojModelo1(): ?string
{
return $this->relojModelo1;
}
public function setRelojModelo1(?string $relojModelo): self
{
$this->relojModelo1 = $relojModelo;
return $this;
}
public function getRelojRef1(): ?string
{
return $this->relojRef1;
}
public function setRelojRef1(?string $relojRef): self
{
$this->relojRef1 = $relojRef;
return $this;
}
public function getRelojFecha(): ?int
{
return $this->relojFecha;
}
public function setRelojFecha(?int $relojFecha): self
{
$this->relojFecha = $relojFecha;
return $this;
}
public function getRelojCaja(): ?bool
{
return $this->relojCaja;
}
public function setRelojCaja(bool $relojCaja): self
{
$this->relojCaja = $relojCaja;
return $this;
}
public function getRelojPapeles(): ?bool
{
return $this->relojPapeles;
}
public function setRelojPapeles(bool $relojPapeles): self
{
$this->relojPapeles = $relojPapeles;
return $this;
}
public function getRelojMarca(): ?Marca
{
return $this->relojMarca;
}
public function setRelojMarca(?Marca $relojMarca): self
{
$this->relojMarca = $relojMarca;
return $this;
}
public function getRelojAspecto(): ?EstadoAspecto
{
return $this->relojAspecto;
}
public function setRelojAspecto(?EstadoAspecto $relojAspecto): self
{
$this->relojAspecto = $relojAspecto;
return $this;
}
public function getValoracion(): ?Valoracion
{
return $this->valoracion;
}
public function setValoracion(?Valoracion $valoracion): self
{
$this->valoracion = $valoracion;
return $this;
}
/**
* @return Collection|Coste[]
*/
public function getCostes(): Collection
{
return $this->costes;
}
public function addCoste(Coste $coste): self
{
if (!$this->costes->contains($coste)) {
$this->costes[] = $coste;
$coste->setValoracionesRelojes($this);
}
return $this;
}
public function removeCoste(Coste $coste): self
{
if ($this->costes->removeElement($coste)) {
// set the owning side to null (unless already changed)
if ($coste->getValoracionesRelojes() === $this) {
//$coste->setValoracionesRelojes(null);
$coste->setDeletedAt(new DateTime('now'));
}
}
return $this;
}
public function getCostesTotal(): ?float
{
return $this->costesTotal;
}
public function setCostesTotal(?float $costesTotal): self
{
$this->costesTotal = $costesTotal;
return $this;
}
/**
* @return Collection|Referencia[]
*/
public function getReferencias(): Collection
{
return $this->referencias;
}
public function addReferencia(Referencia $referencia): self
{
if (!$this->referencias->contains($referencia)) {
$this->referencias[] = $referencia;
$referencia->setValoracionReloj($this);
}
return $this;
}
public function removeReferencia(Referencia $referencia): self
{
if ($this->referencias->removeElement($referencia)) {
// set the owning side to null (unless already changed)
if ($referencia->getValoracionReloj() === $this) {
//$referencia->setValoracionReloj(null);
$referencia->setDeletedAt(new DateTime('now'));
}
}
return $this;
}
public function isRelojCaja(): ?bool
{
return $this->relojCaja;
}
public function isRelojPapeles(): ?bool
{
return $this->relojPapeles;
}
public function getRelojInventario(): ?Reloj
{
return $this->relojInventario;
}
public function setRelojInventario(?Reloj $relojInventario): static
{
$this->relojInventario = $relojInventario;
return $this;
}
public function getDetalleCompra(): ?DetalleCompra
{
return $this->detalleCompra;
}
public function setDetalleCompra(?DetalleCompra $detalleCompra): static
{
// unset the owning side of the relation if necessary
if ($detalleCompra === null && $this->detalleCompra !== null) {
$this->detalleCompra->setValoracionReloj(null);
}
// set the owning side of the relation if necessary
if ($detalleCompra !== null && $detalleCompra->getValoracionReloj() !== $this) {
$detalleCompra->setValoracionReloj($this);
}
$this->detalleCompra = $detalleCompra;
return $this;
}
}