src/Entity/Formulaire/Contact.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Formulaire;
  3. use App\Application\Sonata\MediaBundle\Entity\Media;
  4. use App\Entity\Boutique\Produit;
  5. use App\Entity\Boutique\ProduitDeclinaison;
  6. use App\Entity\User\User;
  7. use App\Entity\EntityBase;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. /**
  11.  * @ORM\Entity(repositoryClass="App\Repository\Formulaire\ContactRepository")
  12.  * @ORM\HasLifecycleCallbacks()
  13.  * @ORM\Table(indexes={
  14.  *      @ORM\Index(name="traite", columns={"traite"})
  15.  * })
  16.  */
  17. class Contact extends EntityBase
  18. {
  19.     const OBJET_COMMANDE        'Suivi de commande';
  20.     const OBJET_REFERENCEMENT   'Référencement';
  21.     const OBJET_AUTRE           'Demandes diverses';
  22.     public static $objetChoice = [
  23.         self::OBJET_COMMANDE                => 'Suivi de commande',
  24.         self::OBJET_REFERENCEMENT           => 'Référencement',
  25.         self::OBJET_AUTRE                   => 'Demandes diverses',
  26.     ];
  27.     const FORM_CONTACT                      'Contact';
  28.     const FORM_NEWSLETTER                   'Newsletter';
  29.     const FORM_TOMBOLA                      'Tombola';
  30.     const FORM_BREIZH_DEVENIR_ADHERENT      'BreizhDevenirAdherent';
  31.     const FORM_BREIZH_DEVENIR_PARTENAIRE    'BreizhDevenirPartenaire';
  32.     const FORM_TAMTAM_ADHESION_CARTE        'TamtamAdhesionCarte';
  33.     const FORM_TAMTAM_PARTENAIRE_CARTE      'TamtamPartenaireCarte';
  34.     const FORM_TAMTAM_ASSOCIE_CARTE         'TamtamAssocieCarte';
  35.     const FORM_TAMTAM_AMBASSADEUR_CARTE     'TamtamAmbassadeurCarte';
  36.     const FORM_CSE                          'Cse';
  37.     const FORM_MESSAGERIE                   'Messagerie';
  38.     const FORM_PRODUIT                      'Produit';
  39.     public static $formulaireChoice = [
  40.         self::FORM_CONTACT                      => 'Formulaire de contact',
  41.         self::FORM_NEWSLETTER                   => 'Inscription à la newsletter',
  42.         self::FORM_TOMBOLA                      => 'Inscription à la tombola',
  43.         self::FORM_BREIZH_DEVENIR_ADHERENT      => 'Devenir adhérent Breizh CE',
  44.         self::FORM_BREIZH_DEVENIR_PARTENAIRE    => 'Devenir partenaire Breizh CE',
  45.         self::FORM_TAMTAM_ADHESION_CARTE        => 'Adhésion carte TAM TAM ICE',
  46.         self::FORM_TAMTAM_PARTENAIRE_CARTE      => 'Devenir partenaire de la carte TAM TAM ICE',
  47.         self::FORM_TAMTAM_ASSOCIE_CARTE         => 'Devenir associé de la carte TAM TAM ICE',
  48.         self::FORM_TAMTAM_AMBASSADEUR_CARTE     => 'Devenir ambassadeur de la carte TAM TAM ICE',
  49.         self::FORM_CSE                          => 'Formulaire CSE',
  50.         self::FORM_MESSAGERIE                   => 'Formulaire de messagerie',
  51.         self::FORM_PRODUIT                      => 'Formulaire fiche produit',
  52.     ];
  53.     public static $formulaireChoiceTamtam = [
  54.         self::FORM_CONTACT                      => 'Formulaire de contact',
  55.         self::FORM_NEWSLETTER                   => 'Inscription à la newsletter',
  56.         self::FORM_TOMBOLA                      => 'Inscription à la tombola',
  57.         self::FORM_TAMTAM_ADHESION_CARTE        => 'Adhésion carte TAM TAM ICE',
  58.         self::FORM_TAMTAM_PARTENAIRE_CARTE      => 'Devenir partenaire de la carte TAM TAM ICE',
  59.         self::FORM_TAMTAM_ASSOCIE_CARTE         => 'Devenir associé de la carte TAM TAM ICE',
  60.         self::FORM_TAMTAM_AMBASSADEUR_CARTE     => 'Devenir ambassadeur de la carte TAM TAM ICE',
  61.         self::FORM_CSE                          => 'Formulaire CSE',
  62.         self::FORM_PRODUIT                      => 'Formulaire fiche produit',
  63.     ];
  64.     public static $formulaireChoicePrestatime = [
  65.         self::FORM_CONTACT                      => 'Formulaire de contact',
  66.         self::FORM_MESSAGERIE                   => 'Formulaire de messagerie',
  67.         self::FORM_NEWSLETTER                   => 'Inscription à la newsletter',
  68.         self::FORM_TOMBOLA                      => 'Inscription à la tombola',
  69.         self::FORM_CSE                          => 'Formulaire CSE',
  70.         self::FORM_PRODUIT                      => 'Formulaire fiche produit',
  71.     ];
  72.     public static $formulaireChoiceBreizhce = [
  73.         self::FORM_CONTACT                      => 'Formulaire de contact',
  74.         self::FORM_NEWSLETTER                   => 'Inscription à la newsletter',
  75.         self::FORM_BREIZH_DEVENIR_ADHERENT      => 'Devenir adhérent Breizh CE',
  76.         self::FORM_BREIZH_DEVENIR_PARTENAIRE    => 'Devenir partenaire Breizh CE',
  77.         self::FORM_CSE                          => 'Formulaire CSE',
  78.         self::FORM_PRODUIT                      => 'Formulaire fiche produit',
  79.     ];
  80.     public static $formulaireChoiceHorizonce = [
  81.         self::FORM_CONTACT                      => 'Formulaire de contact',
  82.         self::FORM_NEWSLETTER                   => 'Inscription à la newsletter',
  83.         self::FORM_CSE                          => 'Formulaire CSE',
  84.         self::FORM_PRODUIT                      => 'Formulaire fiche produit',
  85.     ];
  86.     /**
  87.      * @ORM\Id()
  88.      * @ORM\GeneratedValue()
  89.      * @ORM\Column(type="integer")
  90.      */
  91.     private $id;
  92.     /**
  93.      * @ORM\Column(type="string")
  94.      * @Assert\NotBlank()
  95.      */
  96.     private $formulaire;
  97.     /**
  98.      * @ORM\ManyToOne(targetEntity="App\Entity\User\User", inversedBy="contacts")
  99.      * @ORM\JoinColumn(nullable=true)
  100.      * @Assert\NotBlank(groups={"messagerie"})
  101.      */
  102.     private $user;
  103.     /**
  104.      * @ORM\ManyToOne(targetEntity="App\Entity\Boutique\Produit", inversedBy="contacts")
  105.      * @ORM\JoinColumn(nullable=true)
  106.      * @Assert\NotBlank(groups={"produit"})
  107.      */
  108.     private $produit;
  109.     /**
  110.      * @ORM\ManyToOne(targetEntity="App\Entity\Boutique\ProduitDeclinaison", inversedBy="contacts")
  111.      * @ORM\JoinColumn(nullable=true)
  112.      */
  113.     private $produitDeclinaison;
  114.     /**
  115.      * @ORM\Column(type="integer", nullable=true)
  116.      * @Assert\NotBlank(groups={"contact"})
  117.      * @Assert\Choice({ User::CIVILITE_MR, User::CIVILITE_MME, User::CIVILITE_MLLE })
  118.      */
  119.     private $civilite;
  120.     /**
  121.      * @ORM\ManyToOne(targetEntity="App\Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"})
  122.      * @ORM\JoinColumn(name="fichier1_id", nullable=true, onDelete="SET NULL")
  123.      */
  124.     private $fichier1;
  125.     /**
  126.      * @ORM\ManyToOne(targetEntity="App\Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"})
  127.      * @ORM\JoinColumn(name="fichier2_id", nullable=true, onDelete="SET NULL")
  128.      */
  129.     private $fichier2;
  130.     /**
  131.      * @ORM\Column(type="string", nullable=true)
  132.      * @Assert\NotBlank(groups={
  133.      *     "contact",
  134.      *     "tombola",
  135.      *     "tamtamAdhesionCarte",
  136.      *     "tamtamAmbassadeurCarte",
  137.      *     "tamtamAssocieCarte",
  138.      *     "tamtamPartenaireCarte",
  139.      *     "breizhDevenirPartenaire",
  140.      *     "breizhDevenirAdherent",
  141.      *     "cse",
  142.      *     "produit"
  143.      * })
  144.      */
  145.     private $nom;
  146.     /**
  147.      * @ORM\Column(type="string", nullable=true)
  148.      * @Assert\NotBlank(groups={
  149.      *     "contact",
  150.      *     "tombola",
  151.      *     "tamtamAdhesionCarte",
  152.      *     "tamtamAmbassadeurCarte",
  153.      *     "tamtamAssocieCarte",
  154.      *     "tamtamPartenaireCarte",
  155.      *     "breizhDevenirPartenaire",
  156.      *     "breizhDevenirAdherent",
  157.      *     "cse",
  158.      *     "produit"
  159.      * })
  160.      */
  161.     private $prenom;
  162.     /**
  163.      * @ORM\Column(type="string", nullable=true)
  164.      * @Assert\NotBlank(groups={
  165.      *     "tamtamAdhesionCarte",
  166.      *     "tamtamAssocieCarte",
  167.      *     "tamtamAmbassadeurCarte",
  168.      *     "breizhDevenirPartenaire",
  169.      *     "breizhDevenirAdherent"
  170.      * })
  171.      */
  172.     private $fonction;
  173.     /**
  174.      * @ORM\Column(type="string", nullable=true)
  175.      * @Assert\NotBlank(groups={
  176.      *     "tamtamAmbassadeurCarte",
  177.      *     "breizhDevenirPartenaire",
  178.      *     "breizhDevenirAdherent",
  179.      * })
  180.      */
  181.     private $societe;
  182.     /**
  183.      * @ORM\Column(type="string")
  184.      * @Assert\Email()
  185.      */
  186.     private $email;
  187.     /**
  188.      * @ORM\Column(type="string", nullable=true)
  189.      * @Assert\NotBlank(groups={"contact","produit"})
  190.      */
  191.     private $telephone;
  192.     /**
  193.      * @ORM\Column(type="string", nullable=true)
  194.      * @Assert\NotBlank(groups={
  195.      *     "tamtamAmbassadeurCarte",
  196.      *     "breizhDevenirPartenaire",
  197.      *     "breizhDevenirAdherent"
  198.      * })
  199.      */
  200.     private $adresse;
  201.     /**
  202.      * @ORM\Column(type="string", nullable=true)
  203.      * @Assert\NotBlank(groups={"breizhDevenirPartenaire","breizhDevenirAdherent"})
  204.      */
  205.     private $codePostal;
  206.     /**
  207.      * @ORM\Column(type="string", nullable=true)
  208.      * @Assert\NotBlank(groups={"breizhDevenirPartenaire","breizhDevenirAdherent"})
  209.      */
  210.     private $ville;
  211.     /**
  212.      * @ORM\Column(type="string", nullable=true)
  213.      */
  214.     private $objet;
  215.     /**
  216.      * @ORM\Column(type="text", nullable=true)
  217.      * @Assert\NotBlank(groups={
  218.      *     "contact",
  219.      *     "messagerie",
  220.      *     "tamtamAdhesionCarte",
  221.      *     "tamtamAmbassadeurCarte",
  222.      *     "tamtamAssocieCarte",
  223.      *     "tamtamPartenaireCarte",
  224.      *     "breizhDevenirPartenaire",
  225.      *     "breizhDevenirAdherent",
  226.      *     "cse",
  227.      *     "produit"
  228.      * })
  229.      */
  230.     private $message;
  231.     /**
  232.      * @ORM\Column(type="string", nullable=true)
  233.      * @Assert\NotBlank(groups={"tamtamAdhesionCarte","breizhDevenirAdherent"})
  234.      */
  235.     private $nbSalaries;
  236.     /**
  237.      * @ORM\Column(type="string", nullable=true)
  238.      * @Assert\NotBlank(groups={"tamtamPartenaireCarte"})
  239.      */
  240.     private $boutique;
  241.     /**
  242.      * @ORM\Column(type="string", nullable=true)
  243.      * @Assert\NotBlank(groups={"tamtamPartenaireCarte"})
  244.      */
  245.     private $secteur;
  246.     /**
  247.      * @ORM\Column(type="string", nullable=true)
  248.      * @Assert\NotBlank(groups={
  249.      *     "tamtamAmbassadeurCarte",
  250.      *     "tamtamAssocieCarte",
  251.      *     "breizhDevenirAdherent"
  252.      * })
  253.      */
  254.     private $disponibilite;
  255.     /**
  256.      * @ORM\Column(type="string", nullable=true)
  257.      */
  258.     private $nomParticipants;
  259.     /**
  260.      * @ORM\Column(type="string", nullable=true)
  261.      */
  262.     private $prenomParticipants;
  263.     /**
  264.      * @ORM\Column(type="string", nullable=true)
  265.      */
  266.     private $ageParticipants;
  267.     /**
  268.      * @ORM\Column(type="boolean")
  269.      */
  270.     private $traite;
  271.     public function __construct()
  272.     {
  273.         $this->traite false;
  274.     }
  275.     public function __toString()
  276.     {
  277.         return !empty($this->nom) ? $this->prenom.' '.$this->nom '';
  278.     }
  279.     public function getCiviliteLabel() {
  280.         if (!empty($this->civilite) && isset(User::$civiliteChoice[$this->civilite])) {
  281.             return User::$civiliteChoice[$this->civilite];
  282.         }
  283.         return null;
  284.     }
  285.     public function getFormulaireLabel() {
  286.         if (!empty($this->formulaire) && isset(self::$formulaireChoice[$this->formulaire])) {
  287.             return self::$formulaireChoice[$this->formulaire];
  288.         }
  289.         return null;
  290.     }
  291.     public function getObjetLabel() {
  292.         if (!empty($this->objet) && isset(self::$objetChoice[$this->objet])) {
  293.             return self::$objetChoice[$this->objet];
  294.         }
  295.         return $this->objet;
  296.     }
  297.     public function getId(): ?int
  298.     {
  299.         return $this->id;
  300.     }
  301.     public function getFormulaire(): ?string
  302.     {
  303.         return $this->formulaire;
  304.     }
  305.     public function setFormulaire(string $formulaire): self
  306.     {
  307.         $this->formulaire $formulaire;
  308.         return $this;
  309.     }
  310.     public function getCivilite(): ?int
  311.     {
  312.         return $this->civilite;
  313.     }
  314.     public function setCivilite(?int $civilite): self
  315.     {
  316.         $this->civilite $civilite;
  317.         return $this;
  318.     }
  319.     public function getNom(): ?string
  320.     {
  321.         return $this->nom;
  322.     }
  323.     public function setNom(?string $nom): self
  324.     {
  325.         $this->nom $nom;
  326.         return $this;
  327.     }
  328.     public function getPrenom(): ?string
  329.     {
  330.         return $this->prenom;
  331.     }
  332.     public function setPrenom(?string $prenom): self
  333.     {
  334.         $this->prenom $prenom;
  335.         return $this;
  336.     }
  337.     public function getFonction(): ?string
  338.     {
  339.         return $this->fonction;
  340.     }
  341.     public function setFonction(?string $fonction): self
  342.     {
  343.         $this->fonction $fonction;
  344.         return $this;
  345.     }
  346.     public function getSociete(): ?string
  347.     {
  348.         return $this->societe;
  349.     }
  350.     public function setSociete(?string $societe): self
  351.     {
  352.         $this->societe $societe;
  353.         return $this;
  354.     }
  355.     public function getEmail(): ?string
  356.     {
  357.         return $this->email;
  358.     }
  359.     public function setEmail(string $email): self
  360.     {
  361.         $this->email $email;
  362.         return $this;
  363.     }
  364.     public function getTelephone(): ?string
  365.     {
  366.         return $this->telephone;
  367.     }
  368.     public function setTelephone(?string $telephone): self
  369.     {
  370.         $this->telephone $telephone;
  371.         return $this;
  372.     }
  373.     public function getAdresse(): ?string
  374.     {
  375.         return $this->adresse;
  376.     }
  377.     public function setAdresse(?string $adresse): self
  378.     {
  379.         $this->adresse $adresse;
  380.         return $this;
  381.     }
  382.     public function getCodePostal(): ?string
  383.     {
  384.         return $this->codePostal;
  385.     }
  386.     public function setCodePostal(?string $codePostal): self
  387.     {
  388.         $this->codePostal $codePostal;
  389.         return $this;
  390.     }
  391.     public function getVille(): ?string
  392.     {
  393.         return $this->ville;
  394.     }
  395.     public function setVille(?string $ville): self
  396.     {
  397.         $this->ville $ville;
  398.         return $this;
  399.     }
  400.     public function getObjet(): ?string
  401.     {
  402.         return $this->objet;
  403.     }
  404.     public function setObjet(?string $objet): self
  405.     {
  406.         $this->objet $objet;
  407.         return $this;
  408.     }
  409.     public function getMessage(): ?string
  410.     {
  411.         return $this->message;
  412.     }
  413.     public function setMessage(?string $message): self
  414.     {
  415.         $this->message $message;
  416.         return $this;
  417.     }
  418.     public function getNbSalaries(): ?string
  419.     {
  420.         return $this->nbSalaries;
  421.     }
  422.     public function setNbSalaries(?string $nbSalaries): self
  423.     {
  424.         $this->nbSalaries $nbSalaries;
  425.         return $this;
  426.     }
  427.     public function getBoutique(): ?string
  428.     {
  429.         return $this->boutique;
  430.     }
  431.     public function setBoutique(?string $boutique): self
  432.     {
  433.         $this->boutique $boutique;
  434.         return $this;
  435.     }
  436.     public function getSecteur(): ?string
  437.     {
  438.         return $this->secteur;
  439.     }
  440.     public function setSecteur(?string $secteur): self
  441.     {
  442.         $this->secteur $secteur;
  443.         return $this;
  444.     }
  445.     public function getDisponibilite(): ?string
  446.     {
  447.         return $this->disponibilite;
  448.     }
  449.     public function setDisponibilite(?string $disponibilite): self
  450.     {
  451.         $this->disponibilite $disponibilite;
  452.         return $this;
  453.     }
  454.     public function getNomParticipants(): ?string
  455.     {
  456.         return $this->nomParticipants;
  457.     }
  458.     public function setNomParticipants(?string $nomParticipants): self
  459.     {
  460.         $this->nomParticipants $nomParticipants;
  461.         return $this;
  462.     }
  463.     public function getPrenomParticipants(): ?string
  464.     {
  465.         return $this->prenomParticipants;
  466.     }
  467.     public function setPrenomParticipants(?string $prenomParticipants): self
  468.     {
  469.         $this->prenomParticipants $prenomParticipants;
  470.         return $this;
  471.     }
  472.     public function getAgeParticipants(): ?string
  473.     {
  474.         return $this->ageParticipants;
  475.     }
  476.     public function setAgeParticipants(?string $ageParticipants): self
  477.     {
  478.         $this->ageParticipants $ageParticipants;
  479.         return $this;
  480.     }
  481.     public function getTraite(): ?bool
  482.     {
  483.         return $this->traite;
  484.     }
  485.     public function setTraite(bool $traite): self
  486.     {
  487.         $this->traite $traite;
  488.         return $this;
  489.     }
  490.     public function getUser(): ?User
  491.     {
  492.         return $this->user;
  493.     }
  494.     public function setUser(?User $user): self
  495.     {
  496.         $this->user $user;
  497.         return $this;
  498.     }
  499.     public function getProduit(): ?Produit
  500.     {
  501.         return $this->produit;
  502.     }
  503.     public function setProduit(?Produit $produit): self
  504.     {
  505.         $this->produit $produit;
  506.         return $this;
  507.     }
  508.     public function getProduitDeclinaison(): ?ProduitDeclinaison
  509.     {
  510.         return $this->produitDeclinaison;
  511.     }
  512.     public function setProduitDeclinaison(?ProduitDeclinaison $produitDeclinaison): self
  513.     {
  514.         $this->produitDeclinaison $produitDeclinaison;
  515.         return $this;
  516.     }
  517.     public function getFichier1(): ?Media
  518.     {
  519.         return $this->fichier1;
  520.     }
  521.     public function setFichier1(?Media $fichier1): self
  522.     {
  523.         $this->fichier1 $fichier1;
  524.         return $this;
  525.     }
  526.     public function getFichier2(): ?Media
  527.     {
  528.         return $this->fichier2;
  529.     }
  530.     public function setFichier2(?Media $fichier2): self
  531.     {
  532.         $this->fichier2 $fichier2;
  533.         return $this;
  534.     }
  535. }