<?php
namespace App\Entity;
use App\Repository\CarSaleRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=CarSaleRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class CarSale
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $price;
/**
* @ORM\Column(type="string", length=255)
*/
private $origin;
/**
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $moneyAdvance;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $cash;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $credit;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $bankCheck;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $bankCheckDetail;
/**
* @ORM\Column(type="boolean")
*/
private $isDone;
/**
* @ORM\ManyToOne(targetEntity=Car::class, inversedBy="carSaleId")
*/
private $carSale;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="CarSaleId")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity=Car::class, inversedBy="carSalePaymentId")
*/
private $carSalePayment;
/**
* @ORM\ManyToOne(targetEntity=Client::class, inversedBy="carSaleClientId")
*/
private $client;
/**
* @ORM\Column(type="string", length=5)
*/
private $currency;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $isDoneDate;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $signaledDate;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $costsTransfer;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $costsDelivery;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $costsPledge;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $costsBankSealing;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $costsRents;
/**
* @ORM\Column(type="decimal", precision=10, scale=1, nullable=true)
*/
private $exchangeRateUSD;
/**
* @ORM\Column(type="decimal", precision=10, scale=1, nullable=true)
*/
private $exchangeRateEUR;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isGroupSale;
/**
* @ORM\Column(type="simple_array", nullable=true)
*/
private $groupSale = [];
/**
* @ORM\Column(type="string", length=5, nullable=true)
*/
private $moneyAdvanceCurrency;
/**
* @ORM\Column(type="string", length=5, nullable=true)
*/
private $cashCurrency;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $receiptGenerated;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $procedureLocation;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $procedureDate;
/**
* @ORM\Column(type="time", nullable=true)
*/
private $procedureTime;
/**
* @ORM\Column(type="string", length=3)
*/
private $procedureDays;
/**
* @ORM\OneToMany(targetEntity=CarSaleBankCheck::class, mappedBy="carSale", cascade={"persist"})
*/
private $bankCheckId;
/**
* @ORM\OneToMany(targetEntity=CarSaleCarPayment::class, mappedBy="carSalePay", cascade={"persist", "remove"})
*/
private $carPayment;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $balance;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $cashMultiple;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $moneyAdvanceMultiple;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $fechaFacturacion;
public function __construct()
{
$this->bankCheckId = new ArrayCollection();
$this->carPayment = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getPrice(): ?int
{
return $this->price;
}
public function setPrice($price): self
{
$this->price = str_replace('.', '', $price);
return $this;
}
public function getOrigin(): ?string
{
return $this->origin;
}
public function setOrigin(string $origin): self
{
$this->origin = $origin;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
/**
* @ORM\PrePersist
*/
public function setCreatedAt(): self
{
$this->createdAt = new \DateTime();
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
/**
* @ORM\PreUpdate
*/
public function setUpdatedAt(): self
{
$this->updatedAt = new \DateTime();
return $this;
}
public function getMoneyAdvance(): ?int
{
return $this->moneyAdvance;
}
public function setMoneyAdvance($moneyAdvance): self
{
$this->moneyAdvance = str_replace('.', '', $moneyAdvance);
return $this;
}
public function getCash(): ?int
{
return $this->cash;
}
public function setCash($cash): self
{
$this->cash = str_replace('.', '', $cash);
return $this;
}
public function getCredit(): ?int
{
return $this->credit;
}
public function setCredit($credit): self
{
$this->credit = str_replace('.', '', $credit);
return $this;
}
public function getIsDone(): ?bool
{
return $this->isDone;
}
public function setIsDone(bool $isDone): self
{
$this->isDone = $isDone;
return $this;
}
public function getCarSale(): ?Car
{
return $this->carSale;
}
public function setCarSale(?Car $carSale): self
{
$this->carSale = $carSale;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getCarSalePayment(): ?Car
{
return $this->carSalePayment;
}
public function setCarSalePayment(?Car $carSalePayment): self
{
$this->carSalePayment = $carSalePayment;
return $this;
}
public function getClient(): ?Client
{
return $this->client;
}
public function setClient(?Client $client): self
{
$this->client = $client;
return $this;
}
public function getCurrency(): ?string
{
return $this->currency;
}
public function setCurrency(string $currency): self
{
$this->currency = $currency;
return $this;
}
public function getIsDoneDate(): ?\DateTimeInterface
{
return $this->isDoneDate;
}
public function setIsDoneDate(?\DateTimeInterface $isDoneDate): self
{
$this->isDoneDate = $isDoneDate;
return $this;
}
public function getCostsTransfer(): ?int
{
return $this->costsTransfer;
}
public function setCostsTransfer($costsTransfer): self
{
$this->costsTransfer = str_replace('.', '', $costsTransfer);
return $this;
}
public function getCostsDelivery(): ?int
{
return $this->costsDelivery;
}
public function setCostsDelivery($costsDelivery): self
{
$this->costsDelivery = str_replace('.', '', $costsDelivery);
return $this;
}
public function getCostsPledge(): ?int
{
return $this->costsPledge;
}
public function setCostsPledge($costsPledge): self
{
$this->costsPledge = str_replace('.', '', $costsPledge);
return $this;
}
public function getCostsBankSealing(): ?int
{
return $this->costsBankSealing;
}
public function setCostsBankSealing($costsBankSealing): self
{
$this->costsBankSealing = str_replace('.', '', $costsBankSealing);
return $this;
}
public function getCostsRents(): ?int
{
return $this->costsRents;
}
public function setCostsRents($costsRents): self
{
$this->costsRents = str_replace('.', '', $costsRents);
return $this;
}
public function getExchangeRateUSD(): ?string
{
return $this->exchangeRateUSD;
}
public function setExchangeRateUSD($exchangeRateUSD): self
{
$tmp = str_replace('.', '', $exchangeRateUSD);
$tmp = str_replace(',', '.', $tmp);
$this->exchangeRateUSD = $tmp;
return $this;
}
public function getExchangeRateEUR(): ?string
{
return $this->exchangeRateEUR;
}
public function setExchangeRateEUR($exchangeRateEUR): self
{
$tmp = str_replace('.', '', $exchangeRateEUR);
$tmp = str_replace(',', '.', $tmp);
$this->exchangeRateEUR = $tmp;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getSignaledDate(): ?\DateTimeInterface
{
return $this->signaledDate;
}
public function setSignaledDate(?\DateTimeInterface $signaledDate): self
{
$this->signaledDate = $signaledDate;
return $this;
}
public function getIsGroupSale(): ?bool
{
return $this->isGroupSale;
}
public function setIsGroupSale(?bool $isGroupSale): self
{
$this->isGroupSale = $isGroupSale;
return $this;
}
public function getBankCheck(): ?int
{
return $this->bankCheck;
}
public function setBankCheck($bankCheck): self
{
$this->bankCheck = str_replace('.', '', $bankCheck);
return $this;
}
public function getBankCheckDetail(): ?string
{
return $this->bankCheckDetail;
}
public function setBankCheckDetail(?string $bankCheckDetail): self
{
$this->bankCheckDetail = $bankCheckDetail;
return $this;
}
public function getGroupSale(): ?array
{
return $this->groupSale;
}
public function setGroupSale(?array $groupSale): self
{
$this->groupSale = $groupSale;
return $this;
}
public function getMoneyAdvanceCurrency(): ?string
{
return $this->moneyAdvanceCurrency;
}
public function setMoneyAdvanceCurrency(?string $moneyAdvanceCurrency): self
{
$this->moneyAdvanceCurrency = $moneyAdvanceCurrency;
return $this;
}
public function getCashCurrency(): ?string
{
return $this->cashCurrency;
}
public function setCashCurrency(?string $cashCurrency): self
{
$this->cashCurrency = $cashCurrency;
return $this;
}
public function getReceiptGenerated(): ?bool
{
return $this->receiptGenerated;
}
public function setReceiptGenerated(bool $receiptGenerated): self
{
$this->receiptGenerated = $receiptGenerated;
return $this;
}
public function getProcedureLocation(): ?string
{
return $this->procedureLocation;
}
public function setProcedureLocation(string $procedureLocation): self
{
$this->procedureLocation = $procedureLocation;
return $this;
}
public function getProcedureDate(): ?\DateTimeInterface
{
return $this->procedureDate;
}
public function setProcedureDate(\DateTimeInterface $procedureDate): self
{
$this->procedureDate = $procedureDate;
return $this;
}
public function getProcedureTime(): ?\DateTimeInterface
{
return $this->procedureTime;
}
public function setProcedureTime(\DateTimeInterface $procedureTime): self
{
$this->procedureTime = $procedureTime;
return $this;
}
public function getProcedureDays(): ?string
{
return $this->procedureDays;
}
public function setProcedureDays(string $procedureDays): self
{
$this->procedureDays = $procedureDays;
return $this;
}
/**
* @return Collection<int, CarSaleBankCheck>
*/
public function getBankCheckId(): Collection
{
return $this->bankCheckId;
}
public function addBankCheckId(CarSaleBankCheck $bankCheckId): self
{
if (!$this->bankCheckId->contains($bankCheckId)) {
$this->bankCheckId[] = $bankCheckId;
$bankCheckId->setCarSale($this);
}
return $this;
}
public function removeBankCheckId(CarSaleBankCheck $bankCheckId): self
{
if ($this->bankCheckId->removeElement($bankCheckId)) {
// set the owning side to null (unless already changed)
if ($bankCheckId->getCarSale() === $this) {
$bankCheckId->setCarSale(null);
}
}
return $this;
}
/**
* @return Collection<int, CarSaleCarPayment>
*/
public function getCarPayment(): Collection
{
return $this->carPayment;
}
public function addCarPayment(CarSaleCarPayment $carPayment): self
{
if (!$this->carPayment->contains($carPayment)) {
$this->carPayment[] = $carPayment;
$carPayment->setCarSalePay($this);
}
return $this;
}
public function removeCarPayment(CarSaleCarPayment $carPayment): self
{
if ($this->carPayment->removeElement($carPayment)) {
// set the owning side to null (unless already changed)
if ($carPayment->getCarSalePay() === $this) {
$carPayment->setCarSalePay(null);
}
}
return $this;
}
public function getBalance(): ?string
{
return $this->balance;
}
public function setBalance(?string $balance): self
{
$this->balance = $balance;
return $this;
}
public function getCashMultiple(): ?string
{
return $this->cashMultiple;
}
public function setCashMultiple(?string $cashMultiple): self
{
$this->cashMultiple = $cashMultiple;
return $this;
}
public function getMoneyAdvanceMultiple(): ?string
{
return $this->moneyAdvanceMultiple;
}
public function setMoneyAdvanceMultiple(?string $moneyAdvanceMultiple): self
{
$this->moneyAdvanceMultiple = $moneyAdvanceMultiple;
return $this;
}
public function getFechaFacturacion(): ?\DateTimeInterface
{
return $this->fechaFacturacion;
}
public function setfechaFacturacion(?\DateTimeInterface $fechaFacturacion): self
{
$this->fechaFacturacion = $fechaFacturacion;
return $this;
}
}