<?php
namespace App\Entity;
use App\Repository\BonDeCommandeRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=BonDeCommandeRepository::class)
*/
class BonDeCommande
{
const TYPE_COMMANDE_TAB = [
'Fourniture' => '1',
'Sous-traitance' => '2'
];
const modalitePaiementTab = [
'30J date de facture' => '30J date de facture',
'30J Fin du mois' => '30J Fin du mois',
'45J Fin du mois' => '45J Fin du mois',
'60J Date de la facture' => '60J Date de la facture',
'Immédiat' => 'Immédiat',
];
const TYPE_ENVOIE_COMMANDE_TAB = [
'Envoyer par mail au fournisseur/sous-traitant' => 'Envoyer par mail au fournisseur/sous-traitant',
'Envoyer par mail (champs libre)' => 'Envoyer par mail (champs libre)',
'Envoyer au commanditaire' => 'Envoyer au commanditaire'
];
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $numeroBonDecommande;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $token;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $createdAt;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $typeCommande;
/**
* @ORM\ManyToOne(targetEntity="Fournisseur", cascade={"persist"})
* @ORM\JoinColumn(name="fournisseur_id", referencedColumnName="id",nullable=true)
*/
private $fournisseur;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $emailFournisseur;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $mobileFournisseur;
/**
* @ORM\ManyToOne(targetEntity="Spv", cascade={"persist"})
* @ORM\JoinColumn(name="spv_id", referencedColumnName="id",nullable=true)
*/
private $spv;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $adresseSpv;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $emailSpv;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $mobileSpv;
/**
* @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id",nullable=true)
*/
private $userContact;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $emailUserContact;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $mobileUserContact;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $adresseLivraison;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $codePostalLivraison;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $cityLivraison;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isAdresseFournisseur;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $dateLivraisonSouhaitee;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $dateDebutTravauxSousTraitance;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $dateFinTravauxSousTraitance;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $modalitePaiement;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $information;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $numeroDevis;
/**
* @ORM\OneToMany(targetEntity="ProjectBonCommande",mappedBy="bonCommande", cascade={"persist"})
*/
private $projectBonCommande;
/**
* @ORM\OneToMany(targetEntity="DetailBonCommande",mappedBy="bonCommande", cascade={"persist"})
*/
private $detailBonCommande;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $pdfFile;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $modeEnvoieCommande;
/**
* @ORM\ManyToOne(targetEntity="DocUpload", cascade={"persist"})
* @ORM\JoinColumn(name="file_devis_bon_commande_id", referencedColumnName="id",nullable=true ,onDelete="SET NULL")
*/
private $fileDevisBonCommande;
public function __construct()
{
$this->createdAt = new \DateTime();
$this->token = md5(uniqid());
$this->projectBonCommande = new ArrayCollection();
$this->detailBonCommande = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getToken(): ?string
{
return $this->token;
}
public function setToken(?string $token): self
{
$this->token = $token;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getTypeCommande(): ?string
{
return $this->typeCommande;
}
public function setTypeCommande(?string $typeCommande): self
{
$this->typeCommande = $typeCommande;
return $this;
}
public function getEmailFournisseur(): ?string
{
return $this->emailFournisseur;
}
public function setEmailFournisseur(?string $emailFournisseur): self
{
$this->emailFournisseur = $emailFournisseur;
return $this;
}
public function getMobileFournisseur(): ?string
{
return $this->mobileFournisseur;
}
public function setMobileFournisseur(?string $mobileFournisseur): self
{
$this->mobileFournisseur = $mobileFournisseur;
return $this;
}
public function getAdresseSpv(): ?string
{
return $this->adresseSpv;
}
public function setAdresseSpv(?string $adresseSpv): self
{
$this->adresseSpv = $adresseSpv;
return $this;
}
public function getEmailSpv(): ?string
{
return $this->emailSpv;
}
public function setEmailSpv(?string $emailSpv): self
{
$this->emailSpv = $emailSpv;
return $this;
}
public function getMobileSpv(): ?string
{
return $this->mobileSpv;
}
public function setMobileSpv(?string $mobileSpv): self
{
$this->mobileSpv = $mobileSpv;
return $this;
}
public function getEmailUserContact(): ?string
{
return $this->emailUserContact;
}
public function setEmailUserContact(?string $emailUserContact): self
{
$this->emailUserContact = $emailUserContact;
return $this;
}
public function getMobileUserContact(): ?string
{
return $this->mobileUserContact;
}
public function setMobileUserContact(?string $mobileUserContact): self
{
$this->mobileUserContact = $mobileUserContact;
return $this;
}
public function getAdresseLivraison(): ?string
{
return $this->adresseLivraison;
}
public function setAdresseLivraison(?string $adresseLivraison): self
{
$this->adresseLivraison = $adresseLivraison;
return $this;
}
public function getDateLivraisonSouhaitee(): ?\DateTimeInterface
{
return $this->dateLivraisonSouhaitee;
}
public function setDateLivraisonSouhaitee(?\DateTimeInterface $dateLivraisonSouhaitee): self
{
$this->dateLivraisonSouhaitee = $dateLivraisonSouhaitee;
return $this;
}
public function getDateDebutTravauxSousTraitance(): ?\DateTimeInterface
{
return $this->dateDebutTravauxSousTraitance;
}
public function setDateDebutTravauxSousTraitance(?\DateTimeInterface $dateDebutTravauxSousTraitance): self
{
$this->dateDebutTravauxSousTraitance = $dateDebutTravauxSousTraitance;
return $this;
}
public function getDateFinTravauxSousTraitance(): ?\DateTimeInterface
{
return $this->dateFinTravauxSousTraitance;
}
public function setDateFinTravauxSousTraitance(?\DateTimeInterface $dateFinTravauxSousTraitance): self
{
$this->dateFinTravauxSousTraitance = $dateFinTravauxSousTraitance;
return $this;
}
public function getModalitePaiement(): ?string
{
return $this->modalitePaiement;
}
public function setModalitePaiement(?string $modalitePaiement): self
{
$this->modalitePaiement = $modalitePaiement;
return $this;
}
public function getInformation(): ?string
{
return $this->information;
}
public function setInformation(?string $information): self
{
$this->information = $information;
return $this;
}
public function getNumeroDevis(): ?string
{
return $this->numeroDevis;
}
public function setNumeroDevis(?string $numeroDevis): self
{
$this->numeroDevis = $numeroDevis;
return $this;
}
public function getPdfFile(): ?string
{
return $this->pdfFile;
}
public function setPdfFile(?string $pdfFile): self
{
$this->pdfFile = $pdfFile;
return $this;
}
public function getFournisseur(): ?Fournisseur
{
return $this->fournisseur;
}
public function setFournisseur(?Fournisseur $fournisseur): self
{
$this->fournisseur = $fournisseur;
return $this;
}
public function getSpv(): ?Spv
{
return $this->spv;
}
public function setSpv(?Spv $spv): self
{
$this->spv = $spv;
return $this;
}
public function getUserContact(): ?User
{
return $this->userContact;
}
public function setUserContact(?User $userContact): self
{
$this->userContact = $userContact;
return $this;
}
/**
* @return Collection|ProjectBonCommande[]
*/
public function getProjectBonCommande(): Collection
{
return $this->projectBonCommande;
}
public function addProjectBonCommande(ProjectBonCommande $projectBonCommande): self
{
if (!$this->projectBonCommande->contains($projectBonCommande)) {
$this->projectBonCommande[] = $projectBonCommande;
$projectBonCommande->setBonCommande($this);
}
return $this;
}
public function removeProjectBonCommande(ProjectBonCommande $projectBonCommande): self
{
if ($this->projectBonCommande->removeElement($projectBonCommande)) {
// set the owning side to null (unless already changed)
if ($projectBonCommande->getBonCommande() === $this) {
$projectBonCommande->setBonCommande(null);
}
}
return $this;
}
/**
* @return Collection|DetailBonCommande[]
*/
public function getDetailBonCommande(): Collection
{
return $this->detailBonCommande;
}
public function addDetailBonCommande(DetailBonCommande $detailBonCommande): self
{
if (!$this->detailBonCommande->contains($detailBonCommande)) {
$this->detailBonCommande[] = $detailBonCommande;
$detailBonCommande->setBonCommande($this);
}
return $this;
}
public function removeDetailBonCommande(DetailBonCommande $detailBonCommande): self
{
if ($this->detailBonCommande->removeElement($detailBonCommande)) {
// set the owning side to null (unless already changed)
if ($detailBonCommande->getBonCommande() === $this) {
$detailBonCommande->setBonCommande(null);
}
}
return $this;
}
public function getCodePostalLivraison(): ?string
{
return $this->codePostalLivraison;
}
public function setCodePostalLivraison(?string $codePostalLivraison): self
{
$this->codePostalLivraison = $codePostalLivraison;
return $this;
}
public function getCityLivraison(): ?string
{
return $this->cityLivraison;
}
public function setCityLivraison(?string $cityLivraison): self
{
$this->cityLivraison = $cityLivraison;
return $this;
}
public function getIsAdresseFournisseur(): ?bool
{
return $this->isAdresseFournisseur;
}
public function setIsAdresseFournisseur(?bool $isAdresseFournisseur): self
{
$this->isAdresseFournisseur = $isAdresseFournisseur;
return $this;
}
public function getModeEnvoieCommande(): ?string
{
return $this->modeEnvoieCommande;
}
public function setModeEnvoieCommande(?string $modeEnvoieCommande): self
{
$this->modeEnvoieCommande = $modeEnvoieCommande;
return $this;
}
public function getFileDevisBonCommande(): ?DocUpload
{
return $this->fileDevisBonCommande;
}
public function setFileDevisBonCommande(?DocUpload $fileDevisBonCommande): self
{
$this->fileDevisBonCommande = $fileDevisBonCommande;
return $this;
}
public function getNumeroBonDecommande(): ?string
{
return $this->numeroBonDecommande;
}
public function setNumeroBonDecommande(?string $numeroBonDecommande): self
{
$this->numeroBonDecommande = $numeroBonDecommande;
return $this;
}
}