<?php
namespace App\Entity;
use App\Repository\ContratoRepository;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ContratoRepository::class)
*/
class Contrato
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $referenciaContrato;
/**
* @ORM\ManyToOne(targetEntity=Canal::class, inversedBy="contratos")
* @ORM\JoinColumn(nullable=false)
*/
private $canal;
/**
* @ORM\Column(type="date")
*/
private $fecha;
/**
* @ORM\Column(type="integer")
*/
private $consumoGrabado;
/**
* @ORM\Column(type="integer")
*/
private $consumoFirmado;
/**
* @ORM\Column(type="boolean")
*/
private $visita;
/**
* @ORM\Column(type="boolean")
*/
private $referido;
/**
* @ORM\Column(type="string", length=255)
*/
private $formaPago;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $iban;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $ccc;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaInicialP1;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaInicialP2;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaInicialP3;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaInicialP4;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaInicialP5;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaInicialP6;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaReactivaP1;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaReactivaP2;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaReactivaP3;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaReactivaP4;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaReactivaP5;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $lecturaReactivaP6;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $fechaLectura;
/**
* @ORM\ManyToOne(targetEntity=TipoLectura::class, inversedBy="contratos")
* @ORM\JoinColumn(nullable=true)
*/
private $tipoLectura;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $fechaCobro;
/**
* @ORM\ManyToOne(targetEntity=Cliente::class, inversedBy="contratos")
*/
private $cliente;
/**
* @ORM\ManyToOne(targetEntity=Suministro::class, inversedBy="contratos")
*/
private $suministro;
/**
* @ORM\ManyToOne(targetEntity=Producto::class, inversedBy="contratos")
*/
private $producto;
/**
* @ORM\OneToMany(targetEntity=Factura::class, mappedBy="contrato")
*/
private $facturas;
/**
* @ORM\ManyToOne(targetEntity=ProductoProveedor::class, inversedBy="contratos")
*/
private $productoProveedor;
/**
* @ORM\ManyToOne(targetEntity=Proveedor::class, inversedBy="contratos")
*/
private $proveedor;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $fechaFin;
/**
* @ORM\ManyToOne(targetEntity=TipoImpuesto::class, inversedBy="contratos")
* @ORM\JoinColumn(nullable=false)
*/
private $tipoImpuesto;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="contratosCreados")
*/
private $createdBy;
/**
* @ORM\ManyToOne(targetEntity=Estado::class, inversedBy="contratos")
*/
private $estado;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $observaciones;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $comercial;
/**
* @ORM\Column(type="boolean")
*/
private $oculto=false;
/**
* @ORM\Column(type="boolean")
*/
private $cambioTarifa=false;
/**
* @ORM\Column(type="decimal", precision=10, scale=5, nullable=true)
*/
private $factorConversion;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $ultimaLectura;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $ahorroAnual;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $fechaCaducidad;
/**
* @ORM\OneToMany(targetEntity=FacturaGenerica::class, mappedBy="contrato")
*/
private $facturasGenericas;
/**
* @ORM\ManyToOne(targetEntity=Comercial::class, inversedBy="contratos")
*/
private $seller;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $comision1;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $comision2;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $otrosGastos;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $optimizacion;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $comisionComercial;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $facturaDevuelta;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $cambios;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoRealP1;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoRealP2;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoRealP3;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoRealP4;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoRealP5;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoRealP6;
/**
* @ORM\ManyToOne(targetEntity=EstadoComision::class, inversedBy="contratosCobrados")
*/
private $comisionCobrada;
/**
* @ORM\ManyToOne(targetEntity=EstadoComision::class, inversedBy="contratosPagados")
*/
private $comisionPagada;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $comisionCobradaValor;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $comisionPagadaValor;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $comisionCobradaFecha;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $comisionPagadaFecha;
/**
* @ORM\ManyToOne(targetEntity=EstadoFinanciero::class, inversedBy="contratos")
*/
private $estadoFinanciero;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $fechaRentabilidad;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $observacionesRentabilidad;
/**
* @ORM\ManyToOne(targetEntity=TipoIva::class, inversedBy="contratos")
*/
private $tipoIva;
/**
* @ORM\Column(type="decimal", precision=10, scale=0, nullable=true)
*/
private $consumoAcumulado;
/**
* @ORM\ManyToMany(targetEntity=Comercial::class, inversedBy="subContratos")
*/
private $subseller;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $logoHosteleria;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $importeBateriaVirtual;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $bateriaVirtual;
public function __construct()
{
$this->facturas = new ArrayCollection();
$this->facturasGenericas = new ArrayCollection();
$this->subseller = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getUltimaLectura(): ?\DateTimeInterface
{
return $this->ultimaLectura;
}
public function setUltimaLectura($ultimaLectura): self
{
$this->ultimaLectura = $ultimaLectura;
return $this;
}
public function getReferenciaContrato(): ?string
{
return $this->referenciaContrato;
}
public function setReferenciaContrato(string $referenciaContrato): self
{
$this->referenciaContrato = $referenciaContrato;
return $this;
}
public function getCanal(): ?Canal
{
return $this->canal;
}
public function setCanal(Canal $canal): self
{
$this->canal = $canal;
return $this;
}
public function getFecha(): ?\DateTimeInterface
{
return $this->fecha;
}
public function setFecha(\DateTimeInterface $fecha): self
{
$this->fecha = $fecha;
return $this;
}
public function getConsumoGrabado(): ?int
{
return $this->consumoGrabado;
}
public function setConsumoGrabado(int $consumoGrabado): self
{
$this->consumoGrabado = $consumoGrabado;
return $this;
}
public function getConsumoFirmado(): ?int
{
return $this->consumoFirmado;
}
public function setConsumoFirmado(int $consumoFirmado): self
{
$this->consumoFirmado = $consumoFirmado;
return $this;
}
public function getVisita(): ?bool
{
return $this->visita;
}
public function setVisita(bool $visita): self
{
$this->visita = $visita;
return $this;
}
public function getReferido(): ?bool
{
return $this->referido;
}
public function setReferido(bool $referido): self
{
$this->referido = $referido;
return $this;
}
public function getFormaPago(): ?string
{
return $this->formaPago;
}
public function setFormaPago(string $formaPago): self
{
$this->formaPago = $formaPago;
return $this;
}
public function getIban(): ?string
{
return $this->iban;
}
public function setIban(string $iban): self
{
$this->iban = $iban;
return $this;
}
public function getCcc(): ?string
{
return $this->ccc;
}
public function setCcc(string $ccc): self
{
$this->ccc = $ccc;
return $this;
}
public function getLecturaInicialP1(): ?string
{
return $this->lecturaInicialP1;
}
public function setLecturaInicialP1(string $lecturaInicialP1): self
{
$this->lecturaInicialP1 = $lecturaInicialP1;
return $this;
}
public function getLecturaInicialP2(): ?string
{
return $this->lecturaInicialP2;
}
public function setLecturaInicialP2(?string $lecturaInicialP2): self
{
$this->lecturaInicialP2 = $lecturaInicialP2;
return $this;
}
public function getLecturaInicialP3(): ?string
{
return $this->lecturaInicialP3;
}
public function setLecturaInicialP3(string $lecturaInicialP3): self
{
$this->lecturaInicialP3 = $lecturaInicialP3;
return $this;
}
public function getLecturaInicialP4(): ?string
{
return $this->lecturaInicialP4;
}
public function setLecturaInicialP4(?string $lecturaInicialP4): self
{
$this->lecturaInicialP4 = $lecturaInicialP4;
return $this;
}
public function getLecturaInicialP5(): ?string
{
return $this->lecturaInicialP5;
}
public function setLecturaInicialP5(?string $lecturaInicialP5): self
{
$this->lecturaInicialP5 = $lecturaInicialP5;
return $this;
}
public function getLecturaInicialP6(): ?string
{
return $this->lecturaInicialP6;
}
public function setLecturaInicialP6(?string $lecturaInicialP6): self
{
$this->lecturaInicialP6 = $lecturaInicialP6;
return $this;
}
public function getLecturaReactivaP1(): ?string
{
return $this->lecturaReactivaP1;
}
public function setLecturaReactivaP1(string $lecturaReactivaP1): self
{
$this->lecturaReactivaP1 = $lecturaReactivaP1;
return $this;
}
public function getLecturaReactivaP2(): ?string
{
return $this->lecturaReactivaP2;
}
public function setLecturaReactivaP2(?string $lecturaReactivaP2): self
{
$this->lecturaReactivaP2 = $lecturaReactivaP2;
return $this;
}
public function getLecturaReactivaP3(): ?string
{
return $this->lecturaReactivaP3;
}
public function setLecturaReactivaP3(?string $lecturaReactivaP3): self
{
$this->lecturaReactivaP3 = $lecturaReactivaP3;
return $this;
}
public function getLecturaReactivaP4(): ?string
{
return $this->lecturaReactivaP4;
}
public function setLecturaReactivaP4(?string $lecturaReactivaP4): self
{
$this->lecturaReactivaP4 = $lecturaReactivaP4;
return $this;
}
public function getLecturaReactivaP5(): ?string
{
return $this->lecturaReactivaP5;
}
public function setLecturaReactivaP5(?string $lecturaReactivaP5): self
{
$this->lecturaReactivaP5 = $lecturaReactivaP5;
return $this;
}
public function getLecturaReactivaP6(): ?string
{
return $this->lecturaReactivaP6;
}
public function setLecturaReactivaP6(?string $lecturaReactivaP6): self
{
$this->lecturaReactivaP6 = $lecturaReactivaP6;
return $this;
}
public function getFechaLectura(): ?\DateTimeInterface
{
return $this->fechaLectura;
}
public function setFechaLectura(?\DateTimeInterface $fechaLectura): self
{
$this->fechaLectura = $fechaLectura;
return $this;
}
public function getTipoLectura(): ?TipoLectura
{
return $this->tipoLectura;
}
public function setTipoLectura(?TipoLectura $tipoLectura): self
{
$this->tipoLectura = $tipoLectura;
return $this;
}
public function getFechaCobro(): ?\DateTimeInterface
{
return $this->fechaCobro;
}
public function setFechaCobro(?\DateTimeInterface $fechaCobro): self
{
$this->fechaCobro = $fechaCobro;
return $this;
}
public function getCliente(): ?Cliente
{
return $this->cliente;
}
public function setCliente(?Cliente $cliente): self
{
$this->cliente = $cliente;
return $this;
}
public function getSuministro(): ?Suministro
{
return $this->suministro;
}
public function setSuministro(?Suministro $suministro): self
{
$this->suministro = $suministro;
return $this;
}
public function getProducto(): ?Producto
{
return $this->producto;
}
public function setProducto(?Producto $producto): self
{
$this->producto = $producto;
return $this;
}
/**
* @return Collection|Factura[]
*/
public function getFacturas(): Collection
{
return $this->facturas;
}
public function addFactura(Factura $factura): self
{
if (!$this->facturas->contains($factura)) {
$this->facturas[] = $factura;
$factura->setContrato($this);
}
return $this;
}
public function removeFactura(Factura $factura): self
{
if ($this->facturas->contains($factura)) {
$this->facturas->removeElement($factura);
// set the owning side to null (unless already changed)
if ($factura->getContrato() === $this) {
$factura->setContrato(null);
}
}
return $this;
}
public function getProductoProveedor(): ?ProductoProveedor
{
return $this->productoProveedor;
}
public function setProductoProveedor(?ProductoProveedor $productoProveedor): self
{
$this->productoProveedor = $productoProveedor;
return $this;
}
public function getProveedor(): ?Proveedor
{
return $this->proveedor;
}
public function setProveedor(?Proveedor $proveedor): self
{
$this->proveedor = $proveedor;
return $this;
}
public function getTipoImpuesto(): ?TipoImpuesto
{
return $this->tipoImpuesto;
}
public function setTipoImpuesto(?TipoImpuesto $impuesto): self
{
$this->tipoImpuesto = $impuesto;
return $this;
}
public function __toString(): string
{
return $this->referenciaContrato;
}
public function getNumeroCuenta(): ?string
{
return $this->iban.' '.implode(' ', str_split($this->ccc, 4)) ;
}
public function setNumeroCuenta(string $numeroCuenta): self
{
$numeroCuenta=str_replace(' ','',$numeroCuenta);
$this->iban=substr($numeroCuenta, 0,4);
$this->ccc=substr($numeroCuenta, 4);
return $this;
}
public function getFechaFin(): ?\DateTimeInterface
{
return $this->fechaFin;
}
public function setFechaFin(?\DateTimeInterface $fechaFin): self
{
$this->fechaFin = $fechaFin;
return $this;
}
public function getCreatedBy(): ?User
{
return $this->createdBy;
}
public function setCreatedBy(?User $createdBy): self
{
$this->createdBy = $createdBy;
return $this;
}
public function getEstado(): ?Estado
{
return $this->estado;
}
public function setEstado(?Estado $estado): self
{
$this->estado = $estado;
return $this;
}
public function getObservaciones(): ?string
{
return $this->observaciones;
}
public function setObservaciones(?string $observaciones): self
{
$this->observaciones = $observaciones;
return $this;
}
public function getComercial(): ?string
{
return $this->comercial;
}
public function setComercial(?string $comercial): self
{
$this->comercial = $comercial;
return $this;
}
public function getOculto(): ?bool
{
return $this->oculto;
}
public function setOculto(?bool $oculto): self
{
$this->oculto = $oculto;
return $this;
}
public function getCambioTarifa(): ?bool
{
return $this->cambioTarifa;
}
public function setCambioTarifa(?bool $cambioTarifa): self
{
$this->cambioTarifa = $cambioTarifa;
return $this;
}
public function getFactorConversion(): ?string
{
return $this->factorConversion;
}
public function setFactorConversion(?string $factorConversion): self
{
$this->factorConversion = $factorConversion;
return $this;
}
public function getAhorroAnual(): ?string
{
return $this->ahorroAnual;
}
public function setAhorroAnual(?string $ahorroAnual): self
{
$this->ahorroAnual = $ahorroAnual;
return $this;
}
public function getFechaCaducidad(): ?\DateTimeInterface
{
return $this->fechaCaducidad;
}
public function setFechaCaducidad(?\DateTimeInterface $fechaCaducidad): self
{
$this->fechaCaducidad = $fechaCaducidad;
return $this;
}
/**
* @return Collection|FacturaGenerica[]
*/
public function getFacturasGenericas(): Collection
{
return $this->facturasGenericas;
}
public function addFacturaGenerica(FacturaGenerica $facturaGenerica): self
{
if (!$this->facturasGenericas->contains($facturaGenerica)) {
$this->facturasGenericas[] = $facturaGenerica;
$facturaGenerica->setContrato($this);
}
return $this;
}
public function removeFacturaGenerica(FacturaGenerica $facturaGenerica): self
{
if ($this->facturasGenericas->contains($facturaGenerica)) {
$this->facturasGenericas->removeElement($facturaGenerica);
// set the owning side to null (unless already changed)
if ($facturaGenerica->getContrato() === $this) {
$facturaGenerica->setContrato(null);
}
}
return $this;
}
public function getSeller(): ?Comercial
{
return $this->seller;
}
public function setSeller(?Comercial $seller): self
{
$this->seller = $seller;
return $this;
}
public function getComision1(): ?string
{
return $this->comision1;
}
public function setComision1(?string $comision1): self
{
$this->comision1 = $comision1;
return $this;
}
public function getComision2(): ?string
{
return $this->comision2;
}
public function setComision2(?string $comision2): self
{
$this->comision2 = $comision2;
return $this;
}
public function getOtrosGastos(): ?string
{
return $this->otrosGastos;
}
public function setOtrosGastos(?string $otrosGastos): self
{
$this->otrosGastos = $otrosGastos;
return $this;
}
public function getOptimizacion(): ?string
{
return $this->optimizacion;
}
public function setOptimizacion(?string $optimizacion): self
{
$this->optimizacion = $optimizacion;
return $this;
}
public function getComisionComercial(): ?string
{
return $this->comisionComercial;
}
public function setComisionComercial(?string $comisionComercial): self
{
$this->comisionComercial = $comisionComercial;
return $this;
}
public function getFacturaDevuelta(): ?bool
{
return $this->facturaDevuelta;
}
public function setFacturaDevuelta(?bool $facturaDevuelta): self
{
$this->facturaDevuelta = $facturaDevuelta;
return $this;
}
public function getCambios(): ?string
{
return $this->cambios;
}
public function setCambios(?string $cambios): self
{
$this->cambios = $cambios;
return $this;
}
public function getConsumoRealP1(): ?string
{
return $this->consumoRealP1;
}
public function setConsumoRealP1(?string $consumoRealP1): self
{
$this->consumoRealP1 = $consumoRealP1;
return $this;
}
public function getConsumoRealP2(): ?string
{
return $this->consumoRealP2;
}
public function setConsumoRealP2(?string $consumoRealP2): self
{
$this->consumoRealP2 = $consumoRealP2;
return $this;
}
public function getConsumoRealP3(): ?string
{
return $this->consumoRealP3;
}
public function setConsumoRealP3(?string $consumoRealP3): self
{
$this->consumoRealP3 = $consumoRealP3;
return $this;
}
public function getConsumoRealP4(): ?string
{
return $this->consumoRealP4;
}
public function setConsumoRealP4(?string $consumoRealP4): self
{
$this->consumoRealP4 = $consumoRealP4;
return $this;
}
public function getConsumoRealP5(): ?string
{
return $this->consumoRealP5;
}
public function setConsumoRealP5(?string $consumoRealP5): self
{
$this->consumoRealP5 = $consumoRealP5;
return $this;
}
public function getConsumoRealP6(): ?string
{
return $this->consumoRealP6;
}
public function setConsumoRealP6(?string $consumoRealP6): self
{
$this->consumoRealP6 = $consumoRealP6;
return $this;
}
public function getComisionCobrada(): ?EstadoComision
{
return $this->comisionCobrada;
}
public function setComisionCobrada(?EstadoComision $comisionCobrada): self
{
$this->comisionCobrada = $comisionCobrada;
return $this;
}
public function getComisionPagada(): ?EstadoComision
{
return $this->comisionPagada;
}
public function setComisionPagada(?EstadoComision $comisionPagada): self
{
$this->comisionPagada = $comisionPagada;
return $this;
}
public function getComisionCobradaValor(): ?string
{
return $this->comisionCobradaValor;
}
public function setComisionCobradaValor(?string $comisionCobradaValor): self
{
$this->comisionCobradaValor = $comisionCobradaValor;
return $this;
}
public function getComisionPagadaValor(): ?string
{
return $this->comisionPagadaValor;
}
public function setComisionPagadaValor(?string $comisionPagadaValor): self
{
$this->comisionPagadaValor = $comisionPagadaValor;
return $this;
}
public function getComisionCobradaFecha(): ?\DateTimeInterface
{
return $this->comisionCobradaFecha;
}
public function setComisionCobradaFecha(?\DateTimeInterface $comisionCobradaFecha): self
{
$this->comisionCobradaFecha = $comisionCobradaFecha;
return $this;
}
public function getComisionPagadaFecha(): ?\DateTimeInterface
{
return $this->comisionPagadaFecha;
}
public function setComisionPagadaFecha(?\DateTimeInterface $comisionPagadaFecha): self
{
$this->comisionPagadaFecha = $comisionPagadaFecha;
return $this;
}
public function getEstadoFinanciero(): ?EstadoFinanciero
{
return $this->estadoFinanciero;
}
public function setEstadoFinanciero(?EstadoFinanciero $estadoFinanciero): self
{
$this->estadoFinanciero = $estadoFinanciero;
return $this;
}
public function getFechaRentabilidad(): ?\DateTimeInterface
{
return $this->fechaRentabilidad;
}
public function setFechaRentabilidad(?\DateTimeInterface $fechaRentabilidad): self
{
$this->fechaRentabilidad = $fechaRentabilidad;
return $this;
}
public function getObservacionesRentabilidad(): ?string
{
return $this->observacionesRentabilidad;
}
public function setObservacionesRentabilidad(?string $observacionesRentabilidad): self
{
$this->observacionesRentabilidad = $observacionesRentabilidad;
return $this;
}
public function getTipoIva(): ?TipoIva
{
return $this->tipoIva;
}
public function setTipoIva(?TipoIva $tipoIva): self
{
$this->tipoIva = $tipoIva;
return $this;
}
public function getConsumoAcumulado(): ?string
{
return $this->consumoAcumulado;
}
public function setConsumoAcumulado(?string $consumoAcumulado): self
{
$this->consumoAcumulado = $consumoAcumulado;
return $this;
}
public function updateConsumoAcumulado(): self
{
$oneYearAgo=new DateTime("2017-05-18");
$oneYearAgo->modify("-1 year");
$facturas=$this->getFacturas();
if( empty($facturas) ){
$this->consumoAcumulado=0;
}else{
$facturas=usort($facturas, function($a, $b) {
return strtotime( $a->getFechaLectura() ) <=> strtotime( $b->getFechaLectura() );
});
if($this->fechaLectura>$oneYearAgo){
$oldestLecturaP1=$this->getLecturaInicialP1();
}
}
return $this;
}
/**
* @return Collection<int, Comercial>
*/
public function getSubseller(): Collection
{
return $this->subseller;
}
public function addSubseller(Comercial $subseller): self
{
if (!$this->subseller->contains($subseller)) {
$this->subseller[] = $subseller;
}
return $this;
}
public function removeSubseller(Comercial $subseller): self
{
$this->subseller->removeElement($subseller);
return $this;
}
public function isLogoHosteleria(): ?bool
{
return $this->logoHosteleria;
}
public function setLogoHosteleria(?bool $logoHosteleria): self
{
$this->logoHosteleria = $logoHosteleria;
return $this;
}
public function getImporteBateriaVirtual(): ?string
{
return $this->importeBateriaVirtual;
}
public function setImporteBateriaVirtual(?string $importeBateriaVirtual): self
{
$this->importeBateriaVirtual = $importeBateriaVirtual;
return $this;
}
public function isBateriaVirtual(): ?bool
{
return $this->bateriaVirtual;
}
public function setBateriaVirtual(?bool $bateriaVirtual): self
{
$this->bateriaVirtual = $bateriaVirtual;
return $this;
}
}