<?php
namespace App\Entity\Main;
use App\Repository\BookedActivityRepository;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity(repositoryClass=BookedActivityRepository::class)
*/
class BookedActivity
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var Reservation
* @ORM\ManyToOne(targetEntity="App\Entity\Main\Reservation", inversedBy="bookedActivity")
*/
private $reservation;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $designation;
/**
* @ORM\Column(type="string", length=255)
*/
private $forfait;
/**
* @ORM\Column(type="string", length=255)
*/
private $formule;
/**
* @ORM\Column(type="string", length=60)
*/
private $code_activity;
/**
* @ORM\Column(type="date")
*/
private $date;
/**
* @ORM\Column(type="time", nullable=true)
*/
private $creneau;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $nbre_parties;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $quantity;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $puTTC;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $taux_TVA;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $total_ht;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $montant_tva;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $totalTTC;
/**
* @var bookedActivityOptions[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Main\BookedActivityOptions", mappedBy="bookedActivity", cascade={"persist","remove"})
*/
private $bookedActivityOptions;
private $totalTtcWithOptions;
private $tvaTotalWithOptions;
private $deleted;
private $active;
private $confirmation;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $admin;
public function __toString()
{
return (string) $this->designation;
}
public function getId(): ?int
{
return $this->id;
}
public function getReservation()
{
return $this->reservation;
}
public function setReservation(\App\Entity\Main\Reservation $reservation): self
{
$this->reservation = $reservation;
return $this;
}
public function getDesignation(): ?string
{
return $this->designation;
}
public function setDesignation(?string $designation): self
{
$this->designation = $designation;
return $this;
}
public function getForfait(): ?string
{
return $this->forfait;
}
public function setForfait(string $forfait): self
{
$this->forfait = $forfait;
return $this;
}
public function getFormule(): ?string
{
return $this->formule;
}
public function setFormule(string $formule): self
{
$this->formule = $formule;
return $this;
}
public function getCodeActivity(): ?string
{
return $this->code_activity;
}
public function setCodeActivity(string $code_activity): self
{
$this->code_activity = $code_activity;
return $this;
}
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function setDate(\DateTimeInterface $date): self
{
$this->date = $date;
return $this;
}
public function getCreneau(): ?\DateTimeInterface
{
return $this->creneau;
}
public function setCreneau(?\DateTimeInterface $creneau): self
{
$this->creneau = $creneau;
return $this;
}
public function getNbreParties(): ?int
{
return $this->nbre_parties;
}
public function setNbreParties(?int $nbre_parties): self
{
$this->nbre_parties = $nbre_parties;
return $this;
}
public function getQuantity(): ?int
{
return $this->quantity;
}
public function setQuantity(?int $quantity): self
{
$this->quantity = $quantity;
return $this;
}
public function getPuTTC(): ?float
{
return $this->puTTC;
}
public function setPuTTC(?float $puTTC): self
{
$this->puTTC = $puTTC;
return $this;
}
public function getTauxTVA(): ?float
{
return $this->taux_TVA;
}
public function setTauxTVA(?float $taux_TVA): self
{
$this->taux_TVA = $taux_TVA;
return $this;
}
public function getTotalHt(): ?float
{
return $this->total_ht;
}
public function setTotalHt(?float $total_ht): self
{
$this->total_ht = $total_ht;
return $this;
}
public function getMontantTva(): ?float
{
return $this->montant_tva;
}
public function setMontantTva(?float $montant_tva): self
{
$this->montant_tva = $montant_tva;
return $this;
}
public function getTotalTTC(): ?float
{
return $this->totalTTC;
}
public function setTotalTTC(?float $totalTTC): self
{
$this->totalTTC = $totalTTC;
return $this;
}
public function getAdmin(): ?bool
{
return $this->admin;
}
public function setAdmin(?bool $admin): self
{
$this->admin = $admin;
return $this;
}
/**
* @param bookedActivityOptions[] $bookedActivityOptions
*/
public function setBookedActivityOptions($bookedActivityOptions)
{
$this->bookedActivityOptions = $bookedActivityOptions;
}
/**
* @return bookedActivityOptions[]
*/
public function getBookedActivityOptions()
{
return $this->bookedActivityOptions;
}
public function getCreneauString()
{
if($this->creneau != null)
return (string) $this->creneau->format('H\hi');
else
return $this->creneau;
}
public function getTotalTtcWithOptions(): ?float
{
$this->totalTtcWithOptions = $this->totalTTC;
foreach($this->bookedActivityOptions as $option) {
$this->totalTtcWithOptions += $option->getTotalTtc();
}
return $this->totalTtcWithOptions;
}
public function getTotalTtcWithOptionsString()
{
return number_format($this->getTotalTtcWithOptions(), 2, '.', ' ') . ' €';
}
public function getTvaTotalWithOptions(): ?float
{
$this->tvaTotalWithOptions = $this->montant_tva;
foreach($this->bookedActivityOptions as $option) {
$this->tvaTotalWithOptions += $option->getMontantTva();
}
return $this->tvaTotalWithOptions;
}
public function getHasOptions()
{
return (count($this->bookedActivityOptions)) ? true : false;
}
public function getCustomer()
{
$customer = $this->reservation->getCustomer();
return $customer;
}
public function getConfirmation()
{
$this->confirmation = (string) $this->reservation->getConfirmation();
return $this->confirmation;
}
public function getDeleted()
{
$this->deleted = (string) $this->reservation->getDeleted();
return $this->deleted;
}
public function getActive()
{
$this->active = (string) $this->reservation->getActive();
return $this->active;
}
public static function getFormulesList() {
return array("A la carte" => "carte", "Anniversaire" => "anniversaire", "Pass Journée" => "pass");
}
}