<?php
namespace App\Entity\Vehicules;
use App\Entity\Clients\Client;
use App\Entity\GestionComerciale\Commande;
use App\Entity\Utilisateur\Utilisateur;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
/**
* VehiculeClient
*
* @ORM\Table("vehicule__client")
* @ORM\Entity(repositoryClass="App\Repository\Vehicules\VehiculeClientRepository")
* @Gedmo\SoftDeleteable(fieldName="dateSuppression",timeAware=false)
*/
class VehiculeClient
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="id_import", type="string",length=255, nullable=true)
*/
private $idImport;
/**
* @ORM\Column(name="donnees_import", type="text", nullable=true)
*/
private $donnesImport;
/**
* @ORM\OneToMany(targetEntity="App\Entity\GestionComerciale\Commande", mappedBy="vehiculesClient")
*/
private $commande;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Vehicules\Marque", inversedBy="vehiculeClient")
* @ORM\JoinColumn(nullable=true)
*/
private $marque;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Vehicules\Type", inversedBy="vehiculeClient")
* @ORM\JoinColumn(nullable=true)
*/
private $type;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Vehicules\Modele", inversedBy="vehiculeClient")
* @ORM\JoinColumn(nullable=true)
*/
private $modele;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Utilisateur\Utilisateur", inversedBy="vehiculesClient")
* @ORM\JoinColumn(nullable=true)
*/
private $utilisateur;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Clients\Client", inversedBy="vehiculesClient")
* @ORM\JoinColumn(nullable=true)
*/
private $client;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Vehicules\Image", cascade={"persist"},mappedBy="vehiculeClient")
*/
private $images;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Vehicules\Document", cascade={"persist"},mappedBy="vehiculeClient")
*/
private $documents;
/**
* @ORM\Column(name="date", type="datetime", nullable=true)
*/
private $date;
/**
* @ORM\Column(name="dateMaj", type="datetime", nullable=true)
* @Gedmo\Timestampable(on="update")
*/
private $dateMaj;
/**
* @ORM\Column(name="dateSuppression", type="datetime", nullable=true)
*/
private $dateSuppression;
/**
* @ORM\Column(name="libelle", type="string", length=255, nullable=true)
* @Assert\NotBlank(message="Libellé obligatoire")
*/
private $libelle;
/**
* @ORM\Column(name="numSerie", type="string", length=255, nullable=true)
*/
private $numSerie;
/**
* @ORM\Column(name="kilometrage", type="integer", nullable=true)
*/
private $kilometrage;
/**
* @ORM\Column(name="energie", type="string", length=255, nullable=true)
*/
private $energie;
/**
* @ORM\Column(name="puissance", type="integer", nullable=true)
*/
private $puissance;
/**
* @ORM\Column(name="dateMiseCirculation", type="datetime", nullable=true)
*/
private $dateMiseCirculation;
/**
* @ORM\Column(name="commentaires", type="text", nullable=true)
*/
private $commentaires;
/**
* @ORM\Column(name="immatriculation", type="string", length=255, nullable=true)
* @Assert\NotBlank(message="Immatriculation obligatoire")
*/
private $immatriculation;
/**
* @ORM\Column(name="dateRelance", type="datetime", nullable=true)
*/
private $dateRelance;
/**
* @ORM\Column(name="dateControleTechnique", type="datetime", nullable=true)
*/
private $dateControleTechnique;
/**
* @ORM\Column(name="dateAntiPollution", type="datetime", nullable=true)
*/
private $dateAntiPollution;
/**
* @ORM\Column(name="dateTachymetre", type="datetime", nullable=true)
*/
private $dateTachymetre;
/**
* @ORM\Column(name="dateLimiteurVitesse", type="datetime", nullable=true)
*/
private $dateLimiteurVitesse;
/**
* @ORM\Column(name="dateOr", type="datetime", nullable=true)
*/
private $dateOr;
public function __construct()
{
$this->date = new Datetime();
$this->commande = new ArrayCollection();
$this->documents = new ArrayCollection();
$this->images = new ArrayCollection();
}
public function getId(): int
{
return $this->id;
}
public function setDate(?DateTime $date): VehiculeClient
{
$this->date = $date;
return $this;
}
public function getDate(): ?DateTime
{
return $this->date;
}
public function setDateMaj(?DateTime $dateMaj): VehiculeClient
{
$this->dateMaj = $dateMaj;
return $this;
}
public function getDateMaj(): ?DateTime
{
return $this->dateMaj;
}
public function setDateSuppression(?DateTime $dateSuppression): VehiculeClient
{
$this->dateSuppression = $dateSuppression;
return $this;
}
public function getDateSuppression(): ?DateTime
{
return $this->dateSuppression;
}
public function setLibelle(?string $libelle): VehiculeClient
{
$this->libelle = $libelle;
return $this;
}
public function getLibelle(): ?string
{
return $this->libelle;
}
public function setNumSerie(?string $numSerie): VehiculeClient
{
$this->numSerie = $numSerie;
return $this;
}
public function getNumSerie(): ?string
{
return $this->numSerie;
}
public function setKilometrage(?int $kilometrage): VehiculeClient
{
$this->kilometrage = $kilometrage;
return $this;
}
public function getKilometrage(): ?int
{
return $this->kilometrage;
}
public function setEnergie(?string $energie): VehiculeClient
{
$this->energie = $energie;
return $this;
}
public function getEnergie(): ?string
{
return $this->energie;
}
public function setPuissance(?int $puissance): VehiculeClient
{
$this->puissance = $puissance;
return $this;
}
public function getPuissance(): ?int
{
return $this->puissance;
}
public function setDateMiseCirculation(?DateTime $dateMiseCirculation): VehiculeClient
{
$this->dateMiseCirculation = $dateMiseCirculation;
return $this;
}
public function getDateMiseCirculation(): ?DateTime
{
return $this->dateMiseCirculation;
}
public function setCommentaires(?string $commentaires): VehiculeClient
{
$this->commentaires = $commentaires;
return $this;
}
public function getCommentaires(): ?string
{
return $this->commentaires;
}
public function setImmatriculation(?string $immatriculation): VehiculeClient
{
$this->immatriculation = $immatriculation;
return $this;
}
public function getImmatriculation(): ?string
{
return $this->immatriculation;
}
public function setDateRelance(?DateTime $dateRelance): VehiculeClient
{
$this->dateRelance = $dateRelance;
return $this;
}
public function getDateRelance(): ?DateTime
{
return $this->dateRelance;
}
public function setDateControleTechnique(?DateTime $dateControleTechnique): VehiculeClient
{
$this->dateControleTechnique = $dateControleTechnique;
return $this;
}
public function getDateControleTechnique(): ?DateTime
{
return $this->dateControleTechnique;
}
public function setDateAntiPollution(?DateTime $dateAntiPollution): VehiculeClient
{
$this->dateAntiPollution = $dateAntiPollution;
return $this;
}
public function getDateAntiPollution(): ?DateTime
{
return $this->dateAntiPollution;
}
public function setDateTachymetre(?DateTime $dateTachymetre): VehiculeClient
{
$this->dateTachymetre = $dateTachymetre;
return $this;
}
public function getDateTachymetre(): ?DateTime
{
return $this->dateTachymetre;
}
public function setDateLimiteurVitesse(?DateTime $dateLimiteurVitesse): VehiculeClient
{
$this->dateLimiteurVitesse = $dateLimiteurVitesse;
return $this;
}
public function getDateLimiteurVitesse(): ?DateTime
{
return $this->dateLimiteurVitesse;
}
public function setDateOr(?DateTime $dateOr): VehiculeClient
{
$this->dateOr = $dateOr;
return $this;
}
public function getDateOr(): ?DateTime
{
return $this->dateOr;
}
public function addImage(Image $images): VehiculeClient
{
$this->images[] = $images;
return $this;
}
public function removeImage(Image $images)
{
$this->images->removeElement($images);
}
public function getImages(): Collection
{
return $this->images;
}
public function setUtilisateur(?Utilisateur $utilisateur): VehiculeClient
{
$this->utilisateur = $utilisateur;
return $this;
}
public function getUtilisateur(): ?Utilisateur
{
return $this->utilisateur;
}
public function setClient(?Client $client): VehiculeClient
{
$this->client = $client;
return $this;
}
public function getClient(): ?Client
{
return $this->client;
}
public function setMarque(?Marque $marque): VehiculeClient
{
$this->marque = $marque;
return $this;
}
public function getMarque(): ?Marque
{
return $this->marque;
}
public function setType(?Type $type): VehiculeClient
{
$this->type = $type;
return $this;
}
public function getType(): ?Type
{
return $this->type;
}
public function setModele(?Modele $modele): VehiculeClient
{
$this->modele = $modele;
return $this;
}
public function getModele(): ?Modele
{
return $this->modele;
}
public function addDocument(Document $documents): VehiculeClient
{
$this->documents[] = $documents;
return $this;
}
public function removeDocument(Document $documents)
{
$this->documents->removeElement($documents);
}
public function getDocuments(): Collection
{
return $this->documents;
}
public function addCommande(Commande $commande): VehiculeClient
{
$this->commande[] = $commande;
return $this;
}
public function removeCommande(Commande $commande)
{
$this->commande->removeElement($commande);
}
public function getCommande(): Collection
{
return $this->commande;
}
public function __toString()
{
$libelleVehicule = "";
if(is_object($this->getMarque())) {
$libelleVehicule .= $this->getMarque()->getLibelle();
}
if(is_object($this->getModele())) {
$libelleVehicule .= " ".$this->getModele()->getLibelle();
}
if($libelleVehicule != "") $libelleVehicule .= " : ";
$libelleVehicule .= " ".$this->getNumSerie();
return $libelleVehicule;
}
public function setIdImport(?string $idImport): VehiculeClient
{
$this->idImport = $idImport;
return $this;
}
public function getIdImport(): ?string
{
return $this->idImport;
}
public function setDonnesImport(?string $donnesImport): VehiculeClient
{
$this->donnesImport = $donnesImport;
return $this;
}
public function getDonnesImport(): ?string
{
return $this->donnesImport;
}
}