<?php
/**
* Titre.php
* Created by Stéphane Brun
* Date: 03/05/2018 at 15:55
*/
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\TitreRepository")
* @ORM\Table(name="titre")
* @ORM\HasLifecycleCallbacks()
*/
class Titre
{
/**
* @ORM\Column(name="TISBN", type="string", length=50, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
protected $id;
/**
* @ORM\Column(name="TTitre", type="string", length=600, nullable=true)
*/
protected $titre;
/**
* @ORM\Column(name="TVoirAussi", type="string", length=50, nullable=true)
*/
protected $voirAussi;
/**
* @ORM\Column(name="TVoirAussi2", type="string", length=50, nullable=true)
*/
protected $voirAussi2;
/**
* @ORM\Column(name="TDewey", type="string", length=255, nullable=true)
*/
protected $dewey;
/**
* @ORM\Column(name="TTitreAnglais", type="string", length=250, nullable=true)
*/
protected $titreAnglais;
/**
* @ORM\Column(name="TAuteur", type="string", length=700, nullable=true)
*/
protected $auteur;
/**
* @ORM\Column(name="TEditeur", type="string", length=350, nullable=true)
*/
protected $editeurNom;
/**
* @ORM\Column(name="TAnneeParution", type="string", length=50, nullable=true)
*/
protected $anneeParution;
/**
* @ORM\Column(name="TAParaitre", type="datetime", nullable=true)
*/
protected $aParaitre;
/**
* @ORM\Column(name="TRef", type="string", length=255, nullable=true)
*/
protected $reference;
/**
* has one Langue
*
* @ORM\ManyToOne(targetEntity="App\Entity\Langue", cascade={"persist"})
* @ORM\JoinColumn(name="TLangue", referencedColumnName="id", nullable=true)
*/
protected $langue;
/**
* @ORM\Column(name="TPVU", type="float", nullable=true)
*/
protected $pvu = 0;
/**
* @ORM\Column(name="TTPS", type="boolean", nullable=true)
*/
protected $tps;
/**
* @ORM\Column(name="TTVQ", type="boolean", nullable=true)
*/
protected $tvq;
/**
* @ORM\Column(name="TEscompteGeneral", type="integer", nullable=true)
*/
protected $escompteGeneral;
/**
* @ORM\Column(name="TEscompteDu", type="datetime", nullable=true)
*/
protected $escompteDu;
/**
* @ORM\Column(name="TEscompteAu", type="datetime", nullable=true)
*/
protected $escompteAu;
/**
* @ORM\Column(name="TPVUEscompte", type="float", nullable=true)
*/
protected $pvuEscompte;
/**
* @ORM\Column(name="TRemiseNormale", type="integer")
*/
protected $remiseNormale = 0;
/**
* @ORM\Column(name="TCoutant", type="float", nullable=true)
*/
protected $coutant = 0;
/**
* @ORM\Column(name="TEmballage", type="string", length=25, nullable=true)
*/
protected $emballage;
/**
* @ORM\Column(name="TMultiplicateur", type="integer", nullable=true)
*/
protected $multiplicateur;
/**
* @ORM\Column(name="TTitreInternet", type="string", length=150, nullable=true)
*/
protected $titreInternet;
/**
* @ORM\Column(name="TAuteurInternet", type="string", length=100, nullable=true)
*/
protected $auteurInternet;
/**
* @ORM\Column(name="TNotesInternet", type="string", length=250, nullable=true)
*/
protected $notesInternet;
/**
* @ORM\Column(name="TNbPages", type="integer", nullable=true)
*/
protected $nbPages;
/**
* @ORM\Column(name="TFormat", type="string", length=50, nullable=true)
*/
protected $format;
/**
* @ORM\Column(name="TImprimee", type="boolean", nullable=true)
*/
protected $imprimee;
/**
* @ORM\Column(name="TMachine", type="string", length=50, nullable=true)
*/
protected $machine;
/**
* @ORM\Column(name="TVille", type="string", length=50, nullable=true)
*/
protected $ville;
/**
* @ORM\Column(name="TDateOffice", type="datetime", nullable=true)
*/
protected $dateOffice;
/**
* @ORM\Column(name="TSemaineOffice", type="datetime", nullable=true)
*/
protected $semaineOffice;
/**
* @ORM\Column(name="TDateEdition", type="string", nullable=true)
*/
protected $dateEdition;
/**
* @ORM\Column(name="couverture", type="string", length=255, nullable=true)
*/
protected $couverture;
/**
* @ORM\Column(name="memento_editeur", type="string", length=255, nullable=true)
*/
protected $mementoEditeur;
/**
* @ORM\Column(name="memento_collection", type="string", length=255, nullable=true)
*/
protected $mementoCollection;
/**
* @ORM\Column(name="memento_theme", type="string", length=255, nullable=true)
*/
protected $mementoTheme;
/**
* has one Editeur
*
* @ORM\ManyToOne(targetEntity="App\Entity\Editeurs", inversedBy="titres", cascade={"persist"})
* @ORM\JoinColumn(name="editeur_id", referencedColumnName="id", nullable=true)
*/
protected $editeur;
/**
* has many TitreCompany
*
* @ORM\OneToMany(targetEntity="App\Entity\TitreCompany", mappedBy="titre", cascade={"persist"})
*/
protected $titreCompany;
/**
* has many CommandeDetail
*
* @ORM\OneToMany(targetEntity="App\Entity\CommandeDetail", mappedBy="produit", cascade={"persist"})
*/
protected $commandeDetails;
/**
* One Category has Many Categories.
* @ORM\OneToMany(targetEntity="CommandeSpecialeDetail", mappedBy="produit", cascade={"persist"})
*/
protected $commandesSpecialesDetail;
/**
* @ORM\Column(name="resume", type="string", length=3000, nullable=true)
*/
protected $resume;
/**
* Many Products belong to one Category
*
* @var Category|null
* @ORM\ManyToOne(targetEntity="App\Entity\Category")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private ?Category $category = null;
/**
* @ORM\Column(name="created_at", type="datetime")
*/
protected $createdAt;
public function __construct()
{
// Default values
$this->setTps(true);
$this->setRemiseNormale(40);
$this->createdAt = new \DateTime();
}
public function __toString()
{
return (string)$this->getId();
}
/**
* @return mixed
*/
public function getId()
{
return preg_replace('/\s+/', '', $this->id);
}
/**
* @param mixed $id
*/
public function setId($id)
{
$id = preg_replace('/\s+/', '', $id);
$this->id = $id;
}
/**
* @return mixed
*/
public function getTitre()
{
return mb_strtoupper($this->titre);
}
/**
* @param mixed $titre
*/
public function setTitre($titre = null)
{
$this->titre = mb_strtoupper($titre);
}
/**
* @return mixed
*/
public function getVoirAussi()
{
return $this->voirAussi;
}
/**
* @param mixed $voirAussi
*/
public function setVoirAussi($voirAussi = null)
{
$this->voirAussi = $voirAussi;
}
/**
* @return mixed
*/
public function getVoirAussi2()
{
return $this->voirAussi2;
}
/**
* @param mixed $voirAussi2
*/
public function setVoirAussi2($voirAussi2 = null)
{
$this->voirAussi2 = $voirAussi2;
}
/**
* @return mixed
*/
public function getDewey()
{
return $this->dewey;
}
/**
* @param mixed $dewey
*/
public function setDewey($dewey = null)
{
$this->dewey = $dewey;
}
/**
* @return mixed
*/
public function getTitreAnglais()
{
return $this->titreAnglais;
}
/**
* @param mixed $titreAnglais
*/
public function setTitreAnglais($titreAnglais = null)
{
$this->titreAnglais = $titreAnglais;
}
/**
* @return mixed
*/
public function getAuteur()
{
return $this->auteur;
}
/**
* @param mixed $auteur
*/
public function setAuteur($auteur = null)
{
$this->auteur = $auteur;
}
/**
* @return mixed
*/
public function getEditeurNom()
{
return $this->editeurNom;
}
/**
* @param mixed $editeurNom
*/
public function setEditeurNom($editeurNom = null)
{
$this->editeurNom = $editeurNom;
}
/**
* @return mixed
*/
public function getAnneeParution()
{
return $this->anneeParution;
}
/**
* @param mixed $anneeParution
*/
public function setAnneeParution($anneeParution = null)
{
$this->anneeParution = $anneeParution;
}
/**
* @return mixed
*/
public function getAParaitre()
{
return $this->aParaitre;
}
/**
* @param mixed $aParaitre
*/
public function setAParaitre($aParaitre = null)
{
$this->aParaitre = $aParaitre;
}
/**
* @return mixed
*/
public function getReference()
{
return $this->reference;
}
/**
* @param mixed $reference
*/
public function setReference($reference = null)
{
$this->reference = $reference;
}
/**
* @return mixed
*/
public function getLangue()
{
return $this->langue;
}
/**
* @param mixed $langue
*/
public function setLangue($langue = null)
{
$this->langue = $langue;
}
/**
* @return mixed
*/
public function getPvu()
{
return $this->pvu;
}
/**
* @param mixed $pvu
*/
public function setPvu($pvu = null)
{
$this->pvu = $pvu;
}
/**
* @return mixed
*/
public function getTps()
{
return $this->tps;
}
/**
* @param mixed $tps
*/
public function setTps($tps = null)
{
$this->tps = $tps;
}
/**
* @return boolean
*/
public function isTps()
{
return $this->getTps();
}
/**
* @return mixed
*/
public function getTvq()
{
return $this->tvq;
}
/**
* @param mixed $tvq
*/
public function setTvq($tvq = null)
{
$this->tvq = $tvq;
}
/**
* @return boolean
*/
public function isTvq()
{
return $this->getTvq();
}
/**
* @return mixed
*/
public function getEscompteGeneral()
{
return $this->escompteGeneral;
}
/**
* @param mixed $escompteGeneral
*/
public function setEscompteGeneral($escompteGeneral = null)
{
$this->escompteGeneral = $escompteGeneral;
}
/**
* @return mixed
*/
public function getEscompteDu()
{
return $this->escompteDu;
}
/**
* @param mixed $escompteDu
*/
public function setEscompteDu($escompteDu = null)
{
$this->escompteDu = $escompteDu;
}
/**
* @return mixed
*/
public function getEscompteAu()
{
return $this->escompteAu;
}
/**
* @param mixed $escompteAu
*/
public function setEscompteAu($escompteAu = null)
{
$this->escompteAu = $escompteAu;
}
/**
* @return mixed
*/
public function getPvuEscompte()
{
return $this->pvuEscompte;
}
/**
* @param mixed $pvuEscompte
*/
public function setPvuEscompte($pvuEscompte = null)
{
$this->pvuEscompte = $pvuEscompte;
}
/**
* @return mixed
*/
public function getRemiseNormale()
{
return $this->remiseNormale;
}
/**
* @param mixed $remiseNormale
*/
public function setRemiseNormale($remiseNormale = null)
{
$this->remiseNormale = $remiseNormale;
}
/**
* @return mixed
*/
public function getCoutant()
{
if (empty($this->coutant) && !empty($this->pvu) && !empty($this->remiseNormale)) {
$this->coutant = $this->pvu - ($this->pvu * $this->remiseNormale / 100);
}
return $this->coutant;
}
/**
* @param mixed $coutant
*/
public function setCoutant($coutant = null)
{
$this->coutant = $coutant;
}
/**
* @return mixed
*/
public function getEmballage()
{
return $this->emballage;
}
/**
* @param mixed $emballage
*/
public function setEmballage($emballage = null)
{
$this->emballage = $emballage;
}
/**
* @return mixed
*/
public function getMultiplicateur()
{
return $this->multiplicateur;
}
/**
* @param mixed $multiplicateur
*/
public function setMultiplicateur($multiplicateur = null)
{
$this->multiplicateur = $multiplicateur;
}
/**
* @return mixed
*/
public function getTitreInternet()
{
return $this->titreInternet;
}
/**
* @param mixed $titreInternet
*/
public function setTitreInternet($titreInternet = null)
{
$this->titreInternet = $titreInternet;
}
/**
* @return mixed
*/
public function getAuteurInternet()
{
return $this->auteurInternet;
}
/**
* @param mixed $auteurInternet
*/
public function setAuteurInternet($auteurInternet = null)
{
$this->auteurInternet = $auteurInternet;
}
/**
* @return mixed
*/
public function getNotesInternet()
{
return $this->notesInternet;
}
/**
* @param mixed $notesInternet
*/
public function setNotesInternet($notesInternet = null)
{
$this->notesInternet = $notesInternet;
}
/**
* @return mixed
*/
public function getNbPages()
{
return $this->nbPages;
}
/**
* @param mixed $nbPages
*/
public function setNbPages($nbPages = null)
{
$this->nbPages = $nbPages;
}
/**
* @return mixed
*/
public function getFormat()
{
return $this->format;
}
/**
* @param mixed $format
*/
public function setFormat($format = null)
{
$this->format = $format;
}
/**
* @return boolean
*/
public function getImprimee()
{
if (empty($this->imprimee)) {
return false;
}
return $this->imprimee;
}
/**
* @return boolean
*/
public function isImprimee()
{
return $this->getImprimee();
}
/**
* @param mixed $imprimee
*/
public function setImprimee($imprimee = null)
{
$this->imprimee = $imprimee;
}
/**
* @return mixed
*/
public function getMachine()
{
return $this->machine;
}
/**
* @param mixed $machine
*/
public function setMachine($machine = null)
{
$this->machine = $machine;
}
/**
* @return mixed
*/
public function getVille()
{
return $this->ville;
}
/**
* @param mixed $ville
*/
public function setVille($ville = null)
{
$this->ville = $ville;
}
/**
* @return mixed
*/
public function getDateOffice()
{
return $this->dateOffice;
}
/**
* @param mixed $dateOffice
*/
public function setDateOffice($dateOffice = null)
{
$this->dateOffice = $dateOffice;
}
/**
* @return mixed
*/
public function getSemaineOffice()
{
return $this->semaineOffice;
}
/**
* @param mixed $semaineOffice
*/
public function setSemaineOffice($semaineOffice = null)
{
$this->semaineOffice = $semaineOffice;
}
/**
* @return mixed
*/
public function getDateEdition()
{
return $this->dateEdition;
}
/**
* @param mixed $dateEdition
*/
public function setDateEdition($dateEdition = null)
{
$this->dateEdition = $dateEdition;
}
/**
* @return mixed
*/
public function getCouverture()
{
return $this->couverture;
}
/**
* @param mixed $couverture
*/
public function setCouverture($couverture = null)
{
$this->couverture = $couverture;
}
/**
* @return mixed
*/
public function getEditeur()
{
return $this->editeur;
}
/**
* @param mixed $editeur
*/
public function setEditeur(Editeurs $editeur=null)
{
$this->editeur = $editeur;
}
/**
* @return mixed
*/
public function getMementoEditeur()
{
return $this->mementoEditeur;
}
/**
* @param mixed $mementoEditeur
* @return Titre
*/
public function setMementoEditeur($mementoEditeur)
{
$this->mementoEditeur = $mementoEditeur;
return $this;
}
/**
* @return mixed
*/
public function getMementoCollection()
{
return $this->mementoCollection;
}
/**
* @param mixed $mementoCollection
* @return Titre
*/
public function setMementoCollection($mementoCollection)
{
$this->mementoCollection = $mementoCollection;
return $this;
}
/**
* @return mixed
*/
public function getMementoTheme()
{
return $this->mementoTheme;
}
/**
* @param mixed $mementoTheme
* @return Titre
*/
public function setMementoTheme($mementoTheme)
{
$this->mementoTheme = $mementoTheme;
return $this;
}
/**
* @return mixed
*/
public function getCommandesSpecialesDetail()
{
return $this->commandesSpecialesDetail;
}
/**
* @param mixed $commandesSpecialesDetail
*/
public function setCommandesSpecialesDetail($commandesSpecialesDetail)
{
$this->commandesSpecialesDetail = $commandesSpecialesDetail;
}
/**
* @return mixed
*/
public function getResume()
{
return $this->resume;
}
/**
* @param mixed $resume
*/
public function setResume($resume): void
{
$this->resume = mb_substr($resume, 0, 3000);
}
/**
* @return Category|null
*/
public function getCategory(): ?Category
{
return $this->category;
}
/**
* @param Category|null $category
* @return $this
*/
public function setCategory(?Category $category): self
{
$this->category = $category;
return $this;
}
/**
* @return mixed
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* @param mixed $createdAt
*/
public function setCreatedAt($createdAt): void
{
$this->createdAt = $createdAt;
}
public function calculatedCoutant() {
$this->coutant = round($this->pvu - ($this->pvu * $this->remiseNormale / 100),2);
}
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function sanitizeIsbn()
{
$this->setId(trim($this->getId()));
}
}